You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
4.9 KiB
182 lines
4.9 KiB
# Copyright 1999-2022 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
PYTHON_COMPAT=( python3_{8..11} )
|
|
|
|
inherit readme.gentoo-r1 autotools perl-functions python-single-r1 udev
|
|
|
|
# Check for latest firmware version on bump
|
|
FW_PV="2008-08-10"
|
|
|
|
DESCRIPTION="Driver library for GPIB (IEEE 488.2) hardware"
|
|
HOMEPAGE="https://linux-gpib.sourceforge.io/"
|
|
SRC_URI="mirror://sourceforge/linux-gpib/${P}.tar.gz
|
|
firmware? ( https://linux-gpib.sourceforge.io/firmware/gpib_firmware-${FW_PV}.tar.gz )
|
|
"
|
|
S="${WORKDIR}/${PN}-user-${PV}"
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm ~x86"
|
|
IUSE="pcmcia static guile perl php python tcl doc firmware"
|
|
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
|
|
|
COMMONDEPEND="
|
|
sys-libs/readline:=
|
|
tcl? ( dev-lang/tcl:0= )
|
|
guile? ( dev-scheme/guile:12 )
|
|
perl? ( dev-lang/perl:= )
|
|
php? ( dev-lang/php:= )
|
|
python? ( ${PYTHON_DEPS} )
|
|
firmware? ( sys-apps/fxload )
|
|
"
|
|
RDEPEND="${COMMONDEPEND}
|
|
acct-group/gpib
|
|
~sci-libs/linux-gpib-modules-${PV}
|
|
"
|
|
DEPEND="${COMMONDEPEND}"
|
|
BDEPEND="
|
|
virtual/pkgconfig
|
|
doc? ( app-text/docbook-sgml-utils )
|
|
perl? ( virtual/perl-ExtUtils-MakeMaker )
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/${PN}-4.3.0-perl.patch
|
|
)
|
|
|
|
pkg_setup() {
|
|
use perl && perl_set_version
|
|
use python && python_setup
|
|
}
|
|
|
|
src_unpack() {
|
|
default
|
|
unpack "${WORKDIR}/${P}/${PN}-user-${PV}.tar.gz"
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
# 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
|
|
}
|
|
|
|
src_configure() {
|
|
econf \
|
|
$(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)
|
|
}
|
|
|
|
src_install() {
|
|
# PYTHONDONTWRITEBYTECODE=0 is required, otherwise
|
|
# installation of the python files is skipped
|
|
FIRM_DIR=/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
|
|
|
|
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
|
|
|
|
echo "KERNEL==\"gpib[0-9]*\", MODE=\"0660\", GROUP=\"gpib\"" >> 99-gpib.rules
|
|
udev_dorules 99-gpib.rules
|
|
|
|
dodoc doc/linux-gpib.pdf ChangeLog AUTHORS README* NEWS
|
|
|
|
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
|
|
|
|
# fix rules files
|
|
local f
|
|
find "${ED}$(get_udevdir)"/rules.d -type f -print0 | while read -rd '' f ; do
|
|
grep -q "${ED}" "${f}" && einfo "File ${f} contains a temporary path, fixing."
|
|
sed -i -e "s:${ED}:/:g" "${f}"
|
|
done
|
|
|
|
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
|
|
}
|