# Maintainer: David Cohen # Contributor: Jan Alexander Steffens (heftig) # This PKGBUILD script and the config file are based on official Arch's linux package # Refer to config file to get the exact versions it's based on. Any changes to the config # will be on config.extra file. pkgbase=linux-mainline-git pkgver=v6.4.rc1.r0.ac9a78681b92 pkgrel=1 pkgdesc="Linus Torvalds' Mainline Linux" url="https://www.kernel.org" arch=(x86_64) license=(GPL2) _userconfig="/etc/${pkgbase}/config" _userremote="/etc/${pkgbase}/remote" _userpatches="/etc/${pkgbase}/patches/patches" backup=( "${_userconfig##/}" "${_userremote##/}" "${_userpatches##/}" ) makedepends=( bc libelf pahole cpio perl tar xz gettext xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick git ) options=('!strip') _srcname=linux-torvalds source=( "$_srcname::git+https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux" config # the main kernel config file config.extra # additional configs config.user # user custom config remote # custom remote config patches # user patches config ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) sha256sums=('SKIP' '6b337a9d3cfdc00005589a80b8d36fa500f6a92ed21565a3aceec48d7202a7da' '6e41a729c2f2946d3606ca2c0cb3a058c9700b0f73110eed36dcba91a271e50f' 'b5ced6ad1f03a5cfe6dccc0b2b31f91420cfe97823e5d15d5b94b7224362daa9' 'b5560bc5fb8967aec989b757af8eb4d2f5166a830abb732c8c880fb953dcb52f' '986e39ee1cb41d342b19f1c5af8016d48afa1e182237dbdcc3f222ae4203ef2d') export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" pkgver() { cd "$srcdir/$_srcname" if [[ -n "$REMOTE_URL" ]]; then # if $REMOTE_URL was created, it's safe to use $REMOTE printf "%s" "$(git describe --dirty=-patched --long | sed 's/\([^-]*-\)g/r\1/;s/-/./g').${REMOTE/\//.}" else printf "%s" "$(git describe --dirty=-patched --long | sed 's/\([^-]*-\)g/r\1/;s/-/./g')" fi } prepare() { cd $_srcname [[ -f "$_userremote" ]] && source "$_userremote" if [[ -n "$REMOTE" && -n "$COMMIT" ]]; then REMOTE_PREFIX=${source[0]##${_srcname}::git+} REMOTE_PREFIX=${REMOTE_PREFIX%%torvalds/linux} REMOTE_URL=${REMOTE_PREFIX}${REMOTE} echo echo "================================================================================" echo "Build script detected custom variables \$REMOTE and \$COMMIT are being used:" echo "REMOTE_PREFIX: $REMOTE_PREFIX" echo "REMOTE_TIP : $REMOTE" echo "COMMIT : $COMMIT" echo "================================================================================" echo echo "Fetching ${REMOTE_PREFIX}${REMOTE} ${COMMIT}" git fetch -t ${REMOTE_URL} ${COMMIT} git checkout -f FETCH_HEAD fi echo "Setting version..." echo "-$pkgrel" > localversion.10-pkgrel echo "${pkgbase#linux}" > 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 [[ -f "$_userpatches" ]] && source "$_userpatches" PATCHES_PREFIX=${_userpatches%%patches} _USER_PATCHES="0" for src in "${PATCHES}"; do [[ $src = *.patch ]] || continue echo "Applying user patch $src..." patch -Np1 < "${PATCHES_PREFIX}$src" _USER_PATCHES="1" done # Let user see the patches were applied before proceed with the build [[ ${_USER_PATCHES} = "1" ]] && sleep 2 echo "Setting config..." cat ../config ../config.extra > .config if [[ -f "$_userconfig" ]]; then cat $_userconfig >> .config fi make olddefconfig diff -u ../config .config || : make -s kernelrelease > version echo "Prepared $pkgbase version $(