[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#211675: marked as done (busybox-cvs-udeb: fails to use internal libpwdgrp; breaks 'id' and others)

Your message dated Fri, 03 Oct 2003 12:44:05 -0400
with message-id <E1A5T2D-0008G1-00@auric.debian.org>
and subject line Bug#211675: fixed in busybox-cvs 20030926-1
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

Received: (at submit) by bugs.debian.org; 19 Sep 2003 12:13:41 +0000
>From sesse@samfundet.no Fri Sep 19 07:13:23 2003
Return-path: <sesse@samfundet.no>
Received: from cassarossa.samfundet.no [] 
	by master.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1A0K8Z-0008EU-00; Fri, 19 Sep 2003 07:13:23 -0500
Received: by cassarossa.samfundet.no (Postfix, from userid 20053)
	id 243244B999; Fri, 19 Sep 2003 14:13:22 +0200 (CEST)
From: "Steinar H. Gunderson" <sgunderson@bigfoot.com>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: busybox-cvs-udeb: fails to use internal libpwdgrp; breaks 'id' and others
X-Mailer: reportbug 1.50
Date: Fri, 19 Sep 2003 14:13:22 +0200
Message-Id: <20030919121322.243244B999@cassarossa.samfundet.no>
Delivered-To: submit@bugs.debian.org
X-Spam-Status: No, hits=-5.0 required=4.0
X-Spam-Checker-Version: SpamAssassin 2.53-bugs.debian.org_2003_9_16 (

Package: busybox-cvs-udeb
Version: 0.60.99.cvs20030819
Severity: normal
Tags: patch upstream d-i

busybox has its own internal libpwdgrp, providing standard functions
like getgrnam() etc. without having to resort to external libc (which
uses NSS, which does not work during a d-i install since the NSS
libraries would be too big to include). However, when building busybox,
the last line reads

  gcc -s -Wl,-warn-common -o busybox ./applets/applets.a (other .a files
  here) ./libpwdgrp/libpwdgrp.a ./coreutils/libcoreutils/libcoreutils.a

coreutils/id.c (among others) uses a function called "my_getgrnam" from
libbb.a, which in turn calls getgrnam() which it expects to find in
libpwdgrp.a.  However, since GNU ld only searches .a files coming
_later_ on the command line compared to the file it searches in, it
never searches libpwdgrp.a and thus searches for it in libc.so.6 instead
(where it finds it). Thus, it breaks at runtime since NSS is not
available, and glibc can only do a small amount of /etc/{passwd,group}
reading without libnss_files.so.2.

To make things worse, libpwdgrp.a depends on some variables from libbb.a
again, so it's not possible to solve this by simple rearranging. The
only way I can see how this could be made to work (without going through
all such dependencies and resolve them, which could be quite a task), is
to use the --start-group and --end-group flags from GNU ld. With them,
the linker searches all .a files every time instead of just those coming
later. This results in a performance penalty at link time (although on
my machine, busybox linking is so fast I can't notice any delay at all
:-) ), but it solves the problem and makes busybox use libpwdgrp
correctly at all times.

The included patch adds -Wl,--start-group and -Wl,--end-group to the
Makefile, causing all the .a files to be treated as a group. One could
of course make smaller groups (for instance, a group from libpwdgrp.a up
to and including libbb.a), but I don't know if this breaks other places,
and the link is fast enough anyhow, IMO. It makes busybox depend on GNU
ld for building, but I don't know any target systems for busybox where
GNU ld is not already standard :-)

-- System Information
Debian Release: 3.0
Architecture: i386
Kernel: Linux cassarossa 2.4.20 #4 SMP Tue Mar 18 18:01:22 CET 2003 i686
Locale: LANG=en_US, LC_CTYPE=en_US.ISO8859-1

Received: (at 211675-close) by bugs.debian.org; 3 Oct 2003 16:53:43 +0000
>From troup@auric.debian.org Fri Oct 03 11:53:43 2003
Return-path: <troup@auric.debian.org>
Received: from auric.debian.org [] 
	by master.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1A5TBX-0001fH-00; Fri, 03 Oct 2003 11:53:43 -0500
Received: from troup by auric.debian.org with local (Exim 3.35 1 (Debian))
	id 1A5T2D-0008G1-00; Fri, 03 Oct 2003 12:44:05 -0400
From: Bastian Blank <waldi@debian.org>
To: 211675-close@bugs.debian.org
X-Katie: lisa $Revision: 1.25 $
Subject: Bug#211675: fixed in busybox-cvs 20030926-1
Message-Id: <E1A5T2D-0008G1-00@auric.debian.org>
Sender: James Troup <troup@auric.debian.org>
Date: Fri, 03 Oct 2003 12:44:05 -0400
Delivered-To: 211675-close@bugs.debian.org

Source: busybox-cvs
Source-Version: 20030926-1

We believe that the bug you reported is fixed in the latest version of
busybox-cvs, which is due to be installed in the Debian FTP archive:

  to pool/main/b/busybox-cvs/busybox-cvs-floppy-udeb_20030926-1_i386.udeb
  to pool/main/b/busybox-cvs/busybox-cvs-static_20030926-1_i386.deb
  to pool/main/b/busybox-cvs/busybox-cvs-udeb_20030926-1_i386.udeb
  to pool/main/b/busybox-cvs/busybox-cvs_20030926-1.diff.gz
  to pool/main/b/busybox-cvs/busybox-cvs_20030926-1.dsc
  to pool/main/b/busybox-cvs/busybox-cvs_20030926-1_i386.deb
  to pool/main/b/busybox-cvs/busybox-cvs_20030926.orig.tar.gz

A summary of the changes between this version and the previous one is

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 211675@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
Bastian Blank <waldi@debian.org> (supplier of updated busybox-cvs package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)

Hash: SHA1

Format: 1.7
Date: Fri, 26 Sep 2003 15:10:14 +0200
Source: busybox-cvs
Binary: busybox-cvs-static busybox-cvs busybox-cvs-udeb busybox-cvs-floppy-udeb
Architecture: source i386
Version: 20030926-1
Distribution: unstable
Urgency: low
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Bastian Blank <waldi@debian.org>
 busybox-cvs - Tiny utilities for small and embedded systems
 busybox-cvs-floppy-udeb - Tiny utilities for the debian-installer floppy images (udeb)
 busybox-cvs-static - Standalone rescue shell with tons of builtin utilities
 busybox-cvs-udeb - Tiny utilities for the debian-installer (udeb)
Closes: 211457 211675 212485 212764
 busybox-cvs (20030926-1) unstable; urgency=low
   * new cvs version
   * Makefile
     - fix libpwdgrp link (upstream) (closes: #211675)
   * Rules.mak.in
     - fix optimization (closes: #212485)
   * debian/config*
     - update
   * debian/config*udeb*
     - move linux-i386 to linux (enable modutils on any linux arch)
     - rename net to floppy
     - enable wget status bar (closes: #211457)
   * init/init.c
     - workaround race conditions (closes: #212764)
 60a493fd4db044e93d4c863bb6db84ef 835 - optional busybox-cvs_20030926-1.dsc
 bb886187fc0edbbcac3366b1a2e402c6 1273560 - optional busybox-cvs_20030926.orig.tar.gz
 375af534f0e870a765a393dac512f6eb 153756 - optional busybox-cvs_20030926-1.diff.gz
 510764227807c67f234b76c385134e44 101040 utils optional busybox-cvs_20030926-1_i386.deb
 6bc9d5dcd7cc9efd6ace0b1b0cc845b2 636756 shells optional busybox-cvs-static_20030926-1_i386.deb
 605069664a3b9ebaef28e4e5528fb3be 134516 debian-installer extra busybox-cvs-udeb_20030926-1_i386.udeb
 f45b0767d769e57c5126af2a7603941f 115850 debian-installer extra busybox-cvs-floppy-udeb_20030926-1_i386.udeb

Version: GnuPG v1.2.3 (GNU/Linux)


Reply to: