sys-fs/owfs: Bumped to v3.1p1

Changes:

 * Bumped to upstream v3.1p1 (Closes #572004)

 * Bumped to EAPI=6

 * Added ewarn to tell user that they maybe have to install a custom UDEV
   rule (Closes #315935)

 * Various runscript fixes

   - Services were misusing "need net" (See #439092)

   - start_pre added to fix problems caused by non-existing pidfile dir
     (Closes #553418)

Package-Manager: portage-2.2.27
This commit is contained in:
Thomas D
2016-02-18 22:20:35 +01:00
parent d1248c2078
commit e788d12339
8 changed files with 351 additions and 11 deletions

View File

@@ -1 +1,2 @@
DIST owfs-2.7p21.tar.gz 1247466 SHA256 070a3368e9400e900618f8a704f487baf3671f6764715b4de04b151c66d3306d SHA512 ec6d372d32ebf59278c2c68d5fbed42664f52bc1702f4ea8e5506457594943413e37801d341102029cb48a9d8c3d6b3d68615a1dd517c93aa0a475a1bb06c4cf WHIRLPOOL 31901ae07a7431a368cdb4fa0a30a1885da29f55187dc601b53f2e9ebf4e11aba73de93d7f6308671ecb3afa8433548b41a2e79a9a0cc4771adee93a5a6a1ddd
DIST owfs-3.1p1.tar.gz 1400962 SHA256 e69421ae534565c1f8530a2447f583401f4d0d4b1cf3cb8cf399a57133ed7f81 SHA512 f5c2694ce1076969cf4a6970a07b2c2edee42cfbc6886c1790d777d650cc0afe42cf3282328f8832d5286a0aa5827c48e3d4657412ba3391db5e26adfa890cf5 WHIRLPOOL 2a3a4ebeb3eebaf0d370a7dcc8a9a5fb95defa3e218039f9203b996e4ac2272c2a16323bb8e43da39df9a389dbd057e49c936f40bdc08de201076fbd8d2fdba4

View File

@@ -0,0 +1,26 @@
diff --git a/module/ownet/perl5/Makefile.am b/module/ownet/perl5/Makefile.am
index 5823f4b..cebe1e6 100644
--- a/module/ownet/perl5/Makefile.am
+++ b/module/ownet/perl5/Makefile.am
@@ -8,7 +8,7 @@ OWNet/Makefile: OWNet/Makefile.PL
if HAVE_DEBIAN
cd OWNet; $(PERL) Makefile.PL INSTALLDIRS=vendor
else
- cd OWNet; $(PERL) Makefile.PL
+ cd OWNet; $(PERL) Makefile.PL INSTALLDIRS=vendor
endif
install-data-local: OWNet/Makefile
diff --git a/module/swig/perl5/Makefile.am b/module/swig/perl5/Makefile.am
index 8e5f583..49cd252 100644
--- a/module/swig/perl5/Makefile.am
+++ b/module/swig/perl5/Makefile.am
@@ -19,7 +19,7 @@ else
if HAVE_DEBIAN
( cd OW; $(PERL) Makefile.PL INSTALLDIRS=vendor )
else
- ( cd OW; $(PERL) Makefile.PL )
+ ( cd OW; $(PERL) Makefile.PL INSTALLDIRS=vendor )
if HAVE_FREEBSD
$(PERL) -pi -e 's/ doc_(perl|site|\$$\(INSTALLDIRS\))_install$$//' OW/Makefile

View File

@@ -0,0 +1,36 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Id$
INSTANCE=${SVCNAME#*.}
PROGRAM=${SVCNAME%%.*}
PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
OWUID=${OWUID:-owfs}
OWGID=${OWGID:-owfs}
depend() {
need owserver
use logger
}
start_pre() {
checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
}
start() {
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
--pid-file ${PIDFILE} \
--background --error_print 1 \
${OWFS_OPTS:--m /var/lib/owfs/mnt --allow_other -s 127.0.0.1:4304}
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} -u ${OWUID}
eend $?
}

View File

@@ -0,0 +1,36 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Id$
INSTANCE=${SVCNAME#*.}
PROGRAM=${SVCNAME%%.*}
PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
OWUID=${OWUID:-owfs}
OWGID=${OWGID:-owfs}
depend() {
need owserver
use logger
}
start_pre() {
checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
}
start() {
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
--pid-file ${PIDFILE} \
--background --error_print 1 \
${OWFTPD_OPTS:---nozero -p 127.0.0.1:4381 -s 127.0.0.1:4304 --max_clients 5 --timeout_ftp 600}
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} -u ${OWUID}
eend $?
}

View File

@@ -0,0 +1,36 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Id$
INSTANCE=${SVCNAME#*.}
PROGRAM=${SVCNAME%%.*}
PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
OWUID=${OWUID:-owfs}
OWGID=${OWGID:-owfs}
depend() {
need owserver
use logger
}
start_pre() {
checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
}
start() {
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
--pid-file ${PIDFILE} \
--background --error_print 1 \
${OWHTTPD_OPTS:---nozero -p 127.0.0.1:4380 -s 127.0.0.1:4304}
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} -u ${OWUID}
eend $?
}

View File

@@ -0,0 +1,35 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Id$
INSTANCE=${SVCNAME#*.}
PROGRAM=${SVCNAME%%.*}
PIDFILE=${PIDFILE:-/run/owfs/${PROGRAM}.pid}
OWUID=${OWUID:-owfs}
OWGID=${OWGID:-owfs}
depend() {
use logger
}
start_pre() {
checkpath -d -m 0750 -o ${OWUID}:${OWGID} "$(dirname ${PIDFILE})"
}
start() {
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} --user ${OWUID}:${OWGID} -- \
--pid-file ${PIDFILE} \
--background --error_print 1 \
${OWSERVER_OPTS:---nozero -p 127.0.0.1:4304 -d /dev/ttyS0}
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --exec /usr/bin/${PROGRAM} \
--pidfile ${PIDFILE} -u ${OWUID}
eend $?
}

View File

@@ -1,21 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<longdescription>
OWFS (One Wire File System) is an easy way to use the powerful 1-wire system
of Dallas/Maxim. A simple and flexible program to monitor and control the
physical environment. You can write scripts to read temperature, flash
lights, write to an LCD, log and graph, ...
</longdescription>
<longdescription lang="en">
OWFS (One Wire File System) is an easy way to use the powerful 1-wire system
of Dallas/Maxim. A simple and flexible program to monitor and control the
physical environment. You can write scripts to read temperature, flash
lights, write to an LCD, log and graph, ...
</longdescription>
<upstream>
<remote-id type="sourceforge">owfs</remote-id>
</upstream>
<use>
<flag name="ftpd">Enable building the OWFS FTP server (owftpd)</flag>
<flag name="fuse">Enable building the FUSE-based OWFS client (owfs)</flag>
<flag name="httpd">Enable building the OWFS web server (owhttpd)</flag>
<flag name="parport">Enable support for the DS1410E parallel port
adapter</flag>
<flag name="parport">Enable support for the DS1410E parallel port adapter</flag>
<flag name="server">Enable building the OWFS server (owserver)</flag>
</use>
<upstream>
<remote-id type="sourceforge">owfs</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,171 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
PYTHON_COMPAT=( python2_7 )
DISTUTILS_OPTIONAL=1
inherit autotools distutils-r1 perl-functions user
MY_P=${P/_/}
DESCRIPTION="Access 1-Wire devices like a filesystem"
SRC_URI="mirror://sourceforge/owfs/${MY_P}.tar.gz"
HOMEPAGE="http://owfs.org/ https://sourceforge.net/projects/owfs/"
KEYWORDS="~amd64 ~arm ~x86"
SLOT="0/1"
LICENSE="GPL-2"
RDEPEND="
fuse? ( sys-fs/fuse )
perl? ( dev-lang/perl:= )
php? ( dev-lang/php:=[cli] )
python? ( ${PYTHON_DEPS} )
tcl? ( dev-lang/tcl:0= )
usb? ( virtual/libusb:0 )
zeroconf? ( net-dns/avahi[mdnsresponder-compat] )"
DEPEND="${RDEPEND}
perl? ( dev-lang/swig )
php? ( dev-lang/swig )
python? ( dev-lang/swig )"
IUSE="debug ftpd fuse httpd parport perl php python tcl usb zeroconf"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=(
"${FILESDIR}"/${PN}-3.1-vendordir.patch
)
S=${WORKDIR}/${MY_P}
OWUID=${OWUID:-owfs}
OWGID=${OWGID:-owfs}
pkg_setup() {
use perl && perl_set_version
enewgroup ${OWGID} 150
enewuser ${OWUID} 150 -1 -1 ${OWGID}
}
src_prepare() {
default
# Support user's CFLAGS and LDFLAGS.
sed -i "s/@CPPFLAGS@/@CPPFLAGS@ ${CFLAGS}/" \
module/swig/perl5/OW/Makefile.linux.in || die
sed -i "s/@LIBS@/@LIBS@ ${LDFLAGS}/" \
module/swig/perl5/OW/Makefile.linux.in || die
eautoreconf
}
src_configure() {
# disable owpython since we can build python anyway
# and without it, we don't have to fix the build ;)
local myeconf=(
$(use_enable debug)
$(use_enable fuse owfs)
$(use_enable ftpd owftpd)
$(use_enable httpd owhttpd)
$(use_enable parport)
$(use_enable perl owperl)
$(use_enable php owphp)
--disable-owpython
$(use_enable tcl owtcl)
$(use_enable zeroconf zero)
$(use_enable usb)
)
if use httpd || use ftpd || use fuse; then
myeconf+=( --enable-owserver )
else
myeconf+=( --disable-owserver )
fi
econf ${myeconf[@]}
}
src_compile() {
default
if use python; then
local CFLAGS="${CFLAGS} -fno-strict-aliasing"
pushd module/ownet/python > /dev/null || die
distutils-r1_src_compile
popd > /dev/null || die
pushd module/swig/python > /dev/null || die
emake ow_wrap.c
distutils-r1_src_compile
popd > /dev/null || die
fi
}
src_test() { :; }
src_install() {
default
if use httpd || use ftpd || use fuse; then
newinitd "${FILESDIR}"/owserver.initd-r1 owserver
newconfd "${FILESDIR}"/owserver.confd owserver
for i in httpd ftpd; do
if use ${i}; then
newinitd "${FILESDIR}"/ow${i}.initd-r1 ow${i}
newconfd "${FILESDIR}"/ow${i}.confd ow${i}
fi
done
if use fuse; then
dodir /var/lib/owfs
dodir /var/lib/owfs/mnt
newinitd "${FILESDIR}"/owfs.initd-r1 owfs
newconfd "${FILESDIR}"/owfs.confd owfs
fi
fi
use perl && perl_delete_localpod
if use python; then
pushd module/ownet/python > /dev/null || die
distutils-r1_src_install
popd > /dev/null || die
pushd module/swig/python > /dev/null || die
distutils-r1_src_install
popd > /dev/null || die
fi
}
pkg_postinst() {
if use httpd || use ftpd || use fuse; then
echo
if [[ ${OWUID} != root ]]; then
ewarn
ewarn "In order to allow the OWFS daemon user '${OWUID}' to read"
ewarn "from and/or write to a 1 wire bus controller device, make"
ewarn "sure the user has appropriate permission to access the"
ewarn "corresponding device node/path (e.g. /dev/ttyS0), for example"
ewarn "by adding the user to the group 'uucp' (for serial devices)"
ewarn "or 'usb' (for USB devices accessed via usbfs on /proc/bus/usb),"
ewarn "or install an appropriate UDEV rules (see http://owfs.org/index.php?page=udev-and-usb"
ewarn "for more information)."
ewarn
if use fuse; then
ewarn "In order to allow regular users to read from and/or write to"
ewarn "1 wire bus devices accessible via the owfs FUSE filesystem"
ewarn "client and its filesystem mountpoint, make sure the user is"
ewarn "a member of the group '${OWGID}'."
ewarn
fi
echo
fi
fi
}