diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..629940773f32 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,102 @@ +# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com + +# Brainboxes prefix list. Some but not all are supported by this driver. +# BL - Bluetooth Serial Adapter +# CC - PCI Serial Cards +# ES - Ethernet to Serial +# ED - Ethernet IO +# IS - IntaShield uPCI Serial Cards +# IX - IntaShield PCI Express Serial Cards +# PM - Serial PC Card (PCMCIA) +# PX - PCI Express Serial Cards +# UC - uPCI Serial Cards +# UP - uPCI Powered Serial Cards +# US - USB to Serial +# VX - Serial ExpressCard +# XC - Serial Parallel ExpressCard + +# Some future supported models are found in $tf/13 + +set -u +pkgname='brainboxes-serial-pci' +pkgver='0.0.20160614' +pkgrel='1' +pkgdesc='script to enable Brainboxes serial and parallel ports PCI PCIe Express PCMCIA PM UC CC-525 CC-530 PX-275 PX-279 PX-263 PX-295 PX-272 PX-306' +arch=('any') +url='http://www.brainboxes.com/faq/items/where-can-i-find-the-latest-drivers-for-linux' +license=('GPL') +makedepends=('perl' 'setserial' 'pciutils') +backup=('etc/bbportinst'{.conf,.local} 'etc/modprobe.d/parport_bb.conf') +options=('!strip') +install="${pkgname}-install.sh" +_srcdir='bbportinst' +source=('http://www.brainboxes.com/files/pages/support/faqs/drivers%20and%20firmware/bbportinst.zip') +sha256sums=('d5ac2012bae944d398517511b55cd43d920c79de910cae8e60ca05eaa1408b70') + +_servicename="${pkgname}.service" + +# We can't modify .install but we can stop and force the user to fix it. +_install_check() { + local _ckvar + local _ckline + local _pkgname="${pkgname}" + for _ckvar in '_servicename'; do + _ckline="${_ckvar}='${!_ckvar}'" + if ! grep -q "^${_ckline}"'$' "${startdir}/${install}"; then + msg "${install} must be fixed" + echo "${_ckline}" + set +u + false + fi + done +} + +prepare() { + set -u + _install_check + cd "${_srcdir}" + + sed -e 's:\s*\r$::g' -i $(grep -rlFe $'\r') + chmod 755 'bbportinst' + + # Fix path + sed -e 's:/bin/setserial:/usr/bin/setserial:g' -i 'bbportinst' + sed -e '# Custom shell script instead of rc.local' \ + -e '/^boot_local_file =/ s:auto:/etc/bbportinst.local:g' \ + -e '# This file isnt unique enough' \ + -e '/^parport_conf_file =/ s:auto:/etc/modprobe.d/parport_bb.conf:g' \ + -i 'bbportinst.conf' + set +u +} + +package() { + set -u + cd "${_srcdir}" + install -Dpm744 'bbportinst' -t "${pkgdir}/usr/bin" + install -Dpm644 'bbportinst.conf' -t "${pkgdir}/etc" + install -Dm644 /dev/null "${pkgdir}/etc/bbportinst.local" + install -Dm644 /dev/null "${pkgdir}/etc/modprobe.d/parport_bb.conf" + + # systemd service + install -Dm644 <(cat << EOF +# Automatically generated by ${pkgname}-${pkgver} PKGBUILD from Arch Linux AUR +# https://aur.archlinux.org/ + +[Unit] +Description=Configure BrainBoxes Serial Parallel Cards bbportinst +After=network.target + +[Service] +Type=notify +ExecStart=/usr/bin/sh -c 'source /etc/bbportinst.conf; systemd-notify --ready' +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target +EOF + ) "${pkgdir}/usr/lib/systemd/system/${_servicename}" + + set +u +} + +set +u |