Skip site navigation (1)Skip section navigation (2)
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>