Port builds fine without ICU on FreeBSD 10.2-RELEASE due to iconv being included natively. But when trying to build devel/boost-libs on FreeBSD 9.3-RELEASE without ICU the build fails due to libiconv not being installed and the build process does not try to install converters/libiconv due to it not being required so build fails. If I edit the Makefile and tell it that converters/libiconv is required then it installs fine. Can a check be added for FreeBSD 9 that installs libiconv if needed? > ===> Building for boost-libs-1.55.0_8 > link.jam: No such file or directory > Performing configuration checks > > - 32-bit : no > - 64-bit : yes > - arm : no > - mips1 : no > - power : no > - sparc : no > - x86 : yes > - has_icu builds : no > warning: Graph library does not contain MPI-based parallel components. > note: to enable them, add "using mpi ;" to your user-config.jam > - zlib : yes > - iconv (libc) : no > - iconv (separate) : no > - icu : no > - icu (lib64) : no > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - compiler-supports-ssse3 : yes > - lockfree boost::atomic_flag : yes > - compiler-supports-avx2 : yes > - gcc visibility : yes > - long double support : no > warning: skipping optional Message Passing Interface (MPI) library. > note: to enable MPI support, add "using mpi ;" to user-config.jam. > note: to suppress this message, pass "--without-mpi" to bjam. > note: otherwise, you can safely ignore this message. > - zlib : yes > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > - Boost.Locale needs either iconv or ICU library to be built. > ... > ... > ... > ... > ... > pkg-static: Unable to access file /wrkdirs/usr/ports/devel/boost-libs/work/stage/usr/local/lib/libboost_locale.a: No such file or directory > pkg-static: Unable to access file /wrkdirs/usr/ports/devel/boost-libs/work/stage/usr/local/lib/libboost_locale.so: No such file or directory > pkg-static: Unable to access file /wrkdirs/usr/ports/devel/boost-libs/work/stage/usr/local/lib/libboost_locale.so.1.55.0: No such file or directory > pkg-static: Unable to access file /wrkdirs/usr/ports/devel/boost-libs/work/stage/usr/local/lib/libboost_locale.so.5: No such file or directory
A commit references this bug: Author: truckman Date: Sun Sep 27 08:34:00 UTC 2015 New revision: 398027 URL: https://svnweb.freebsd.org/changeset/ports/398027 Log: Unbreak the build when the ICU option is unset on FreeBSD 9.3. USES must be set before including bsd.port.pre.mk, which is included by boost-all/compiled.mk. The easiest fix for the conditional USES+=iconv being too late seems to be to use an option helper. For consistency use an option helper for the LIB_DEPENDS. PR: 203285 Changes: head/devel/boost-libs/Makefile
Not sure if I'm doing something wrong but I still can't install boost-libs even after updating the ports tree, cleaning the port and trying to rebuild. The Makefile says it's revision 398060 so I know it's been update but I get the exact same errors as I specified before. Also, this is with all options "off".
(In reply to SBB from comment #2) The !ICU case got broken by the conversion to option helpers in r398060. The problem is that ICU_VARS_OFF=BJAM_ARGS+=-sICONV_PATH=${ICONV_PREFIX} doesn't work, probably because ICONV_PREFIX is defined by a conditional USES and probably gets defined too late. If you want to build without ICU, then revert back to r398027 or try this patch: <https://bugs.freebsd.org/bugzilla/attachment.cgi?id=161519> from: <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198658>. I'm currently testing it and hope to commit it late tomorrow if it doesn't break anything else.
Thanks for the fast update. I had actually tried reverting to r398027 earlier but it gives me the following error: > test9:/usr/ports/devel/boost-libs # make > "Makefile", line 33: Malformed conditional (${PORT_OPTIONS:MICU}) > "Makefile", line 35: if-less else > "Makefile", line 37: if-less endif > Error expanding embedded variable. But I tried the patch and I was able to build and install boost-libs just fine on my 9.3 system. I also tried the patch on a 10.2 system, just out of interest, and boost-libs built and installed fine.
(In reply to Don Lewis from comment #3) This problem should now be fixed by Mk/bsd.options.mk r398258 which fixed a problem in the framework that caused ${ICONV_PREFIX} to not be useable in ICU_VARS_OFF. A somewhat different fix for <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198658> will be committed later today, so expect a conflict when you next update your ports tree if you have the previously mentioned patch applied.