[PATCH 2/3] UBUNTU: Add support for including firmware in udebs

Andy Whitcroft apw at canonical.com
Thu Jun 11 12:52:56 UTC 2009


On Tue, Jun 09, 2009 at 04:44:04PM +0100, Colin Watson wrote:
> Add support for copying firmware files into udebs. This is essentially a
> copy-and-paste job; sorry ...

Heh yeah it is, but it all looks in order.

-apw

> 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
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team




More information about the kernel-team mailing list