summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2011-01-31 22:29:39 +0000
committerAndreas K. Hüttel <dilfridge@gentoo.org>2011-01-31 22:29:39 +0000
commit6fea2450cf3c5de4137864ddf91dde9c9cd9c501 (patch)
tree8550ba7c4990a77955fb67382fe6aeb1aaaf6f85 /sci-libs/linux-gpib
parentAdded pmask for sci-libs/linux-gpib (about to be committed) (diff)
downloadgentoo-2-6fea2450cf3c5de4137864ddf91dde9c9cd9c501.tar.gz
gentoo-2-6fea2450cf3c5de4137864ddf91dde9c9cd9c501.tar.bz2
gentoo-2-6fea2450cf3c5de4137864ddf91dde9c9cd9c501.zip
New package, fixes bug 165399. Thanks to antonmx and Ben Schwartz for their work. Initially
pmasked since the ebuild still needs a lot of QA cleanup (especially concerning the language bindings) and requires exotic hardware for testing. (Portage version: 2.1.9.35/cvs/Linux x86_64)
Diffstat (limited to 'sci-libs/linux-gpib')
-rw-r--r--sci-libs/linux-gpib/ChangeLog14
-rw-r--r--sci-libs/linux-gpib/files/linux-gpib-3.2.15-build.patch44
-rw-r--r--sci-libs/linux-gpib/linux-gpib-3.2.15.ebuild169
-rw-r--r--sci-libs/linux-gpib/metadata.xml12
4 files changed, 239 insertions, 0 deletions
diff --git a/sci-libs/linux-gpib/ChangeLog b/sci-libs/linux-gpib/ChangeLog
new file mode 100644
index 000000000000..90fab1c40369
--- /dev/null
+++ b/sci-libs/linux-gpib/ChangeLog
@@ -0,0 +1,14 @@
+# ChangeLog for sci-libs/linux-gpib
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/linux-gpib/ChangeLog,v 1.1 2011/01/31 22:29:39 dilfridge Exp $
+
+*linux-gpib-3.2.15 (31 Jan 2011)
+
+ 31 Jan 2011; Andreas K. Huettel <dilfridge@gentoo.org>
+ +linux-gpib-3.2.15.ebuild, +files/linux-gpib-3.2.15-build.patch,
+ +metadata.xml:
+ New package, fixes bug 165399. Thanks to antonmx and Ben Schwartz for
+ their work. Initially pmasked since the ebuild still needs a lot of QA
+ cleanup (especially concerning the language bindings) and requires exotic
+ hardware for testing.
+
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 000000000000..14a186875748
--- /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/linux-gpib-3.2.15.ebuild b/sci-libs/linux-gpib/linux-gpib-3.2.15.ebuild
new file mode 100644
index 000000000000..e301d23e5e43
--- /dev/null
+++ b/sci-libs/linux-gpib/linux-gpib-3.2.15.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/linux-gpib/linux-gpib-3.2.15.ebuild,v 1.1 2011/01/31 22:29:39 dilfridge Exp $
+
+EAPI=3
+
+inherit base linux-mod autotools
+
+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 ~x86"
+IUSE="pcmcia static debug guile perl php python tcl doc firmware"
+
+RDEPEND="
+ tcl? ( dev-lang/tcl )
+ guile? ( dev-scheme/guile )
+ perl? ( dev-lang/perl )
+ php? ( dev-lang/php )
+ python? ( dev-lang/python )
+ firmware? ( sys-apps/fxload )
+"
+
+DEPEND="${RDEPEND}
+ sys-kernel/module-rebuild
+ doc? ( app-text/docbook-sgml-utils )
+"
+
+PATCHES=( "${FILESDIR}/${P}-build.patch" )
+
+pkg_setup () {
+ linux-mod_pkg_setup
+
+ case ${KV_MINOR} in
+ 4) die "This version of Linux-GPIB requires a version 2.6.x of the Linux kernel. 2.4.x kernels are supported by Linux-GPIB versions 3.1.x." ;;
+ 6) ;;
+ *) die "Unsupported kernel version '${KV}'." ;;
+ esac
+
+ if [ ${KV_PATCH} -lt 8 ] ; then
+ die "Kernel versions older than 2.6.8 are not supported."
+ fi
+}
+
+src_prepare () {
+ base_src_prepare
+ eautoreconf
+}
+
+src_configure() {
+ set_arch_to_kernel
+ econf \
+ $(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} \
+ || die
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install () {
+
+ FIRM_DIR=/usr/share/usb
+
+ # Here I changed the sbindir in order to install the gpib_config to /sbin,
+ # not /usr/sbin. This is done to enable running gpib_config from
+ # the modprobe.conf file: if /usr is not in the root file system,
+ # but a mounted partition then gpib_congig cannot be found in the moment when
+ # modprobe is run.
+ make \
+ 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 || die "install problem"
+
+ echo "KERNEL==\"gpib[0-9]*\", MODE=\"0660\", GROUP=\"gpib\"" >> 99-gpib.rules
+ insinto /etc/udev/rules.d/
+ doins 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
+
+ dodir "${FIRM_DIR}/agilent_8237a"
+ insinto "${FIRM_DIR}/agilent_8237a"
+ doins "${WORKDIR}"/gpib_firmware-2006-11-12/agilent_8237a/*
+
+ dodir "${FIRM_DIR}/ni_gpib_usb_b"
+ insinto "${FIRM_DIR}/ni_gpib_usb_b"
+ doins "${WORKDIR}"/gpib_firmware-2006-11-12/ni_gpib_usb_b/*
+
+ dodir "/usr/share/linux-gpib/hp_82341"
+ insinto "/usr/share/linux-gpib/hp_82341"
+ doins "${WORKDIR}"/gpib_firmware-2006-11-12/hp_82341/*
+
+ fi
+}
+
+pkg_preinst () {
+ linux-mod_pkg_preinst
+ 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 000000000000..7de22857a15d
--- /dev/null
+++ b/sci-libs/linux-gpib/metadata.xml
@@ -0,0 +1,12 @@
+<?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>
+ </use>
+</pkgmetadata>