From: Ulrich Müller Date: Sat, 18 May 2019 17:20:41 +0000 (+0200) Subject: sys-kernel/linux-firmware: New snapshot, add USE flags. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=636d119a26c187ffd64d0611e3245be29e85dcb9;p=gentoo.git sys-kernel/linux-firmware: New snapshot, add USE flags. Introduce two USE flags: "redistributable": Install all firmware files whose license will at least allow redistribution. (So, USE="-redistributable" will install only files that are free software.) This is enabled by an IUSE default. "unknown-license": In addition, install firmware files with an unknown license according to upstream's WHENCE file. In savedconfig code, call rm only once, instead of executing it for each file. EAPI bumped to 7. Added without KEYWORDS for testing. Bug: https://bugs.gentoo.org/318841#c20 Package-Manager: Portage-2.3.66, Repoman-2.3.12 Signed-off-by: Ulrich Müller --- diff --git a/sys-kernel/linux-firmware/Manifest b/sys-kernel/linux-firmware/Manifest index 5acb58070394..9c7833d0b138 100644 --- a/sys-kernel/linux-firmware/Manifest +++ b/sys-kernel/linux-firmware/Manifest @@ -1 +1,2 @@ DIST linux-firmware-20190502.tar.gz 185125493 BLAKE2B 48e60d08893688ab546d3d834490f5633c890c523890dedda75154fa041db8a4ae6663ce29485d32cf65556c91906aa8eb4f58ebbc95c34b5aeffb15c8737a98 SHA512 4dbc6548a66b5fcf4af47422004123b42f4c62088c5d97c8f24e03403d7acf729d9335addd68b383ecd9e8dc602b301534842c032a58ef920fad74f2c61d29ae +DIST linux-firmware-20190514.tar.gz 186854834 BLAKE2B cc4feeb4627fa402e445b8176557d67107701c6c0db44f5e5398b4040a0b80d40e32731ca3a31ca67de1e134e6b05f7e43ad29f5793c69e23fa220562624d53f SHA512 eff7a5b7c65b254949443b9d2943332f486c73a69baaaa8398c1298cfe1c06c9fdafa2dcfb2f9d1c02adad8b5e205f25bd61001fee99814e12e5d524179bc3e2 diff --git a/sys-kernel/linux-firmware/linux-firmware-20190514.ebuild b/sys-kernel/linux-firmware/linux-firmware-20190514.ebuild new file mode 100644 index 000000000000..843a21b35325 --- /dev/null +++ b/sys-kernel/linux-firmware/linux-firmware-20190514.ebuild @@ -0,0 +1,291 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit savedconfig + +if [[ ${PV} == 99999999* ]]; then + inherit git-r3 + SRC_URI="" + EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/${PN}.git" +else + GIT_COMMIT="711d3297bac870af42088a467459a0634c1970ca" + SRC_URI="https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~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 no-source-code ) + unknown-license? ( all-rights-reserved ) + )" +SLOT="0" +IUSE="+redistributable savedconfig unknown-license" +RESTRICT="binchecks strip + redistributable? ( unknown-license? ( bindist ) )" + +RDEPEND="!savedconfig? ( + redistributable? ( + !sys-firmware/alsa-firmware[alsa_cards_ca0132] + 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] + ) + !media-tv/cx18-firmware + ! ${PN}.conf + find * ! -type d ! -name ${PN}.conf >> ${PN}.conf + + if use savedconfig; then + restore_config ${PN}.conf + + local file preserved_files=() remove=() + + while IFS= read -r file; do + # Ignore comments. + if [[ ${file} != "#"* ]]; then + preserved_files+=("${file}") + fi + done < ${PN}.conf || die + + while IFS= read -d "" -r file; do + has "${file}" "${preserved_files[@]}" || remove+=("${file}") + done < <(find * ! -type d ! -name ${PN}.conf -print0 || die) + printf "%s\0" "${remove[@]}" | xargs -0 --no-run-if-empty rm || die + fi + + # remove empty directories, bug #396073 + find -type d -empty -delete || die +} + +src_install() { + if use !savedconfig; then + save_config ${PN}.conf + fi + rm ${PN}.conf || die + insinto /lib/firmware/ + doins -r * +} + +pkg_preinst() { + if use savedconfig; then + ewarn "USE=savedconfig is active. You must handle file collisions manually." + fi +} + +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." +} diff --git a/sys-kernel/linux-firmware/metadata.xml b/sys-kernel/linux-firmware/metadata.xml index c662ac904b9d..7370ea010ccd 100644 --- a/sys-kernel/linux-firmware/metadata.xml +++ b/sys-kernel/linux-firmware/metadata.xml @@ -14,6 +14,10 @@ Gentoo Kernel Project + Install also non-free (but redistributable) + firmware files Allows individual selection of firmware files + Install firmware files whose license is + unknown