]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
UBUNTU: [Debian] d-i -- move to current kernel-wedge configuration form
authorAndy Whitcroft <apw@canonical.com>
Tue, 22 Mar 2016 10:51:30 +0000 (10:51 +0000)
committerTim Gardner <tim.gardner@canonical.com>
Mon, 20 Feb 2017 03:57:58 +0000 (20:57 -0700)
Signed-off-by: Andy Whitcroft <apw@canonical.com>
debian/rules
debian/rules.d/5-udebs.mk
debian/scripts/misc/kernel-wedge-arch.pl [new file with mode: 0755]

index 780d00059e650fb599f282cdf76c54f4fa5a3142..5dfe7eecb7ead1be17981329e91be9fc05fead5d 100755 (executable)
@@ -161,131 +161,10 @@ $(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in \
 
 .PHONY: debian/control
 debian/control: $(DEBIAN)/control.stub
-       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)/
-       ln -nsf $(CURDIR)/debian $(builddir)/debian
-
-       # Some files may need to differ between architectures
-       if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then                   \
-           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         \
-           (cat $(DEBIAN)/d-i/exclude-modules.$(arch);                 \
-            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`        \
-               || true;                                                \
-       if [ "$$flavour_modules" != "" ]; then                          \
-           for flav in $$flavour_modules; do                           \
-               name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`;    \
-               mkdir $(builddir)/modules/$(arch)-$$name;               \
-               (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) |   \
-                   (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \
-               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`\
-               || true;                                                \
-       if [ "$$flavour_module_dirs" ]; then                            \
-           for flav in $$flavour_module_dirs; do                       \
-               name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`;    \
-               [ -d $(builddir)/modules/$(arch)-$$name ] ||            \
-                   cp -a $(builddir)/modules/$(arch)                   \
-                       modules/$(arch)-$$name;                         \
-               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`\
-               || true;                                                \
-       if [ "$$flavour_exclude" ]; then                                \
-           for flav in $$flavour_exclude; do                           \
-               name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\
-               [ -d $(builddir)/modules/$(arch)-$$name ] ||            \
-                   cp -a $(builddir)/modules/$(arch)                   \
-                       $(builddir)/modules/$(arch)-$$name;             \
-               (cat $$flav;                                            \
-                ls $(builddir)/modules/$(arch)-$$name) |               \
-                sort | uniq -d |                                       \
-                   (cd $(builddir)/modules/$(arch)-$$name/;            \
-                    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
-
        echo "# placebo control.stub for kernel-wedge flow change" >debian/control.stub
        cp $(DEBIAN)/control.stub debian/control
-       cd $(builddir) && LANG=C kernel-wedge gen-control >> $(CURDIR)/debian/control
+       export KW_DEFCONFIG_DIR=$(DEBIAN)/d-i && \
+       export KW_CONFIG_DIR=$(DEBIAN)/d-i && \
+       LANG=C kernel-wedge gen-control | \
+               perl -f $(DROOT)/scripts/misc/kernel-wedge-arch.pl $(arch) \
+               >>$(CURDIR)/debian/control
index bb4f4524e1b86fa2e920da5c73ce370da27ddb99..90581525192e28c28fb424f5e599498a04031cfa 100644 (file)
@@ -14,7 +14,7 @@ do-binary-udebs: debian/control
        # unpack the kernels into a temporary directory
        mkdir -p debian/d-i-${arch}
 
-       imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | gawk '{print $$4}') && \
+       imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$4}') && \
        for i in $$imagelist; do \
          dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \
                debian/d-i-${arch}; \
@@ -26,11 +26,12 @@ do-binary-udebs: debian/control
        done
 
        # kernel-wedge will error if no modules unless this is touched
-       touch $(CURDIR)/debian/build/no-modules
+       touch $(DEBIAN)/d-i/no-modules
 
-       touch ignore-dups
+       touch $(CURDIR)/$(DEBIAN)/d-i/ignore-dups
+       export KW_DEFCONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
+       export KW_CONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
        export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
-         cd $(builddir) && \
          kernel-wedge install-files && \
          kernel-wedge check
 
diff --git a/debian/scripts/misc/kernel-wedge-arch.pl b/debian/scripts/misc/kernel-wedge-arch.pl
new file mode 100755 (executable)
index 0000000..4b4fefe
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+#
+# kernel-wedge-arch.pl -- select only specifiers for the supplied arch.
+#
+use strict;
+
+require Dpkg::Control;
+require Dpkg::Deps;
+
+my $fh = \*STDIN;
+
+my @entries;
+
+my $wanted = $ARGV[0];
+
+my $entry;
+while (!eof($fh)) {
+       $entry = Dpkg::Control->new();
+       $entry->parse($fh, '???');
+
+       if ($entry->{'Architecture'} eq $wanted) {
+               print("\n" . $entry);
+       }
+}
+
+close($fh);