|
1 | 1 | #!/bin/bash |
2 | 2 | set -eu -o pipefail |
3 | 3 |
|
4 | | -# Define flavors to build |
5 | | -FLAVORS=("cloud" "bare-metal") |
| 4 | +FLAVOR="cloud" |
| 5 | +KERNEL_CONFIG_FILE="config.amd64_none_cloud-amd64.xz" |
| 6 | +FLAVOR_BUILDDIR="$BUILDDIR/linux-kernel-$KERNEL_VERSION-$FLAVOR" |
6 | 7 |
|
7 | | -for FLAVOR in "${FLAVORS[@]}"; do |
8 | | - echo "Building kernel flavor: $FLAVOR" |
| 8 | +mkdir -p "$FLAVOR_BUILDDIR" |
9 | 9 |
|
10 | | - if [[ "$FLAVOR" == "cloud" ]]; then |
11 | | - KERNEL_CONFIG_FILE="config.amd64_none_cloud-amd64.xz" |
12 | | - else |
13 | | - KERNEL_CONFIG_FILE="config.amd64_none_amd64.xz" |
14 | | - fi |
| 10 | +tar xaf "/usr/src/linux-source-${KERNEL_VERSION}.tar.xz" -C /tmp |
| 11 | +SOURCE_DIR="/tmp/linux-source-${KERNEL_VERSION}" |
15 | 12 |
|
16 | | - FLAVOR_BUILDDIR="$BUILDDIR/linux-kernel-$KERNEL_VERSION-$FLAVOR" |
17 | | - mkdir -p "$FLAVOR_BUILDDIR" |
| 13 | +cd "$SOURCE_DIR" |
18 | 14 |
|
19 | | - tar xaf "/usr/src/linux-source-${KERNEL_VERSION}.tar.xz" -C /tmp |
20 | | - SOURCE_DIR="/tmp/linux-source-${KERNEL_VERSION}" |
21 | | - |
22 | | - cd "$SOURCE_DIR" |
| 15 | +# 1. Apply base/common patches |
| 16 | +# These are patches located in mkosi.images/base/kernel/patches/<version>/ |
| 17 | +find "$SRCDIR/mkosi.images/base/kernel/patches/$KERNEL_VERSION" -maxdepth 1 -type f -name "*.patch" 2>/dev/null || true | sort | while read patch; do |
| 18 | + echo "Applying base patch: $patch" |
| 19 | + patch -p1 < "$patch" |
| 20 | +done |
23 | 21 |
|
24 | | - # 1. Apply base/common patches |
25 | | - # These are patches located in mkosi.images/base/kernel/patches/<version>/ |
26 | | - find "$SRCDIR/mkosi.images/base/kernel/patches/$KERNEL_VERSION" -maxdepth 1 -type f -name "*.patch" 2>/dev/null || true | sort | while read patch; do |
27 | | - echo "Applying base patch: $patch" |
28 | | - patch -p1 < "$patch" |
29 | | - done |
| 22 | +# 2. Apply flavor-specific patches from ALL images |
| 23 | +# Looks for patches in: mkosi.images/*/kernel/patches/<version>/<flavor>/ |
| 24 | +find "$SRCDIR/mkosi.images" -path "*/kernel/patches/$KERNEL_VERSION/$FLAVOR/*.patch" 2>/dev/null || true | sort | while read patch; do |
| 25 | + echo "Applying $FLAVOR patch: $patch" |
| 26 | + patch -p1 < "$patch" |
| 27 | +done |
30 | 28 |
|
31 | | - # 2. Apply flavor-specific patches from ALL images |
32 | | - # Looks for patches in: mkosi.images/*/kernel/patches/<version>/<flavor>/ |
33 | | - find "$SRCDIR/mkosi.images" -path "*/kernel/patches/$KERNEL_VERSION/$FLAVOR/*.patch" 2>/dev/null || true | sort | while read patch; do |
34 | | - echo "Applying $FLAVOR patch: $patch" |
35 | | - patch -p1 < "$patch" |
36 | | - done |
| 29 | +echo "Using kernel config file: $KERNEL_CONFIG_FILE" |
37 | 30 |
|
38 | | - echo "Using kernel config file: $KERNEL_CONFIG_FILE" |
| 31 | +unxz "/usr/src/linux-config-${KERNEL_VERSION}/$KERNEL_CONFIG_FILE" -c > /tmp/kernel.config |
| 32 | +./scripts/kconfig/merge_config.sh -O "$FLAVOR_BUILDDIR" /tmp/kernel.config "$SRCDIR/mkosi.images/base/kernel/configs/"* |
| 33 | +rm /tmp/kernel.config |
39 | 34 |
|
40 | | - unxz "/usr/src/linux-config-${KERNEL_VERSION}/$KERNEL_CONFIG_FILE" -c > /tmp/kernel.config |
41 | | - ./scripts/kconfig/merge_config.sh -O "$FLAVOR_BUILDDIR" /tmp/kernel.config "$SRCDIR/mkosi.images/base/kernel/configs/"* |
42 | | - rm /tmp/kernel.config |
| 35 | +export DEB_BUILD_PROFILES='nodoc noudeb pkg.linux.nosource pkg.linux.notools pkg.linux.nokerneldbg pkg.linux.nokerneldbginfo pkg.linux.nometa' |
| 36 | +export MAKEFLAGS=-j$(nproc) |
| 37 | +export KBUILD_BUILD_TIMESTAMP="Fri Jun 5 15:58:00 CEST 1971" |
| 38 | +export KBUILD_BUILD_HOST="mkosi" |
| 39 | +export KBUILD_BUILD_USER="mkosi" |
| 40 | +export LOCALVERSION="${LOCALVERSION:-}-mkosi-$FLAVOR" |
| 41 | +rm -f "$FLAVOR_BUILDDIR/.version" |
43 | 42 |
|
44 | | - export DEB_BUILD_PROFILES='nodoc noudeb pkg.linux.nosource pkg.linux.notools pkg.linux.nokerneldbg pkg.linux.nokerneldbginfo pkg.linux.nometa' |
45 | | - export MAKEFLAGS=-j$(nproc) |
46 | | - export KBUILD_BUILD_TIMESTAMP="Fri Jun 5 15:58:00 CEST 1971" |
47 | | - export KBUILD_BUILD_HOST="mkosi" |
48 | | - export KBUILD_BUILD_USER="mkosi" |
49 | | - export LOCALVERSION="${LOCALVERSION:-}-mkosi-$FLAVOR" |
50 | | - rm -f "$FLAVOR_BUILDDIR/.version" |
| 43 | +make O="$FLAVOR_BUILDDIR" olddefconfig |
| 44 | +make O="$FLAVOR_BUILDDIR" bindeb-pkg |
51 | 45 |
|
52 | | - make O="$FLAVOR_BUILDDIR" olddefconfig |
53 | | - make O="$FLAVOR_BUILDDIR" bindeb-pkg |
| 46 | +find "$FLAVOR_BUILDDIR/.." -type f -name "linux-image-${KERNEL_VERSION}*.deb" -exec cp {} "$PACKAGEDIR/" \; |
54 | 47 |
|
55 | | - find "$FLAVOR_BUILDDIR/.." -type f -name "linux-image-${KERNEL_VERSION}*.deb" -exec cp {} "$PACKAGEDIR/" \; |
| 48 | +rm -rf "$FLAVOR_BUILDDIR/.."/*.buildinfo "$FLAVOR_BUILDDIR/.."/*.deb "$FLAVOR_BUILDDIR/.."/*.changes |
| 49 | +unset LOCALVERSION |
56 | 50 |
|
57 | | - rm -rf "$FLAVOR_BUILDDIR/.."/*.buildinfo "$FLAVOR_BUILDDIR/.."/*.deb "$FLAVOR_BUILDDIR/.."/*.changes |
58 | | - unset LOCALVERSION |
59 | | -done |
60 | 51 | #KDEB_PKGVERSION=someversion |
0 commit comments