<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[HyperForum — Hyperbola is affected by dirty frag]]></title>
		<link>https://forums.hyperbola.info/viewtopic.php?id=1187</link>
		<atom:link href="https://forums.hyperbola.info/extern.php?action=feed&amp;tid=1187&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Hyperbola is affected by dirty frag.]]></description>
		<lastBuildDate>Tue, 19 May 2026 14:48:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8886#p8886</link>
			<description><![CDATA[<p>Yes, will do. But first:</p><p>32bit-tests incoming and also another approval of zstd being final removed from the config (that did not happen until now fully). So backporting the little configuration-adjustments before and merging all together.</p><p><strong>Thank you very much!</strong></p>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Tue, 19 May 2026 14:48:03 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8886#p8886</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8885#p8885</link>
			<description><![CDATA[<p>Congratulations!</p><p>Tested: All CVEs are fixed and the new kernel works well without any problems.</p><p>Now it may be time to upgrade the package in the repo</p>]]></description>
			<author><![CDATA[null@example.com (Allen123456hello)]]></author>
			<pubDate>Tue, 19 May 2026 13:46:40 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8885#p8885</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8884#p8884</link>
			<description><![CDATA[<p>Good News: Debian has already backported these patches.</p><p>New PKGBUILD:</p><div class="codebox"><pre><code># Maintainer: André Silva &lt;emulatorman@hyperbola.info&gt;
# Contributor: Márcio Silva &lt;coadde@hyperbola.info&gt;
# Contributor: Luke R. &lt;g4jc@hyperbola.info&gt;
# Contributor: Tobias Dausend &lt;throgh@hyperbola.info&gt;
# Contributor: Jesús E.
# Contributor: rachad
# Contributor (Parabola): Nicolás Reynolds &lt;fauno@kiwwwi.com.ar&gt;
# Contributor (Parabola): Sorin-Mihai Vârgolici &lt;smv@yobicore.org&gt;
# Contributor (Parabola): Michał Masłowski &lt;mtjm@mtjm.eu&gt;
# Contributor (Parabola): Luke Shumaker &lt;lukeshu@sbcglobal.net&gt;
# Contributor (Parabola): David P. &lt;megver83@parabola.nu&gt;
# Contributor (Parabola): Andreas Grapentin &lt;andreas@grapentin.org&gt;
# Contributor: Allen123456hello

# Based on linux-lts package

pkgbase=linux-libre-lts
_pkgbasever=5.10-gnu1
_pkgver=5.10.256-gnu1

_replacesarchkernel=(&#039;linux%&#039;) # &#039;%&#039; gets replaced with _kernelname
_replacesmainlinearchkernel=(&#039;linux%&#039;) # &#039;%&#039; gets replaced with _kernelname
_replacesoldkernels=() # &#039;%&#039; gets replaced with _kernelname
_replacesoldmodules=() # &#039;%&#039; gets replaced with _kernelname

_srcname=linux-${_pkgbasever%-*}
_archpkgver=${_pkgver%-*}
pkgver=${_pkgver//-/_}
pkgrel=1
arch=(&#039;i686&#039; &#039;x86_64&#039;)
url=&quot;https://linux-libre.fsfla.org/&quot;
license=(&#039;GPL-2&#039;)
makedepends=(&#039;xmlto&#039; &#039;docbook-xsl&#039; &#039;kmod&#039; &#039;bc&#039; &#039;libelf&#039; &#039;python&#039; &#039;cpio&#039; &#039;dwarves&#039;)
options=(&#039;!strip&#039;)
source=(&quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.lz&quot;
        &quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.lz.sign&quot;
        &quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.lz&quot;
        &quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.lz.sign&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_clut224.ppm&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_clut224.ppm.sig&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_mono.pbm&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_mono.pbm.sig&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_vga16.ppm&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_vga16.ppm.sig&quot;
        # the main kernel config files: generated by copying it to .config in kernel tree:
        ## ARCH=i386 make oldconfig
        &#039;config.i686&#039;
        ## ARCH=x86_64 make oldconfig
        &#039;config.x86_64&#039;
        # pacman hook for initramfs regeneration
        &#039;90-linux.hook&#039;
        # standard config files for mkinitcpio ramdisk
        &#039;linux.preset&#039;
        &#039;0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch&#039;
        &#039;0002-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch&#039;
        &#039;0003-fix-Atmel-maXTouch-touchscreen-support.patch&#039;
        &#039;0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch&#039;
        &#039;0006-v2-kbuild-support-byacc-as-alternative-YACC-to-bison.patch&#039;
        &#039;0007-sign-file-full-functionality-with-modern-LibreSSL.patch&#039;
        # backported security patches
        &#039;rxrpc-input-Open-code-skb_unshare.patch&#039;
        &#039;rxrpc-Fix-conn-level-packet-handling-to-unshare-RESP.patch&#039;
        &#039;rxrpc-Also-unshare-DATA-RESPONSE-packets-when-paged-.patch&#039;)
sha512sums=(&#039;b16238c8b746bc9b5078c991847909eba268221f945fb55579e99fc9540b88ccfca5d71f4249f4d3795c522570c30477c986f0f4b98c4029cca1235786c7bc52&#039;
            &#039;SKIP&#039;
            &#039;a78539b2a395090f094d6e12e4a91ef7d5148908d8d1eadc9ffa6c46492cfb8dc8fbedd80701f00a97e838364987ba4ef3d773b034c3546f6e8008cee81e350b&#039;
            &#039;SKIP&#039;
            &#039;13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3&#039;
            &#039;SKIP&#039;
            &#039;267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1&#039;
            &#039;SKIP&#039;
            &#039;7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78&#039;
            &#039;SKIP&#039;
            &#039;0d2cd94aec3d38c84c2e3843ee9baafb1d43812c115d0b9abe1d71f18bf8a0db3c72f78fdaaf1e83f173321988e027074e19a1eb04b8ff5ddae746d3c46e8e01&#039;
            &#039;71f98b1c4416a2f3685a2a78493ab3b4841588735a6e198961b9d4547829ce902ff4993373b986f34cade507c4d1f216a6e4a52f03bfdd963f07026afdca3810&#039;
            &#039;38ddc517f33fe41dec63b31313a82e0e8c05788e9db5e448d23a01605c50fe3422927cfd902e81c3b0eae17502db06f48e7f713e1ba1c9c76fd26f1473b02983&#039;
            &#039;2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf&#039;
            &#039;c4507794fa2e01026d0179171865a2352fc56b32af25123c2627ecd444663ebf00d0080c12821ba73e1ddb7ded852cebdd7329e3997321f41c169d2367718037&#039;
            &#039;4d7388cb03b873f4c360d345dd20b04f9e5ac815183e8ae588f8bdadab2056d6d8f21ae0dd2055ea32bb59364e2d41b9272276abd532a00b8cc89278f8bf409f&#039;
            &#039;5bdb620acf90799b78dea3fd07828c2dc4410f781af47e910c725bd3c8e5ff4695d06e9ab7e59afaa0e759c77917e66e3e2c5f6dd9d4ac59f2a66109adf06cac&#039;
            &#039;d6dadc6a563af83e588c67fc11cc40952a43f5bca0cb53cc3990430ce1944cd29df4526a1a34c2def7e44cf3f5d2202a719d18117ce6acaeadd0a9b10968270d&#039;
            &#039;57f7cf2356a1e78d58298c638987882b43c23e06ab31d6f7284f5d8e2f59781e1fe42f091943c82b3d3b53d13a9cfaf5e6ee460d6ece0613f734404da57a1147&#039;
            &#039;9296c41fab18b2b2ed6a1483061c0012673abf041792ad826d3530a1e837cf82a59e507ada5e05f31be3f780409d5b2defd0bf82de058b92856ada14b243b033&#039;
            &#039;8bb38ae7ee61dd78028add18b493bde63df0731dd8acc6933d0381a00069de3cd4617e73619e6997965ba9c8cec680735d70de3ce3b5dbc72e8a80ab8c6d03c7&#039;
            &#039;50f0df5e8c13291ea8825682664bdeb5561e8de6b2eece16458d83a5bca47d80f3bc695ec74413d97500c1023b078fea05ba75ce75a6b18fcdbcf426b6bd079f&#039;
            &#039;65bd1b4ce35e90d45ffc99223bbe0e9ec55aa7963bc926cd9442e4417fd75ea5efed9810812b46ca1d54fa59b7751917c86ee53d96e3fb0a117814c057143ced&#039;)
validpgpkeys=(&#039;474402C8C582DAFBE389C427BCB7CF877E7D47A7&#039;  # Alexandre Oliva
              &#039;684D54A189305A9CC95446D36B888913DDB59515&#039;) # Márcio Silva

_kernelname=${pkgbase#linux-libre}
_mainlinekernelname=${pkgbase#linux-libre-lts}
_replacesarchkernel=(&quot;${_replacesarchkernel[@]/\%/${_kernelname}}&quot;)
_replacesmainlinearchkernel=(&quot;${_replacesmainlinearchkernel[@]/\%/${_mainlinekernelname}}&quot;)
_replacesoldkernels=(&quot;${_replacesoldkernels[@]/\%/${_kernelname}}&quot;)
_replacesoldmodules=(&quot;${_replacesoldmodules[@]/\%/${_kernelname}}&quot;)

case &quot;${CARCH}&quot; in
  i686|x86_64) KARCH=x86;;
esac

prepare() {
  cd &quot;${srcdir}/${_srcname}&quot;

  # add upstream patch
  if [ &quot;${_pkgbasever}&quot; != &quot;${_pkgver}&quot; ]; then
    lzip -d &quot;${srcdir}/patch-${_pkgbasever}-${_pkgver}.lz&quot;
    patch -p1 -i &quot;${srcdir}/patch-${_pkgbasever}-${_pkgver}&quot;
  fi

  # add freedo as boot logo
  install -m644 -t drivers/video/logo \
    &quot;${srcdir}/logo_linux_&quot;{clut224.ppm,vga16.ppm,mono.pbm}

  # add latest fixes from stable queue, if needed
  # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git

  # ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER
  patch -p1 -i &quot;${srcdir}/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch&quot;

  # maintain the TTY over USB disconnects
  # http://www.coreboot.org/EHCI_Gadget_Debug
  patch -p1 -i &quot;${srcdir}/0002-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch&quot;

  # fix Atmel maXTouch touchscreen support
  # https://labs.parabola.nu/issues/877
  # http://www.fsfla.org/pipermail/linux-libre/2015-November/003202.html
  patch -p1 -i &quot;${srcdir}/0003-fix-Atmel-maXTouch-touchscreen-support.patch&quot;

  # HID: quirks: Add Apple Magic Trackpad 2 to hid_have_special_driver list
  # https://bugzilla.kernel.org/show_bug.cgi?id=210241
  patch -p1 -i &quot;${srcdir}/0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch&quot;

  # kbuild: support byacc as alternative YACC to bison
  # https://patchwork.kernel.org/patch/11218023/
  patch -p1 -i &quot;${srcdir}/0006-v2-kbuild-support-byacc-as-alternative-YACC-to-bison.patch&quot;

  # sign-file: full functionality with modern LibreSSL
  # https://patchwork.kernel.org/patch/11446123/
  patch -p1 -i &quot;${srcdir}/0007-sign-file-full-functionality-with-modern-LibreSSL.patch&quot;

  # Fix CVE-2026-43500
  patch -p1 -i &quot;${srcdir}/rxrpc-input-Open-code-skb_unshare.patch&quot;
  patch -p1 -i &quot;${srcdir}/rxrpc-Fix-conn-level-packet-handling-to-unshare-RESP.patch&quot;
  patch -p1 -i &quot;${srcdir}/rxrpc-Also-unshare-DATA-RESPONSE-packets-when-paged-.patch&quot;

  cat &quot;${srcdir}/config.${CARCH}&quot; &gt; ./.config

  # append pkgrel to extraversion
  sed -ri &quot;s|^(EXTRAVERSION =.*\S).*|\1-${pkgrel}|&quot; Makefile

  # don&#039;t run depmod on &#039;make install&#039;. We&#039;ll do this ourselves in packaging
  sed -i &#039;2iexit 0&#039; scripts/depmod.sh

  # get kernel version
  yes &quot;&quot; | make prepare

  # load configuration
  # Configure the kernel. Replace the line below with one of your choice.
  #make menuconfig # CLI menu for configuration
  #make nconfig # new CLI menu for configuration
  #make xconfig # X-based configuration
  #make oldconfig # using old config from previous kernel version
  # ... or manually edit .config

  # rewrite configuration
  yes &quot;&quot; | make config &gt;/dev/null
}

build() {
  cd &quot;${srcdir}/${_srcname}&quot;

  make ${MAKEFLAGS} LOCALVERSION= bzImage modules
}

_package() {
  pkgdesc=&quot;The ${pkgbase^} kernel and modules&quot;
  [ &quot;${pkgbase}&quot; = &quot;linux-libre-lts&quot; ] &amp;&amp; groups=(&#039;base&#039;)
  depends=(&#039;coreutils&#039; &#039;kmod&#039; &#039;mkinitcpio&gt;=0.7&#039;)
  optdepends=(&#039;kernel-firmware: firmware files for Linux-libre&#039;
              &#039;crda: to set the correct wireless channels of your country&#039;)
  provides=(&quot;${_replacesarchkernel[@]/%/=${_archpkgver}}&quot; &quot;${_replacesoldkernels[@]}&quot; &quot;kernel=${_archpkgver}&quot; &quot;${_replacesmainlinearchkernel[@]}&quot;)
  conflicts=(&quot;${_replacesarchkernel[@]}&quot; &quot;${_replacesoldkernels[@]}&quot; &quot;${_replacesoldmodules[@]}&quot; &quot;${_replacesmainlinearchkernel[@]}&quot;)
  replaces=(&quot;${_replacesarchkernel[@]}&quot; &quot;${_replacesoldkernels[@]}&quot; &quot;${_replacesoldmodules[@]}&quot; &quot;${_replacesmainlinearchkernel[@]}&quot;)
  backup=(&quot;etc/mkinitcpio.d/${pkgbase}.preset&quot;)
  install=linux.install

  cd &quot;${srcdir}/${_srcname}&quot;

  # get kernel version
  _kernver=&quot;$(make LOCALVERSION= kernelrelease)&quot;
  _basekernel=${_kernver%%-*}
  _basekernel=${_basekernel%.*}

  mkdir -p &quot;${pkgdir}&quot;/{lib/modules,lib/firmware,boot}
  install -Dm644 arch/$KARCH/boot/bzImage &quot;${pkgdir}/boot/vmlinuz-${pkgbase}&quot;
  make LOCALVERSION= INSTALL_MOD_PATH=&quot;${pkgdir}&quot; INSTALL_MOD_STRIP=1 modules_install

  # set correct depmod command for install
  sed -e &quot;s|%PKGBASE%|${pkgbase}|g;s|%KERNVER%|${_kernver}|g&quot; \
    &quot;${startdir}/${install}&quot; &gt; &quot;${startdir}/${install}.pkg&quot;
  true &amp;&amp; install=${install}.pkg

  # install mkinitcpio preset file for kernel
  sed &quot;s|%PKGBASE%|${pkgbase}|g&quot; &quot;${srcdir}/linux.preset&quot; |
    install -D -m644 /dev/stdin &quot;${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset&quot;

  # install pacman hook for initramfs regeneration
  sed &quot;s|%PKGBASE%|${pkgbase}|g&quot; &quot;${srcdir}/90-linux.hook&quot; |
    install -D -m644 /dev/stdin &quot;${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook&quot;

  # remove build and source links
  rm -f &quot;${pkgdir}&quot;/lib/modules/${_kernver}/{source,build}
  # remove the firmware
  rm -rf &quot;${pkgdir}/lib/firmware&quot;
  # make room for external modules
  ln -s &quot;../extramodules-${_basekernel}${_kernelname}&quot; &quot;${pkgdir}/lib/modules/${_kernver}/extramodules&quot;
  # add real version for building modules and running depmod from post_install/upgrade
  mkdir -p &quot;${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}&quot;
  echo &quot;${_kernver}&quot; &gt; &quot;${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}/version&quot;

  # Now we call depmod...
  depmod -b &quot;${pkgdir}&quot; -F System.map &quot;${_kernver}&quot;

  # add kernel configuration file
  # https://issues.hyperbola.info/index.php?do=details&amp;task_id=146
  install -D -m644 .config &quot;${pkgdir}/boot/config-${pkgbase}&quot;

  # install license file
  install -D -m644 COPYING &quot;${pkgdir}/usr/share/licenses/$pkgname/COPYING&quot;
}

_package-headers() {
  pkgdesc=&quot;Header files and scripts for building modules for ${pkgbase^} kernel&quot;
  provides=(&quot;${_replacesarchkernel[@]/%/-headers=${_archpkgver}}&quot; &quot;${_replacesoldkernels[@]/%/-headers}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-headers}&quot;)
  conflicts=(&quot;${_replacesarchkernel[@]/%/-headers}&quot; &quot;${_replacesoldkernels[@]/%/-headers}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-headers}&quot;)
  replaces=(&quot;${_replacesarchkernel[@]/%/-headers}&quot; &quot;${_replacesoldkernels[@]/%/-headers}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-headers}&quot;)

  install -dm755 &quot;${pkgdir}/lib/modules/${_kernver}&quot;

  cd &quot;${srcdir}/${_srcname}&quot;
  install -D -m644 Makefile \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/Makefile&quot;
  install -D -m644 kernel/Makefile \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/kernel/Makefile&quot;
  install -D -m644 .config \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/.config&quot;
  install -D -m644 vmlinux \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/vmlinux&quot;
  install -D -m644 System.map \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/System.map&quot;
  install -D -m644 Module.symvers \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/Module.symvers&quot;

  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/include&quot;

  for i in acpi asm-generic clocksource config crypto drm dt-bindings \
    generated keys kunit kvm linux math-emu media memory misc net \
    pcmcia ras rdma scsi soc sound target trace uapi vdso video xen; do
    cp -a include/${i} &quot;${pkgdir}/lib/modules/${_kernver}/build/include/&quot;
  done

  # copy arch includes for external modules
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}&quot;
  cp -a arch/${KARCH}/include &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/&quot;

  # copy files necessary for later builds
  cp -a scripts &quot;${pkgdir}/lib/modules/${_kernver}/build&quot;

  # fix permissions on scripts dir
  chmod og-w -R &quot;${pkgdir}/lib/modules/${_kernver}/build/scripts&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/.tmp_versions&quot;

  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/kernel&quot;

  cp arch/${KARCH}/Makefile &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/&quot;

  if [ &quot;${CARCH}&quot; = &quot;i686&quot; ]; then
    cp arch/${KARCH}/Makefile_32.cpu &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/&quot;
  fi

  cp arch/${KARCH}/kernel/asm-offsets.s &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/&quot;

  # add dm headers
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/md&quot;
  cp drivers/md/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/md&quot;

  # add inotify.h
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/include/linux&quot;
  cp include/linux/inotify.h &quot;${pkgdir}/lib/modules/${_kernver}/build/include/linux/&quot;

  # add wireless headers
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/net/mac80211/&quot;
  cp net/mac80211/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/net/mac80211/&quot;

  # add dvb headers for external modules
  # http://bugs.archlinux.org/task/11194
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/include/config/dvb/&quot;
  cp include/config/dvb/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/include/config/dvb/&quot;

  # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
  # in reference to:
  # http://bugs.archlinux.org/task/13146
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/&quot;
  cp drivers/media/dvb-frontends/lgdt330x.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/i2c/&quot;
  cp drivers/media/i2c/msp3400-driver.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/i2c/&quot;

  # add dvb headers
  # in reference to:
  # http://bugs.archlinux.org/task/20402
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb&quot;
  cp drivers/media/usb/dvb-usb/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends&quot;
  cp drivers/media/dvb-frontends/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/tuners&quot;
  cp drivers/media/tuners/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/tuners/&quot;

  # add xfs and shmem for aufs building
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/fs/xfs&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/mm&quot;
  # removed in 3.17-gnu series
  # cp fs/xfs/xfs_sb.h &quot;${pkgdir}/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h&quot;

  # copy in Kconfig files
  for i in $(find . -name &quot;Kconfig*&quot;); do
    mkdir -p &quot;${pkgdir}&quot;/lib/modules/${_kernver}/build/`echo ${i} | sed &#039;s|/Kconfig.*||&#039;`
    cp ${i} &quot;${pkgdir}/lib/modules/${_kernver}/build/${i}&quot;
  done

  # add objtool for external module building and enabled VALIDATION_STACK option
  if [ -f tools/objtool/objtool ];  then
      mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/tools/objtool&quot;
      cp -a tools/objtool/objtool ${pkgdir}/lib/modules/${_kernver}/build/tools/objtool/
  fi

  chown -R root.root &quot;${pkgdir}/lib/modules/${_kernver}/build&quot;
  find &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; -type d -exec chmod 755 {} \;

  # strip scripts directory
  find &quot;${pkgdir}/lib/modules/${_kernver}/build/scripts&quot; -type f -perm -u+w 2&gt;/dev/null | while read binary ; do
    case &quot;$(file -bi &quot;${binary}&quot;)&quot; in
      *application/x-sharedlib*) # Libraries (.so)
        /usr/bin/strip ${STRIP_SHARED} &quot;${binary}&quot;;;
      *application/x-archive*) # Libraries (.a)
        /usr/bin/strip ${STRIP_STATIC} &quot;${binary}&quot;;;
      *application/x-executable*) # Binaries
        /usr/bin/strip ${STRIP_BINARIES} &quot;${binary}&quot;;;
      *application/x-pie-executable\;*) # Relocatable binaries
        /usr/bin/strip ${$STRIP_SHARED} &quot;${binary}&quot;;;
    esac
  done

  # strip vmlinux
  strip -v $STRIP_STATIC &quot;${pkgdir}/lib/modules/${_kernver}/build/vmlinux&quot;

  # remove unneeded architectures
  find &quot;${pkgdir}&quot;/lib/modules/${_kernver}/build/arch -mindepth 1 -maxdepth 1 -type d -not -name &quot;$KARCH&quot; -exec rm -rf {} +

  # remove documentation
  rm -r &quot;${pkgdir}/lib/modules/${_kernver}/build/Documentation&quot;

  # remove broken symlinks
  find -L &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; -type l -printf &#039;Removing %P\n&#039; -delete

  # remove loose objects
  find &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; -type f -name &#039;*.o&#039; -printf &#039;Removing %P\n&#039; -delete

  # add symlink
  mkdir -p &quot;$pkgdir/usr/src&quot;
  ln -sr &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; &quot;$pkgdir/usr/src/$pkgbase&quot;

  # install license file
  install -D -m644 COPYING &quot;${pkgdir}/usr/share/licenses/$pkgname/COPYING&quot;
}

_package-docs() {
  pkgdesc=&quot;Kernel hackers manual - HTML documentation that comes with the ${pkgbase^} kernel&quot;
  provides=(&quot;${_replacesarchkernel[@]/%/-docs=${_archpkgver}}&quot; &quot;${_replacesoldkernels[@]/%/-docs}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-docs}&quot;)
  conflicts=(&quot;${_replacesarchkernel[@]/%/-docs}&quot; &quot;${_replacesoldkernels[@]/%/-docs}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-docs}&quot;)
  replaces=(&quot;${_replacesarchkernel[@]/%/-docs}&quot; &quot;${_replacesoldkernels[@]/%/-docs}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-docs}&quot;)

  cd &quot;${srcdir}/${_srcname}&quot;

  mkdir -p &quot;${pkgdir}/usr/share/doc/${pkgname}&quot;
  cp -al Documentation/* &quot;${pkgdir}/usr/share/doc/${pkgname}&quot;
  find &quot;${pkgdir}&quot; -type f -exec chmod 444 {} \;
  find &quot;${pkgdir}&quot; -type d -exec chmod 755 {} \;

  # install license file
  install -D -m644 COPYING &quot;${pkgdir}/usr/share/licenses/$pkgname/COPYING&quot;
}

pkgname=(&quot;${pkgbase}&quot; &quot;${pkgbase}-headers&quot; &quot;${pkgbase}-docs&quot;)
for _p in ${pkgname[@]}; do
  eval &quot;package_${_p}() {
    $(declare -f &quot;_package${_p#${pkgbase}}&quot;)
    _package${_p#${pkgbase}}
  }&quot;
done

# vim:set ts=8 sts=2 sw=2 et:</code></pre></div><p>rxrpc-Also-unshare-DATA-RESPONSE-packets-when-paged-.patch<br /></p><div class="codebox"><pre><code>From: Hyunwoo Kim &lt;imv4bel@gmail.com&gt;
Date: Thu, 30 Apr 2026 08:35:55 +0900
Subject: rxrpc: Also unshare DATA/RESPONSE packets when paged frags are present

The DATA-packet handler in rxrpc_input_call_event() and the RESPONSE
handler in rxrpc_verify_response() copy the skb to a linear one before
calling into the security ops only when skb_cloned() is true.  An skb
that is not cloned but still carries paged fragments (skb-&gt;data_len != 0)
falls through to the in-place decryption path, which binds the frag
pages directly into the AEAD/skcipher SGL via skb_to_sgvec().

Extend the gate so that any skb with non-linear data is also copied,
ensuring the security handler always operates on a fully linear skb.
The OOM/trace handling already in place is reused.

Fixes: d0d5c0cd1e71 (&quot;rxrpc: Use skb_unshare() rather than skb_cow_data()&quot;)
Signed-off-by: Hyunwoo Kim &lt;imv4bel@gmail.com&gt;
[bwh: Backported to 5.10: The cloning of input data packets is in
 rxrpc_input_packet() here]
Signed-off-by: Ben Hutchings &lt;benh@debian.org&gt;
---
 net/rxrpc/conn_event.c | 2 +-
 net/rxrpc/input.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -291,7 +291,7 @@ static int rxrpc_verify_response(struct rxrpc_connection *conn,
 {
     int ret;
 
-    if (skb_cloned(skb)) {
+    if (skb_cloned(skb) || skb_is_nonlinear(skb)) {
         /* Copy the packet if shared so that we can do in-place
          * decryption.
          */
--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -1287,7 +1287,7 @@ int rxrpc_input_packet(struct sock *udp_sk, struct sk_buff *skb)
          * decryption.
          */
         if (sp-&gt;hdr.securityIndex != 0 &amp;&amp;
-            skb_cloned(skb)) {
+            (skb_cloned(skb) || skb_is_nonlinear(skb))) {
             struct sk_buff *nskb = skb_copy(skb, GFP_ATOMIC);
             if (!nskb) {
                 kfree_skb(skb);</code></pre></div><p>rxrpc-Fix-conn-level-packet-handling-to-unshare-RESP.patch<br /></p><div class="codebox"><pre><code>From: David Howells &lt;dhowells@redhat.com&gt;
Date: Wed, 22 Apr 2026 17:14:33 +0100
Subject: rxrpc: Fix conn-level packet handling to unshare RESPONSE packets
Origin: https://git.kernel.org/linus/24481a7f573305706054c59e275371f8d0fe919f

The security operations that verify the RESPONSE packets decrypt bits of it
in place - however, the sk_buff may be shared with a packet sniffer, which
would lead to the sniffer seeing an apparently corrupt packet (actually
decrypted).

Fix this by handing a copy of the packet off to the specific security
handler if the packet was cloned.

Fixes: 17926a79320a (&quot;[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both&quot;)
Closes: https://sashiko.dev/#/patchset/20260408121252.2249051-1-dhowells%40redhat.com
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
cc: Marc Dionne &lt;marc.dionne@auristor.com&gt;
cc: Jeffrey Altman &lt;jaltman@auristor.com&gt;
cc: Simon Horman &lt;horms@kernel.org&gt;
cc: linux-afs@lists.infradead.org
Link: https://patch.msgid.link/20260422161438.2593376-5-dhowells@redhat.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
[bwh: Backport to 5.10:
 - rxrpc_security::verify_response() takes an additional parameter, so make
   rxrpc_verify_response() pass that through
 - Use trace event enumerators that are available here
]
Signed-off-by: Ben Hutchings &lt;benh@debian.org&gt;
---
 net/rxrpc/conn_event.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

--- a/net/rxrpc/conn_event.c
+++ b/net/rxrpc/conn_event.c
@@ -285,6 +285,35 @@ static void rxrpc_call_is_secure(struct rxrpc_call *call)
     }
 }
 
+static int rxrpc_verify_response(struct rxrpc_connection *conn,
+                 struct sk_buff *skb,
+                 u32 *_abort_code)
+{
+    int ret;
+
+    if (skb_cloned(skb)) {
+        /* Copy the packet if shared so that we can do in-place
+         * decryption.
+         */
+        struct sk_buff *nskb = skb_copy(skb, GFP_NOFS);
+
+        if (nskb) {
+            rxrpc_new_skb(nskb, rxrpc_skb_unshared);
+            ret = conn-&gt;security-&gt;verify_response(conn, nskb,
+                                  _abort_code);
+            rxrpc_free_skb(nskb, rxrpc_skb_freed);
+        } else {
+            /* OOM - Drop the packet. */
+            rxrpc_see_skb(skb, rxrpc_skb_unshared_nomem);
+            ret = -ENOMEM;
+        }
+    } else {
+        ret = conn-&gt;security-&gt;verify_response(conn, skb, _abort_code);
+    }
+
+    return ret;
+}
+
 /*
  * connection-level Rx packet processor
  */
@@ -337,7 +366,7 @@ static int rxrpc_process_event(struct rxrpc_connection *conn,
                                 _abort_code);
 
     case RXRPC_PACKET_TYPE_RESPONSE:
-        ret = conn-&gt;security-&gt;verify_response(conn, skb, _abort_code);
+        ret = rxrpc_verify_response(conn, skb, _abort_code);
         if (ret &lt; 0)
             return ret;
 </code></pre></div><p>rxrpc-input-Open-code-skb_unshare.patch<br /></p><div class="codebox"><pre><code>From: Ben Hutchings &lt;benh@debian.org&gt;
Date: Thu, 7 May 2026 22:17:01 +0200
Subject: rxrpc: input: Open-code skb_unshare()

As preparation for a later fix, replace the call to skb_unshare() from
rxrpc_input_packet() with an open-coded version.  The same
transformation was done as part of upstream commit 1f2740150f90
&quot;rxrpc: Fix potential UAF after skb_unshare() failure&quot;, but that
depends on much larger changes in 6.2 that cannot be backported.

Signed-off-by: Ben Hutchings &lt;benh@debian.org&gt;
---
 net/rxrpc/input.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -1286,19 +1286,20 @@ int rxrpc_input_packet(struct sock *udp_sk, struct sk_buff *skb)
         /* Unshare the packet so that it can be modified for in-place
          * decryption.
          */
-        if (sp-&gt;hdr.securityIndex != 0) {
-            struct sk_buff *nskb = skb_unshare(skb, GFP_ATOMIC);
+        if (sp-&gt;hdr.securityIndex != 0 &amp;&amp;
+            skb_cloned(skb)) {
+            struct sk_buff *nskb = skb_copy(skb, GFP_ATOMIC);
             if (!nskb) {
+                kfree_skb(skb);
                 rxrpc_eaten_skb(skb, rxrpc_skb_unshared_nomem);
                 goto out;
             }
 
-            if (nskb != skb) {
-                rxrpc_eaten_skb(skb, rxrpc_skb_received);
-                skb = nskb;
-                rxrpc_new_skb(skb, rxrpc_skb_unshared);
-                sp = rxrpc_skb(skb);
-            }
+            consume_skb(skb);
+            rxrpc_eaten_skb(skb, rxrpc_skb_received);
+            skb = nskb;
+            rxrpc_new_skb(skb, rxrpc_skb_unshared);
+            sp = rxrpc_skb(skb);
         }
         break;
 </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Allen123456hello)]]></author>
			<pubDate>Tue, 19 May 2026 10:44:35 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8884#p8884</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8883#p8883</link>
			<description><![CDATA[<p>Sorry. It is still affected by one of the two CVEs. I&#039;ll try to fix it later.</p><p>Can&#039;t find the exact reason because it should be fixed in kernel &gt;= 5.10.255</p><p>UPD: I found the reason: CVE-2026-43500&#039;s patches has not been backported to 5.10 series upstream until now.</p>]]></description>
			<author><![CDATA[null@example.com (Allen123456hello)]]></author>
			<pubDate>Tue, 19 May 2026 09:45:40 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8883#p8883</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8879#p8879</link>
			<description><![CDATA[<p>Thanks, did you overlook for a longer test? Especially if that kernel-version is stable running?</p>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Mon, 18 May 2026 19:45:15 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8879#p8879</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8878#p8878</link>
			<description><![CDATA[<p>Yeah I have a complete solution now:</p><p>rebuild the kernel with this PKGBUILD (needed files are already in hyperbola&#039;s git repo):</p><div class="codebox"><pre><code># Maintainer: André Silva &lt;emulatorman@hyperbola.info&gt;
# Contributor: Márcio Silva &lt;coadde@hyperbola.info&gt;
# Contributor: Luke R. &lt;g4jc@hyperbola.info&gt;
# Contributor: Tobias Dausend &lt;throgh@hyperbola.info&gt;
# Contributor: Jesús E.
# Contributor: rachad
# Contributor (Parabola): Nicolás Reynolds &lt;fauno@kiwwwi.com.ar&gt;
# Contributor (Parabola): Sorin-Mihai Vârgolici &lt;smv@yobicore.org&gt;
# Contributor (Parabola): Michał Masłowski &lt;mtjm@mtjm.eu&gt;
# Contributor (Parabola): Luke Shumaker &lt;lukeshu@sbcglobal.net&gt;
# Contributor (Parabola): David P. &lt;megver83@parabola.nu&gt;
# Contributor (Parabola): Andreas Grapentin &lt;andreas@grapentin.org&gt;
# Contributor: Allen123456hello

# Based on linux-lts package

pkgbase=linux-libre-lts
_pkgbasever=5.10-gnu1
_pkgver=5.10.256-gnu1

_replacesarchkernel=(&#039;linux%&#039;) # &#039;%&#039; gets replaced with _kernelname
_replacesmainlinearchkernel=(&#039;linux%&#039;) # &#039;%&#039; gets replaced with _kernelname
_replacesoldkernels=() # &#039;%&#039; gets replaced with _kernelname
_replacesoldmodules=() # &#039;%&#039; gets replaced with _kernelname

_srcname=linux-${_pkgbasever%-*}
_archpkgver=${_pkgver%-*}
pkgver=${_pkgver//-/_}
pkgrel=1
arch=(&#039;i686&#039; &#039;x86_64&#039;)
url=&quot;https://linux-libre.fsfla.org/&quot;
license=(&#039;GPL-2&#039;)
makedepends=(&#039;xmlto&#039; &#039;docbook-xsl&#039; &#039;kmod&#039; &#039;bc&#039; &#039;libelf&#039; &#039;python&#039; &#039;cpio&#039; &#039;dwarves&#039;)
options=(&#039;!strip&#039;)
source=(&quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.lz&quot;
        &quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.lz.sign&quot;
        &quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.lz&quot;
        &quot;https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.lz.sign&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_clut224.ppm&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_clut224.ppm.sig&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_mono.pbm&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_mono.pbm.sig&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_vga16.ppm&quot;
        &quot;https://git.hyperbola.info:50100/creatives/linux-libre_logos.git/plain/logo_linux_vga16.ppm.sig&quot;
        # the main kernel config files: generated by copying it to .config in kernel tree:
        ## ARCH=i386 make oldconfig
        &#039;config.i686&#039;
        ## ARCH=x86_64 make oldconfig
        &#039;config.x86_64&#039;
        # pacman hook for initramfs regeneration
        &#039;90-linux.hook&#039;
        # standard config files for mkinitcpio ramdisk
        &#039;linux.preset&#039;
        &#039;0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch&#039;
        &#039;0002-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch&#039;
        &#039;0003-fix-Atmel-maXTouch-touchscreen-support.patch&#039;
        &#039;0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch&#039;
        &#039;0006-v2-kbuild-support-byacc-as-alternative-YACC-to-bison.patch&#039;
        &#039;0007-sign-file-full-functionality-with-modern-LibreSSL.patch&#039;)
sha512sums=(&#039;b16238c8b746bc9b5078c991847909eba268221f945fb55579e99fc9540b88ccfca5d71f4249f4d3795c522570c30477c986f0f4b98c4029cca1235786c7bc52&#039;
            &#039;SKIP&#039;
            &#039;a78539b2a395090f094d6e12e4a91ef7d5148908d8d1eadc9ffa6c46492cfb8dc8fbedd80701f00a97e838364987ba4ef3d773b034c3546f6e8008cee81e350b&#039;
            &#039;SKIP&#039;
            &#039;13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3&#039;
            &#039;SKIP&#039;
            &#039;267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1&#039;
            &#039;SKIP&#039;
            &#039;7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78&#039;
            &#039;SKIP&#039;
            &#039;0d2cd94aec3d38c84c2e3843ee9baafb1d43812c115d0b9abe1d71f18bf8a0db3c72f78fdaaf1e83f173321988e027074e19a1eb04b8ff5ddae746d3c46e8e01&#039;
            &#039;71f98b1c4416a2f3685a2a78493ab3b4841588735a6e198961b9d4547829ce902ff4993373b986f34cade507c4d1f216a6e4a52f03bfdd963f07026afdca3810&#039;
            &#039;38ddc517f33fe41dec63b31313a82e0e8c05788e9db5e448d23a01605c50fe3422927cfd902e81c3b0eae17502db06f48e7f713e1ba1c9c76fd26f1473b02983&#039;
            &#039;2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf&#039;
            &#039;c4507794fa2e01026d0179171865a2352fc56b32af25123c2627ecd444663ebf00d0080c12821ba73e1ddb7ded852cebdd7329e3997321f41c169d2367718037&#039;
            &#039;4d7388cb03b873f4c360d345dd20b04f9e5ac815183e8ae588f8bdadab2056d6d8f21ae0dd2055ea32bb59364e2d41b9272276abd532a00b8cc89278f8bf409f&#039;
            &#039;5bdb620acf90799b78dea3fd07828c2dc4410f781af47e910c725bd3c8e5ff4695d06e9ab7e59afaa0e759c77917e66e3e2c5f6dd9d4ac59f2a66109adf06cac&#039;
            &#039;d6dadc6a563af83e588c67fc11cc40952a43f5bca0cb53cc3990430ce1944cd29df4526a1a34c2def7e44cf3f5d2202a719d18117ce6acaeadd0a9b10968270d&#039;
            &#039;57f7cf2356a1e78d58298c638987882b43c23e06ab31d6f7284f5d8e2f59781e1fe42f091943c82b3d3b53d13a9cfaf5e6ee460d6ece0613f734404da57a1147&#039;
            &#039;9296c41fab18b2b2ed6a1483061c0012673abf041792ad826d3530a1e837cf82a59e507ada5e05f31be3f780409d5b2defd0bf82de058b92856ada14b243b033&#039;)
validpgpkeys=(&#039;474402C8C582DAFBE389C427BCB7CF877E7D47A7&#039;  # Alexandre Oliva
              &#039;684D54A189305A9CC95446D36B888913DDB59515&#039;) # Márcio Silva

_kernelname=${pkgbase#linux-libre}
_mainlinekernelname=${pkgbase#linux-libre-lts}
_replacesarchkernel=(&quot;${_replacesarchkernel[@]/\%/${_kernelname}}&quot;)
_replacesmainlinearchkernel=(&quot;${_replacesmainlinearchkernel[@]/\%/${_mainlinekernelname}}&quot;)
_replacesoldkernels=(&quot;${_replacesoldkernels[@]/\%/${_kernelname}}&quot;)
_replacesoldmodules=(&quot;${_replacesoldmodules[@]/\%/${_kernelname}}&quot;)

case &quot;${CARCH}&quot; in
  i686|x86_64) KARCH=x86;;
esac

prepare() {
  cd &quot;${srcdir}/${_srcname}&quot;

  # add upstream patch
  if [ &quot;${_pkgbasever}&quot; != &quot;${_pkgver}&quot; ]; then
    lzip -d &quot;${srcdir}/patch-${_pkgbasever}-${_pkgver}.lz&quot;
    patch -p1 -i &quot;${srcdir}/patch-${_pkgbasever}-${_pkgver}&quot;
  fi

  # add freedo as boot logo
  install -m644 -t drivers/video/logo \
    &quot;${srcdir}/logo_linux_&quot;{clut224.ppm,vga16.ppm,mono.pbm}

  # add latest fixes from stable queue, if needed
  # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git

  # ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER
  patch -p1 -i &quot;${srcdir}/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch&quot;

  # maintain the TTY over USB disconnects
  # http://www.coreboot.org/EHCI_Gadget_Debug
  patch -p1 -i &quot;${srcdir}/0002-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch&quot;

  # fix Atmel maXTouch touchscreen support
  # https://labs.parabola.nu/issues/877
  # http://www.fsfla.org/pipermail/linux-libre/2015-November/003202.html
  patch -p1 -i &quot;${srcdir}/0003-fix-Atmel-maXTouch-touchscreen-support.patch&quot;

  # HID: quirks: Add Apple Magic Trackpad 2 to hid_have_special_driver list
  # https://bugzilla.kernel.org/show_bug.cgi?id=210241
  patch -p1 -i &quot;${srcdir}/0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch&quot;

  # kbuild: support byacc as alternative YACC to bison
  # https://patchwork.kernel.org/patch/11218023/
  patch -p1 -i &quot;${srcdir}/0006-v2-kbuild-support-byacc-as-alternative-YACC-to-bison.patch&quot;

  # sign-file: full functionality with modern LibreSSL
  # https://patchwork.kernel.org/patch/11446123/
  patch -p1 -i &quot;${srcdir}/0007-sign-file-full-functionality-with-modern-LibreSSL.patch&quot;

  cat &quot;${srcdir}/config.${CARCH}&quot; &gt; ./.config

  # append pkgrel to extraversion
  sed -ri &quot;s|^(EXTRAVERSION =.*\S).*|\1-${pkgrel}|&quot; Makefile

  # don&#039;t run depmod on &#039;make install&#039;. We&#039;ll do this ourselves in packaging
  sed -i &#039;2iexit 0&#039; scripts/depmod.sh

  # get kernel version
  yes &quot;&quot; | make prepare

  # load configuration
  # Configure the kernel. Replace the line below with one of your choice.
  #make menuconfig # CLI menu for configuration
  #make nconfig # new CLI menu for configuration
  #make xconfig # X-based configuration
  #make oldconfig # using old config from previous kernel version
  # ... or manually edit .config

  # rewrite configuration
  yes &quot;&quot; | make config &gt;/dev/null
}

build() {
  cd &quot;${srcdir}/${_srcname}&quot;

  make ${MAKEFLAGS} LOCALVERSION= bzImage modules
}

_package() {
  pkgdesc=&quot;The ${pkgbase^} kernel and modules&quot;
  [ &quot;${pkgbase}&quot; = &quot;linux-libre-lts&quot; ] &amp;&amp; groups=(&#039;base&#039;)
  depends=(&#039;coreutils&#039; &#039;kmod&#039; &#039;mkinitcpio&gt;=0.7&#039;)
  optdepends=(&#039;kernel-firmware: firmware files for Linux-libre&#039;
              &#039;crda: to set the correct wireless channels of your country&#039;)
  provides=(&quot;${_replacesarchkernel[@]/%/=${_archpkgver}}&quot; &quot;${_replacesoldkernels[@]}&quot; &quot;kernel=${_archpkgver}&quot; &quot;${_replacesmainlinearchkernel[@]}&quot;)
  conflicts=(&quot;${_replacesarchkernel[@]}&quot; &quot;${_replacesoldkernels[@]}&quot; &quot;${_replacesoldmodules[@]}&quot; &quot;${_replacesmainlinearchkernel[@]}&quot;)
  replaces=(&quot;${_replacesarchkernel[@]}&quot; &quot;${_replacesoldkernels[@]}&quot; &quot;${_replacesoldmodules[@]}&quot; &quot;${_replacesmainlinearchkernel[@]}&quot;)
  backup=(&quot;etc/mkinitcpio.d/${pkgbase}.preset&quot;)
  install=linux.install

  cd &quot;${srcdir}/${_srcname}&quot;

  # get kernel version
  _kernver=&quot;$(make LOCALVERSION= kernelrelease)&quot;
  _basekernel=${_kernver%%-*}
  _basekernel=${_basekernel%.*}

  mkdir -p &quot;${pkgdir}&quot;/{lib/modules,lib/firmware,boot}
  install -Dm644 arch/$KARCH/boot/bzImage &quot;${pkgdir}/boot/vmlinuz-${pkgbase}&quot;
  make LOCALVERSION= INSTALL_MOD_PATH=&quot;${pkgdir}&quot; INSTALL_MOD_STRIP=1 modules_install

  # set correct depmod command for install
  sed -e &quot;s|%PKGBASE%|${pkgbase}|g;s|%KERNVER%|${_kernver}|g&quot; \
    &quot;${startdir}/${install}&quot; &gt; &quot;${startdir}/${install}.pkg&quot;
  true &amp;&amp; install=${install}.pkg

  # install mkinitcpio preset file for kernel
  sed &quot;s|%PKGBASE%|${pkgbase}|g&quot; &quot;${srcdir}/linux.preset&quot; |
    install -D -m644 /dev/stdin &quot;${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset&quot;

  # install pacman hook for initramfs regeneration
  sed &quot;s|%PKGBASE%|${pkgbase}|g&quot; &quot;${srcdir}/90-linux.hook&quot; |
    install -D -m644 /dev/stdin &quot;${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook&quot;

  # remove build and source links
  rm -f &quot;${pkgdir}&quot;/lib/modules/${_kernver}/{source,build}
  # remove the firmware
  rm -rf &quot;${pkgdir}/lib/firmware&quot;
  # make room for external modules
  ln -s &quot;../extramodules-${_basekernel}${_kernelname}&quot; &quot;${pkgdir}/lib/modules/${_kernver}/extramodules&quot;
  # add real version for building modules and running depmod from post_install/upgrade
  mkdir -p &quot;${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}&quot;
  echo &quot;${_kernver}&quot; &gt; &quot;${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname}/version&quot;

  # Now we call depmod...
  depmod -b &quot;${pkgdir}&quot; -F System.map &quot;${_kernver}&quot;

  # add kernel configuration file
  # https://issues.hyperbola.info/index.php?do=details&amp;task_id=146
  install -D -m644 .config &quot;${pkgdir}/boot/config-${pkgbase}&quot;

  # install license file
  install -D -m644 COPYING &quot;${pkgdir}/usr/share/licenses/$pkgname/COPYING&quot;
}

_package-headers() {
  pkgdesc=&quot;Header files and scripts for building modules for ${pkgbase^} kernel&quot;
  provides=(&quot;${_replacesarchkernel[@]/%/-headers=${_archpkgver}}&quot; &quot;${_replacesoldkernels[@]/%/-headers}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-headers}&quot;)
  conflicts=(&quot;${_replacesarchkernel[@]/%/-headers}&quot; &quot;${_replacesoldkernels[@]/%/-headers}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-headers}&quot;)
  replaces=(&quot;${_replacesarchkernel[@]/%/-headers}&quot; &quot;${_replacesoldkernels[@]/%/-headers}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-headers}&quot;)

  install -dm755 &quot;${pkgdir}/lib/modules/${_kernver}&quot;

  cd &quot;${srcdir}/${_srcname}&quot;
  install -D -m644 Makefile \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/Makefile&quot;
  install -D -m644 kernel/Makefile \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/kernel/Makefile&quot;
  install -D -m644 .config \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/.config&quot;
  install -D -m644 vmlinux \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/vmlinux&quot;
  install -D -m644 System.map \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/System.map&quot;
  install -D -m644 Module.symvers \
    &quot;${pkgdir}/lib/modules/${_kernver}/build/Module.symvers&quot;

  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/include&quot;

  for i in acpi asm-generic clocksource config crypto drm dt-bindings \
    generated keys kunit kvm linux math-emu media memory misc net \
    pcmcia ras rdma scsi soc sound target trace uapi vdso video xen; do
    cp -a include/${i} &quot;${pkgdir}/lib/modules/${_kernver}/build/include/&quot;
  done

  # copy arch includes for external modules
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}&quot;
  cp -a arch/${KARCH}/include &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/&quot;

  # copy files necessary for later builds
  cp -a scripts &quot;${pkgdir}/lib/modules/${_kernver}/build&quot;

  # fix permissions on scripts dir
  chmod og-w -R &quot;${pkgdir}/lib/modules/${_kernver}/build/scripts&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/.tmp_versions&quot;

  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/kernel&quot;

  cp arch/${KARCH}/Makefile &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/&quot;

  if [ &quot;${CARCH}&quot; = &quot;i686&quot; ]; then
    cp arch/${KARCH}/Makefile_32.cpu &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/&quot;
  fi

  cp arch/${KARCH}/kernel/asm-offsets.s &quot;${pkgdir}/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/&quot;

  # add dm headers
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/md&quot;
  cp drivers/md/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/md&quot;

  # add inotify.h
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/include/linux&quot;
  cp include/linux/inotify.h &quot;${pkgdir}/lib/modules/${_kernver}/build/include/linux/&quot;

  # add wireless headers
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/net/mac80211/&quot;
  cp net/mac80211/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/net/mac80211/&quot;

  # add dvb headers for external modules
  # http://bugs.archlinux.org/task/11194
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/include/config/dvb/&quot;
  cp include/config/dvb/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/include/config/dvb/&quot;

  # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
  # in reference to:
  # http://bugs.archlinux.org/task/13146
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/&quot;
  cp drivers/media/dvb-frontends/lgdt330x.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/i2c/&quot;
  cp drivers/media/i2c/msp3400-driver.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/i2c/&quot;

  # add dvb headers
  # in reference to:
  # http://bugs.archlinux.org/task/20402
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb&quot;
  cp drivers/media/usb/dvb-usb/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends&quot;
  cp drivers/media/dvb-frontends/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/tuners&quot;
  cp drivers/media/tuners/*.h &quot;${pkgdir}/lib/modules/${_kernver}/build/drivers/media/tuners/&quot;

  # add xfs and shmem for aufs building
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/fs/xfs&quot;
  mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/mm&quot;
  # removed in 3.17-gnu series
  # cp fs/xfs/xfs_sb.h &quot;${pkgdir}/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h&quot;

  # copy in Kconfig files
  for i in $(find . -name &quot;Kconfig*&quot;); do
    mkdir -p &quot;${pkgdir}&quot;/lib/modules/${_kernver}/build/`echo ${i} | sed &#039;s|/Kconfig.*||&#039;`
    cp ${i} &quot;${pkgdir}/lib/modules/${_kernver}/build/${i}&quot;
  done

  # add objtool for external module building and enabled VALIDATION_STACK option
  if [ -f tools/objtool/objtool ];  then
      mkdir -p &quot;${pkgdir}/lib/modules/${_kernver}/build/tools/objtool&quot;
      cp -a tools/objtool/objtool ${pkgdir}/lib/modules/${_kernver}/build/tools/objtool/
  fi

  chown -R root.root &quot;${pkgdir}/lib/modules/${_kernver}/build&quot;
  find &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; -type d -exec chmod 755 {} \;

  # strip scripts directory
  find &quot;${pkgdir}/lib/modules/${_kernver}/build/scripts&quot; -type f -perm -u+w 2&gt;/dev/null | while read binary ; do
    case &quot;$(file -bi &quot;${binary}&quot;)&quot; in
      *application/x-sharedlib*) # Libraries (.so)
        /usr/bin/strip ${STRIP_SHARED} &quot;${binary}&quot;;;
      *application/x-archive*) # Libraries (.a)
        /usr/bin/strip ${STRIP_STATIC} &quot;${binary}&quot;;;
      *application/x-executable*) # Binaries
        /usr/bin/strip ${STRIP_BINARIES} &quot;${binary}&quot;;;
      *application/x-pie-executable\;*) # Relocatable binaries
        /usr/bin/strip ${$STRIP_SHARED} &quot;${binary}&quot;;;
    esac
  done

  # strip vmlinux
  strip -v $STRIP_STATIC &quot;${pkgdir}/lib/modules/${_kernver}/build/vmlinux&quot;

  # remove unneeded architectures
  find &quot;${pkgdir}&quot;/lib/modules/${_kernver}/build/arch -mindepth 1 -maxdepth 1 -type d -not -name &quot;$KARCH&quot; -exec rm -rf {} +

  # remove documentation
  rm -r &quot;${pkgdir}/lib/modules/${_kernver}/build/Documentation&quot;

  # remove broken symlinks
  find -L &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; -type l -printf &#039;Removing %P\n&#039; -delete

  # remove loose objects
  find &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; -type f -name &#039;*.o&#039; -printf &#039;Removing %P\n&#039; -delete

  # add symlink
  mkdir -p &quot;$pkgdir/usr/src&quot;
  ln -sr &quot;${pkgdir}/lib/modules/${_kernver}/build&quot; &quot;$pkgdir/usr/src/$pkgbase&quot;

  # install license file
  install -D -m644 COPYING &quot;${pkgdir}/usr/share/licenses/$pkgname/COPYING&quot;
}

_package-docs() {
  pkgdesc=&quot;Kernel hackers manual - HTML documentation that comes with the ${pkgbase^} kernel&quot;
  provides=(&quot;${_replacesarchkernel[@]/%/-docs=${_archpkgver}}&quot; &quot;${_replacesoldkernels[@]/%/-docs}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-docs}&quot;)
  conflicts=(&quot;${_replacesarchkernel[@]/%/-docs}&quot; &quot;${_replacesoldkernels[@]/%/-docs}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-docs}&quot;)
  replaces=(&quot;${_replacesarchkernel[@]/%/-docs}&quot; &quot;${_replacesoldkernels[@]/%/-docs}&quot; &quot;${_replacesmainlinearchkernel[@]/%/-docs}&quot;)

  cd &quot;${srcdir}/${_srcname}&quot;

  mkdir -p &quot;${pkgdir}/usr/share/doc/${pkgname}&quot;
  cp -al Documentation/* &quot;${pkgdir}/usr/share/doc/${pkgname}&quot;
  find &quot;${pkgdir}&quot; -type f -exec chmod 444 {} \;
  find &quot;${pkgdir}&quot; -type d -exec chmod 755 {} \;

  # install license file
  install -D -m644 COPYING &quot;${pkgdir}/usr/share/licenses/$pkgname/COPYING&quot;
}

pkgname=(&quot;${pkgbase}&quot; &quot;${pkgbase}-headers&quot; &quot;${pkgbase}-docs&quot;)
for _p in ${pkgname[@]}; do
  eval &quot;package_${_p}() {
    $(declare -f &quot;_package${_p#${pkgbase}}&quot;)
    _package${_p#${pkgbase}}
  }&quot;
done

# vim:set ts=8 sts=2 sw=2 et:</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Allen123456hello)]]></author>
			<pubDate>Mon, 18 May 2026 15:30:31 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8878#p8878</guid>
		</item>
		<item>
			<title><![CDATA[Re: Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8877#p8877</link>
			<description><![CDATA[<p>Hello, this does <strong>not really</strong> help as we can backport existing patches and work also on that, If you want to support this: Feel invited.<br />But removing modules is not the way to go, except options to clearly remove them at build-time.</p><p>Feel invited to answer as within a week otherwise I will close this thread when no answer is at hand. Sorry if this looks too harsh, but having only the option to deactivate is not a solution finally. The other way is to upgrade the kernel for our current 5.10-cycle. Would you mind then to test the patches upcoming and support solutions? <img src="https://forums.hyperbola.info/img/smilies/smile.png" width="15" height="15" alt="smile" /> It would be great to have one helping hand for testing.</p>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Sun, 17 May 2026 16:39:18 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8877#p8877</guid>
		</item>
		<item>
			<title><![CDATA[Hyperbola is affected by dirty frag]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=8876#p8876</link>
			<description><![CDATA[<p>Hyperbola is both affected by CVE-2026-43284 and CVE-2026-43500.</p><p>Tested using a public </p><div class="codebox"><pre><code>exp.c</code></pre></div><p>Not providing the exploit here because it does not have a license.</p><p>Solution:</p><p>Cherry-pick patches to fix the kernel, or alternatively, update the kernel.</p><p>Workaround:</p><div class="codebox"><pre><code>sh -c &quot;printf &#039;install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n&#039; \
  &gt; /etc/modprobe.d/dirtyfrag.conf; \
  rmmod esp4 esp6 rxrpc 2&gt;/dev/null; \
  echo 3 &gt; /proc/sys/vm/drop_caches; true&quot;
reboot</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Allen123456hello)]]></author>
			<pubDate>Sun, 17 May 2026 14:12:19 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=8876#p8876</guid>
		</item>
	</channel>
</rss>
