Skip to content

Commit

Permalink
sci-libs/linux-gpib: Version bump
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.11, Repoman-2.3.3
  • Loading branch information
akhuettel committed Oct 4, 2017
1 parent 5c4ecb4 commit 45672c4
Show file tree
Hide file tree
Showing 2 changed files with 216 additions and 0 deletions.
1 change: 1 addition & 0 deletions sci-libs/linux-gpib/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ DIST gpib_firmware-2006-11-12.tar.gz 169357 SHA256 98380a8d12e6e34dccc0c1d82b48e
DIST linux-gpib-4.0.3.tar.gz 1311963 SHA256 6af5113978d179d2f281f5d779f235935371bdfbb15c6c7ca848bca5c3f17c4a SHA512 6eb65cae5220d3c7ca607eed5a641e8a68b422d0e76a787e767d3bffd0695672d5137d44a097483176e933ded5eb376ff57e3a61cddd62aceaa43192218c9cfe WHIRLPOOL f0df699fbdaa7d77abd114c8fef1b6ff3aacd67cc233a68f78b0db67b30baeab615beff89861ed47a70216e1fe0d73c518050f80c9d70d0c8199b2b159e068a1
DIST linux-gpib-4.0.4rc2.tar.gz 1231800 SHA256 17b302aca2e2e3cbc988ccf1b0849f590bb7b207c6a63e602fb5017a87a6e2ab SHA512 41014a1888d264f9d6252bbbd1844f7fc6dd3dd23cbc0f680df486a5dc2afd05824d587527e0c95ea709f71291940fe270d61e240164023f9e8f0508f613e7b7 WHIRLPOOL 446f35050147349aa05be0aa429f1515f273d9e67fbf5fe9a2c7b6374faf652be0d932d463a9db0998c00b99015d9c897ffa9af9894344f51a809a7328946f0d
DIST linux-gpib-4.0.4rc3.tar.gz 1276866 SHA256 437c58fe9f1dc37a7dae7378821dcb7709b30de3701a92d3c67d63867f2ced3f SHA512 915db5c41b613706053b431aec5d0c3d1f309e8a949842f18ee011614fa126ee464c6d5d46744d10a4ae85a73bb7489280d25dddbf7724b0d5e32f65eae67829 WHIRLPOOL f492694b709aba1e06fc3d45c4c266e73230a4e494fb9ff64dec91ab25142b3a2c96546a4cc226718c236e57d4961cbdfa7ebb14d7867986de4ca05f91c6c9b3
DIST linux-gpib-4.1.0.tar.gz 1529480 SHA256 4cdd7f38e5b02aa6efe27745dae0e21084dbe3ff90b576fc0867be87a1791e26 SHA512 037ed9e484a83caccb15d2d142eef6f1eec356ae972480ca7a676a318d3e9f844fc1911c1b30869b4bb14ef0b4cd10587a803426df9145966bafe22ca7316bd8 WHIRLPOOL 598f66281577034c842d137015e03364a988f8e752901a0de87d26b3a9d50dc54cf73a4543880c846781e9613336794aeb0c28a7018b0046a45d358395fb94e9
215 changes: 215 additions & 0 deletions sci-libs/linux-gpib/linux-gpib-4.1.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python2_7 )

inherit linux-info readme.gentoo-r1 versionator eutils linux-mod autotools perl-functions python-single-r1 toolchain-funcs udev user

MY_PV=${PV/_/}

DESCRIPTION="Kernel module and driver library for GPIB (IEEE 488.2) hardware"
HOMEPAGE="http://linux-gpib.sourceforge.net/"
SRC_URI="mirror://sourceforge/linux-gpib/${PN}-${MY_PV}.tar.gz
firmware? ( http://linux-gpib.sourceforge.net/firmware/gpib_firmware-2006-11-12.tar.gz )
"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="isa pcmcia static debug guile perl php python tcl doc firmware"

COMMONDEPEND="
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}"
DEPEND="${COMMONDEPEND}
virtual/pkgconfig
doc? ( app-text/docbook-sgml-utils )
perl? ( virtual/perl-ExtUtils-MakeMaker )"

REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"

PATCHES=(
"${FILESDIR}"/${PN}-3.2.21-build.patch
"${FILESDIR}"/${PN}-3.2.16-perl.patch
"${FILESDIR}"/${PN}-4.0.3-reallydie.patch
)

S=${WORKDIR}/${PN}-${MY_PV}

pkg_setup () {
use perl && perl_set_version
use python && python_setup

linux-mod_pkg_setup

if kernel_is -lt 2 6 8; then
die "Kernel versions older than 2.6.8 are not supported."
fi

# https://sourceforge.net/tracker/?func=detail&aid=3285657&group_id=42378&atid=432940
if use pcmcia && kernel_is -ge 2 6 38; then
die "pcmcia support is broken on kernels newer 2.6.38"
fi
}

src_prepare () {
default
kernel_is ge 4 11 0 && eapply "${FILESDIR}"/${PN}-4.0.4_rc2-kernel-4.11.0.patch
eautoreconf
}

src_configure() {
set_arch_to_kernel
econf \
$(use_enable isa) \
$(use_enable pcmcia) \
$(use_enable static) \
$(use_enable debug driver-debug) \
$(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) \
--with-linux-srcdir=${KV_DIR}
}

src_compile() {
set_arch_to_kernel
FIRM_DIR=/usr/share/usb
emake \
DESTDIR="${D}" \
INSTALL_MOD_PATH="${D}" \
HOTPLUG_USB_CONF_DIR="${D}"/etc/hotplug/usb \
UDEV_RULES_DIR="${D}$(get_udevdir)"/rules.d \
USB_FIRMWARE_DIR="${D}"${FIRM_DIR} \
docdir=/usr/share/doc/${PF}/html
}

src_install() {
set_arch_to_kernel
FIRM_DIR=/usr/share/usb
emake \
DESTDIR="${D}" \
INSTALL_MOD_PATH="${D}" \
HOTPLUG_USB_CONF_DIR="${D}"/etc/hotplug/usb \
UDEV_RULES_DIR="${D}/$(get_udevdir)"/rules.d \
USB_FIRMWARE_DIR="${D}"${FIRM_DIR} \
docdir=/usr/share/doc/${PF}/html install

if use perl; then
einfo "Installing perl module"
cd "${S}"/language/perl || die
DESTDIR=${D} emake 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
dodir /etc/pcmcia
insinto /etc/pcmcia
doins "${S}"/etc/pcmcia/*
fi

if use firmware; then
insinto "${FIRM_DIR}"/agilent_82357a
doins "${WORKDIR}"/gpib_firmware-2006-11-12/agilent_82357a/*

insinto "${FIRM_DIR}"/ni_gpib_usb_b
doins "${WORKDIR}"/gpib_firmware-2006-11-12/ni_gpib_usb_b/*

insinto /usr/share/linux-gpib/hp_82341
# do not install precompiled generate_firmware
doins "${WORKDIR}"/gpib_firmware-2006-11-12/hp_82341/{*.bin,README}
fi

# fix rules files
local f
find "${D}$(get_udevdir)"/rules.d -type f -print0 | while read -rd '' f ; do
grep -q "${D}" "${f}" && einfo "File ${f} contains a temporary path, fixing."
sed -i -e "s:${D}:/:g" "${f}"
done

DOC_CONTENTS="
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_preinst () {
linux-mod_pkg_preinst
use perl && perl_set_version
enewgroup gpib
}

pkg_postinst () {
linux-mod_pkg_postinst
readme.gentoo_print_elog

local v
for v in ${REPLACING_VERSIONS}; do
if ! version_is_at_least 3.2.21-r1 ${v}; then
ewarn "sci-libs/linux-gpib-3.2.21-r1 introduces incompatible changes to the kernel"
ewarn "interface. You may need to reboot to make sure the newly built driver modules"
ewarn "are used (some of the driver modules cannot be unloaded)."
ewarn "If you do not do this, every gpib call will just result in an error message."
break
fi
done
}

0 comments on commit 45672c4

Please sign in to comment.