Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 254840 - sys-libs/libcap-2.15 fails during src_install if USE=-pam and some pam headers exist
Summary: sys-libs/libcap-2.15 fails during src_install if USE=-pam and some pam header...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-13 14:25 UTC by Bruno
Modified: 2009-01-17 17:18 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bruno 2009-01-13 14:25:02 UTC
libcap tries to link to pam library if security/pam_modules.h exists even
though USE=-pam is being used.

The reason is that Makefile includes Make.Rules which checks for above include
file overwriting the PAM_CAP environment variable telling it to skip any
pam-related compilation.


For libcap-2.15 the failure happens in src_install() when make is called without telling it about PAM.

 src_install() {
-        emake install DESTDIR="${D}" lib=$(get_libdir) || die
+        emake install DESTDIR="${D}" lib=$(get_libdir) \
+          PAM_CAP=$(use pam && echo yes || echo no) || die

        gen_usr_ldscript libcap.so
        mv "${D}"/$(get_libdir)/libcap.a "${D}"/usr/$(get_libdir)/ || die

        dopammod pam_cap/pam_cap.so
        dopamsecurity '' pam_cap/capability.conf

        dodoc CHANGELOG README doc/capability.notes
}



Build log:
>>> Test phase [not enabled]: sys-libs/libcap-2.15

>>> Install libcap-2.15 into /var/tmp/portage/sys-libs/libcap-2.15/image/ category sys-libs
make -C libcap install
make[1]: Entering directory `/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/libcap'
mkdir -p -m 0755 /var/tmp/portage/sys-libs/libcap-2.15/image//usr/include/sys
install -m 0644 include/sys/capability.h /var/tmp/portage/sys-libs/libcap-2.15/image//usr/include/sys
mkdir -p -m 0755 /var/tmp/portage/sys-libs/libcap-2.15/image//lib64
install -m 0644 libcap.a /var/tmp/portage/sys-libs/libcap-2.15/image//lib64/libcap.a
install -m 0644 libcap.so.2.15 /var/tmp/portage/sys-libs/libcap-2.15/image//lib64/libcap.so.2.15
ln -sf libcap.so.2.15 /var/tmp/portage/sys-libs/libcap-2.15/image//lib64/libcap.so.2
ln -sf libcap.so.2 /var/tmp/portage/sys-libs/libcap-2.15/image//lib64/libcap.so
make[1]: Leaving directory `/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/libcap'
make -C pam_cap install
make[1]: Entering directory `/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap'
x86_64-pc-linux-gnu-gcc -O2 -march=nocona -pipe -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -fPIC -I/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap/include -I/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap/include -Dlinux -c pam_cap.c -o pam_cap.o
pam_cap.c: In function 'pam_sm_setcred':
pam_cap.c:298: warning: dereferencing type-punned pointer will break strict-aliasing rules
x86_64-pc-linux-gnu-gcc -Wl,-x -shared -O2 -march=nocona -pipe -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -fPIC -Wl,-O1 -L/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/libcap -L/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap -o pam_cap.so pam_cap.o -lcap
make testcompile
make[2]: Entering directory `/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap'
x86_64-pc-linux-gnu-gcc -O2 -march=nocona -pipe -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -fPIC -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -fPIC -I/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap/include -I/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap/include -Dlinux -Wl,-O1 -L/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/libcap -L/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap -L/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap/../libcap -o testcompile test.c pam_cap.o -lpam -ldl -lcap
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lpam
collect2: ld returned 1 exit status
make[2]: *** [testcompile] Error 1
make[2]: Leaving directory `/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/sys-libs/libcap-2.15/work/libcap-2.15/pam_cap'
make: *** [install] Error 2
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2009-01-13 14:39:36 UTC
Reasssigning to base-system herd.