You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2018/11/04 05:49:41 UTC

svn commit: r1845716 - in /subversion/trunk: Makefile.in build.conf build/ac-macros/macosx.m4 build/buildcheck.sh

Author: brane
Date: Sun Nov  4 05:49:40 2018
New Revision: 1845716

URL: http://svn.apache.org/viewvc?rev=1845716&view=rev
Log:
Make only libsvn_subr directly depend on some macOS frameworks.

The comment in build/ac-macros/macosx.m4, which said that libtool 1.5.x
doesn't track transitive dependencies for macOS frameworks, has not been
true since libtlool-1.5.24.

Consequently, take the daring step of updating the requred libtool
version to 2.0, which is (*gasp!*) only 11 years old.

* Makefile.in
  (SVN_MACOS_PLIST_LIBS, SVN_MACOS_KEYCHAIN_LIBS): New variables.

* build.conf
  (macos-plist, macos-keychain): New external libraries.
  (libsvn_subr): Links with macos-plist and macos-keychain.

* build/ac-macros/macosx.m4
  (SVN_LIB_MACOS_PLIST): Remove obsolete comment.
   Do not update LIBS, define SVN_MACOS_PLIST_LIBS instead.
  (SVN_LIB_MACOS_KEYCHAIN): As above, but for SVN_MACOS_KEYCHAIN_LIBS.

* build/buildcheck.sh:
  (LIBTOOL_WANTED_MAJOR, LIBTOOL_WANTED_MINOR, LIBTOOL_WANTED_VERSION): Update.
   Remove the special version check for libtool on Solaris.

Modified:
    subversion/trunk/Makefile.in
    subversion/trunk/build.conf
    subversion/trunk/build/ac-macros/macosx.m4
    subversion/trunk/build/buildcheck.sh

Modified: subversion/trunk/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1845716&r1=1845715&r2=1845716&view=diff
==============================================================================
--- subversion/trunk/Makefile.in (original)
+++ subversion/trunk/Makefile.in Sun Nov  4 05:49:40 2018
@@ -56,6 +56,8 @@ SVN_XML_LIBS = @SVN_XML_LIBS@
 SVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
 SVN_LZ4_LIBS = @SVN_LZ4_LIBS@
 SVN_UTF8PROC_LIBS = @SVN_UTF8PROC_LIBS@
+SVN_MACOS_PLIST_LIBS = @SVN_MACOS_PLIST_LIBS@
+SVN_MACOS_KEYCHAIN_LIBS = @SVN_MACOS_KEYCHAIN_LIBS@
 
 LIBS = @LIBS@
 

Modified: subversion/trunk/build.conf
URL: http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=1845716&r1=1845715&r2=1845716&view=diff
==============================================================================
--- subversion/trunk/build.conf (original)
+++ subversion/trunk/build.conf Sun Nov  4 05:49:40 2018
@@ -371,7 +371,8 @@ type = lib
 install = fsmod-lib
 path = subversion/libsvn_subr
 sources = *.c lz4/*.c
-libs = aprutil apriconv apr xml zlib apr_memcache sqlite magic intl lz4 utf8proc
+libs = aprutil apriconv apr xml zlib apr_memcache
+       sqlite magic intl lz4 utf8proc macos-plist macos-keychain
 msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
             crypt32.lib version.lib
 msvc-export = 
@@ -1470,6 +1471,14 @@ external-lib = $(SVN_KWALLET_LIBS)
 type = lib
 external-lib = $(SVN_MAGIC_LIBS)
 
+[macos-plist]
+type = lib
+external-lib = $(SVN_MACOS_PLIST_LIBS)
+
+[macos-keychain]
+type = lib
+external-lib = $(SVN_MACOS_KEYCHAIN_LIBS)
+
 [sasl]
 type = lib
 external-lib = $(SVN_SASL_LIBS)

Modified: subversion/trunk/build/ac-macros/macosx.m4
URL: http://svn.apache.org/viewvc/subversion/trunk/build/ac-macros/macosx.m4?rev=1845716&r1=1845715&r2=1845716&view=diff
==============================================================================
--- subversion/trunk/build/ac-macros/macosx.m4 (original)
+++ subversion/trunk/build/ac-macros/macosx.m4 Sun Nov  4 05:49:40 2018
@@ -55,19 +55,8 @@ AC_DEFUN(SVN_LIB_MACOS_PLIST,
     #error ProperyList API unavailable.
     #endif
   ]],[[]])],[
-    dnl ### Hack.  We should only need to pass the -framework options when
-    dnl linking libsvn_subr, since it is the only library that uses Keychain.
-    dnl
-    dnl Unfortunately, libtool 1.5.x doesn't track transitive dependencies for
-    dnl OS X frameworks like it does for normal libraries, so we need to
-    dnl explicitly pass the option to all the users of libsvn_subr to allow
-    dnl static builds to link successfully.
-    dnl
-    dnl This does mean that all executables we link will be linked directly
-    dnl to these frameworks - even when building shared libraries - but that
-    dnl shouldn't cause any problems.
-
-    LIBS="$LIBS -framework CoreFoundation"
+    SVN_MACOS_PLIST_LIBS="-framework CoreFoundation"
+    AC_SUBST(SVN_MACOS_PLIST_LIBS)
     AC_DEFINE([SVN_HAVE_MACOS_PLIST], [1],
               [Is Mac OS property list API available?])
     AC_MSG_RESULT([yes])
@@ -97,9 +86,8 @@ AC_DEFUN(SVN_LIB_MACOS_KEYCHAIN,
       #error KeyChain API unavailable.
       #endif
     ]],[[]])],[
-      dnl ### Hack, see SVN_LIB_MACOS_PLIST
-      LIBS="$LIBS -framework Security"
-      LIBS="$LIBS -framework CoreServices"
+      SVN_MACOS_KEYCHAIN_LIBS="-framework Security -framework CoreServices"
+      AC_SUBST(SVN_MACOS_KEYCHAIN_LIBS)
       AC_DEFINE([SVN_HAVE_KEYCHAIN_SERVICES], [1], [Is Mac OS KeyChain support enabled?])
       AC_MSG_RESULT([yes])
     ],[

Modified: subversion/trunk/build/buildcheck.sh
URL: http://svn.apache.org/viewvc/subversion/trunk/build/buildcheck.sh?rev=1845716&r1=1845715&r2=1845716&view=diff
==============================================================================
--- subversion/trunk/build/buildcheck.sh (original)
+++ subversion/trunk/build/buildcheck.sh Sun Nov  4 05:49:40 2018
@@ -76,26 +76,12 @@ fi
 echo "buildcheck: autoheader version $ah_version (ok)"
 
 #--------------------------------------------------------------------------
-# libtool 1.4 or newer
+# libtool 2.0 or newer
 #
-LIBTOOL_WANTED_MAJOR=1
-LIBTOOL_WANTED_MINOR=4
+LIBTOOL_WANTED_MAJOR=2
+LIBTOOL_WANTED_MINOR=0
 LIBTOOL_WANTED_PATCH=
-LIBTOOL_WANTED_VERSION=1.4
-
-# The minimum version for source releases is 1.4.3,
-# because it's required by (at least) Solaris.
-if test "$VERSION_CHECK" = "--release"; then
-  LIBTOOL_WANTED_PATCH=3
-  LIBTOOL_WANTED_VERSION=1.4.3
-else
-  case `uname -sr` in
-    SunOS\ 5.*)
-      LIBTOOL_WANTED_PATCH=3
-      LIBTOOL_WANTED_VERSION=1.4.3
-      ;;
-  esac
-fi
+LIBTOOL_WANTED_VERSION=2.0
 
 # Much like APR except we do not prefer libtool 1 over libtool 2.
 libtoolize=${LIBTOOLIZE:-`./build/PrintPath glibtoolize libtoolize glibtoolize1 libtoolize15 libtoolize14`}



Re: svn commit: r1845716 - in /subversion/trunk: Makefile.in build.conf build/ac-macros/macosx.m4 build/buildcheck.sh

Posted by Branko Čibej <br...@apache.org>.
On 04.11.2018 06:49, brane@apache.org wrote:
> Author: brane
> Date: Sun Nov  4 05:49:40 2018
> New Revision: 1845716
>
> URL: http://svn.apache.org/viewvc?rev=1845716&view=rev
> Log:
> Make only libsvn_subr directly depend on some macOS frameworks.
>
> The comment in build/ac-macros/macosx.m4, which said that libtool 1.5.x
> doesn't track transitive dependencies for macOS frameworks, has not been
> true since libtlool-1.5.24.
>
> Consequently, take the daring step of updating the requred libtool
> version to 2.0, which is (*gasp!*) only 11 years old.

If anyone objects to this version bump, we could require libtool 1.5.24
or 1.5.28 instead and get essentially the same support for the
-framework option on macOS.

-- Brane