#640009 module-assistant: after replacing kernel but before reboot, m-a wrongly reports it has failed

#640009#5
Date:
2011-09-01 13:10:32 UTC
From:
To:
I install a squeeze system from a mirror which has not been
updated for few months. Then I add security repository info to
/etc/apt/sources.list and then run 'apt-get update && apt-get
dist-upgrade' and I think this upgrades the kernel, so that after
the dist-upgrade I have:

	fiori$ dpkg -l | grep linux-image
	ii  linux-image-2.6.32-5-amd64               2.6.32-34squeeze1             Linux 2.6.32 for 64-bit PCs
	fiori$

Buuuuut ... I do not reboot to activate the new kernel yet! This is
because this is all being run from a script which configures a system
as I want and installs lots of packages.

I then run m-a to build modules for iscsitarget-source (but I get
exactly the same behaviour for nvidia-kernel-source, which is why I
think this is a m-a bug, not a iscsitarget-source bug). The command
line I use is:

	m-a --kvers-list 2.6.32-5-amd64 --text-mode --quiet --non-inter auto-install iscsitarget

The result is this:

	  ...
	  ...
	  CC [M]  /usr/src/modules/iscsitarget/kernel/block-io.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/ua.o
	  LD [M]  /usr/src/modules/iscsitarget/kernel/iscsi_trgt.o
	  Building modules, stage 2.
	  MODPOST 1 modules
	  CC      /usr/src/modules/iscsitarget/kernel/iscsi_trgt.mod.o
	  LD [M]  /usr/src/modules/iscsitarget/kernel/iscsi_trgt.ko
	make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
	#/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel modules_install DESTDIR=/usr/src/modules/iscsitarget/debian/iscsitarget-module-2.6.32-5-amd64
	install -m644 -b -D /usr/src/modules/iscsitarget/kernel/iscsi_trgt.ko /usr/src/modules/iscsitarget/debian/iscsitarget-module-2.6.32-5-amd64/lib/modules/2.6.32-5-amd64/kernel/drivers/iscsi/iscsi_trgt.ko
	dh_installdocs
	dh_installchangelogs
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_gencontrol -- -v1.4.20.2-1+2.6.32-34squeeze1
	dh_md5sums
	dh_builddeb --destdir=/usr/src
	dpkg-deb: building package `iscsitarget-module-2.6.32-5-amd64' in `/usr/src/iscsitarget-module-2.6.32-5-amd64_1.4.20.2-1+2.6.32-34squeeze1_amd64.deb'.
	make[1]: Leaving directory `/usr/src/modules/iscsitarget'
	/usr/bin/make  -f debian/rules kdist_clean
	make[1]: Entering directory `/usr/src/modules/iscsitarget'
	dh_clean
	/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel clean
	make[2]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
	  CLEAN   /usr/src/modules/iscsitarget/kernel/.tmp_versions
	  CLEAN   /usr/src/modules/iscsitarget/kernel/Module.symvers /usr/src/modules/iscsitarget/kernel/modules.order
	make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
	make[1]: Leaving directory `/usr/src/modules/iscsitarget'
	Package iscsitarget-source was not built successfully, see /var/cache/modass/iscsitarget-source*buildlog* for details!

As you can see, there are no compile errors and the package .deb
has been created and it installs successfully and, after a reboot,
I can use it, without problems. It is simply that m-a is saying:

	Package iscsitarget-source was not built successfully, see /var/cache/modass/iscsitarget-source*buildlog* for details!

but this is not true! The log file
/var/cache/modass/iscsitarget-source*buildlog* contains exactly the
output which is displayed above. But here it is completely:

	fiori$ ls -ld /var/cache/modass/iscsitarget-source*buildlog*
	-rw-r--r-- 1 root root 4614 Aug 30 13:43 /var/cache/modass/iscsitarget-source.buildlog.2.6.32-5-amd64.1314704608
	fiori$
	fiori$ cat /var/cache/modass/iscsitarget-source*buildlog*
	dh_clean
	/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel clean
	make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
	make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
	/usr/bin/make  -f debian/rules kdist_clean kdist_config binary-modules
	make[1]: Entering directory `/usr/src/modules/iscsitarget'
	dh_clean
	/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel clean
	make[2]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
	make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
	for templ in /usr/src/modules/iscsitarget/debian/iscsitarget-module-_KVERS_.postinst; do \
	    cp $templ `echo $templ | sed -e 's/_KVERS_/2.6.32-5-amd64/g'` ; \
	  done
	for templ in `ls debian/*.modules.in` ; do \
	    test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
	    sed -e 's/##KVERS##/2.6.32-5-amd64/g ;s/#KVERS#/2.6.32-5-amd64/g ; s/_KVERS_/2.6.32-5-amd64/g ; s/##KDREV##/2.6.32-34squeeze1/g ; s/#KDREV#/2.6.32-34squeeze1/g ; s/_KDREV_/2.6.32-34squeeze1/g  ' < $templ > ${templ%.modules.in}; \
	  done
	for p in  compat-2.6.32.patch; do \
			echo "Applying patch $p"; \
			test -f patches/$p && patch -p1 < patches/$p \
			#test -f patches/compat-2.6.32.patch && patch -p1 < patches/compat-2.6.32.patch \
		done
	Applying patch compat-2.6.32.patch
	patching file kernel/conn.c
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_clean: dh_clean -k is deprecated; use dh_prep instead
	#/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build KERNEL_SOURCES=/lib/modules/2.6.32-5-amd64/build MODVERSIONS=detect KERNEL=linux-2.6.32-5-amd64 KDIR=/lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel modules
	/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel modules
	make[2]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
	  CC [M]  /usr/src/modules/iscsitarget/kernel/tio.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/iscsi.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/nthread.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/wthread.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/config.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/digest.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/conn.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/session.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/target.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/volume.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/iotype.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/file-io.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/null-io.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/target_disk.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/event.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/param.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/block-io.o
	  CC [M]  /usr/src/modules/iscsitarget/kernel/ua.o
	  LD [M]  /usr/src/modules/iscsitarget/kernel/iscsi_trgt.o
	  Building modules, stage 2.
	  MODPOST 1 modules
	  CC      /usr/src/modules/iscsitarget/kernel/iscsi_trgt.mod.o
	  LD [M]  /usr/src/modules/iscsitarget/kernel/iscsi_trgt.ko
	make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
	#/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel modules_install DESTDIR=/usr/src/modules/iscsitarget/debian/iscsitarget-module-2.6.32-5-amd64
	install -m644 -b -D /usr/src/modules/iscsitarget/kernel/iscsi_trgt.ko /usr/src/modules/iscsitarget/debian/iscsitarget-module-2.6.32-5-amd64/lib/modules/2.6.32-5-amd64/kernel/drivers/iscsi/iscsi_trgt.ko
	dh_installdocs
	dh_installchangelogs
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_gencontrol -- -v1.4.20.2-1+2.6.32-34squeeze1
	dh_md5sums
	dh_builddeb --destdir=/usr/src
	dpkg-deb: building package `iscsitarget-module-2.6.32-5-amd64' in `/usr/src/iscsitarget-module-2.6.32-5-amd64_1.4.20.2-1+2.6.32-34squeeze1_amd64.deb'.
	make[1]: Leaving directory `/usr/src/modules/iscsitarget'
	/usr/bin/make  -f debian/rules kdist_clean
	make[1]: Entering directory `/usr/src/modules/iscsitarget'
	dh_clean
	/usr/bin/make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/src/modules/iscsitarget/kernel clean
	make[2]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
	  CLEAN   /usr/src/modules/iscsitarget/kernel/.tmp_versions
	  CLEAN   /usr/src/modules/iscsitarget/kernel/Module.symvers /usr/src/modules/iscsitarget/kernel/modules.order
	make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
	make[1]: Leaving directory `/usr/src/modules/iscsitarget'
	Build time: 19 seconds
	fiori$

I believe, but am not 100% sure that this was not a problem when
squeeze was first released, because there was no kernel upgrade
available, but, now, several months later, there is a kernel upgrade
available, so I do it, and now m-a fails.

Further info: I did the same procedure (install from old mirror,
configure security updates, run apt-get update && apt-get dist-upgrade,
use m-a to build modules for a different kernel to the one that is
running) with lenny, but there was no problem there.

If you need more info (e.g. running some extra commands before and
after running m-a, running m-a with tons of debug enabled, etc),
then please let me know.

Alexis