On Tue, 2011-12-13 at 18:32 +0000, أحمد المحمودي (Ahmed El-Mahmoudy) wrote: > Source: sl-modem > Source-Version: 2.9.11~20110321-5 > > We believe that the bug you reported is fixed in the latest version of > sl-modem, which is due to be installed in the Debian FTP archive:
Sorry, no it isn't. You have to test for CONFIG_X86_32 inside of Kbuild, and you can't use uname for this anywhere. Really, the Makefile needs a thorough cleanup. Also, building for a 64-bit kernel will still fail since DKMS is configured to expect all 3 modules to be built. I've attached a debdiff that seems to fix all of this. Feel free to reword and cherry-pick from the patches. Ben. -- Ben Hutchings Computers are not intelligent. They only think they are.
diff -Nru sl-modem-2.9.11~20110321/debian/changelog sl-modem-2.9.11~20110321/debian/changelog --- sl-modem-2.9.11~20110321/debian/changelog 2011-12-13 18:22:29.000000000 +0000 +++ sl-modem-2.9.11~20110321/debian/changelog 2011-12-14 04:26:26.000000000 +0000 @@ -1,3 +1,16 @@ +sl-modem (2.9.11~20110321-5.1) unstable; urgency=low + + * Non-maintainer upload. + * Clean up driver makefile (remove_linux-2.4.diff, simplify_kernel_ver.diff; + replacing 01_Makefile.diff, support_linux3.diff) + * Remove obsolete kernel version check for USB support + (remove_usb_kernel_ver_check.diff) + * Change arch64.diff to fix the architecture detection logic properly + (Closes: #651780) + * Configure DKMS to install slamr.ko only on x86 32-bit kernels + + -- Ben Hutchings <[email protected]> Wed, 14 Dec 2011 03:35:34 +0000 + sl-modem (2.9.11~20110321-5) unstable; urgency=low * Added Brazilian Portuguese debconf templates translation (Closes: #648844) diff -Nru sl-modem-2.9.11~20110321/debian/patches/01_Makefile.diff sl-modem-2.9.11~20110321/debian/patches/01_Makefile.diff --- sl-modem-2.9.11~20110321/debian/patches/01_Makefile.diff 2011-12-13 18:22:29.000000000 +0000 +++ sl-modem-2.9.11~20110321/debian/patches/01_Makefile.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,57 +0,0 @@ -Cleanup to not loose the user-specified version string and blindly try include -modversions.h -By: Eduard Bloch <[email protected]> -Index: sl-modem-2.9.11~20090222/Makefile -=================================================================== ---- sl-modem-2.9.11~20090222.orig/Makefile 2008-03-29 14:04:16.000000000 +0200 -+++ sl-modem-2.9.11~20090222/Makefile 2009-02-26 08:37:16.000000000 +0200 -@@ -13,11 +13,15 @@ - # - ########################################################################### - --KERNEL_DIR:=/lib/modules/$(shell uname -r)/build -+KERNEL_DIR?=/lib/modules/$(shell uname -r)/build - - # tools - INSTALL:=install -- -+# Definitions -+MODULES_DIR = /lib/modules/$(KVERS)/misc -+MODEM_DEV := ttySL0 -+MODEM_LINK := modem -+MODULES_CONF:= /etc/modules.conf - all: modem - - modem: -Index: sl-modem-2.9.11~20090222/drivers/Makefile -=================================================================== ---- sl-modem-2.9.11~20090222.orig/drivers/Makefile 2009-02-23 00:20:58.000000000 +0200 -+++ sl-modem-2.9.11~20090222/drivers/Makefile 2009-02-26 08:37:16.000000000 +0200 -@@ -45,8 +45,14 @@ - ifndef KERNELRELEASE - ifndef KERNEL_VER - -+ -+KVERS?=$(shell ./kernel-ver) -+ -+ -+ - all install uninstall: kernel-ver -- $(MAKE) $@ KERNEL_VER=$(shell ./kernel-ver) -+ $(MAKE) $@ KERNEL_VER=$(KVERS) -+# $(MAKE) $@ KERNEL_VER=$(shell ./kernel-ver) - - install: install-devices - uninstall: remove-devices -@@ -80,9 +86,9 @@ - - slusb-objs:= old_st7554.o - obj:=. --module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/misc -+module-dir ?= ${DESTDIR}/lib/modules/$(KERNEL_VER)/misc - --CFLAGS:= -Wall -pipe -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include $(FOUND_CLASS_SIMPLE) -+CFLAGS:= -Wall -pipe -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB `test -f $(KERNEL_DIR)/include/linux/modversions.h && echo -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include` $(FOUND_CLASS_SIMPLE) - - all: $(obj-m) - diff -Nru sl-modem-2.9.11~20110321/debian/patches/arch64.diff sl-modem-2.9.11~20110321/debian/patches/arch64.diff --- sl-modem-2.9.11~20110321/debian/patches/arch64.diff 2011-12-13 18:22:29.000000000 +0000 +++ sl-modem-2.9.11~20110321/debian/patches/arch64.diff 2011-12-14 03:50:30.000000000 +0000 @@ -1,18 +1,47 @@ -Description: Better arch detection logic -Author: أحمد المحمودي (Ahmed El-Mahmoudy) <[email protected]> +Description: Better arch detection logic. + Within Kbuild, test CONFIG_X86_32. Outside, don't assume we can tell. + Use the modules_install rule to avoid needing to know. +Author: Ben Hutchings <[email protected]> Bug-Debian: http://bugs.debian.org/651780 -Forwarded: yes + --- a/drivers/Makefile +++ b/drivers/Makefile -@@ -28,7 +28,11 @@ +@@ -25,9 +25,7 @@ EXTRA_CFLAGS = -I$(obj) -I$(obj)/../modem $(FOUND_CLASS_SIMPLE) +-ARCH64:=$(shell uname -m | sed -e '/amd64/s//x86_64/' | grep -c x86_64) +- +-ifeq ($(ARCH64), 0) +ifdef CONFIG_X86_32 -+ARCH64:=0 -+else - ARCH64:=$(shell uname -m | sed -e '/amd64/s//x86_64/' | grep -c x86_64) -+endif - - ifeq ($(ARCH64), 0) obj-m:= slamr.o + endif + +@@ -53,11 +51,8 @@ + @echo " finished all:" + + install: +-ifeq ($(ARCH64), 0) +- install -D -m 644 slamr.ko $(module-dir)/slamr.ko +-endif +- install -D -m 644 slusb.ko $(module-dir)/slusb.ko +- /sbin/depmod -a ++ $(MAKE) modules_install -C $(KERNEL_DIR) SUBDIRS=$(shell pwd) \ ++ INSTALL_MOD_PATH=$(DESTDIR) + mkdir -p ${DESTDIR}/dev + $(foreach minor,0 1 2 3, \ + mknod -m 600 ${DESTDIR}/dev/slamr$(minor) c 242 $(minor) ; ) echo -n +@@ -65,11 +60,9 @@ + mknod -m 600 ${DESTDIR}/dev/slusb$(minor) c 243 $(minor) ; ) echo -n + + uninstall: +-ifeq ($(ARCH64), 0) +- modprobe -r slamr ; echo -n +-endif ++ modprobe -qr slamr ; echo -n + modprobe -r slusb ; echo -n +- $(RM) $(module-dir)/slamr.ko ++ $(RM) -f $(module-dir)/slamr.ko + $(RM) $(module-dir)/slusb.ko + /sbin/depmod -a + $(foreach minor,0 1 2 3, \ diff -Nru sl-modem-2.9.11~20110321/debian/patches/remove_linux-2.4.diff sl-modem-2.9.11~20110321/debian/patches/remove_linux-2.4.diff --- sl-modem-2.9.11~20110321/debian/patches/remove_linux-2.4.diff 1970-01-01 01:00:00.000000000 +0100 +++ sl-modem-2.9.11~20110321/debian/patches/remove_linux-2.4.diff 2011-12-14 03:50:38.000000000 +0000 @@ -0,0 +1,63 @@ +Description: Remove obsolete support for Linux 2.4. This is just clutter now. +Author: Ben Hutchings <[email protected]> + +--- a/drivers/Makefile ++++ b/drivers/Makefile +@@ -76,49 +76,6 @@ + $(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n + + else +-ifeq ($(shell grep 'UTS.*"2\.6' $(KERNEL_DIR)/include/generated/utsrelease.h $(KERNEL_DIR)/include/linux/utsrelease.h $(KERNEL_DIR)/include/linux/version.h 2>/dev/null),) +- +-slusb-objs:= old_st7554.o +-obj:=. +-module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/misc +- +-CFLAGS:= -Wall -pipe -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include $(FOUND_CLASS_SIMPLE) +- +-all: $(obj-m) +- +-slamr.o: $(slamr-objs) +-slusb.o: $(slusb-objs) +-slamr.o slusb.o: +- $(LD) -r -o $@ $^ +- +-install: uninstall-old +-ifeq ($(ARCH64), 0) +- install -D -m 644 slamr.o $(module-dir)/slamr.o +-endif +- install -D -m 644 slusb.o $(module-dir)/slusb.o +- cp /etc/modules.conf /etc/modules.conf.slamr && \ +- echo 'alias char-major-242 slamr' >> /etc/modules.conf && \ +- echo 'alias char-major-243 slusb' >> /etc/modules.conf +- /sbin/depmod -a +-uninstall: +- /sbin/modprobe -r slamr slusb +- cp /etc/modules.conf /etc/modules.conf.slamr && \ +- egrep -ve 'alias char-major-242 slamr|alias char-major-243 slusb' /etc/modules.conf.slamr > /etc/modules.conf +- $(RM) $(module-dir)/slamr.o +- $(RM) $(module-dir)/slusb.o +- /sbin/depmod -a +-uninstall-old: +- $(RM) $(module-dir)/slmdm.o \ +- $(module-dir)/slfax.o \ +- $(module-dir)/slusb.o \ +- $(module-dir)/slamrmo.o \ +- $(module-dir)/slmodem.o # remove old 2.7,2.8 version +- +-%.o: %.c +- @echo " doing %.o: %.c" +- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -o $@ -c $< +- +-else + + module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/extra + +@@ -148,7 +105,6 @@ + endif + + endif +-endif + + $(obj)/amrlibs.o: + echo "$@ done" diff -Nru sl-modem-2.9.11~20110321/debian/patches/remove_usb_kernel_ver_check.diff sl-modem-2.9.11~20110321/debian/patches/remove_usb_kernel_ver_check.diff --- sl-modem-2.9.11~20110321/debian/patches/remove_usb_kernel_ver_check.diff 1970-01-01 01:00:00.000000000 +0100 +++ sl-modem-2.9.11~20110321/debian/patches/remove_usb_kernel_ver_check.diff 2011-12-14 03:50:47.000000000 +0000 @@ -0,0 +1,48 @@ +Description: Remove kernel version check for slusb support. + We try to support new versions, and have been overriding this check. +Author: Ben Hutchings <[email protected]> + +--- a/drivers/Makefile ++++ b/drivers/Makefile +@@ -20,12 +20,6 @@ + KERNEL_VER := $(shell uname -r) + endif + KERNEL_DIR ?= /lib/modules/$(KERNEL_VER)/build +-SUBLEVEL:=$(shell echo $(KERNEL_DIR) | cut -d. -f3 | cut -d. -f1 | cut -d- -f1) +-# slusb support ends at 2.6.24 +- +-ifndef USB +-AGE:=$(shell if [ "$(SUBLEVEL)" -gt 24 ] ;then echo NEW;fi) +-endif + + FOUND_CLASS_SIMPLE := $(shell grep -q 'class_simple_device_add' ${KERNEL_DIR}/include/linux/device.h 2> /dev/null && echo -DFOUND_CLASS_SIMPLE) + +@@ -37,10 +31,7 @@ + obj-m:= slamr.o + endif + +-# AGE:=test +-ifneq ($(AGE), NEW) + obj-m:= $(obj-m) slusb.o +-endif + + slamr-objs:= amrmo_init.o sysdep_amr.o amrlibs.o + slusb-objs:= st7554.o +@@ -65,17 +56,13 @@ + ifeq ($(ARCH64), 0) + install -D -m 644 slamr.ko $(module-dir)/slamr.ko + endif +-ifneq ($(AGE), NEW) + install -D -m 644 slusb.ko $(module-dir)/slusb.ko +-endif + /sbin/depmod -a + mkdir -p ${DESTDIR}/dev + $(foreach minor,0 1 2 3, \ + mknod -m 600 ${DESTDIR}/dev/slamr$(minor) c 242 $(minor) ; ) echo -n +-ifneq ($(AGE), NEW) + $(foreach minor,0 1 2 3, \ + mknod -m 600 ${DESTDIR}/dev/slusb$(minor) c 243 $(minor) ; ) echo -n +-endif + + uninstall: + ifeq ($(ARCH64), 0) diff -Nru sl-modem-2.9.11~20110321/debian/patches/series sl-modem-2.9.11~20110321/debian/patches/series --- sl-modem-2.9.11~20110321/debian/patches/series 2011-12-13 18:22:29.000000000 +0000 +++ sl-modem-2.9.11~20110321/debian/patches/series 2011-12-14 03:27:20.000000000 +0000 @@ -1,4 +1,5 @@ -01_Makefile.diff +remove_linux-2.4.diff +simplify_kernel_ver.diff modem_group.diff 08_ungrab_winmodem.diff 10_drop_privileges.diff @@ -8,6 +9,6 @@ autoload.diff support_multiarch.diff clean_LFLAGS.diff -support_linux3.diff device_create_changes.diff +remove_usb_kernel_ver_check.diff arch64.diff diff -Nru sl-modem-2.9.11~20110321/debian/patches/simplify_kernel_ver.diff sl-modem-2.9.11~20110321/debian/patches/simplify_kernel_ver.diff --- sl-modem-2.9.11~20110321/debian/patches/simplify_kernel_ver.diff 1970-01-01 01:00:00.000000000 +0100 +++ sl-modem-2.9.11~20110321/debian/patches/simplify_kernel_ver.diff 2011-12-14 04:01:03.000000000 +0000 @@ -0,0 +1,103 @@ +Description: Simplify definition of KERNEL_VER. + If we use uname -r to find KERNEL_DIR, also use it for KERNEL_VER. + Otherwise, require it to be provided as an environment or command-line + variable. +Author: Ben Hutchings <[email protected]> + +--- sl-modem-2.9.11~20110321.orig/Makefile ++++ sl-modem-2.9.11~20110321/Makefile +@@ -13,7 +13,10 @@ + # + ########################################################################### + +-KERNEL_DIR:=/lib/modules/$(shell uname -r)/build ++ifndef KERNEL_VER ++KERNEL_VER := $(shell uname -r) ++endif ++KERNEL_DIR ?= /lib/modules/$(KERNEL_VER)/build + + # tools + INSTALL:=install +--- sl-modem-2.9.11~20110321.orig/drivers/Makefile ++++ sl-modem-2.9.11~20110321/drivers/Makefile +@@ -16,7 +16,10 @@ + #KBUILD_VERBOSE=1 + #export KBUILD_VERBOSE + +-KERNEL_DIR:=/lib/modules/$(shell uname -r)/build ++ifndef KERNEL_VER ++KERNEL_VER := $(shell uname -r) ++endif ++KERNEL_DIR ?= /lib/modules/$(KERNEL_VER)/build + SUBLEVEL:=$(shell echo $(KERNEL_DIR) | cut -d. -f3 | cut -d. -f1 | cut -d- -f1) + # slusb support ends at 2.6.24 + +@@ -43,40 +46,14 @@ + slusb-objs:= st7554.o + + ifndef KERNELRELEASE +-ifndef KERNEL_VER +- +-all install uninstall: kernel-ver +- $(MAKE) $@ KERNEL_VER=$(shell ./kernel-ver) + +-install: install-devices +-uninstall: remove-devices +- +-kernel-ver:: +- @echo "doing kernel-ver::" +- $(CC) -I$(KERNEL_DIR)/include -o $@ [email protected] ++default: all + + dep: + clean: +- $(RM) kernel-ver $(obj-m) $(obj-m:.o=.ko) *st7554.o amrmo_init.o sysdep_amr.o *.mod.* .*.cmd *~ slusb.* ++ $(RM) $(obj-m) $(obj-m:.o=.ko) *st7554.o amrmo_init.o sysdep_amr.o *.mod.* .*.cmd *~ slusb.* + $(RM) -r .tmp_versions + +-install-devices: +- mkdir -p ${DESTDIR}/dev +- $(foreach minor,0 1 2 3, \ +- mknod -m 600 ${DESTDIR}/dev/slamr$(minor) c 242 $(minor) ; ) echo -n +-ifneq ($(AGE), NEW) +- $(foreach minor,0 1 2 3, \ +- mknod -m 600 ${DESTDIR}/dev/slusb$(minor) c 243 $(minor) ; ) echo -n +-endif +- +-remove-devices: +- $(foreach minor,0 1 2 3, \ +- $(RM) ${DESTDIR}/dev/slamr$(minor) ; ) echo -n +- $(foreach minor,0 1 2 3, \ +- $(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n +- +-else +- + module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/extra + + all: +@@ -93,6 +70,13 @@ + install -D -m 644 slusb.ko $(module-dir)/slusb.ko + endif + /sbin/depmod -a ++ mkdir -p ${DESTDIR}/dev ++ $(foreach minor,0 1 2 3, \ ++ mknod -m 600 ${DESTDIR}/dev/slamr$(minor) c 242 $(minor) ; ) echo -n ++ifneq ($(AGE), NEW) ++ $(foreach minor,0 1 2 3, \ ++ mknod -m 600 ${DESTDIR}/dev/slusb$(minor) c 243 $(minor) ; ) echo -n ++endif + + uninstall: + ifeq ($(ARCH64), 0) +@@ -102,7 +86,10 @@ + $(RM) $(module-dir)/slamr.ko + $(RM) $(module-dir)/slusb.ko + /sbin/depmod -a +-endif ++ $(foreach minor,0 1 2 3, \ ++ $(RM) ${DESTDIR}/dev/slamr$(minor) ; ) echo -n ++ $(foreach minor,0 1 2 3, \ ++ $(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n + + endif + diff -Nru sl-modem-2.9.11~20110321/debian/patches/support_linux3.diff sl-modem-2.9.11~20110321/debian/patches/support_linux3.diff --- sl-modem-2.9.11~20110321/debian/patches/support_linux3.diff 2011-12-13 18:22:29.000000000 +0000 +++ sl-modem-2.9.11~20110321/debian/patches/support_linux3.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -Description: Support for linux 3.x series in build system -Author: أحمد المحمودي (Ahmed El-Mahmoudy) <[email protected]> -Bug-Debian: http://bugs.debian.org/641151 ---- a/drivers/Makefile -+++ b/drivers/Makefile -@@ -82,7 +82,7 @@ - $(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n - - else --ifeq ($(shell grep 'UTS.*"2\.6' $(KERNEL_DIR)/include/generated/utsrelease.h $(KERNEL_DIR)/include/linux/utsrelease.h $(KERNEL_DIR)/include/linux/version.h 2>/dev/null),) -+ifeq ($(shell grep 'UTS.*"\(2\.6\|3\)' $(KERNEL_DIR)/include/generated/utsrelease.h $(KERNEL_DIR)/include/linux/utsrelease.h $(KERNEL_DIR)/include/linux/version.h 2>/dev/null),) - - slusb-objs:= old_st7554.o - obj:=. diff -Nru sl-modem-2.9.11~20110321/debian/sl-modem-source.dkms sl-modem-2.9.11~20110321/debian/sl-modem-source.dkms --- sl-modem-2.9.11~20110321/debian/sl-modem-source.dkms 2011-12-13 18:22:29.000000000 +0000 +++ sl-modem-2.9.11~20110321/debian/sl-modem-source.dkms 2011-12-14 04:25:29.000000000 +0000 @@ -1,15 +1,17 @@ PACKAGE_NAME="sl-modem" PACKAGE_VERSION="#MODULE_VERSION#" CLEAN="make -C drivers clean; make -C ungrab-winmodem clean" -BUILT_MODULE_NAME[0]="slamr" +BUILT_MODULE_NAME[0]="slusb" BUILT_MODULE_LOCATION[0]="drivers" -MAKE[0]="cd ${dkms_tree}/sl-modem/#MODULE_VERSION#/build; make -C drivers USB=1 KERNEL_DIR=$kernel_source_dir KVERS=$kernelver; make -C ungrab-winmodem KERNEL_DIR=$kernel_source_dir KVERS=$kernelver; cd .." +MAKE[0]="cd ${dkms_tree}/sl-modem/#MODULE_VERSION#/build; make -C drivers KERNEL_DIR=$kernel_source_dir KERNEL_VER=$kernelver; make -C ungrab-winmodem KERNEL_DIR=$kernel_source_dir KERNEL_VER=$kernelver; cd .." DEST_MODULE_LOCATION[0]="/kernel/drivers/misc" BUILT_MODULE_NAME[1]="ungrab-winmodem" BUILT_MODULE_LOCATION[1]="ungrab-winmodem" #MAKE[1]="make -C ungrab-winmodem KERNEL_DIR=$kernel_source_dir KVERS=$kernelver" DEST_MODULE_LOCATION[1]="/kernel/drivers/misc" -BUILT_MODULE_NAME[2]="slusb" +if grep -q ^CONFIG_X86_32=y $kernel_source_dir/.config; then +BUILT_MODULE_NAME[2]="slamr" BUILT_MODULE_LOCATION[2]="drivers" DEST_MODULE_LOCATION[2]="/kernel/drivers/misc" +fi AUTOINSTALL="yes"
signature.asc
Description: This is a digitally signed message part

