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