From: Scott James Remnant <scott@ubuntu.com>
To: Theodore Tso <tytso@mit.edu>
Cc: Karel Zak <kzak@redhat.com>,
linux-ext4@vger.kernel.org, Kay Sievers <kay.sievers@vrfy.org>
Subject: Re: [PATCH] blkid: add --disable-libblkid (v2)
Date: Wed, 29 Apr 2009 18:22:08 +0100 [thread overview]
Message-ID: <1241025728.16780.21.camel@quest> (raw)
In-Reply-To: <20090422134945.GQ15541@mit.edu>
[-- 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 --]
next prev parent reply other threads:[~2009-04-29 17:22 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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 20:23 ` Theodore Tso
2009-04-30 8:28 ` Karel Zak
2009-04-29 13:59 ` Scott James Remnant
2009-04-29 17:17 ` Theodore Tso
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1241025728.16780.21.camel@quest \
--to=scott@ubuntu.com \
--cc=kay.sievers@vrfy.org \
--cc=kzak@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.