With the recent upgrade to chromium, I was happy to get rid of pam/pambase again. So, after the chromium upgrade, I could emerge --depclean pam pambase. Depclean left libpam.so libpam.so.0 libpam.so.0.83.0 in the system, as it got linked in by tigervnc, which I tried rebuilding. All well so far. Sadly, compilation fails as long as the libpam files are still there (see message below). So I removed the preserved files manually, after which tigervnc compiles (and works) fine. The failure looks like this: libtool: compile: i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../.. -I../../common -I../../win -O2 -march=i686 -pipe -Wall -MT librfb_la-UnixPasswordValidator.lo -MD -MP -MF .deps/librfb_la-UnixPasswordValidator.Tpo -c UnixPasswordValidator.cxx -o librfb_la-UnixPasswordValidator.o >/dev/null 2>&1 mv -f .deps/librfb_la-SSecurityTLS.Tpo .deps/librfb_la-SSecurityTLS.Plo /bin/sh ../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../.. -I../../common -I../../win -O2 -march=i686 -pipe -Wall -MT librfb_la-pam.lo -MD -MP -MF .deps/librfb_la-pam.Tpo -c -o librfb_la-pam.lo `test -f 'pam.c' || echo './'`pam.c mv -f .deps/librfb_la-UnixPasswordValidator.Tpo .deps/librfb_la-UnixPasswordValidator.Plo libtool: compile: i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../.. -I../../common -I../../win -O2 -march=i686 -pipe -Wall -MT librfb_la-pam.lo -MD -MP -MF .deps/librfb_la-pam.Tpo -c pam.c -fPIC -DPIC -o .libs/librfb_la-pam.o pam.c:31:31: error: security/pam_appl.h: No such file or directory pam.c:42: warning: 'struct pam_response' declared inside parameter list pam.c:42: warning: its scope is only this definition or declaration, which is probably not what you want pam.c:42: warning: 'struct pam_message' declared inside parameter list pam.c: In function 'pam_callback': pam.c:47: error: invalid application of 'sizeof' to incomplete type 'struct pam_response' pam.c:50: error: 'PAM_CONV_ERR' undeclared (first use in this function) pam.c:50: error: (Each undeclared identifier is reported only once pam.c:50: error: for each function it appears in.) pam.c:53: error: invalid use of undefined type 'struct pam_response' pam.c:53: error: dereferencing pointer to incomplete type pam.c:53: error: 'PAM_SUCCESS' undeclared (first use in this function) pam.c:54: error: dereferencing pointer to incomplete type pam.c:55: error: 'PAM_TEXT_INFO' undeclared (first use in this function) pam.c:56: error: 'PAM_ERROR_MSG' undeclared (first use in this function) pam.c:57: error: invalid use of undefined type 'struct pam_response' pam.c:57: error: dereferencing pointer to incomplete type pam.c:59: error: 'PAM_PROMPT_ECHO_ON' undeclared (first use in this function) pam.c:60: error: invalid use of undefined type 'struct pam_response' pam.c:60: error: dereferencing pointer to incomplete type pam.c:62: error: 'PAM_PROMPT_ECHO_OFF' undeclared (first use in this function) pam.c:63: error: invalid use of undefined type 'struct pam_response' pam.c:63: error: dereferencing pointer to incomplete type pam.c: In function 'do_pam_auth': pam.c:80: error: variable 'conv' has initializer but incomplete type pam.c:81: warning: excess elements in struct initializer pam.c:81: warning: (near initialization for 'conv') pam.c:83: warning: excess elements in struct initializer pam.c:83: warning: (near initialization for 'conv') pam.c:80: error: storage size of 'conv' isn't known pam.c:84: error: 'pam_handle_t' undeclared (first use in this function) pam.c:84: error: 'h' undeclared (first use in this function) pam.c:85: warning: implicit declaration of function 'pam_start' pam.c:86: error: 'PAM_SUCCESS' undeclared (first use in this function) pam.c:87: warning: implicit declaration of function 'pam_authenticate' pam.c:89: warning: implicit declaration of function 'pam_acct_mgmt' pam.c:90: warning: implicit declaration of function 'pam_end' pam.c:80: warning: unused variable 'conv' make[3]: *** [librfb_la-pam.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f .deps/librfb_la-CSecurityTLS.Tpo .deps/librfb_la-CSecurityTLS.Plo make[3]: Leaving directory `/tmp/portage/net-misc/tigervnc-1.0.1_p20100914-r6/work/tigervnc/common/rfb' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/portage/net-misc/tigervnc-1.0.1_p20100914-r6/work/tigervnc/common' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/portage/net-misc/tigervnc-1.0.1_p20100914-r6/work/tigervnc' make: *** [all] Error 2 emake failed ^[[31;01m*^[[0m ERROR: net-misc/tigervnc-1.0.1_p20100914-r6 failed (compile phase): ^[[31;01m*^[[0m emake failed ^[[31;01m*^[[0m ^[[31;01m*^[[0m Call stack: ^[[31;01m*^[[0m ebuild.sh, line 56: Called src_compile ^[[31;01m*^[[0m environment, line 2781: Called die ^[[31;01m*^[[0m The specific snippet of code: ^[[31;01m*^[[0m emake || die "emake failed"; ^[[31;01m*^[[0m ^[[31;01m*^[[0m If you need support, post the output of 'emerge --info =net-misc/tigervnc-1.0.1_p20100914-r6', ^[[31;01m*^[[0m the complete build log and the output of 'emerge -pqv =net-misc/tigervnc-1.0.1_p20100914-r6'. ^[[31;01m*^[[0m The complete build log is located at '/var/log/portage/net-misc:tigervnc-1.0.1_p20100914-r6:20110525-103215.log'. ^[[31;01m*^[[0m The ebuild environment file is located at '/tmp/portage/net-misc/tigervnc-1.0.1_p20100914-r6/temp/environment'. ^[[31;01m*^[[0m S: '/tmp/portage/net-misc/tigervnc-1.0.1_p20100914-r6/work/tigervnc' ==================================== My emerge --info: Portage 2.2.0_alpha36 (default/linux/x86/10.0/desktop, gcc-4.4.5, glibc-2.12.2-r0, 2.6.38.7 i686) ================================================================= System uname: Linux-2.6.38.7-i686-Intel-R-_Core-TM-2_Duo_CPU_E8500_@_3.16GHz-with-gentoo-2.0.2 Timestamp of tree: Wed, 25 May 2011 08:30:01 +0000 app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.1-r1, 3.1.3-r1 dev-util/cmake: 2.8.4-r1 sys-apps/baselayout: 2.0.2 sys-apps/openrc: 0.8.2-r1 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.65-r1 sys-devel/automake: 1.9.6-r3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.5 sys-devel/gcc-config: 1.4.1-r1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.81-r2 sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers) sys-libs/glibc: 2.12.2 Repositories: gentoo Installed sets: ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /usr/share/X11 /usr/share/X11/xkb /usr/share/X11/xkb/compat /usr/share/X11/xkb/geometry /usr/share/X11/xkb/keycodes /usr/share/X11/xkb/keymap /usr/share/X11/xkb/rules /usr/share/X11/xkb/symbols/macintosh_vndr /usr/share/X11/xkb/symbols/sun_vndr /usr/share/X11/xkb/types" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en_US" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acpi bash-completion berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dri dts dvd dvdr emboss encode exif expat fam firefox flac fortran gdu gif gnutls gpm gtk iconv ipv6 java jpeg lcms mad minimal mmx mng modules mp3 mp4 mpeg mudflap ncurses nptl nptlonly ogg opengl openmp pango pcre pdf perl png policykit ppds pppd python qt3support readline session spell sqlite sse sse2 ssl svg sysfs system-sqlite tcpd threads tiff truetype udev unicode usb vim-syntax vorbis wmf x264 x86 xcb xml xorg xulrunner xv xvid zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" CALLIGRA_FEATURES="braindump flow karbon kexi kpresenter krita tables words" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LINGUAS="en_US" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
@change of subject: Nonononono! Tigervnc runs perfectly fine w/o pam, so it is not about depending on pam at all. I used it extensively for years without pam. I for one really do not want pam on my systems in the first place. Trouble is, the tigervnc's configure thinks that pam is present, which it isn't after removing it through depclean, which leaves the library in the system. That said, I am not shure what the proper and elegant solution is. Probably tell upstream to do more proper testing for pam presence, as in trying to use it. Thanks for consideration.
Well, you should ask about this upstream directly...