From owner-svn-ports-all@FreeBSD.ORG Tue Nov 19 19:54:17 2013 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 60252B7D; Tue, 19 Nov 2013 19:54:17 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4F0F727B6; Tue, 19 Nov 2013 19:54:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rAJJsHso049458; Tue, 19 Nov 2013 19:54:17 GMT (envelope-from kwm@svn.freebsd.org) Received: (from kwm@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id rAJJsG5v049456; Tue, 19 Nov 2013 19:54:16 GMT (envelope-from kwm@svn.freebsd.org) Message-Id: <201311191954.rAJJsG5v049456@svn.freebsd.org> From: Koop Mast Date: Tue, 19 Nov 2013 19:54:16 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r334343 - in head: . Mk X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Nov 2013 19:54:17 -0000 Author: kwm Date: Tue Nov 19 19:54:16 2013 New Revision: 334343 URL: http://svnweb.freebsd.org/changeset/ports/334343 Log: Remove ltverhack's hard depend on USE_AUTOTOOLS=libtool. The problem with the old method is that the libtool is configured to look first in LOCALBASE for libraries to link to. Normaly this wouldn't cause a problem. However if a port that builds a library with new API also builds introspection files or say gtk bindings, then libtool will look first into LOCALBASE and find the old library version for linking the introspection files or gtk bindings. Due to the missing new API in old library the build will fail with unresolved symbols. The new ltverhack will patch the ltmain.sh and/or libtool files that where bundled with the port. This libtool is correctly configured to first look in for the just build libraries. If the port bundled version of ltmain.sh and/or libtool aren't in ${WRKSRC} then ltverhack_PATCH_FILES can be overwritten with there location in ${WRKSRC}. As a bonus when using the new ltverhack configure will honor --disable-static again. So please check your plist after converting. While here shorten the number of tabs in the lthacks, ltverhack and ltasneededhack PRE_PATCH components so they are just over 80 chars long. Exp-run by: bdrewery@ PR: ports/183936 Obtained from: gnome dev repo Modified: head/CHANGES head/Mk/bsd.gnome.mk Modified: head/CHANGES ============================================================================== --- head/CHANGES Tue Nov 19 19:38:45 2013 (r334342) +++ head/CHANGES Tue Nov 19 19:54:16 2013 (r334343) @@ -10,6 +10,21 @@ in the release notes and/or placed into All ports committers are allowed to commit to this file. +20131119: +AUTHOR: kwm@FreeBSD.org + + The USE_GNOME component ltverhack no longer has a hard dependancy on + libtool. + + If USE_AUTOTOOLS=libtool isn't defined it will try to patch ltmain.sh + and or libtool in ${WRKSRC}. If those files are located somewhere else + in ${WRKSRC} then it is possible to overwrite ltverhack_PATCH_FILES + with there new locations. configure script --distable-static will work also + after using the "new" ltverhack. + + Please keep in mind that USE_AUTOTOOLS implies GNU_CONFIGURE so you might + need to add that back for the port to work. + 20131031: AUTHOR: rene@FreeBSD.org Modified: head/Mk/bsd.gnome.mk ============================================================================== --- head/Mk/bsd.gnome.mk Tue Nov 19 19:38:45 2013 (r334342) +++ head/Mk/bsd.gnome.mk Tue Nov 19 19:54:16 2013 (r334343) @@ -3,7 +3,7 @@ # # $FreeBSD$ # $NetBSD: $ -# $MCom: ports/trunk/Mk/bsd.gnome.mk 18867 2013-11-08 11:53:32Z kwm $ +# $MCom: ports/trunk/Mk/bsd.gnome.mk 18899 2013-11-18 18:34:00Z kwm $ # # Please view me with 4 column tabs! @@ -710,17 +710,18 @@ PLIST_SUB+= GTK2_VERSION="${GTK2_VERSI # included in the post-makefile section). .if defined(_AUTOTOOL_libtool) lthacks_CONFIGURE_ENV= ac_cv_path_DOLT_BASH= -lthacks_PRE_PATCH= ${CP} -pf ${LTMAIN} ${WRKDIR}/gnome-ltmain.sh && \ - ${CP} -pf ${LIBTOOL} ${WRKDIR}/gnome-libtool && \ - for file in ${LIBTOOLFILES}; do \ - ${REINPLACE_CMD} -e \ - '/^ltmain=/!s|$$ac_aux_dir/ltmain\.sh|${LIBTOOLFLAGS} ${WRKDIR}/gnome-ltmain.sh|g; \ - /^LIBTOOL=/s|$$(top_builddir)/libtool|${WRKDIR}/gnome-libtool|g' \ - ${PATCH_WRKSRC}/$$file; \ - done; +lthacks_PRE_PATCH= \ + ${CP} -pf ${LTMAIN} ${WRKDIR}/gnome-ltmain.sh && \ + ${CP} -pf ${LIBTOOL} ${WRKDIR}/gnome-libtool && \ + for file in ${LIBTOOLFILES}; do \ + ${REINPLACE_CMD} -e \ + '/^ltmain=/!s|$$ac_aux_dir/ltmain\.sh|${LIBTOOLFLAGS} ${WRKDIR}/gnome-ltmain.sh|g; \ + /^LIBTOOL=/s|$$(top_builddir)/libtool|${WRKDIR}/gnome-libtool|g' \ + ${PATCH_WRKSRC}/$$file; \ + done; .else -. if ${USE_GNOME:Mltverhack*}!="" || ${USE_GNOME:Mltasneededhack}!="" -IGNORE= cannot install: ${PORTNAME} uses the ltverhack and/or ltasneededhack GNOME components but does not use libtool +. if ${USE_GNOME:Mltasneededhack}!="" +IGNORE= cannot install: ${PORTNAME} uses the ltasneededhack GNOME component but does not use libtool . endif .endif @@ -729,23 +730,32 @@ ltverhack_LIB_VERSION= major=.`expr $$cu .else ltverhack_LIB_VERSION= major=".${USE_GNOME:Mltverhack\:*:C/^[^:]+:([^:]+).*/\1/}" .endif + +.if defined(USE_AUTOTOOLS) && ${USE_AUTOTOOLS:Mlibtool*} ltverhack_PATCH_DEPENDS=${LIBTOOL_DEPENDS} -ltverhack_PRE_PATCH= for file in gnome-ltmain.sh gnome-libtool; do \ - if [ -f ${WRKDIR}/$$file ]; then \ - ${REINPLACE_CMD} -e \ - '/freebsd-elf)/,/;;/ s|major="\.$$current"|${ltverhack_LIB_VERSION}|; \ - /freebsd-elf)/,/;;/ s|versuffix="\.$$current"|versuffix="$$major"|' \ - ${WRKDIR}/$$file; \ - fi; \ - done +ltverhack_PATCH_FILES= ../gnome-ltmain.sh ../gnome-libtool +.else +ltverhack_PATCH_FILES?= ltmain.sh libtool +.endif + +ltverhack_PRE_PATCH= \ + for file in ${ltverhack_PATCH_FILES}; do \ + if [ -f ${WRKSRC}/$$file ]; then \ + ${REINPLACE_CMD} -e \ + '/freebsd-elf)/,/;;/ s|major="\.$$current"|${ltverhack_LIB_VERSION}|; \ + /freebsd-elf)/,/;;/ s|versuffix="\.$$current"|versuffix="$$major"|' \ + ${WRKSRC}/$$file; \ + fi; \ + done ltasneededhack_PATCH_DEPENDS=${LIBTOOL_DEPENDS} -ltasneededhack_PRE_PATCH= if [ -f ${WRKDIR}/gnome-libtool ]; then \ - ${REINPLACE_CMD} -e \ - '/^archive_cmds=/s/-shared/-shared -Wl,--as-needed/ ; \ - /^archive_expsym_cmds=/s/-shared/-shared -Wl,--as-needed/' \ - ${WRKDIR}/gnome-libtool; \ - fi +ltasneededhack_PRE_PATCH= \ + if [ -f ${WRKDIR}/gnome-libtool ]; then \ + ${REINPLACE_CMD} -e \ + '/^archive_cmds=/s/-shared/-shared -Wl,--as-needed/ ; \ + /^archive_expsym_cmds=/s/-shared/-shared -Wl,--as-needed/' \ + ${WRKDIR}/gnome-libtool; \ + fi # Set USE_CSTD for all ports that depend on glib12 .if defined(_USE_GNOME) && !empty(_USE_GNOME:Mglib12) @@ -755,7 +765,19 @@ USE_CSTD= gnu89 # Then traverse through all components, check which of them # exist in ${_USE_GNOME} and set variables accordingly .ifdef _USE_GNOME -. if ${USE_GNOME:Mltverhack*}!= "" || ${USE_GNOME:Mltasneededhack}!= "" + +. if ${USE_GNOME:Mltasneededhack}!= "" +_GNOME_NEED_LIBTOOL=1 +. endif + +# this is splitted out from the above entry because fmake trows a fit otherwise +. if defined(USE_AUTOTOOLS) && ${USE_AUTOTOOLS:Mlibtool*} +. if ${USE_GNOME:Mltverhack*}!= "" +_GNOME_NEED_LIBTOOL=1 +. endif +. endif + +. if defined(_GNOME_NEED_LIBTOOL) GNOME_PRE_PATCH+= ${lthacks_PRE_PATCH} CONFIGURE_ENV+= ${lthacks_CONFIGURE_ENV} . endif