From 2cc63a8e7195a9e337257cc0f6e9a4bec96cf374 Mon Sep 17 00:00:00 2001 From: syui Date: Thu, 19 Mar 2026 05:29:07 +0900 Subject: [PATCH] fix kernel version: patch before sed, fix scp glob --- .gitignore | 3 +- cfg/repo.sh | 112 +- pkg/linux-aios/PKGBUILD | 249 - pkg/linux-aios/aios.patch | 101 + pkg/linux-aios/config.x86_64 | 12624 --------------------------------- 5 files changed, 183 insertions(+), 12906 deletions(-) delete mode 100644 pkg/linux-aios/PKGBUILD create mode 100644 pkg/linux-aios/aios.patch delete mode 100644 pkg/linux-aios/config.x86_64 diff --git a/.gitignore b/.gitignore index 591b7bd..177059b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ /.config/ai /claude.md /CLAUDE.md +.claude **.DS_Store aios-bootstrap*.tar.gz root.x86_64/ archiso/ build.log -.claude /.env +/repos diff --git a/cfg/repo.sh b/cfg/repo.sh index 6d829b0..a4c1a7f 100755 --- a/cfg/repo.sh +++ b/cfg/repo.sh @@ -4,12 +4,14 @@ set -e d=${0:a:h:h} source $d/.env -BUILD_KERNEL=false -[[ "$1" == "--kernel" ]] && BUILD_KERNEL=true +function repo-env() { + REPO_NAME="aios" + GPG_KEY="$GPG_KEY" +} -# --- Build packages on HOST (aiosc) --- -echo "=== Building packages on $HOST ===" -ssh "$HOST" zsh -s -- "$GPG_KEY" <<'REMOTE' +function repo-pkg-build() { + echo "=== Building packages on $HOST ===" + ssh "$HOST" zsh -s -- "$GPG_KEY" <<'REMOTE' set -e setopt nonomatch 2>/dev/null || true GPG_KEY="$1" @@ -56,38 +58,62 @@ done rm -rf "$WORK" echo "=== Packages built ===" REMOTE +} -# --- Build kernel on HOST_KERNEL (arch) if requested --- -if [[ "$BUILD_KERNEL" == "true" ]]; then - echo "=== Building linux-aios on $HOST_KERNEL ===" - KERNEL_WORK="\${HOME}/aios-kernel" - - ssh "$HOST_KERNEL" zsh -s <<'KERNEL_REMOTE' +function repo-kernel-patch() { + echo "=== Patching linux-aios on $HOST_KERNEL ===" + ssh "$HOST_KERNEL" zsh -s <<'REMOTE' set -e +REPOS="${HOME}/repos" WORK="${HOME}/aios-kernel" -rm -rf "$WORK" -mkdir -p "$WORK" -cd "$WORK" -git clone --depth 1 https://git.syui.ai/ai/os.git -cp -r "$WORK/os/pkg/linux-aios" "$WORK/linux-aios" -cd "$WORK/linux-aios" -makepkg -sf --noconfirm --skippgpcheck -echo "=== Kernel built ===" -KERNEL_REMOTE - # Transfer kernel packages: HOST_KERNEL -> local -> HOST - echo "=== Transferring kernel packages ===" - tmpdir=$(mktemp -d) - scp "$HOST_KERNEL":~/aios-kernel/linux-aios/linux-aios-*.pkg.tar.zst "$tmpdir/" - scp "$tmpdir"/linux-aios-*.pkg.tar.zst "$HOST":~/ai/repo/x86_64/ - rm -rf "$tmpdir" - - ssh "$HOST_KERNEL" "rm -rf ~/aios-kernel" +mkdir -p "$REPOS" +if [ -d "$REPOS/archlinux" ]; then + cd "$REPOS/archlinux" + git pull +else + git clone --depth 1 https://gitlab.archlinux.org/archlinux/packaging/packages/linux.git "$REPOS/archlinux" fi -# --- Update repo database on HOST --- -echo "=== Updating repo database ===" -ssh "$HOST" zsh -s -- "$GPG_KEY" <<'REPO_REMOTE' +rm -rf "$WORK" +mkdir -p "$WORK/linux-aios" +cp "$REPOS/archlinux/PKGBUILD" "$WORK/linux-aios/" +cp "$REPOS/archlinux/config.x86_64" "$WORK/linux-aios/" + +cd "$WORK" +git clone --depth 1 https://git.syui.ai/ai/os.git +cd "$WORK/linux-aios" +patch -p1 < "$WORK/os/pkg/linux-aios/aios.patch" + +echo "=== Patch result ===" +head -5 PKGBUILD +echo "--- prepare() version setting ---" +grep -A5 "^ done$" PKGBUILD | head -8 +REMOTE +} + +function repo-kernel-build() { + echo "=== Building linux-aios on $HOST_KERNEL ===" + ssh "$HOST_KERNEL" zsh -s <<'REMOTE' +set -e +cd "${HOME}/aios-kernel/linux-aios" +makepkg -sf --noconfirm --skippgpcheck +echo "=== Kernel built ===" +REMOTE +} + +function repo-kernel-transfer() { + echo "=== Transferring kernel packages ===" + tmpdir=$(mktemp -d) + ssh "$HOST_KERNEL" "ls ~/aios-kernel/linux-aios/linux-aios-*.pkg.tar.zst" | while read f; do scp "${HOST_KERNEL}:$f" "$tmpdir/"; done + scp "$tmpdir"/linux-aios-*.pkg.tar.zst "$HOST":~/ai/repo/x86_64/ + rm -rf "$tmpdir" + ssh "$HOST_KERNEL" "rm -rf ~/aios-kernel" +} + +function repo-db-update() { + echo "=== Updating repo database ===" + ssh "$HOST" zsh -s -- "$GPG_KEY" <<'REMOTE' set -e setopt nonomatch 2>/dev/null || true GPG_KEY="$1" @@ -114,4 +140,26 @@ git commit -m "update $(date +%Y.%m.%d)" || true git push echo "=== Done ===" -REPO_REMOTE +REMOTE +} + +repo-env +case "$1" in + pkg) + repo-pkg-build + repo-db-update + ;; + kernel) + repo-kernel-patch + repo-kernel-build + repo-kernel-transfer + repo-db-update + ;; + kernel-test) + repo-kernel-patch + ;; + *) + repo-pkg-build + repo-db-update + ;; +esac diff --git a/pkg/linux-aios/PKGBUILD b/pkg/linux-aios/PKGBUILD deleted file mode 100644 index 73c1cb1..0000000 --- a/pkg/linux-aios/PKGBUILD +++ /dev/null @@ -1,249 +0,0 @@ -# Maintainer: syui -# Based on: Arch Linux linux package by Jan Alexander Steffens (heftig) - -pkgbase=linux-aios -pkgver=6.19.8.arch1 -pkgrel=1 -pkgdesc='Linux (aios)' -url='https://github.com/archlinux/linux' -arch=( - x86_64 -) -license=(GPL-2.0-only) -makedepends=( - bc - cpio - gettext - libelf - pahole - perl - python - rust - rust-bindgen - rust-src - tar - xz - -) -options=( - !debug - !strip -) -_srcname=linux-${pkgver%.*} -_srctag=v${pkgver%.*}-${pkgver##*.} -source=( - https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign} - $url/releases/download/$_srctag/linux-$_srctag.patch.zst{,.sig} -) -source_x86_64=(config.x86_64) -validpgpkeys=( - ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds - 647F28654894E3BD457199BE38DBBDC86092693E # Greg Kroah-Hartman - 83BC8889351B5DEBBB68416EB8AC08600F108CDF # Jan Alexander Steffens (heftig) -) -b2sums=('1bb4591dd0adb2472f31adbaaa5eae03743edf6e7a970173afb1ea1c659677102832d69e6ce692deee9ee757b36cba3d63b116a5eee81a7e5226462c40ae5ca0' - 'SKIP' - '7e6a8cbbb3e9c9d9544f87f490534e68f2a7a7714d857649bc4c6ec60c024e5488641fedee664f7eb8e1cb743c738834fdf665b2660477bf223ca8273c2f38a4' - 'SKIP') -b2sums_x86_64=('900786808bcfb20403ebc49d0dfa7793f5975288238258c3edeff1d1fc293a404844f26e56d7afbb3a14a504ce9fa9c939d444431de67017a612b7b99bb2fa4e') - -# https://www.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc -sha256sums=('aada4722db8bcfa0b9732851856d405082b6a4fa2e3ab067be8db17cdd115b38' - 'SKIP' - '4d02c253bc7f02101942d073b3b855c2a7f965db442ffb375c6259dddca240a4' - 'SKIP') - -export KBUILD_BUILD_HOST=archlinux -export KBUILD_BUILD_USER=$pkgbase -export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" - -prepare() { - cd $_srcname - sed -i "s/^EXTRAVERSION = .*/EXTRAVERSION =/" Makefile - - echo "Setting version..." - echo "" > localversion.10-pkgrel - echo "-aios" > localversion.20-pkgname - - local src - for src in "${source[@]}"; do - src="${src%%::*}" - src="${src##*/}" - src="${src%.zst}" - [[ $src = *.patch ]] || continue - echo "Applying patch $src..." - patch -Np1 < "../$src" - done - - echo "Setting config..." - cp ../config.$CARCH .config - make olddefconfig - diff -u ../config.$CARCH .config || : - - make -s kernelrelease > version - echo "Prepared $pkgbase version $( ++# Maintainer: syui ++# Based on: Arch Linux linux package by Jan Alexander Steffens (heftig) + +-pkgbase=linux ++pkgbase=linux-aios + pkgver=6.19.8.arch1 + pkgrel=1 +-pkgdesc='Linux' ++pkgdesc='Linux (aios)' + url='https://github.com/archlinux/linux' + arch=( + x86_64 +@@ -23,12 +24,6 @@ + tar + xz + +- # htmldocs +- graphviz +- imagemagick +- python-sphinx +- python-yaml +- texlive-latexextra + ) + options=( + !debug +@@ -65,9 +60,6 @@ + prepare() { + cd $_srcname + +- echo "Setting version..." +- echo "-$pkgrel" > localversion.10-pkgrel +- echo "${pkgbase#linux}" > localversion.20-pkgname + + local src + for src in "${source[@]}"; do +@@ -79,6 +71,11 @@ + patch -Np1 < "../$src" + done + ++ echo "Setting version..." ++ sed -i "s/^EXTRAVERSION = .*/EXTRAVERSION =/" Makefile ++ echo "" > localversion.10-pkgrel ++ echo "-aios" > localversion.20-pkgname ++ + echo "Setting config..." + cp ../config.$CARCH .config + make olddefconfig +@@ -92,7 +89,6 @@ + cd $_srcname + make all + make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1 +- make htmldocs SPHINXOPTS=-QT + } + + _package() { +@@ -208,6 +204,11 @@ + rm -r "$arch" + done + ++ echo "Setting version..." ++ sed -i "s/^EXTRAVERSION = .*/EXTRAVERSION =/" Makefile ++ echo "" > localversion.10-pkgrel ++ echo "-aios" > localversion.20-pkgname ++ + echo "Removing documentation..." + rm -r "$builddir/Documentation" + +@@ -240,29 +241,10 @@ + ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase" + } + +-_package-docs() { +- pkgdesc="Documentation for the $pkgdesc kernel" +- +- cd $_srcname +- local builddir="$pkgdir/usr/lib/modules/$(