Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#1057 closed Bug (invalid)

Error building from updated SVN sources

Reported by: trolley Owned by:
Priority: Normal Milestone: None Set
Component: Transmission Version: 1.22+
Severity: Normal Keywords:
Cc:

Description

I originally posted this problem in the forum and was directed to send it upstream to the libevent developers, but it turns out it does seem to be a problem with Transmission.

I had checked out the sources for Transmission from SVN and built it a while ago. Recently I updated from SVN and tried to build again but got the following errors:

Making all in . make[4]: Entering directory `/home/user/svn/Transmission/third-party/libevent' /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I./compat -g -O2 -Wall -c -o event.lo event.c gcc -DHAVE_CONFIG_H -I. -I./compat -g -O2 -Wall -c event.c -o event.o In file included from event.h:175, from event.c:54: ./evutil.h:67:2: error: #error "No way to define ev_uint64_t" ./evutil.h:79:2: error: #error "No way to define ev_uint32_t" ./evutil.h:91:2: error: #error "No way to define ev_uint16_t" In file included from event.h:175, from event.c:54: ./evutil.h:164: error: expected '=', ',', ';', 'asm' or 'attribute' before 'evutil_strtoll' In file included from event.c:54: event.h:1129: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1130: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1142: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1144: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1145: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1147: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1150: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1153: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1155: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1156: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1157: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1160: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1161: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1163: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1166: error: expected declaration specifiers or '...' before 'ev_uint32_t' event.h:1169: error: expected declaration specifiers or '...' before 'ev_uint32_t' make[4]: * [event.lo] Error 1 make[4]: Leaving directory `/home/user/svn/Transmission/third-party/libevent' make[3]: * [all-recursive] Error 1 make[3]: Leaving directory `/home/user/svn/Transmission/third-party/libevent' make[2]: * [all] Error 2 make[2]: Leaving directory `/home/user/svn/Transmission/third-party/libevent' make[1]: * [all-recursive] Error 1 make[1]: Leaving directory `/home/user/svn/Transmission/third-party' make: * [all-recursive] Error 1

It appears the libevent header files were generated when I originally build Transmission, and since they already existed weren't being generated again for the new libevent version. To fix this I had to run the following commands in the libevent directory:

$ make distclean $ sh autogen.sh

The bug report on the libevent tracker can be found here: https://sourceforge.net/tracker/index.php?func=detail&aid=1995316&group_id=50884&atid=461322

Change History (5)

comment:1 Changed 13 years ago by trolley

Sorry, that's unreadable. Here's the errors again:

Making all in .
make[4]: Entering directory
`/home/user/svn/Transmission/third-party/libevent'
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
-I./compat -g -O2 -Wall -c -o event.lo event.c
gcc -DHAVE_CONFIG_H -I. -I./compat -g -O2 -Wall -c event.c -o event.o
In file included from event.h:175,
from event.c:54:
./evutil.h:67:2: error: #error "No way to define ev_uint64_t"
./evutil.h:79:2: error: #error "No way to define ev_uint32_t"
./evutil.h:91:2: error: #error "No way to define ev_uint16_t"
In file included from event.h:175,
from event.c:54:
./evutil.h:164: error: expected '=', ',', ';', 'asm' or '__attribute__'
before 'evutil_strtoll'
In file included from event.c:54:
event.h:1129: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1130: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1142: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1144: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1145: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1147: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1150: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1153: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1155: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1156: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1157: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1160: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1161: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1163: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1166: error: expected declaration specifiers or '...' before
'ev_uint32_t'
event.h:1169: error: expected declaration specifiers or '...' before
'ev_uint32_t'
make[4]: *** [event.lo] Error 1
make[4]: Leaving directory
`/home/user/svn/Transmission/third-party/libevent'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/home/user/svn/Transmission/third-party/libevent'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/home/user/svn/Transmission/third-party/libevent'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/svn/Transmission/third-party'
make: *** [all-recursive] Error 1

comment:2 Changed 13 years ago by charles

  • Component changed from Transmission to Mac Client
  • Owner set to livings124

The non-mac version is working fine.

I suspect the error is coming from libevent's changes to their event-config.h file, which the mac version isn't picking up because it uses a static *libevent*config.h files in the third-party directory.

comment:3 Changed 13 years ago by trolley

  • Component changed from Mac Client to Transmission
  • Owner livings124 deleted

Sorry, I didn't clarify. This is not on the Mac client, it's happening on Debian Etch. The libevent header generated months ago when I originally build Transmission was causing the problem with the new version of libevent, so this is a Linux build problem (or Debian problem at least).

comment:4 Changed 13 years ago by charles

  • Resolution set to invalid
  • Status changed from new to closed

ah, I see. Thanks for the clarification.

Yes, libevent's config headers have changed over the last couple of months, and you have to re-autogen to rebuild them, but I don't see how this is a Transmission bug. It's actually not even a libevent bug IMO; it's just that the two snapshots aren't compatible, so you need to rebuild from scratch.

comment:5 Changed 13 years ago by trolley

I see what you're saying, but here's the point I was trying to make:

I check the Transmission sources out of SVN one time then update them periodically and rebuild it. When I recently tried to rebuild it failed, because of this libevent header problem. Doing a "make clean" in on Transmission didn't clean up the libevent headers, so the build still failed.

I think it would be a good idea to call both "make clean" and "make distclean" in the libevent directory when running "make clean" or "make distclean" on the Transmission source. Right now it does "make clean" the libevent directory in both cases, which won't cause the libevent headers to be regenerated.

I hope that makes sense. I understand it's not a problem if you checkout from SVN, build, the delete the source tree, but if you keep updating existing sources this problem will happen again next time libevent changes.

Note: See TracTickets for help on using tickets.