File owfs.spec of Package owfs
#
# spec file for package owfs
#
# Copyright (c) 2017 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define libversion 3_2-3
Name: owfs
Version: 3.2p3
Release: 0
License: GPL-2.0
Summary: 1-Wire Virtual File System
Summary: Virtual filesystem on top of owfs-libs providing access to 1-Wire networks
Url: https://github.com/owfs/
Group: System/Libraries
Source: https://github.com/owfs/owfs/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source1: owfs.tmpfiles
# PATCH-FIX-UPSTREAM owfs-fix-gcc10.patch bugs@vdm-design.de -- fixes GCC 10 build
Patch0: owfs-fix-gcc10.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: ed
BuildRequires: fdupes
BuildRequires: libavahi-devel
BuildRequires: libftdi1-devel
BuildRequires: libtool
BuildRequires: libusb-compat-devel
BuildRequires: perl
BuildRequires: php7-devel
BuildRequires: pkgconfig
BuildRequires: swig
BuildRequires: systemd
BuildRequires: pkgconfig(fuse) >= 1.0
BuildRequires: pkgconfig(libusb-1.0) >= 1.0.16
BuildRequires: pkgconfig(python) >= 2.0
BuildRequires: pkgconfig(python-2.7) >= 2.0
BuildRequires: pkgconfig(python2) >= 2.0
%if 0%{?suse_version} < 1500
BuildRequires: pkgconfig(tcl) >= 8.1
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires}
%description
OWFS is a userspace virtual filesystem providing access to 1-Wire networks.
%package devel
Summary: Devel files for owfs
Group: Development/Libraries/Other
Requires: libcapi-%{libversion} = %{version}
Requires: libow-%{libversion} = %{version}
Requires: libownet-%{libversion} = %{version}
Requires: libowfs-%{libversion} = %{version}
Requires: owfs-libs = %{version}
Requires: owfs-php = %{version}
%description devel
Files needed to write your own programs using the owfs libraries.
%package -n libow-%{libversion}
Summary: Core library providing base functions to other OWFS modules
Group: System/Libraries
%description -n libow-%{libversion}
Core library providing base functions to other OWFS modules.
%package -n libowcapi-%{libversion}
Summary: C-API to develop third-part applications which access 1-Wire networks
Group: System/Libraries
%description -n libowcapi-%{libversion}
C-API library on top of libow providing an easy API to develop third-part applications
to access to 1-Wire networks.
%package -n libownet-%{libversion}
Summary: C-API to develop third-part applications which access 1-Wire networks
Group: System/Libraries
%description -n libownet-%{libversion}
Ownet library provids an easy API to develop third-part applications to access to 1-Wire networks.
It doesn't depend on owlib, and only supports remote-server connections.
This library doesn't include any 1-wire adapter support, except server connections.
%package fs
Summary: Virtual filesystem on top of owfs-libs providing access to 1-Wire networks
Group: System/Daemons
%description fs
Virtual filesystem on top of owfs-libs providing access to 1-Wire networks.
%package httpd
Summary: HTTP daemon providing access to 1-Wire networks
Group: System/Daemons
%description httpd
HTTP daemon on top of owfs providing access to 1-Wire networks.
%package ftpd
Summary: FTP daemon providing access to 1-Wire networks
Group: System/Daemons
%description ftpd
FTP daemon on top of owfs providing access to 1-Wire networks.
%package server
Summary: Backend server (daemon) for 1-wire control
Group: System/Daemons
%description server
The backend component of the OWFS 1-wire bus control system.
owserver arbitrates access to the bus from multiple client processes. The
physical bus is usually connected to a serial or USB port, and other processes
connect to owserver over network sockets (tcp port). Communication can be local
or over a network.
%package tap
Summary: Packet sniffer for the owserver protocol
Group: System/Daemons
%description tap
Packet sniffer for the owserver protocol
%package mon
Summary: Statistics and settings monitor for owserver
Group: System/Daemons
%description mon
Graphical monitor of owserver\'s status
%package -n perl-owfs
Summary: Perl interface for the 1-wire filesystem
Group: System/Libraries
Requires: perl-base
%description -n perl-owfs
Perl interface for the 1-wire filesystem
%package -n python-owfs
Summary: Python interface for the 1-wire filesystem
Group: System/Libraries
Requires: python-base
%description -n python-owfs
Python interface for the 1-wire filesystem
%package php
Summary: Php interface for the 1-wire filesystem
Group: System/Libraries
%description php
Php interface for the 1-wire filesystem
%if 0%{?suse_version} < 1500
%package tcl
Summary: Tcl interface for the 1-wire filesystem
Group: System/Libraries
%description tcl
Tcl interface for the 1-wire filesystem
%endif
%package shell
Summary: Light weight shell access to owserver and the 1-wire filesystem
Group: System/Console
%description shell
Small programs to easily access owserver (and thus the 1-wire system) from shell scripts.
%prep
%setup -q
%patch0 -p1
%build
export CFLAGS="%{optflags}"
./bootstrap
./configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--disable-static \
--enable-debian \
--enable-usb \
--enable-owfs \
--enable-owhttpd \
--enable-owcapi \
--enable-ownetlib \
--enable-owftpd \
--enable-owserver \
--enable-owtap \
--enable-owmon \
--enable-owperl \
--enable-owpython \
--enable-owphp \
%if 0%{?suse_version} < 1500
--enable-owtcl \
%else
--disable-owtcl \
%endif
--enable-ftdi \
--with-systemdsystemunitdir=%{_unitdir} \
make %{?_smp_mflags}
%install
%make_install
install -d -m 0755 %{buildroot}%{_includedir}/owfs
mv -f %{buildroot}%{_includedir}/*.h %{buildroot}%{_includedir}/owfs
sed -i "s/User=ow/User=daemon/g" %{buildroot}%{_unitdir}/owhttpd.service
sed -i "s/Group=ow/Group=root/g" %{buildroot}%{_unitdir}/owhttpd.service
sed -i "s/User=ow/User=daemon/g" %{buildroot}%{_unitdir}/owftpd.service
sed -i "s/Group=ow/Group=root/g" %{buildroot}%{_unitdir}/owftpd.service
sed -i "s/User=ow/User=daemon/g" %{buildroot}%{_unitdir}/owserver.service
sed -i "s/Group=ow/Group=root/g" %{buildroot}%{_unitdir}/owserver.service
install -d -m 0755 %{buildroot}%{_tmpfilesdir}
install -m 0644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf
%if 0%{?suse_version} < 1500
install -d -m 755 %{buildroot}%{_datadir}/tcl%{tcl_version}/owtcl-1.0
mv -f %{buildroot}%{_libdir}/owtcl-1.0/pkgIndex.tcl %{buildroot}%{_datadir}/tcl%{tcl_version}/owtcl-1.0
%else
rm -f %{buildroot}%{_mandir}/mann/owtcl.*
%endif
rm -f %{buildroot}%{_mandir}/man1/*.1so %{buildroot}%{_mandir}/man1/*.1so.gz
rm -f %{buildroot}%{_mandir}/man3/*.3so %{buildroot}%{_mandir}/man3/*.3so.gz
rm -f %{buildroot}%{_mandir}/man5/*.5so %{buildroot}%{_mandir}/man5/*.5so.gz
rm -f %{buildroot}%{_mandir}/mann/*.nso %{buildroot}%{_mandir}/mann/*.nso.gz
rm -f %{buildroot}%{perl_archlib}/perllocal.pod
rm -f %{buildroot}%{perl_vendorarch}/auto/OW/.packlist
rm -f %{buildroot}%{perl_vendorarch}/auto/OWNet/.packlist
rm -f %{buildroot}%{_libdir}/php5/extensions/libowphp.la %{buildroot}%{_libdir}/php5/extensions/libowphp.a
rm -f %{buildroot}%{_libdir}/owtcl-*/ow.la %{buildroot}%{_libdir}/owtcl-*/ow.a
find %{buildroot} -type f -name "*.la" -delete -print
rm -f %{buildroot}%{_libdir}/python*/site-packages/ownet/connection.pyc
rm -f %{buildroot}%{_libdir}/python*/site-packages/ow/__init__.pyc
rm -f %{buildroot}%{_libdir}/python*/site-packages/ownet/__init__.pyc
install -d -m 0755 %{buildroot}%{_sbindir}
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcowfs
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcowftpd
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcowhttpd
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcowserver
%fdupes -s %{buildroot}/%{_mandir}
%post -n libow-%{libversion} -p /sbin/ldconfig
%postun -n libow-%{libversion} -p /sbin/ldconfig
%post -n libowcapi-%{libversion} -p /sbin/ldconfig
%postun -n libowcapi-%{libversion} -p /sbin/ldconfig
%post -n libownet-%{libversion} -p /sbin/ldconfig
%postun -n libownet-%{libversion} -p /sbin/ldconfig
%pre fs
%service_add_pre owfs.service
%post fs
%service_add_post owfs.service
systemd-tmpfiles --create %{_tmpfilesdir}/%{name}.conf
%preun fs
%service_del_preun owfs.service
%postun fs
%service_del_postun owfs.service
%pre httpd
%service_add_pre owhttpd.service
%post httpd
%service_add_post owhttpd.service
%preun httpd
%service_del_preun owhttpd.service
%postun httpd
%service_del_postun owhttpd.service
%pre ftpd
%service_add_pre owftpd.service
%post ftpd
%service_add_post owftpd.service
%preun ftpd
%service_del_preun owftpd.service
%postun ftpd
%service_del_postun owftpd.service
%pre server
%service_add_pre owserver.service
%service_add_pre owserver.socket
%post server
%service_add_post owserver.service
%service_add_post owserver.socket
%preun server
%service_del_preun owserver.service
%service_del_preun owserver.socket
%postun server
%service_del_postun owserver.service
%service_del_postun owserver.socket
%files devel
%defattr(-,root,root)
%dir %{_includedir}/owfs
%{_includedir}/owfs/owfs_config.h
%{_includedir}/owfs/owcapi.h
%{_includedir}/owfs/ownetapi.h
%{_libdir}/libowcapi.so
%{_libdir}/libow.so
%{_libdir}/libownet.so
%{_libdir}/pkgconfig/owcapi.pc
%{_libdir}/php7/extensions/libowphp.so
%files -n libow-%{libversion}
%defattr(-,root,root)
%doc NEWS ChangeLog AUTHORS COPYING
%{_libdir}/libow-*.so*
%{_mandir}/man3/DS1427.3.gz
%{_mandir}/man3/DS1821.3.gz
%{_mandir}/man3/DS1822.3.gz
%{_mandir}/man3/DS1825.3.gz
%{_mandir}/man3/DS18B20.3.gz
%{_mandir}/man3/DS18S20.3.gz
%{_mandir}/man3/DS1904.3.gz
%{_mandir}/man3/DS1920.3.gz
%{_mandir}/man3/DS1921.3.gz
%{_mandir}/man3/DS1963L.3.gz
%{_mandir}/man3/DS1963S.3.gz
%{_mandir}/man3/DS1971.3.gz
%{_mandir}/man3/DS1977.3.gz
%{_mandir}/man3/DS1982.3.gz
%{_mandir}/man3/DS1982U.3.gz
%{_mandir}/man3/DS1985.3.gz
%{_mandir}/man3/DS1985U.3.gz
%{_mandir}/man3/DS1986.3.gz
%{_mandir}/man3/DS1986U.3.gz
%{_mandir}/man3/DS1990A.3.gz
%{_mandir}/man3/DS1991.3.gz
%{_mandir}/man3/DS1992.3.gz
%{_mandir}/man3/DS1993.3.gz
%{_mandir}/man3/DS1994.3.gz
%{_mandir}/man3/DS1995.3.gz
%{_mandir}/man3/DS1996.3.gz
%{_mandir}/man3/DS2401.3.gz
%{_mandir}/man3/DS2404.3.gz
%{_mandir}/man3/DS2404S.3.gz
%{_mandir}/man3/DS2405.3.gz
%{_mandir}/man3/DS2406.3.gz
%{_mandir}/man3/DS2407.3.gz
%{_mandir}/man3/DS2408.3.gz
%{_mandir}/man3/DS2409.3.gz
%{_mandir}/man3/DS2411.3.gz
%{_mandir}/man3/DS2413.3.gz
%{_mandir}/man3/DS2415.3.gz
%{_mandir}/man3/DS2417.3.gz
%{_mandir}/man3/DS2423.3.gz
%{_mandir}/man3/DS2430A.3.gz
%{_mandir}/man3/DS2431.3.gz
%{_mandir}/man3/DS2433.3.gz
%{_mandir}/man3/DS2436.3.gz
%{_mandir}/man3/DS2437.3.gz
%{_mandir}/man3/DS2438.3.gz
%{_mandir}/man3/DS2450.3.gz
%{_mandir}/man3/DS2502-E48.3.gz
%{_mandir}/man3/DS2502-UNW.3.gz
%{_mandir}/man3/DS2502.3.gz
%{_mandir}/man3/DS2505-UNW.3.gz
%{_mandir}/man3/DS2505.3.gz
%{_mandir}/man3/DS2506-UNW.3.gz
%{_mandir}/man3/DS2506.3.gz
%{_mandir}/man3/DS2720.3.gz
%{_mandir}/man3/DS2740.3.gz
%{_mandir}/man3/DS2751.3.gz
%{_mandir}/man3/DS2755.3.gz
%{_mandir}/man3/DS2756.3.gz
%{_mandir}/man3/DS2760.3.gz
%{_mandir}/man3/DS2761.3.gz
%{_mandir}/man3/DS2762.3.gz
%{_mandir}/man3/DS2770.3.gz
%{_mandir}/man3/DS2780.3.gz
%{_mandir}/man3/DS2781.3.gz
%{_mandir}/man3/DS2788.3.gz
%{_mandir}/man3/DS2804.3.gz
%{_mandir}/man3/DS2890.3.gz
%{_mandir}/man3/DS28E04.3.gz
%{_mandir}/man3/DS28EA00.3.gz
%{_mandir}/man3/DS28EC20.3.gz
%{_mandir}/man3/EDS.3.gz
%{_mandir}/man3/EDS0064.3.gz
%{_mandir}/man3/EDS0065.3.gz
%{_mandir}/man3/EDS0066.3.gz
%{_mandir}/man3/EDS0067.3.gz
%{_mandir}/man3/EDS0068.3.gz
%{_mandir}/man3/EDS0071.3.gz
%{_mandir}/man3/EDS0072.3.gz
%{_mandir}/man3/EEEF.3.gz
%{_mandir}/man3/LCD.3.gz
%{_mandir}/man3/MAX31826.3.gz
%{_mandir}/man3/Thermachron.3.gz
%{_mandir}/man3/UVI.3.gz
%{_mandir}/man3/mAM001.3.gz
%{_mandir}/man3/mCM001.3.gz
%{_mandir}/man3/mRS001.3.gz
%{_mandir}/man3/mDI001.3.gz
%{_mandir}/man3/EDS0070.3.gz
%{_mandir}/man3/EDS0080.3.gz
%{_mandir}/man3/EDS0082.3.gz
%{_mandir}/man3/EDS0083.3.gz
%{_mandir}/man3/EDS0085.3.gz
%{_mandir}/man3/EDS0090.3.gz
%{_mandir}/man3/MAX31820.3.gz
%{_mandir}/man3/MAX31850.3.gz
%{_mandir}/man3/MAX31851.3.gz
%{_mandir}/man3/IBLSS.3.gz
%files -n libowcapi-%{libversion}
%defattr(-,root,root)
%{_libdir}/libowcapi-*.so*
%{_mandir}/man1/*owcapi.1.*
%files -n libownet-%{libversion}
%defattr(-,root,root)
%{_libdir}/libownet-*.so*
%{_mandir}/man1/*ownet*.1.*
%files fs
%defattr(-,root,root)
%{_unitdir}/owfs.service
%{_sbindir}/rcowfs
%{_tmpfilesdir}/%{name}.conf
%{_bindir}/owfs
%{_mandir}/man1/owfs.1.*
%{_mandir}/man5/owfs.5.*
%{_mandir}/man5/owfs.conf.5.*
%ghost %{_rundir}/owfs
%files httpd
%defattr(-,root,root)
%{_unitdir}/owhttpd.service
%{_sbindir}/rcowhttpd
%{_bindir}/owhttpd
%{_mandir}/man1/owhttpd.1.*
%files shell
%defattr(-,root,root)
%{_bindir}/owdir
%{_bindir}/owread
%{_bindir}/owwrite
%{_bindir}/owget
%{_bindir}/owpresent
%{_bindir}/owexist
%{_bindir}/owexternal
%{_bindir}/owusbprobe
%{_mandir}/man1/owshell.1.*
%{_mandir}/man1/owdir.1.*
%{_mandir}/man1/owexist.1.*
%{_mandir}/man1/owread.1.*
%{_mandir}/man1/owget.1.*
%{_mandir}/man1/owpresent.1.*
%{_mandir}/man1/owwrite.1.*
%{_mandir}/mann/ow.n.*
%files ftpd
%defattr(-,root,root)
%{_unitdir}/owftpd.service
%{_sbindir}/rcowftpd
%{_bindir}/owftpd
%{_mandir}/man1/owftpd.1.*
%files server
%defattr(-,root,root)
%{_unitdir}/owserver.service
%{_sbindir}/rcowserver
%{_unitdir}/owserver.socket
%{_bindir}/owserver
%{_mandir}/man1/owserver.1.*
%files tap
%defattr(-,root,root)
%{_bindir}/owtap
%{_mandir}/man1/owtap.1.*
%files mon
%defattr(-,root,root)
%{_bindir}/owmon
%{_mandir}/man1/owmon.1.*
%files -n perl-owfs
%defattr(-,root,root)
%dir %{perl_vendorarch}/auto
%dir %{perl_vendorarch}/auto/OW
%{perl_vendorarch}/auto/OW/OW.*
%{perl_vendorarch}/OW.pm
%{perl_vendorlib}/OWNet.pm
%{_mandir}/man3/OWNet.3*
%{_mandir}/man3/owperl.3.gz
%files -n python-owfs
%defattr(-,root,root)
%{_libdir}/python*/site-packages/ow-*.egg-info
%dir %{_libdir}/python*/site-packages/ow
%{_libdir}/python*/site-packages/ow/_OW.so
%{_libdir}/python*/site-packages/ow/__init__.py
%{_libdir}/python*/site-packages/ownet-*.egg-info
%dir %{_libdir}/python*/site-packages/ownet
%{_libdir}/python*/site-packages/ownet/__init__.py
%{_libdir}/python*/site-packages/ownet/connection.py
%files php
%defattr(-,root,root)
%dir %{_libdir}/php7/extensions
%{_libdir}/php7/extensions/libowphp.so.*
%dir %{_datadir}/php
%dir %{_datadir}/php/OWNet
%{_datadir}/php/OWNet/ownet.php
%if 0%{?suse_version} < 1500
%files tcl
%defattr(-,root,root)
%dir %{_datadir}/tcl%{tcl_version}
%{_datadir}/tcl%{tcl_version}/owtcl-*/
%{_libdir}/owtcl-*/
%{_mandir}/mann/owtcl.n.*
%endif
%changelog