Use meta-packages for debian kernels
This commit is contained in:
parent
f67f7d4ddd
commit
81a9574e70
15
.github/workflows/debian.yml
vendored
15
.github/workflows/debian.yml
vendored
|
@ -8,7 +8,7 @@ name: Debian
|
||||||
env:
|
env:
|
||||||
GPG_KEY_ID: 56C464BAAC421453
|
GPG_KEY_ID: 56C464BAAC421453
|
||||||
KERNEL_VERSION: 5.7.7
|
KERNEL_VERSION: 5.7.7
|
||||||
KDEB_PKGVERSION: 5.7.7-1
|
KERNEL_REVISION: 1
|
||||||
LOCALVERSION: -surface
|
LOCALVERSION: -surface
|
||||||
MAINLINE_REPO: git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
|
MAINLINE_REPO: git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
|
||||||
MAINLINE_BRANCH: cod/mainline
|
MAINLINE_BRANCH: cod/mainline
|
||||||
|
@ -71,6 +71,9 @@ jobs:
|
||||||
../ubuntu.config \
|
../ubuntu.config \
|
||||||
../../../../configs/surface-${KERNEL_VERSION%.*}.config
|
../../../../configs/surface-${KERNEL_VERSION%.*}.config
|
||||||
|
|
||||||
|
# set revision
|
||||||
|
echo "$KERNEL_REVISION" > .version
|
||||||
|
|
||||||
- name: Setup secureboot certificate
|
- name: Setup secureboot certificate
|
||||||
env:
|
env:
|
||||||
SB_KEY: ${{ secrets.SURFACE_SB_KEY }}
|
SB_KEY: ${{ secrets.SURFACE_SB_KEY }}
|
||||||
|
@ -83,15 +86,23 @@ jobs:
|
||||||
echo "$SB_KEY" | base64 -d > debian/kernel/linux/keys/MOK.key
|
echo "$SB_KEY" | base64 -d > debian/kernel/linux/keys/MOK.key
|
||||||
cp keys/surface.crt debian/kernel/linux/keys/MOK.crt
|
cp keys/surface.crt debian/kernel/linux/keys/MOK.crt
|
||||||
|
|
||||||
- name: Build
|
- name: Build kernel
|
||||||
run: |
|
run: |
|
||||||
cd pkg/debian/kernel/linux
|
cd pkg/debian/kernel/linux
|
||||||
make bindeb-pkg -j2
|
make bindeb-pkg -j2
|
||||||
|
|
||||||
|
- name: Build meta-package
|
||||||
|
run: |
|
||||||
|
cd pkg/debian/meta
|
||||||
|
./mkdebian.sh $(make -C ../kernel/linux -s kernelrelease) ${KERNEL_REVISION}
|
||||||
|
dpkg-buildpkg -b
|
||||||
|
|
||||||
- name: Prepare release
|
- name: Prepare release
|
||||||
run: |
|
run: |
|
||||||
mkdir release
|
mkdir release
|
||||||
|
rm pkg/debian/kernel/linux-libc-dev*.deb
|
||||||
mv pkg/debian/kernel/*.deb release
|
mv pkg/debian/kernel/*.deb release
|
||||||
|
mv pkg/debian/*.deb release
|
||||||
|
|
||||||
- name: Sign packages
|
- name: Sign packages
|
||||||
env:
|
env:
|
||||||
|
|
15
.github/workflows/debian_lts.yml
vendored
15
.github/workflows/debian_lts.yml
vendored
|
@ -8,7 +8,7 @@ name: Debian LTS
|
||||||
env:
|
env:
|
||||||
GPG_KEY_ID: 56C464BAAC421453
|
GPG_KEY_ID: 56C464BAAC421453
|
||||||
KERNEL_VERSION: 4.19.131
|
KERNEL_VERSION: 4.19.131
|
||||||
KDEB_PKGVERSION: 4.19.131-1
|
KERNEL_REVISION: 1
|
||||||
LOCALVERSION: -surface-lts
|
LOCALVERSION: -surface-lts
|
||||||
MAINLINE_REPO: git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
|
MAINLINE_REPO: git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
|
||||||
MAINLINE_BRANCH: cod/mainline
|
MAINLINE_BRANCH: cod/mainline
|
||||||
|
@ -71,6 +71,9 @@ jobs:
|
||||||
../ubuntu.config \
|
../ubuntu.config \
|
||||||
../../../../configs/surface-${KERNEL_VERSION%.*}.config
|
../../../../configs/surface-${KERNEL_VERSION%.*}.config
|
||||||
|
|
||||||
|
# set revision
|
||||||
|
echo "$KERNEL_REVISION" > .version
|
||||||
|
|
||||||
- name: Setup secureboot certificate
|
- name: Setup secureboot certificate
|
||||||
env:
|
env:
|
||||||
SB_KEY: ${{ secrets.SURFACE_SB_KEY }}
|
SB_KEY: ${{ secrets.SURFACE_SB_KEY }}
|
||||||
|
@ -83,15 +86,23 @@ jobs:
|
||||||
echo "$SB_KEY" | base64 -d > debian/kernel-lts/linux/keys/MOK.key
|
echo "$SB_KEY" | base64 -d > debian/kernel-lts/linux/keys/MOK.key
|
||||||
cp keys/surface.crt debian/kernel-lts/linux/keys/MOK.crt
|
cp keys/surface.crt debian/kernel-lts/linux/keys/MOK.crt
|
||||||
|
|
||||||
- name: Build
|
- name: Build kernel
|
||||||
run: |
|
run: |
|
||||||
cd pkg/debian/kernel-lts/linux
|
cd pkg/debian/kernel-lts/linux
|
||||||
make bindeb-pkg -j2
|
make bindeb-pkg -j2
|
||||||
|
|
||||||
|
- name: Build meta-package
|
||||||
|
run: |
|
||||||
|
cd pkg/debian/meta
|
||||||
|
./mkdebian.sh $(make -C ../kernel-lts/linux -s kernelrelease) ${KERNEL_REVISION}
|
||||||
|
dpkg-buildpkg -b
|
||||||
|
|
||||||
- name: Prepare release
|
- name: Prepare release
|
||||||
run: |
|
run: |
|
||||||
mkdir release
|
mkdir release
|
||||||
|
rm pkg/debian/kernel-lts/linux-libc-dev*.deb
|
||||||
mv pkg/debian/kernel-lts/*.deb release
|
mv pkg/debian/kernel-lts/*.deb release
|
||||||
|
mv pkg/debian/*.deb release
|
||||||
|
|
||||||
- name: Sign packages
|
- name: Sign packages
|
||||||
env:
|
env:
|
||||||
|
|
|
@ -1,83 +0,0 @@
|
||||||
From 8b2757ee31252c7a4fe1b3531397f76ce00e9ad6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sun, 19 Jan 2020 22:50:24 +0100
|
|
||||||
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.
|
|
||||||
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
---
|
|
||||||
scripts/package/builddeb | 7 ++++---
|
|
||||||
scripts/package/mkdebian | 13 +++++++++----
|
|
||||||
2 files changed, 13 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
|
|
||||||
index 0b31f4f1f92c..af25b9397c39 100755
|
|
||||||
--- a/scripts/package/builddeb
|
|
||||||
+++ b/scripts/package/builddeb
|
|
||||||
@@ -35,13 +35,14 @@ create_package() {
|
|
||||||
}
|
|
||||||
|
|
||||||
version=$KERNELRELEASE
|
|
||||||
+featureset=$(echo "$version" | sed -E 's/[0-9]+\.[0-9]+\.[0-9]+-(.*)/\1/')
|
|
||||||
tmpdir="$objtree/debian/tmp"
|
|
||||||
kernel_headers_dir="$objtree/debian/hdrtmp"
|
|
||||||
libc_headers_dir="$objtree/debian/headertmp"
|
|
||||||
dbg_dir="$objtree/debian/dbgtmp"
|
|
||||||
-packagename=linux-image-$version
|
|
||||||
-kernel_headers_packagename=linux-headers-$version
|
|
||||||
-libc_headers_packagename=linux-libc-dev
|
|
||||||
+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
|
|
||||||
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
|
|
||||||
index edcad61fe3cd..34f6bd2447b6 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
|
|
||||||
@@ -186,9 +189,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.25.0
|
|
||||||
|
|
|
@ -1,125 +0,0 @@
|
||||||
From 0ba6e3fc4c3b40a7a38dc835a5e6cfc143e2afd9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sun, 3 May 2020 16:55:14 +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.
|
|
||||||
|
|
||||||
Further, revert upstream change 9945722afdc3443eab826b2da1122509a13a50a5
|
|
||||||
as the Kconfig files dropped in this commit seem to be required by some
|
|
||||||
out-of-tree driver modules.
|
|
||||||
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
---
|
|
||||||
scripts/package/builddeb | 17 ++++++++++-------
|
|
||||||
scripts/package/mkdebian | 13 +++++++++----
|
|
||||||
2 files changed, 19 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
|
|
||||||
index 6df3c9f8b2da..48be1f95a413 100755
|
|
||||||
--- a/scripts/package/builddeb
|
|
||||||
+++ b/scripts/package/builddeb
|
|
||||||
@@ -53,8 +53,8 @@ deploy_kernel_headers () {
|
|
||||||
|
|
||||||
(
|
|
||||||
cd $srctree
|
|
||||||
- find . arch/$SRCARCH -maxdepth 1 -name Makefile\*
|
|
||||||
- find include scripts -type f -o -type l
|
|
||||||
+ find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl
|
|
||||||
+ find arch/*/include include scripts -type f -o -type l
|
|
||||||
find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform
|
|
||||||
find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f
|
|
||||||
) > debian/hdrsrcfiles
|
|
||||||
@@ -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 df1adbfb8ead..0a8ed2f98b6a 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.2
|
|
||||||
|
|
60
pkg/debian/meta/mkdebian.sh
Executable file
60
pkg/debian/meta/mkdebian.sh
Executable file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
kernelrelease="${1}"
|
||||||
|
pkgrevision="${2}"
|
||||||
|
|
||||||
|
distribution="unstable"
|
||||||
|
debarch="amd64"
|
||||||
|
debcompat="10"
|
||||||
|
sourcename="linux-surface"
|
||||||
|
maintainer="surfacebot <surfacebot@users.noreply.github.com>"
|
||||||
|
pkgversion="${kernelrelease}-${pkgrevision}"
|
||||||
|
|
||||||
|
image_pkgname="linux-image-surface"
|
||||||
|
image_pkgname_actual="linux-image-${kernelrelease}"
|
||||||
|
|
||||||
|
headers_pkgname="linux-headers-surface"
|
||||||
|
headers_pkgname_actual="linux-headers-${kernelrelease}"
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p "debian/source"
|
||||||
|
echo "1.0" > "debian/source/format"
|
||||||
|
echo "${debarch}" > "debian/arch"
|
||||||
|
echo "${debcompat}" > "debian/compat"
|
||||||
|
|
||||||
|
cat <<EOF > "debian/changelog"
|
||||||
|
${sourcename} (${pkgversion}) ${distribution}; urgency=medium
|
||||||
|
|
||||||
|
* Linux kernel for Microsoft Surface devices.
|
||||||
|
|
||||||
|
-- $maintainer $(date -R)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF > "debian/control"
|
||||||
|
Source: ${sourcename}
|
||||||
|
Section: kernel
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: ${maintainer}
|
||||||
|
Homepage: https://github.com/linux-surface/linux-surface
|
||||||
|
|
||||||
|
Package: ${image_pkgname}
|
||||||
|
Architecture: ${debarch}
|
||||||
|
Depends: ${image_pkgname_actual} (= ${pkgversion})
|
||||||
|
Description:
|
||||||
|
Meta-package for linux-surface kernel images.
|
||||||
|
|
||||||
|
Package: ${headers_pkgname}
|
||||||
|
Architecture: ${debarch}
|
||||||
|
Depends: ${headers_pkgname_actual} (= ${pkgversion})
|
||||||
|
Description:
|
||||||
|
Meta-package for linux-surface headers.
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF > "debian/rules"
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
export DH_VERBOSE = 1
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh \$@
|
||||||
|
EOF
|
||||||
|
chmod +x "debian/rules"
|
Loading…
Reference in a new issue