summaryrefslogtreecommitdiff
path: root/arch-linux-rolling/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'arch-linux-rolling/PKGBUILD')
-rw-r--r--arch-linux-rolling/PKGBUILD95
1 files changed, 95 insertions, 0 deletions
diff --git a/arch-linux-rolling/PKGBUILD b/arch-linux-rolling/PKGBUILD
new file mode 100644
index 000000000..e365a1503
--- /dev/null
+++ b/arch-linux-rolling/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer: Versus Void <chaoskeeper@mail.ru>
+
+_source_package=$(curl -s https://www.archlinux.org/packages/core/$CARCH/linux/download/ --write-out '%{redirect_url}')
+if [ ! "$_source_package" ]; then
+ echo "Can't find current kernel package"
+ return 1
+fi
+
+_full_version=${_source_package##*linux-}
+_full_version=${_full_version%%-$CARCH.pkg.tar*}
+pkgver=${_full_version%-*}
+pkgrel=${_full_version##*-}
+_kernel_version=${pkgver%.*}
+
+pkgname=('linux-rolling' "linux-rolling_${_full_version//[.-]/_}")
+pkgdesc="Arch's kernel how it meant to be"
+arch=('i686' 'x86_64')
+url="https://bugs.archlinux.org/task/16702"
+license=('GPL2')
+replaces=()
+options=('!strip')
+source=(
+ $_source_package{,.sig}
+ "rolling.conf"
+ "clean-old-kernels"
+ "91-extramodules-version.hook"
+ "relink-extramodules-version"
+ "91-grub.hook"
+ "update-grub"
+)
+sha256sums=(
+ "SKIP" "SKIP"
+ "fa56a9d520046462a29ff5c52af2f40026a9c6537cf212b8bb2f1f41ee0838fd"
+ "eb087e424d1309edeb0ca9e367d7220dbc309f768aac9d2e3de495a3ad04fb6c"
+ "7f11c0e3a11c0088789676c0398d15c6a71dc7094c78e4093bd72e8421fbcb84"
+ "dc9912bce065140f5a955795e10490c15b42a95dcf92b5c208fe76f7ac488a0e"
+ "bb519b71092079a66498f22ef89feb6d41393d61688896ebe0226f979ed6655e"
+ "6a4f3779e07cfbba36fd25fb4853292e4559ca96a750121836c8bedb7e1132bc"
+)
+validpgpkeys=('5B7E3FB71B7F10329A1C03AB771DF6627EDF681F') # Tobias Powalowski <tobias.powalowski@googlemail.com>
+
+package_linux-rolling() {
+ arch=('any')
+ depends=("linux-rolling_${_full_version//[.-]/_}=$_full_version" "bash")
+ install=linux-transitional.install
+
+ install -Dm644 91-grub.hook "$pkgdir/usr/share/libalpm/hooks/91-grub.hook"
+ install -Dm644 91-extramodules-version.hook "$pkgdir/usr/share/libalpm/hooks/91-extramodules-version.hook"
+ install -Dm644 rolling.conf "$pkgdir/etc/rolling.conf"
+ install -Dm755 clean-old-kernels "$pkgdir/usr/bin/clean-old-kernels"
+ install -Dm755 relink-extramodules-version "$pkgdir/usr/lib/linux-rolling/relink-extramodules-version"
+ install -Dm755 update-grub "$pkgdir/usr/lib/linux-rolling/update-grub"
+}
+
+_package_linux-rolling() {
+ pkgdesc="The Linux kernel and modules"
+ backup=("etc/mkinitcpio.d/linux-$pkgver-$pkgrel.preset")
+ depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
+ optdepends=('crda: to set the correct wireless channels of your country')
+ provides=("linux=$pkgver-$pkgrel")
+ conflicts=("linux=$pkgver-$pkgrel")
+ sed "{
+ s#boot/initramfs-linux.img#boot/initramfs-linux-$pkgver-$pkgrel.img#g;
+ s#boot/initramfs-linux-fallback.img#boot/initramfs-linux-$pkgver-$pkgrel-fallback.img#g;
+ }" .INSTALL > ${startdir}/linux.install.pkg
+ true && install=linux.install.pkg
+
+ mkdir -p "$pkgdir/boot"
+ mv boot/vmlinuz-linux "$pkgdir/boot/vmlinuz-linux-$pkgver-$pkgrel"
+
+ sed -i "{
+ s#/boot/vmlinuz-linux#/boot/vmlinuz-linux-$pkgver-$pkgrel#g;
+ s#/boot/initramfs-linux.img#/boot/initramfs-linux-$pkgver-$pkgrel.img#g;
+ s#/boot/initramfs-linux-fallback.img#/boot/initramfs-linux-$pkgver-$pkgrel-fallback.img#g;
+ }" etc/mkinitcpio.d/linux.preset
+ mkdir -p "$pkgdir/etc/mkinitcpio.d"
+ mv etc/mkinitcpio.d/linux.preset "$pkgdir/etc/mkinitcpio.d/linux-$pkgver-$pkgrel.preset"
+
+ sed -i "{
+ s#boot/vmlinuz-linux#boot/vmlinuz-linux-$pkgver-$pkgrel#g;
+ s#mkinitcpio -p linux#mkinitcpio -p linux-$pkgver-$pkgrel#g;
+ }" usr/share/libalpm/hooks/90-linux.hook
+ mkdir -p "$pkgdir/usr/share/libalpm/hooks"
+ mv usr/share/libalpm/hooks/90-linux.hook "$pkgdir/usr/share/libalpm/hooks/90-linux-$pkgver-$pkgrel.hook"
+
+ mv usr/lib "$pkgdir/usr/"
+
+ mv "$pkgdir/usr/lib/modules/extramodules-$_kernel_version-ARCH/version" \
+ "$pkgdir/usr/lib/modules/extramodules-$_kernel_version-ARCH/version-$pkgver-$pkgrel"
+}
+
+eval "package_${pkgname[1]}() {
+ $(declare -f _package_linux-rolling)
+ _package_linux-rolling
+}"