blob: 1f6cf5765f0747a021b59264fc6b84d01cc3071f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-fs/owfs/owfs-2.7_p21.ebuild,v 1.9 2012/05/25 10:54:41 ssuominen Exp $
EAPI="2"
PYTHON_DEPEND="python? 2"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.* *-jython 2.7-pypy-*"
inherit depend.php distutils eutils perl-module user
MY_P=${P/_/}
DESCRIPTION="Access 1-Wire devices like a filesystem"
SRC_URI="mirror://sourceforge/owfs/${MY_P}.tar.gz"
HOMEPAGE="http://www.owfs.org/ http://owfs.sourceforge.net/"
LICENSE="GPL-2"
RDEPEND="fuse? ( sys-fs/fuse )
perl? ( dev-lang/perl )
php? ( dev-lang/php )
tcl? ( dev-lang/tcl )
usb? ( virtual/libusb:0 )
zeroconf? ( net-dns/avahi[mdnsresponder-compat] )"
DEPEND="${RDEPEND}
perl? ( dev-lang/swig )
php? ( dev-lang/swig )
python? ( dev-lang/swig )"
KEYWORDS="~amd64 ~arm ~x86"
SLOT="0"
IUSE="debug fuse ftpd httpd parport perl php python server tcl usb zeroconf"
S=${WORKDIR}/${MY_P}
OWUID=${OWUID:-owfs}
OWGID=${OWGID:-owfs}
PYTHON_CFLAGS=("2.* + -fno-strict-aliasing")
PYTHON_MODNAME="ow ownet"
pkg_setup() {
if use php; then
require_php_cli
fi
if use python; then
python_pkg_setup
fi
enewgroup ${OWGID} 150
enewuser ${OWUID} 150 -1 -1 ${OWGID}
}
src_unpack() {
base_src_unpack
}
src_prepare() {
base_src_prepare
sed -e 's/ \$(OWNET_SUBDIRPYTHON)//' -i module/ownet/Makefile.{am,in} || die "sed failed"
sed -e 's/ \$(SWIG_SUBDIRPYTHON)//' -i module/swig/Makefile.{am,in} || die "sed failed"
sed \
-e "s/@PYCFLAGS@//" \
-e "s/@PYLDFLAGS@//" \
-i module/swig/python/setup.py.in || die "sed failed"
}
src_configure() {
econf \
$(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) \
$(use_enable python owpython) \
$(use_enable server owserver) \
$(use_enable tcl owtcl) \
$(use_enable zeroconf zero) \
$(use_enable usb)
}
src_compile() {
base_src_compile
if use python; then
pushd module/ownet/python > /dev/null
distutils_src_compile
popd > /dev/null
pushd module/swig/python > /dev/null
emake ow_wrap.c || die "emake ow_wrap.c failed"
distutils_src_compile
popd > /dev/null
fi
}
src_test() { :; }
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
dodoc README NEWS ChangeLog AUTHORS || die
if use server || use httpd || use ftpd || use fuse; then
diropts -m 0750 -o ${OWUID} -g ${OWGID}
dodir /var/run/owfs
for i in server httpd ftpd; do
if use ${i}; then
newinitd "${FILESDIR}"/ow${i}.initd 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 owfs
newconfd "${FILESDIR}"/owfs.confd owfs
fi
fi
use perl && fixlocalpod
if use python; then
pushd module/ownet/python > /dev/null
distutils_src_install
popd > /dev/null
pushd module/swig/python > /dev/null
distutils_src_install
popd > /dev/null
fi
}
pkg_postinst() {
if use server || use httpd || use ftpd || use fuse; then
echo
einfo
einfo "Be sure to check/edit the following files,"
einfo "e.g. to fit your 1 wire bus controller"
einfo "device or daemon network settings:"
for i in server httpd ftpd; do
if use ${i}; then
einfo "- ${ROOT%/}/etc/conf.d/ow${i}"
fi
done
if use fuse; then
einfo "- ${ROOT%/}/etc/conf.d/owfs"
fi
einfo
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
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
use python && distutils_pkg_postinst
}
pkg_postrm() {
use python && distutils_pkg_postrm
}
|