[PATCH] UBUNTU: snapcraft.yaml: various improvements

Paolo Pisati paolo.pisati at canonical.com
Tue Aug 1 09:27:11 UTC 2017


BugLink: http://bugs.launchpad.net/bugs/1700577

Update the snapcraft.yaml we ship in Xenial to exploit some of the new feature
present in snapcraft's 3.21.

Among the improvements:

1) include the linux-firmware / raspberry-firmware-wireless package in the final
snap
2) rename it to pi2-kernel to match the snaps we have in the store
3) dynamic versioning
4) autogenerated config from debian.$DEBIAN/config/*
5) automatic download of raspberry-firmware-wireless from ppa:~snappy-dev

This brings the pi2 kernel in line with generic/pc-kernel and
snapdragon/snapdragon-kernel.

The resulting kernel is identical to the one we push to the store, but can be
fully built locally. Tested manually by comparing the two snaps (local generated
and the one we have in the store) and by building an edge image from scratch.

Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
---
 snapcraft.yaml | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)

diff --git a/snapcraft.yaml b/snapcraft.yaml
index 9eb3f40..86c10c1 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -1,10 +1,10 @@
-name: pc-kernel
+name: pi2-kernel
 version: null
 version-script: |
     . debian/debian.env
     dpkg-parsechangelog -l $DEBIAN/changelog -S version
-summary: The Ubuntu generic Linux kernel
-description: This Ubuntu generic Linux kernel
+summary: The Canonical raspi2 Linux kernel
+description: The Canonical raspi2 Linux kernel
 grade: stable
 confinement: strict
 type: kernel
@@ -14,9 +14,13 @@ parts:
     plugin: kernel
     source: .
     source-type: git
-    kconfigflavour: generic
+    kconfigflavour: raspi2
     kconfigs:
       - CONFIG_DEBUG_INFO=n
+    kernel-image-target: zImage
+    install: |
+      tar -C $SNAPCRAFT_PART_INSTALL/dtbs -f $SNAPCRAFT_PART_INSTALL/dtbs/overlays.tgz -czv overlays
+      rm -rf $SNAPCRAFT_PART_INSTALL/dtbs/overlays
   firmware:
     plugin: nil
     stage-packages:
@@ -26,6 +30,28 @@ parts:
     prime:
       - -usr
       - -lib
+    install: |
+      rm $SNAPCRAFT_PART_INSTALL/lib/firmware/brcm/brcmfmac43430-sdio.bin
     build-packages:
       - cpio
       - libssl-dev
+  raspiwififw:
+    plugin: nil
+    source: .
+    after:
+      - firmware
+    prepare: |
+      PKGS="http://ppa.launchpad.net/snappy-dev/image/ubuntu/dists/xenial/main/binary-armhf/Packages.gz"
+      PKGPATH="$(wget -q -O- $PKGS|zcat|grep-dctrl raspberrypi-wireless-firmware |\
+        grep Filename|tail -1| sed 's/^Filename: //')"
+      wget http://ppa.launchpad.net/snappy-dev/image/ubuntu/$PKGPATH
+      dpkg -x $(basename $PKGPATH) unpack/
+    install: |
+      mkdir -p $SNAPCRAFT_PART_INSTALL/firmware/brcm
+      mv unpack/usr/share/doc/raspberrypi-wireless-firmware $SNAPCRAFT_PART_INSTALL/firmware/rpi-wlanfw-licenses
+      mv unpack/lib/firmware/brcm80211/brcm/* $SNAPCRAFT_PART_INSTALL/firmware/brcm
+    build-packages:
+      - coreutils
+      - dctrl-tools
+      - sed
+      - wget
-- 
2.7.4





More information about the kernel-team mailing list