Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aevseev
coova-chilli
coova-chilli.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File coova-chilli.spec of Package coova-chilli
%define realname coova-chilli %define srcext tar.bz2 %define xtlibdir %(pkg-config --variable=xtlibdir xtables) # Common info Name: %{realname} Version: 0 Release: %{?extraver:0.}1%{?dist} License: GPL-2.0 Group: Productivity/Networking/Security URL: http://coova.github.io/ Summary: Software access controller for captive portal hotspots # Install-time parameters Requires: haserl %if 0%{?suse_version} PreReq: permissions %endif # Build-time parameters BuildRequires: autoconf automake libtool BuildRequires: gcc-c++ BuildRequires: pkg-config BuildRequires: gengetopt BuildRequires: openssl-devel BuildRequires: libnetfilter_queue-devel BuildRequires: libnfnetlink-devel BuildRequires: libmnl-devel BuildRequires: libpcap-devel BuildRequires: curl-devel %if 0%{?suse_version} BuildRequires: libjson-c-devel BuildRequires: libxtables-devel BuildRequires: kernel-devel kernel-syms modutils %else BuildRequires: json-c-devel BuildRequires: iptables-devel BuildRequires: kernel-headers %endif BuildRequires: %kernel_module_package_buildreqs BuildRoot: %{_tmppath}/%{name}-root Source0: http://ap.coova.org/chilli/%{realname}-%{version}%{?extraver}.%{srcext} Source99: preamble Source199: compiler-gcc5.h Patch: chilli.init.patch %description CoovaChilli is a feature rich software access controller that provides a captive portal / walled-garden environment and uses RADIUS or a HTTP protocol for access provisioning and accounting. %package devel Group: Development/Languages/C and C++ Summary: Development files for %{name} Requires: %{name} = %{version} %description devel Development files for %{name} # Don't build kernel module for RHEL/CentOS < 7 %if 0%{?suse_version} || 0%{?rhel} >= 7 %kernel_module_package %{?suse_version:-p %_sourcedir/preamble} -x kdump -x um -x ec2 -x debug -x xen %package KMP Group: System/Kernel Summary: Netfilter module for use with CoovaChilli %description KMP Netfilter kernel module for use with CoovaChilli. %package dkms Group: System/Kernel Summary: Netfilter module for use with CoovaChilli Requires: dkms BuildArch: noarch %description dkms Netfilter kernel module for use with CoovaChilli. %endif # Preparation step (unpackung and patching if necessary) %prep %setup -q -n %{realname}-%{version}%{?extraver} %patch -p1 %{__sed} -i '/^obj-m/ a\EXTRA_CFLAGS := -I$(src)' src/linux/Makefile # Use system library json-c %{__sed} -i '/json\/Makefile/ d' configure.ac %{__sed} -i '/^if WITH_JSONLIB/, /^endif/ d' Makefile.am src/Makefile.am # Why requirement for c-ares is hardcoded to curl support? %{__sed} -ri 's/ -lcares//' configure.ac # Create configure script if [ ! -x configure ]; then for script in autogen.sh bootstrap; do if [ -x ${script} ]; then ./${script} exit $? fi done autoreconf --force --install fi %build %configure \ --disable-static \ --disable-debug \ \ --enable-wpad \ --enable-gardenaccounting \ --enable-gardenext \ --enable-inspect\ --enable-dhcpopt \ --enable-sessgarden \ --enable-sessproxy \ --enable-sessdhcp \ --enable-sessdns \ --enable-chillixml \ --enable-proxyvsa \ --enable-dnslog \ --enable-ipwhitelist \ --enable-uamdomainfile \ --enable-redirdnsreq \ --enable-largelimits \ --enable-authedallowed \ --enable-binstatusfile \ --enable-statusfile \ --enable-chilliproxy \ --enable-multiroute \ --enable-multilan \ --enable-chilliradsec \ --enable-chilliredir \ --enable-chilliscript \ --disable-cluster \ --enable-sessionstate \ --enable-sessionid \ --enable-apsessionid \ --enable-mdns \ --enable-netbios \ --enable-ieee8023 \ --enable-pppoe \ --enable-l2tpppp \ --enable-eapol \ --enable-miniportal \ --enable-miniconfig \ --enable-ewtapi \ --enable-libjson \ --enable-ssdp \ --enable-layer3 \ --enable-modules \ --enable-extadmvsa \ --enable-redirinject \ --disable-netnat \ --enable-useragent \ --enable-acceptlanguage \ --enable-location \ --enable-forcedns \ \ --with-openssl \ --with-nfqueue \ --with-pcap \ --with-curl \ \ CFLAGS="%{optflags} %{?gcc_lto} -I%{_includedir}/json-c -I%{_includedir}/libnfnetlink -DENABLE_JSON -fPIC -DPIC" \ CXXFLAGS="%{optflags} %{?gcc_lto} -I%{_includedir}/json-c -I%{_includedir}/libnfnetlink -DENABLE_JSON -fPIC -DPIC" \ LDFLAGS="-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro %{?gcc_lto}" \ LIBS="-ljson-c" %{__sed} -i 's/ -Werror//' src/Makefile %{__make} %{?_smp_mflags} %{__mkdir} obj for flavor in %flavors_to_build; do %{__rm} -rf obj/$flavor %{__cp} -r src/linux obj/$flavor %{__make} -C %{kernel_source $flavor} %{?_smp_mflags} modules \ M=$PWD/obj/$flavor V=1 done # Build iptables extension %{__make} -C src/linux libxt_coova.so CFLAGS="%{optflags} $(pkg-config --cflags xtables)" %install %{__make} install DESTDIR=%{buildroot} %if "%{expand:%_vendor}" == "suse" %{__ln_s} %{_initrddir}/chilli %{buildroot}%{_sbindir}/rcchilli %{__install} -d -m 755 %{buildroot}%{_sysconfdir}/permissions.d echo "%{_sbindir}/chilli_script root:root 4755" > %{buildroot}%{_sysconfdir}/permissions.d/chilli %else %{__mkdir} -p %{buildroot}%{_initrddir} %{__mv} -f %{buildroot}%{_sysconfdir}/init.d/chilli %{buildroot}%{_initrddir}/ %endif %if 0%{?suse_version} || 0%{?rhel} >= 7 # Install Coova netfilter module export INSTALL_MOD_PATH=$RPM_BUILD_ROOT export INSTALL_MOD_DIR=updates for flavor in %flavors_to_build; do %{__make} -C %{kernel_source $flavor} modules_install \ M=$PWD/obj/$flavor done %{__install} -D -m755 src/linux/libxt_coova.so %{buildroot}%{xtlibdir}/libxt_coova.so # Prepare DKMS package %{__install} -d -m755 %{buildroot}/usr/src/%{realname}-%{version}%{?extraver}/linux %{__install} -m644 src/linux/xt_coova.c %{buildroot}/usr/src/%{realname}-%{version}%{?extraver}/xt_coova.c %{__install} -m644 src/linux/xt_coova.h %{buildroot}/usr/src/%{realname}-%{version}%{?extraver}/xt_coova.h test -f src/linux/linux/compiler-gcc5.h && %{__install} -m644 src/linux/linux/compiler-gcc5.h %{buildroot}/usr/src/%{realname}-%{version}%{?extraver}/linux/compiler-gcc5.h # Makefile cat > %{buildroot}/usr/src/%{realname}-%{version}%{?extraver}/Makefile <<EOMakefile obj-m += xt_coova.o ccflags-y := -I\$(KBUILD_EXTMOD) EOMakefile # dkms.conf cat > %{buildroot}/usr/src/%{realname}-%{version}%{?extraver}/dkms.conf <<EOdkmsconf PACKAGE_NAME="%{realname}" PACKAGE_VERSION="%{version}%{?extraver}" AUTOINSTALL=yes BUILT_MODULE_NAME="xt_coova" DEST_MODULE_LOCATION="/updates" EOdkmsconf %endif %clean [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %files %defattr(-,root,root) %doc AUTHORS COPYING CREDITS LICENSE README.md %doc doc/attributes doc/dictionary.coovachilli doc/freeradius.users %doc doc/firewall.iptables %doc doc/hotspotlogin.* doc/http-aaa-example.php %config(noreplace) %{_sysconfdir}/chilli.conf %dir %{_sysconfdir}/chilli %config(noreplace) %{_sysconfdir}/chilli/* %{_initrddir}/chilli %{_sbindir}/* %verify(not mode) %attr(4755, root, root) %{_sbindir}/chilli_script %{_libdir}/*.so.* %dir %{_libdir}/coova-chilli %{_libdir}/coova-chilli/*.so %exclude %{_libdir}/coova-chilli/*.la %exclude %{_libdir}/python/CoovaChilliLib.py* %if 0%{?suse_version} || 0%{?rhel} >= 7 %dir %{xtlibdir} %{xtlibdir}/libxt_coova.so %endif %if 0%{?suse_version} %{_sysconfdir}/permissions.d/chilli %endif %doc %{_mandir}/man1/* %doc %{_mandir}/man5/* %doc %{_mandir}/man8/* # Development stuff %files devel %defattr(-,root,root) %dir %{_includedir}/chilli %{_includedir}/chilli/*.h %{_libdir}/*.so %exclude %{_libdir}/*.la %if 0%{?suse_version} || 0%{?rhel} >= 7 %files dkms %defattr(-,root,root) /usr/src/%{realname}-%{version}%{?extraver} %post dkms /usr/sbin/dkms add -q -m %{realname} -v %{version}%{?extraver} --rpm_safe_upgrade || : %preun dkms /usr/sbin/dkms remove -q --all -m %{realname} -v %{version}%{?extraver} --rpm_safe_upgrade || : %endif %if 0%{?suse_version} %verifyscript %verify_permissions -e %{_sbindir}/chilli_script %post /sbin/ldconfig %set_permissions %{_sbindir}/chilli_script %{fillup_and_insserv chilli} %preun %{stop_on_removal chilli} %postun /sbin/ldconfig %{restart_on_update chilli} %{insserv_cleanup} %else %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor