[PATCH 2/3] UBUNTU: Add support for including firmware in udebs
Colin Watson
cjwatson at canonical.com
Tue Jun 9 15:44:04 UTC 2009
Add support for copying firmware files into udebs. This is essentially a
copy-and-paste job; sorry ...
Signed-off-by: Colin Watson <cjwatson at canonical.com>
---
debian/rules | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/debian/rules b/debian/rules
index 443babc..009fb32 100755
--- a/debian/rules
+++ b/debian/rules
@@ -81,10 +81,13 @@ debian/control.stub: debian/d-i/kernel-versions.in \
.PHONY: debian/control
debian/control: debian/control.stub
- rm -rf $(builddir)/modules $(builddir)/kernel-versions \
- $(builddir)/package-list $(builddir)/debian
+ rm -rf $(builddir)/modules $(builddir)/firmware \
+ $(builddir)/kernel-versions $(builddir)/package-list \
+ $(builddir)/debian
mkdir -p $(builddir)/modules/$(arch)/
cp debian/d-i/modules/* $(builddir)/modules/$(arch)/
+ mkdir -p $(builddir)/firmware/$(arch)/
+ cp debian/d-i/firmware/* $(builddir)/firmware/$(arch)/
cp debian/d-i/package-list debian/d-i/kernel-versions $(builddir)/
touch $(builddir)/modules/$(arch)/kernel-image
# kernel-wedge needs to poke around in debian/
@@ -95,6 +98,10 @@ debian/control: debian/control.stub
cp debian/d-i/modules-$(arch)/* \
$(builddir)/modules/$(arch)/; \
fi
+ if [ -d debian/d-i/firmware-$(arch) ]; then \
+ cp debian/d-i/firmware-$(arch)/* \
+ $(builddir)/firmware/$(arch)/; \
+ fi
# Remove unwanted stuff for this architecture
if [ -r "debian/d-i/exclude-modules.$(arch)" ]; then \
@@ -102,6 +109,11 @@ debian/control: debian/control.stub
ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \
(cd $(builddir)/modules/$(arch)/; xargs rm -f); \
fi
+ if [ -r "debian/d-i/exclude-firmware.$(arch)" ]; then \
+ (cat debian/d-i/exclude-firmware.$(arch); \
+ ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \
+ (cd $(builddir)/firmware/$(arch)/; xargs rm -f); \
+ fi
# Per flavour module lists
flavour_modules=`ls debian/d-i/modules.$(arch)-* 2>/dev/null` \
@@ -115,6 +127,17 @@ debian/control: debian/control.stub
touch $(builddir)/modules/$(arch)-$$name/kernel-image; \
done; \
fi
+ flavour_firmware=`ls debian/d-i/firmware.$(arch)-* 2>/dev/null` \
+ || true; \
+ if [ "$$flavour_firmware" != "" ]; then \
+ for flav in $$flavour_firmware; do \
+ name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \
+ mkdir $(builddir)/firmware/$(arch)-$$name; \
+ (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \
+ (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\
+ touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \
+ done; \
+ fi
# Some files may need to differ between flavours
flavour_module_dirs=`ls -d debian/d-i/modules-$(arch)-* 2>/dev/null`\
@@ -128,6 +151,17 @@ debian/control: debian/control.stub
cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \
done; \
fi
+ flavour_firmware_dirs=`ls -d debian/d-i/firmware-$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_firmware_dirs" ]; then \
+ for flav in $$flavour_firmware_dirs; do \
+ name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \
+ [ -d $(builddir)/firmware/$(arch)-$$name ] || \
+ cp -a $(builddir)/firmware/$(arch) \
+ firmware/$(arch)-$$name; \
+ cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \
+ done; \
+ fi
# Remove unwanted stuff for each flavour
flavour_exclude=`ls debian/d-i/exclude-modules.$(arch)-* 2>/dev/null`\
@@ -145,11 +179,31 @@ debian/control: debian/control.stub
xargs rm -f); \
done; \
fi
+ flavour_exclude=`ls debian/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_exclude" ]; then \
+ for flav in $$flavour_exclude; do \
+ name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\
+ [ -d $(builddir)/firmware/$(arch)-$$name ] || \
+ cp -a $(builddir)/firmware/$(arch) \
+ $(builddir)/firmware/$(arch)-$$name; \
+ (cat $$flav; \
+ ls $(builddir)/firmware/$(arch)-$$name) | \
+ sort | uniq -d | \
+ (cd $(builddir)/firmware/$(arch)-$$name/; \
+ xargs rm -f); \
+ done; \
+ fi
if [ ! -d $(builddir)/modules/$(build_arch) ]; then \
mkdir -p $(builddir)/modules/$(build_arch); \
cp $(builddir)/modules/$(arch)/* \
$(builddir)/modules/$(build_arch); \
fi
+ if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \
+ mkdir -p $(builddir)/firmware/$(build_arch); \
+ cp $(builddir)/firmware/$(arch)/* \
+ $(builddir)/firmware/$(build_arch); \
+ fi
cd $(builddir) && kernel-wedge gen-control > debian/control
--
1.6.3.1
More information about the kernel-team
mailing list