diff options
author | Theodore Ts'o <tytso@mit.edu> | 2007-12-31 17:17:39 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2007-12-31 22:35:18 -0500 |
commit | a827a2a3a77bdb18afc6efa136dbc04832b71e08 (patch) | |
tree | 3feba9fbeaa94f0e980d8375d5dd65c3c61a78b7 | |
parent | 9320c6ffcdaa1ce236a462468fd7fa16bfca798e (diff) | |
download | e2fsprogs-a827a2a3a77bdb18afc6efa136dbc04832b71e08.tar.gz |
debian: build the e2fsck-static package so it works on 2.4 kernels
Some people are still running ancient Debian distributions, such as
woody, with a 2.4 kernel, and they want to be able to use the
e2fsck-static package on backlevel systems.
It turns out that we can't just statically link against glibc anymore,
since glibc now uses thread-local storage everywhere. So we now build
e2fsck-static using dietlibc.
Addresses-Debian-Bug: #458017
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r-- | debian/control | 2 | ||||
-rwxr-xr-x | debian/rules | 43 |
2 files changed, 41 insertions, 4 deletions
diff --git a/debian/control b/debian/control index 55f7e590..c41c829a 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: e2fsprogs Section: admin Priority: required Maintainer: Theodore Y. Ts'o <tytso@mit.edu> -Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, libsepol1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libdevmapper-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libselinux1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], debhelper (>= 4) +Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, dietlibc-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libsepol1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libdevmapper-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libselinux1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], debhelper (>= 4) Standards-Version: 3.7.3.0 Package: e2fsck-static diff --git a/debian/rules b/debian/rules index d7576628..11db3450 100755 --- a/debian/rules +++ b/debian/rules @@ -44,6 +44,7 @@ uuidudebdir=${debdir}/libuuid1-udeb maindir=${debdir}/e2fsprogs stdbuilddir=${debdir}/BUILD-STD bfbuilddir=${debdir}/BUILD-BF +staticbuilddir=${debdir}/BUILD-STATIC mipsbuilddir=${debdir}/BUILD-MIPS mipsbuilddir64=${debdir}/BUILD-MIPS-64 # docdir=${maindir}/usr/share/doc/${package} @@ -62,8 +63,10 @@ UUID_UDEB_PRIORITY = $(shell grep '^Package: libuuid1-udeb' debian/control -A 10 STAMPSDIR=debian/stampdir CFGSTDSTAMP=${STAMPSDIR}/configure-std-stamp CFGBFSTAMP=${STAMPSDIR}/configure-bf-stamp +CFGSTATICSTAMP=${STAMPSDIR}/configure-static-stamp BUILDSTDSTAMP=${STAMPSDIR}/build-std-stamp BUILDBFSTAMP=${STAMPSDIR}/build-bf-stamp +BUILDSTATICSTAMP=${STAMPSDIR}/build-static-stamp CCOPTS = -g @@ -85,6 +88,10 @@ endif ifeq (${DEB_HOST_ARCH_OS},linux) DEVMAPPER = --enable-blkid-devmapper +BUILD_STATIC = build-static +E2FSCK_STATIC = ${staticbuilddir}/e2fsck/e2fsck.static +else +E2FSCK_STATIC = ${stdbuilddir}/e2fsck/e2fsck.static endif BF_CCOPTS = -Os -fomit-frame-pointer @@ -101,6 +108,12 @@ BF_CONF_FLAGS = --with-ccopts="${CCOPTS} ${BF_CCOPTS}" \ --disable-uuidd --disable-tls \ --disable-debugfs --disable-e2initrd-helper +STATIC_CONF_FLAGS = --with-ccopts="${CCOPTS}" \ + --disable-nls --disable-imager \ + --disable-uuidd --disable-tls \ + --disable-e2initrd-helper \ + --with-diet-libc --with-ccopts=-fno-stack-protector + MIPS_NOPIC_CONF_FLAGS = --with-ccopts="${CCOPTS}" \ --disable-nls \ --disable-swapfs --disable-imager \ @@ -161,7 +174,23 @@ endif mkdir -p ${STAMPSDIR} touch ${CFGBFSTAMP} -build: build-std build-bf +${CFGSTATICSTAMP}: + dh_testdir + rm -f config.cache + + mkdir -p ${staticbuilddir} +ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) + cd ${staticbuilddir} && AWK=/usr/bin/awk \ + ${topdir}/configure ${STATIC_CONF_FLAGS} +else + cd ${staticbuilddir} && AWK=/usr/bin/awk CC="${DEB_HOST_GNU_TYPE}-gcc" \ + ${topdir}/configure ${COMMON_CONF_FLAGS} ${STATIC_CONF_FLAGS} \ + --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + mkdir -p ${STAMPSDIR} + touch ${CFGSTATICSTAMP} + +build: build-std build-bf $(BUILD_STATIC) build-std: ${BUILDSTDSTAMP} ${BUILDSTDSTAMP}: ${CFGSTDSTAMP} @@ -195,12 +224,20 @@ ${BUILDBFSTAMP}: ${CFGBFSTAMP} make -C ${bfbuilddir}/misc all touch ${BUILDBFSTAMP} +build-static: ${BUILDSTATICSTAMP} +${BUILDSTATICSTAMP}: ${CFGSTATICSTAMP} + dh_testdir + make -C ${staticbuilddir} libs + make -C ${staticbuilddir}/e2fsck all + touch ${BUILDSTATICSTAMP} + clean: dh_testdir rm -rf ${STAMPSDIR} [ ! -f ${stdbuilddir}/Makefile ] || make -C ${stdbuilddir} distclean [ ! -f ${bfbuilddir}/Makefile ] || make -C ${bfbuilddir} distclean - rm -rf ${stdbuilddir} ${bfbuilddir} ${mipsbuilddir} ${mipsbuilddir64} + [ ! -f ${staticbuilddir}/Makefile ] || make -C ${staticbuilddir} distclean + rm -rf ${stdbuilddir} ${bfbuilddir} ${staticbuilddir} ${mipsbuilddir} ${mipsbuilddir64} rm -f doc/libext2fs/*.html lib/et/com_err/*.html debian/*.substvars dh_clean @@ -227,7 +264,7 @@ install-std: build make -C ${stdbuilddir} install-libs DESTDIR=${tmpdir} LDCONFIG=true # statically-linked fsck - ${INSTALL_PROGRAM} ${stdbuilddir}/e2fsck/e2fsck.static ${tmpdir}/sbin + ${INSTALL_PROGRAM} $(E2FSCK_STATIC) ${tmpdir}/sbin cp ${mandir}/man8/e2fsck.8 ${mandir}/man8/e2fsck.static.8 ln -s et/com_err.h ${tmpdir}/usr/include |