Opened 4 years ago

Closed 4 years ago

#58586 closed defect (worksforme)

perl5.28 @5.28.2+universal build error due to erroneous inclusion of -lnsl

Reported by: i3roly Owned by: mojca (Mojca Miklavec)
Priority: Normal Milestone:
Component: ports Version: 2.5.4
Keywords: Cc:
Port: perl5.28

Description (last modified by i3roly)


Perl 5.28.2 fails to build since the Configure script incorrectly includes -lnsl in the linking arguments, which then causes the entire build to fail.

Please fix.


I'm using Yosemite (10.10.5)

Attachments (1)

perl5282_macports.log (24.7 KB) - added by i3roly 4 years ago.
build log

Download all attachments as: .zip

Change History (6)

Changed 4 years ago by i3roly

Attachment: perl5282_macports.log added

build log

comment:1 Changed 4 years ago by i3roly

Description: modified (diff)

comment:2 Changed 4 years ago by ryandesign (Ryan Schmidt)

Cc: mojca removed
Keywords: perl removed
Owner: set to mojca
Port: perl5.28 added; perl removed
Status: newassigned
Summary: perl @5.28.2+universal build error due to erroneous inclusion of -lnslperl5.28 @5.28.2+universal build error due to erroneous inclusion of -lnsl

It built fine on our automated build system, so something must be different about your system.

Looking at your log and comparing it to mine, I note some differences. I see your tarball was extracted using /bin/tar. This is unexpected, because no such program exists on a stock macOS system. (On macOS, it's installed at /usr/bin/tar.) So what is /bin/tar and how did it get there, and what else has been installed into system directories that shouldn't be there?

As you noted, your build decided to use the library nsl; it also decided to use the library crypt. My build doesn't try to use either library. Neither library is part of macOS nor MacPorts. I'm not certain why your build did this, and it doesn't look like perl's Configure script creates a log so we can't inspect that either. But I added set -x near the beginning of the Configure script to see the commands it was running, and it looks like among other places it looks in /usr/local/lib for libraries. Do you perhaps have libcrypt and libnsl installed there? If so, please remove them (see wiki:FAQ#usrlocal). The Configure script also looks in /usr/lib, and although these libraries are not part of macOS and should not be there, we already know you have at least one file installed in a system directory that should not be there, so maybe there are others, so check /usr/lib for these libraries too. If you can find these libraries and remove them, clean perl5.28 and try again.

comment:3 Changed 4 years ago by i3roly

hi mojca,

right now /bin/tar is actually pointing to /usr/bin/tar.

GagansMacPro:~ Gagan$ /bin/tar --version
bsdtar 2.8.3 - libarchive 2.8.3

sometimes i use gnutar, so i use /bin as a symlink.

regarding libnsl and libcrypt. they are not in either /usr/lib/ or /usr/local/lib:

GagansMacPro:~ Gagan$ ls /usr/lib
CDDBLib					libSystem.B.dylib			libc++abi.dylib				libdns_services.dylib			libgettextpo.0.dylib			libipconfig.dylib			libnetsnmp.25.dylib			libpgtypes.3.dylib			libsasl2.2.dylib			libxslt.1.dylib
bundle1.o				libSystem.B_debug.tbd			libc.dylib				libdpkg.a				libgettextpo.a				libipsec.A.dylib			libnetsnmp.5.2.1.dylib			libpgtypes.dylib			libsasl2.dylib				libxslt.dylib
charset.alias				libSystem.dylib				libcblas.dylib				libgettextpo.dylib			libipsec.dylib				libnetsnmp.5.dylib			libpkstart.a				libspindump.dylib			liby.a
cron					libSystem_debug.tbd				libdtrace.dylib				libk5crypto.dylib			libnetsnmp.dylib			libplc4.a				libsqlite3.0.dylib			libz.1.1.3.dylib
crt1.10.5.o				libTelephonyUtilDynamic.dylib				libecpg.6.4.dylib			libgettextsrc-0.19.4.dylib		libkmod.a				libnetsnmpagent.25.dylib		libplc4.dylib				libsqlite3.dylib			libz.1.2.5.dylib
crt1.10.6.o				libThaiTokenizer.dylib			libcharset.1.0.0.dylib			libecpg.6.dylib				libgettextsrc.dylib			libkmodc++.a				libnetsnmpagent.dylib			libplds4.a				libssl.0.9.7.dylib			libz.1.dylib
crt1.o					libUniversalAccess.dylib		libcharset.1.dylib			libecpg.dylib			libkrb4.dylib				libnetsnmphelpers.25.dylib		libplds4.dylib				libssl.0.9.8.dylib			libz.dylib
dpkg					libXplugin.1.dylib			libcharset.dylib			libecpg_compat.3.4.dylib		libgmalloc.dylib			libkrb5.dylib				libnetsnmphelpers.dylib			libpmenergy.dylib			libssl.dylib				libznz.a
dtrace					libXplugin.dylib			libclapack.dylib			libecpg_compat.3.dylib			libgssapi_krb5.dylib			libkrb524.dylib				libnetsnmpmibs.25.dylib			libpmsample.dylib			libstdc++.6.0.9.dylib			nspr
dyld					libalias.A.dylib			libcmph.dylib				libecpg_compat.dylib			libgutenprint.2.0.3.dylib		libkrb5support.dylib			libnetsnmpmibs.dylib			libpoll.dylib				libstdc++.6.dylib			pam
dylib1.10.5.o				libalias.dylib				libcom_err.dylib			libedit.2.dylib				libgutenprint.2.dylib			libktrace.dylib				libnetsnmptrapd.25.dylib		libpq.5.5.dylib				libstdc++.dylib				php
dylib1.o				libapr-1.0.dylib			libcrypto.0.9.7.dylib			libedit.3.0.dylib			libgutenprint.dylib			libl.a					libnetsnmptrapd.dylib			libpq.5.dylib				libsysmon.dylib				pkgconfig
gcrt1.o					libapr-1.dylib				libcrypto.0.9.8.dylib			libedit.3.dylib				libheimdal-asn1.dylib			liblangid.dylib				libnifticdf.a				libpq.dylib				libtcl.dylib				python2.6
gettext					libaprutil-1.0.dylib			libcrypto.dylib				libedit.dylib				libhunspell-		liblapack.dylib				libniftiio.a				libproc.dylib				libtcl8.5.dylib				python2.7
groff					libaprutil-1.dylib			libcsfde.dylib				libexpat.1.5.2.dylib			libhunspell-1.2.0.dylib			liblber.dylib				libnspr4.a				libpthread.dylib			libtclstub8.5.a				rpcsvc
java					libarchive.2.dylib			libcups.2.dylib				libexpat.1.dylib			libhunspell-1.2.dylib			libldap.dylib				libnspr4.dylib				libpython.dylib				libtermcap.dylib			ruby
lazydylib1.o				libarchive.dylib			libcups.dylib				libexpat.dylib				libiconv.2.4.0.dylib			libldap_r.dylib				libobjc.A.dylib				libpython2.6.dylib			libtidy.A.dylib				sa
libACSClient.dylib			libasprintf.0.dylib			libcupscgi.1.dylib			libexslt.0.dylib			libiconv.2.dylib			liblzma.5.dylib				libobjc.dylib				libpython2.7.dylib			libtidy.dylib				sasl2
libAccountPolicyTranslation.dylib	libasprintf.a				libcupscgi.dylib			libexslt.dylib				libiconv.dylib				liblzma.dylib				libodfde.dylib				libquit.dylib				libtk.dylib				sqlite3
libBSDPClient.A.dylib			libasprintf.dylib			libcupsimage.2.dylib			libextension.dylib			libicucore.A.dylib			libm.dylib				libodmodule.dylib			libreadline.dylib			libtk8.5.dylib				system
libBSDPClient.dylib				libcupsimage.dylib			libf77lapack.dylib			libicucore.dylib			libmecab.1.0.0.dylib			libpam.1.dylib				libresolv.9.dylib			libtkstub8.5.a
libCRFSuite.dylib			libauditd.0.dylib			libcupsmime.1.dylib			libffi.dylib				libinfo.dylib				libmecab.dylib				libpam.2.dylib				libresolv.dylib				libutil.dylib
libCRFSuite0.12.dylib			libauditd.dylib				libcupsmime.dylib			libform.5.4.dylib			libintl.8.dylib				libmecabra.dylib			libpam.dylib				librpcsvc.dylib				libutil1.0.dylib			xpc
libCoreStorage.dylib			libauto.dylib				libcupsppdc.1.dylib			libform.dylib				libintl.a				libmenu.5.4.dylib			libpanel.5.4.dylib			libruby.2.0.0.dylib			libxar.1.dylib				zsh
libDHCPServer.A.dylib			libblas.dylib				libcupsppdc.dylib			libfslio.a				libintl.dylib				libmenu.dylib				libpanel.dylib				libruby.2.0.dylib			libxar.dylib
libDHCPServer.dylib			libbsm.0.dylib				libcurl.3.dylib				libgcc_s.1.dylib				libmx.A.dylib				libpcap.A.dylib				libruby.dylib				libxcselect.dylib
libDiagnosticMessagesClient.dylib	libbsm.dylib				libcurl.4.dylib				libgcc_s.10.4.tbd			libiodbc.2.1.18.dylib			libmx.dylib				libpcap.dylib				libsandbox.1.dylib			libxerces-c-3.1.dylib
libIASAuthReboot.dylib			libbz2.1.0.5.dylib			libcurl.dylib				libgcc_s.10.5.tbd			libiodbc.2.dylib			libncurses.5.4.dylib			libpcre.0.dylib				libsandbox.dylib			libxerces-c.a
libMatch.1.dylib			libbz2.1.0.dylib			libcurses.dylib				libgermantok.dylib			libiodbc.dylib				libncurses.5.dylib			libpcre.dylib				libsasl2.2.0.1.dylib			libxerces-c.dylib
libMatch.dylib				libbz2.dylib				libdbm.dylib				libgettextlib-0.19.4.dylib		libiodbcinst.2.1.18.dylib		libncurses.dylib			libpcreposix.0.dylib			libsasl2.2.0.15.dylib
libOpenScriptingUtil.dylib		libc++.1.dylib				libdes425.dylib				libgettextlib.dylib			libiodbcinst.2.dylib			libnetsnmp.15.1.2.dylib			libpcreposix.dylib			libsasl2.2.0.21.dylib			libxml2.2.dylib
libScreenReader.dylib			libc++.dylib				libdl.dylib			libiodbcinst.dylib			libnetsnmp.15.dylib			libpgtypes.3.3.dylib			libsasl2.2.0.22.dylib			libxml2.dylib

GagansMacPro:~ Gagan$ ls /usr/local/lib
64				libFLAC++.6.dylib		libasan.0.dylib			libcdt.dylib			libgcc_ext.10.4.dylib		libgfortran.3.dylib		libgvpr.2.dylib			libmgl-wnd.dylib		libpathplan.dylib		libstdc++.a			libtibrvft64.a			libxerces-c.dylib		tdbcpostgres1.0.0
ImageMagick-6.6.1		libFLAC++.a			libasan.dylib			libcgraph.6.dylib		libgcc_ext.10.5.dylib		libgfortran.a			libgvpr.dylib			libmgl.6.0.0.dylib		libpqxx.a		libtibrvsd64.a			thread2.7.0
ImageMagick-6.7.6		libFLAC++.dylib			libcgraph.dylib			libgcc_s.1.dylib		libgfortran.dylib		libiberty.a			libmgl.a			libstdc++.dylib			libtk8.5.dylib			mysql				tk8.5
ImageMagick-6.8.3			libasan_preinit.o		libdtkContainer.dylib		libgcc_s.10.4.dylib			libitm.1.dylib			libmgl.dylib			libquadmath.0.dylib			libtk8.6.dylib			pkgconfig			tk8.6
Tktable2.9			libFLAC.8.2.0.dylib		libatomic.1.dylib		libdtkCore.dylib		libgcc_s.10.5.dylib		libgfortran.spec		libitm.a			libmpc.a			libquadmath.a			libsupc++.a			libtkstub8.5.a			ppc64
audacity			libFLAC.8.dylib			libatomic.a			libdtkCrypto.dylib		libgcc_s_ppc64.1.dylib		libgmp.a			libitm.dylib			libquadmath.dylib			libtkstub8.6.a			sqlite3.7.15.1			wxPython
coccinelle			libFLAC.a			libatomic.dylib			libdtkGui.dylib			libgcc_s_x86_64.1.dylib			libmpfr.a			libtcl8.5.dylib			libuuid.16.dylib		tcl8				wxPython-
dpkg				libFLAC.dylib			libdtkJson.dylib		libgd.2.0.0.dylib		libgomp.1.dylib			libitm.spec			libssp.0.dylib			libtcl8.6.dylib			libuuid.a			tcl8.5				wxPython-unicode
gawk			libavis.0.0.0.dylib		libdtkLog.dylib			libgd.2.dylib			libgomp.a			liblzma.5.dylib			libogg.0.5.3.dylib		libssp.a			libtclstub8.5.a			libuuid.dylib			tcl8.6				x86_64
gcc			libavis.0.dylib			libdtkMath.dylib		libgd.a				libgomp.dylib			liblzma.a			libogg.0.dylib			libssp.dylib			libtclstub8.6.a
graphviz			libarpack.2.dylib		libavis.a			libdtkNotification.dylib	libgd.dylib			liblzma.dylib			libogg.a			libtibrv64.a			libxdot.4.dylib
i386				libarpack.a			libavis.dylib			libdtkScript.dylib			libgomp.spec			libogg.dylib			libssp_nonshared.a		libtibrvcm64.a			libxdot.dylib			tdbc1.0.0
itcl4.0.0			libarpack.dylib			libdtkVr.dylib			libgfortran.2.0.0.dylib		libgvc.6.dylib			libmgl-wnd.6.0.0.dylib		libtibrvcmq64.a			libxerces-c-3.1.dylib		tdbcmysql1.0.0
libFLAC++.6.2.0.dylib			libcdt.5.dylib			libdtkZip.dylib			libgfortran.2.dylib		libgvc.dylib			libmgl-wnd.a			libpathplan.4.dylib		libstdc++.6.dylib		libtibrvcpp64.a			libxerces-c.a			tdbcodbc1.0.0

i will run selfupgrade shortly (currently using perl for my baseball database parser) and get back to you.

comment:4 Changed 4 years ago by i3roly

hi mojca,

whatever you did, it worked. now it installed without issues.

i did not change anything from before. thank you.

comment:5 Changed 4 years ago by mojca (Mojca Miklavec)

Resolution: worksforme
Status: assignedclosed

I didn't do anything, in fact, but since we cannot reproduce it and it's now working for you, I'm closing the ticket. If you run into the problem again, please open a new ticket, or maybe also ask on perl's irc for help (they know their own build system a lot better than we do).

Note: See TracTickets for help on using tickets.