summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-06-10 22:32:32 +0100
committerSam James <sam@gentoo.org>2023-06-10 22:32:37 +0100
commita09cf66a0d720125efdfd0f62643ba4be61545a7 (patch)
treec9ea794cc16534c6211e64bb280758dd38704c24
parentdev-lang/swig: drop 4.0.2, 4.1.1 (diff)
downloadgentoo-a09cf66a0d720125efdfd0f62643ba4be61545a7.tar.gz
gentoo-a09cf66a0d720125efdfd0f62643ba4be61545a7.tar.bz2
gentoo-a09cf66a0d720125efdfd0f62643ba4be61545a7.zip
sci-libs/libsigrok: fix build w/ swig-4.1
Closes: https://bugs.gentoo.org/878395 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--sci-libs/libsigrok/files/libsigrok-0.5.2-swig-4.1.patch11
-rw-r--r--sci-libs/libsigrok/libsigrok-0.5.2-r4.ebuild156
2 files changed, 167 insertions, 0 deletions
diff --git a/sci-libs/libsigrok/files/libsigrok-0.5.2-swig-4.1.patch b/sci-libs/libsigrok/files/libsigrok-0.5.2-swig-4.1.patch
new file mode 100644
index 000000000000..6513491270cf
--- /dev/null
+++ b/sci-libs/libsigrok/files/libsigrok-0.5.2-swig-4.1.patch
@@ -0,0 +1,11 @@
+https://bugs.gentoo.org/878395
+--- a/bindings/cxx/enums.py
++++ b/bindings/cxx/enums.py
+@@ -73,6 +73,8 @@
+ code = open(os.path.join(outdirname, 'cxx/enums.cpp'), 'w')
+ swig = open(os.path.join(outdirname, 'swig/enums.i'), 'w')
+
++print('%include "attribute.i" \n', file=swig)
++
+ for file in (header, code):
+ print("/* Generated file - edit enums.py instead! */", file=file)
diff --git a/sci-libs/libsigrok/libsigrok-0.5.2-r4.ebuild b/sci-libs/libsigrok/libsigrok-0.5.2-r4.ebuild
new file mode 100644
index 000000000000..8da4999fe538
--- /dev/null
+++ b/sci-libs/libsigrok/libsigrok-0.5.2-r4.ebuild
@@ -0,0 +1,156 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit autotools python-r1 java-pkg-opt-2 udev xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="git://sigrok.org/${PN}"
+ inherit git-r3
+else
+ SRC_URI="https://sigrok.org/download/source/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+fi
+
+DESCRIPTION="Basic hardware drivers for logic analyzers and input/output file format support"
+HOMEPAGE="https://sigrok.org/wiki/Libsigrok"
+
+LICENSE="GPL-3"
+SLOT="0/4"
+IUSE="bluetooth +cxx ftdi hidapi java parport python serial static-libs test +udev usb"
+REQUIRED_USE="java? ( cxx )
+ python? ( cxx ${PYTHON_REQUIRED_USE} )"
+
+RESTRICT="!test? ( test )"
+
+# We also support librevisa, but that isn't in the tree ...
+LIB_DEPEND="
+ >=dev-libs/glib-2.32.0[static-libs(+)]
+ >=dev-libs/libzip-0.8:=[static-libs(+)]
+ bluetooth? ( >=net-wireless/bluez-4.0:= )
+ cxx? ( dev-cpp/glibmm:2[static-libs(+)] )
+ ftdi? ( dev-embedded/libftdi:1[static-libs(+)] )
+ hidapi? ( >=dev-libs/hidapi-0.8.0 )
+ parport? ( sys-libs/libieee1284[static-libs(+)] )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-python/pygobject-3.0.0[${PYTHON_USEDEP}]
+ )
+ serial? ( >=dev-libs/libserialport-0.1.1[static-libs(+)] )
+ usb? ( virtual/libusb:1[static-libs(+)] )
+"
+RDEPEND="
+ java? ( >=virtual/jre-1.8:* )
+ !static-libs? ( ${LIB_DEPEND//\[static-libs(+)]} )
+ static-libs? ( ${LIB_DEPEND} )
+"
+DEPEND="${LIB_DEPEND//\[static-libs(+)]}
+ cxx? ( app-doc/doxygen )
+ java? (
+ >=dev-lang/swig-3.0.6
+ >=virtual/jdk-1.8:*
+ )
+ python? (
+ >=dev-lang/swig-3.0.6
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
+ test? ( >=dev-libs/check-0.9.4 )
+ virtual/pkgconfig
+"
+
+S="${WORKDIR}"/${P}
+
+PATCHES=(
+ # https://sigrok.org/bugzilla/show_bug.cgi?id=1527
+ "${FILESDIR}/${P}-swig-4.patch"
+ # https://sigrok.org/bugzilla/show_bug.cgi?id=1526
+ "${FILESDIR}/${P}-check-0.15.patch"
+ # https://bugs.gentoo.org/878395
+ "${FILESDIR}/${PN}-0.5.2-swig-4.1.patch"
+)
+
+pkg_setup() {
+ use python && python_setup
+ java-pkg-opt-2_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack || default
+}
+
+sigrok_src_prepare() {
+ eautoreconf
+}
+
+src_prepare() {
+ default
+ sigrok_src_prepare
+ use python && python_copy_sources
+}
+
+sigrok_src_configure() {
+ econf \
+ $(use_with bluetooth libbluez) \
+ $(use_with ftdi libftdi) \
+ $(use_with hidapi libhidapi) \
+ $(use_with parport libieee1284) \
+ $(use_with serial libserialport) \
+ $(use_with usb libusb) \
+ $(use_enable cxx) \
+ $(use_enable java) \
+ $(use_enable static-libs static) \
+ "${@}"
+}
+
+each_python_configure() {
+ cd "${BUILD_DIR}"
+ sigrok_src_configure --disable-ruby --enable-python
+}
+
+src_configure() {
+ sigrok_src_configure --disable-ruby --disable-python
+ use python && python_foreach_impl each_python_configure
+}
+
+each_python_compile() {
+ cd "${BUILD_DIR}"
+ emake python-build
+}
+
+src_compile() {
+ default
+ use python && python_foreach_impl each_python_compile
+}
+
+src_test() {
+ emake check
+}
+
+each_python_install() {
+ cd "${BUILD_DIR}"
+ emake python-install DESTDIR="${D}"
+ python_optimize
+}
+
+src_install() {
+ default
+ use python && python_foreach_impl each_python_install
+ use udev && udev_dorules contrib/*.rules
+ find "${D}" -name '*.la' -type f -delete || die
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ udev_reload
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ udev_reload
+}