[arch-general] [SOLVED] Re: rebuilding shadow 4.1.4.3-5 fails DSO problem with libattr - where to patch?
David C. Rankin
drankinatty at suddenlinkmail.com
Sat Feb 18 15:34:56 EST 2012
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 02/18/2012 12:58 PM, Leonid Isaev wrote:
> On Sat, 18 Feb 2012 12:43:07 -0600
> "David C. Rankin" <drankinatty at suddenlinkmail.com> wrote:
>
>> Guys
>>
>> The update to shadow has caused problems and I needed to rebuild shadow
>> 4.1.4.3-5. I have run into the DSO error regarding libattr. I know I need to
>> update the Makefile.am or patch the Makefile after the ./configure, but I'm
>> not having any luck. The error is:
>>
>> /bin/sh ../libtool --tag=CC --mode=link gcc -march=x86-64 -mtune=generic
>> -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2
>> -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -lcrypt -o
>> useradd useradd.o ../libmisc/libmisc.a ../lib/libshadow.la -lpam
>> -lpam_misc -lacl libtool: link: gcc -march=x86-64 -mtune=generic -O2 -pipe
>> -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wl,-O1
>> -Wl,--sort-common -Wl,--as-needed -Wl,-z -Wl,relro -Wl,--hash-style=gnu
>> -o .libs/useradd useradd.o ../libmisc/libmisc.a ../lib/.libs/libshadow.so
>> -lcrypt -lpam -lpam_misc -lacl /usr/bin/ld: ../libmisc/libmisc.a(copydir.o):
>> undefined reference to symbol 'attr_copy_fd@@ATTR_1.1'
>> /usr/bin/ld: note: 'attr_copy_fd@@ATTR_1.1' is defined in
>> DSO /lib/libattr.so.1 so try adding it to the linker command line
>> /lib/libattr.so.1: could not read symbols: Invalid operation
>> collect2: ld returned 1 exit status
>>
>> I think I need the explicit -llibattr in the CFLAGS line of the Makefile,
>> but trying to patch it after ./configure isn't working. How do I properly
>> handle this?
>>
>>
>
> See the diff here:
> http://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/shadow&id=f0072b844c5bc17797c6b483acfec170a5024163
Thank you Leonid!
That was the help I needed. I particularly liked Aaron or Dave's comments in
the existing PKGBUILD:
# #Ugh, force this to build shared libraries, for god's sake
# sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am
The primary fix was the new Makefile.am update:
# avoid transitive linking issues with binutils 2.22
sed -i '/^user\(mod\|add\)_LDADD/s|$| -lattr|' src/Makefile.am
I don't know if there is any interest is fixing the pkgbuild for the old
version or if this is the type of thing that just becomes an AUR package. I
incorporated the clean-ups that are in the shadow 5 package. The diff for the
existing 4.1.4.3-5 PKGBUILD needed in order to rebuild it on Arch is:
- --- shadow/PKGBUILD
+++ shadow/PKGBUILD 2012-02-18 14:27:01.108051179 -0600
@@ -17,7 +17,7 @@
etc/pam.d/{chfn,chgpasswd,groupmems,chsh}
etc/default/useradd)
options=('!libtool')
- -install=shadow.install
+install='shadow.install'
#http://pkg-shadow.alioth.debian.org/releases/shadow-$pkgver.tar.bz2
# shadow 4.1.4.3 is just shadow 4.1.4.2 with shadow_CVE-2011-0721.patch applied
source=(ftp://ftp.archlinux.org/other/shadow/shadow_4.1.4.2+svn3283.orig.tar.gz
@@ -42,14 +42,16 @@
'9db9e62ad173f31e1039121c0124cf60826ffd7e'
'0697a21f7519de30821da7772677035652df4ad2')
+
build() {
cd "$srcdir/$pkgname-4.1.4.2+svn3283"
- - #Ugh, force this to build shared libraries, for god's sake
- - sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am
+ # avoid transitive linking issues with binutils 2.22
+ sed -i '/^user\(mod\|add\)_LDADD/s|$| -lattr|' src/Makefile.am
+
libtoolize
autoreconf
- - export LDFLAGS="$LDFLAGS -lcrypt"
+ LDFLAGS+=" -lcrypt"
patch -p1 -i "$srcdir/xstrdup.patch"
patch -p1 -i "$srcdir/shadow_CVE-2011-0721.patch"
@@ -60,10 +62,13 @@
sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in
./configure \
- - --prefix=/usr --libdir=/lib \
- - --mandir=/usr/share/man --sysconfdir=/etc \
- - --enable-shared --disable-static \
- - --with-libpam --without-selinux
+ --prefix=/usr \
+ --libdir=/lib \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --with-libpam \
+ --without-selinux
+
make
}
@@ -87,11 +92,9 @@
install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs"
# PAM config - custom
- - install -Dm644 "$srcdir/login" "$pkgdir/etc/pam.d/login"
- - install -Dm644 "$srcdir/passwd" "$pkgdir/etc/pam.d/passwd"
- - install -Dm644 "$srcdir/chgpasswd" "$pkgdir/etc/pam.d/chgpasswd"
- - install -Dm644 "$srcdir/chpasswd" "$pkgdir/etc/pam.d/chpasswd"
- - install -Dm644 "$srcdir/newusers" "$pkgdir/etc/pam.d/newusers"
+ install -dm644 "$pkgdir/etc/pam.d"
+ install -t "$pkgdir/etc/pam.d" -m644
"$srcdir"/{login,passwd,chgpasswd,chpasswd,newusers}
+
# PAM config - from tarball
install -Dm644 etc/pam.d/groupmems "$pkgdir/etc/pam.d/groupmems"
- --
David C. Rankin, J.D.,P.E.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk9AC28ACgkQZMpuZ8CyrciEFACeP1UFWIJkNKR6SlBy9vFOT670
V3IAnRx3K3qoyfac31COpl7nbkKtqY2l
=lyaZ
-----END PGP SIGNATURE-----
More information about the arch-general
mailing list