sys-kernel/linux-firmware: new snapshot, re-save config file conditionally
authorChí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
Thu, 10 Mar 2016 18:37:44 +0000 (19:37 +0100)
committerChí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
Thu, 10 Mar 2016 18:37:44 +0000 (19:37 +0100)
Bug: https://bugs.gentoo.org/show_bug.cgi?id=546690

Package-Manager: portage-2.2.26

sys-kernel/linux-firmware/Manifest
sys-kernel/linux-firmware/linux-firmware-20160223.ebuild [new file with mode: 0644]
sys-kernel/linux-firmware/linux-firmware-99999999.ebuild

index 99c522e373e05af6837c2f10081c6f82607033a2..ed09ef0a2e54af899544bdafdd22b9132d199b6b 100644 (file)
@@ -2,3 +2,4 @@ DIST linux-firmware-20150206.tar.xz 25831872 SHA256 d9c9d87263cdff827b38bcd99c8a
 DIST linux-firmware-20150320.tar.xz 27113932 SHA256 0eafba794ea53b9f5f10714bd8d320b0c1d704801726b28072a99fd71606ba59 SHA512 280663d072eb4dd987ebbcb8b4508a167f3caa45dd21e3e6c8f8abfe6a90a5b9379f71ba4cd576e942a856b378c2d8a6f1e508cd16c7c59ac602ea36dff85ba3 WHIRLPOOL cdf9b5c136aba2cfa547e489e0273deedecab1fb4dfb2743b1fcb0d6ab2a0722702df7036ed0a299450f4257d33e0bd3ca23d650992a0a3df1901c996ba9a5d0
 DIST linux-firmware-20150812.tar.xz 30620844 SHA256 588c3d7882174a09a7061f08d37e1853270ab32911516fadf2a3e069040499f8 SHA512 0636f1cd1f795907e427ae45a0504d2bec5cdde7a1a355c3e13237ca65ec6501d01e7b35049a70d5b6ce9ab9cecef29ecbc1aa5258e0d157b3d59c6c56edc133 WHIRLPOOL 3a03ebd5620f6611c452271955d69f232ea61d34716dff6a0ab864909f01e2c3ea86ade664cef689cbc52e34723328b870c208fb9366d585f661fa232e51cfa4
 DIST linux-firmware-20151207.tar.xz 34075376 SHA256 ef2ba016d777f8cd3f910f3a673a65e5d167bb63c7af9d6e3e1469891c4de8c4 SHA512 b34ee48eaf085bc0dd3d2823678885118bd4f9a854a854eefe92d3e80042a7256505cf72c2d0ff81487797a09261b3af562df2aea2a997ef95950084eca9520c WHIRLPOOL 322488811690f362828d3253b647c6eecab2b05c8bf4f67c6f3a2d97dc48501e51ed658b00c7a988c3211fe255fa905cda461b7d54b180897f1a99ab76c9b11a
+DIST linux-firmware-20160223.tar.xz 35929392 SHA256 fde2f588fc0d2b7efa3b906a831e379ce7b42e60d17a225553b07a308049d189 SHA512 c50dc68b4b14dd40d279ca1f6d88235f2c268d48075b46a890f9ea8eb7121a81b8e991860ac06dd9107f202fb707d8ee681105066b12d1cac4d25e45b6f81426 WHIRLPOOL 356ffe1c2a2d079ae04872e5d8bbae94c38bf6352d451dbb7e916387b8d65eca0f9338598bcf8daec07e679b21dfdf54520542b7f58e827ab637118353220c15
diff --git a/sys-kernel/linux-firmware/linux-firmware-20160223.ebuild b/sys-kernel/linux-firmware/linux-firmware-20160223.ebuild
new file mode 100644 (file)
index 0000000..8415438
--- /dev/null
@@ -0,0 +1,111 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit savedconfig
+
+if [[ ${PV} == 99999999* ]]; then
+       inherit git-2
+       SRC_URI=""
+       EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/firmware/${PN}.git"
+       KEYWORDS=""
+else
+       SRC_URI="mirror://gentoo/${P}.tar.xz"
+       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-1 GPL-2 GPL-3 BSD freedist"
+SLOT="0"
+IUSE="savedconfig"
+
+DEPEND=""
+RDEPEND="!savedconfig? (
+               !sys-firmware/alsa-firmware[alsa_cards_ca0132]
+               !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
+               !<sys-firmware/ivtv-firmware-20080701-r1
+               !media-tv/linuxtv-dvb-firmware[dvb_cards_cx231xx]
+               !media-tv/linuxtv-dvb-firmware[dvb_cards_cx23885]
+               !media-tv/linuxtv-dvb-firmware[dvb_cards_usb-dib0700]
+               !net-dialup/ueagle-atm
+               !net-dialup/ueagle4-atm
+               !net-wireless/ar9271-firmware
+               !net-wireless/i2400m-fw
+               !net-wireless/libertas-firmware
+               !sys-firmware/rt61-firmware
+               !net-wireless/rt73-firmware
+               !net-wireless/rt2860-firmware
+               !net-wireless/rt2870-firmware
+               !sys-block/qla-fc-firmware
+               !sys-firmware/amd-ucode
+               !sys-firmware/iwl1000-ucode
+               !sys-firmware/iwl2000-ucode
+               !sys-firmware/iwl2030-ucode
+               !sys-firmware/iwl3945-ucode
+               !sys-firmware/iwl4965-ucode
+               !sys-firmware/iwl5000-ucode
+               !sys-firmware/iwl5150-ucode
+               !sys-firmware/iwl6000-ucode
+               !sys-firmware/iwl6005-ucode
+               !sys-firmware/iwl6030-ucode
+               !sys-firmware/iwl6050-ucode
+               !sys-firmware/iwl3160-ucode
+               !sys-firmware/iwl7260-ucode
+               !sys-firmware/iwl7265-ucode
+               !sys-firmware/iwl3160-7260-bt-ucode
+               !sys-firmware/radeon-ucode
+       )"
+#add anything else that collides to this
+
+src_unpack() {
+       if [[ ${PV} == 99999999* ]]; then
+               git-2_src_unpack
+       else
+               default
+               # rename directory from git snapshot tarball
+               mv ${PN}-*/ ${P} || die
+       fi
+}
+
+src_prepare() {
+       echo "# Remove files that shall not be installed from this list." > ${PN}.conf
+       find * \( \! -type d -and \! -name ${PN}.conf \) >> ${PN}.conf
+
+       if use savedconfig; then
+               restore_config ${PN}.conf
+               ebegin "Removing all files not listed in config"
+               find * \( \! -type d -and \! -name ${PN}.conf \) \
+                       | sort ${PN}.conf ${PN}.conf - \
+                       | uniq -u | xargs -r rm
+               eend $? || die
+               # remove empty directories, bug #396073
+               find -type d -empty -delete || die
+       fi
+}
+
+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."
+}
index c29fd58e5c3d34f1c0107fc3a2b90699b6154ab3..8415438957eba5f59ece7f14d2626ae7c8d719ab 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -91,7 +91,9 @@ src_prepare() {
 }
 
 src_install() {
-       save_config ${PN}.conf
+       if use !savedconfig; then
+               save_config ${PN}.conf
+       fi
        rm ${PN}.conf || die
        insinto /lib/firmware/
        doins -r *