Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#2242 closed Bug (fixed)

Can't build 1.7x on Mac from tarball

Reported by: nnc Owned by: livings124
Priority: Normal Milestone: 1.73
Component: Mac Client Version: 1.72
Severity: Normal Keywords: build osx
Cc:

Description

I can't build transmission-daemon 1.70-1.72 on Leopard. Previous versions work fine.

Here is what I did:

  1. Downloaded the source archive for 1.72 from Transmission web site
  2. Unpacked the archive and opened the Xcode project
  3. Changed the active target to transmission-daemon and hit the "Build" button. (Build Configuration is Debug)

Build fails with 904 errors and 59 warnings. I've attached complete build log for you to inspect.

Trying to build Mac client fails with very similar errors.

Let me know if I can provide you with any additional information. As far as changes to my system go, I did install Qt 4.5 SDK a few weeks ago. Don't know if that has something to do with this problem, but I can still build 1.61 without problems.

Attachments (1)

transmission-daemon_1.72_Debug.build_log.zip (15.3 KB) - added by nnc 13 years ago.
Build log

Download all attachments as: .zip

Change History (10)

Changed 13 years ago by nnc

Build log

comment:1 Changed 13 years ago by nnc

I had to compress the build log as it exceeds Trac's size limit by 10-15kB. Let me know if that is a problem and I'll split the build log in two and attach those files as well.

comment:2 Changed 13 years ago by Biiaru

Yesterday, I successfully built transmission-daemon 1.72 on 10.5.7 on the command line.

transmission-1.72$ ./configure --disable-gtk --disable-mac --disable-nls transmission-1.72$ make

This worked fine for me, so I'd say to try this first instead of going through Xcode.

comment:3 Changed 13 years ago by Biiaru

Er, here are the commands:

./configure --disable-gtk --disable-mac --disable-nls
make

comment:4 Changed 13 years ago by nnc

Thanks for the tip Biiaru. I tried that, but configure failed with

configure: error: The pkg-config script could not be found or is too old.

I can attach a config.log if needed for inspection. Don't know if it matters, but I don't have Mac Ports installed, and I'd prefer to keep it that way.

Like I said, Xcode project used to work, and should at least work for Mac client, but it doesn't. So I'm pretty sure this problem was introduces between 1.61 and 1.70 and can be considered a bug.

comment:5 Changed 13 years ago by charles

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

Money quote:

CompileC build/Transmission.build/Debug/transmission-daemon.build/Objects-normal/i386/watch.o /Users/nnc/Downloads/transmission-1.72/daemon/watch.c normal i386 c com.apple.compilers.gcc.4_2
    cd /Users/nnc/Downloads/transmission-1.72
    /Developer/usr/bin/gcc-4.2 -x c -arch i386 -fmessage-length=0 -pipe -std=gnu99 -Wno-trigraphs -fasm-blocks -O0 -Wformat -Wmissing-braces -Wunused-variable -isysroot /Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue -funroll-loops -mmacosx-version-min=10.5 -gdwarf-2 -I/Users/nnc/Downloads/transmission-1.72/build/Transmission.build/Debug/transmission-daemon.build/transmission-daemon.hmap -F/Users/nnc/Downloads/transmission-1.72/build/Debug -I/Users/nnc/Downloads/transmission-1.72/build/Debug/include -I. -Ithird-party -Ithird-party/libevent -I/Users/nnc/Downloads/transmission-1.72/build/Transmission.build/Debug/transmission-daemon.build/DerivedSources -DHAVE_DAEMON -c /Users/nnc/Downloads/transmission-1.72/daemon/watch.c -o /Users/nnc/Downloads/transmission-1.72/build/Transmission.build/Debug/transmission-daemon.build/Objects-normal/i386/watch.o
In file included from /Users/nnc/Downloads/transmission-1.72/daemon/watch.c:20:
/Users/nnc/Downloads/transmission-1.72/third-party/libevent/event.h:162:26: error: event-config.h: No such file or directory
In file included from /Users/nnc/Downloads/transmission-1.72/third-party/libevent/event.h:175,
                 from /Users/nnc/Downloads/transmission-1.72/daemon/watch.c:20:
/Users/nnc/Downloads/transmission-1.72/third-party/libevent/evutil.h:68:2: error: #error "No way to define ev_uint64_t"
/Users/nnc/Downloads/transmission-1.72/third-party/libevent/evutil.h:80:2: error: #error "No way to define ev_uint32_t"
/Users/nnc/Downloads/transmission-1.72/third-party/libevent/evutil.h:92:2: error: #error "No way to define ev_uint16_t"
In file included from /Users/nnc/Downloads/transmission-1.72/third-party/libevent/event.h:175,
                 from /Users/nnc/Downloads/transmission-1.72/daemon/watch.c:20:
/Users/nnc/Downloads/transmission-1.72/third-party/libevent/evutil.h:165: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'evutil_strtoll'

comment:6 Changed 13 years ago by charles

Given that this is the error:

/Users/nnc/Downloads/transmission-1.72/third-party/libevent/event.h:162:26: error: event-config.h: No such file or directory

I think the solution is going to be to tweak the xcode s.t. the daemon build picks up event-config.h in the third-party/ directory.

Reassigning this ticket to "Mac" because there's no way for me to change the xcode myself.

comment:7 Changed 13 years ago by nnc

I copied event-config.h from 1.61 source archive. It exists there as a regular file in libevent directory. Xcode project has a shell script that will symlink ./third-party/libevent/event-config.h to ./third-party/macosx-libevent-event-config.h if the former doesn't exist. But the real problem is that the latter also doesn't exist in 1.72. Here is that script, from Transmission.xcodeproj:1840

if [ ! -e ./third-party/libevent/config.h -a ! ./third-party/macosx-libevent-config.h -ef ./third-party/libevent/config.h ]; then
	ln -s ../macosx-libevent-config.h ./third-party/libevent/config.h;
fi

if [ ! -e ./third-party/libevent/event-config.h -a ! ./third-party/macosx-libevent-event-config.h -ef ./third-party/libevent/event-config.h ]; then
	ln -s ../macosx-libevent-event-config.h ./third-party/libevent/event-config.h;
fi

AFAICT, ./third-party/macosx-libevent-event-config.h does exist in svn trunk, so I just tried downloading macosx-libevent-event-config.h from trunk and placing it in third-party directory, and it also builds fine.

Solution could be to restore the ./third-party/libevent/event-config.h from 1.61 or just package the macosx-libevent-event-config.h from trunk.

Though, I think its strange that macosx-libevent-event-config.h is availabe in trunk, but not in source archive. Is there a script that packages the source archives from svn? It seems like that could be the source of this problem.

comment:8 Changed 13 years ago by charles

  • Milestone changed from None Set to 1.73
  • Resolution set to fixed
  • Status changed from new to closed

aaaah.

The problem seems to be that when macosx-libevent-event-config.h was added to third-party/, it wasn't added to the Makefile.am's EXTRA_DIST list to ensure it was rolled into the tarball.

Fixed in r8752.

Thanks for digging through the script to figure this out. :)

comment:9 Changed 13 years ago by livings124

  • Summary changed from Can't build 1.7x on OS X Leopard to Can't build 1.7x on Mac from tarball
Note: See TracTickets for help on using tickets.