sci-libs/linux-gpib: add 4.3.7

Closes: https://bugs.gentoo.org/944714
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
This commit is contained in:
Andreas K. Hüttel 2025-10-06 21:00:11 +02:00
parent 32f7342219
commit 3fed013aab
No known key found for this signature in database
GPG Key ID: DC2B16215ED5412A
3 changed files with 267 additions and 40 deletions

View File

@ -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

View File

@ -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
}

View File

@ -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
}