From a6ea4810544ae26a09ecc4449b50652f4c98a19e Mon Sep 17 00:00:00 2001 From: Helmut Pozimski Date: Thu, 12 Aug 2021 17:23:51 +0200 Subject: [PATCH] linux4.19: update to 4.19.203. --- srcpkgs/linux4.19/template | 4 +- srcpkgs/linux4.19/templateu | 331 ++++++++++++++++++++++++++++++++++++ 2 files changed, 333 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/linux4.19/templateu diff --git a/srcpkgs/linux4.19/template b/srcpkgs/linux4.19/template index b79ed782a9..914f8f45b7 100644 --- a/srcpkgs/linux4.19/template +++ b/srcpkgs/linux4.19/template @@ -1,6 +1,6 @@ # Template file for 'linux4.19' pkgname=linux4.19 -version=4.19.201 +version=4.19.203 revision=1 wrksrc="linux-${version}" short_desc="Linux kernel and modules (${version%.*} series)" @@ -8,7 +8,7 @@ maintainer="Helmut Pozimski " license="GPL-2.0-only" homepage="https://www.kernel.org" distfiles="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.xz" -checksum=8235dfa7188246ee64a247b70bcf2508b15bf5af07fb1fe817d96cf962e1dcd0 +checksum=ffb04250ae51809d71535650d71f5a3718d774b337d7874ff74a845fbd846afa python_version=3 nodebug=yes # -dbg package is generated below manually diff --git a/srcpkgs/linux4.19/templateu b/srcpkgs/linux4.19/templateu new file mode 100644 index 0000000000..3767d43fe1 --- /dev/null +++ b/srcpkgs/linux4.19/templateu @@ -0,0 +1,331 @@ +# Template file for 'linux4.19' +pkgname=linux4.19 +version=4.19.203 +revision=1 +wrksrc="linux-${version}" +short_desc="Linux kernel and modules (${version%.*} series)" +maintainer="Helmut Pozimski " +license="GPL-2.0-only" +homepage="https://www.kernel.org" +distfiles="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.xz" +checksum=8235dfa7188246ee64a247b70bcf2508b15bf5af07fb1fe817d96cf962e1dcd0 +python_version=3 + +nodebug=yes # -dbg package is generated below manually +nostrip=yes +noverifyrdeps=yes +noshlibprovides=yes +preserve=yes + +archs="i686* x86_64* arm* aarch64* ppc*" +hostmakedepends="bc elfutils-devel flex gmp-devel kmod libmpc-devel + openssl-devel perl uboot-mkimage tar xz" + +_kernver="${version}_${revision}" +triggers="kernel-hooks" +kernel_hooks_version="${_kernver}" + +# These files could be modified when an external module is built. +mutable_files=" + /usr/lib/modules/${_kernver}/modules.builtin.bin + /usr/lib/modules/${_kernver}/modules.builtin.alias.bin + /usr/lib/modules/${_kernver}/modules.softdep + /usr/lib/modules/${_kernver}/modules.dep + /usr/lib/modules/${_kernver}/modules.dep.bin + /usr/lib/modules/${_kernver}/modules.symbols + /usr/lib/modules/${_kernver}/modules.symbols.bin + /usr/lib/modules/${_kernver}/modules.alias + /usr/lib/modules/${_kernver}/modules.alias.bin + /usr/lib/modules/${_kernver}/modules.devname" + +# reproducible build +export KBUILD_BUILD_TIMESTAMP=${SOURCE_DATE_EPOCH:-0} +export KBUILD_BUILD_USER=voidlinux +export KBUILD_BUILD_HOST=voidlinux + +do_configure() { + # 4.19 misses Documentation/DocBook. We ship the directory from 4.12 here. + cp -a $FILESDIR/DocBook -t Documentation + + # If there's a file called -dotconfig, use it to + # configure the kernel; otherwise use arch defaults and all stuff + # as modules (defconfig+allmodconfig). + local arch subarch _args + + case "$XBPS_TARGET_MACHINE" in + i686*) arch=i386;; + x86_64*) arch=x86_64;; + arm*) arch=arm;; + aarch64*) arch=arm64;; + ppc64le*) arch=powerpc; subarch=ppc64le;; + ppc64*) arch=powerpc; subarch=ppc64;; + ppc*) arch=powerpc;; + esac + + if [ "$CROSS_BUILD" ]; then + _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-" + fi + + if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then + msg_normal "Detected a custom .config file for your arch, using it.\n" + cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config + make ${makejobs} ARCH=$arch ${_args} oldconfig + elif [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig ]; then + msg_normal "Detected a .config file for your arch, using it.\n" + cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig .config + make ${makejobs} ARCH=$arch ${_args} oldconfig + elif [ -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig ]; then + msg_normal "Detected a .config file for your cpu family, using it.\n" + cp -f ${FILESDIR}/${XBPS_TARGET_MACHINE%%-musl}-dotconfig .config + make ${makejobs} ARCH=$arch ${_args} oldconfig + else + msg_normal "Defaulting to 'defconfig and allmodconfig'.\n" + make ${makejobs} ARCH=$arch ${_args} defconfig + make ${makejobs} ARCH=$arch ${_args} allmodconfig + fi + # Always use our revision to CONFIG_LOCALVERSION to match our pkg version. + sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config +} +do_build() { + local arch _cross _args + + case "$XBPS_TARGET_MACHINE" in + i686*) _args="bzImage modules"; arch=i386;; + x86_64*) _args="bzImage modules"; arch=x86_64;; + arm*) _args="zImage modules dtbs"; arch=arm;; + aarch64*) _args="Image modules dtbs"; arch=arm64;; + ppc*) _args="zImage modules"; arch=powerpc;; + esac + if [ "$CROSS_BUILD" ]; then + _cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-" + fi + if [ "${_patchver}" ]; then + _version="EXTRAVERSION=${_patchver}" + fi + export LDFLAGS= + make ARCH=$arch ${_version} ${_cross} ${makejobs} prepare + make ARCH=$arch ${_version} ${_cross} ${makejobs} ${_args} +} +do_install() { + local arch subarch _args hdrdest + + case "$XBPS_TARGET_MACHINE" in + i686*) arch=x86; subarch=i386;; + x86_64*) arch=x86; subarch=x86_64;; + arm*) arch=arm;; + aarch64*) arch=arm64;; + ppc*) arch=powerpc;; + esac + + # Run depmod after compressing modules. + sed -i '2iexit 0' scripts/depmod.sh + + # Install kernel, firmware and modules + make ${makejobs} ARCH=${subarch:-$arch} INSTALL_MOD_PATH=${DESTDIR} modules_install + + hdrdest=${DESTDIR}/usr/src/kernel-headers-${_kernver} + + vinstall .config 644 boot config-${_kernver} + vinstall System.map 644 boot System.map-${_kernver} + + case "$arch" in + x86) + vinstall arch/x86/boot/bzImage 644 boot vmlinuz-${_kernver} + ;; + arm) + vinstall arch/arm/boot/zImage 644 boot + make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install + ;; + arm64) + vinstall arch/arm64/boot/Image 644 boot vmlinux-${_kernver} + make ${makejobs} ARCH=${subarch:-$arch} INSTALL_DTBS_PATH=${DESTDIR}/boot/dtbs/dtbs-${_kernver} dtbs_install + ;; + powerpc) + # zImage on powerpc is useless as it won't load initramfs + # raw vmlinux is huge, and this is nostrip, so do it manually + vinstall vmlinux 644 boot vmlinux-${_kernver} + /usr/bin/$STRIP ${DESTDIR}/boot/vmlinux-${_kernver} + ;; + esac + + # Switch to /usr. + vmkdir usr + mv ${DESTDIR}/lib ${DESTDIR}/usr + + cd ${DESTDIR}/usr/lib/modules/${_kernver} + rm -f source build + ln -sf ../../../src/kernel-headers-${_kernver} build + + cd ${wrksrc} + # Install required headers to build external modules + install -Dm644 Makefile ${hdrdest}/Makefile + install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile + install -Dm644 .config ${hdrdest}/.config + for file in $(find . -name Kconfig\*); do + mkdir -p ${hdrdest}/$(dirname $file) + install -Dm644 $file ${hdrdest}/${file} + done + for file in $(find arch/${subarch:-$arch} -name module.lds -o -name Kbuild.platforms -o -name Platform); do + mkdir -p ${hdrdest}/$(dirname $file) + install -Dm644 $file ${hdrdest}/${file} + done + mkdir -p ${hdrdest}/include + # Remove firmware stuff provided by the "linux-firmware" pkg. + rm -rf ${DESTDIR}/usr/lib/firmware + + for i in acpi asm-generic clocksource config crypto drm generated linux \ + math-emu media net pcmcia scsi sound trace uapi video xen; do + if [ -d include/$i ]; then + cp -a include/$i ${hdrdest}/include + fi + done + + cd ${wrksrc} + mkdir -p ${hdrdest}/arch/${arch} + cp -a arch/${arch}/include ${hdrdest}/arch/${arch} + + # Remove helper binaries built for host, + # if generated files from the scripts/ directory need to be included, + # they need to be copied to ${hdrdest} before this step + if [ "$CROSS_BUILD" ]; then + make ${makejobs} ARCH=${subarch:-$arch} _mrproper_scripts + # remove host specific objects as well + find scripts -name '*.o' -delete + fi + + # Copy files necessary for later builds, like nvidia and vmware + cp Module.symvers ${hdrdest} + cp -a scripts ${hdrdest} + mkdir -p ${hdrdest}/security/selinux + cp -a security/selinux/include ${hdrdest}/security/selinux + mkdir -p ${hdrdest}/tools/include + cp -a tools/include/tools ${hdrdest}/tools/include + + mkdir -p ${hdrdest}/arch/${arch}/kernel + cp arch/${arch}/Makefile ${hdrdest}/arch/${arch} + if [ "$subarch" = "i386" ]; then + mkdir -p ${hdrdest}/arch/x86 + cp arch/x86/Makefile_32.cpu ${hdrdest}/arch/x86 + fi + if [ "$arch" = "x86" ]; then + mkdir -p ${hdrdest}/arch/x86/kernel + cp arch/x86/kernel/asm-offsets.s ${hdrdest}/arch/x86/kernel + elif [ "$arch" = "arm64" ]; then + mkdir -p ${hdrdest}/arch/arm64/kernel + cp -a arch/arm64/kernel/vdso ${hdrdest}/arch/arm64/kernel/ + fi + + # add headers for lirc package + # pci + for i in bt8xx cx88 saa7134; do + mkdir -p ${hdrdest}/drivers/media/pci/${i} + cp -a drivers/media/pci/${i}/*.h ${hdrdest}/drivers/media/pci/${i} + done + # usb + for i in cpia2 em28xx pwc; do + mkdir -p ${hdrdest}/drivers/media/usb/${i} + cp -a drivers/media/usb/${i}/*.h ${hdrdest}/drivers/media/usb/${i} + done + # i2c + mkdir -p ${hdrdest}/drivers/media/i2c + cp drivers/media/i2c/*.h ${hdrdest}/drivers/media/i2c + for i in cx25840; do + mkdir -p ${hdrdest}/drivers/media/i2c/${i} + cp -a drivers/media/i2c/${i}/*.h ${hdrdest}/drivers/media/i2c/${i} + done + + # Add docbook makefile + install -Dm644 Documentation/DocBook/Makefile \ + ${hdrdest}/Documentation/DocBook/Makefile + + # Add md headers + mkdir -p ${hdrdest}/drivers/md + cp drivers/md/*.h ${hdrdest}/drivers/md + + # Add inotify.h + mkdir -p ${hdrdest}/include/linux + cp include/linux/inotify.h ${hdrdest}/include/linux + + # Add wireless headers + mkdir -p ${hdrdest}/net/mac80211/ + cp net/mac80211/*.h ${hdrdest}/net/mac80211 + + # add dvb headers for external modules + mkdir -p ${hdrdest}/include/config/dvb/ + cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/ + + # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new + mkdir -p ${hdrdest}/drivers/media/dvb-frontends + cp drivers/media/dvb-frontends/lgdt330x.h \ + ${hdrdest}/drivers/media/dvb-frontends/ + cp drivers/media/i2c/msp3400-driver.h ${hdrdest}/drivers/media/i2c/ + + # add dvb headers + mkdir -p ${hdrdest}/drivers/media/usb/dvb-usb + cp drivers/media/usb/dvb-usb/*.h ${hdrdest}/drivers/media/usb/dvb-usb/ + mkdir -p ${hdrdest}/drivers/media/dvb-frontends + cp drivers/media/dvb-frontends/*.h ${hdrdest}/drivers/media/dvb-frontends/ + mkdir -p ${hdrdest}/drivers/media/tuners + cp drivers/media/tuners/*.h ${hdrdest}/drivers/media/tuners/ + + # Add xfs and shmem for aufs building + mkdir -p ${hdrdest}/fs/xfs/libxfs + mkdir -p ${hdrdest}/mm + cp fs/xfs/libxfs/xfs_sb.h ${hdrdest}/fs/xfs/libxfs/xfs_sb.h + + # Add objtool binary, needed to build external modules with dkms + case "$XBPS_TARGET_MACHINE" in + x86_64*) + mkdir -p ${hdrdest}/tools/objtool + cp tools/objtool/objtool ${hdrdest}/tools/objtool + ;; + esac + + # Remove unneeded architectures + case "$arch" in + i386|x86_64) _args="arm* p*";; + arm|arm64) _args="x86* p*";; + powerpc) _args="arm* x86* parisc";; + esac + for arch in alpha avr32 blackfin cris frv h8300 \ + ia64 m* s* um v850 xtensa ${_args}; do + rm -rf ${hdrdest}/arch/${arch} + done + # Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig + mkdir -p ${hdrdest}/arch/x86/ras + cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig + + # Extract debugging symbols + msg_normal "$pkgver: extracting debug info, please wait...\n" + install -Dm644 vmlinux ${DESTDIR}/usr/lib/debug/boot/vmlinux-${_kernver} + ( + cd ${DESTDIR} + export DESTDIR + find ./ -name '*.ko' -print0 | \ + xargs -0r -n1 -P ${XBPS_MAKEJOBS} ${FILESDIR}/mv-debug + ) + # ... and run depmod again. + depmod -b ${DESTDIR}/usr -F System.map ${_kernver} +} +linux4.19-headers_package() { + preserve=yes + nostrip=yes + noshlibprovides=yes + short_desc+=" - source headers for 3rd party modules" + pkg_install() { + vmove usr/src + vmove usr/lib/modules/${_kernver}/build + } +} +linux4.19-dbg_package() { + preserve=yes + nostrip=yes + noverifyrdeps=yes + noshlibprovides=yes + repository=debug + short_desc+=" - debugging symbols" + pkg_install() { + vmove usr/lib/debug + vmove "boot/System.map-${_kernver}" + } +}