Created attachment 176586 [details] metadata patch file When selecting the "use PAM" build option, building "uucpd" fails because libpam is not linked: --- uucpd --- cc -O2 -pipe -fstack-protector -fno-strict-aliasing -DPREFIX=\"/usr/local\" -DUSE_PAM_NEW -DUSE_PAM -std=gnu99 -fstack-protector-strong -Qunused-arguments -fstack-protector -o uucpd uucpd.o -lcrypt -lutil uucpd.o: In function `doit': uucpd.c:(.text+0x348): undefined reference to `pam_start' .... cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [uucpd] Error code 1 make[3]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd ===> Compilation failed unexpectedly. The attached patch sets the make variable MINUSLPAM so uucpd is successfully linked.
Sorry, I can not reproduce your problem. FreeBSD 10.3 amd64: LIBPAM, MINUSLPAM is defined in /usr/share/mk/bsd.libnames.mk which detect all needed libraries. cd /usr/ports/net/freebsd-uucp make clean OPTIONS_SET=PAM configure cd `make -V WRKSRC` cd uucpd make WITH_PAM= -V LIBPAM -V MINUSLPAM /usr/lib/libpam.a -lpam Hardcoding it to -lpam might help you, but your patch will fail when you build your system with kerberos or other options. make WITH_PAM= -V MINUSLPAM LDFLAGS=-static -lpam -lkrb5 -lhx509 -lasn1 -lcrypto -lcrypt -lroken -lcom_err -lradius -ltacplus -lcrypt -lutil -lopie -lmd -lssh -lcrypto -lcrypt -lypclnt Please check your base system, some files may be missing or broken.
I have no 10.x system anymore, but this happens on three 11.0-RELEASE hosts I'm running: I will try with a virtualbox 10.3-RELEASE tomorrow » freebsd-version -u -k 11.0-RELEASE-p2 11.0-RELEASE-p3 net/freebsd-uucp » make ===> Building for freebsd-uucp-pam-1.07.3_3 --- all --- (cd uucp && /usr/bin/make all) --- all --- ===> libunix (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/libunix ===> libuucp (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/libuucp ===> libuuconf (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/libuuconf ===> sample (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/sample ===> cu (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/cu ===> uuchk (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uuchk ===> uucico (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uucico ===> uuconv (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uuconv ===> uucp (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uucp ===> uulog (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uulog ===> uuname (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uuname ===> uupick (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uupick ===> uusched (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uusched ===> uustat (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uustat ===> uuto (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uuto ===> uux (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uux ===> uuxqt (all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucp/uuxqt (cd uucpd && /usr/bin/make all) --- objwarn --- Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd --- uucpd --- cc -O2 -pipe -fstack-protector -fno-strict-aliasing -DPREFIX=\"/usr/local\" -DUSE_PAM_NEW -DUSE_PAM -std=gnu99 -fstack-protector-strong -Qunused-arguments -fstack-protector -o uucpd uucpd.o -lcrypt -lutil uucpd.o: In function `doit': uucpd.c:(.text+0x348): undefined reference to `pam_start' uucpd.c:(.text+0x35a): undefined reference to `pam_strerror' uucpd.c:(.text+0x378): undefined reference to `pam_set_item' uucpd.c:(.text+0x38e): undefined reference to `pam_strerror' uucpd.c:(.text+0x493): undefined reference to `pam_setcred' uucpd.c:(.text+0x4a5): undefined reference to `pam_strerror' uucpd.c:(.text+0x4ca): undefined reference to `pam_close_session' uucpd.c:(.text+0x4de): undefined reference to `pam_strerror' uucpd.c:(.text+0x503): undefined reference to `pam_end' uucpd.c:(.text+0x515): undefined reference to `pam_strerror' uucpd.c:(.text+0x556): undefined reference to `pam_authenticate' uucpd.c:(.text+0x58d): undefined reference to `pam_get_item' uucpd.c:(.text+0x59f): undefined reference to `pam_strerror' uucpd.c:(.text+0x5c7): undefined reference to `pam_strerror' uucpd.c:(.text+0x621): undefined reference to `pam_acct_mgmt' uucpd.c:(.text+0x644): undefined reference to `pam_chauthtok' uucpd.c:(.text+0x65f): undefined reference to `pam_strerror' uucpd.c:(.text+0x68b): undefined reference to `pam_end' uucpd.c:(.text+0x69d): undefined reference to `pam_strerror' uucpd.c:(.text+0x715): undefined reference to `pam_setcred' uucpd.c:(.text+0x727): undefined reference to `pam_strerror' uucpd.c:(.text+0x74c): undefined reference to `pam_close_session' uucpd.c:(.text+0x760): undefined reference to `pam_strerror' uucpd.c:(.text+0x785): undefined reference to `pam_end' uucpd.c:(.text+0x797): undefined reference to `pam_strerror' uucpd.c:(.text+0x8a2): undefined reference to `pam_setcred' uucpd.c:(.text+0x8b4): undefined reference to `pam_open_session' uucpd.c:(.text+0x8c6): undefined reference to `pam_strerror' uucpd.c:(.text+0x8e1): undefined reference to `pam_strerror' uucpd.c:(.text+0x909): undefined reference to `pam_end' uucpd.c:(.text+0x91b): undefined reference to `pam_strerror' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [uucpd] Error code 1 make[3]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd 1 error make[3]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd *** [all] Error code 2 make[2]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3 1 error make[2]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3 ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make[1]: stopped in /usr/ports/net/freebsd-uucp *** Error code 1 Stop. make: stopped in /usr/ports/net/freebsd-uucp net/freebsd-uucp »
% vagrant init freebsd/FreeBSD-11.0-RELEASE-p1; vagrant up --provider virtualbox Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'freebsd/FreeBSD-11.0-RELEASE-p1' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Loading metadata for box 'freebsd/FreeBSD-11.0-RELEASE-p1' default: URL: https://atlas.hashicorp.com/freebsd/FreeBSD-11.0-RELEASE-p1 ==> default: Adding box 'freebsd/FreeBSD-11.0-RELEASE-p1' (v2016.09.29) for provider: virtualbox default: Downloading: https://atlas.hashicorp.com/freebsd/boxes/FreeBSD-11.0-RELEASE-p1/versions/2016.09.29/providers/virtualbox.box [...] [ Second "vagrant up" fixes some base box issues, see https://lists.freebsd.org/pipermail/freebsd-bugs/2015-July/063189.html ] % vagrant up % vagrant ssh vagrant@:~ % sudo -s # portsnap fetch # portsnap extract # cd /usr/ports/net/freebsd-uucp/ # make config # make [...] (cd uucpd && /usr/bin/make all) Warning: Object directory not changed from original /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd echo uucpd: /usr/lib/libc.a /usr/lib/libcrypt.a /usr/lib/libutil.a /usr/lib/libpam.a >> .depend cc -O2 -pipe -fstack-protector -fno-strict-aliasing -DPREFIX=\"/usr/local\" -DUSE_PAM_NEW -DUSE_PAM -MD -MF.depend.uucpd.o -MTuucpd.o -std=gnu99 -fstack-protector-strong -Qunused-arguments -c uucpd.c -o uucpd.o uucpd.c:163:26: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] if (getpeername(0, sin, &hisaddrlen) < 0) { ^~~~~~~~~~~ /usr/include/sys/socket.h:622:74: note: passing argument to parameter here int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict); ^ uucpd.c:375:6: warning: comparison of array 'remotehost' not equal to a null pointer is always true [-Wtautological-pointer-compare] if (remotehost != NULL && ^~~~~~~~~~ ~~~~ 2 warnings generated. cc -O2 -pipe -fstack-protector -fno-strict-aliasing -DPREFIX=\"/usr/local\" -DUSE_PAM_NEW -DUSE_PAM -std=gnu99 -fstack-protector-strong -Qunused-arguments -fstack-protector -o uucpd uucpd.o -lcrypt -lutil uucpd.o: In function `doit': uucpd.c:(.text+0x348): undefined reference to `pam_start' uucpd.c:(.text+0x35a): undefined reference to `pam_strerror' uucpd.c:(.text+0x378): undefined reference to `pam_set_item' uucpd.c:(.text+0x38e): undefined reference to `pam_strerror' uucpd.c:(.text+0x493): undefined reference to `pam_setcred' uucpd.c:(.text+0x4a5): undefined reference to `pam_strerror' uucpd.c:(.text+0x4ca): undefined reference to `pam_close_session' uucpd.c:(.text+0x4de): undefined reference to `pam_strerror' uucpd.c:(.text+0x503): undefined reference to `pam_end' uucpd.c:(.text+0x515): undefined reference to `pam_strerror' uucpd.c:(.text+0x556): undefined reference to `pam_authenticate' uucpd.c:(.text+0x58d): undefined reference to `pam_get_item' uucpd.c:(.text+0x59f): undefined reference to `pam_strerror' uucpd.c:(.text+0x5c7): undefined reference to `pam_strerror' uucpd.c:(.text+0x621): undefined reference to `pam_acct_mgmt' uucpd.c:(.text+0x644): undefined reference to `pam_chauthtok' uucpd.c:(.text+0x65f): undefined reference to `pam_strerror' uucpd.c:(.text+0x68b): undefined reference to `pam_end' uucpd.c:(.text+0x69d): undefined reference to `pam_strerror' uucpd.c:(.text+0x715): undefined reference to `pam_setcred' uucpd.c:(.text+0x727): undefined reference to `pam_strerror' uucpd.c:(.text+0x74c): undefined reference to `pam_close_session' uucpd.c:(.text+0x760): undefined reference to `pam_strerror' uucpd.c:(.text+0x785): undefined reference to `pam_end' uucpd.c:(.text+0x797): undefined reference to `pam_strerror' uucpd.c:(.text+0x8a2): undefined reference to `pam_setcred' uucpd.c:(.text+0x8b4): undefined reference to `pam_open_session' uucpd.c:(.text+0x8c6): undefined reference to `pam_strerror' uucpd.c:(.text+0x8e1): undefined reference to `pam_strerror' uucpd.c:(.text+0x909): undefined reference to `pam_end' uucpd.c:(.text+0x91b): undefined reference to `pam_strerror' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [uucpd] Error code 1 make[3]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd 1 error make[3]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3/uucpd *** [all] Error code 2 make[2]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3 1 error make[2]: stopped in /usr/ports/net/freebsd-uucp/work/freebsd-uucp-r1_07_3 ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make[1]: stopped in /usr/ports/net/freebsd-uucp *** Error code 1 Stop. make: stopped in /usr/ports/net/freebsd-uucp
This commit removes "MINUSLPAM" altogether. https://github.com/freebsd/freebsd/commit/64307db9dad086ba5b1955726a985f18c8068000 At a first glance, this also affects security/pam_helper
A commit references this bug: Author: dinoex Date: Mon Nov 14 00:04:55 UTC 2016 New revision: 426076 URL: https://svnweb.freebsd.org/changeset/ports/426076 Log: - fix build on FreeBSD-11 with option PAM PR: 214161 Changes: head/net/freebsd-uucp/Makefile