[PATCH 3/4] UBUNTU: Extend debian/d-i/ modules handling to make armel easier to support

Colin Watson cjwatson at ubuntu.com
Mon Nov 24 13:43:57 UTC 2008


Support files in debian/d-i/modules-$(arch)/ and
debian/d-i/modules-$(arch)-$(flavour)/, whose contents override those in
debian/d-i/modules/.

Support per-flavour module exclusions, listed in
debian/d-i/exclude-modules.$(arch)-$(flavour).

This makes it easier to support d-i modules for armel, which has some
variation between flavours and significant variation from other
architectures.

Signed-off-by: Colin Watson <cjwatson at canonical.com>
---
 debian/rules |   43 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/debian/rules b/debian/rules
index 47b37eb..f661442 100755
--- a/debian/rules
+++ b/debian/rules
@@ -88,6 +88,18 @@ debian/control: debian/control.stub
 	cp debian/d-i/package-list debian/d-i/kernel-versions .
 	touch modules/$(arch)/kernel-image
 
+	# Some files may need to differ between architectures
+	if [ -d debian/d-i/modules-$(arch) ]; then			\
+	    cp debian/d-i/modules-$(arch)/* modules/$(arch)/;		\
+	fi
+
+	# Remove unwanted stuff for this architecture
+	if [ -r "debian/d-i/exclude-modules.$(arch)" ]; then	\
+	    (cat debian/d-i/exclude-modules.$(arch);		\
+	     ls modules/$(arch)/) | sort | uniq -d |		\
+		(cd modules/$(arch)/; xargs rm -f);		\
+	fi
+
 	# Per flavour module lists
 	flavour_modules=`ls debian/d-i/modules.$(arch)-* 2>/dev/null`	\
 		|| true;						\
@@ -95,17 +107,36 @@ debian/control: debian/control.stub
 	    for flav in $$flavour_modules; do				\
 		name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`;	\
 		mkdir modules/$(arch)-$$name;				\
-		(cd debian/d-i/modules/; tar cf - `cat ../../../$$flav`) |\
+		(cd modules/; tar cf - `cat ../$$flav`) |		\
 		    (cd modules/$(arch)-$$name/; tar xf -);		\
 		touch modules/$(arch)-$$name/kernel-image;		\
 	    done;							\
 	fi
 
-	# Remove unwanted stuff
-	if [ -r "debian/d-i/exclude-modules.$(arch)" ]; then	\
-	    (cat debian/d-i/exclude-modules.$(arch);		\
-	     ls modules/$(arch)/) | sort | uniq -d |		\
-		(cd modules/$(arch)/; xargs rm -f);		\
+	# Some files may need to differ between flavours
+	flavour_module_dirs=`ls -d debian/d-i/modules-$(arch)-* 2>/dev/null`\
+		|| true;						\
+	if [ "$$flavour_module_dirs" ]; then				\
+	    for flav in $$flavour_module_dirs; do			\
+		name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`;	\
+		[ -d modules/$(arch)-$$name ] ||			\
+		    cp -a modules/$(arch) modules/$(arch)-$$name;	\
+		cp $$flav/* modules/$(arch)-$$name/;			\
+	    done;							\
+	fi
+
+	# Remove unwanted stuff for each flavour
+	flavour_exclude=`ls debian/d-i/exclude-modules.$(arch)-* 2>/dev/null`\
+		|| true;						\
+	if [ "$$flavour_exclude" ]; then				\
+	    for flav in $$flavour_exclude; do				\
+		name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\
+		[ -d modules/$(arch)-$$name ] ||			\
+		    cp -a modules/$(arch) modules/$(arch)-$$name;	\
+		(cat $$flav;						\
+		 ls modules/$(arch)-$$name) | sort | uniq -d |		\
+		    (cd modules/$(arch)-$$name/; xargs rm -f);		\
+	    done;							\
 	fi
 
 	if [ ! -d modules/$(build_arch) ]; then			\
-- 
1.5.6.3




More information about the kernel-team mailing list