summaryrefslogtreecommitdiff
path: root/sci-libs/linux-gpib
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sci-libs/linux-gpib
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sci-libs/linux-gpib')
-rw-r--r--sci-libs/linux-gpib/Manifest4
-rw-r--r--sci-libs/linux-gpib/files/linux-gpib-3.2.15-build.patch44
-rw-r--r--sci-libs/linux-gpib/files/linux-gpib-3.2.16-perl.patch9
-rw-r--r--sci-libs/linux-gpib/files/linux-gpib-3.2.16-reallydie.patch16
-rw-r--r--sci-libs/linux-gpib/files/linux-gpib-3.2.21-build.patch44
-rw-r--r--sci-libs/linux-gpib/linux-gpib-3.2.20-r1.ebuild183
-rw-r--r--sci-libs/linux-gpib/linux-gpib-3.2.21-r1.ebuild192
-rw-r--r--sci-libs/linux-gpib/linux-gpib-3.2.21.ebuild183
-rw-r--r--sci-libs/linux-gpib/metadata.xml16
9 files changed, 691 insertions, 0 deletions
diff --git a/sci-libs/linux-gpib/Manifest b/sci-libs/linux-gpib/Manifest
new file mode 100644
index 00000000000..a329b060841
--- /dev/null
+++ b/sci-libs/linux-gpib/Manifest
@@ -0,0 +1,4 @@
+DIST gpib_firmware-2006-11-12.tar.gz 169357 SHA256 98380a8d12e6e34dccc0c1d82b48ed796c0c0f5571107d6a685524560aa8d701 SHA512 164d6fcfb3af43933f0a16645276f7d527a7aa24ef311f6ae3dcd7f45c41f92c855cf221bc946772f43fc2f9524057abc34bbd7d805c89b33ed7e111bc6870af WHIRLPOOL 44506c9d03e746f5bc88f9a2f20e07879a4c4c72f52a5dae97accb381f8ac7f5b5c0cf5c58d1045b18ed6cbda20549a1fdb7e5ab0151a1081da1ec798c683e67
+DIST linux-gpib-3.2.20.tar.gz 1254951 SHA256 cde3e77c3fd968e1ee5785abc2d6e09f0f66711fc2612abfc7b05c72c16c2e9a SHA512 679c3895ac5077b3246c43818c7c85ae53597d4a7e70ff2306978472337214952798c41eca9a4ae8be20aa3afa4bc78a7b796fccd6b63a8e1a879fcd144adea9 WHIRLPOOL 653ea123c81ccaf5d55055e70609152584adf36eb6cd0e421f10f5c86d24781e44ced125e9ac417901594c6ac83bed1f7123de27578ad3c841612bb9955eab85
+DIST linux-gpib-3.2.21-ctrl-c.patch.gz 10477 SHA256 697a460ea8515788765983afb5c27ad527e6ab1e75232133c572530643351916 SHA512 4b34ecbc5a3f3170337808397df19b9cf09d3fc8a53052fb560ae7b5336b946c6b1c76ba24b0ad66d4bb5a005902fe8599bb7e981c140a68046b9f14ed5268b3 WHIRLPOOL 5656ed7d4dafeff4b766f247c4f495444d271130cbad8bedaef9b761e14b57c09b46a7ccd5e3be5ff50934f48a88a987eb71f6997aafdcd4adc486c49b2c0c5d
+DIST linux-gpib-3.2.21.tar.gz 1274505 SHA256 31fd86f4897239ffc55e0d4d850586d24d74144b604d6d39fd33dc59d28f7019 SHA512 539f7444e6bcd07d66cabc3abae9d40cdea3a84365bd69a4621149bc11b7b0e9826650d91d2a048d9780fab7db30005b08a4b91c77e7a26e036ed6f5adb6850b WHIRLPOOL 72a9c929d7e3b79c5c954fb6e41c4d9eb450595c6dccc877a3b47851e467e741b191a708ec3c018e4fe576e5677ffec5986970f83c020707bbbd8e2968e43153
diff --git a/sci-libs/linux-gpib/files/linux-gpib-3.2.15-build.patch b/sci-libs/linux-gpib/files/linux-gpib-3.2.15-build.patch
new file mode 100644
index 00000000000..14a18687574
--- /dev/null
+++ b/sci-libs/linux-gpib/files/linux-gpib-3.2.15-build.patch
@@ -0,0 +1,44 @@
+diff -ruN linux-gpib-3.2.15-0-orig/drivers/Makefile.am linux-gpib-3.2.15/drivers/Makefile.am
+--- linux-gpib-3.2.15-0-orig/drivers/Makefile.am 2007-04-19 17:21:04.000000000 +0200
++++ linux-gpib-3.2.15/drivers/Makefile.am 2011-01-24 23:20:59.000000000 +0100
+@@ -27,39 +27,13 @@
+ CC="$(LINUX_CC) -I@abs_top_srcdir@ -I@abs_top_srcdir@/drivers/gpib/include -I@abs_top_srcdir@/include" \
+ SUBDIRS="$(GPIB_ABS_MODULE_SUBDIR)"
+
+-install-data-hook: device-file-check /etc/gpib.conf
++install-data-hook: /etc/gpib.conf
+ $(MAKE) -C $(LINUX_SRCDIR) V=1 modules_install\
+ CC="$(LINUX_CC) -I@abs_top_srcdir@ -I@abs_top_srcdir@/driver/include -I@abs_top_srcdir@/include" \
+ SUBDIRS="$(GPIB_ABS_MODULE_SUBDIR)" INSTALL_MOD_DIR="gpib"
+- $(DEPMOD) -ae
+-
+-/dev/gpib0:
+- groupadd gpib || echo "group gpib exists"
+- for i in `seq 0 15`; \
+- do \
+- mknod -m u=rw,g=rw,o= /dev/gpib$${i} c $(IBMAJOR) $${i} || exit 1; \
+- chown root:gpib /dev/gpib$${i}; \
+- done
+-
+-.PHONY : device-file-check
+-device-file-check: /dev/gpib0
+- @if [ ! -c /dev/gpib0 ]; then \
+- if [ -a /dev/gpib0 ]; then \
+- echo "A file or directory called /dev/gpib0 exists but it is not" \
+- "a character device. Delete or move it and try again."; \
+- exit 1; \
+- fi; \
+- fi
+- @ls -l /dev/gpib0 | grep -q "$(IBMAJOR)"; \
+- if [ $$? != 0 ]; then \
+- echo "/dev/gpib0 has the wrong major number. " \
+- "Delete your /dev/gpibX files and try again."; \
+- exit 1; \
+- fi
+
+ #should move this to util/templates Makefile.am when it exists
+ /etc/gpib.conf:
+- $(INSTALL_DATA) -D $(top_srcdir)/util/templates/gpib.conf /etc/gpib.conf
+
+ #make sure compiled files, etc don't make it into distribution tarballs
+ dist-hook:
diff --git a/sci-libs/linux-gpib/files/linux-gpib-3.2.16-perl.patch b/sci-libs/linux-gpib/files/linux-gpib-3.2.16-perl.patch
new file mode 100644
index 00000000000..16f2f15b0ad
--- /dev/null
+++ b/sci-libs/linux-gpib/files/linux-gpib-3.2.16-perl.patch
@@ -0,0 +1,9 @@
+diff -ruN linux-gpib-3.2.16.orig/language/Makefile.am linux-gpib-3.2.16/language/Makefile.am
+--- linux-gpib-3.2.16.orig/language/Makefile.am 2009-09-16 19:26:53.000000000 +0200
++++ linux-gpib-3.2.16/language/Makefile.am 2011-08-14 03:32:53.000000000 +0200
+@@ -67,4 +67,4 @@
+ $(RM) perl/Makefile
+
+ perl/Makefile:
+- -(cd perl && $(PERL) Makefile.PL)
++ -(cd perl && $(PERL) Makefile.PL PREFIX=$(EPREFIX)/usr INSTALLDIRS=vendor INSTALLMAN3DIR='none' DESTDIR="$(DESTDIR)" )
diff --git a/sci-libs/linux-gpib/files/linux-gpib-3.2.16-reallydie.patch b/sci-libs/linux-gpib/files/linux-gpib-3.2.16-reallydie.patch
new file mode 100644
index 00000000000..e52cce4bd38
--- /dev/null
+++ b/sci-libs/linux-gpib/files/linux-gpib-3.2.16-reallydie.patch
@@ -0,0 +1,16 @@
+Index: drivers/Makefile.am
+===================================================================
+--- drivers/Makefile.am (revision 1602)
++++ drivers/Makefile.am (working copy)
+@@ -15,10 +15,8 @@
+
+ -include $(top_srcdir)/util/linux_flags/flags
+
+-#ignore errors from kernel's make modules in all-local, to avoid failure of make install
+-#on nfs filesystem with root_squash
+ all-local:
+- -$(MAKE) -C $(LINUX_SRCDIR) V=1 modules\
++ $(MAKE) -C $(LINUX_SRCDIR) V=1 modules\
+ CC="$(LINUX_CC) -I@abs_top_srcdir@ -I@abs_top_srcdir@/drivers/gpib/include -I@abs_top_srcdir@/include" \
+ SUBDIRS="$(GPIB_ABS_MODULE_SUBDIR)"
+
diff --git a/sci-libs/linux-gpib/files/linux-gpib-3.2.21-build.patch b/sci-libs/linux-gpib/files/linux-gpib-3.2.21-build.patch
new file mode 100644
index 00000000000..86ce197ba82
--- /dev/null
+++ b/sci-libs/linux-gpib/files/linux-gpib-3.2.21-build.patch
@@ -0,0 +1,44 @@
+diff -ruN linux-gpib-3.2.21.orig/drivers/Makefile.am linux-gpib-3.2.21/drivers/Makefile.am
+--- linux-gpib-3.2.21.orig/drivers/Makefile.am 2014-12-13 11:27:55.000000000 +0100
++++ linux-gpib-3.2.21/drivers/Makefile.am 2014-12-17 17:51:47.152588400 +0100
+@@ -28,39 +28,13 @@
+ CC="$(LINUX_CC) -I@abs_top_srcdir@ -I@abs_top_srcdir@/drivers/gpib/include -I@abs_top_srcdir@/include" \
+ SUBDIRS="$(GPIB_ABS_MODULE_SUBDIR)"
+
+-install-data-hook: device-file-check /etc/gpib.conf
++install-data-hook: /etc/gpib.conf
+ $(MAKE) -C $(LINUX_SRCDIR) V=1 modules_install\
+ CC="$(LINUX_CC) -I@abs_top_srcdir@ -I@abs_top_srcdir@/driver/include -I@abs_top_srcdir@/include" \
+ SUBDIRS="$(GPIB_ABS_MODULE_SUBDIR)" INSTALL_MOD_DIR="gpib"
+- $(DEPMOD) -a
+-
+-/dev/gpib0:
+- groupadd gpib || echo "group gpib exists"
+- for i in `seq 0 15`; \
+- do \
+- mknod -m u=rw,g=rw,o= /dev/gpib$${i} c $(IBMAJOR) $${i} || exit 1; \
+- chown root:gpib /dev/gpib$${i}; \
+- done
+-
+-.PHONY : device-file-check
+-device-file-check: /dev/gpib0
+- @if [ ! -c /dev/gpib0 ]; then \
+- if [ -a /dev/gpib0 ]; then \
+- echo "A file or directory called /dev/gpib0 exists but it is not" \
+- "a character device. Delete or move it and try again."; \
+- exit 1; \
+- fi; \
+- fi
+- @ls -l /dev/gpib0 | grep -q "$(IBMAJOR)"; \
+- if [ $$? != 0 ]; then \
+- echo "/dev/gpib0 has the wrong major number. " \
+- "Delete your /dev/gpibX files and try again."; \
+- exit 1; \
+- fi
+
+ #should move this to util/templates Makefile.am when it exists
+ /etc/gpib.conf:
+- $(INSTALL_DATA) -D $(top_srcdir)/util/templates/gpib.conf /etc/gpib.conf
+
+ #make sure compiled files, etc don't make it into distribution tarballs
+ dist-hook:
diff --git a/sci-libs/linux-gpib/linux-gpib-3.2.20-r1.ebuild b/sci-libs/linux-gpib/linux-gpib-3.2.20-r1.ebuild
new file mode 100644
index 00000000000..02f86820cbf
--- /dev/null
+++ b/sci-libs/linux-gpib/linux-gpib-3.2.20-r1.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PERL_EXPORT_PHASE_FUNCTIONS=no
+GENTOO_DEPEND_ON_PERL=no
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils linux-mod autotools perl-module python-single-r1 toolchain-funcs udev user
+
+DESCRIPTION="Kernel module and driver library for GPIB (IEEE 488.2) hardware"
+HOMEPAGE="http://linux-gpib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/linux-gpib/${P}.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.15-build.patch
+ "${FILESDIR}"/${PN}-3.2.16-perl.patch
+ "${FILESDIR}"/${PN}-3.2.16-reallydie.patch
+)
+
+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 () {
+ epatch ${PATCHES[@]}
+ epatch_user
+ 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 \
+ 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 \
+ 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} perl-module_src_install
+ 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
+}
+
+pkg_preinst () {
+ linux-mod_pkg_preinst
+ use perl && perl_set_version
+ enewgroup gpib
+}
+
+pkg_postinst () {
+ linux-mod_pkg_postinst
+
+ einfo "You need to run the 'gpib_config' utility to setup the driver before"
+ einfo "you can use it. In order to do it automatically you can add to your"
+ einfo "start script something like this (supposing the appropriate driver"
+ einfo "is loaded on the startup):"
+ einfo " gpib_config --minor 0"
+ einfo ""
+ einfo "To give a user access to the computer's gpib board you will have to add"
+ einfo "them to the group 'gpib' or, you could change the permissions on the device"
+ einfo "files /dev/gpib[0-15] to something you like better, using 'chmod'."
+ einfo ""
+ einfo "Edit /etc/gpib.conf to match your interface board, and any devices you wish"
+ einfo "to open via ibfind(). See the documentation in /usr/share/linux-gpib/html for"
+ einfo "more information."
+ einfo ""
+
+ if use pcmcia; then
+ einfo "For PCMCIA cards:"
+ einfo "All files needed for a PCMCIA board were copied to /etc/pcmcia."
+ einfo "You may wish to edit the options passed to the gpib_config call in the"
+ einfo "/etc/pcmcia/linux-gpib-pcmcia script."
+ einfo "You may need to send a SIGHUP signal to the cardmgr daemon to force it"
+ einfo "to reload the files in /etc/pcmcia (alternatively you could use your"
+ einfo "pcmcia init.d script to restart the cardmgr, or you could just reboot)."
+ einfo "The driver module will be loaded as needed by the cardmgr."
+ einfo ""
+ fi
+
+ if use firmware; then
+ einfo "For Agilent (HP) 82341C and 82341D cards:"
+ einfo "The firmware for these boards is uploaded by passing the appropriate"
+ einfo "firmware file from /usr/share/linux-gpib/hp_82341 directory to"
+ einfo "gpib_config using the -I or --init-data command line option. Example:"
+ einfo "gpib_config --minor 0 --init-data \\"
+ einfo "/usr/share/linux-gpib/hp_82341/hp_82341c_fw.bin"
+ einfo ""
+ fi
+
+}
diff --git a/sci-libs/linux-gpib/linux-gpib-3.2.21-r1.ebuild b/sci-libs/linux-gpib/linux-gpib-3.2.21-r1.ebuild
new file mode 100644
index 00000000000..19df0e30402
--- /dev/null
+++ b/sci-libs/linux-gpib/linux-gpib-3.2.21-r1.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PERL_EXPORT_PHASE_FUNCTIONS=no
+GENTOO_DEPEND_ON_PERL=no
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils linux-mod autotools perl-module python-single-r1 toolchain-funcs udev user
+
+DESCRIPTION="Kernel module and driver library for GPIB (IEEE 488.2) hardware"
+HOMEPAGE="http://linux-gpib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/linux-gpib/${P}.tar.gz
+ firmware? ( http://linux-gpib.sourceforge.net/firmware/gpib_firmware-2006-11-12.tar.gz )
+ http://dev.gentoo.org/~dilfridge/distfiles/${PN}-3.2.21-ctrl-c.patch.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}-3.2.16-reallydie.patch
+ "${WORKDIR}"/${PN}-3.2.21-ctrl-c.patch
+)
+
+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 () {
+ epatch ${PATCHES[@]}
+ epatch_user
+ 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 \
+ 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 \
+ 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} perl-module_src_install
+ 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
+}
+
+pkg_preinst () {
+ linux-mod_pkg_preinst
+ use perl && perl_set_version
+ enewgroup gpib
+}
+
+pkg_postinst () {
+ linux-mod_pkg_postinst
+
+ einfo "You need to run the 'gpib_config' utility to setup the driver before"
+ einfo "you can use it. In order to do it automatically you can add to your"
+ einfo "start script something like this (supposing the appropriate driver"
+ einfo "is loaded on the startup):"
+ einfo " gpib_config --minor 0"
+ einfo ""
+ einfo "To give a user access to the computer's gpib board you will have to add"
+ einfo "them to the group 'gpib' or, you could change the permissions on the device"
+ einfo "files /dev/gpib[0-15] to something you like better, using 'chmod'."
+ einfo ""
+ einfo "Edit /etc/gpib.conf to match your interface board, and any devices you wish"
+ einfo "to open via ibfind(). See the documentation in /usr/share/linux-gpib/html for"
+ einfo "more information."
+ einfo ""
+
+ if use pcmcia; then
+ einfo "For PCMCIA cards:"
+ einfo "All files needed for a PCMCIA board were copied to /etc/pcmcia."
+ einfo "You may wish to edit the options passed to the gpib_config call in the"
+ einfo "/etc/pcmcia/linux-gpib-pcmcia script."
+ einfo "You may need to send a SIGHUP signal to the cardmgr daemon to force it"
+ einfo "to reload the files in /etc/pcmcia (alternatively you could use your"
+ einfo "pcmcia init.d script to restart the cardmgr, or you could just reboot)."
+ einfo "The driver module will be loaded as needed by the cardmgr."
+ einfo ""
+ fi
+
+ if use firmware; then
+ einfo "For Agilent (HP) 82341C and 82341D cards:"
+ einfo "The firmware for these boards is uploaded by passing the appropriate"
+ einfo "firmware file from /usr/share/linux-gpib/hp_82341 directory to"
+ einfo "gpib_config using the -I or --init-data command line option. Example:"
+ einfo "gpib_config --minor 0 --init-data \\"
+ einfo "/usr/share/linux-gpib/hp_82341/hp_82341c_fw.bin"
+ einfo ""
+ fi
+
+ if [[ $REPLACING_VERSIONS < "3.2.21-r1" ]]; 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."
+ fi
+}
diff --git a/sci-libs/linux-gpib/linux-gpib-3.2.21.ebuild b/sci-libs/linux-gpib/linux-gpib-3.2.21.ebuild
new file mode 100644
index 00000000000..e00810be7fa
--- /dev/null
+++ b/sci-libs/linux-gpib/linux-gpib-3.2.21.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PERL_EXPORT_PHASE_FUNCTIONS=no
+GENTOO_DEPEND_ON_PERL=no
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils linux-mod autotools perl-module python-single-r1 toolchain-funcs udev user
+
+DESCRIPTION="Kernel module and driver library for GPIB (IEEE 488.2) hardware"
+HOMEPAGE="http://linux-gpib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/linux-gpib/${P}.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}-3.2.16-reallydie.patch
+)
+
+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 () {
+ epatch ${PATCHES[@]}
+ epatch_user
+ 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 \
+ 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 \
+ 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} perl-module_src_install
+ 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
+}
+
+pkg_preinst () {
+ linux-mod_pkg_preinst
+ use perl && perl_set_version
+ enewgroup gpib
+}
+
+pkg_postinst () {
+ linux-mod_pkg_postinst
+
+ einfo "You need to run the 'gpib_config' utility to setup the driver before"
+ einfo "you can use it. In order to do it automatically you can add to your"
+ einfo "start script something like this (supposing the appropriate driver"
+ einfo "is loaded on the startup):"
+ einfo " gpib_config --minor 0"
+ einfo ""
+ einfo "To give a user access to the computer's gpib board you will have to add"
+ einfo "them to the group 'gpib' or, you could change the permissions on the device"
+ einfo "files /dev/gpib[0-15] to something you like better, using 'chmod'."
+ einfo ""
+ einfo "Edit /etc/gpib.conf to match your interface board, and any devices you wish"
+ einfo "to open via ibfind(). See the documentation in /usr/share/linux-gpib/html for"
+ einfo "more information."
+ einfo ""
+
+ if use pcmcia; then
+ einfo "For PCMCIA cards:"
+ einfo "All files needed for a PCMCIA board were copied to /etc/pcmcia."
+ einfo "You may wish to edit the options passed to the gpib_config call in the"
+ einfo "/etc/pcmcia/linux-gpib-pcmcia script."
+ einfo "You may need to send a SIGHUP signal to the cardmgr daemon to force it"
+ einfo "to reload the files in /etc/pcmcia (alternatively you could use your"
+ einfo "pcmcia init.d script to restart the cardmgr, or you could just reboot)."
+ einfo "The driver module will be loaded as needed by the cardmgr."
+ einfo ""
+ fi
+
+ if use firmware; then
+ einfo "For Agilent (HP) 82341C and 82341D cards:"
+ einfo "The firmware for these boards is uploaded by passing the appropriate"
+ einfo "firmware file from /usr/share/linux-gpib/hp_82341 directory to"
+ einfo "gpib_config using the -I or --init-data command line option. Example:"
+ einfo "gpib_config --minor 0 --init-data \\"
+ einfo "/usr/share/linux-gpib/hp_82341/hp_82341c_fw.bin"
+ einfo ""
+ fi
+
+}
diff --git a/sci-libs/linux-gpib/metadata.xml b/sci-libs/linux-gpib/metadata.xml
new file mode 100644
index 00000000000..32646ae5b6a
--- /dev/null
+++ b/sci-libs/linux-gpib/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-electronics</herd>
+ <maintainer>
+ <email>dilfridge@gentoo.org</email>
+ <name>Andreas K. Huettel</name>
+ </maintainer>
+ <use>
+ <flag name="firmware">Install firmware</flag>
+ <flag name="isa">Build ISA kernel modules; from 3.12 on the setting is ignored and the decision based on the kernel configuration</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">linux-gpib</remote-id>
+ </upstream>
+</pkgmetadata>