diff --git a/sci-libs/linux-gpib/Manifest b/sci-libs/linux-gpib/Manifest index f8c76cc65197e..ca4203a525940 100644 --- a/sci-libs/linux-gpib/Manifest +++ b/sci-libs/linux-gpib/Manifest @@ -1,2 +1,3 @@ DIST gpib_firmware-2008-08-10.tar.gz 173004 BLAKE2B 05fcde09de5246b86004c263c733d64316511bdb0b84dfbd9b94cb78e2909c0d191ff21ee0d77e7f0947e9231bd4cd62d6348e8f9beefd6d201b473732ff23d2 SHA512 f2a0ee3316b75ac36ed88568e45ca4c69935a6d10783c65582003ab39686f2a69d3002901866065f4f5efa9fdd4c779e038d1d7ce24bba266a619c164d5ac10d DIST linux-gpib-4.3.6.tar.gz 1433121 BLAKE2B 64e2b19106d0531df990b1338f82a71707e54f448d652f6379eb9cd71feb84637090ed8fdfb0264248aa6879d5b9a1dc50e75c21a2c22a31397120eea5903e98 SHA512 a8005c71bfddb854ecbe4df0a81530e44378150242508b10df58c61d039c6d329020407608e31f1ef360de0c83169e76b793c032256e732d229bfd2da4cbaa35 +DIST linux-gpib-4.3.7.tar.gz 1309937 BLAKE2B 22808daa8bc3bbb9c93dc94b0186327ec1f40d72842b00a4d8907d03e769ce378544de5a02b4b597f94a7928c265bcc21055134a14ff8855a0380a83eaa14258 SHA512 a0783cf54f37132b6f608f555d453be3c1da693e4bddff9e87b40c0ba034a44ac640c87f96d187cf6f98501177f09fec04e7380512bcbb7fc8d0d4652b3be7ad diff --git a/sci-libs/linux-gpib/linux-gpib-4.3.7.ebuild b/sci-libs/linux-gpib/linux-gpib-4.3.7.ebuild new file mode 100644 index 0000000000000..88ba73ef792ca --- /dev/null +++ b/sci-libs/linux-gpib/linux-gpib-4.3.7.ebuild @@ -0,0 +1,258 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{10..13} ) +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +DISTUTILS_USE_PEP517=setuptools + +inherit linux-info readme.gentoo-r1 autotools guile-single perl-functions python-single-r1 udev + +# Check for latest firmware version on bump +FW_PV="2008-08-10" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.code.sf.net/p/linux-gpib/git" + S="${WORKDIR}/${P}/${PN}-user" +else + SRC_URI="https://downloads.sourceforge.net/linux-gpib/${P}.tar.gz" + S="${WORKDIR}/${PN}-user-${PV}" + KEYWORDS="~amd64 ~arm ~x86" +fi + +DESCRIPTION="Driver library for GPIB (IEEE 488.2) hardware" +HOMEPAGE="https://linux-gpib.sourceforge.io/" +SRC_URI+=" + firmware? ( https://linux-gpib.sourceforge.io/firmware/gpib_firmware-${FW_PV}.tar.gz ) +" +S="${WORKDIR}/${PN}-user-${PV}" + +LICENSE="GPL-2" +SLOT="0" + +IUSE="pcmcia static guile perl php python tcl doc firmware +modules" + +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +COMMONDEPEND=" + sys-libs/readline:= + tcl? ( dev-lang/tcl:0= ) + guile? ( ${GUILE_DEPS} ) + perl? ( dev-lang/perl:= ) + php? ( dev-lang/php:= ) + python? ( ${PYTHON_DEPS} ) + firmware? ( sys-apps/fxload ) +" +RDEPEND="${COMMONDEPEND} + acct-group/gpib + modules? ( ~sci-libs/linux-gpib-modules-${PV} ) +" +DEPEND="${COMMONDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/docbook-sgml-utils[jadetex] ) + python? ( ${DISTUTILS_DEPS} ${PYTHON_DEPS} ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.3.0-perl.patch +) + +pkg_setup() { + if use modules; then + linux-info_pkg_setup + if kernel_is -ge 6 13 0; then + eerror "The GPIB drivers have been merged upstream into kernel" + eerror "version 6.13.0 and up. Please enable CONFIG_GPIB for" + eerror "your kernel and disable the \"modules\" USE flag." + die "\"modules\" USE flag not supported for this kernel." + fi + else + CONFIG_CHECK="~GPIB" + linux-info_pkg_setup + fi + + use guile && guile-single_pkg_setup + use perl && perl_set_version + use python && python_setup +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + default + unpack "${WORKDIR}/${P}/${PN}-user-${PV}.tar.gz" + fi +} + +src_prepare() { + default + + use guile && guile_bump_sources + + # We have to use --root instead of --prefix for setup.py. + # Otherwise the python files are not installed properly into site-packages. + sed -i -e \ + 's/--prefix=$(DESTDIR)$(prefix)/--root=$(DESTDIR)/g' \ + language/python/Makefile.am || die + + eautoreconf + + if use python; then + pushd language/python >/dev/null || die + distutils-r1_src_prepare + popd >/dev/null || die + fi +} + +src_configure() { + myeconfargs=( + $(use_enable static) + $(use_enable guile guile-binding) + $(use_enable perl perl-binding) + $(use_enable php php-binding) + $(use_enable python python-binding) + $(use_enable tcl tcl-binding) + $(use_enable doc documentation) + --disable-python-binding + ) + + econf "${myeconfargs[@]}" + + if use python; then + pushd language/python >/dev/null || die + distutils-r1_src_configure + popd >/dev/null || die + fi +} + +src_compile() { + default + if use python; then + pushd language/python >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi +} + +src_install() { + # PYTHONDONTWRITEBYTECODE=0 is required, otherwise + # installation of the python files is skipped + FIRM_DIR="${EPREFIX}"/usr/share/usb + emake \ + DESTDIR="${ED}" \ + INSTALL_MOD_PATH="${ED}" \ + HOTPLUG_USB_CONF_DIR=/etc/hotplug/usb \ + UDEV_RULES_DIR="$(get_udevdir)"/rules.d \ + USB_FIRMWARE_DIR=${FIRM_DIR} \ + PYTHONDONTWRITEBYTECODE=0 \ + docdir="/usr/share/doc/${PF}/html" install + + use guile && guile_unstrip_ccache + + if use perl; then + einfo "Installing perl module" + cd "${S}"/language/perl || die + emake DESTDIR="${ED}" install + perl_fix_packlist + perl_delete_emptybsdir + cd "${S}" || die + fi + + if use python; then + pushd language/python >/dev/null || die + distutils-r1_src_install + popd >/dev/null || die + fi + + echo "KERNEL==\"gpib[0-9]*\", MODE=\"0660\", GROUP=\"gpib\"" >> 99-gpib.rules || die + udev_dorules 99-gpib.rules + + dodoc AUTHORS README* NEWS + if [[ ${PV} == 9999 ]]; then + dodoc ../ChangeLog + else + dodoc doc/linux-gpib.pdf ChangeLog + fi + + insinto /etc + newins util/templates/gpib.conf gpib.conf + newins util/templates/gpib.conf gpib.conf.example + + if use pcmcia; then + insinto /etc/pcmcia + doins "${S}"/etc/pcmcia/* + fi + + # remove .la files + find "${ED}" -name '*.la' -delete || die + + DOC_CONTENTS=" +As the udev rules were changed and refactored in this release it is +necessary to remove any manually installed pre-4.3.0 gpib udev rules files +in /etc/udev/rules.d/. The files to remove are: +\n + 99-agilent_82357a.rules\n + 99-gpib-generic.rules\n + 99-ni_usb_gpib.rules\n +\n +You need to run the 'gpib_config' utility to setup the driver before +you can use it. In order to do it automatically you can add to your +start script something like this (supposing the appropriate driver +is loaded on the startup): +\n + gpib_config --minor 0 +\n +To give a user access to the computer's gpib board you will have to add +them to the group 'gpib' or, you could change the permissions on the device +files /dev/gpib[0-15] to something you like better, using 'chmod' +\n +Edit /etc/gpib.conf to match your interface board, and any devices you wish +to open via ibfind(). See the documentation in /usr/share/linux-gpib/html for +more information. +\n +" + + if use pcmcia; then + DOC_CONTENTS+=' +For PCMCIA cards:\n +All files needed for a PCMCIA board were copied to /etc/pcmcia. +You may wish to edit the options passed to the gpib_config call in the +/etc/pcmcia/linux-gpib-pcmcia script. +You may need to send a SIGHUP signal to the cardmgr daemon to force it +to reload the files in /etc/pcmcia \(alternatively you could use your +pcmcia init.d script to restart the cardmgr, or you could just reboot\). +The driver module will be loaded as needed by the cardmgr. + +' + fi + + if use firmware; then + DOC_CONTENTS+=' +For Agilent \(HP\) 82341C and 82341D cards: +The firmware for these boards is uploaded by passing the appropriate +firmware file from /usr/share/linux-gpib/hp_82341 directory to +gpib_config using the -I or --init-data command line option. Example:\n +gpib_config --minor 0 --init-data /usr/share/linux-gpib/hp_82341/hp_82341c_fw.bin +' + fi + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sci-libs/linux-gpib/linux-gpib-9999.ebuild b/sci-libs/linux-gpib/linux-gpib-9999.ebuild index 323ee8b32be61..88ba73ef792ca 100644 --- a/sci-libs/linux-gpib/linux-gpib-9999.ebuild +++ b/sci-libs/linux-gpib/linux-gpib-9999.ebuild @@ -8,10 +8,8 @@ PYTHON_COMPAT=( python3_{10..13} ) DISTUTILS_EXT=1 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools -MODULES_OPTIONAL_IUSE=+modules -inherit autotools distutils-r1 guile-single linux-mod-r1 -inherit perl-functions readme.gentoo-r1 udev +inherit linux-info readme.gentoo-r1 autotools guile-single perl-functions python-single-r1 udev # Check for latest firmware version on bump FW_PV="2008-08-10" @@ -31,10 +29,13 @@ HOMEPAGE="https://linux-gpib.sourceforge.io/" SRC_URI+=" firmware? ( https://linux-gpib.sourceforge.io/firmware/gpib_firmware-${FW_PV}.tar.gz ) " +S="${WORKDIR}/${PN}-user-${PV}" LICENSE="GPL-2" SLOT="0" -IUSE="guile pcmcia perl php python static tcl doc firmware" + +IUSE="pcmcia static guile perl php python tcl doc firmware +modules" + REQUIRED_USE=" guile? ( ${GUILE_REQUIRED_USE} ) python? ( ${PYTHON_REQUIRED_USE} ) @@ -46,12 +47,12 @@ COMMONDEPEND=" guile? ( ${GUILE_DEPS} ) perl? ( dev-lang/perl:= ) php? ( dev-lang/php:= ) + python? ( ${PYTHON_DEPS} ) firmware? ( sys-apps/fxload ) " RDEPEND="${COMMONDEPEND} acct-group/gpib - python? ( ${PYTHON_DEPS} ) - !sci-libs/linux-gpib-modules + modules? ( ~sci-libs/linux-gpib-modules-${PV} ) " DEPEND="${COMMONDEPEND}" BDEPEND=" @@ -66,7 +67,7 @@ PATCHES=( pkg_setup() { if use modules; then - linux-mod-r1_pkg_setup + linux-info_pkg_setup if kernel_is -ge 6 13 0; then eerror "The GPIB drivers have been merged upstream into kernel" eerror "version 6.13.0 and up. Please enable CONFIG_GPIB for" @@ -89,10 +90,6 @@ src_unpack() { else default unpack "${WORKDIR}/${P}/${PN}-user-${PV}.tar.gz" - if use modules; then - unpack "${WORKDIR}/${P}/${PN}-kernel-${PV}.tar.gz" - mv "${WORKDIR}/${PN}-kernel-${PV}" "${WORKDIR}/${PN}-kernel" || die - fi fi } @@ -135,11 +132,6 @@ src_configure() { distutils-r1_src_configure popd >/dev/null || die fi - - if use modules; then - MODULES_MAKEARGS+=( LINUX_SRCDIR="${KV_OUT_DIR}" ) - use debug && MODULES_MAKEARGS+=( 'GPIB-DEBUG=1' ) - fi } src_compile() { @@ -149,27 +141,6 @@ src_compile() { distutils-r1_src_compile popd >/dev/null || die fi - - if use modules; then - local modlist=( - "agilent_82350b=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/agilent_82350b" - "agilent_82357a=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/agilent_82357a" - "cb7210=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/cb7210" - "cec_gpib=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/cec" - "fmh_gpib=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/fmh_gpib" - "gpib_bitbang=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/gpio" - "hp82335=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/hp_82335" - "hp_82341=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/hp_82341" - "ines_gpib=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/ines" - "lpvo_usb_gpib=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/lpvo_usb_gpib" - "nec7210=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/nec7210" - "ni_usb_gpib=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/ni_usb" - "gpib_common=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/sys" - "tms9914=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/tms9914" - "tnt4882=gpib:${S}/../${PN}-kernel:${S}/../${PN}-kernel/drivers/gpib/tnt4882" - ) - linux-mod-r1_src_compile - fi } src_install() { @@ -185,8 +156,6 @@ src_install() { PYTHONDONTWRITEBYTECODE=0 \ docdir="/usr/share/doc/${PF}/html" install - use modules && linux-mod-r1_src_install - use guile && guile_unstrip_ccache if use perl; then @@ -280,7 +249,6 @@ gpib_config --minor 0 --init-data /usr/share/linux-gpib/hp_82341/hp_82341c_fw.bi } pkg_postinst() { - use modules && linux-mod-r1_pkg_postinst readme.gentoo_print_elog udev_reload }