Patchwork configure: Disable libblkid by default

login
register
mail settings
Submitter Scott James Remnant
Date July 16, 2009, 6:46 p.m.
Message ID <E1MRWBp-0000yN-9a@zelda.netsplit.com>
Download mbox | patch
Permalink /patch/29877/
State Deferred
Headers show

Comments

Scott James Remnant - July 16, 2009, 6:46 p.m.
Since util-linux-ng now builds libblkid by default, e2fsprogs
should not do so.

Signed-off-by: Scott James Remnant <scott@ubuntu.com>
---
 configure    |   93 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 configure.in |   21 +++++++-----
 2 files changed, 94 insertions(+), 20 deletions(-)
Theodore Ts'o - July 17, 2009, 2:36 p.m.
On Thu, Jul 16, 2009 at 07:46:13PM +0100, Scott James Remnant wrote:
> Since util-linux-ng now builds libblkid by default, e2fsprogs
> should not do so.

I'm not going to be applying these patches for quite some time.  I'd
much rather have packaging scripts that *know* they will be packaging
alongside util-linux-ng use --disable-libblkid, etc. so we don't break
things for folks who might need to build e2fsprogs for distributions
that are still using util-linux --- which at the moment still have the
vast majority of the installed base, and every so often people do
actually care about running updated filesystem utilities on an older
enterprise distribution.

The at the minimum I'll want to make sure that the debian/rules file
packaged with e2fsprogs can build both for util-linux and
util-linux-ng for similar reasons, especially since Lamont hasn't
gotten back to us about potentially getting util-linux-ng packaged for
Debian yet.

							- Ted

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Scott James Remnant - July 17, 2009, 2:54 p.m.
On Fri, 2009-07-17 at 10:36 -0400, Theodore Tso wrote:

> On Thu, Jul 16, 2009 at 07:46:13PM +0100, Scott James Remnant wrote:
> > Since util-linux-ng now builds libblkid by default, e2fsprogs
> > should not do so.
> 
> I'm not going to be applying these patches for quite some time.  I'd
> much rather have packaging scripts that *know* they will be packaging
> alongside util-linux-ng use --disable-libblkid, etc. so we don't break
> things for folks who might need to build e2fsprogs for distributions
> that are still using util-linux --- which at the moment still have the
> vast majority of the installed base, and every so often people do
> actually care about running updated filesystem utilities on an older
> enterprise distribution.
> 
But you didn't accept those patches I sent either.

> The at the minimum I'll want to make sure that the debian/rules file
> packaged with e2fsprogs can build both for util-linux and
> util-linux-ng for similar reasons, especially since Lamont hasn't
> gotten back to us about potentially getting util-linux-ng packaged for
> Debian yet.
> 
I've done the packaging for him, it's just waiting on him to get back
home to sponsor the uploads.

Scott
Theodore Ts'o - July 17, 2009, 3:02 p.m.
On Fri, Jul 17, 2009 at 03:54:39PM +0100, Scott James Remnant wrote:
> > I'm not going to be applying these patches for quite some time.  I'd
> > much rather have packaging scripts that *know* they will be packaging
> > alongside util-linux-ng use --disable-libblkid, etc. so we don't break
> > things for folks who might need to build e2fsprogs for distributions
> > that are still using util-linux --- which at the moment still have the
> > vast majority of the installed base, and every so often people do
> > actually care about running updated filesystem utilities on an older
> > enterprise distribution.
>
> But you didn't accept those patches I sent either.

If I recall correctly the last set of patches unconditionally used
--disable-libblkid, and what I need is.....

> > ... at the minimum I'll want to make sure that the debian/rules file
> > packaged with e2fsprogs can build both for util-linux and
> > util-linux-ng for similar reasons, especially since Lamont hasn't
> > gotten back to us about potentially getting util-linux-ng packaged for
> > Debian yet.

So the patch ideal patch I'd like to see is one where you can toggle a
flag and debian/rules will either build for util-linux or
util-linux-ng.  If you've sent such a patch, my apologies for
overlooking it, but as I recall the only patch I got made the
unconditional changes to debian/rules.  When I commented on that you
said that you understood that was just a proof-of-concept patch, and
so I let things drop.

> I've done the packaging for him, it's just waiting on him to get back
> home to sponsor the uploads.

Are the .deb packages somewhere where I can examine them?

    	     	      		      	- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Scott James Remnant - July 17, 2009, 3:14 p.m.
On Fri, 2009-07-17 at 11:02 -0400, Theodore Tso wrote:

> > > ... at the minimum I'll want to make sure that the debian/rules file
> > > packaged with e2fsprogs can build both for util-linux and
> > > util-linux-ng for similar reasons, especially since Lamont hasn't
> > > gotten back to us about potentially getting util-linux-ng packaged for
> > > Debian yet.
> 
> So the patch ideal patch I'd like to see is one where you can toggle a
> flag and debian/rules will either build for util-linux or
> util-linux-ng.  If you've sent such a patch, my apologies for
> overlooking it
> 
I did, it's the patches that are applied to the Ubuntu source package:

http://kernel.ubuntu.com/git?p=scott/e2fsprogs.git;a=commit;h=d69bff01e2c034c7d620f7c0baf9b700761034a4

http://kernel.ubuntu.com/git?p=scott/e2fsprogs.git;a=commit;h=1e869195141920331b00c0d594898b8b322e07a3

http://kernel.ubuntu.com/git?p=scott/e2fsprogs.git;a=commit;h=2177ed0c6a8f83afa7a9fbef0c04b699c3d52238

> > I've done the packaging for him, it's just waiting on him to get back
> > home to sponsor the uploads.
> 
> Are the .deb packages somewhere where I can examine them?
> 
Yes, they're in Ubuntu.

Scott

Patch

diff --git a/configure b/configure
index 769dc09..5c272d8 100755
--- a/configure
+++ b/configure
@@ -1499,7 +1499,7 @@  Optional Features:
   --enable-blkid-debug    enable blkid debugging
   --disable-testio-debug  disable the use of the test I/O manager for debugging
   --disable-libuuid	  do not build private uuid library
-  --disable-libblkid	  do not build private blkid library
+  --enable-libblkid	  build private blkid library
   --disable-debugfs   	  disable support of debugfs program
   --disable-imager   	  disable support of e2image program
   --disable-resizer   	  disable support of e2resize program
@@ -4684,18 +4684,89 @@  $as_echo "Enabling private blkid library" >&6; }
 fi
 
 else
-  LIBBLKID='$(LIB)/libblkid'$LIB_EXT
-DEPLIBBLKID=$LIBBLKID
-STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
-DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
-PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
-DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
-cat >>confdefs.h <<\_ACEOF
-#define CONFIG_BUILD_FINDFS 1
+  if test -z "$PKG_CONFIG"; then
+	{ { $as_echo "$as_me:$LINENO: error: pkg-config not installed; please install it." >&5
+$as_echo "$as_me: error: pkg-config not installed; please install it." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+{ $as_echo "$as_me:$LINENO: checking for blkid_get_cache in -lblkid" >&5
+$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; }
+if test "${ac_cv_lib_blkid_blkid_get_cache+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lblkid $LIBBLKID $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char blkid_get_cache ();
+int
+main ()
+{
+return blkid_get_cache ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_blkid_blkid_get_cache=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_blkid_blkid_get_cache=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_blkid_blkid_get_cache" >&5
+$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; }
+if test "x$ac_cv_lib_blkid_blkid_get_cache" = x""yes; then
+  LIBBLKID=`$PKG_CONFIG --libs blkid`;
+	 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`
+else
+  { { $as_echo "$as_me:$LINENO: error: external blkid library not found" >&5
+$as_echo "$as_me: error: external blkid library not found" >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
-{ $as_echo "$as_me:$LINENO: result: Enabling private blkid library by default" >&5
-$as_echo "Enabling private blkid library by default" >&6; }
+BLKID_CMT=#
+{ $as_echo "$as_me:$LINENO: result: Disabling private blkid library by default" >&5
+$as_echo "Disabling private blkid library by default" >&6; }
 
 fi
 
diff --git a/configure.in b/configure.in
index d11faec..25b9427 100644
--- a/configure.in
+++ b/configure.in
@@ -463,7 +463,7 @@  PROFILED_LIBBLKID=
 DEPPROFILED_LIBBLKID=
 BLKID_CMT=
 AC_ARG_ENABLE([libblkid],
-[  --disable-libblkid	  do not build private blkid library],
+[  --enable-libblkid	  build private blkid library],
 if test "$enableval" = "no"
 then
 	if test -z "$PKG_CONFIG"; then
@@ -488,14 +488,17 @@  else
 	AC_MSG_RESULT([Enabling private blkid library])
 fi
 ,
-LIBBLKID='$(LIB)/libblkid'$LIB_EXT
-DEPLIBBLKID=$LIBBLKID
-STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
-DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
-PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
-DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
-AC_DEFINE(CONFIG_BUILD_FINDFS)
-AC_MSG_RESULT([Enabling private blkid library by default])
+if test -z "$PKG_CONFIG"; then
+	AC_MSG_ERROR([pkg-config not installed; please install it.])
+fi
+
+AC_CHECK_LIB(blkid, blkid_get_cache,
+	[LIBBLKID=`$PKG_CONFIG --libs blkid`;
+	 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
+	[AC_MSG_ERROR([external blkid library not found])],
+	[$LIBBLKID])
+BLKID_CMT=#
+AC_MSG_RESULT([Disabling private blkid library by default])
 )
 AC_SUBST(LIBBLKID)
 AC_SUBST(DEPLIBBLKID)