summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2020-04-28 10:31:40 +0100
committerMarek Szuba <marecki@gentoo.org>2020-04-28 10:34:31 +0100
commitb5a312d32873362067980b2a02886a4b79d08ca6 (patch)
tree7ce4af873e67b09c0e43efc0324d47ba3ab38e63 /sys-apps
parentmedia-sound/qmmp: Removed old (diff)
downloadgentoo-b5a312d32873362067980b2a02886a4b79d08ca6.tar.gz
gentoo-b5a312d32873362067980b2a02886a4b79d08ca6.tar.bz2
gentoo-b5a312d32873362067980b2a02886a4b79d08ca6.zip
sys-apps/flashrom: switch to building with meson
Much simpler ebuild, libflashrom is shared, and most importantly - it gets an auto-generated pkg-config file. Upstream meson scripts have for now, as previously mentioned, not reached feature parity with the Makefile but with some patching, we can now at least support all the programmers. Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/flashrom/files/flashrom-1.2_meson-fixes.patch263
-rw-r--r--sys-apps/flashrom/flashrom-1.2-r2.ebuild147
2 files changed, 410 insertions, 0 deletions
diff --git a/sys-apps/flashrom/files/flashrom-1.2_meson-fixes.patch b/sys-apps/flashrom/files/flashrom-1.2_meson-fixes.patch
new file mode 100644
index 000000000000..84dec173676a
--- /dev/null
+++ b/sys-apps/flashrom/files/flashrom-1.2_meson-fixes.patch
@@ -0,0 +1,263 @@
+--- a/meson.build
++++ b/meson.build
+@@ -44,6 +44,7 @@
+ config_gfxnvidia = get_option('config_gfxnvidia')
+ config_internal = get_option('config_internal')
+ config_it8212 = get_option('config_it8212')
++config_jlink_spi = get_option('config_jlink_spi')
+ config_linux_mtd = get_option('config_linux_mtd')
+ config_linux_spi = get_option('config_linux_spi')
+ config_mstarddc_spi = get_option('config_mstarddc_spi')
+@@ -67,6 +68,9 @@
+ deps = []
+ srcs = []
+
++need_libftdi = false
++need_libpci = false
++need_libusb = false
+ need_raw_access = false
+ need_serial = false
+
+@@ -81,24 +85,24 @@
+ add_project_arguments('-DHAVE_UTSNAME=1', language : 'c')
+ endif
+
+-# some programmers require libusb
+-if get_option('usb')
+- srcs += 'usbdev.c'
+- deps += dependency('libusb-1.0')
+-else
++if get_option('no_libftdi_programmers')
++ message('Disabling ALL libftdi-based programmers')
++ config_ft2232_spi = false
++ config_usbblaster_spi = false
++endif
++
++if get_option('no_libusb_programmers')
++ message('Disabling ALL libusb-based programmers')
+ config_ch341a_spi = false
+ config_dediprog = false
+- config_digilent_spi = false
+ config_developerbox_spi = false
++ config_digilent_spi = false
+ config_pickit2_spi = false
++ config_stlinkv3_spi = false
+ endif
+
+-# some programmers require libpci
+-if get_option('pciutils')
+- srcs += 'pcidev.c'
+- deps += dependency('libpci')
+- cargs += '-DNEED_PCI=1'
+-else
++if get_option('no_libpci_programmers')
++ message('Disabling ALL libpci-based programmers')
+ config_atahpt = false
+ config_atapromise = false
+ config_atavia = false
+@@ -121,14 +125,17 @@
+ # set defines for configured programmers
+ if config_atahpt
+ srcs += 'atahpt.c'
++ need_libpci = true
+ cargs += '-DCONFIG_ATAHPT=1'
+ endif
+ if config_atapromise
+ srcs += 'atapromise.c'
++ need_libpci = true
+ cargs += '-DCONFIG_ATAPROMISE=1'
+ endif
+ if config_atavia
+ srcs += 'atavia.c'
++ need_libpci = true
+ cargs += '-DCONFIG_ATAVIA=1'
+ endif
+ if config_buspirate_spi
+@@ -138,22 +145,27 @@
+ endif
+ if config_ch341a_spi
+ srcs += 'ch341a_spi.c'
++ need_libusb = true
+ cargs += '-DCONFIG_CH341A_SPI=1'
+ endif
+ if config_dediprog
+ srcs += 'dediprog.c'
++ need_libusb = true
+ cargs += '-DCONFIG_DEDIPROG=1'
+ endif
+ if config_developerbox_spi
+ srcs += 'developerbox_spi.c'
++ need_libusb = true
+ cargs += '-DCONFIG_DEVELOPERBOX_SPI=1'
+ endif
+ if config_digilent_spi
+ srcs += 'digilent_spi.c'
++ need_libusb = true
+ cargs += '-DCONFIG_DIGILENT_SPI=1'
+ endif
+ if config_drkaiser
+ srcs += 'drkaiser.c'
++ need_libpci = true
+ cargs += '-DCONFIG_DRKAISER=1'
+ endif
+ if config_dummy
+@@ -162,12 +174,13 @@
+ endif
+ if config_ft2232_spi
+ srcs += 'ft2232_spi.c'
++ need_libftdi = true
+ cargs += '-DCONFIG_FT2232_SPI=1'
+- deps += dependency('libftdi1')
+ cargs += '-DHAVE_FT232H=1'
+ endif
+ if config_gfxnvidia
+ srcs += 'gfxnvidia.c'
++ need_libpci = true
+ cargs += '-DCONFIG_GFXNVIDIA=1'
+ endif
+ if config_internal
+@@ -186,6 +199,7 @@
+ srcs += 'sb600spi.c'
+ srcs += 'wbsio_spi.c'
+ endif
++ need_libpci = true
+ config_bitbang_spi = true
+ cargs += '-DCONFIG_INTERNAL=1'
+ if get_option('config_internal_dmi')
+@@ -195,6 +209,7 @@
+ endif
+ if config_it8212
+ srcs += 'it8212.c'
++ need_libpci = true
+ cargs += '-DCONFIG_IT8212=1'
+ endif
+ if config_linux_mtd
+@@ -211,36 +226,44 @@
+ endif
+ if config_nic3com
+ srcs += 'nic3com.c'
++ need_libpci = true
+ cargs += '-DCONFIG_NIC3COM=1'
+ endif
+ if config_nicintel
+ srcs += 'nicintel.c'
++ need_libpci = true
+ cargs += '-DCONFIG_NICINTEL=1'
+ endif
+ if config_nicintel_eeprom
+ srcs += 'nicintel_eeprom.c'
++ need_libpci = true
+ cargs += '-DCONFIG_NICINTEL_EEPROM=1'
+ endif
+ if config_nicintel_spi
+ srcs += 'nicintel_spi.c'
++ need_libpci = true
+ config_bitbang_spi = true
+ cargs += '-DCONFIG_NICINTEL_SPI=1'
+ endif
+ if config_nicnatsemi
+ srcs += 'nicnatsemi.c'
++ need_libpci = true
+ cargs += '-DCONFIG_NICNATSEMI=1'
+ endif
+ if config_nicrealtek
+ srcs += 'nicrealtek.c'
++ need_libpci = true
+ cargs += '-DCONFIG_NICREALTEK=1'
+ endif
+ if config_ogp_spi
+ config_bitbang_spi = true
+ srcs += 'ogp_spi.c'
++ need_libpci = true
+ cargs += '-DCONFIG_OGP_SPI=1'
+ endif
+ if config_pickit2_spi
+ srcs += 'pickit2_spi.c'
++ need_libusb = true
+ cargs += '-DCONFIG_PICKIT2_SPI=1'
+ endif
+ if config_pony_spi
+@@ -252,15 +275,18 @@
+ if config_rayer_spi
+ srcs += 'rayer_spi.c'
+ config_bitbang_spi = true
++ need_libpci = true
+ need_raw_access = true
+ cargs += '-DCONFIG_RAYER_SPI=1'
+ endif
+ if config_satamv
+ srcs += 'satamv.c'
++ need_libpci = true
+ cargs += '-DCONFIG_SATAMV=1'
+ endif
+ if config_satasii
+ srcs += 'satasii.c'
++ need_libpci = true
+ cargs += '-DCONFIG_SATASII=1'
+ endif
+ if config_serprog
+@@ -270,12 +296,19 @@
+ endif
+ if config_usbblaster_spi
+ srcs += 'usbblaster_spi.c'
++ need_libftdi = true
+ cargs += '-DCONFIG_USBBLASTER_SPI=1'
+ endif
+ if config_stlinkv3_spi
+ srcs += 'stlinkv3_spi.c'
++ need_libusb = true
+ cargs += '-DCONFIG_STLINKV3_SPI=1'
+ endif
++if config_jlink_spi
++ srcs += 'jlink_spi.c'
++ cargs += '-DCONFIG_JLINK_SPI=1'
++ deps += dependency('libjaylink')
++endif
+
+ # bitbanging SPI infrastructure
+ if config_bitbang_spi
+@@ -296,6 +329,25 @@
+ srcs += 'serial.c'
+ endif
+
++# some programmers require libftdi
++if need_libftdi
++ deps += dependency('libftdi1')
++endif
++
++# some programmers require libpci
++if need_libpci
++ srcs += 'pcidev.c'
++ deps += dependency('libpci')
++ cargs += '-DNEED_PCI=1'
++endif
++
++# some programmers require libusb
++if need_libusb
++ srcs += 'usbdev.c'
++ deps += dependency('libusb-1.0')
++endif
++
++
+ prefix = get_option('prefix')
+ sbindir = join_paths(prefix, get_option('sbindir'))
+ libdir = join_paths(prefix, get_option('libdir'))
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,5 +1,6 @@
+-option('pciutils', type : 'boolean', value : true, description : 'use pciutils')
+-option('usb', type : 'boolean', value : true, description : 'use libusb1')
++option('no_libftdi_programmers', type : 'boolean', value : false, description : 'disable all programmers depending on libftdi')
++option('no_libpci_programmers', type : 'boolean', value : false, description : 'disable all programmers depending on libpci')
++option('no_libusb_programmers', type : 'boolean', value : false, description : 'disable all programmers depending on libusb')
+
+ option('config_atahpt', type : 'boolean', value : false, description : 'Highpoint (HPT) ATA/RAID controllers')
+ option('config_atapromise', type : 'boolean', value : false, description : 'Promise ATA controller')
+@@ -16,6 +17,7 @@
+ option('config_internal', type : 'boolean', value : true, description : 'internal/onboard')
+ option('config_internal_dmi', type : 'boolean', value : true, description : 'Use internal DMI parser')
+ option('config_it8212', type : 'boolean', value : true, description : 'ITE IT8212F PATA')
++option('config_jlink_spi', type : 'boolean', value : false, description : 'SEGGER J-Link and compatible')
+ option('config_linux_mtd', type : 'boolean', value : true, description : 'Linux MTD interfaces')
+ option('config_linux_spi', type : 'boolean', value : true, description : 'Linux spidev interfaces')
+ option('config_mstarddc_spi', type : 'boolean', value : false, description : 'MSTAR DDC support')
diff --git a/sys-apps/flashrom/flashrom-1.2-r2.ebuild b/sys-apps/flashrom/flashrom-1.2-r2.ebuild
new file mode 100644
index 000000000000..7d87b5147714
--- /dev/null
+++ b/sys-apps/flashrom/flashrom-1.2-r2.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://review.coreboot.org/flashrom.git"
+ inherit git-r3
+else
+ MY_P="${PN}-v${PV}"
+ SRC_URI="https://download.flashrom.org/releases/${MY_P}.tar.bz2"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Utility for reading, writing, erasing and verifying flash ROM chips"
+HOMEPAGE="https://flashrom.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+# The defaults match the upstream meson_options.txt.
+IUSE_PROGRAMMERS="
+ atahpt
+ atapromise
+ +atavia
+ +buspirate-spi
+ +ch341a-spi
+ +dediprog
+ +developerbox-spi
+ +digilent-spi
+ +drkaiser
+ +dummy
+ +ft2232-spi
+ +gfxnvidia
+ +internal
+ +it8212
+ jlink-spi
+ +linux-mtd
+ +linux-spi
+ mstarddc-spi
+ +nic3com
+ +nicintel
+ +nicintel-eeprom
+ +nicintel-spi
+ nicnatsemi
+ +nicrealtek
+ +ogp-spi
+ +pickit2-spi
+ +pony-spi
+ +rayer-spi
+ +satamv
+ +satasii
+ +serprog
+ +stlinkv3-spi
+ +usbblaster-spi
+"
+IUSE="${IUSE_PROGRAMMERS} +internal-dmi tools"
+
+LIB_DEPEND="
+ atahpt? ( sys-apps/pciutils[static-libs(+)] )
+ atapromise? ( sys-apps/pciutils[static-libs(+)] )
+ atavia? ( sys-apps/pciutils[static-libs(+)] )
+ ch341a-spi? ( virtual/libusb:1[static-libs(+)] )
+ dediprog? ( virtual/libusb:1[static-libs(+)] )
+ developerbox-spi? ( virtual/libusb:1[static-libs(+)] )
+ digilent-spi? ( virtual/libusb:1[static-libs(+)] )
+ drkaiser? ( sys-apps/pciutils[static-libs(+)] )
+ ft2232-spi? ( dev-embedded/libftdi:=[static-libs(+)] )
+ gfxnvidia? ( sys-apps/pciutils[static-libs(+)] )
+ internal? ( sys-apps/pciutils[static-libs(+)] )
+ it8212? ( sys-apps/pciutils[static-libs(+)] )
+ jlink-spi? ( dev-embedded/libjaylink[static-libs(+)] )
+ nic3com? ( sys-apps/pciutils[static-libs(+)] )
+ nicintel-eeprom? ( sys-apps/pciutils[static-libs(+)] )
+ nicintel-spi? ( sys-apps/pciutils[static-libs(+)] )
+ nicintel? ( sys-apps/pciutils[static-libs(+)] )
+ nicnatsemi? ( sys-apps/pciutils[static-libs(+)] )
+ nicrealtek? ( sys-apps/pciutils[static-libs(+)] )
+ ogp-spi? ( sys-apps/pciutils[static-libs(+)] )
+ pickit2-spi? ( virtual/libusb:0[static-libs(+)] )
+ rayer-spi? ( sys-apps/pciutils[static-libs(+)] )
+ satamv? ( sys-apps/pciutils[static-libs(+)] )
+ satasii? ( sys-apps/pciutils[static-libs(+)] )
+ stlinkv3-spi? ( virtual/libusb:1[static-libs(+)] )
+ usbblaster-spi? ( dev-embedded/libftdi:=[static-libs(+)] )
+"
+RDEPEND="${LIB_DEPEND//\[static-libs(+)]}"
+DEPEND="${RDEPEND}
+ sys-apps/diffutils"
+RDEPEND+=" !internal-dmi? ( sys-apps/dmidecode )"
+
+DOCS=( README Documentation/ )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.2_meson-fixes.patch
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_use atahpt config_atahpt)
+ $(meson_use atapromise config_atapromise)
+ $(meson_use atavia config_atavia)
+ $(meson_use buspirate-spi config_buspirate_spi)
+ $(meson_use ch341a-spi config_ch341a_spi)
+ $(meson_use dediprog config_dediprog)
+ $(meson_use developerbox-spi config_developerbox_spi)
+ $(meson_use digilent-spi config_digilent_spi)
+ $(meson_use drkaiser config_drkaiser)
+ $(meson_use dummy config_dummy)
+ $(meson_use ft2232-spi config_ft2232_spi)
+ $(meson_use gfxnvidia config_gfxnvidia)
+ $(meson_use internal config_internal)
+ $(meson_use internal-dmi config_internal_dmi)
+ $(meson_use it8212 config_it8212)
+ $(meson_use jlink-spi config_jlink_spi)
+ $(meson_use linux-mtd config_linux_mtd)
+ $(meson_use linux-spi config_linux_spi)
+ $(meson_use mstarddc-spi config_mstarddc_spi)
+ $(meson_use nic3com config_nic3com)
+ $(meson_use nicintel-eeprom config_nicintel_eeprom)
+ $(meson_use nicintel-spi config_nicintel_spi)
+ $(meson_use nicintel config_nicintel)
+ $(meson_use nicnatsemi config_nicnatsemi)
+ $(meson_use nicrealtek config_nicrealtek)
+ $(meson_use ogp-spi config_ogp_spi)
+ $(meson_use pickit2-spi config_pickit2_spi)
+ $(meson_use pony-spi config_pony_spi)
+ $(meson_use rayer-spi config_rayer_spi)
+ $(meson_use satasii config_satamv)
+ $(meson_use satamv config_satasii)
+ $(meson_use stlinkv3-spi config_stlinkv3_spi)
+ $(meson_use serprog config_serprog)
+ $(meson_use usbblaster-spi config_usbblaster_spi)
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ if use tools; then
+ dosbin "${BUILD_DIR}"/util/ich_descriptors_tool/ich_descriptors_tool
+ fi
+}