Bug#709627: libffi: Patch to bootstrap without multilib or texinfo
Source: libffi
Version: 3.0.13-4
Severity: wishlist
Tags: patch
As the subject says: the attached patch provides an option to bootstrap libffi
without the multilib builds. And there's also a bit in there to allow
skipping the use of the texinfo build dependency.
(Context: the aim of my pbuildd project is to bootstrap the Debian archive
from source packages, starting from a minimal debootstrap chroot. libffi comes
into the process early because of:
debhelper Depends on man-db
man-db Depends on bsdmainutils
bsdmainutils Build-Depends on libncurses5-dev [and even though libncurses5 is
part of that initial chroot, libncurses5-dev is not]
ncurses Build-Depends on pkg-config
pkg-config Build-Depends on libglib2.0-dev
glib2.0 Build-Depends on libffi-dev
Of course glib2.0 has more issues, so I don't even pretend to have a
functional bootstrap this early. But I can build a static version for the
bootstrapped pkg-config to link against -- which still requires libffi.
And hopefully the chain above also explains why texinfo isn't available to be
bootstrapped yet at this point.)
--
Daniel Schepler
diff -urN libffi-3.0.13.old/debian/rules libffi-3.0.13/debian/rules
--- libffi-3.0.13.old/debian/rules 2013-05-08 08:58:51.000000000 -0700
+++ libffi-3.0.13/debian/rules 2013-05-23 16:25:14.984021770 -0700
@@ -31,6 +31,13 @@
with_check = yes
endif
+ifeq ($(DEB_BUILD_PROFILE),stage1)
+
+bootstrap_dh_flags = -Nlib32ffi-dev -Nlib64ffi-dev -Nlibn32ffi-dev \
+ -Nlib32ffi$(major) -Nlib64ffi$(major) -Nlibn32ffi$(major)
+
+else
+
ifneq (,$(filter $(DEB_HOST_ARCH), i386 mips mipsel powerpc s390 sparc))
multiarch += biarch64
m64 = -m64
@@ -49,6 +56,8 @@
abi64 = -gnuabi64
endif
+endif
+
ifeq (,$(filter $(distrelease),lenny etch squeeze wheezy sid dapper hardy jaunty karmic lucid))
biarch_map := i686=x86_64 powerpc=powerpc64 sparc=sparc64 s390=s390x \
x86_64=i686 powerpc64=powerpc mips=mips64 mipsel=mips64el
@@ -130,8 +139,13 @@
$(if $(filter yes, $(with_check)), stamp-check $(foreach a, $(multiarch), stamp-check-$(a)))
stamp-build: stamp-configure
dh_testdir
+ifeq ($(DEB_BUILD_PROFILE),stage1)
+ touch doc/libffi.info
+endif
$(MAKE) -C build
+ifneq ($(DEB_BUILD_PROFILE),stage1)
$(MAKE) -C build html
+endif
touch $@
stamp-build-biarch32: stamp-configure-biarch32
@@ -197,14 +211,16 @@
dh_testdir
dh_testroot
dh_clean -k
- dh_installdirs -s
+ dh_installdirs -s $(bootstrap_dh_flags)
$(MAKE) -C build DESTDIR=$(CURDIR)/debian/tmp install
mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
-mv debian/tmp/usr/lib/* debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/.
cp -p build/.libs/libffi_convenience.a \
debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libffi_pic.a
mkdir -p debian/libffi-dev/usr/share/doc/$(p)
+ifneq ($(DEB_BUILD_PROFILE),stage1)
cp -a build/doc/libffi.html debian/libffi-dev/usr/share/doc/$(p)/html
+endif
ifneq (,$(filter biarch32, $(multiarch)))
$(MAKE) -C build32 DESTDIR=$(CURDIR)/debian/tmp install
cp -p build32/.libs/libffi_convenience.a \
@@ -220,7 +236,7 @@
cp -p buildn32/.libs/libffi_convenience.a \
debian/tmp/usr/lib32/libffi_pic.a
endif
- dh_install -s --sourcedir=debian/tmp
+ dh_install -s --sourcedir=debian/tmp $(bootstrap_dh_flags)
mkdir -p debian/libffi-dev/usr/include/$(DEB_HOST_MULTIARCH)
mv debian/libffi-dev/usr/include/*.h \
@@ -250,8 +266,8 @@
binary-arch: build install
dh_testdir
dh_testroot
- dh_installchangelogs -s
- dh_installdocs -s
+ dh_installchangelogs -s $(bootstrap_dh_flags)
+ dh_installdocs -s $(bootstrap_dh_flags)
dh_installinfo -plibffi-dev doc/libffi.info
rm -f debian/libffi-dev/usr/share/info/dir*
cp -p ChangeLog debian/libffi-dev/usr/share/doc/libffi$(major)/changelog
@@ -284,17 +300,17 @@
cat buildn32/check.log >> debian/libffi-dev/usr/share/doc/libffi$(major)/test_results_bi32n_$(DEB_HOST_MULTIARCH).txt
endif
endif
- dh_strip -s --dbg-package=libffi$(major)-dbg
+ dh_strip -s --dbg-package=libffi$(major)-dbg $(bootstrap_dh_flags)
rm -f debian/libffi6-dbg/usr/lib/debug/usr/lib{,32,n32,64}/libffi.so.*
- dh_compress -s
- dh_fixperms -s
+ dh_compress -s $(bootstrap_dh_flags)
+ dh_fixperms -s $(bootstrap_dh_flags)
dh_makeshlibs -plibffi$(major) --add-udeb=libffi$(major)-udeb
- dh_makeshlibs -s -Nlibffi$(major)
- dh_installdeb -s
- dh_shlibdeps -s
- dh_gencontrol -s
- dh_md5sums -s
- dh_builddeb -s
+ dh_makeshlibs -s -Nlibffi$(major) $(bootstrap_dh_flags)
+ dh_installdeb -s $(bootstrap_dh_flags)
+ dh_shlibdeps -s $(bootstrap_dh_flags)
+ dh_gencontrol -s $(bootstrap_dh_flags)
+ dh_md5sums -s $(bootstrap_dh_flags)
+ dh_builddeb -s $(bootstrap_dh_flags)
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
Reply to: