diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index ceeb64613..06ba7a577 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -29,7 +29,7 @@ jobs: - name: Prepare kernel source run: | - cd pkg/debian + cd pkg/debian/kernel # get ubuntu build patches (for config) SOURCE_URL="https://kernel.ubuntu.com/~kernel-ppa/mainline/v$KERNEL_VERSION" @@ -60,13 +60,13 @@ jobs: done # apply surface patches - for PATCH in ../../../patches/${KERNEL_VERSION%.*}/*.patch; do + for PATCH in ../../../../patches/${KERNEL_VERSION%.*}/*.patch; do patch -p1 < ${PATCH} done - name: Configure run: | - cd pkg/debian/linux + cd pkg/debian/kernel/linux # merge configs ./scripts/kconfig/merge_config.sh \ @@ -74,7 +74,7 @@ jobs: debian.master/config/amd64/config.common.amd64 \ debian.master/config/amd64/config.flavour.generic \ ../ubuntu.config \ - ../../../configs/surface-${KERNEL_VERSION%.*}.config + ../../../../configs/surface-${KERNEL_VERSION%.*}.config - name: Setup secureboot certificate env: @@ -82,21 +82,21 @@ jobs: run: | cd pkg - mkdir -p debian/linux/keys + mkdir -p debian/kernel/linux/keys # unlock/copy key and certificate - echo "$SB_KEY" | base64 -d > debian/linux/keys/MOK.key - cp keys/surface.crt debian/linux/keys/MOK.crt + echo "$SB_KEY" | base64 -d > debian/kernel/linux/keys/MOK.key + cp keys/surface.crt debian/kernel/linux/keys/MOK.crt - name: Build run: | - cd pkg/debian/linux + cd pkg/debian/kernel/linux make bindeb-pkg -j2 - name: Prepare release run: | mkdir release - mv pkg/debian/*.deb release + mv pkg/debian/kernel/*.deb release - name: Sign packages env: diff --git a/.github/workflows/debian_lts.yml b/.github/workflows/debian_lts.yml index 7225ccc4e..e6af38ca6 100644 --- a/.github/workflows/debian_lts.yml +++ b/.github/workflows/debian_lts.yml @@ -29,7 +29,7 @@ jobs: - name: Prepare kernel source run: | - cd pkg/debian + cd pkg/debian/kernel-lts # get ubuntu build patches (for config) SOURCE_URL="https://kernel.ubuntu.com/~kernel-ppa/mainline/v$KERNEL_VERSION" @@ -60,13 +60,13 @@ jobs: done # apply surface patches - for PATCH in ../../../patches/${KERNEL_VERSION%.*}/*.patch; do + for PATCH in ../../../../patches/${KERNEL_VERSION%.*}/*.patch; do patch -p1 < ${PATCH} done - name: Configure run: | - cd pkg/debian/linux + cd pkg/debian/kernel-lts/linux # merge configs ./scripts/kconfig/merge_config.sh \ @@ -74,7 +74,7 @@ jobs: debian.master/config/amd64/config.common.amd64 \ debian.master/config/amd64/config.flavour.generic \ ../ubuntu.config \ - ../../../configs/surface-${KERNEL_VERSION%.*}.config + ../../../../configs/surface-${KERNEL_VERSION%.*}.config - name: Setup secureboot certificate env: @@ -82,21 +82,21 @@ jobs: run: | cd pkg - mkdir -p debian/linux/keys + mkdir -p debian/kernel-lts/linux/keys # unlock/copy key and certificate - echo "$SB_KEY" | base64 -d > debian/linux/keys/MOK.key - cp keys/surface.crt debian/linux/keys/MOK.crt + echo "$SB_KEY" | base64 -d > debian/kernel-lts/linux/keys/MOK.key + cp keys/surface.crt debian/kernel-lts/linux/keys/MOK.crt - name: Build run: | - cd pkg/debian/linux + cd pkg/debian/kernel-lts/linux make bindeb-pkg -j2 - name: Prepare release run: | mkdir release - mv pkg/debian/*.deb release + mv pkg/debian/kernel-lts/*.deb release - name: Sign packages env: diff --git a/pkg/debian/0001-Add-secureboot-pre-signing-to-the-kernel.patch b/pkg/debian/0001-Add-secureboot-pre-signing-to-the-kernel.patch deleted file mode 120000 index 7d1a09948..000000000 --- a/pkg/debian/0001-Add-secureboot-pre-signing-to-the-kernel.patch +++ /dev/null @@ -1 +0,0 @@ -../fedora/kernel-surface/0001-Add-secureboot-pre-signing-to-the-kernel.patch \ No newline at end of file diff --git a/pkg/debian/kernel-lts/0001-Add-secureboot-pre-signing-to-the-kernel.patch b/pkg/debian/kernel-lts/0001-Add-secureboot-pre-signing-to-the-kernel.patch new file mode 120000 index 000000000..26c95bad7 --- /dev/null +++ b/pkg/debian/kernel-lts/0001-Add-secureboot-pre-signing-to-the-kernel.patch @@ -0,0 +1 @@ +../../fedora/kernel-surface/0001-Add-secureboot-pre-signing-to-the-kernel.patch \ No newline at end of file diff --git a/pkg/debian/0002-Version-changes-for-linux-surface-debian-package.patch b/pkg/debian/kernel-lts/0002-Version-changes-for-linux-surface-debian-package.patch similarity index 100% rename from pkg/debian/0002-Version-changes-for-linux-surface-debian-package.patch rename to pkg/debian/kernel-lts/0002-Version-changes-for-linux-surface-debian-package.patch diff --git a/pkg/debian/kernel-lts/ubuntu.config b/pkg/debian/kernel-lts/ubuntu.config new file mode 120000 index 000000000..784f2f552 --- /dev/null +++ b/pkg/debian/kernel-lts/ubuntu.config @@ -0,0 +1 @@ +../kernel/ubuntu.config \ No newline at end of file diff --git a/pkg/debian/kernel/0001-Add-secureboot-pre-signing-to-the-kernel.patch b/pkg/debian/kernel/0001-Add-secureboot-pre-signing-to-the-kernel.patch new file mode 120000 index 000000000..26c95bad7 --- /dev/null +++ b/pkg/debian/kernel/0001-Add-secureboot-pre-signing-to-the-kernel.patch @@ -0,0 +1 @@ +../../fedora/kernel-surface/0001-Add-secureboot-pre-signing-to-the-kernel.patch \ No newline at end of file diff --git a/pkg/debian/kernel/0002-Version-changes-for-linux-surface-debian-package.patch b/pkg/debian/kernel/0002-Version-changes-for-linux-surface-debian-package.patch new file mode 100644 index 000000000..5488f1627 --- /dev/null +++ b/pkg/debian/kernel/0002-Version-changes-for-linux-surface-debian-package.patch @@ -0,0 +1,108 @@ +From cafe01ae116792598633633f255893e768886422 Mon Sep 17 00:00:00 2001 +From: Maximilian Luz +Date: Fri, 3 Apr 2020 01:16:39 +0200 +Subject: [PATCH] Version changes for linux-surface debian package + +Rename debian kernel packages so that they do not contain the full version +in the name any more as this allows automated updates via a package +repository. Instead the package name now only contains the $LOCALVERSION +string. + +Also rename libc-dev to allow multiple versions to co-exist in the same +repository. +--- + scripts/package/builddeb | 13 ++++++++----- + scripts/package/mkdebian | 13 +++++++++---- + 2 files changed, 17 insertions(+), 9 deletions(-) + +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 6df3c9f8b2da..156a44f951f0 100755 +--- a/scripts/package/builddeb ++++ b/scripts/package/builddeb +@@ -71,7 +71,7 @@ deploy_kernel_headers () { + fi + } > debian/hdrobjfiles + +- destdir=$pdir/usr/src/linux-headers-$version ++ destdir=$pdir/usr/src/$kernel_headers_packagename + mkdir -p $destdir + tar -c -f - -C $srctree -T debian/hdrsrcfiles | tar -xf - -C $destdir + tar -c -f - -T debian/hdrobjfiles | tar -xf - -C $destdir +@@ -81,7 +81,7 @@ deploy_kernel_headers () { + cp $KCONFIG_CONFIG $destdir/.config + + mkdir -p $pdir/lib/modules/$version/ +- ln -s /usr/src/linux-headers-$version $pdir/lib/modules/$version/build ++ ln -s /usr/src/$kernel_headers_packagename $pdir/lib/modules/$version/build + } + + deploy_libc_headers () { +@@ -100,9 +100,12 @@ deploy_libc_headers () { + } + + version=$KERNELRELEASE ++featureset=$(echo "$version" | sed -E 's/[0-9]+\.[0-9]+\.[0-9]+-(.*)/\1/') + tmpdir=debian/linux-image + dbg_dir=debian/linux-image-dbg +-packagename=linux-image-$version ++packagename=linux-image-$featureset ++kernel_headers_packagename=linux-headers-$featureset ++libc_headers_packagename=linux-libc-dev-$featureset + dbg_packagename=$packagename-dbg + + if [ "$ARCH" = "um" ] ; then +@@ -203,10 +206,10 @@ done + + if [ "$ARCH" != "um" ]; then + deploy_kernel_headers debian/linux-headers +- create_package linux-headers-$version debian/linux-headers ++ create_package $kernel_headers_packagename debian/linux-headers + + deploy_libc_headers debian/linux-libc-dev +- create_package linux-libc-dev debian/linux-libc-dev ++ create_package $libc_headers_packagename debian/linux-libc-dev + fi + + create_package "$packagename" "$tmpdir" +diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian +index 357dc56bcf30..4a3c570be220 100755 +--- a/scripts/package/mkdebian ++++ b/scripts/package/mkdebian +@@ -86,6 +86,8 @@ set_debarch() { + + # Some variables and settings used throughout the script + version=$KERNELRELEASE ++featureset=$(echo "$version" | sed -E 's/[0-9]+\.[0-9]+\.[0-9]+-(.*)/\1/') ++shortversion=$(echo "$version" | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+)-.*/\1/') + if [ -n "$KDEB_PKGVERSION" ]; then + packageversion=$KDEB_PKGVERSION + revision=${packageversion##*-} +@@ -94,8 +96,9 @@ else + packageversion=$version-$revision + fi + sourcename=$KDEB_SOURCENAME +-packagename=linux-image-$version +-kernel_headers_packagename=linux-headers-$version ++packagename=linux-image-$featureset ++kernel_headers_packagename=linux-headers-$featureset ++libc_headers_packagename=linux-libc-dev-$featureset + dbg_packagename=$packagename-dbg + debarch= + set_debarch +@@ -190,9 +193,11 @@ Description: Linux kernel headers for $version on $debarch + . + This is useful for people who need to build external modules + +-Package: linux-libc-dev ++Package: $libc_headers_packagename + Section: devel +-Provides: linux-kernel-headers ++Provides: linux-kernel-headers, linux-libc-dev (= $shortversion) ++Conflicts: linux-libc-dev ++Replaces: linux-libc-dev + Architecture: $debarch + Description: Linux support headers for userspace development + This package provides userspaces headers from the Linux kernel. These headers +-- +2.26.0 + diff --git a/pkg/debian/ubuntu.config b/pkg/debian/kernel/ubuntu.config similarity index 100% rename from pkg/debian/ubuntu.config rename to pkg/debian/kernel/ubuntu.config