svn commit: r410612 - head/devel/libc++

Bryan Drewery bdrewery at FreeBSD.org
Wed Mar 9 05:00:17 UTC 2016


On 3/8/2016 4:48 AM, John Marino wrote:
> Author: marino
> Date: Tue Mar  8 12:48:51 2016
> New Revision: 410612
> URL: https://svnweb.freebsd.org/changeset/ports/410612
> 
> Log:
>   devel/libc++: specific libcxxrt LIB_DEPENDS conditionally
>   
>   The libcxxrt was unconditionally specified, but pkg(8) would not
>   register it on FreeBSD 10+ because the libcxxrt.so requirement of the
>   specification was satisfied by the base libraries.
>   
>   As a result, Synth would rebuild the libc++ each time becaues there
>   were more dependency requirements in the port Makefile than the resulting
>   package, leading Synth to consider the package obsolete.
>   
>   Since there are already existence tests for setting flags, the solution
>   is trivial: move LIB_DEPENDS definition inside the conditional blocks.
>   The resulting package is the same everywhere, and Synth is happy too.
>   
>   PR:		207756
>   Submitted by:	Andrew Terekhov
>   Discussed with:	dim@, bapt@ (no conclusion, I fixed it myself)
> 
> Modified:
>   head/devel/libc++/Makefile
> 
> Modified: head/devel/libc++/Makefile
> ==============================================================================
> --- head/devel/libc++/Makefile	Tue Mar  8 11:20:23 2016	(r410611)
> +++ head/devel/libc++/Makefile	Tue Mar  8 12:48:51 2016	(r410612)
> @@ -18,22 +18,21 @@ LICENSE_GROUP=	MIT UIUC
>  LICENSE_NAME_UIUC=	University of Illinois/NCSA Open Source License
>  LICENSE_PERMS_UIUC=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
>  
> -LIB_DEPENDS=	libcxxrt.so:${PORTSDIR}/devel/libcxxrt
> -
>  USES+=		cmake:outsource compiler:c++11-lang
>  USE_LDCONFIG=	yes
>  LDFLAGS+=	-L${LOCALBASE}/lib
>  
> -.include <bsd.port.options.mk>
> -
>  .if exists(/usr/lib/libcxxrt.so)
>  CXXRT_INCS=	/usr/include/c++/v1/
>  CXXRT_LIB=	/usr/lib/libcxxrt.so
>  .else
>  CXXRT_INCS=	${LOCALBASE}/include/cxxrt/
>  CXXRT_LIB=	${LOCALBASE}/lib/libcxxrt.so
> +LIB_DEPENDS+=	libcxxrt.so:${PORTSDIR}/devel/libcxxrt

This is a synth bug and should be reverted.

LIB_DEPENDS is already conditional on the specified library being
missing.  The tool should only add the dependency if the library is not
present because that is the behavior of LIB_DEPENDS (and *_DEPENDS) in
ports without tools, meaning it is the intended behavior.  This was
broken in portupgrade until r387621
(https://github.com/freebsd/portupgrade/issues/62), still broken in
portmaster (https://github.com/freebsd/portmaster/issues/44), and fine
in poudriere.

See the Poudriere code for this, it handles the issue by checking if the
library exists (in base) before adding it as an "expected" dependency
for a rebuild. CHECK_CHANGED_DEPS in common.sh.


>  .endif
>  
> +.include <bsd.port.options.mk>
> +
>  CMAKE_ARGS=	-DLIBCXX_CXX_ABI=libcxxrt -DLIBCXX_LIBCXXRT_INCLUDE_PATHS=${CXXRT_INCS}
>  
>  .if !defined(SVN_REV)
> 


-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-ports-all/attachments/20160308/2d274861/attachment.sig>


More information about the svn-ports-all mailing list