Gretton, Liam wrote on Wed, 07 Jun 2017 10:44 +0000:
> At some point since 1.8.13 the logic in the configure script for dealing with 
> the --with-serf option has changed.
> 
> Now pkg-config overrides the use of the --with-serf value and this breaks the 
> build if serf has been built in a sandbox (i.e. with the --install-sandbox 
> option) as $serf_prefix within configure takes the value of the intended 
> location of serf rather than where it's actually located.

Could you explain in more detail what use-case is broken?  The configure
logic for serf (build/ac-macros/serf.m4), when --with-serf=foo is
passed, first tries foo/lib/pkgconfig/serf-1.pc and if that fails falls
back to looking for serf under foo without pkg-config.  At no point does
it try the system pkg-config dirs.

Are you saying that you installed serf to a non-empty $(DESTDIR), and
then configure finds a *.pc file under that directory that points the
build system to the designated installation path (= the same path
without the $(DESTDIR) prefix)?

In that case, the following patch might work, although it needs
to be amended to explain the above.

The AC_MSG_CHECKING() could probably use better wording,
suggestions welcome.

Cheers,

Daniel

[[[
* build/ac-macros/serf.m4: An explicit prefix should take precedence over
    pkg-config.

Found by: Liam Gretton
]]]

[[[
Index: build/ac-macros/serf.m4
===================================================================
--- build/ac-macros/serf.m4     (revision 1797913)
+++ build/ac-macros/serf.m4     (working copy)
@@ -70,12 +70,16 @@ AC_DEFUN(SVN_LIB_SERF,
   ])
 
   if test "$serf_skip" = "no" ; then
-    SVN_SERF_PKG_CONFIG()
-    if test -n "$serf_prefix" && test "$serf_found" = "no" ; then
+    dnl Try the prefix if one was provided.
+    if test -n "$serf_prefix" ; then
       SVN_SERF_PREFIX_CONFIG()
     fi
+    dnl Either --with-serf wasn't passed, or was passed without argument.
+    if test "$serf_found" = "no" ; then
+      SVN_SERF_PKG_CONFIG()
+    fi
   
-    AC_MSG_CHECKING([was serf enabled])
+    AC_MSG_CHECKING([whether to build libsvn_ra_serf])
     if test "$serf_found" = "yes"; then
       AC_MSG_RESULT([yes])
     else 
]]]

Reply via email to