All of lore.kernel.org
 help / color / mirror / Atom feed
* uti-linux-ng libblkid
@ 2009-02-23 17:38 Karel Zak
  2009-02-23 17:38 ` [PATCH] blkid: add --disable-libblkid to build with external libblkid Karel Zak
                   ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Karel Zak @ 2009-02-23 17:38 UTC (permalink / raw)
  To: linux-ext4; +Cc: Theodore Ts'o

Hi Ted,

here are two patches that allow to link utils from e2fsprogs with
external libblkid (e.g. the version from util-linux-ng).

Note that the patches don't include *generated* stuff from the configure
script.

Changes:
	- add --disable-libblkid
	- don't build & install blkid(8) and findfs(8)

Note that I'm not sure of your opinion about "#include blkid.h". The
code in e2fsprogs mix "blkid/blkid.h" and "blkid.h" (and somewhere it
depends on #ifdef :-). I think the best would be to remove the directory
and use "-Ilib/blkid" (for private libblkid) or CFLAGS from pkg-config
(for external libblkid). Anyway the code compiles with the current
"#include" directives, so I didn't touch this stuff.

  Karel



^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH] blkid: add --disable-libblkid to build with external libblkid
  2009-02-23 17:38 uti-linux-ng libblkid Karel Zak
@ 2009-02-23 17:38 ` Karel Zak
  2009-02-24  8:44   ` [PATCH] blkid: add --disable-libblkid (v2) Karel Zak
  2009-02-23 17:38 ` [PATCH] tune2fs: make findfs code optional Karel Zak
  2009-03-09  1:08 ` uti-linux-ng libblkid Theodore Tso
  2 siblings, 1 reply; 25+ messages in thread
From: Karel Zak @ 2009-02-23 17:38 UTC (permalink / raw)
  To: linux-ext4; +Cc: Theodore Ts'o, Karel Zak

This patch allows to switch between private (in-tree) libblkid and
public (in-system installed) library. The private version is still
enabled by default.

Signed-off-by: Karel Zak <kzak@redhat.com>
---
 MCONFIG.in       |   28 ++++++++++++++++++++++------
 Makefile.in      |    3 ++-
 configure.in     |   30 ++++++++++++++++++++++++++++++
 misc/Makefile.in |   20 ++++++++++++++------
 4 files changed, 68 insertions(+), 13 deletions(-)

diff --git a/MCONFIG.in b/MCONFIG.in
index f67682e..c7c16bf 100644
--- a/MCONFIG.in
+++ b/MCONFIG.in
@@ -69,36 +69,52 @@ MKINSTALLDIRS = @MKINSTALLDIRS@
 #
 # Library definitions
 #
+@BLKID_CMT@PRIVATE_LIBBLKID = yes
+
+# public libblkid options
+BLKID_LIBS = @BLKID_LIBS@
+STATIC_BLKID_LIBS = @STATIC_BLKID_LIBS@
+
+ifdef PRIVATE_LIBBLKID
+LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
+PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
+else
+LIBBLKID = $(BLKID_LIBS) @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = $(BLKID_LIBS) @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(STATIC_BLKID_LIBS) $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = $(STATIC_BLKID_LIBS)
+PROFILED_LIBBLKID = $(BLKID_LIBS) $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID = $(BLKID_LIBS)
+endif
+
 LIB = $(top_builddir)/lib
 LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
 LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
 LIBE2P = $(LIB)/libe2p@LIB_EXT@
 LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
 LIBUUID = $(LIB)/libuuid@LIB_EXT@ @SOCKET_LIB@
-LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 LIBINTL = @LIBINTL@
 DEPLIBSS = $(LIB)/libss@LIB_EXT@
 DEPLIBUUID = $(LIB)/libuuid@LIB_EXT@
-DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 
 STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
 STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
 STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
 STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
 STATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ @SOCKET_LIB@ 
-STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
 DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
 DEPSTATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@
-DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
 
 PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
 PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
 PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
 PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
 PROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@ @SOCKET_LIB@ 
-PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
 DEPPROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@
-DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
 
 # An include directive pointing to a directory holding enough linux-like
 # include files to satisfy some programs here
diff --git a/Makefile.in b/Makefile.in
index 728d3a5..1f1b8ea 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -11,8 +11,9 @@ INSTALL = @INSTALL@
 
 @RESIZER_CMT@RESIZE_DIR= resize
 @DEBUGFS_CMT@DEBUGFS_DIR= debugfs
+@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
 
-LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs lib/blkid intl
+LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs $(BLKID_LIB_SUBDIR) intl
 PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
 SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests
 
diff --git a/configure.in b/configure.in
index 2534df4..83ab14d 100644
--- a/configure.in
+++ b/configure.in
@@ -276,6 +276,36 @@ AC_MSG_RESULT([Disabling BSD shared libraries by default])
 AC_SUBST(BSDLIB_CMT)
 AC_SUBST_FILE(MAKEFILE_BSDLIB)
 dnl
+dnl handle --disable-libblkid
+dnl
+PKG_PROG_PKG_CONFIG
+AC_ARG_ENABLE([libblkid],
+[  --disable-libblkid	  do not build private blkid library],
+if test "$enableval" = "no"
+then
+	if test -z "$PKG_CONFIG"; then
+		AC_MSG_ERROR([pkg-config not installed; please install it.])
+	fi
+ 
+	AC_CHECK_LIB(blkid, blkid_get_cache,
+		[BLKID_LIBS=`$PKG_CONFIG --libs blkid`; 
+		 STATIC_BLKID_LIBS=`$PKG_CONFIG --static --libs blkid`],
+		[AC_MSG_ERROR([external blkid library not found])],
+		[$BLKID_LIBS])
+	BLKID_CMT=#
+	AC_MSG_RESULT([Disabling private blkid library])
+else
+	BLKID_CMT=
+	AC_MSG_RESULT([Enabling private blkid library])
+fi
+,
+BLKID_CMT=
+AC_MSG_RESULT([Enabling private blkid library by default])
+)
+AC_SUBST(BLKID_CMT)
+AC_SUBST(BLKID_LIBS)
+AC_SUBST(STATIC_BLKID_LIBS)
+dnl
 dnl handle --enable-profile
 dnl
 AC_ARG_ENABLE([profile],
diff --git a/misc/Makefile.in b/misc/Makefile.in
index e35bb8f..defec7d 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -17,11 +17,17 @@ INSTALL = @INSTALL@
 @UUIDD_CMT@UUIDD_PROG= uuidd
 @UUIDD_CMT@UUIDD_MAN= uuidd.8
 
-SPROGS=		mke2fs badblocks tune2fs dumpe2fs blkid logsave \
+@BLKID_CMT@BLKID_PROG= blkid
+@BLKID_CMT@BLKID_MAN= blkid.8
+
+@BLKID_CMT@FINDFS_LINK= findfs
+@BLKID_CMT@FINDFS_MAN= findfs.8
+
+SPROGS=		mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
 			$(E2IMAGE_PROG) @FSCK_PROG@ e2undo
 USPROGS=	mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=	tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
-			e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
+			e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
 			logsave.8 filefrag.8 e2undo.8 $(UUIDD_MAN) @FSCK_MAN@
 FMANPAGES=	mke2fs.conf.5
 
@@ -397,9 +403,11 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
 	@echo "	LINK $(root_sbindir)/e2label"
 	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
 		$(DESTDIR)$(root_sbindir)/e2label
-	@echo "	LINK $(root_sbindir)/findfs"
-	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
-		$(DESTDIR)$(root_sbindir)/findfs
+	@if test -n "$(FINDFS_LINK)"; then \
+		echo "	LINK $(root_sbindir)/findfs"; \
+		$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+			$(DESTDIR)$(root_sbindir)/findfs; \
+	fi
 	@for i in $(UPROGS); do \
 		echo "	INSTALL $(bindir)/$$i"; \
 		$(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
@@ -509,7 +517,7 @@ uninstall:
 	for i in $(UMANPAGES); do \
 		$(RM) -f $(DESTDIR)$(man1dir)/$$i; \
 	done
-	for i in findfs e2label ; do \
+	for i in $(FINDFS_LINK) e2label ; do \
 		$(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \
 	done
 	for i in $(FMANPAGES); do \
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH] tune2fs: make findfs code optional
  2009-02-23 17:38 uti-linux-ng libblkid Karel Zak
  2009-02-23 17:38 ` [PATCH] blkid: add --disable-libblkid to build with external libblkid Karel Zak
@ 2009-02-23 17:38 ` Karel Zak
  2009-03-09  1:08 ` uti-linux-ng libblkid Theodore Tso
  2 siblings, 0 replies; 25+ messages in thread
From: Karel Zak @ 2009-02-23 17:38 UTC (permalink / raw)
  To: linux-ext4; +Cc: Theodore Ts'o, Karel Zak

This patch add CONFIG_BUILD_FINDFS to enable/disable findfs(8) code
in tune2fs.

Signed-off-by: Karel Zak <kzak@redhat.com>
---
 configure.in   |    2 ++
 misc/tune2fs.c |    6 ++++++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/configure.in b/configure.in
index 83ab14d..a45ad2c 100644
--- a/configure.in
+++ b/configure.in
@@ -296,10 +296,12 @@ then
 	AC_MSG_RESULT([Disabling private blkid library])
 else
 	BLKID_CMT=
+	AC_DEFINE(CONFIG_BUILD_FINDFS)
 	AC_MSG_RESULT([Enabling private blkid library])
 fi
 ,
 BLKID_CMT=
+AC_DEFINE(CONFIG_BUILD_FINDFS)
 AC_MSG_RESULT([Enabling private blkid library by default])
 )
 AC_SUBST(BLKID_CMT)
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 887a702..f1c8ab9 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -95,7 +95,9 @@ struct blk_move {
 
 static const char *please_fsck = N_("Please run e2fsck on the filesystem.\n");
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv);
+#endif
 
 static void usage(void)
 {
@@ -836,6 +838,7 @@ static void parse_tune2fs_options(int argc, char **argv)
 	}
 }
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv)
 {
 	char	*dev;
@@ -854,6 +857,7 @@ void do_findfs(int argc, char **argv)
 	puts(dev);
 	exit(0);
 }
+#endif
 
 static void parse_extended_opts(ext2_filsys fs, const char *opts)
 {
@@ -1492,8 +1496,10 @@ int main(int argc, char **argv)
 		program_name = *argv;
 	add_error_table(&et_ext2_error_table);
 
+#ifdef CONFIG_BUILD_FINDFS
 	if (strcmp(get_progname(argv[0]), "findfs") == 0)
 		do_findfs(argc, argv);
+#endif
 	if (strcmp(get_progname(argv[0]), "e2label") == 0)
 		parse_e2label_options(argc, argv);
 	else
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-02-23 17:38 ` [PATCH] blkid: add --disable-libblkid to build with external libblkid Karel Zak
@ 2009-02-24  8:44   ` Karel Zak
  2009-03-24 12:11     ` Scott James Remnant
  0 siblings, 1 reply; 25+ messages in thread
From: Karel Zak @ 2009-02-24  8:44 UTC (permalink / raw)
  To: linux-ext4; +Cc: Theodore Ts'o

On Mon, Feb 23, 2009 at 06:38:52PM +0100, Karel Zak wrote:
> This patch allows to switch between private (in-tree) libblkid and
> public (in-system installed) library. The private version is still
> enabled by default.

 I found some bugs in my previous patches. Please, use the patch
 below. This patch includes all necessary changes. Sorry.

    Karel


>From 3a75bf0b06b791280c43781544290c5c8838729b Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 24 Feb 2009 09:10:07 +0100
Subject: [PATCH] blkid: --disable-libblkid to build with external libblkid

 * add --disable-libblkid to switch between private (in-tree) libblkid
   and public (in-system installed) library. The private version is still
   enabled by default.

 * add CONFIG_BUILD_FINDFS to enable/disable findfs(8) code in tune2fs.

Signed-off-by: Karel Zak <kzak@redhat.com>
---
 MCONFIG.in       |   28 ++++++++++++++++++++++------
 Makefile.in      |    3 ++-
 configure.in     |   33 +++++++++++++++++++++++++++++++++
 misc/Makefile.in |   23 ++++++++++++++++-------
 misc/tune2fs.c   |    6 ++++++
 5 files changed, 79 insertions(+), 14 deletions(-)

diff --git a/MCONFIG.in b/MCONFIG.in
index f67682e..c7c16bf 100644
--- a/MCONFIG.in
+++ b/MCONFIG.in
@@ -69,36 +69,52 @@ MKINSTALLDIRS = @MKINSTALLDIRS@
 #
 # Library definitions
 #
+@BLKID_CMT@PRIVATE_LIBBLKID = yes
+
+# public libblkid options
+BLKID_LIBS = @BLKID_LIBS@
+STATIC_BLKID_LIBS = @STATIC_BLKID_LIBS@
+
+ifdef PRIVATE_LIBBLKID
+LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
+PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
+else
+LIBBLKID = $(BLKID_LIBS) @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = $(BLKID_LIBS) @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(STATIC_BLKID_LIBS) $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = $(STATIC_BLKID_LIBS)
+PROFILED_LIBBLKID = $(BLKID_LIBS) $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID = $(BLKID_LIBS)
+endif
+
 LIB = $(top_builddir)/lib
 LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
 LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
 LIBE2P = $(LIB)/libe2p@LIB_EXT@
 LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
 LIBUUID = $(LIB)/libuuid@LIB_EXT@ @SOCKET_LIB@
-LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 LIBINTL = @LIBINTL@
 DEPLIBSS = $(LIB)/libss@LIB_EXT@
 DEPLIBUUID = $(LIB)/libuuid@LIB_EXT@
-DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 
 STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
 STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
 STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
 STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
 STATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ @SOCKET_LIB@ 
-STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
 DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
 DEPSTATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@
-DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
 
 PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
 PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
 PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
 PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
 PROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@ @SOCKET_LIB@ 
-PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
 DEPPROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@
-DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
 
 # An include directive pointing to a directory holding enough linux-like
 # include files to satisfy some programs here
diff --git a/Makefile.in b/Makefile.in
index 728d3a5..1f1b8ea 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -11,8 +11,9 @@ INSTALL = @INSTALL@
 
 @RESIZER_CMT@RESIZE_DIR= resize
 @DEBUGFS_CMT@DEBUGFS_DIR= debugfs
+@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
 
-LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs lib/blkid intl
+LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs $(BLKID_LIB_SUBDIR) intl
 PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
 SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests
 
diff --git a/configure.in b/configure.in
index 2534df4..732ed30 100644
--- a/configure.in
+++ b/configure.in
@@ -276,6 +276,39 @@ AC_MSG_RESULT([Disabling BSD shared libraries by default])
 AC_SUBST(BSDLIB_CMT)
 AC_SUBST_FILE(MAKEFILE_BSDLIB)
 dnl
+dnl handle --disable-libblkid
+dnl
+PKG_PROG_PKG_CONFIG
+BLKID_LIBS=
+STATIC_BLKID_LIBS=
+BLKID_CMT=
+AC_ARG_ENABLE([libblkid],
+[  --disable-libblkid	  do not build private blkid library],
+if test "$enableval" = "no"
+then
+	if test -z "$PKG_CONFIG"; then
+		AC_MSG_ERROR([pkg-config not installed; please install it.])
+	fi
+
+	AC_CHECK_LIB(blkid, blkid_get_cache,
+		[BLKID_LIBS=`$PKG_CONFIG --libs blkid`;
+		 STATIC_BLKID_LIBS=`$PKG_CONFIG --static --libs blkid`],
+		[AC_MSG_ERROR([external blkid library not found])],
+		[$BLKID_LIBS])
+	BLKID_CMT=#
+	AC_MSG_RESULT([Disabling private blkid library])
+else
+	AC_DEFINE(CONFIG_BUILD_FINDFS)
+	AC_MSG_RESULT([Enabling private blkid library])
+fi
+,
+AC_DEFINE(CONFIG_BUILD_FINDFS)
+AC_MSG_RESULT([Enabling private blkid library by default])
+)
+AC_SUBST(BLKID_CMT)
+AC_SUBST(BLKID_LIBS)
+AC_SUBST(STATIC_BLKID_LIBS)
+dnl
 dnl handle --enable-profile
 dnl
 AC_ARG_ENABLE([profile],
diff --git a/misc/Makefile.in b/misc/Makefile.in
index e35bb8f..d426e57 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -17,11 +17,18 @@ INSTALL = @INSTALL@
 @UUIDD_CMT@UUIDD_PROG= uuidd
 @UUIDD_CMT@UUIDD_MAN= uuidd.8
 
-SPROGS=		mke2fs badblocks tune2fs dumpe2fs blkid logsave \
+@BLKID_CMT@BLKID_PROG= blkid
+@BLKID_CMT@BLKID_MAN= blkid.8
+@BLKID_CMT@BLKID_PROFILED= blkid.profiled
+
+@BLKID_CMT@FINDFS_LINK= findfs
+@BLKID_CMT@FINDFS_MAN= findfs.8
+
+SPROGS=		mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
 			$(E2IMAGE_PROG) @FSCK_PROG@ e2undo
 USPROGS=	mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=	tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
-			e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
+			e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
 			logsave.8 filefrag.8 e2undo.8 $(UUIDD_MAN) @FSCK_MAN@
 FMANPAGES=	mke2fs.conf.5
 
@@ -94,7 +101,7 @@ COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree
 all:: profiled $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) \
 	$(FMANPAGES) $(LPROGS)
 
-@PROFILE_CMT@all:: tune2fs.profiled blkid.profiled e2image.profiled \
+@PROFILE_CMT@all:: tune2fs.profiled $(BLKID_PROFILED) e2image.profiled \
 	e2undo.profiled mke2fs.profiled dumpe2fs.profiled fsck.profiled \
 	logsave.profiled filefrag.profiled uuidgen.profiled uuidd.profiled \
 	e2image.profiled
@@ -397,9 +404,11 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
 	@echo "	LINK $(root_sbindir)/e2label"
 	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
 		$(DESTDIR)$(root_sbindir)/e2label
-	@echo "	LINK $(root_sbindir)/findfs"
-	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
-		$(DESTDIR)$(root_sbindir)/findfs
+	@if test -n "$(FINDFS_LINK)"; then \
+		echo "	LINK $(root_sbindir)/findfs"; \
+		$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+			$(DESTDIR)$(root_sbindir)/findfs; \
+	fi
 	@for i in $(UPROGS); do \
 		echo "	INSTALL $(bindir)/$$i"; \
 		$(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
@@ -509,7 +518,7 @@ uninstall:
 	for i in $(UMANPAGES); do \
 		$(RM) -f $(DESTDIR)$(man1dir)/$$i; \
 	done
-	for i in findfs e2label ; do \
+	for i in $(FINDFS_LINK) e2label ; do \
 		$(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \
 	done
 	for i in $(FMANPAGES); do \
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 887a702..f1c8ab9 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -95,7 +95,9 @@ struct blk_move {
 
 static const char *please_fsck = N_("Please run e2fsck on the filesystem.\n");
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv);
+#endif
 
 static void usage(void)
 {
@@ -836,6 +838,7 @@ static void parse_tune2fs_options(int argc, char **argv)
 	}
 }
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv)
 {
 	char	*dev;
@@ -854,6 +857,7 @@ void do_findfs(int argc, char **argv)
 	puts(dev);
 	exit(0);
 }
+#endif
 
 static void parse_extended_opts(ext2_filsys fs, const char *opts)
 {
@@ -1492,8 +1496,10 @@ int main(int argc, char **argv)
 		program_name = *argv;
 	add_error_table(&et_ext2_error_table);
 
+#ifdef CONFIG_BUILD_FINDFS
 	if (strcmp(get_progname(argv[0]), "findfs") == 0)
 		do_findfs(argc, argv);
+#endif
 	if (strcmp(get_progname(argv[0]), "e2label") == 0)
 		parse_e2label_options(argc, argv);
 	else
-- 
1.6.0.6



^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: uti-linux-ng libblkid
  2009-02-23 17:38 uti-linux-ng libblkid Karel Zak
  2009-02-23 17:38 ` [PATCH] blkid: add --disable-libblkid to build with external libblkid Karel Zak
  2009-02-23 17:38 ` [PATCH] tune2fs: make findfs code optional Karel Zak
@ 2009-03-09  1:08 ` Theodore Tso
  2009-03-09 10:42   ` Karel Zak
                     ` (2 more replies)
  2 siblings, 3 replies; 25+ messages in thread
From: Theodore Tso @ 2009-03-09  1:08 UTC (permalink / raw)
  To: Karel Zak; +Cc: linux-ext4

On Mon, Feb 23, 2009 at 06:38:51PM +0100, Karel Zak wrote:
> Hi Ted,
> 
> here are two patches that allow to link utils from e2fsprogs with
> external libblkid (e.g. the version from util-linux-ng).

Thanks, I'm starting to play with the builtin fsprobe libraries in
util-linux-ng right now.  Some quick issues I've found right off the
bat.  Automake is returning these errors:

configure.ac:8: required file `config/missing' not found
configure.ac:8:   `automake --add-missing' can install `missing'
disk-utils/Makefile.am: required file `config/depcomp' not found
disk-utils/Makefile.am:   `automake --add-missing' can install `depcomp'
libs/blkid/src/Makefile.am:17: Libtool library used but `LIBTOOL' is undefined
libs/blkid/src/Makefile.am:17:   The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
libs/blkid/src/Makefile.am:17:   to `configure.ac' and run `aclocal' and `autoconf' again.
libs/blkid/src/Makefile.am:17:   If `AC_PROG_LIBTOOL' is in `configure.ac', make sure
libs/blkid/src/Makefile.am:17:   its definition is in aclocal's search path.
libs/blkid/src/probers/Makefile.am:5: Libtool library used but `LIBTOOL' is undefined
libs/blkid/src/probers/Makefile.am:5:   The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
libs/blkid/src/probers/Makefile.am:5:   to `configure.ac' and run `aclocal' and `autoconf' again.
libs/blkid/src/probers/Makefile.am:5:   If `AC_PROG_LIBTOOL' is in `configure.ac', make sure
libs/blkid/src/probers/Makefile.am:5:   its definition is in aclocal's search path.

Also, the configure --help for --with-fsprobe is currently:

  --with-fsprobe          library to guess filesystems
                          (builtin|blkid|volume_id), default is blkid

It would probably clearer if it read:

  --with-fsprobe=LIB      library to guess filesystems
                          LIB should be builtin|blkid|volume_id,
			  default is blkid

Also note there have been a couple of blkid fixes that have been made
to e2fsprogs git tree, I'll look into getting those pushed to you.

   	     	       	    	      	      	    - Ted

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: uti-linux-ng libblkid
  2009-03-09  1:08 ` uti-linux-ng libblkid Theodore Tso
@ 2009-03-09 10:42   ` Karel Zak
  2009-03-09 11:45   ` Karel Zak
  2009-03-18 19:28   ` Karel Zak
  2 siblings, 0 replies; 25+ messages in thread
From: Karel Zak @ 2009-03-09 10:42 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4

On Sun, Mar 08, 2009 at 09:08:33PM -0400, Theodore Tso wrote:
> On Mon, Feb 23, 2009 at 06:38:51PM +0100, Karel Zak wrote:
> > Hi Ted,
> > 
> > here are two patches that allow to link utils from e2fsprogs with
> > external libblkid (e.g. the version from util-linux-ng).
> 
> Thanks, I'm starting to play with the builtin fsprobe libraries in
> util-linux-ng right now.  Some quick issues I've found right off the
> bat.  Automake is returning these errors:
> 
> configure.ac:8: required file `config/missing' not found
> configure.ac:8:   `automake --add-missing' can install `missing'

 Did you run ./autogen.sh script? (It outputs versions of all relevant
 autotoos, this output is useful for debuging.)

 Maybe I can prepare a .tar.gz snapshot with generated build-system.

> Also, the configure --help for --with-fsprobe is currently:
> 
>   --with-fsprobe          library to guess filesystems
>                           (builtin|blkid|volume_id), default is blkid
> 
> It would probably clearer if it read:
> 
>   --with-fsprobe=LIB      library to guess filesystems
>                           LIB should be builtin|blkid|volume_id,
> 			  default is blkid

 Good point.

> Also note there have been a couple of blkid fixes that have been made
> to e2fsprogs git tree, I'll look into getting those pushed to you.

 No problem, I'll pull from your tree. I think the missing fixes are
 the latests patches from February only. All older fixes should be
 already in my tree.

 Thanks for your feedback.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: uti-linux-ng libblkid
  2009-03-09  1:08 ` uti-linux-ng libblkid Theodore Tso
  2009-03-09 10:42   ` Karel Zak
@ 2009-03-09 11:45   ` Karel Zak
  2009-03-18 19:28   ` Karel Zak
  2 siblings, 0 replies; 25+ messages in thread
From: Karel Zak @ 2009-03-09 11:45 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4

On Sun, Mar 08, 2009 at 09:08:33PM -0400, Theodore Tso wrote:
> Also note there have been a couple of blkid fixes that have been made
> to e2fsprogs git tree, I'll look into getting those pushed to you.

Applied/ported from your tree:

  commit eb630fd8708ae433e55e384079c08e0f0f040d22
  Author: Eric Sandeen <sandeen@redhat.com>
  Date:   Tue Feb 24 23:15:33 2009 -0600
  e2fsprogs: blkid.static make target

  commit a90f5391dda78f7bc4a8196a78355584ace0adf5
  Author: Eric Sandeen <sandeen@redhat.com>
  Date:   Tue Feb 24 23:17:54 2009 -0600
  blkid: recognize ext4(dev) without journal

  commit 1361821e7e248166f0740c832b164e6cd6b89de9
  Author: Theodore Ts'o <tytso@mit.edu>
  Date:   Sun Mar 8 18:56:41 2009 -0400
  blkid: Add fallback to ext4 for 2.6.29+ kernels if ext2 is not present


Our trees should be synced now.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: uti-linux-ng libblkid
  2009-03-09  1:08 ` uti-linux-ng libblkid Theodore Tso
  2009-03-09 10:42   ` Karel Zak
  2009-03-09 11:45   ` Karel Zak
@ 2009-03-18 19:28   ` Karel Zak
  2 siblings, 0 replies; 25+ messages in thread
From: Karel Zak @ 2009-03-18 19:28 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4

On Sun, Mar 08, 2009 at 09:08:33PM -0400, Theodore Tso wrote:
> On Mon, Feb 23, 2009 at 06:38:51PM +0100, Karel Zak wrote:
> > here are two patches that allow to link utils from e2fsprogs with
> > external libblkid (e.g. the version from util-linux-ng).
> 
> Thanks, I'm starting to play with the builtin fsprobe libraries in
> util-linux-ng right now.  Some quick issues I've found right off the
> bat.  Automake is returning these errors:

 Ted, use 
   ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.15/util-linux-ng-2.15-rc1.tar.bz2
 
 I look forward to see the patches in e2fsprogs ;-)

 I have question, do you think that you can freeze the libblkid
 version number in e2fsprogs? (now it's <maj>.<min>.<rel> = 1.41.4) 
 
 I think it makes sense to increment the major and minor version
 numbers in util-linux-ng only. The version in e2fsprogs should be in
 feature-freeze state.

 The current libblkid version number in util-linux-ng-2.15-rc1 is 
 1.99.0 -- but I'd like to use something more sane for the final
 release.

 Thanks.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-02-24  8:44   ` [PATCH] blkid: add --disable-libblkid (v2) Karel Zak
@ 2009-03-24 12:11     ` Scott James Remnant
  2009-04-16 10:22       ` Karel Zak
  0 siblings, 1 reply; 25+ messages in thread
From: Scott James Remnant @ 2009-03-24 12:11 UTC (permalink / raw)
  To: linux-ext4; +Cc: Karel Zak, Theodore Tso

[-- Attachment #1: Type: text/plain, Size: 423 bytes --]

Karel Zak wrote:

> I found some bugs in my previous patches. Please, use the patch
> below. This patch includes all necessary changes. Sorry.
> 
When putting together an Ubuntu package with this patch, I found that it
ends up putting the pkg-config output into the make dependency variables
and thus fails because it can't make the "-L/lib" target.

The attached patch fixes that, and includes your previous patch.

Scott

[-- Attachment #2: blkid-add---disable-libblkid-v3.patch --]
[-- Type: text/x-diff, Size: 8084 bytes --]

diff -ruNp e2fsprogs-1.41.4~/MCONFIG.in e2fsprogs-1.41.4/MCONFIG.in
--- e2fsprogs-1.41.4~/MCONFIG.in	2008-11-15 17:17:22.000000000 +0000
+++ e2fsprogs-1.41.4/MCONFIG.in	2009-03-24 11:28:26.000000000 +0000
@@ -69,36 +69,52 @@ MKINSTALLDIRS = @MKINSTALLDIRS@
 #
 # Library definitions
 #
+@BLKID_CMT@PRIVATE_LIBBLKID = yes
+
+# public libblkid options
+BLKID_LIBS = @BLKID_LIBS@
+STATIC_BLKID_LIBS = @STATIC_BLKID_LIBS@
+
+ifdef PRIVATE_LIBBLKID
+LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
+PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
+else
+LIBBLKID = $(BLKID_LIBS) @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(STATIC_BLKID_LIBS) $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = 
+PROFILED_LIBBLKID = $(BLKID_LIBS) $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID =
+endif
+
 LIB = $(top_builddir)/lib
 LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
 LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
 LIBE2P = $(LIB)/libe2p@LIB_EXT@
 LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
 LIBUUID = $(LIB)/libuuid@LIB_EXT@ @SOCKET_LIB@
-LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 LIBINTL = @LIBINTL@
 DEPLIBSS = $(LIB)/libss@LIB_EXT@
 DEPLIBUUID = $(LIB)/libuuid@LIB_EXT@
-DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 
 STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
 STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
 STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
 STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
 STATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ @SOCKET_LIB@ 
-STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
 DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
 DEPSTATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@
-DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
 
 PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
 PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
 PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
 PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
 PROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@ @SOCKET_LIB@ 
-PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
 DEPPROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@
-DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
 
 # An include directive pointing to a directory holding enough linux-like
 # include files to satisfy some programs here
diff -ruNp e2fsprogs-1.41.4~/Makefile.in e2fsprogs-1.41.4/Makefile.in
--- e2fsprogs-1.41.4~/Makefile.in	2008-10-13 04:12:22.000000000 +0100
+++ e2fsprogs-1.41.4/Makefile.in	2009-03-23 18:58:48.000000000 +0000
@@ -11,8 +11,9 @@ INSTALL = @INSTALL@
 
 @RESIZER_CMT@RESIZE_DIR= resize
 @DEBUGFS_CMT@DEBUGFS_DIR= debugfs
+@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
 
-LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs lib/blkid intl
+LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs $(BLKID_LIB_SUBDIR) intl
 PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
 SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests
 
diff -ruNp e2fsprogs-1.41.4~/configure.in e2fsprogs-1.41.4/configure.in
--- e2fsprogs-1.41.4~/configure.in	2008-10-07 15:22:39.000000000 +0100
+++ e2fsprogs-1.41.4/configure.in	2009-03-23 18:58:48.000000000 +0000
@@ -276,6 +276,39 @@ AC_MSG_RESULT([Disabling BSD shared libr
 AC_SUBST(BSDLIB_CMT)
 AC_SUBST_FILE(MAKEFILE_BSDLIB)
 dnl
+dnl handle --disable-libblkid
+dnl
+PKG_PROG_PKG_CONFIG
+BLKID_LIBS=
+STATIC_BLKID_LIBS=
+BLKID_CMT=
+AC_ARG_ENABLE([libblkid],
+[  --disable-libblkid	  do not build private blkid library],
+if test "$enableval" = "no"
+then
+	if test -z "$PKG_CONFIG"; then
+		AC_MSG_ERROR([pkg-config not installed; please install it.])
+	fi
+
+	AC_CHECK_LIB(blkid, blkid_get_cache,
+		[BLKID_LIBS=`$PKG_CONFIG --libs blkid`;
+		 STATIC_BLKID_LIBS=`$PKG_CONFIG --static --libs blkid`],
+		[AC_MSG_ERROR([external blkid library not found])],
+		[$BLKID_LIBS])
+	BLKID_CMT=#
+	AC_MSG_RESULT([Disabling private blkid library])
+else
+	AC_DEFINE(CONFIG_BUILD_FINDFS)
+	AC_MSG_RESULT([Enabling private blkid library])
+fi
+,
+AC_DEFINE(CONFIG_BUILD_FINDFS)
+AC_MSG_RESULT([Enabling private blkid library by default])
+)
+AC_SUBST(BLKID_CMT)
+AC_SUBST(BLKID_LIBS)
+AC_SUBST(STATIC_BLKID_LIBS)
+dnl
 dnl handle --enable-profile
 dnl
 AC_ARG_ENABLE([profile],
diff -ruNp e2fsprogs-1.41.4~/misc/Makefile.in e2fsprogs-1.41.4/misc/Makefile.in
--- e2fsprogs-1.41.4~/misc/Makefile.in	2008-11-15 17:33:33.000000000 +0000
+++ e2fsprogs-1.41.4/misc/Makefile.in	2009-03-23 18:58:48.000000000 +0000
@@ -17,11 +17,18 @@ INSTALL = @INSTALL@
 @UUIDD_CMT@UUIDD_PROG= uuidd
 @UUIDD_CMT@UUIDD_MAN= uuidd.8
 
-SPROGS=		mke2fs badblocks tune2fs dumpe2fs blkid logsave \
+@BLKID_CMT@BLKID_PROG= blkid
+@BLKID_CMT@BLKID_MAN= blkid.8
+@BLKID_CMT@BLKID_PROFILED= blkid.profiled
+
+@BLKID_CMT@FINDFS_LINK= findfs
+@BLKID_CMT@FINDFS_MAN= findfs.8
+
+SPROGS=		mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
 			$(E2IMAGE_PROG) @FSCK_PROG@ e2undo
 USPROGS=	mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=	tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
-			e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
+			e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
 			logsave.8 filefrag.8 e2undo.8 $(UUIDD_MAN) @FSCK_MAN@
 FMANPAGES=	mke2fs.conf.5
 
@@ -94,7 +101,7 @@ COMPILE_ET=$(top_builddir)/lib/et/compil
 all:: profiled $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) \
 	$(FMANPAGES) $(LPROGS)
 
-@PROFILE_CMT@all:: tune2fs.profiled blkid.profiled e2image.profiled \
+@PROFILE_CMT@all:: tune2fs.profiled $(BLKID_PROFILED) e2image.profiled \
 	e2undo.profiled mke2fs.profiled dumpe2fs.profiled fsck.profiled \
 	logsave.profiled filefrag.profiled uuidgen.profiled uuidd.profiled \
 	e2image.profiled
@@ -397,9 +404,11 @@ install: all $(SMANPAGES) $(UMANPAGES) i
 	@echo "	LINK $(root_sbindir)/e2label"
 	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
 		$(DESTDIR)$(root_sbindir)/e2label
-	@echo "	LINK $(root_sbindir)/findfs"
-	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
-		$(DESTDIR)$(root_sbindir)/findfs
+	@if test -n "$(FINDFS_LINK)"; then \
+		echo "	LINK $(root_sbindir)/findfs"; \
+		$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+			$(DESTDIR)$(root_sbindir)/findfs; \
+	fi
 	@for i in $(UPROGS); do \
 		echo "	INSTALL $(bindir)/$$i"; \
 		$(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
@@ -509,7 +518,7 @@ uninstall:
 	for i in $(UMANPAGES); do \
 		$(RM) -f $(DESTDIR)$(man1dir)/$$i; \
 	done
-	for i in findfs e2label ; do \
+	for i in $(FINDFS_LINK) e2label ; do \
 		$(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \
 	done
 	for i in $(FMANPAGES); do \
diff -ruNp e2fsprogs-1.41.4~/misc/tune2fs.c e2fsprogs-1.41.4/misc/tune2fs.c
--- e2fsprogs-1.41.4~/misc/tune2fs.c	2009-01-20 15:50:01.000000000 +0000
+++ e2fsprogs-1.41.4/misc/tune2fs.c	2009-03-23 18:58:48.000000000 +0000
@@ -95,7 +95,9 @@ struct blk_move {
 
 static const char *please_fsck = N_("Please run e2fsck on the filesystem.\n");
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv);
+#endif
 
 static void usage(void)
 {
@@ -836,6 +838,7 @@ static void parse_tune2fs_options(int ar
 	}
 }
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv)
 {
 	char	*dev;
@@ -854,6 +857,7 @@ void do_findfs(int argc, char **argv)
 	puts(dev);
 	exit(0);
 }
+#endif
 
 static void parse_extended_opts(ext2_filsys fs, const char *opts)
 {
@@ -1492,8 +1496,10 @@ int main(int argc, char **argv)
 		program_name = *argv;
 	add_error_table(&et_ext2_error_table);
 
+#ifdef CONFIG_BUILD_FINDFS
 	if (strcmp(get_progname(argv[0]), "findfs") == 0)
 		do_findfs(argc, argv);
+#endif
 	if (strcmp(get_progname(argv[0]), "e2label") == 0)
 		parse_e2label_options(argc, argv);
 	else

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-03-24 12:11     ` Scott James Remnant
@ 2009-04-16 10:22       ` Karel Zak
  2009-04-17 13:36         ` Kay Sievers
                           ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Karel Zak @ 2009-04-16 10:22 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4, Scott James Remnant, Kay Sievers

On Tue, Mar 24, 2009 at 12:11:47PM +0000, Scott James Remnant wrote:
> Karel Zak wrote:
> 
> > I found some bugs in my previous patches. Please, use the patch
> > below. This patch includes all necessary changes. Sorry.
> > 
> When putting together an Ubuntu package with this patch, I found that it
> ends up putting the pkg-config output into the make dependency variables
> and thus fails because it can't make the "-L/lib" target.
> 
> The attached patch fixes that, and includes your previous patch.

 Ted, ping ping ping... :-) Please, we need your feedback.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-16 10:22       ` Karel Zak
@ 2009-04-17 13:36         ` Kay Sievers
  2009-04-17 13:48         ` Scott James Remnant
  2009-04-29 20:23         ` Theodore Tso
  2 siblings, 0 replies; 25+ messages in thread
From: Kay Sievers @ 2009-04-17 13:36 UTC (permalink / raw)
  To: Karel Zak; +Cc: Theodore Tso, linux-ext4, Scott James Remnant

On Thu, Apr 16, 2009 at 12:22, Karel Zak <kzak@redhat.com> wrote:
> On Tue, Mar 24, 2009 at 12:11:47PM +0000, Scott James Remnant wrote:
>> Karel Zak wrote:
>>
>> > I found some bugs in my previous patches. Please, use the patch
>> > below. This patch includes all necessary changes. Sorry.
>> >
>> When putting together an Ubuntu package with this patch, I found that it
>> ends up putting the pkg-config output into the make dependency variables
>> and thus fails because it can't make the "-L/lib" target.
>>
>> The attached patch fixes that, and includes your previous patch.
>
>  Ted, ping ping ping... :-) Please, we need your feedback.

Ted? Please make sure we get this in.

You will save people not using Fedora, SUSE, Ubuntu, finding out why
recent tools they try to build/install will stop working for them,
when they don't have these patches. We are going to introduce hard
dependencies on the the new libblkid from util-linux-ng for a bunch of
upstream projects.

Thanks,
Kay
--
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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-16 10:22       ` Karel Zak
  2009-04-17 13:36         ` Kay Sievers
@ 2009-04-17 13:48         ` Scott James Remnant
  2009-04-22 13:33           ` Theodore Tso
  2009-04-29 20:23         ` Theodore Tso
  2 siblings, 1 reply; 25+ messages in thread
From: Scott James Remnant @ 2009-04-17 13:48 UTC (permalink / raw)
  To: Karel Zak; +Cc: Theodore Tso, linux-ext4, Kay Sievers


[-- Attachment #1.1: Type: text/plain, Size: 891 bytes --]

On Thu, 2009-04-16 at 12:22 +0200, Karel Zak wrote:

> On Tue, Mar 24, 2009 at 12:11:47PM +0000, Scott James Remnant wrote:
> > Karel Zak wrote:
> > 
> > > I found some bugs in my previous patches. Please, use the patch
> > > below. This patch includes all necessary changes. Sorry.
> > > 
> > When putting together an Ubuntu package with this patch, I found that it
> > ends up putting the pkg-config output into the make dependency variables
> > and thus fails because it can't make the "-L/lib" target.
> > 
> > The attached patch fixes that, and includes your previous patch.
> 
>  Ted, ping ping ping... :-) Please, we need your feedback.
> 
If it's any help, here's a complete difference including changes to the
debian directory to remove the blkid packages - this includes the v3
patch I sent to the ext4 list.

Scott
-- 
Scott James Remnant
scott@ubuntu.com

[-- Attachment #1.2: e2fsprogs-debian-blkid.patch --]
[-- Type: text/x-patch, Size: 20493 bytes --]

diff -u e2fsprogs-1.41.4/debian/rules e2fsprogs-1.41.4/debian/rules
--- e2fsprogs-1.41.4/debian/rules
+++ e2fsprogs-1.41.4/debian/rules
@@ -30,8 +30,9 @@
 SS_SOVERSION = $(shell grep ELF_SO_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
 UUID_VERSION = $(shell grep ELF_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
 UUID_SOVERSION = $(shell grep ELF_SO_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
-BLKID_VERSION = $(shell grep ELF_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
-BLKID_SOVERSION = $(shell grep ELF_SO_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
+# blkid moved to util-linux-ng
+#BLKID_VERSION = $(shell grep ELF_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
+#BLKID_SOVERSION = $(shell grep ELF_SO_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
 EXT2FS_SOVERSION = $(shell grep ELF_SO_VERSION lib/ext2fs/Makefile.in | cut '-d ' -f3)
 E2P_SOVERSION = $(shell grep ELF_SO_VERSION lib/e2p/Makefile.in | cut '-d ' -f3)
 
@@ -41,7 +42,8 @@
 debdir=${topdir}/debian
 tmpdir=${debdir}/tmp
 udebdir=${debdir}/e2fsprogs-udeb
-blkidudebdir=${debdir}/libblkid1-udeb
+# blkid moved to util-linux-ng
+#blkidudebdir=${debdir}/libblkid1-udeb
 uuidudebdir=${debdir}/libuuid1-udeb
 libcomerrdir=${debdir}/libcomerr${COMERR_SOVERSION}
 comerrdevdir=${debdir}/comerr-dev
@@ -49,9 +51,10 @@
 libssdir=${debdir}/libss${SS_SOVERSION}
 ssdevdir=${debdir}/ss-dev
 libssdbgdir=${debdir}/libss2-dbg
-libblkiddir=${debdir}/libblkid${BLKID_SOVERSION}
-libblkiddevdir=${debdir}/libblkid-dev
-libblkiddbgdir=${debdir}/libblkid1-dbg
+# blkid moved to util-linux-ng
+#libblkiddir=${debdir}/libblkid${BLKID_SOVERSION}
+#libblkiddevdir=${debdir}/libblkid-dev
+#libblkiddbgdir=${debdir}/libblkid1-dbg
 libuuiddir=${debdir}/libuuid${UUID_SOVERSION}
 uuiddevdir=${debdir}/uuid-dev
 libuuiddbgdir=${debdir}/libuuid1-dbg
@@ -75,8 +78,9 @@
 UDEB_NAME = $(package)-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
 UDEB_PRIORITY = $(shell grep '^Package: e2fsprogs-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
 
-BLKID_UDEB_NAME = libblkid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
-BLKID_UDEB_PRIORITY = $(shell grep '^Package: libblkid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
+# blkid moved to util-linux-ng
+#BLKID_UDEB_NAME = libblkid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
+#BLKID_UDEB_PRIORITY = $(shell grep '^Package: libblkid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
 
 UUID_UDEB_NAME = libuuid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
 UUID_UDEB_PRIORITY = $(shell grep '^Package: libuuid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
@@ -117,7 +121,7 @@
 BF_CCOPTS = -Os -fomit-frame-pointer
 
 COMMON_CONF_FLAGS =  \
-                --enable-elf-shlibs --infodir=/usr/share/info --enable-fsck
+                --enable-elf-shlibs --infodir=/usr/share/info --disable-libblkid --disable-fsck
 
 STD_CONF_FLAGS = --with-ccopts="${CCOPTS}" --enable-compression
 
@@ -327,8 +331,9 @@
 		ln -s e2fsck fsck.ext3 ; ln -s mke2fs mkfs.ext2 ; \
 		ln -s mke2fs mkfs.ext3 ; ln -s mke2fs mkfs.ext4)
 
-	mkdir -p ${blkidudebdir}/lib
-	mv ${udebdir}/lib/libblkid.* ${blkidudebdir}/lib
+# blkid moved to util-linux-ng
+#	mkdir -p ${blkidudebdir}/lib
+#	mv ${udebdir}/lib/libblkid.* ${blkidudebdir}/lib
 
 	mkdir -p ${uuidudebdir}/lib
 	mv ${udebdir}/lib/libuuid.* ${uuidudebdir}/lib
@@ -360,9 +365,10 @@
 
   # symlinks to prepare dh_installdocs run
 
-	mkdir -p ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}
-	mkdir -p ${debdir}/libblkid-dev/usr/share/doc
-	ln -sf libblkid${BLKID_SOVERSION} ${debdir}/libblkid-dev/usr/share/doc/libblkid-dev
+# blkid moved to util-linux-ng
+#	mkdir -p ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}
+#	mkdir -p ${debdir}/libblkid-dev/usr/share/doc
+#	ln -sf libblkid${BLKID_SOVERSION} ${debdir}/libblkid-dev/usr/share/doc/libblkid-dev
 
 	mkdir -p ${debdir}/libss${SS_SOVERSION}/usr/share/doc/libss${SS_SOVERSION}
 	mkdir -p ${debdir}/ss-dev/usr/share/doc
@@ -380,10 +386,13 @@
 	mkdir -p ${debdir}/e2fslibs-dev/usr/share/doc
 	ln -sf e2fslibs ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev
 
-	$(INSTALL) -p -m 0644 debian/libblkid.copyright \
+# blkid moved to util-linux-ng
+#	$(INSTALL) -p -m 0644 debian/libblkid.copyright \
 		${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}/copyright
 
-	dh_installdocs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+# blkid moved to util-linux-ng
+#	dh_installdocs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+	dh_installdocs -Ne2fsprogs-udeb -Nlibuuid1-udeb
 
   # HTML docs
 	$(INSTALL) -d ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs/html-info/
@@ -417,12 +426,19 @@
 	dh_installinfo -pcomerr-dev ${stdbuilddir}/lib/et/com_err.info
 	dh_installinfo -pe2fslibs-dev ${stdbuilddir}/doc/libext2fs.info
 
+# blkid moved to util-linux-ng
+#	DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
+#		-plibblkid${BLKID_SOVERSION} -plibcomerr${COMERR_SOVERSION} \
+#		-plibss${SS_SOVERSION} -plibuuid${UUID_SOVERSION} \
+#		-pe2fslibs -puuid-dev -puuid-runtime -pe2fsck-static \
+#		-pe2fsprogs-dbg -puuid-runtime-dbg -pe2fslibs-dbg \
+#		-plibcomerr2-dbg -plibss2-dbg -plibblkid1-dbg -plibuuid1-dbg
 	DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
-		-plibblkid${BLKID_SOVERSION} -plibcomerr${COMERR_SOVERSION} \
+		-plibcomerr${COMERR_SOVERSION} \
 		-plibss${SS_SOVERSION} -plibuuid${UUID_SOVERSION} \
 		-pe2fslibs -puuid-dev -puuid-runtime -pe2fsck-static \
 		-pe2fsprogs-dbg -puuid-runtime-dbg -pe2fslibs-dbg \
-		-plibcomerr2-dbg -plibss2-dbg -plibblkid1-dbg -plibuuid1-dbg
+		-plibcomerr2-dbg -plibss2-dbg -plibuuid1-dbg
 
 	dh_fixperms
 ifneq ($(ismips),)
@@ -433,7 +449,8 @@
 
 	# debug package stuff
 	rm -rf ${udebdir}/usr
-	rm -rf ${blkidudebdir}/usr
+# blkid moved to util-linux-ng
+#	rm -rf ${blkidudebdir}/usr
 	rm -rf ${uuidudebdir}/usr
 
 	mkdir -p ${debugdir}/usr/lib
@@ -463,13 +480,16 @@
 	mv ${libuuiddir}/usr/lib/debug ${libuuiddbgdir}/usr/lib
 	rmdir ${libuuiddir}/usr/lib
 
-	mkdir -p ${libblkiddbgdir}/usr/lib
-	mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/usr/lib
-	rmdir ${libblkiddir}/usr/lib
+# blkid moved to util-linux-ng
+#	mkdir -p ${libblkiddbgdir}/usr/lib
+#	mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/usr/lib
+#	rmdir ${libblkiddir}/usr/lib
 
 	# dpkg symbol handling
 ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
-	for i in e2fslibs libcomerr2 libss2 libblkid1 libuuid1; \
+# blkid moved to util-linux-ng
+#	for i in e2fslibs libcomerr2 libss2 libblkid1 libuuid1;
+	for i in e2fslibs libcomerr2 libss2 libuuid1; \
 	do \
 		echo "Generating symbols for $$i..."; \
 		dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \
@@ -494,20 +514,24 @@
 	$(INSTALL) -p -m 0644 debian/libss2.copyright \
 		${libssdbgdir}/usr/share/doc/libss2-dbg/copyright
 
-	$(INSTALL) -p -m 0644 debian/libblkid.copyright \
-		${libblkiddbgdir}/usr/share/doc/libblkid1-dbg/copyright
+# blkid moved to util-linux-ng
+#	$(INSTALL) -p -m 0644 debian/libblkid.copyright \
+#		${libblkiddbgdir}/usr/share/doc/libblkid1-dbg/copyright
 
 	$(INSTALL) -p -m 0644 debian/libuuid1.copyright \
 		${libuuiddbgdir}/usr/share/doc/libuuid1-dbg/copyright
 
 	dh_compress
 
-	dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+# blkid moved to util-linux-ng
+#	dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+	dh_makeshlibs -Ne2fsprogs-udeb -Nlibuuid1-udeb
 	dh_makeshlibs -plibcomerr${COMERR_SOVERSION} \
 		-V 'libcomerr2 (>= 1.33-3)'
-	dh_makeshlibs -plibblkid${BLKID_SOVERSION} -V 'libblkid1 (>= 1.39-1)'
-	echo "udeb: libblkid 1 libblkid1-udeb" >> \
-		debian/libblkid1/DEBIAN/shlibs
+# blkid moved to util-linux-ng
+#	dh_makeshlibs -plibblkid${BLKID_SOVERSION} -V 'libblkid1 (>= 1.39-1)'
+#	echo "udeb: libblkid 1 libblkid1-udeb" >> \
+#		debian/libblkid1/DEBIAN/shlibs
 	echo "udeb: libuuid 1 libuuid1-udeb" >> debian/libuuid1/DEBIAN/shlibs
 
 	dh_installdeb
@@ -517,8 +541,11 @@
 	dh_shlibdeps -pe2fsprogs-udeb -l${stdbuilddir}/lib \
 		-u"-Ldebian/e2fsprogs-udeb.shlibs.local"
 
+# blkid moved to util-linux-ng
+#	dh_gencontrol -Ncomerr-dev -Nss-dev -Nuuid-dev \
+#		-Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
 	dh_gencontrol -Ncomerr-dev -Nss-dev -Nuuid-dev \
-		-Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+		-Ne2fsprogs-udeb -Nlibuuid1-udeb
 	DH_OPTIONS= dh_gencontrol -pcomerr-dev \
 	  -u '-v${COMERR_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
 	DH_OPTIONS= dh_gencontrol -pss-dev \
@@ -526,16 +553,22 @@
 	DH_OPTIONS= dh_gencontrol -puuid-dev \
 	  -u '-v${UUID_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
 	dh_gencontrol	-pe2fsprogs-udeb -- -fdebian/files~
-	dh_gencontrol	-plibblkid1-udeb -- -fdebian/files~
+# blkid moved to util-linux-ng
+#	dh_gencontrol	-plibblkid1-udeb -- -fdebian/files~
 	dh_gencontrol	-plibuuid1-udeb -- -fdebian/files~
 
 	dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY)
-	dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY)
+# blkid moved to util-linux-ng
+#	dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY)
 	dpkg-distaddfile $(UUID_UDEB_NAME) debian-installer $(UUID_UDEB_PRIORITY)
-	dh_md5sums -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
-	dh_builddeb -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+# blkid moved to util-linux-ng
+#	dh_md5sums -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+#	dh_builddeb -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
+	dh_md5sums -Ne2fsprogs-udeb  -Nlibuuid1-udeb
+	dh_builddeb -Ne2fsprogs-udeb -Nlibuuid1-udeb
 	dh_builddeb -pe2fsprogs-udeb --filename=$(UDEB_NAME)
-	dh_builddeb -plibblkid1-udeb --filename=$(BLKID_UDEB_NAME)
+# blkid moved to util-linux-ng
+#	dh_builddeb -plibblkid1-udeb --filename=$(BLKID_UDEB_NAME)
 	dh_builddeb -plibuuid1-udeb --filename=$(UUID_UDEB_NAME)
 
 binary: binary-indep binary-arch
diff -u e2fsprogs-1.41.4/debian/control e2fsprogs-1.41.4/debian/control
--- e2fsprogs-1.41.4/debian/control
+++ e2fsprogs-1.41.4/debian/control
@@ -3,7 +3,7 @@
 Priority: required
 Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 XSBC-Original-Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
-Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, debhelper (>= 4.2)
+Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, debhelper (>= 4.2), libblkid-dev (>= 2.15~rc1)
 Standards-Version: 3.8.0.0
 
 Package: e2fsck-static
@@ -128,47 +128,6 @@
  .
  This package contains the development environment for the uuid library.
 
-Package: libblkid1
-Section: libs
-Priority: required
-Depends: ${shlibs:Depends}
-Architecture: any
-Description: block device id library
- The blkid library which allows system programs like fsck and 
- mount to quickly and easily find block devices by filesystem UUID and 
- LABEL.  This allows system administrators to avoid specifying 
- filesystems by hard-coded device names, but via a logical naming 
- system instead.
-
-Package: libblkid1-udeb
-XC-Package-Type: udeb
-Section: debian-installer
-Priority: optional
-Depends: ${shlibs:Depends}
-Architecture: any
-Description: block device id library
- The blkid library which allows system programs like fsck and 
- mount to quickly and easily find block devices by filesystem UUID and 
- LABEL.  This allows system administrators to avoid specifiying 
- filesystems by hard-coded device names, but via a logical naming 
- system instead.
- .
- This is a minimal package for debian-installer.
-
-Package: libblkid-dev
-Section: libdevel
-Priority: extra
-Depends: libc6-dev | libc-dev, libblkid1 (= ${binary:Version})
-Architecture: any
-Description: block device id library - headers and static libraries
- The blkid library which allows system programs like fsck and 
- mount to quickly and easily find block devices by filesystem UUID and 
- LABEL.  This allows system administrators to avoid specifiying 
- filesystems by hard-coded device names, but via a logical naming 
- system instead.
- .
- This package contains the development environment for the blkid library.
-
 Package: e2fsprogs-udeb
 XC-Package-Type: udeb
 Section: debian-installer
@@ -282,16 +241,6 @@
  ss library, contained in the libss2 package.  The debug information
  is used for execution tracing and core dump analysis.
 
-Package: libblkid1-dbg
-Section: libdevel
-Priority: extra
-Depends: libblkid1 (= ${binary:Version})
-Architecture: any
-Description: Debugging information for libblkid1
- This package includes the debug information useful for debugging the
- blkid library, contained in the libblkid1 package.  The debug
- information is used for execution tracing and core dump analysis.
-
 Package: libuuid1-dbg
 Section: libdevel
 Priority: extra
only in patch2:
unchanged:
--- e2fsprogs-1.41.4.orig/Makefile.in
+++ e2fsprogs-1.41.4/Makefile.in
@@ -11,8 +11,9 @@
 
 @RESIZER_CMT@RESIZE_DIR= resize
 @DEBUGFS_CMT@DEBUGFS_DIR= debugfs
+@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
 
-LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs lib/blkid intl
+LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs $(BLKID_LIB_SUBDIR) intl
 PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
 SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests
 
only in patch2:
unchanged:
--- e2fsprogs-1.41.4.orig/configure.in
+++ e2fsprogs-1.41.4/configure.in
@@ -276,6 +276,39 @@
 AC_SUBST(BSDLIB_CMT)
 AC_SUBST_FILE(MAKEFILE_BSDLIB)
 dnl
+dnl handle --disable-libblkid
+dnl
+PKG_PROG_PKG_CONFIG
+BLKID_LIBS=
+STATIC_BLKID_LIBS=
+BLKID_CMT=
+AC_ARG_ENABLE([libblkid],
+[  --disable-libblkid	  do not build private blkid library],
+if test "$enableval" = "no"
+then
+	if test -z "$PKG_CONFIG"; then
+		AC_MSG_ERROR([pkg-config not installed; please install it.])
+	fi
+
+	AC_CHECK_LIB(blkid, blkid_get_cache,
+		[BLKID_LIBS=`$PKG_CONFIG --libs blkid`;
+		 STATIC_BLKID_LIBS=`$PKG_CONFIG --static --libs blkid`],
+		[AC_MSG_ERROR([external blkid library not found])],
+		[$BLKID_LIBS])
+	BLKID_CMT=#
+	AC_MSG_RESULT([Disabling private blkid library])
+else
+	AC_DEFINE(CONFIG_BUILD_FINDFS)
+	AC_MSG_RESULT([Enabling private blkid library])
+fi
+,
+AC_DEFINE(CONFIG_BUILD_FINDFS)
+AC_MSG_RESULT([Enabling private blkid library by default])
+)
+AC_SUBST(BLKID_CMT)
+AC_SUBST(BLKID_LIBS)
+AC_SUBST(STATIC_BLKID_LIBS)
+dnl
 dnl handle --enable-profile
 dnl
 AC_ARG_ENABLE([profile],
only in patch2:
unchanged:
--- e2fsprogs-1.41.4.orig/MCONFIG.in
+++ e2fsprogs-1.41.4/MCONFIG.in
@@ -69,36 +69,52 @@
 #
 # Library definitions
 #
+@BLKID_CMT@PRIVATE_LIBBLKID = yes
+
+# public libblkid options
+BLKID_LIBS = @BLKID_LIBS@
+STATIC_BLKID_LIBS = @STATIC_BLKID_LIBS@
+
+ifdef PRIVATE_LIBBLKID
+LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
+PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
+else
+LIBBLKID = $(BLKID_LIBS) @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = @PRIVATE_LIBS_CMT@ $(LIBUUID)
+STATIC_LIBBLKID = $(STATIC_BLKID_LIBS) $(STATIC_LIBUUID)
+DEPSTATIC_LIBBLKID = 
+PROFILED_LIBBLKID = $(BLKID_LIBS) $(PROFILED_LIBUUID)
+DEPPROFILED_LIBBLKID =
+endif
+
 LIB = $(top_builddir)/lib
 LIBSS = $(LIB)/libss@LIB_EXT@ @PRIVATE_LIBS_CMT@ @DLOPEN_LIB@
 LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
 LIBE2P = $(LIB)/libe2p@LIB_EXT@
 LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
 LIBUUID = $(LIB)/libuuid@LIB_EXT@ @SOCKET_LIB@
-LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 LIBINTL = @LIBINTL@
 DEPLIBSS = $(LIB)/libss@LIB_EXT@
 DEPLIBUUID = $(LIB)/libuuid@LIB_EXT@
-DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 
 STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
 STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
 STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
 STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
 STATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ @SOCKET_LIB@ 
-STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
 DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
 DEPSTATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@
-DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
 
 PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
 PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
 PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
 PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
 PROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@ @SOCKET_LIB@ 
-PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
 DEPPROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@
-DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
 
 # An include directive pointing to a directory holding enough linux-like
 # include files to satisfy some programs here
only in patch2:
unchanged:
--- e2fsprogs-1.41.4.orig/misc/Makefile.in
+++ e2fsprogs-1.41.4/misc/Makefile.in
@@ -17,11 +17,18 @@
 @UUIDD_CMT@UUIDD_PROG= uuidd
 @UUIDD_CMT@UUIDD_MAN= uuidd.8
 
-SPROGS=		mke2fs badblocks tune2fs dumpe2fs blkid logsave \
+@BLKID_CMT@BLKID_PROG= blkid
+@BLKID_CMT@BLKID_MAN= blkid.8
+@BLKID_CMT@BLKID_PROFILED= blkid.profiled
+
+@BLKID_CMT@FINDFS_LINK= findfs
+@BLKID_CMT@FINDFS_MAN= findfs.8
+
+SPROGS=		mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
 			$(E2IMAGE_PROG) @FSCK_PROG@ e2undo
 USPROGS=	mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=	tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
-			e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
+			e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
 			logsave.8 filefrag.8 e2undo.8 $(UUIDD_MAN) @FSCK_MAN@
 FMANPAGES=	mke2fs.conf.5
 
@@ -94,7 +101,7 @@
 all:: profiled $(SPROGS) $(UPROGS) $(USPROGS) $(SMANPAGES) $(UMANPAGES) \
 	$(FMANPAGES) $(LPROGS)
 
-@PROFILE_CMT@all:: tune2fs.profiled blkid.profiled e2image.profiled \
+@PROFILE_CMT@all:: tune2fs.profiled $(BLKID_PROFILED) e2image.profiled \
 	e2undo.profiled mke2fs.profiled dumpe2fs.profiled fsck.profiled \
 	logsave.profiled filefrag.profiled uuidgen.profiled uuidd.profiled \
 	e2image.profiled
@@ -397,9 +404,11 @@
 	@echo "	LINK $(root_sbindir)/e2label"
 	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
 		$(DESTDIR)$(root_sbindir)/e2label
-	@echo "	LINK $(root_sbindir)/findfs"
-	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
-		$(DESTDIR)$(root_sbindir)/findfs
+	@if test -n "$(FINDFS_LINK)"; then \
+		echo "	LINK $(root_sbindir)/findfs"; \
+		$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+			$(DESTDIR)$(root_sbindir)/findfs; \
+	fi
 	@for i in $(UPROGS); do \
 		echo "	INSTALL $(bindir)/$$i"; \
 		$(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
@@ -509,7 +518,7 @@
 	for i in $(UMANPAGES); do \
 		$(RM) -f $(DESTDIR)$(man1dir)/$$i; \
 	done
-	for i in findfs e2label ; do \
+	for i in $(FINDFS_LINK) e2label ; do \
 		$(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \
 	done
 	for i in $(FMANPAGES); do \
only in patch2:
unchanged:
--- e2fsprogs-1.41.4.orig/misc/tune2fs.c
+++ e2fsprogs-1.41.4/misc/tune2fs.c
@@ -95,7 +95,9 @@
 
 static const char *please_fsck = N_("Please run e2fsck on the filesystem.\n");
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv);
+#endif
 
 static void usage(void)
 {
@@ -836,6 +838,7 @@
 	}
 }
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv)
 {
 	char	*dev;
@@ -854,6 +857,7 @@
 	puts(dev);
 	exit(0);
 }
+#endif
 
 static void parse_extended_opts(ext2_filsys fs, const char *opts)
 {
@@ -1492,8 +1496,10 @@
 		program_name = *argv;
 	add_error_table(&et_ext2_error_table);
 
+#ifdef CONFIG_BUILD_FINDFS
 	if (strcmp(get_progname(argv[0]), "findfs") == 0)
 		do_findfs(argc, argv);
+#endif
 	if (strcmp(get_progname(argv[0]), "e2label") == 0)
 		parse_e2label_options(argc, argv);
 	else

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-17 13:48         ` Scott James Remnant
@ 2009-04-22 13:33           ` Theodore Tso
  2009-04-22 13:42             ` Scott James Remnant
                               ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Theodore Tso @ 2009-04-22 13:33 UTC (permalink / raw)
  To: Scott James Remnant; +Cc: Karel Zak, linux-ext4, Kay Sievers

This is the version of the the --disable-libblkid patch which I
ultimately dropped into the my tree.  I have not tested it with the
util-linux-ng libblkid --- I haven't had the time to try to build and
install it on a test system.  I have tested to make sure it builds
correctly using the in-system libblkid (from e2fsprogs).

The big change which I made from the submitted patch --- I try very
hard not to let GNU make'isms creep into the e2fsprogs dependency; it
compiles on other OS's, including Darwin, Solaris, *BSD, etc., so
ix-nay on using ifdef in Makefile or Makefile fragments, like MCONFIG.

Also, I have not dropped in the debian packaging changes which you
made Scott, since you just conditionally made changes to the
debian/rules and debian/config file, which means e2fsprogs would break
on Debian (which hasn't even packaged util-linux-ng yet) and on
versions of Ubuntu that haven't made the switch yet.  In the ideal
world, the Debian rules file would autodetect whether it is on a
new-style or old-style system, and role play accordingly, with a
DEB_BUILD_OPTIONS flag that would override the defaults.  We'll need
to support both for a while, since there are people who want to
backport the latest e2fsprogs on older distributions.  (For example,
Ubuntu LTS, Debian archaelogical-err-I-mean-stable, etc.)

The changes have been pushed out to the e2fsprogs git repository if
you want to try it out with the latest changes, which will be in the
very-soon-to-be-released e2fsprogs 1.41.5.

						- Ted

P.S.  Scott, if you haven't been tracking linux-ext4, there are some
rather critical resize2fs bugfixes that recently came into the tree,
which fix bugs that cause filesystem corruption when growing or
shrinking ext4 filesystems off-line.


commit 14b596d40997c7e55ec8928bd222787f96808a2b
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Wed Apr 22 09:18:30 2009 -0400

    configure.in: add --disable-libblkid option
    
    Add an option to switch between the private (in-tree) libblkid and
    public (in-system installed) library.  The private version is still
    enabled by default.
    
    If --disable-libblkid is specified the findfs(8) program, which is a
    variant of tune2fs, is also not built or installed.
    
    Signed-off-by: Karel Zak <kzak@redhat.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

diff --git a/MCONFIG.in b/MCONFIG.in
index f67682e..7f3e0c5 100644
--- a/MCONFIG.in
+++ b/MCONFIG.in
@@ -75,30 +75,30 @@ LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ @PRIVATE_LIBS_CMT@ @SEM_INIT_LIB@
 LIBE2P = $(LIB)/libe2p@LIB_EXT@
 LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@
 LIBUUID = $(LIB)/libuuid@LIB_EXT@ @SOCKET_LIB@
-LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+LIBBLKID = @LIBBLKID@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 LIBINTL = @LIBINTL@
 DEPLIBSS = $(LIB)/libss@LIB_EXT@
 DEPLIBUUID = $(LIB)/libuuid@LIB_EXT@
-DEPLIBBLKID = $(LIB)/libblkid@LIB_EXT@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
+DEPLIBBLKID = @DEPLIBBLKID@ @PRIVATE_LIBS_CMT@ $(LIBUUID)
 
 STATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ @DLOPEN_LIB@
 STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ @SEM_INIT_LIB@
 STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@
 STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@
 STATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ @SOCKET_LIB@ 
-STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_LIBUUID)
+STATIC_LIBBLKID = @STATIC_LIBBLKID@ $(STATIC_LIBUUID)
 DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@
 DEPSTATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@
-DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@
+DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(STATIC_LIBUUID)
 
 PROFILED_LIBSS = $(LIB)/libss@PROFILED_LIB_EXT@ @DLOPEN_LIB@
 PROFILED_LIBCOM_ERR = $(LIB)/libcom_err@PROFILED_LIB_EXT@ @SEM_INIT_LIB@
 PROFILED_LIBE2P = $(LIB)/libe2p@PROFILED_LIB_EXT@
 PROFILED_LIBEXT2FS = $(LIB)/libext2fs@PROFILED_LIB_EXT@
 PROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@ @SOCKET_LIB@ 
-PROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@ $(PROFILED_LIBUUID)
+PROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(PROFILED_LIBUUID)
 DEPPROFILED_LIBUUID = $(LIB)/libuuid@PROFILED_LIB_EXT@
-DEPPROFILED_LIBBLKID = $(LIB)/libblkid@PROFILED_LIB_EXT@
+DEPPROFILED_LIBBLKID = @PROFILED_LIBBLKID@ $(PROFILED_LIBUUID)
 
 # An include directive pointing to a directory holding enough linux-like
 # include files to satisfy some programs here
diff --git a/Makefile.in b/Makefile.in
index 728d3a5..1f1b8ea 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -11,8 +11,9 @@ INSTALL = @INSTALL@
 
 @RESIZER_CMT@RESIZE_DIR= resize
 @DEBUGFS_CMT@DEBUGFS_DIR= debugfs
+@BLKID_CMT@BLKID_LIB_SUBDIR= lib/blkid
 
-LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs lib/blkid intl
+LIB_SUBDIRS=lib/et lib/ss lib/e2p lib/uuid lib/ext2fs $(BLKID_LIB_SUBDIR) intl
 PROG_SUBDIRS=e2fsck $(DEBUGFS_DIR) misc $(RESIZE_DIR) tests/progs po
 SUBDIRS=util $(LIB_SUBDIRS) $(PROG_SUBDIRS) tests
 
diff --git a/configure.in b/configure.in
index caf2cb4..781519c 100644
--- a/configure.in
+++ b/configure.in
@@ -136,7 +136,7 @@ dnl parsing configuration opions, which may modify these
 dnl
 LIB_EXT=.a
 STATIC_LIB_EXT=.a
-PROFILE_LIB_EXT=.a
+PROFILED_LIB_EXT=.a
 dnl
 dnl set $(LDFLAGS) from --with-ldopts=value
 dnl
@@ -379,6 +379,59 @@ TEST_IO_CMT=
 )
 AC_SUBST(TEST_IO_CMT)
 dnl
+dnl handle --disable-libblkid
+dnl
+PKG_PROG_PKG_CONFIG
+LIBBLKID=
+DEPLIBBLKID=
+STATIC_LIBBLKID=
+DEPSTATIC_LIBBLKID=
+PROFILED_LIBBLKID=
+DEPPROFILED_LIBBLKID=
+BLKID_CMT=
+AC_ARG_ENABLE([libblkid],
+[  --disable-libblkid	  do not build private blkid library],
+if test "$enableval" = "no"
+then
+	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])
+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
+	AC_DEFINE(CONFIG_BUILD_FINDFS)
+	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])
+)
+AC_SUBST(LIBBLKID)
+AC_SUBST(DEPLIBBLKID)
+AC_SUBST(STATIC_LIBBLKID)
+AC_SUBST(DEPSTATIC_LIBBLKID)
+AC_SUBST(PROFILED_LIBBLKID)
+AC_SUBST(DEPPROFILED_LIBBLKID)
+AC_SUBST(BLKID_CMT)
+dnl
 dnl handle --enable-debugfs
 dnl
 AC_ARG_ENABLE([debugfs],
diff --git a/misc/Makefile.in b/misc/Makefile.in
index 63b4c20..99cb149 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -17,11 +17,17 @@ INSTALL = @INSTALL@
 @UUIDD_CMT@UUIDD_PROG= uuidd
 @UUIDD_CMT@UUIDD_MAN= uuidd.8
 
-SPROGS=		mke2fs badblocks tune2fs dumpe2fs blkid logsave \
+@BLKID_CMT@BLKID_PROG= blkid
+@BLKID_CMT@BLKID_MAN= blkid.8
+
+@BLKID_CMT@FINDFS_LINK= findfs
+@BLKID_CMT@FINDFS_MAN= findfs.8
+
+SPROGS=		mke2fs badblocks tune2fs dumpe2fs $(BLKID_PROG) logsave \
 			$(E2IMAGE_PROG) @FSCK_PROG@ e2undo
 USPROGS=	mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=	tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
-			e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
+			e2label.8 $(FINDFS_MAN) $(BLKID_MAN) $(E2IMAGE_MAN) \
 			logsave.8 filefrag.8 e2undo.8 $(UUIDD_MAN) @FSCK_MAN@
 FMANPAGES=	mke2fs.conf.5
 
@@ -402,9 +408,11 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
 	@echo "	LINK $(root_sbindir)/e2label"
 	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
 		$(DESTDIR)$(root_sbindir)/e2label
-	@echo "	LINK $(root_sbindir)/findfs"
-	@$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
-		$(DESTDIR)$(root_sbindir)/findfs
+	@if test -n "$(FINDFS_LINK)"; then \
+		echo "  LINK $(root_sbindir)/findfs"; \
+		$(LN) -f $(DESTDIR)$(root_sbindir)/tune2fs \
+			$(DESTDIR)$(root_sbindir)/$(FINDFS_LINK); \
+	fi
 	@for i in $(UPROGS); do \
 		echo "	INSTALL $(bindir)/$$i"; \
 		$(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$i; \
@@ -514,7 +522,7 @@ uninstall:
 	for i in $(UMANPAGES); do \
 		$(RM) -f $(DESTDIR)$(man1dir)/$$i; \
 	done
-	for i in findfs e2label ; do \
+	for i in $(FINDFS_LINK) e2label ; do \
 		$(RM) -f $(DESTDIR)$(root_sbindir)/$$i; \
 	done
 	for i in $(FMANPAGES); do \
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 5808e49..b8fdd63 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -95,7 +95,9 @@ struct blk_move {
 
 static const char *please_fsck = N_("Please run e2fsck on the filesystem.\n");
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv);
+#endif
 
 static void usage(void)
 {
@@ -836,6 +838,7 @@ static void parse_tune2fs_options(int argc, char **argv)
 	}
 }
 
+#ifdef CONFIG_BUILD_FINDFS
 void do_findfs(int argc, char **argv)
 {
 	char	*dev;
@@ -854,6 +857,7 @@ void do_findfs(int argc, char **argv)
 	puts(dev);
 	exit(0);
 }
+#endif
 
 static void parse_extended_opts(ext2_filsys fs, const char *opts)
 {
@@ -1503,8 +1507,10 @@ int main(int argc, char **argv)
 		program_name = *argv;
 	add_error_table(&et_ext2_error_table);
 
+#ifdef CONFIG_BUILD_FINDFS
 	if (strcmp(get_progname(argv[0]), "findfs") == 0)
 		do_findfs(argc, argv);
+#endif
 	if (strcmp(get_progname(argv[0]), "e2label") == 0)
 		parse_e2label_options(argc, argv);
 	else



^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-22 13:33           ` Theodore Tso
@ 2009-04-22 13:42             ` Scott James Remnant
  2009-04-22 13:49               ` Theodore Tso
  2009-04-27  9:21             ` Karel Zak
  2009-04-29 13:59             ` Scott James Remnant
  2 siblings, 1 reply; 25+ messages in thread
From: Scott James Remnant @ 2009-04-22 13:42 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Karel Zak, linux-ext4, Kay Sievers

[-- Attachment #1: Type: text/plain, Size: 1472 bytes --]

Great to hear from you, Ted!

On Wed, 2009-04-22 at 09:33 -0400, Theodore Tso wrote:

> Also, I have not dropped in the debian packaging changes which you
> made Scott, since you just conditionally made changes to the
> debian/rules and debian/config file, which means e2fsprogs would break
> on Debian (which hasn't even packaged util-linux-ng yet) and on
> versions of Ubuntu that haven't made the switch yet.
> 
Yeah, that seems fair.  I actually left both versions of the code in the
rules with the in-tree blkid stuff commented out assuming we'd ifeq
around them as we do with util-linux-ng.

The package went into a PPA not the archive, so it was in a "just get it
done and worry about making it look good later" state.

Obviously this doesn't solve the debian/control problem - that would
require generating it with/without the libblkid parts depending on
target distro.

> P.S.  Scott, if you haven't been tracking linux-ext4, there are some
> rather critical resize2fs bugfixes that recently came into the tree,
> which fix bugs that cause filesystem corruption when growing or
> shrinking ext4 filesystems off-line.
> 
Grabbed that, thanks!

We're absolutely final frozen for Jaunty now; the CDs were spun on
Monday, but the problem has been noted in our Release Notes.

Since the patches are reasonably small and uninvasive, we'll look into
them for a jaunty-updates upload.

Scott
-- 
Scott James Remnant
scott@ubuntu.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-22 13:42             ` Scott James Remnant
@ 2009-04-22 13:49               ` Theodore Tso
  2009-04-22 14:07                 ` Scott James Remnant
  2009-04-29 17:22                 ` Scott James Remnant
  0 siblings, 2 replies; 25+ messages in thread
From: Theodore Tso @ 2009-04-22 13:49 UTC (permalink / raw)
  To: Scott James Remnant; +Cc: Karel Zak, linux-ext4, Kay Sievers

On Wed, Apr 22, 2009 at 02:42:25PM +0100, Scott James Remnant wrote:
> 
> Obviously this doesn't solve the debian/control problem - that would
> require generating it with/without the libblkid parts depending on
> target distro.

One of the things I need to look at, but maybe you know off-hand, is
whether the debian/rules can safely modify debian/control file.  I
haven't looked deeply into the underbelly of how dpkg-buildpackage and
its descendents work to know whether or not that can be done safely.
If not, we might have to have a separate shell script which is run
manually that adjusts debian/control and debian/rules file.  That
would be annoying/unfortunate, but doable.

						- Ted

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-22 13:49               ` Theodore Tso
@ 2009-04-22 14:07                 ` Scott James Remnant
  2009-04-29 17:22                 ` Scott James Remnant
  1 sibling, 0 replies; 25+ messages in thread
From: Scott James Remnant @ 2009-04-22 14:07 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Karel Zak, linux-ext4, Kay Sievers

[-- Attachment #1: Type: text/plain, Size: 1115 bytes --]

On Wed, 2009-04-22 at 09:49 -0400, Theodore Tso wrote:

> On Wed, Apr 22, 2009 at 02:42:25PM +0100, Scott James Remnant wrote:
> > 
> > Obviously this doesn't solve the debian/control problem - that would
> > require generating it with/without the libblkid parts depending on
> > target distro.
> 
> One of the things I need to look at, but maybe you know off-hand, is
> whether the debian/rules can safely modify debian/control file.  I
> haven't looked deeply into the underbelly of how dpkg-buildpackage and
> its descendents work to know whether or not that can be done safely.
> If not, we might have to have a separate shell script which is run
> manually that adjusts debian/control and debian/rules file.  That
> would be annoying/unfortunate, but doable.
> 
It's a common practice, -policy only requires that debian/changelog and
debian/rules exist.  debian/control is parsed by tools run by
debian/rules, so it's ok for debian/control to be generated by it.

Various packages use debian/control.in or debian/control.m4 or similar.

Scott
-- 
Scott James Remnant
scott@ubuntu.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-22 13:33           ` Theodore Tso
  2009-04-22 13:42             ` Scott James Remnant
@ 2009-04-27  9:21             ` Karel Zak
  2009-04-28 20:36               ` Karel Zak
  2009-04-29 13:59             ` Scott James Remnant
  2 siblings, 1 reply; 25+ messages in thread
From: Karel Zak @ 2009-04-27  9:21 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Scott James Remnant, linux-ext4, Kay Sievers

On Wed, Apr 22, 2009 at 09:33:04AM -0400, Theodore Tso wrote:
> This is the version of the the --disable-libblkid patch which I

[...]

> The changes have been pushed out to the e2fsprogs git repository if
> you want to try it out with the latest changes, which will be in the
> very-soon-to-be-released e2fsprogs 1.41.5.

 Thanks!

 I forgot that we need to freeze blkid version number in e2fsprogs to
 avoid collisions between e2fsprogs and util-linux-ng. Currently the
 blkid version number is shared with e2fsprogs version number. 

 The e2fsprogs blkid should be in maintenance mode only. All development
 should happen in util-linux-ng only. Right?

 This problem should be resolved before util-linux-ng-2.15 stable
 release (-rc2 now).

 (See the patch below -- it's example. I don't know if you want to add
  LIBBLKID_VERSION to the global version.h or something other to
  configure.in, or so...)

    Karel
 
>From 7d79dd7105c62b1b91e6e5a556b598c086aa0796 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 27 Apr 2009 10:55:43 +0200
Subject: [PATCH] blkid: freeze version number

Signed-off-by: Karel Zak <kzak@redhat.com>
---
 lib/blkid/version.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/lib/blkid/version.c b/lib/blkid/version.c
index 7722916..0219caa 100644
--- a/lib/blkid/version.c
+++ b/lib/blkid/version.c
@@ -19,7 +19,10 @@
 #include "blkid.h"
 #include "../../version.h"
 
-static const char *lib_version = E2FSPROGS_VERSION;
+/* The blkid library in e2fsprogs is in maintenance mode. The <maj>.<min>
+ * version number should be incremented in util-linux-ng only.
+ */
+static const char *lib_version = "1.41.4";
 static const char *lib_date = E2FSPROGS_DATE;
 
 int blkid_parse_version_string(const char *ver_string)
-- 
1.6.0.6


-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-27  9:21             ` Karel Zak
@ 2009-04-28 20:36               ` Karel Zak
  0 siblings, 0 replies; 25+ messages in thread
From: Karel Zak @ 2009-04-28 20:36 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Scott James Remnant, linux-ext4, Kay Sievers

On Mon, Apr 27, 2009 at 11:21:14AM +0200, Karel Zak wrote:
> On Wed, Apr 22, 2009 at 09:33:04AM -0400, Theodore Tso wrote:
> > This is the version of the the --disable-libblkid patch which I
> 
> [...]
> 
> > The changes have been pushed out to the e2fsprogs git repository if
> > you want to try it out with the latest changes, which will be in the
> > very-soon-to-be-released e2fsprogs 1.41.5.
> 
>  Thanks!
> 
>  I forgot that we need to freeze blkid version number in e2fsprogs to
>  avoid collisions between e2fsprogs and util-linux-ng. Currently the
>  blkid version number is shared with e2fsprogs version number. 

 It seems we can ignore this problem for now. I can release
 libblkid 2.15 (=util-linux-ng version) and keep the same SONAME as
 you have in e2fsprogs -- it means soname "libblkid.so.1".

 It seems people prefer the same version for library as well as for
 whole package.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-22 13:33           ` Theodore Tso
  2009-04-22 13:42             ` Scott James Remnant
  2009-04-27  9:21             ` Karel Zak
@ 2009-04-29 13:59             ` Scott James Remnant
  2009-04-29 17:17               ` Theodore Tso
  2 siblings, 1 reply; 25+ messages in thread
From: Scott James Remnant @ 2009-04-29 13:59 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Karel Zak, linux-ext4, Kay Sievers

[-- Attachment #1: Type: text/plain, Size: 397 bytes --]

On Wed, 2009-04-22 at 09:33 -0400, Theodore Tso wrote:

> The changes have been pushed out to the e2fsprogs git repository if
> you want to try it out with the latest changes, which will be in the
> very-soon-to-be-released e2fsprogs 1.41.5.
> 
I couldn't find these in the git repository - the tag has been pushed,
but not the branch.

Scott
-- 
Scott James Remnant
scott@ubuntu.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-29 13:59             ` Scott James Remnant
@ 2009-04-29 17:17               ` Theodore Tso
  0 siblings, 0 replies; 25+ messages in thread
From: Theodore Tso @ 2009-04-29 17:17 UTC (permalink / raw)
  To: Scott James Remnant; +Cc: Karel Zak, linux-ext4, Kay Sievers

On Wed, Apr 29, 2009 at 02:59:12PM +0100, Scott James Remnant wrote:
> On Wed, 2009-04-22 at 09:33 -0400, Theodore Tso wrote:
> 
> > The changes have been pushed out to the e2fsprogs git repository if
> > you want to try it out with the latest changes, which will be in the
> > very-soon-to-be-released e2fsprogs 1.41.5.
> > 
> I couldn't find these in the git repository - the tag has been pushed,
> but not the branch.

Try it now.  The changes for --disable-blkid were in the git
repository, but the last set of changes for 1.41.5 hadn't gotten
pushed out to master.kernel.org for some reason.

       	      			    - Ted

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-22 13:49               ` Theodore Tso
  2009-04-22 14:07                 ` Scott James Remnant
@ 2009-04-29 17:22                 ` Scott James Remnant
  2009-04-29 20:54                   ` Theodore Tso
  1 sibling, 1 reply; 25+ messages in thread
From: Scott James Remnant @ 2009-04-29 17:22 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Karel Zak, linux-ext4, Kay Sievers


[-- Attachment #1.1: Type: text/plain, Size: 880 bytes --]

On Wed, 2009-04-22 at 09:49 -0400, Theodore Tso wrote:

> On Wed, Apr 22, 2009 at 02:42:25PM +0100, Scott James Remnant wrote:
> > 
> > Obviously this doesn't solve the debian/control problem - that would
> > require generating it with/without the libblkid parts depending on
> > target distro.
> 
> One of the things I need to look at, but maybe you know off-hand, is
> whether the debian/rules can safely modify debian/control file.  I
> haven't looked deeply into the underbelly of how dpkg-buildpackage and
> its descendents work to know whether or not that can be done safely.
> If not, we might have to have a separate shell script which is run
> manually that adjusts debian/control and debian/rules file.  That
> would be annoying/unfortunate, but doable.
> 
I humbly submit the following two patches:

Scott
-- 
Scott James Remnant
scott@ubuntu.com

[-- Attachment #1.2: 0003-debian-allow-building-with-external-libblkid.patch --]
[-- Type: text/x-patch, Size: 34053 bytes --]

From b45cc0027f7b1217aa1d2cf9c028a869a537ee09 Mon Sep 17 00:00:00 2001
From: Scott James Remnant <scott@ubuntu.com>
Date: Wed, 29 Apr 2009 18:15:26 +0100
Subject: [PATCH] debian: allow building with external libblkid

If BUILD_BLKID=no during processing of debian/rules, e2fsprogs will be
built with an external libblkid with the internal one disabled, and
also the internal fsck disabled.

This necessates generating debian/control from the rules, edits should
be made to debian/control.in instead.
---
 .gitignore        |    1 +
 debian/control    |  304 -----------------------------------------------------
 debian/control.in |  304 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 debian/rules      |   66 ++++++++++--
 4 files changed, 362 insertions(+), 313 deletions(-)
 delete mode 100644 debian/control
 create mode 100644 debian/control.in

diff --git a/.gitignore b/.gitignore
index 0e21aea..a651514 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ MCONFIG
 asm_types.h
 config.log
 config.status
+debian/control
 debugfs/debug_cmds.c
 debugfs/debugfs
 debugfs/debugfs.8
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 0ab8069..0000000
--- a/debian/control
+++ /dev/null
@@ -1,304 +0,0 @@
-Source: e2fsprogs
-Section: admin
-Priority: required
-Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
-XSBC-Original-Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
-Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, debhelper (>= 7.0)
-Standards-Version: 3.8.0.0
-Homepage: http://e2fsprogs.sourceforge.net
-
-Package: e2fsck-static
-Section: admin
-Priority: optional
-Depends:
-Recommends: sash | bash-static | zsh-static | busybox-static | zsh30-static
-Architecture: any
-Description: statically-linked version of the ext2 filesystem checker
- This may be of some help to you if your filesystem gets corrupted enough
- to break the shared libraries used by the dynamically linked checker.
- .
- This binary takes much more space than its dynamic counterpart located
- in e2fsprogs, though.
- .
- You may want to install a statically-linked shell as well, to be able
- to run this program if something like your C library gets corrupted.
-
-Package: libcomerr2
-Section: libs
-Priority: required
-Provides: libcomerr-kth-compat
-Depends: ${shlibs:Depends}
-Replaces: e2fsprogs (<< 1.34-1)
-Architecture: any
-Description: common error description library
- libcomerr is an attempt to present a common error-handling mechanism to
- manipulate the most common form of error code in a fashion that does not
- have the problems identified with mechanisms commonly in use.
-
-Package: comerr-dev
-Section: libdevel
-Priority: extra
-Depends: libc6-dev | libc-dev, libcomerr2 (= ${mainBinary})
-Suggests: doc-base
-Replaces: e2fslibs-dev (<< 1.33-2), libkrb5-dev (<< 1.3)
-Architecture: any
-Description: common error description library - headers and static libraries
- libcom_err is an attempt to present a common error-handling mechanism to
- manipulate the most common form of error code in a fashion that does not
- have the problems identified with mechanisms commonly in use.
- .
- This package contains the development environment for the com_err library.
-
-Package: libss2
-Section: libs
-Priority: required
-Depends: libcomerr2, ${shlibs:Depends}
-Replaces: e2fsprogs (<< 1.34-1)
-Architecture: any
-Description: command-line interface parsing library
- This package includes a tool that parses a command table to generate
- a simple command-line interface parser, the include files needed to
- compile and use it, and the static libs.
- . 
- It was originally inspired by the Multics SubSystem library.
-
-Package: ss-dev
-Section: libdevel
-Priority: extra
-Depends: libc6-dev | libc-dev, libss2 (= ${mainBinary}), comerr-dev
-Architecture: any
-Description: command-line interface parsing library - headers and static libraries
- This package includes a tool that parses a command table to generate
- a simple command-line interface parser, the include files needed to
- compile and use it, and the static libs.
- . 
- It was originally inspired by the Multics SubSystem library.
- .
- This package contains the development environment for the ss library.
-
-Package: libuuid1
-Section: libs
-Priority: required
-Depends: passwd, ${shlibs:Depends}
-Recommends: uuid-runtime
-Replaces: e2fsprogs (<< 1.34-1)
-Architecture: any
-Description: universally unique id library
- libuuid generates and parses 128-bit universally unique id's (UUID's).
- See RFC 4122 for more information.
-
-Package: uuid-runtime
-Section: libs
-Priority: optional
-Depends: passwd, libuuid1 (>> 1.40.3-1), ${shlibs:Depends}
-Replaces: e2fsprogs (<= 1.40.3-1ubuntu1)
-Architecture: any
-Description: universally unique id library
- libuuid generates and parses 128-bit universally unique id's (UUID's).
- See RFC 4122 for more information.
- .
- This package contains the uuidgen program and the uuidd daemon.
- .
- The uuidd daemon is used to generate universally unique identifiers (UUIDs),
- especially time-based UUID’s, in a secure and guaranteed-unique fashion,
- even in the face of large numbers of threads trying to grab UUID’s
- running on different CPU’s. It is used by libuuid as well as the
- uuidgen program.
-
-Package: libuuid1-udeb
-XC-Package-Type: udeb
-Section: debian-installer
-Priority: optional
-Depends: ${shlibs:Depends}
-Architecture: any
-Description: universally unique id library
- libuuid generates and parses 128-bit universally unique id's (UUID's).
- See RFC 4122 for more information.
- .
- This is a minimal package for debian-installer.
-
-Package: uuid-dev
-Section: libdevel
-Priority: extra
-Depends: libc6-dev | libc-dev, libuuid1 (= ${mainBinary})
-Replaces: e2fslibs-dev (<< 1.15)
-Architecture: any
-Description: universally unique id library - headers and static libraries
- libuuid generates and parses 128-bit universally unique id's (UUID's).
- See RFC 4122 for more information.
- .
- This package contains the development environment for the uuid library.
-
-Package: libblkid1
-Section: libs
-Priority: required
-Depends: ${shlibs:Depends}
-Architecture: any
-Description: block device id library
- The blkid library which allows system programs like fsck and 
- mount to quickly and easily find block devices by filesystem UUID and 
- LABEL.  This allows system administrators to avoid specifying 
- filesystems by hard-coded device names, but via a logical naming 
- system instead.
-
-Package: libblkid1-udeb
-XC-Package-Type: udeb
-Section: debian-installer
-Priority: optional
-Depends: ${shlibs:Depends}
-Architecture: any
-Description: block device id library
- The blkid library which allows system programs like fsck and 
- mount to quickly and easily find block devices by filesystem UUID and 
- LABEL.  This allows system administrators to avoid specifiying 
- filesystems by hard-coded device names, but via a logical naming 
- system instead.
- .
- This is a minimal package for debian-installer.
-
-Package: libblkid-dev
-Section: libdevel
-Priority: extra
-Depends: libc6-dev | libc-dev, libblkid1 (= ${binary:Version})
-Architecture: any
-Description: block device id library - headers and static libraries
- The blkid library which allows system programs like fsck and 
- mount to quickly and easily find block devices by filesystem UUID and 
- LABEL.  This allows system administrators to avoid specifiying 
- filesystems by hard-coded device names, but via a logical naming 
- system instead.
- .
- This package contains the development environment for the blkid library.
-
-Package: e2fsprogs-udeb
-XC-Package-Type: udeb
-Section: debian-installer
-Priority: optional
-Depends: ${shlibs:Depends}
-Architecture: any
-Description: stripped-down versions of e2fsprogs, for debian-installer
- This package is an e2fsprogs package built for a reduced size, so that
- it can help to save space in debian-installer.
- .
- Don't attempt to install this package, it has no support for a couple of
- features you surely want.  Anyway it should refuse to install.
-
-Package: e2fslibs
-Section: libs
-Priority: required
-Depends: ${shlibs:Depends}
-Replaces: e2fsprogs (<< 1.34-1)
-Provides: libext2fs2, libe2p2
-Architecture: any
-Description: ext2 filesystem libraries
- The ext2fs and e2p libraries are used by programs that directly access 
- EXT2 filesystems from usermode programs.   The EXT2 filesystem is very often
- used as the default filesystem on Linux systems.   Various system programs
- that use libext2fs include e2fsck, mke2fs, tune2fs, etc.  Programs that use
- libe2p include dumpe2fs, chattr, and lsattr.
-
-Package: e2fslibs-dev
-Section: libdevel
-Priority: extra
-Depends: libc6-dev | libc-dev, comerr-dev, e2fslibs (= ${binary:Version})
-Suggests: doc-base
-Provides: ext2fs-dev, e2p-dev
-Replaces: libkrb5-dev (<< 1.3)
-Architecture: any
-Description: ext2 filesystem libraries - headers and static libraries
- The ext2fs and e2p libraries are used by programs that directly access 
- EXT2 filesystems from usermode programs.   The EXT2 filesystem is very often
- used as the default filesystem on Linux systems.   Various system programs
- that use libext2fs include e2fsck, mke2fs, tune2fs, etc.  Programs that use
- libe2p include dumpe2fs, chattr, and lsattr.
- .
- This package contains the development environment for the ext2fs and e2p 
- libraries.
-
-Package: e2fsprogs
-Essential: yes
-Pre-Depends: ${shlibs:Depends}
-Depends: 
-Suggests: gpart, parted, e2fsck-static
-Conflicts: dump (<< 0.4b4-4), quota (<< 1.55-8.1), initscripts (<< 2.85-4), sysvinit (<< 2.85-4)
-Replaces: hurd (<= 20040301-1), libblkid1 (<< 1.38+1.39-WIP-2005.12.10-2), libuuid1 (<< 1.38+1.39-WIP-2005.12.10-2)
-Architecture: any
-Description: ext2/ext3/ext4 file system utilities
- The ext2, ext3 and ext4 file systems are successors of the original ext
- ("extended") file system. They are the main file system types used for
- hard disks on Debian and other Linux systems.
- .
- This package contains programs for creating, checking, and maintaining
- ext-based file systems, and the generic fsck wrapper.
-
-Package: e2fsprogs-dbg
-Section: debug
-Priority: extra
-Depends: e2fsprogs (= ${binary:Version})
-Architecture: any
-Description: Debugging information for e2fsprogs
- This package includes the debug information useful for debugging e2fsprogs
- and its libraries, contained in the e2fsprogs and e2fsck-static packages.
- The debug information is used for execution tracing and core
- dump analysis. 
-
-Package: uuid-runtime-dbg
-Section: debug
-Priority: extra
-Depends: uuid-runtime (= ${binary:Version})
-Architecture: any
-Description: Debugging information for uuid-runtime
- This package includes the debug information useful for debugging the
- uuid runtime programs, contained in the uuid-runtime package.
- The debugging information is used for execution tracing and core
- dump analysis.
-
-Package: e2fslibs-dbg
-Section: debug
-Priority: extra
-Depends: e2fslibs (= ${binary:Version})
-Architecture: any
-Description: Debugging information for e2fslibs
- This package includes the debug information useful for debugging the
- ext2fs and e2p libraries, contained in the e2fslibs package.  The debug
- information is used for execution tracing and core dump analysis.
-
-Package: libcomerr2-dbg
-Section: debug
-Priority: extra
-Depends: libcomerr2 (= ${binary:Version})
-Architecture: any
-Description: Debugging information for libcomerr2
- This package includes the debug information useful for debugging the
- com_err library, contained in the libcomerr2 package.  The debugging
- information is used for execution tracing and core dump analysis.
-
-Package: libss2-dbg
-Section: debug
-Priority: extra
-Depends: libss2 (= ${binary:Version})
-Architecture: any
-Description: Debugging information for libss2
- This package includes the debug information useful for debugging the
- ss library, contained in the libss2 package.  The debug information
- is used for execution tracing and core dump analysis.
-
-Package: libblkid1-dbg
-Section: debug
-Priority: extra
-Depends: libblkid1 (= ${binary:Version})
-Architecture: any
-Description: Debugging information for libblkid1
- This package includes the debug information useful for debugging the
- blkid library, contained in the libblkid1 package.  The debug
- information is used for execution tracing and core dump analysis.
-
-Package: libuuid1-dbg
-Section: debug
-Priority: extra
-Depends: libuuid1 (= ${binary:Version})
-Architecture: any
-Description: Debugging information for libuuid1
- This package includes the debug information useful for debugging the
- UUID library, contained in the libuuid1 package.  The debug
- information is used for execution tracing and core dump analysis.
diff --git a/debian/control.in b/debian/control.in
new file mode 100644
index 0000000..b538576
--- /dev/null
+++ b/debian/control.in
@@ -0,0 +1,304 @@
+Source: e2fsprogs
+Section: admin
+Priority: required
+Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
+Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, debhelper (>= 7.0), m4
+Standards-Version: 3.8.0.0
+Homepage: http://e2fsprogs.sourceforge.net
+
+Package: e2fsck-static
+Section: admin
+Priority: optional
+Depends:
+Recommends: sash | bash-static | zsh-static | busybox-static | zsh30-static
+Architecture: any
+Description: statically-linked version of the ext2 filesystem checker
+ This may be of some help to you if your filesystem gets corrupted enough
+ to break the shared libraries used by the dynamically linked checker.
+ .
+ This binary takes much more space than its dynamic counterpart located
+ in e2fsprogs, though.
+ .
+ You may want to install a statically-linked shell as well, to be able
+ to run this program if something like your C library gets corrupted.
+
+Package: libcomerr2
+Section: libs
+Priority: required
+Provides: libcomerr-kth-compat
+Depends: ${shlibs:Depends}
+Replaces: e2fsprogs (<< 1.34-1)
+Architecture: any
+Description: common error description library
+ libcomerr is an attempt to present a common error-handling mechanism to
+ manipulate the most common form of error code in a fashion that does not
+ have the problems identified with mechanisms commonly in use.
+
+Package: comerr-dev
+Section: libdevel
+Priority: extra
+Depends: libc6-dev | libc-dev, libcomerr2 (= ${mainBinary})
+Suggests: doc-base
+Replaces: e2fslibs-dev (<< 1.33-2), libkrb5-dev (<< 1.3)
+Architecture: any
+Description: common error description library - headers and static libraries
+ libcom_err is an attempt to present a common error-handling mechanism to
+ manipulate the most common form of error code in a fashion that does not
+ have the problems identified with mechanisms commonly in use.
+ .
+ This package contains the development environment for the com_err library.
+
+Package: libss2
+Section: libs
+Priority: required
+Depends: libcomerr2, ${shlibs:Depends}
+Replaces: e2fsprogs (<< 1.34-1)
+Architecture: any
+Description: command-line interface parsing library
+ This package includes a tool that parses a command table to generate
+ a simple command-line interface parser, the include files needed to
+ compile and use it, and the static libs.
+ . 
+ It was originally inspired by the Multics SubSystem library.
+
+Package: ss-dev
+Section: libdevel
+Priority: extra
+Depends: libc6-dev | libc-dev, libss2 (= ${mainBinary}), comerr-dev
+Architecture: any
+Description: command-line interface parsing library - headers and static libraries
+ This package includes a tool that parses a command table to generate
+ a simple command-line interface parser, the include files needed to
+ compile and use it, and the static libs.
+ . 
+ It was originally inspired by the Multics SubSystem library.
+ .
+ This package contains the development environment for the ss library.
+
+Package: libuuid1
+Section: libs
+Priority: required
+Depends: passwd, ${shlibs:Depends}
+Recommends: uuid-runtime
+Replaces: e2fsprogs (<< 1.34-1)
+Architecture: any
+Description: universally unique id library
+ libuuid generates and parses 128-bit universally unique id's (UUID's).
+ See RFC 4122 for more information.
+
+Package: uuid-runtime
+Section: libs
+Priority: optional
+Depends: passwd, libuuid1 (>> 1.40.3-1), ${shlibs:Depends}
+Replaces: e2fsprogs (<= 1.40.3-1ubuntu1)
+Architecture: any
+Description: universally unique id library
+ libuuid generates and parses 128-bit universally unique id's (UUID's).
+ See RFC 4122 for more information.
+ .
+ This package contains the uuidgen program and the uuidd daemon.
+ .
+ The uuidd daemon is used to generate universally unique identifiers (UUIDs),
+ especially time-based UUID’s, in a secure and guaranteed-unique fashion,
+ even in the face of large numbers of threads trying to grab UUID’s
+ running on different CPU’s. It is used by libuuid as well as the
+ uuidgen program.
+
+Package: libuuid1-udeb
+XC-Package-Type: udeb
+Section: debian-installer
+Priority: optional
+Depends: ${shlibs:Depends}
+Architecture: any
+Description: universally unique id library
+ libuuid generates and parses 128-bit universally unique id's (UUID's).
+ See RFC 4122 for more information.
+ .
+ This is a minimal package for debian-installer.
+
+Package: uuid-dev
+Section: libdevel
+Priority: extra
+Depends: libc6-dev | libc-dev, libuuid1 (= ${mainBinary})
+Replaces: e2fslibs-dev (<< 1.15)
+Architecture: any
+Description: universally unique id library - headers and static libraries
+ libuuid generates and parses 128-bit universally unique id's (UUID's).
+ See RFC 4122 for more information.
+ .
+ This package contains the development environment for the uuid library.
+ifdef(`BUILD_BLKID',``
+Package: libblkid1
+Section: libs
+Priority: required
+Depends: ${shlibs:Depends}
+Architecture: any
+Description: block device id library
+ The blkid library which allows system programs like fsck and 
+ mount to quickly and easily find block devices by filesystem UUID and 
+ LABEL.  This allows system administrators to avoid specifying 
+ filesystems by hard-coded device names, but via a logical naming 
+ system instead.
+
+Package: libblkid1-udeb
+XC-Package-Type: udeb
+Section: debian-installer
+Priority: optional
+Depends: ${shlibs:Depends}
+Architecture: any
+Description: block device id library
+ The blkid library which allows system programs like fsck and 
+ mount to quickly and easily find block devices by filesystem UUID and 
+ LABEL.  This allows system administrators to avoid specifiying 
+ filesystems by hard-coded device names, but via a logical naming 
+ system instead.
+ .
+ This is a minimal package for debian-installer.
+
+Package: libblkid-dev
+Section: libdevel
+Priority: extra
+Depends: libc6-dev | libc-dev, libblkid1 (= ${binary:Version})
+Architecture: any
+Description: block device id library - headers and static libraries
+ The blkid library which allows system programs like fsck and 
+ mount to quickly and easily find block devices by filesystem UUID and 
+ LABEL.  This allows system administrators to avoid specifiying 
+ filesystems by hard-coded device names, but via a logical naming 
+ system instead.
+ .
+ This package contains the development environment for the blkid library.
+'')
+Package: e2fsprogs-udeb
+XC-Package-Type: udeb
+Section: debian-installer
+Priority: optional
+Depends: ${shlibs:Depends}
+Architecture: any
+Description: stripped-down versions of e2fsprogs, for debian-installer
+ This package is an e2fsprogs package built for a reduced size, so that
+ it can help to save space in debian-installer.
+ .
+ Don't attempt to install this package, it has no support for a couple of
+ features you surely want.  Anyway it should refuse to install.
+
+Package: e2fslibs
+Section: libs
+Priority: required
+Depends: ${shlibs:Depends}
+Replaces: e2fsprogs (<< 1.34-1)
+Provides: libext2fs2, libe2p2
+Architecture: any
+Description: ext2 filesystem libraries
+ The ext2fs and e2p libraries are used by programs that directly access 
+ EXT2 filesystems from usermode programs.   The EXT2 filesystem is very often
+ used as the default filesystem on Linux systems.   Various system programs
+ that use libext2fs include e2fsck, mke2fs, tune2fs, etc.  Programs that use
+ libe2p include dumpe2fs, chattr, and lsattr.
+
+Package: e2fslibs-dev
+Section: libdevel
+Priority: extra
+Depends: libc6-dev | libc-dev, comerr-dev, e2fslibs (= ${binary:Version})
+Suggests: doc-base
+Provides: ext2fs-dev, e2p-dev
+Replaces: libkrb5-dev (<< 1.3)
+Architecture: any
+Description: ext2 filesystem libraries - headers and static libraries
+ The ext2fs and e2p libraries are used by programs that directly access 
+ EXT2 filesystems from usermode programs.   The EXT2 filesystem is very often
+ used as the default filesystem on Linux systems.   Various system programs
+ that use libext2fs include e2fsck, mke2fs, tune2fs, etc.  Programs that use
+ libe2p include dumpe2fs, chattr, and lsattr.
+ .
+ This package contains the development environment for the ext2fs and e2p 
+ libraries.
+
+Package: e2fsprogs
+Essential: yes
+Pre-Depends: ${shlibs:Depends}
+Depends: 
+Suggests: gpart, parted, e2fsck-static
+Conflicts: dump (<< 0.4b4-4), quota (<< 1.55-8.1), initscripts (<< 2.85-4), sysvinit (<< 2.85-4)
+Replaces: hurd (<= 20040301-1), libblkid1 (<< 1.38+1.39-WIP-2005.12.10-2), libuuid1 (<< 1.38+1.39-WIP-2005.12.10-2)
+Architecture: any
+Description: ext2/ext3/ext4 file system utilities
+ The ext2, ext3 and ext4 file systems are successors of the original ext
+ ("extended") file system. They are the main file system types used for
+ hard disks on Debian and other Linux systems.
+ .
+ This package contains programs for creating, checking, and maintaining
+ ext-based file systems, and the generic fsck wrapper.
+
+Package: e2fsprogs-dbg
+Section: debug
+Priority: extra
+Depends: e2fsprogs (= ${binary:Version})
+Architecture: any
+Description: Debugging information for e2fsprogs
+ This package includes the debug information useful for debugging e2fsprogs
+ and its libraries, contained in the e2fsprogs and e2fsck-static packages.
+ The debug information is used for execution tracing and core
+ dump analysis. 
+
+Package: uuid-runtime-dbg
+Section: debug
+Priority: extra
+Depends: uuid-runtime (= ${binary:Version})
+Architecture: any
+Description: Debugging information for uuid-runtime
+ This package includes the debug information useful for debugging the
+ uuid runtime programs, contained in the uuid-runtime package.
+ The debugging information is used for execution tracing and core
+ dump analysis.
+
+Package: e2fslibs-dbg
+Section: debug
+Priority: extra
+Depends: e2fslibs (= ${binary:Version})
+Architecture: any
+Description: Debugging information for e2fslibs
+ This package includes the debug information useful for debugging the
+ ext2fs and e2p libraries, contained in the e2fslibs package.  The debug
+ information is used for execution tracing and core dump analysis.
+
+Package: libcomerr2-dbg
+Section: debug
+Priority: extra
+Depends: libcomerr2 (= ${binary:Version})
+Architecture: any
+Description: Debugging information for libcomerr2
+ This package includes the debug information useful for debugging the
+ com_err library, contained in the libcomerr2 package.  The debugging
+ information is used for execution tracing and core dump analysis.
+
+Package: libss2-dbg
+Section: debug
+Priority: extra
+Depends: libss2 (= ${binary:Version})
+Architecture: any
+Description: Debugging information for libss2
+ This package includes the debug information useful for debugging the
+ ss library, contained in the libss2 package.  The debug information
+ is used for execution tracing and core dump analysis.
+ifdef(`BUILD_BLKID',``
+Package: libblkid1-dbg
+Section: debug
+Priority: extra
+Depends: libblkid1 (= ${binary:Version})
+Architecture: any
+Description: Debugging information for libblkid1
+ This package includes the debug information useful for debugging the
+ blkid library, contained in the libblkid1 package.  The debug
+ information is used for execution tracing and core dump analysis.
+'')
+Package: libuuid1-dbg
+Section: debug
+Priority: extra
+Depends: libuuid1 (= ${binary:Version})
+Architecture: any
+Description: Debugging information for libuuid1
+ This package includes the debug information useful for debugging the
+ UUID library, contained in the libuuid1 package.  The debug
+ information is used for execution tracing and core dump analysis.
diff --git a/debian/rules b/debian/rules
index 43352ff..b798854 100755
--- a/debian/rules
+++ b/debian/rules
@@ -30,8 +30,10 @@ SS_VERSION = $(shell grep ELF_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
 SS_SOVERSION = $(shell grep ELF_SO_VERSION lib/ss/Makefile.in | cut '-d ' -f3)
 UUID_VERSION = $(shell grep ELF_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
 UUID_SOVERSION = $(shell grep ELF_SO_VERSION lib/uuid/Makefile.in | cut '-d ' -f3)
+ifneq ($(BUILD_BLKID),no)
 BLKID_VERSION = $(shell grep ELF_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
 BLKID_SOVERSION = $(shell grep ELF_SO_VERSION lib/blkid/Makefile.in | cut '-d ' -f3)
+endif
 EXT2FS_SOVERSION = $(shell grep ELF_SO_VERSION lib/ext2fs/Makefile.in | cut '-d ' -f3)
 E2P_SOVERSION = $(shell grep ELF_SO_VERSION lib/e2p/Makefile.in | cut '-d ' -f3)
 
@@ -41,7 +43,9 @@ topdir=$(shell pwd)
 debdir=${topdir}/debian
 tmpdir=${debdir}/tmp
 udebdir=${debdir}/e2fsprogs-udeb
+ifneq ($(BUILD_BLKID),no)
 blkidudebdir=${debdir}/libblkid1-udeb
+endif
 uuidudebdir=${debdir}/libuuid1-udeb
 libcomerrdir=${debdir}/libcomerr${COMERR_SOVERSION}
 comerrdevdir=${debdir}/comerr-dev
@@ -49,9 +53,11 @@ libcomerrdbgdir=${debdir}/libcomerr2-dbg
 libssdir=${debdir}/libss${SS_SOVERSION}
 ssdevdir=${debdir}/ss-dev
 libssdbgdir=${debdir}/libss2-dbg
+ifneq ($(BUILD_BLKID),no)
 libblkiddir=${debdir}/libblkid${BLKID_SOVERSION}
 libblkiddevdir=${debdir}/libblkid-dev
 libblkiddbgdir=${debdir}/libblkid1-dbg
+endif
 libuuiddir=${debdir}/libuuid${UUID_SOVERSION}
 uuiddevdir=${debdir}/uuid-dev
 libuuiddbgdir=${debdir}/libuuid1-dbg
@@ -73,13 +79,15 @@ MANDIR=/usr/share/man
 mandir=${tmpdir}${MANDIR}
 
 UDEB_NAME = $(package)-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
-UDEB_PRIORITY = $(shell grep '^Package: e2fsprogs-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
+UDEB_PRIORITY = $(shell grep '^Package: e2fsprogs-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2)
 
+ifneq ($(BUILD_BLKID),no)
 BLKID_UDEB_NAME = libblkid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
-BLKID_UDEB_PRIORITY = $(shell grep '^Package: libblkid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
+BLKID_UDEB_PRIORITY = $(shell grep '^Package: libblkid1-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2)
+endif
 
 UUID_UDEB_NAME = libuuid1-udeb_$(MAIN_VERSION)_$(DEB_HOST_ARCH).udeb
-UUID_UDEB_PRIORITY = $(shell grep '^Package: libuuid1-udeb' debian/control -A 10 | grep ^Priority: | cut -d ' ' -f 2)
+UUID_UDEB_PRIORITY = $(shell grep '^Package: libuuid1-udeb' debian/control.in -A 10 | grep ^Priority: | cut -d ' ' -f 2)
 
 STAMPSDIR=debian/stampdir
 CFGSTDSTAMP=${STAMPSDIR}/configure-std-stamp
@@ -117,7 +125,12 @@ endif
 BF_CCOPTS = -Os -fomit-frame-pointer
 
 COMMON_CONF_FLAGS =  \
-                --enable-elf-shlibs --infodir=/usr/share/info --enable-fsck
+                --enable-elf-shlibs --infodir=/usr/share/info
+ifneq ($(BUILD_BLKID),no)
+COMMON_CONF_FLAGS += --enable-fsck
+else
+COMMON_CONF_FLAGS += --disable-fsck --disable-libblkid
+endif
 
 STD_CONF_FLAGS = --with-ccopts="${CCOPTS}" --enable-compression
 
@@ -147,6 +160,13 @@ ismips=ismips
 endif
 endif
 
+debian/control: debian/control.in debian/rules
+ifneq ($(BUILD_BLKID),no)
+	m4 -DBUILD_BLKID < debian/control.in > $@
+else
+	m4 -UBUILD_BLKID < debian/control.in > $@
+endif
+
 ${CFGSTDSTAMP}:
 	dh_testdir
 
@@ -213,7 +233,7 @@ endif
 	mkdir -p ${STAMPSDIR}
 	touch ${CFGSTATICSTAMP}
 
-build: build-std build-bf $(BUILD_STATIC)
+build: debian/control build-std build-bf $(BUILD_STATIC)
 
 build-std: ${BUILDSTDSTAMP}
 ${BUILDSTDSTAMP}: ${CFGSTDSTAMP}
@@ -255,7 +275,7 @@ ${BUILDSTATICSTAMP}: ${CFGSTATICSTAMP}
 	$(MAKE) -C ${staticbuilddir}/e2fsck all e2fsck.static
 	touch ${BUILDSTATICSTAMP}
 
-clean:
+clean: debian/control
 	dh_testdir
 	rm -rf ${STAMPSDIR}
 	[ ! -f ${stdbuilddir}/Makefile ] || $(MAKE) -C ${stdbuilddir} distclean
@@ -327,8 +347,10 @@ install-udeb: build
 		ln -s e2fsck fsck.ext3 ; ln -s mke2fs mkfs.ext2 ; \
 		ln -s mke2fs mkfs.ext3 ; ln -s mke2fs mkfs.ext4)
 
+ifneq ($(BUILD_BLKID),no)
 	mkdir -p ${blkidudebdir}/lib
 	mv ${udebdir}/lib/libblkid.* ${blkidudebdir}/lib
+endif
 
 	mkdir -p ${uuidudebdir}/lib
 	mv ${udebdir}/lib/libuuid.* ${uuidudebdir}/lib
@@ -360,9 +382,11 @@ binary-arch: install install-udeb
 
   # symlinks to prepare dh_installdocs run
 
+ifneq ($(BUILD_BLKID),no)
 	mkdir -p ${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}
 	mkdir -p ${debdir}/libblkid-dev/usr/share/doc
 	ln -sf libblkid${BLKID_SOVERSION} ${debdir}/libblkid-dev/usr/share/doc/libblkid-dev
+endif
 
 	mkdir -p ${debdir}/libss${SS_SOVERSION}/usr/share/doc/libss${SS_SOVERSION}
 	mkdir -p ${debdir}/ss-dev/usr/share/doc
@@ -380,8 +404,10 @@ binary-arch: install install-udeb
 	mkdir -p ${debdir}/e2fslibs-dev/usr/share/doc
 	ln -sf e2fslibs ${debdir}/e2fslibs-dev/usr/share/doc/e2fslibs-dev
 
+ifneq ($(BUILD_BLKID),no)
 	$(INSTALL) -p -m 0644 debian/libblkid.copyright \
 		${debdir}/libblkid${BLKID_SOVERSION}/usr/share/doc/libblkid${BLKID_SOVERSION}/copyright
+endif
 
 	dh_installdocs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
 
@@ -418,11 +444,15 @@ binary-arch: install install-udeb
 	dh_installinfo -pe2fslibs-dev ${stdbuilddir}/doc/libext2fs.info
 
 	DH_OPTIONS= dh_installchangelogs -pe2fsprogs \
-		-plibblkid${BLKID_SOVERSION} -plibcomerr${COMERR_SOVERSION} \
+		-plibcomerr${COMERR_SOVERSION} \
 		-plibss${SS_SOVERSION} -plibuuid${UUID_SOVERSION} \
 		-pe2fslibs -puuid-dev -puuid-runtime -pe2fsck-static \
 		-pe2fsprogs-dbg -puuid-runtime-dbg -pe2fslibs-dbg \
-		-plibcomerr2-dbg -plibss2-dbg -plibblkid1-dbg -plibuuid1-dbg
+		-plibcomerr2-dbg -plibss2-dbg -plibuuid1-dbg
+ifneq ($(BUILD_BLKID),no)
+	DH_OPTIONS= dh_installchangelogs -plibblkid${BLKID_SOVERSION} \
+		-plibblkid1-dbg
+endif
 
 	dh_fixperms
 ifneq ($(ismips),)
@@ -433,7 +463,9 @@ endif
 
 	# debug package stuff
 	rm -rf ${udebdir}/usr
+ifneq ($(BUILD_BLKID),no)
 	rm -rf ${blkidudebdir}/usr
+endif
 	rm -rf ${uuidudebdir}/usr
 
 	mkdir -p ${debugdir}/usr/lib
@@ -463,13 +495,19 @@ endif
 	mv ${libuuiddir}/usr/lib/debug ${libuuiddbgdir}/usr/lib
 	rmdir ${libuuiddir}/usr/lib
 
+ifneq ($(BUILD_BLKID),no)
 	mkdir -p ${libblkiddbgdir}/usr/lib
 	mv ${libblkiddir}/usr/lib/debug ${libblkiddbgdir}/usr/lib
 	rmdir ${libblkiddir}/usr/lib
+endif
 
 	# dpkg symbol handling
 ifneq (,$(findstring update-symbols,$(DEB_BUILD_OPTIONS)))
-	for i in e2fslibs libcomerr2 libss2 libblkid1 libuuid1; \
+SYMBOL_LIBS := e2fslibs libcomerr2 libss2 libuuid1
+ifneq ($(BUILD_BLKID),no)
+SYMBOL_LIBS += libblkid1
+endif
+	for i in $(SYMBOL_LIBS); \
 	do \
 		echo "Generating symbols for $$i..."; \
 		dpkg-gensymbols -p$$i -Pdebian/$$i > debian/$$i.tmp-patch; \
@@ -494,8 +532,10 @@ endif
 	$(INSTALL) -p -m 0644 debian/libss2.copyright \
 		${libssdbgdir}/usr/share/doc/libss2-dbg/copyright
 
+ifneq ($(BUILD_BLKID),no)
 	$(INSTALL) -p -m 0644 debian/libblkid.copyright \
 		${libblkiddbgdir}/usr/share/doc/libblkid1-dbg/copyright
+endif
 
 	$(INSTALL) -p -m 0644 debian/libuuid1.copyright \
 		${libuuiddbgdir}/usr/share/doc/libuuid1-dbg/copyright
@@ -505,9 +545,11 @@ endif
 	dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
 	dh_makeshlibs -plibcomerr${COMERR_SOVERSION} \
 		-V 'libcomerr2 (>= 1.33-3)'
+ifneq ($(BUILD_BLKID),no)
 	dh_makeshlibs -plibblkid${BLKID_SOVERSION} -V 'libblkid1 (>= 1.39-1)'
 	echo "udeb: libblkid 1 libblkid1-udeb" >> \
 		debian/libblkid1/DEBIAN/shlibs
+endif
 	echo "udeb: libuuid 1 libuuid1-udeb" >> debian/libuuid1/DEBIAN/shlibs
 
 	dh_installdeb
@@ -526,16 +568,22 @@ endif
 	DH_OPTIONS= dh_gencontrol -puuid-dev \
 	  -u '-v${UUID_VERSION}-${MAIN_VERSION} -VmainBinary=${MAIN_VERSION}'
 	dh_gencontrol	-pe2fsprogs-udeb -- -fdebian/files~
+ifneq ($(BUILD_BLKID),no)
 	dh_gencontrol	-plibblkid1-udeb -- -fdebian/files~
+endif
 	dh_gencontrol	-plibuuid1-udeb -- -fdebian/files~
 
 	dpkg-distaddfile $(UDEB_NAME) debian-installer $(UDEB_PRIORITY)
+ifneq ($(BUILD_BLKID),no)
 	dpkg-distaddfile $(BLKID_UDEB_NAME) debian-installer $(BLKID_UDEB_PRIORITY)
+endif
 	dpkg-distaddfile $(UUID_UDEB_NAME) debian-installer $(UUID_UDEB_PRIORITY)
 	dh_md5sums -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
 	dh_builddeb -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
 	dh_builddeb -pe2fsprogs-udeb --filename=$(UDEB_NAME)
+ifneq ($(BUILD_BLKID),no)
 	dh_builddeb -plibblkid1-udeb --filename=$(BLKID_UDEB_NAME)
+endif
 	dh_builddeb -plibuuid1-udeb --filename=$(UUID_UDEB_NAME)
 
 binary: binary-indep binary-arch
-- 
1.6.0.5


[-- Attachment #1.3: 0004-debian-use-external-libblkid-on-Ubuntu.patch --]
[-- Type: text/x-patch, Size: 1276 bytes --]

From 3607e808fd9fd340fdcb2b946fc3533b52cbd27a Mon Sep 17 00:00:00 2001
From: Scott James Remnant <scott@ubuntu.com>
Date: Wed, 29 Apr 2009 18:18:06 +0100
Subject: [PATCH] debian: use external libblkid on Ubuntu

Check the output of lsb_release -is to allow per-distro customisations.
On Ubuntu, use the external libblkid.

The advantage to doing this in the standard rules is that anybody may
download a newer e2fsprogs tarball and have it build packages the same
way as their distribution.

Use ?= so it can still be overidden.
---
 debian/rules |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/debian/rules b/debian/rules
index b798854..f60f0a9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,6 +12,12 @@ export LC_ALL=C
 # no chance that pkg-create-dbgsym can cope with this package's manual construction of -dbg
 export NO_PKG_MANGLE=1
 
+# Allow distro-specific behaviour
+DISTRO :=$(shell lsb_release -is 2>/dev/null || echo Debian)
+ifeq ($(DISTRO),Ubuntu)
+BUILD_BLKID ?= no
+endif
+
 # These are used for cross-compiling and for saving the configure script
 # from having to guess our platform (since we know it already)
 DEB_HOST_ARCH   ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-- 
1.6.0.5


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-16 10:22       ` Karel Zak
  2009-04-17 13:36         ` Kay Sievers
  2009-04-17 13:48         ` Scott James Remnant
@ 2009-04-29 20:23         ` Theodore Tso
  2009-04-30  8:28           ` Karel Zak
  2 siblings, 1 reply; 25+ messages in thread
From: Theodore Tso @ 2009-04-29 20:23 UTC (permalink / raw)
  To: Karel Zak; +Cc: Scott James Remnant, linux-ext4, Kay Sievers

On Tue, Apr 28, 2009 at 10:36:35PM +0200, Karel Zak wrote:
> >  I forgot that we need to freeze blkid version number in e2fsprogs to
> >  avoid collisions between e2fsprogs and util-linux-ng. Currently the
> >  blkid version number is shared with e2fsprogs version number. 
> 
>  It seems we can ignore this problem for now. I can release
>  libblkid 2.15 (=util-linux-ng version) and keep the same SONAME as
>  you have in e2fsprogs -- it means soname "libblkid.so.1".
> 
>  It seems people prefer the same version for library as well as for
>  whole package.

Right, I made a point of not changing the libblkid ABI, and I tend to
prefer to keep the library SONAME version independent of the package
version, because I'm a firm believer in stable ABI's.  In terms of the
package version, that's going to depend on distribution.  So the blkid
shared library version has never changed because I've been careful
about not screwing with the ABI.  Technically I should have bumped the
minor version when I added new interfaces, but since no one really
pays attention to the minor version number of shared libraries, I was
lazy and the shared library version number has always stayed at 1.0.

As far as package versions are concerned, Debian and Ubuntu uses a
package name of "libblkid1" (where the 1 comes from the shared library
version), and a version number which is equal to the e2fsprogs version
(1.45).  Red Hat and Novell will use different version numbers, but if
it's based on the package version, then 2.15 is greater than 1.45 (the
e2fsprogs version), so that should work just fine.

On Mon, Apr 27, 2009 at 11:21:14AM +0200, Karel Zak wrote:
>
>  I forgot that we need to freeze blkid version number in e2fsprogs to
>  avoid collisions between e2fsprogs and util-linux-ng. Currently the
>  blkid version number is shared with e2fsprogs version number. 
> 
>  The e2fsprogs blkid should be in maintenance mode only. All development
>  should happen in util-linux-ng only. Right?

There have been a few bug fixes and I have some requests to detect
some new interfaces, such as VMFS, which I'll probably apply to
e2fsprogs blkid, but I don't expect to do any API or ABI changes, and
the only changes will be bugfixes and some new detection functions ---
and I'll make a point of synchronizing such improvements with
util-linux-ng.  Fair enough?

>  (See the patch below -- it's example. I don't know if you want to add
>   LIBBLKID_VERSION to the global version.h or something other to
>   configure.in, or so...)

As far as I know there are no applications which have used
blkid_get_library_version(), but what I would suggest is that
util-linux-bg use a lib_version of 2.15, and people who care about
whether they have the e2fsprogs or util-linug-ng version of e2fsprogs
can simply check for a 1.x or 2.x blkid version number as returned by
blkid_get_lib_version().  I don't anticipate e2fsprogs ever going to a
2.x version at this point --- we'll probably just always update the
1.xx version, just to avoid confusion, so I don't think we need to
worry about freezing this version number.  I'll just put in a comment
that util-linux-nh will have a 2.x version, and that e2fsprogs will
have a 1.x version --- not that I think anyone will really care, or
will try to sample the version number, as long as we're careful about
not screwing with the ABI.

					- Ted

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-29 17:22                 ` Scott James Remnant
@ 2009-04-29 20:54                   ` Theodore Tso
  2009-05-05 11:30                     ` Scott James Remnant
  0 siblings, 1 reply; 25+ messages in thread
From: Theodore Tso @ 2009-04-29 20:54 UTC (permalink / raw)
  To: Scott James Remnant; +Cc: Karel Zak, linux-ext4, Kay Sievers

Scott, thanks for submitting these patches.   Two quick comments:

1) It's greatly preferred if you submit each patch as separate e-mail
messages, with the one-line summary as the subject (as you might find
in a git submission or as described in sections 5.4 and 5.5 in the file
Documentation/development-process/5.Posting in the Linux kernel sources).
The reason for this is that the patchs will then be tracked in patchwork:

    http://patchwork.ozlabs.org/project/linux-ext4/list/

and if it's accurately reflected there, it's much less likely that I
won't accidentally forget to act on your patches, especially when I
get busy/overloaded.  The best thing to do is to use "git
format-patch" (which you apparenlty did to generate the patch), and
then use "git send-email" to send out the patches.

I find that this is in fact the fastest way for me to do work.  So
after I commit two patches, I'll do something like this:

rm -rf /tmp/p
git format-patch -n -o /tmp/p -2
git send-email --to linux-ext4@vger.kernel.org /tmp/p

(and in fact I have an aliases file configured in ~/.gitconfig, so I
have sendemail.aliasesfile=/home/tytso/.mutt/aliases and
sendemail.aliasfiletype=mutt, in which case all I have to type is:
"git send-email --to linux-ext4 /tmp/p")

2) While lsb_release is mandatory on Ubuntu systems (there is a
dependency from ubuntu-minimal), it is not guaranteed to exist on
Debian systems.  So how I already test for Ubuntu in the rules file is
via this construct:

	if test -f /etc/lsb-release && \
		grep -q DISTRIB_ID=Ubuntu /etc/lsb-release; then \
	$(INSTALL) -p -m 0644 e2fsck/e2fsck.conf.ubuntu \
       		${debdir}/e2fsprogs/etc/e2fsck.conf; \
	fi

Hmm, one of these days I should probably check and see if Ubuntu
finally fixed the installer and init scripts breakage which forced me
to set a special e2fsck.conf file just for Ubuntu.  (See git commit
60702c26 in the e2fsprogs repository for more details.)

But in any case, I'd suggest checking for Ubuntu using the above
construct instead of trying to use the lsb_release command, since it's
not guaranteed to be there on Debian systems.

3) In the "nice to have" category, it would be nice if whether or not
blkid is built is controled via DEB_BUILD_OPTIONS flag instead of a
free-standard environment variable, but I won't insist on that.

					- Ted

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-29 20:23         ` Theodore Tso
@ 2009-04-30  8:28           ` Karel Zak
  0 siblings, 0 replies; 25+ messages in thread
From: Karel Zak @ 2009-04-30  8:28 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Scott James Remnant, linux-ext4, Kay Sievers

On Wed, Apr 29, 2009 at 04:23:38PM -0400, Theodore Tso wrote:
> There have been a few bug fixes and I have some requests to detect
> some new interfaces, such as VMFS, which I'll probably apply to
> e2fsprogs blkid, but I don't expect to do any API or ABI changes, and
> the only changes will be bugfixes and some new detection functions ---
> and I'll make a point of synchronizing such improvements with
> util-linux-ng.  Fair enough?

 Yes, sounds good. My plan is send you all important patches for your
 e2fsprogs version and also periodically pull from your tree.

> As far as I know there are no applications which have used
> blkid_get_library_version(), but what I would suggest is that
> util-linux-bg use a lib_version of 2.15, and people who care about

 Yes, lib_version in my tree is already 2.15.0

> blkid_get_lib_version().  I don't anticipate e2fsprogs ever going to a
> 2.x version at this point --- we'll probably just always update the
> 1.xx version, just to avoid confusion, so I don't think we need to
> worry about freezing this version number.  I'll just put in a comment
> that util-linux-nh will have a 2.x version, and that e2fsprogs will
> have a 1.x version --- not that I think anyone will really care, or
> will try to sample the version number, as long as we're careful about
> not screwing with the ABI.

 OK. Thanks.

    Karel

-- 
 Karel Zak  <kzak@redhat.com>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] blkid: add --disable-libblkid (v2)
  2009-04-29 20:54                   ` Theodore Tso
@ 2009-05-05 11:30                     ` Scott James Remnant
  0 siblings, 0 replies; 25+ messages in thread
From: Scott James Remnant @ 2009-05-05 11:30 UTC (permalink / raw)
  To: Theodore Tso; +Cc: Karel Zak, linux-ext4, Kay Sievers

[-- Attachment #1: Type: text/plain, Size: 2403 bytes --]

On Wed, 2009-04-29 at 16:54 -0400, Theodore Tso wrote:

> Scott, thanks for submitting these patches.   Two quick comments:
> 
> 1) It's greatly preferred if you submit each patch as separate e-mail
> messages, with the one-line summary as the subject (as you might find
> in a git submission or as described in sections 5.4 and 5.5 in the file
> Documentation/development-process/5.Posting in the Linux kernel sources).
> The reason for this is that the patchs will then be tracked in patchwork:
> 
>     http://patchwork.ozlabs.org/project/linux-ext4/list/
> 
> and if it's accurately reflected there, it's much less likely that I
> won't accidentally forget to act on your patches, especially when I
> get busy/overloaded.  The best thing to do is to use "git
> format-patch" (which you apparenlty did to generate the patch), and
> then use "git send-email" to send out the patches.
> 
At this point, consider these patches "for your review" ;)  If you're
happy with them, I'll submit them to the mailing list properly.

> 2) While lsb_release is mandatory on Ubuntu systems (there is a
> dependency from ubuntu-minimal), it is not guaranteed to exist on
> Debian systems.
> 
That's why I have "|| Debian" in there.

This is the same rule we use in util-linux on Debian/Ubuntu.

> So how I already test for Ubuntu in the rules file is
> via this construct:
> 
> 	if test -f /etc/lsb-release && \
> 		grep -q DISTRIB_ID=Ubuntu /etc/lsb-release; then \
> 	$(INSTALL) -p -m 0644 e2fsck/e2fsck.conf.ubuntu \
>        		${debdir}/e2fsprogs/etc/e2fsck.conf; \
> 	fi
> 
It's not guaranteed that /etc/lsb-release says DISTRIB_ID=Ubuntu - if we
ever simply changed the defaults in lsb_release, then this would fail -
no?

> Hmm, one of these days I should probably check and see if Ubuntu
> finally fixed the installer and init scripts breakage which forced me
> to set a special e2fsck.conf file just for Ubuntu.  (See git commit
> 60702c26 in the e2fsprogs repository for more details.)
> 
We spent a very long time on this - in Jaunty this should be
rock-solidly correct <g>

> 3) In the "nice to have" category, it would be nice if whether or not
> blkid is built is controled via DEB_BUILD_OPTIONS flag instead of a
> free-standard environment variable, but I won't insist on that.
> 
Good idea.

Scott
-- 
Scott James Remnant
scott@ubuntu.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2009-05-05 11:30 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-23 17:38 uti-linux-ng libblkid Karel Zak
2009-02-23 17:38 ` [PATCH] blkid: add --disable-libblkid to build with external libblkid Karel Zak
2009-02-24  8:44   ` [PATCH] blkid: add --disable-libblkid (v2) Karel Zak
2009-03-24 12:11     ` Scott James Remnant
2009-04-16 10:22       ` Karel Zak
2009-04-17 13:36         ` Kay Sievers
2009-04-17 13:48         ` Scott James Remnant
2009-04-22 13:33           ` Theodore Tso
2009-04-22 13:42             ` Scott James Remnant
2009-04-22 13:49               ` Theodore Tso
2009-04-22 14:07                 ` Scott James Remnant
2009-04-29 17:22                 ` Scott James Remnant
2009-04-29 20:54                   ` Theodore Tso
2009-05-05 11:30                     ` Scott James Remnant
2009-04-27  9:21             ` Karel Zak
2009-04-28 20:36               ` Karel Zak
2009-04-29 13:59             ` Scott James Remnant
2009-04-29 17:17               ` Theodore Tso
2009-04-29 20:23         ` Theodore Tso
2009-04-30  8:28           ` Karel Zak
2009-02-23 17:38 ` [PATCH] tune2fs: make findfs code optional Karel Zak
2009-03-09  1:08 ` uti-linux-ng libblkid Theodore Tso
2009-03-09 10:42   ` Karel Zak
2009-03-09 11:45   ` Karel Zak
2009-03-18 19:28   ` Karel Zak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.