Date: Wed, 09 Jun 2010 23:34:12 -0400 From: Alex Goncharov <alex-goncharov@comcast.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/147747: bash-4.1 stealthily depends on libiconv Message-ID: <E1OMYWy-000IEw-FC@daland.home> Resent-Message-ID: <201006100340.o5A3e3OM025980@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 147747 >Category: ports >Synopsis: bash-4.1 stealthily depends on libiconv >Confidential: yes >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Jun 10 03:40:03 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Alex Goncharov >Release: >Organization: >Environment: >Description: For as much as I can remember, building `shells/bash' with WITHOUT_NLS=1 resulted in /usr/local/bin/bash not being dependent on libiconv.so -- which is what I want. Let's look at the situation with `bash' built in 2010-01: ---------------------------------------- grep NLS /etc/make.conf => WITHOUT_NLS= 1 -------------------- pkg_which /usr/local/bin/bash => bash-4.0.35 -------------------- pkg_info -r bash-\* => Information for bash-4.0.35: Depends on: -------------------- ls -l /usr/local/bin/bash => -rwxr-xr-x 1 root wheel 729376 Jan 4 21:10 /usr/local/bin/bash* -------------------- ldd /usr/local/bin/bash => /usr/local/bin/bash: libncurses.so.8 => /lib/libncurses.so.8 (0x8006df000) libc.so.7 => /lib/libc.so.7 (0x80082b000) ---------------------------------------- Can't argue with this -- the desired and logically consistent result. Let's now look at the `bash' just built, on a different machine: ---------------------------------------- grep NLS /etc/make.conf => WITHOUT_NLS= 1 -------------------- pkg_which /usr/local/bin/bash => bash-4.1.5_2 -------------------- pkg_info -r bash-\* => Information for bash-4.1.5_2: Depends on: ls -l /usr/local/bin/bash => -rwxr-xr-x 1 root wheel 632140 Jun 9 20:24 /usr/local/bin/bash* -------------------- ldd /usr/local/bin/bash => /usr/local/bin/bash: libncurses.so.8 => /lib/libncurses.so.8 (0x28120000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28160000) libc.so.7 => /lib/libc.so.7 (0x28256000) ^^^^^ libiconv is both undesirable and "unregistered" -- see the next example. ---------------------------------------- make -C /usr/ports/shells/bash run-depends-list| grep libiconv => ---------------------------------------- It would be ideal to be able to exclude libiconv from the build and dependency, subject to a certain make variable setting, but this seems to be difficult to do without the port surgery available only to the port maintainer, so at least let's register the libiconv dependency correctly, so that the installation from a package results in a workable `bash'. Applying a trivial patch (enclosed) I get now: ---------------------------------------- make -C /usr/ports/shells/bash run-depends-list| grep libiconv => /usr/ports/converters/libiconv -------------------- ldd /usr/local/bin/bash => /usr/local/bin/bash: libncurses.so.8 => /lib/libncurses.so.8 (0x28120000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28160000) libc.so.7 => /lib/libc.so.7 (0x28256000) ---------------------------------------- >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: < Release: >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1OMYWy-000IEw-FC>