diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 128 |
1 files changed, 76 insertions, 52 deletions
@@ -1,82 +1,106 @@ -# Maintainer: Haruue Icymoon <haruue@caoyue.com.cn> -# Contributor: Lucjan Lucjanov <lucjan.lucjanov@gmail.com> +# Maintainer: Piotr Gorski <lucjan.lucjanov@gmail.com> +# Contributor: Haruue Icymoon <haruue@caoyue.com.cn> -pkgname=linux-usermode -true && pkgname=(linux-usermode linux-usermode-modules) pkgbase=linux-usermode +pkgname=('linux-usermode' 'linux-usermode-modules') _kernelname=-usermodelinux -_srcname=linux-4.20 -pkgver=4.20.4 +_major=6.9 +_minor=2 +pkgver=${_major}.${_minor} +_srcname=linux-${pkgver} pkgrel=1 pkgdesc="User mode Linux kernel and modules" arch=('x86_64') license=('GPL2') url="http://user-mode-linux.sourceforge.net/" depends=('coreutils') -makedepends=('bc' 'inetutils' 'gcc7') -source=( - http://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.{xz,sign} -# http://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.{xz,sign} - http://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz - config) - -sha256sums=('ad0823183522e743972382df0aa08fb5ae3077f662b125f1e599b0b2aaa12438' +makedepends=('bc' 'inetutils') +options=(!debug) +#_lucjanpath="https://raw.githubusercontent.com/sirlucjan/kernel-patches/master/${_major}" +_lucjanpath="https://gitlab.com/sirlucjan/kernel-patches/raw/master/${_major}" + +source=("https://www.kernel.org/pub/linux/kernel/v6.x/linux-${pkgver}.tar.xz" + "https://www.kernel.org/pub/linux/kernel/v6.x/linux-${pkgver}.tar.sign" + 'config' + '70-uml.hook') + +sha256sums=('d46c5bdf2c5961cc2a4dedefe0434d456865e95e4a7cd9f93fff054f9090e5f9' 'SKIP' - '24ee94fbbf9c356ace420e7eedfff4c9d3f2e8645011bc8947c22421dea5a8ba' - '0c6ca2df8b072b1fa1c13d290e2c1f0c97d872419f4bf8c2fd813a29e79c5626') + '195e93d3c4aa7b13f636c3239781c63a1fff3765bb71248019890c95071348b5' + '05ea4e00d1e99bf8140a21c94e3c42acf17b9debad9c6f5decbe1dd1fe04332c') validpgpkeys=( - 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds - '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman -) + 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds + '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman + ) prepare() { - cd "${srcdir}/${_srcname}" - - # add upstream patch - patch -p1 -i "${srcdir}/patch-${pkgver}" - - cat ../config - >.config <<END -CONFIG_LOCALVERSION="${_kernelname}" -CONFIG_LOCALVERSION_AUTO=n -END + cd ${_srcname} + + echo "Setting version..." + sed -e "/^EXTRAVERSION =/s/=.*/=/" -i Makefile + echo "-$pkgrel" > localversion.10-pkgrel + echo "$_kernelname" > localversion.20-pkgname + + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + echo "Applying patch $src..." + patch -Np1 < "../$src" + done + + echo "Setting config..." + cp ../config .config + yes "" | make ARCH=um config >/dev/null + diff -u ../config .config || : - # set extraversion to pkgrel - sed -i "/^EXTRAVERSION =/s/=.*/= -${pkgrel}/" Makefile + make ARCH=um kernelrelease > version + echo "Prepared $pkgbase version $(<version)" - # rewrite configuration - yes "" | make ARCH=um config >/dev/null + echo "Save configuration for later reuse" + cat .config > "${startdir}/config.last" } build() { - cd "${srcdir}/${_srcname}" + cd ${_srcname} unset LDFLAGS CFLAGS - - make ARCH=um CC=gcc-7 vmlinux modules + make ARCH=um vmlinux modules } -package_linux-usermode() { - cd "${srcdir}/${_srcname}" +_package() { + + cd ${_srcname} mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/share/kernel-usermode" install -m 644 System.map ${pkgdir}/usr/share/kernel-usermode/System.map install -m 755 vmlinux ${pkgdir}/usr/bin/ } -package_linux-usermode-modules() { - install=modules.install - - cd "${srcdir}/${_srcname}" - - # get kernel version, but discard the first result - make ARCH=um kernelrelease > /dev/null - _kernver="$(make ARCH=um kernelrelease)" - - # make ARCH=um INSTALL_MOD_PATH="${pkgdir}/usr" modules_install - make ARCH=um INSTALL_MOD_PATH="${pkgdir}/usr" _modinst_ - rm -f $pkgdir/usr/lib/modules/${_kernver}/{source,build} - sed \ - -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \ - -i "${startdir}/modules.install" +_package-modules() { + depends=('kmod') + + cd ${_srcname} + local kernver="$(<version)" + make ARCH=um INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \ + DEPMOD=/doesnt/exist modules_install # Suppress depmod + rm -f $pkgdir/usr/lib/modules/${kernver}/{source,build} + # sed expression for following substitutions + local _subst=" + s|%PKGBASE%|${pkgbase}|g + s|%KERNVER%|${kernver}|g + " + # install pacman hook + sed "${_subst}" ../70-uml.hook | + install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/70-uml.hook" } +pkgname=("${pkgbase}" "${pkgbase}-modules") +for _p in ${pkgname[@]}; do + eval "package_${_p}() { + $(declare -f "_package${_p#${pkgbase}}") + _package${_p#${pkgbase}} + }" +done + # vim:set ts=8 sts=2 sw=2 et: |