Hello, I've been trying to recompile all packages as if we were using the 3.0 (quilt) source package by default and investigating the related build failures. In theory all quilt-based packages should _not_ fail but all the xserver-xorg-* (and a few other X related package) do fail because they use some custom quilt hackery in debian/xsfbs/xsfbs.mk instead of the plain /usr/share/quilt/quilt.make.
To reproduce the problem you can do the following: $ apt-get source xserver-xorg-input-evdev $ dpkg-source --format="3.0 (quil)" -b xserver-xorg-input-evdev-1.2.0 $ dpkg-source -x xserver-xorg-input-evdev_*.dsc $ cd xserver-xorg-input-evdev-1.2.0 && debuild -us -uc [...] /usr/bin/fakeroot debian/rules clean rm -f stampdir/genscripts rm -f debian/*.config \ debian/*.postinst \ debian/*.postrm \ debian/*.preinst \ debian/*.prerm rm -f stampdir/patch Unapplying patches...nothing to do. dh_testdir rm -f .pc patches rm: cannot remove `.pc': Is a directory make: *** [xsfclean] Error 1 The explanation: after dpkg-source -x, the quilt series will already have been applied by dpkg-source, and the .pc directory will already exist. However xsfbs.mk expect to do all the setup by itself... and believes that .pc is the symlink that he created to $(STAMP_DIR)/patches/. He fails while trying to remove the directory. The makefile also expect all patches to be in "patches/" instead of "debian/patches" and creates a symlink for that. I changed that so that quilt directly uses debian/patches/ thus removing the need for the symlink. And instead of checking a quilt internal file (.pc/applied-patches) I changed it to use "quilt applied". Please find attached a suggested patch. I'd like you to apply it on all your copies of xsfbs.mk in order to ease the transition to the new source package format in lenny+1. For reference here are the X related packages where I saw those failures: xdm_1:1.1.7-1_sid32-gcc43.buildlog xfonts-encodings_1:1.0.2-3_sid32-gcc43.buildlog xfree86-driver-synaptics_0.14.7~git20070706-2_sid32-gcc43.buildlog xft_2.1.12-2_sid32-gcc43.buildlog xinit_1.0.8-1_sid32-gcc43.buildlog xorg-docs_1:1.4-2_sid32-gcc43.buildlog xserver-xorg-input-evdev_1:1.2.0-1_sid32-gcc43.buildlog xserver-xorg-input-joystick_1:1.3.2-1_sid32-gcc43.buildlog xserver-xorg-input-keyboard_1:1.2.2-3_sid32-gcc43.buildlog xserver-xorg-input-mouse_1:1.2.3-2_sid32-gcc43.buildlog xserver-xorg-video-apm_1:1.1.1-10_sid32-gcc43.buildlog xserver-xorg-video-ark_1:0.6.0-9_sid32-gcc43.buildlog xserver-xorg-video-ati_1:6.8.0-1_sid32-gcc43.buildlog xserver-xorg-video-chips_1:1.1.1-9_sid32-gcc43.buildlog xserver-xorg-video-cirrus_1:1.1.0-8_sid32-gcc43.buildlog xserver-xorg-video-cyrix_1:1.1.0-8_sid32-gcc43.buildlog xserver-xorg-video-fbdev_1:0.3.1-4_sid32-gcc43.buildlog xserver-xorg-video-glint_1:1.1.1-8_sid32-gcc43.buildlog xserver-xorg-video-i128_1:1.2.1-4_sid32-gcc43.buildlog xserver-xorg-video-i740_1:1.1.0-7_sid32-gcc43.buildlog xserver-xorg-video-imstt_1:1.1.0-7_sid32-gcc43.buildlog xserver-xorg-video-mga_1:1.4.8.dfsg.1-1_sid32-gcc43.buildlog xserver-xorg-video-neomagic_1:1.1.1-8_sid32-gcc43.buildlog xserver-xorg-video-newport_1:0.2.1-4_sid32-gcc43.buildlog xserver-xorg-video-nv_1:2.1.9-1_sid32-gcc43.buildlog xserver-xorg-video-radeonhd_1.2.1-2_sid32-gcc43.buildlog xserver-xorg-video-s3_1:0.5.0-4_sid32-gcc43.buildlog xserver-xorg-video-s3virge_1:1.9.1-7_sid32-gcc43.buildlog xserver-xorg-video-siliconmotion_1:1.5.1-3_sid32-gcc43.buildlog xserver-xorg-video-sis_1:0.9.3-6_sid32-gcc43.buildlog xserver-xorg-video-tdfx_1:1.3.0-6_sid32-gcc43.buildlog xserver-xorg-video-tga_1:1.1.0-9_sid32-gcc43.buildlog xserver-xorg-video-trident_1:1.2.4-1_sid32-gcc43.buildlog xserver-xorg-video-tseng_1:1.1.1-4_sid32-gcc43.buildlog xserver-xorg-video-voodoo_1:1.1.1-5_sid32-gcc43.buildlog xtrans_1.2-1_sid32-gcc43.buildlog Thanks for your help. -- Raphaël Hertzog Le best-seller français mis à jour pour Debian Etch : http://www.ouaza.com/livre/admin-debian/
diff -u xserver-xorg-input-evdev-1.2.0/debian/xsfbs/xsfbs.mk xserver-xorg-input-evdev-1.2.0/debian/xsfbs/xsfbs.mk --- xserver-xorg-input-evdev-1.2.0/debian/xsfbs/xsfbs.mk +++ xserver-xorg-input-evdev-1.2.0/debian/xsfbs/xsfbs.mk @@ -21,10 +21,8 @@ # Pass $(DH_OPTIONS) into the environment for debhelper's benefit. export DH_OPTIONS -# force quilt to not use ~/.quiltrc -QUILT = quilt --quiltrc /dev/null -# force QUILT_PATCHES to the default in case it is exported in the environment -QUILT_PATCHES = patches/ +# force quilt to not use ~/.quiltrc and to use debian/patches +QUILT = QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null # Set up parameters for the upstream build environment. @@ -121,19 +119,11 @@ # Set up the package build directory as quilt expects to find it. .PHONY: prepare stampdir_targets+=prepare -prepare: $(STAMP_DIR)/genscripts $(STAMP_DIR)/prepare $(STAMP_DIR)/patches $(STAMP_DIR)/log +prepare: $(STAMP_DIR)/genscripts $(STAMP_DIR)/prepare $(STAMP_DIR)/log $(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir - if [ ! -e $(STAMP_DIR)/patches ]; then \ - mkdir $(STAMP_DIR)/patches; \ - ln -s $(STAMP_DIR)/patches .pc; \ - echo 2 >$(STAMP_DIR)/patches/.version; \ - fi; \ if [ ! -e $(STAMP_DIR)/log ]; then \ mkdir $(STAMP_DIR)/log; \ fi; \ - if [ -e debian/patches ] && [ ! -e patches ]; then \ - ln -s debian/patches patches; \ - fi; \ >$@ # Apply all patches to the upstream source. @@ -162,10 +152,10 @@ # Revert all patches to the upstream source. .PHONY: unpatch -unpatch: +unpatch: $(STAMP_DIR)/prepare rm -f $(STAMP_DIR)/patch @echo -n "Unapplying patches..."; \ - if [ -e $(STAMP_DIR)/patches/applied-patches ]; then \ + if $(QUILT) applied >/dev/null 2>/dev/null; then \ if $(QUILT) pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \ cat $(STAMP_DIR)/log/unpatch; \ echo "successful."; \ @@ -192,7 +182,7 @@ .PHONY: xsfclean xsfclean: cleanscripts unpatch dh_testdir - rm -f .pc patches + rm -rf .pc rm -rf $(STAMP_DIR) $(SOURCE_DIR) rm -rf imports dh_clean debian/shlibs.local \