Bug 203285 - devel/boost-libs: fails to install on FreeBSD 9.3-RELEASE
Summary: devel/boost-libs: fails to install on FreeBSD 9.3-RELEASE
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Don Lewis
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-23 14:24 UTC by SBB
Modified: 2015-10-01 23:18 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (office)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description SBB 2015-09-23 14:24:16 UTC
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
Comment 1 commit-hook freebsd_committer freebsd_triage 2015-09-27 08:34:15 UTC
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
Comment 2 SBB 2015-09-29 19:45:45 UTC
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".
Comment 3 Don Lewis freebsd_committer freebsd_triage 2015-09-29 20:42:37 UTC
(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.
Comment 4 SBB 2015-09-29 22:16:29 UTC
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.
Comment 5 Don Lewis freebsd_committer freebsd_triage 2015-10-01 18:36:00 UTC
(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.