Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#27480 closed defect (fixed)

boost 1.45.0 universal configure failure

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: adfernandes (Andrew Fernandes)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc: alexandre.hamez@…
Port: boost

Description

boost 1.45.0 won't configure with the universal variant. boost 1.44.0 had no problem installing with the universal variant.

--->  Configuring boost
DEBUG: Using compiler 'Mac OS X gcc 4.2'
DEBUG: configure phase started at Sun Nov 28 02:32:44 CST 2010
DEBUG: Executing org.macports.configure (boost)
DEBUG: Environment: CPATH='/opt/local/include' CFLAGS='-pipe -O2 -arch x86_64 -arch i386' CPPFLAGS='-I/opt/local/include' CXXFLAGS='-pipe -O2 -arch x86_64 -arch i386' LIBRARY_PATH='/opt/local/lib' MACOSX_DEPLOYMENT_TARGET='10.6' CXX='/usr/bin/g++-4.2' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_Users_rschmidt_macports_dports_devel_boost/work/.CC_PRINT_OPTIONS' F90FLAGS='-pipe -O2' LDFLAGS='-L/opt/local/lib -arch x86_64 -arch i386' OBJC='/usr/bin/gcc-4.2' FCFLAGS='-pipe -O2' INSTALL='/usr/bin/install -c' OBJCFLAGS='-pipe -O2 -arch x86_64 -arch i386' FFLAGS='-pipe -O2' CC_PRINT_OPTIONS='YES' CC='/usr/bin/gcc-4.2'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports_devel_boost/work/boost_1_45_0" && ./bootstrap.sh --prefix=/opt/local --disable-dependency-tracking --without-libraries=mpi --without-icu --with-python=/opt/local/bin/python2.6'
error: unrecognized option: --disable-dependency-tracking
Try `./bootstrap.sh --help' for more information.
shell command " cd "/opt/local/var/macports/build/_Users_rschmidt_macports_dports_devel_boost/work/boost_1_45_0" && ./bootstrap.sh --prefix=/opt/local --disable-dependency-tracking --without-libraries=mpi --without-icu --with-python=/opt/local/bin/python2.6 " returned error 1

Attachments (1)

Portfile.diff (340 bytes) - added by adfernandes (Andrew Fernandes) 13 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 Changed 13 years ago by alexandre.hamez@…

Cc: alexandre.hamez@… added

Cc Me!

comment:2 Changed 13 years ago by adfernandes (Andrew Fernandes)

Dang.

The boost team completely changed the build system for 1.45.0. Now you have to use their built-in "bootstrap.sh" script to configure the build, and it builds a custom bjam build tool as part of the configure.

I think I know what the problem is and will likely ask for testers in a short while (my build is not universal, so testing is difficult for me).

Changed 13 years ago by adfernandes (Andrew Fernandes)

Attachment: Portfile.diff added

comment:3 Changed 13 years ago by adfernandes (Andrew Fernandes)

Hmm... this might be simpler than I thought; can someone test the attached (trivial) patch?

comment:4 in reply to:  3 ; Changed 13 years ago by alexandre.hamez@…

Replying to adfernandes@…:

Hmm... this might be simpler than I thought; can someone test the attached (trivial) patch?

Compilation started. It no longer fails right after the launch of the command.

comment:5 in reply to:  4 Changed 13 years ago by alexandre.hamez@…

Replying to alexandre.hamez@…:

Replying to adfernandes@…:

Hmm... this might be simpler than I thought; can someone test the attached (trivial) patch?

Compilation started. It no longer fails right after the launch of the command.

It ultimately failed with:

--->  Computing dependencies for boost.Error: Couldn't activate boost 1.45.0_0+python26+universal: Can't install boost because conflicting ports are installed: boost-jam

comment:6 Changed 13 years ago by adfernandes (Andrew Fernandes)

Resolution: fixed
Status: newclosed

Hello, Alexandre - this is by design since boost no longer builds with the boost-jam port. You need to uninstall boost-jam and the activation should proceed.

(Boost now requires its own built-in bjam; if it accidentally tries to use the one from boost-jam, you get a whole mess of arcane errors. It took forever to track this down.)

comment:7 in reply to:  6 ; Changed 13 years ago by adfernandes (Andrew Fernandes)

Replying to adfernandes@…:

Hello, Alexandre - this is by design since boost no longer builds with the boost-jam port. You need to uninstall boost-jam and the activation should proceed.

(Boost now requires its own built-in bjam; if it accidentally tries to use the one from boost-jam, you get a whole mess of arcane errors. It took forever to track this down.)

By the way - forgot to say "thanks" for testing the patch!

comment:8 Changed 13 years ago by adfernandes (Andrew Fernandes)

I just removed the conflict with boost-jam in r73900 even though boost won't build with it. It appears that boost will always use its local bjam to build, making the boost-jam port superfluous, but harmless.

comment:9 in reply to:  7 Changed 13 years ago by alexandre.hamez@…

Replying to adfernandes@…:

Replying to adfernandes@…:

Hello, Alexandre - this is by design since boost no longer builds with the boost-jam port. You need to uninstall boost-jam and the activation should proceed.

(Boost now requires its own built-in bjam; if it accidentally tries to use the one from boost-jam, you get a whole mess of arcane errors. It took forever to track this down.)

By the way - forgot to say "thanks" for testing the patch!

You're welcome :-) But, why should I need to uninstall boost-jam as Boost uses its local one?

comment:10 Changed 13 years ago by alexandre.hamez@…

Ok, now I can confirm that everything works fine, after uninstalling boost-jam (but still, why???)

comment:11 Changed 13 years ago by adfernandes (Andrew Fernandes)

It turns out that you don't have to uninstall boost-jam. The reason I originally added the conflict is because, well... boost wouldn't' build, and I couldn't figure out why. Lots of people online were getting the same error. Many had asked the boost developers. The reply was always the same: "Just use bootstrap.sh". A technically correct, but utterly useless answer.

It turns out that boost will now only build with it's custom-internal bjam tool. Thankfully, if you execute that tool with an absolute path, it ignores any other bjam on the path; but I didn't know that when trying to fix the port.

The boost coders really know their c++ and write fantastic code. However, I wish that they'd realize that their packaging build tool is really, really, really horrible, nonstandard, and buggy.

Note: See TracTickets for help on using tickets.