1 |
|
# Copyright 1999-2022 Gentoo Authors
|
|
1 |
# Copyright 1999-2023 Gentoo Authors
|
2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
|
EAPI=7
|
|
4 |
EAPI=8
|
5 |
5 |
|
6 |
6 |
inherit meson
|
7 |
7 |
|
8 |
|
if [[ ${PV} == "9999" ]] ; then
|
9 |
|
EGIT_REPO_URI="https://review.coreboot.org/flashrom.git"
|
10 |
|
inherit git-r3
|
11 |
|
else
|
12 |
|
MY_P="${PN}-v${PV}"
|
13 |
|
SRC_URI="https://download.flashrom.org/releases/${MY_P}.tar.bz2"
|
14 |
|
KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv x86"
|
15 |
|
S="${WORKDIR}/${MY_P}"
|
16 |
|
fi
|
|
8 |
MY_P="${PN}-v${PV}"
|
|
9 |
SRC_URI="https://download.flashrom.org/releases/${MY_P}.tar.bz2"
|
|
10 |
KEYWORDS="amd64 arm arm64 ppc ~ppc64 ~riscv x86"
|
|
11 |
S="${WORKDIR}/${MY_P}"
|
17 |
12 |
|
18 |
13 |
DESCRIPTION="Utility for reading, writing, erasing and verifying flash ROM chips"
|
19 |
14 |
HOMEPAGE="https://flashrom.org/Flashrom"
|
... | ... | |
21 |
16 |
LICENSE="GPL-2"
|
22 |
17 |
SLOT="0"
|
23 |
18 |
|
24 |
|
# The defaults match the upstream meson_options.txt.
|
|
19 |
# The defaults should match the upstream "default" flags in meson.build
|
25 |
20 |
IUSE_PROGRAMMERS="
|
26 |
21 |
atahpt
|
27 |
22 |
atapromise
|
... | ... | |
31 |
26 |
+dediprog
|
32 |
27 |
+developerbox-spi
|
33 |
28 |
+digilent-spi
|
|
29 |
+dirtyjtag-spi
|
34 |
30 |
+drkaiser
|
35 |
31 |
+dummy
|
36 |
32 |
+ft2232-spi
|
... | ... | |
40 |
36 |
jlink-spi
|
41 |
37 |
+linux-mtd
|
42 |
38 |
+linux-spi
|
|
39 |
mediatek-i2c-spi
|
43 |
40 |
mstarddc-spi
|
44 |
41 |
+nic3com
|
45 |
42 |
+nicintel
|
... | ... | |
48 |
45 |
nicnatsemi
|
49 |
46 |
+nicrealtek
|
50 |
47 |
+ogp-spi
|
|
48 |
parade-lspcon
|
51 |
49 |
+pickit2-spi
|
52 |
50 |
+pony-spi
|
|
51 |
+raiden-debug-spi
|
53 |
52 |
+rayer-spi
|
|
53 |
realtek-mst-i2c-spi
|
54 |
54 |
+satamv
|
55 |
55 |
+satasii
|
56 |
56 |
+serprog
|
57 |
57 |
+stlinkv3-spi
|
58 |
|
+usbblaster-spi
|
59 |
|
"
|
60 |
|
IUSE="${IUSE_PROGRAMMERS} +internal-dmi tools"
|
|
58 |
+usbblaster-spi"
|
|
59 |
IUSE="${IUSE_PROGRAMMERS} +internal-dmi test tools"
|
61 |
60 |
|
62 |
|
RDEPEND="atahpt? ( sys-apps/pciutils )
|
|
61 |
RESTRICT="!test? ( test )"
|
|
62 |
|
|
63 |
COMMON="atahpt? ( sys-apps/pciutils )
|
63 |
64 |
atapromise? ( sys-apps/pciutils )
|
64 |
65 |
atavia? ( sys-apps/pciutils )
|
65 |
66 |
ch341a-spi? ( virtual/libusb:1 )
|
66 |
67 |
dediprog? ( virtual/libusb:1 )
|
67 |
68 |
developerbox-spi? ( virtual/libusb:1 )
|
68 |
69 |
digilent-spi? ( virtual/libusb:1 )
|
|
70 |
dirtyjtag-spi? ( virtual/libusb:1 )
|
69 |
71 |
drkaiser? ( sys-apps/pciutils )
|
70 |
72 |
ft2232-spi? ( dev-embedded/libftdi:1= )
|
71 |
73 |
gfxnvidia? ( sys-apps/pciutils )
|
... | ... | |
73 |
75 |
it8212? ( sys-apps/pciutils )
|
74 |
76 |
jlink-spi? ( dev-embedded/libjaylink )
|
75 |
77 |
nic3com? ( sys-apps/pciutils )
|
|
78 |
nicintel? ( sys-apps/pciutils )
|
76 |
79 |
nicintel-eeprom? ( sys-apps/pciutils )
|
77 |
80 |
nicintel-spi? ( sys-apps/pciutils )
|
78 |
|
nicintel? ( sys-apps/pciutils )
|
79 |
81 |
nicnatsemi? ( sys-apps/pciutils )
|
80 |
82 |
nicrealtek? ( sys-apps/pciutils )
|
81 |
83 |
ogp-spi? ( sys-apps/pciutils )
|
82 |
84 |
pickit2-spi? ( virtual/libusb:1 )
|
83 |
|
rayer-spi? ( sys-apps/pciutils )
|
|
85 |
raiden-debug-spi? ( virtual/libusb:1 )
|
84 |
86 |
satamv? ( sys-apps/pciutils )
|
85 |
87 |
satasii? ( sys-apps/pciutils )
|
86 |
88 |
stlinkv3-spi? ( virtual/libusb:1 )
|
87 |
89 |
usbblaster-spi? ( dev-embedded/libftdi:1= )"
|
88 |
|
DEPEND="${RDEPEND}
|
89 |
|
sys-apps/diffutils"
|
90 |
|
RDEPEND+=" !internal-dmi? ( sys-apps/dmidecode )"
|
|
90 |
RDEPEND="${COMMON}
|
|
91 |
!internal-dmi? ( sys-apps/dmidecode )"
|
|
92 |
DEPEND="${COMMON}
|
|
93 |
sys-apps/diffutils
|
|
94 |
linux-mtd? ( sys-kernel/linux-headers )
|
|
95 |
linux-spi? ( sys-kernel/linux-headers )
|
|
96 |
mediatek-i2c-spi? ( sys-kernel/linux-headers )
|
|
97 |
mstarddc-spi? ( sys-kernel/linux-headers )
|
|
98 |
parade-lspcon? ( sys-kernel/linux-headers )
|
|
99 |
realtek-mst-i2c-spi? ( sys-kernel/linux-headers )"
|
|
100 |
BDEPEND="test? ( dev-util/cmocka )"
|
91 |
101 |
|
92 |
102 |
DOCS=( README Documentation/ )
|
93 |
103 |
|
94 |
|
PATCHES=(
|
95 |
|
"${FILESDIR}"/${PN}-1.2_meson-fixes.patch
|
96 |
|
"${FILESDIR}"/${PN}-1.2_meson-install-manpage.patch
|
97 |
|
)
|
98 |
|
|
99 |
104 |
src_configure() {
|
|
105 |
local programmers="$(printf '%s,' $(for flag in ${IUSE_PROGRAMMERS//+/}; do usev ${flag}; done))"
|
|
106 |
programmers="${programmers%,}"
|
|
107 |
programmers="${programmers//-/_}"
|
100 |
108 |
local emesonargs=(
|
101 |
|
$(meson_use atahpt config_atahpt)
|
102 |
|
$(meson_use atapromise config_atapromise)
|
103 |
|
$(meson_use atavia config_atavia)
|
104 |
|
$(meson_use buspirate-spi config_buspirate_spi)
|
105 |
|
$(meson_use ch341a-spi config_ch341a_spi)
|
106 |
|
$(meson_use dediprog config_dediprog)
|
107 |
|
$(meson_use developerbox-spi config_developerbox_spi)
|
108 |
|
$(meson_use digilent-spi config_digilent_spi)
|
109 |
|
$(meson_use drkaiser config_drkaiser)
|
110 |
|
$(meson_use dummy config_dummy)
|
111 |
|
$(meson_use ft2232-spi config_ft2232_spi)
|
112 |
|
$(meson_use gfxnvidia config_gfxnvidia)
|
113 |
|
$(meson_use internal config_internal)
|
114 |
|
$(meson_use internal-dmi config_internal_dmi)
|
115 |
|
$(meson_use it8212 config_it8212)
|
116 |
|
$(meson_use jlink-spi config_jlink_spi)
|
117 |
|
$(meson_use linux-mtd config_linux_mtd)
|
118 |
|
$(meson_use linux-spi config_linux_spi)
|
119 |
|
$(meson_use mstarddc-spi config_mstarddc_spi)
|
120 |
|
$(meson_use nic3com config_nic3com)
|
121 |
|
$(meson_use nicintel-eeprom config_nicintel_eeprom)
|
122 |
|
$(meson_use nicintel-spi config_nicintel_spi)
|
123 |
|
$(meson_use nicintel config_nicintel)
|
124 |
|
$(meson_use nicnatsemi config_nicnatsemi)
|
125 |
|
$(meson_use nicrealtek config_nicrealtek)
|
126 |
|
$(meson_use ogp-spi config_ogp_spi)
|
127 |
|
$(meson_use pickit2-spi config_pickit2_spi)
|
128 |
|
$(meson_use pony-spi config_pony_spi)
|
129 |
|
$(meson_use rayer-spi config_rayer_spi)
|
130 |
|
$(meson_use satamv config_satamv)
|
131 |
|
$(meson_use satasii config_satasii)
|
132 |
|
$(meson_use stlinkv3-spi config_stlinkv3_spi)
|
133 |
|
$(meson_use serprog config_serprog)
|
134 |
|
$(meson_use usbblaster-spi config_usbblaster_spi)
|
|
109 |
-Dclassic_cli="enabled"
|
|
110 |
-Dprogrammer="${programmers}"
|
|
111 |
$(meson_feature test tests)
|
|
112 |
$(meson_feature tools ich_descriptors_tool)
|
135 |
113 |
)
|
136 |
114 |
meson_src_configure
|
137 |
115 |
}
|
... | ... | |
139 |
117 |
src_install() {
|
140 |
118 |
meson_src_install
|
141 |
119 |
|
|
120 |
# Upstream requires libflashrom.a to be present at build time because the classic CLI
|
|
121 |
# executable uses internal symbols from that library. Therefore, we let it be built
|
|
122 |
# but keep it out of the installed tree.
|
|
123 |
find "${ED}" -name '*.a' -delete || die
|
|
124 |
|
142 |
125 |
if use tools; then
|
143 |
126 |
dosbin "${BUILD_DIR}"/util/ich_descriptors_tool/ich_descriptors_tool
|
144 |
127 |
fi
|