summaryrefslogtreecommitdiff
path: root/sys-kernel
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-08-11 03:04:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-08-11 03:04:37 -0500
commitba90b749802640220d8dabc00ab63881741a230e (patch)
tree181a6ca9c09dc17e70de01dee8ffce26d60609e3 /sys-kernel
parent1160c54c5acbfd332d8757e926627ae58c982459 (diff)
downloadbaldeagleos-repo-ba90b749802640220d8dabc00ab63881741a230e.tar.gz
baldeagleos-repo-ba90b749802640220d8dabc00ab63881741a230e.tar.xz
baldeagleos-repo-ba90b749802640220d8dabc00ab63881741a230e.zip
Adding metadata
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/linux-firmware/Manifest1
-rw-r--r--sys-kernel/linux-firmware/linux-firmware-20260810.ebuild354
2 files changed, 355 insertions, 0 deletions
diff --git a/sys-kernel/linux-firmware/Manifest b/sys-kernel/linux-firmware/Manifest
index c25b4268c9d7..294b382d2f76 100644
--- a/sys-kernel/linux-firmware/Manifest
+++ b/sys-kernel/linux-firmware/Manifest
@@ -3,3 +3,4 @@ DIST linux-firmware-20260309.tar.xz 610973936 BLAKE2B 62ec056ad09d3e6740b1245484
DIST linux-firmware-20260410.tar.xz 619615856 BLAKE2B c35531a94841d733690dbfd1e08c6be6c24124a20eac1c75b290820839e962773640a33b29c29376137d55be95d8e5304a86425e2a631b1a0dcc62d45a5d1f6d SHA512 b16c603e058cb1a92cf199c95318adc6dee874920bee377b7c95ca8cc8dabd26d53a97f3aef52c01fde8d186352895e909483fa7c729c8793b9974ccc130a4a6
DIST linux-firmware-20260519.tar.xz 622942528 BLAKE2B ff91ed099c4df0cc59dcca628270d5e533ab522d616fbf4f40fda79977f409a49c9cc57826dcc999470ce6c117526ce07cf595d01dea202184bfb55d1efadfd6 SHA512 c7177fc092e5f1a896d98690ce13f3f1ba023b003caf0cd5bfb6286d90b9b23e763d5c9bc54532e90d97b37286a872a4071915478f87706f4392253543cd40af
DIST linux-firmware-20260622.tar.xz 638944264 BLAKE2B 37463e95e4528c9168a5ea970b0d1b3d1dc18c03fdbb79e1998035e53649228367294318fe8fe276cb69a20551b6eda93d08c42198f0b69ae4f1c6ea54e1da0f SHA512 01355ec0eaad07960c1a447832058787c30b3231883b98d1ce667569d3286e98acc0b138ebfe35f8e9b4abbf48dd0cc0dbdd1629616b72df240013e90cfba9da
+DIST linux-firmware-20260810.tar.xz 648855508 BLAKE2B 9dd9c6656a026d1d5336c58deecb46ff8b62ef7c5c7870af366c2ce7857bdc9c0a3342aca6a67798c1560cdff146a8299d381188d20bda83b80bd4fa20b9debb SHA512 2ef755194eb022e539aa677474ca5c6c8c3616b3302ebc14e1698c62ccb6ba6f8149e507b46c2a0563297c53502defb892ce4d37eb02646d99d955ae899eebe7
diff --git a/sys-kernel/linux-firmware/linux-firmware-20260810.ebuild b/sys-kernel/linux-firmware/linux-firmware-20260810.ebuild
new file mode 100644
index 000000000000..a2dd2400a232
--- /dev/null
+++ b/sys-kernel/linux-firmware/linux-firmware-20260810.ebuild
@@ -0,0 +1,354 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit dist-kernel-utils eapi9-ver linux-info mount-boot savedconfig
+
+# In case this is a real snapshot, fill in commit below.
+# For normal, tagged releases, leave blank
+MY_COMMIT=""
+
+if [[ ${PV} == 99999999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/${PN}.git"
+else
+ if [[ -n "${MY_COMMIT}" ]]; then
+ SRC_URI="https://gitlab.com/kernel-firmware/linux-firmware/-/archive/${MY_COMMIT}/linux-firmware-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}/${PN}-${MY_COMMIT}"
+ else
+ SRC_URI="https://mirrors.edge.kernel.org/pub/linux/kernel/firmware/${P}.tar.xz"
+ fi
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+DESCRIPTION="Linux firmware files"
+HOMEPAGE="https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git"
+
+LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 )
+ redistributable? ( linux-fw-redistributable BSD-2 BSD BSD-4 ISC MIT )"
+SLOT="0"
+IUSE="bindist compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable"
+REQUIRED_USE="initramfs? ( redistributable )
+ ?? ( compress-xz compress-zstd )
+ savedconfig? ( !deduplicate )"
+
+RESTRICT="binchecks strip test
+ !bindist? ( bindist )"
+
+BDEPEND="initramfs? ( app-alternatives/cpio )
+ compress-xz? ( app-arch/xz-utils )
+ compress-zstd? ( app-arch/zstd )
+ deduplicate? ( app-misc/rdfind )
+ ${PYTHON_DEPS}"
+
+#add anything else that collides to this
+RDEPEND="!savedconfig? (
+ redistributable? (
+ !sys-firmware/alsa-firmware[alsa_cards_ca0132,-deduplicate(-)]
+ !sys-block/qla-fc-firmware
+ !sys-firmware/raspberrypi-wifi-ucode
+ )
+ )
+ dist-kernel? (
+ virtual/dist-kernel
+ initramfs? (
+ app-alternatives/cpio
+ )
+ )
+"
+IDEPEND="
+ dist-kernel? (
+ initramfs? ( sys-kernel/installkernel )
+ )
+"
+
+QA_PREBUILT="*"
+PATCHES=(
+ "${FILESDIR}"/${PN}-copy-firmware-r9.patch
+)
+
+pkg_pretend() {
+ if use initramfs; then
+ if use dist-kernel; then
+ # Check, but don't die because we can fix the problem and then
+ # emerge --config ... to re-run installation.
+ nonfatal mount-boot_check_status
+ else
+ mount-boot_pkg_pretend
+ fi
+ fi
+}
+
+pkg_setup() {
+ if use compress-xz || use compress-zstd ; then
+ local CONFIG_CHECK
+
+ if kernel_is -ge 5 19; then
+ use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS_XZ"
+ use compress-zstd && CONFIG_CHECK="~FW_LOADER_COMPRESS_ZSTD"
+ else
+ use compress-xz && CONFIG_CHECK="~FW_LOADER_COMPRESS"
+ if use compress-zstd; then
+ eerror "Kernels <5.19 do not support ZSTD-compressed firmware files"
+ fi
+ fi
+ fi
+ linux-info_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == 99999999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ # rename directory from git snapshot tarball
+ if [[ ${#GIT_COMMIT} -gt 8 ]]; then
+ mv ${PN}-*/ ${P} || die
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Stub out this script to avoid errors in the live ebuild
+ cat >check_whence.py<<-EOF
+ #!/bin/sh
+ exit 0
+ EOF
+
+ cp "${FILESDIR}/${PN}-make-amd-ucode-img.bash" "${T}/make-amd-ucode-img" || die
+ chmod +x "${T}/make-amd-ucode-img" || die
+
+ if use initramfs && ! use dist-kernel; then
+ if [[ -d "${S}/amd-ucode" ]]; then
+ "${T}/make-amd-ucode-img" "${S}" "${S}/amd-ucode" || die
+ else
+ # If this will ever happen something has changed which
+ # must be reviewed
+ die "'${S}/amd-ucode' not found!"
+ fi
+ fi
+
+ # whitelist of misc files
+ local misc_files=(
+ build_packages.py
+ carl9170fw/autogen.sh
+ carl9170fw/genapi.sh
+ contrib/process_linux_firmware.py
+ copy-firmware.sh
+ check_whence.py
+ dedup-firmware.sh
+ LICEN[CS]E.*
+ README.md
+ WHENCE
+ )
+
+ # whitelist of images with a free software license
+ local free_software=(
+ # keyspan_pda (GPL-2+)
+ keyspan_pda/keyspan_pda.fw
+ keyspan_pda/xircom_pgs.fw
+ # dsp56k (GPL-2+)
+ dsp56k/bootstrap.bin
+ # ath9k_htc (BSD GPL-2+ MIT)
+ ath9k_htc/htc_7010-1.4.0.fw
+ ath9k_htc/htc_9271-1.4.0.fw
+ # pcnet_cs, 3c589_cs, 3c574_cs, serial_cs (dual GPL-2/MPL-1.1)
+ cis/LA-PCM.cis
+ cis/PCMLM28.cis
+ cis/DP83903.cis
+ cis/NE2K.cis
+ cis/tamarack.cis
+ cis/PE-200.cis
+ cis/PE520.cis
+ cis/3CXEM556.cis
+ cis/3CCFEM556.cis
+ cis/MT5634ZLX.cis
+ cis/RS-COM-2P.cis
+ cis/COMpad2.cis
+ cis/COMpad4.cis
+ # serial_cs (GPL-3)
+ cis/SW_555_SER.cis
+ cis/SW_7xx_SER.cis
+ cis/SW_8xx_SER.cis
+ # dvb-ttpci (GPL-2+)
+ av7110/bootcode.bin
+ # usbdux, usbduxfast, usbduxsigma (GPL-2+)
+ usbdux_firmware.bin
+ usbduxfast_firmware.bin
+ usbduxsigma_firmware.bin
+ # brcmfmac (GPL-2+)
+ brcm/brcmfmac4330-sdio.Prowise-PT301.txt
+ brcm/brcmfmac43340-sdio.meegopad-t08.txt
+ brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt
+ brcm/brcmfmac43362-sdio.lemaker,bananapro.txt
+ brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt
+ "brcm/brcmfmac43430a0-sdio.ONDA-V80 PLUS.txt"
+ brcm/brcmfmac43430-sdio.AP6212.txt
+ brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
+ brcm/brcmfmac43430-sdio.MUR1DX.txt
+ brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
+ brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
+ brcm/brcmfmac4356-pcie.gpd-win-pocket.txt
+ # isci (GPL-2)
+ isci/isci_firmware.bin
+ # carl9170 (GPL-2+)
+ carl9170-1.fw
+ # atusb (GPL-2+)
+ atusb/atusb-0.2.dfu
+ atusb/atusb-0.3.dfu
+ atusb/rzusb-0.3.bin
+ # mlxsw_spectrum (dual BSD/GPL-2)
+ mellanox/mlxsw_spectrum-13.1420.122.mfa2
+ mellanox/mlxsw_spectrum-13.1530.152.mfa2
+ mellanox/mlxsw_spectrum-13.1620.192.mfa2
+ mellanox/mlxsw_spectrum-13.1702.6.mfa2
+ mellanox/mlxsw_spectrum-13.1703.4.mfa2
+ mellanox/mlxsw_spectrum-13.1910.622.mfa2
+ mellanox/mlxsw_spectrum-13.2000.1122.mfa2
+ )
+
+ if use !redistributable; then
+ # remove files _not_ in the free_software lists
+ # everything else is confirmed (or assumed) to be redistributable
+ # based on upstream acceptance policy
+ einfo "Removing non-redistributable files ..."
+ local OLDIFS="${IFS}"
+ local IFS=$'\n'
+ set -o pipefail
+ find ! -type d -printf "%P\n" \
+ | grep -Fvx -e "${misc_files[*]}" -e "${free_software[*]}" \
+ | xargs -d '\n' --no-run-if-empty rm -v
+
+ [[ ${?} -ne 0 ]] && die "Failed to remove non-redistributable files"
+
+ IFS="${OLDIFS}"
+ fi
+
+ restore_config ${PN}.conf
+}
+
+src_install() {
+ local FW_OPTIONS=( "-v" "-j1" )
+ local files_to_keep=
+
+ if use savedconfig; then
+ if [[ -s "${S}/${PN}.conf" ]]; then
+ files_to_keep="${T}/files_to_keep.lst"
+ grep -v '^#' "${S}/${PN}.conf" 2>/dev/null > "${files_to_keep}" || die
+ [[ -s "${files_to_keep}" ]] || die "grep failed, empty config file?"
+ FW_OPTIONS+=( "--firmware-list" "${files_to_keep}" )
+ fi
+ fi
+
+ if use compress-xz; then
+ FW_OPTIONS+=( "--xz" )
+ elif use compress-zstd; then
+ FW_OPTIONS+=( "--zstd" )
+ fi
+ FW_OPTIONS+=( "${ED}/lib/firmware" )
+ ./copy-firmware.sh "${FW_OPTIONS[@]}" || die
+ use deduplicate && { ./dedup-firmware.sh "${ED}/lib/firmware" || die; }
+
+ pushd "${ED}/lib/firmware" &>/dev/null || die
+
+ # especially use !redistributable will cause some broken symlinks
+ einfo "Removing broken symlinks ..."
+ find * -xtype l -print -delete || die
+
+ # remove empty files and directories, bug #396073
+ # Copy-firmware.sh may have made empty copies of files we removed
+ find -empty -delete || die
+
+ # sanity check
+ if ! ( shopt -s failglob; : * ) 2>/dev/null; then
+ eerror "No files to install. Check your USE flag settings"
+ eerror "and the list of files in your saved configuration."
+ die "Refusing to install an empty package"
+ fi
+
+ # create config file
+ echo "# Remove files that shall not be installed from this list." > "${S}"/${PN}.conf || die
+ find * ! -type d >> "${S}"/${PN}.conf || die
+ save_config "${S}"/${PN}.conf
+
+ popd &>/dev/null || die
+
+ # Instruct Dracut on whether or not we want the microcode in initramfs
+ (
+ insinto /usr/lib/dracut/dracut.conf.d
+ newins - 10-${PN}.conf <<<"early_microcode=$(usex initramfs)"
+ )
+ if use initramfs; then
+ # Install installkernel/kernel-install hooks for non-dracut initramfs
+ # generators that don't bundled the microcode
+ dobin "${T}/make-amd-ucode-img"
+ (
+ exeinto /usr/lib/kernel/preinst.d
+ doexe "${FILESDIR}/35-amd-microcode.install"
+ exeinto /usr/lib/kernel/install.d
+ doexe "${FILESDIR}/35-amd-microcode-systemd.install"
+ )
+ fi
+
+ if use initramfs && ! use dist-kernel; then
+ insinto /boot
+ doins "${S}"/amd-uc.img
+ fi
+
+ dodoc README.md
+ # some licenses require copyright and permission notice to be included
+ use bindist && dodoc -r WHENCE LICENSES
+}
+
+pkg_preinst() {
+ if use savedconfig; then
+ ewarn "USE=savedconfig is active. You must handle file collisions manually."
+ fi
+
+ # Fix 'symlink is blocked by a directory' Bug #871315
+ if has_version "<${CATEGORY}/${PN}-20220913-r2" ; then
+ rm -rf "${EROOT}"/lib/firmware/qcom/LENOVO/21BX
+ fi
+
+ # Fix 'symlink is blocked by a directory' https://bugs.gentoo.org/958268#c3
+ if has_version "<${CATEGORY}/${PN}-20250613" ; then
+ rm -rf "${EROOT}"/lib/firmware/nvidia/{ad103,ad104,ad106,ad107}
+ fi
+
+ # Make sure /boot is available if needed.
+ use initramfs && ! use dist-kernel && mount-boot_pkg_preinst
+}
+
+pkg_postinst() {
+ elog "If you are only interested in particular firmware files, edit the saved"
+ elog "configfile and remove those that you do not want."
+
+ if ver_replacing -lt 20190514; then
+ elog
+ elog 'Starting with version 20190514, installation of many firmware'
+ elog 'files is controlled by USE flags. Please review your USE flag'
+ elog 'and package.license settings if you are missing some files.'
+ fi
+
+ if use initramfs; then
+ if use dist-kernel; then
+ dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" --all
+ else
+ # Don't forget to umount /boot if it was previously mounted by us.
+ mount-boot_pkg_postinst
+ fi
+ fi
+}
+
+pkg_prerm() {
+ # Make sure /boot is mounted so that we can remove /boot/amd-uc.img!
+ use initramfs && ! use dist-kernel && mount-boot_pkg_prerm
+}
+
+pkg_postrm() {
+ # Don't forget to umount /boot if it was previously mounted by us.
+ use initramfs && ! use dist-kernel && mount-boot_pkg_postrm
+}