Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 908361 Details for
Bug 927022
sys-kernel/linux-firmware savedconfig non-functional for symlinks
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Proposed ebuild modification for above patch
linux-firmware-20241017-r3.ebuild (text/plain), 10.94 KB, created by
Anon Emuss
on 2024-11-10 09:06:14 UTC
(
hide
)
Description:
Proposed ebuild modification for above patch
Filename:
MIME Type:
Creator:
Anon Emuss
Created:
2024-11-10 09:06:14 UTC
Size:
10.94 KB
patch
obsolete
># Copyright 1999-2024 Gentoo Authors ># Distributed under the terms of the GNU General Public License v2 > >EAPI=8 >PYTHON_COMPAT=( python3_{10..13} ) >inherit dist-kernel-utils linux-info mount-boot python-any-r1 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://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/snapshot/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" > S="${WORKDIR}/${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 ) > unknown-license? ( all-rights-reserved )" >SLOT="0" >IUSE="bindist compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable savedconfig unknown-license" >REQUIRED_USE="initramfs? ( redistributable ) > ?? ( compress-xz compress-zstd ) > savedconfig? ( !deduplicate )" > >RESTRICT="binchecks strip test > !bindist? ( bindist ) > unknown-license? ( 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] > !sys-block/qla-fc-firmware > !sys-firmware/raspberrypi-wifi-ucode > ) > unknown-license? ( > !sys-firmware/alsa-firmware[alsa_cards_korg1212] > !sys-firmware/alsa-firmware[alsa_cards_maestro3] > !sys-firmware/alsa-firmware[alsa_cards_sb16] > !sys-firmware/alsa-firmware[alsa_cards_ymfpci] > ) > ) > dist-kernel? ( > virtual/dist-kernel > initramfs? ( > app-alternatives/cpio > ) > ) >" >IDEPEND=" > dist-kernel? ( > initramfs? ( sys-kernel/installkernel ) > ) >" > >QA_PREBUILT="*" >PATCHES=( > "${FILESDIR}"/${PN}-copy-firmware-r6.patch > "${FILESDIR}"/${PN}-check-whence.patch > "${FILESDIR}/${PN}-symbolic-link-target.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. > [[ -z ${ROOT} ]] && 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 > > 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 > ) > > # blacklist of images with unknown license > local unknown_license=( > korg/k1212.dsp > ess/maestro3_assp_kernel.fw > ess/maestro3_assp_minisrc.fw > yamaha/ds1_ctrl.fw > yamaha/ds1_dsp.fw > yamaha/ds1e_ctrl.fw > ttusb-budget/dspbootcode.bin > emi62/bitstream.fw > emi62/loader.fw > emi62/midi.fw > emi62/spdif.fw > ti_3410.fw > ti_5052.fw > mts_mt9234mu.fw > mts_mt9234zba.fw > whiteheat.fw > whiteheat_loader.fw > cpia2/stv0672_vp4.bin > vicam/firmware.fw > edgeport/boot.fw > edgeport/boot2.fw > edgeport/down.fw > edgeport/down2.fw > edgeport/down3.bin > sb16/mulaw_main.csp > sb16/alaw_main.csp > sb16/ima_adpcm_init.csp > sb16/ima_adpcm_playback.csp > sb16/ima_adpcm_capture.csp > sun/cassini.bin > acenic/tg1.bin > acenic/tg2.bin > adaptec/starfire_rx.bin > adaptec/starfire_tx.bin > yam/1200.bin > yam/9600.bin > ositech/Xilinx7OD.bin > qlogic/isp1000.bin > myricom/lanai.bin > yamaha/yss225_registers.bin > lgs8g75.fw > ) > > if use !unknown-license; then > einfo "Removing files with unknown license ..." > rm -v "${unknown_license[@]}" || die > fi > > if use !redistributable; then > # remove files _not_ in the free_software or unknown_license 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[*]}" -e "${unknown_license[*]}" \ > | 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" ) > 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 directories, bug #396073 > find -type d -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 WHENCE LICEN[CS]E.* >} > >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 > > # 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." > > local ver > for ver in ${REPLACING_VERSIONS}; do > if ver_test ${ver} -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.' > break > fi > done > > if use initramfs; then > if use dist-kernel; then > [[ -z ${ROOT} ]] && dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" > 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 >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 927022
:
908359
| 908361 |
908362
|
913789