Date: Mon, 03 Mar 2014 15:51:20 +1100 From: Dewayne Geraghty <dewayne.geraghty@heuristicsystems.com.au> To: dinoex@FreeBSD.org, martinp@tildeslash.com, dewayne@heuristicsystems.com.au, freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/187076: PREFIX!=/usr/local prevents package build for security/openssl, sysutils/monit Message-ID: <53140A48.8090101@heuristicsystems.com.au> In-Reply-To: <201403021311.s22DBug0081367@freefall.freebsd.org> References: <201403021311.s22DBug0081367@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Thank-you Dinoex (Dirk?) for looking into this, it is a complex issue. Though I have been building openssl from ports into the base system for since 2006. And that is where it resides today, in all the servers that we have deployed to customers, along with select packages like heimdal and openssh (into /usr). It is only recently that this has stopped openssl from being built. The ugly workaround is to define MANPREFIX=/usr to get the package built. It doesn't materially affect anything because the MANPREFIX isn't reflected in the +CONTENTS file, and I care less about the man page location than I do ensuring that we have latest executables, libs. (postgresql is the driver for our packages to be rebuilt at the moment, and all packages are rebuilt to ensure consistency). I had considered building packages for a non /usr location but that wasn't really the right thing to do, so its a balancing act. The argument regarding libcrypt.so.6 and others is reasonable. The real solution is for the staging subsystem, if its going to mandate /usr/share for the man pages then it should pull them into the package build correctly, as it was prior to February 13. The mechanism builds and install man pages into /usr/share but it doesn't look in the right location for the package to be assembled, hence the tar stat failures during package construction. This is - a bug. If the bug is to remain, then it should be mentioned in UPDATING that PREFIX=/usr isn't supported, it would be obscure for most to hunt the cause of their package failure, as being their choice of PREFIX in /usr/ports/Mk/bsd.port.mk. Regardless it is a strange limitation if you really want the latest openssl ciphers, which implies the need to rebuild ports to acquire them. Regards, Dewayne On 3/03/2014 12:11 AM, dinoex@FreeBSD.org wrote: > Synopsis: PREFIX!=/usr/local prevents package build for security/openssl,sysutils/monit > > State-Changed-From-To: feedback->closed > State-Changed-By: dinoex > State-Changed-When: Sun Mar 2 14:09:58 CET 2014 > State-Changed-Why: > > builds fine with non default PREFIX > > /usr/ports/current/openssl$ make package PREFIX=/usr/test > > > The builds fails only when PREFIX=/usr: > > bsd.port.mk sets MANPREFIX > .if ${PREFIX} == /usr > MANPREFIX?= /usr/share > .else > MANPREFIX?= ${PREFIX} > .endif > > With staging the manpages can not be found. > If the port would use PREFIX instead of MANPREFIX > the package wild build but the manpages wound not work. > > Before staging, the MAN* macros did handle that well. > > But PREFIX=/usr is not supported since FreeBSD 5.0 > openssl in /usr will needs lots of changes to work. > > Normal PREFIX: > > /usr/lib/libssl.a > /usr/lib/libssl.so > /usr/lib/libssl.so.6 > /usr/local/lib/libssl.a > /usr/local/lib/libssl.so > /usr/local/lib/libssl.so.8 > /lib/libcrypto.so.6 > /usr/lib/libcrypto.so > /usr/local/lib/libcrypto.so > /usr/local/lib/libcrypto.so.8 > > If you install with PREFIX=/usr, > you will have incompatible versions of the openssl libs your system. > as "/lib/libcrypto.so.6" is not updated. > This will cause applications to fail. > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=187076 > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53140A48.8090101>