[arch-general] howto build shadow 4.1.5 with share libraries enabled?
All, I am having trouble building the new shadow (4.1.5) from ABS so that libshadow.so.0 is created and installed. I have tried modifying lib/Makefile.am like was done in 4.1.4: #Ugh, force this to build shared libraries, for god's sake sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am But that produces no pkg/lib at all in the build directory. I have also tried setting the --enable-share configure option, but the build fails with that option set: libtool: link: gcc -march=i686 -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 login login.o login_nopam.o ../libmisc/libmisc.a ../lib/.libs/libshadow.a -lcrypt -lpam -lpam_misc login.o: In function `get_failent_user': login.c:(.text+0x1a): undefined reference to `getdef_bool' login.o: In function `main': login.c:(.text.startup+0x4ec): undefined reference to `getdef_unum' login.c:(.text.startup+0x517): undefined reference to `getdef_unum' login.c:(.text.startup+0x52f): undefined reference to `getdef_unum' <snip> I know /lib/libshadow.so.0 was dropped in the move from shadow 4.1.4.3-5 > 4.1.5, but is it possible to build the new shadow and have it create libshadow.so.0? If so, how? This might be basic, but obviously I'm ignorant to the solution. Thanks. -- David C. Rankin, J.D.,P.E.
David, On Tue, Feb 21, 2012 at 6:24 PM, David C. Rankin <drankinatty@suddenlinkmail.com> wrote:
I am having trouble building the new shadow (4.1.5) from ABS so that libshadow.so.0 is created and installed. I have tried modifying lib/Makefile.am like was done in 4.1.4:
I don't know much about shadow, but Dave (shadow maintainer) wrote this the other day[0]: "The shared lib built with shadow was a hack in the PKGBUILD that I removed for the 4.1.5 release as the code would not get past the linker without further changes. Packages which linked against this phantom .so did so in error (likely due to crappy upstream autoconf/automake decisions). shadow doesn't even provide an include -- shadow.h is part of glibc, but doesn't even prototype the functions which were exported in shadow.so. Furthermore, it's generally a Bad Idea™ to be using shadow based authentication in the age of PAM." It seems that the best solution would be to fix whatever depends on shadow to not do so any more. I take it from one of your previous messages that the issue is Trinity? In which case you might struggle to make things work (as upstream is basically dead). Maybe a different desktop environment might be the simplest solution ;-) (KDE is awesome these days!). Best of luck, Tom [0] https://bugs.archlinux.org/task/28483#comment89537 (this was, by the way, the first hit when I googled "libshadow.so").
On 02/21/2012 11:40 AM, Tom Gundersen wrote:
It seems that the best solution would be to fix whatever depends on shadow to not do so any more. I take it from one of your previous messages that the issue is Trinity? In which case you might struggle to make things work (as upstream is basically dead). Maybe a different desktop environment might be the simplest solution ;-) (KDE is awesome these days!).
Best of luck,
Tom
Thanks Tom, It's kdm. The Trinity project is going fantastic these days. (http://git.trinitydesktop.org/cgit/). Dead? The source code is less than 10 minutes old :) I just have an old version of Trinity installed while the current version stabilizes and we update PKGBUILD sources to handle the git tree. (nothing like a move from svn to git to add more work) I'll work to get kdm fixed. It is apparent that shadow isn't the problem. -- David C. Rankin, J.D.,P.E.
On 02/21/2012 12:24 PM, David C. Rankin wrote:
All,
I am having trouble building the new shadow (4.1.5) from ABS so that libshadow.so.0 is created and installed. I have tried modifying lib/Makefile.am like was done in 4.1.4:
#Ugh, force this to build shared libraries, for god's sake sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am
But that produces no pkg/lib at all in the build directory.
I have also tried setting the --enable-share configure option, but the build fails with that option set:
libtool: link: gcc -march=i686 -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 login login.o login_nopam.o ../libmisc/libmisc.a ../lib/.libs/libshadow.a -lcrypt -lpam -lpam_misc login.o: In function `get_failent_user': login.c:(.text+0x1a): undefined reference to `getdef_bool' login.o: In function `main': login.c:(.text.startup+0x4ec): undefined reference to `getdef_unum' login.c:(.text.startup+0x517): undefined reference to `getdef_unum' login.c:(.text.startup+0x52f): undefined reference to `getdef_unum' <snip>
I know /lib/libshadow.so.0 was dropped in the move from shadow 4.1.4.3-5 > 4.1.5, but is it possible to build the new shadow and have it create libshadow.so.0? If so, how? This might be basic, but obviously I'm ignorant to the solution. Thanks.
try this from ./configure --help --enable-shared[=PKGS] build shared libraries [default=no] --enable-static[=PKGS] build static libraries [default=yes] so add --enable-shared to your configure command
participants (3)
-
Baho Utot
-
David C. Rankin
-
Tom Gundersen