Name:		xtables-addons
Summary:	Extensions targets and matches for iptables
Version:	2.10
Release:	1%{?dist}
# The entire source code is GPLv2 except ACCOUNT/libxt_ACCOUNT_cl.* which is LGPLv2
License:	GPLv2 and LGPLv2
Group:		System Environment/Base
URL:		http://xtables-addons.sourceforge.net
Source0:	http://dl.sourceforge.net/xtables-addons/Xtables-addons/%{version}/xtables-addons-%{version}.tar.xz
Source1:	ipset.init
Source2:	ipset-config
BuildRequires:	iptables-devel >= 1.4.5
BuildRequires:	autoconf automake libtool
Provides:	%{name}-kmod-common = %{version}
Requires(post): chkconfig
Requires(preun): chkconfig
# This is for /sbin/service
Requires(preun): initscripts
Requires(postun): initscripts
Requires:	ipset >= 6.11
Obsoletes:	%{name}-devel < 1.27-1

%description
Xtables-addons provides extra modules for iptables not present in the kernel,
and is the successor of patch-o-matic. Extensions includes new targets like 
TEE, TARPIT, CHAOS, or modules like geoip, ipset, and account.

This package provides the userspace libraries for iptables to use extensions 
in the %{name}-kmod package. You must also install the 
%{name}-kmod package.

%package -n dkms-%{name}
Summary:        dkms package for xtables-addons
Group:          System Environment/Kernel
Requires:       dkms
Requires:       kernel-devel >= 3.7
Requires(post): dkms
Requires(preun):dkms

%description -n dkms-%{name}
This contains the dkms package building the xtables-addons kernel modules.

%prep
%setup -q -n %{name}-%{version}
./autogen.sh
if [ ! -e /%{_lib}/xtables/libxt_CHECKSUM.so ]; then
	sed -i 's/build_CHECKSUM=/build_CHECKSUM=m/' mconfig
fi
if [ ! -e /%{_lib}/xtables/libxt_TEE.so ]; then
	sed -i 's/build_TEE=/build_TEE=m/' mconfig
fi
sed -i 's/build_ipset6=/build_ipset6=m/' mconfig

%build
%configure --without-kbuild

make V=1 %{?_smp_mflags}

%install
make DESTDIR=%{buildroot} install

# We add xt_geoip database scripts manually
rm -rf %{buildroot}%{_libexecdir}
rm -f geoip/{Makefile*,.gitignore}
chmod 0644 geoip/*

# There is no -devel package. So no need for these files
rm -f %{buildroot}%{_libdir}/*.{la,so}

# install init scripts and configuration files
install -D -pm 0755 %{SOURCE1} %{buildroot}%{_initddir}/ipset
install -D -pm 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/ipset-config

# prepare the dkms sources
mkdir -p %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/ACCOUNT %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/pknock
cp extensions/Kbuild extensions/Mbuild mconfig extensions/Makefile* extensions/mac.c extensions/xt_* extensions/compat_* %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}
cp extensions/ACCOUNT/Kbuild extensions/ACCOUNT/Mbuild extensions/ACCOUNT/Makefile* extensions/ACCOUNT/xt_* %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/ACCOUNT
cp extensions/pknock/Kbuild extensions/pknock/Mbuild extensions/pknock/Makefile* extensions/pknock/xt_* %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/pknock

# mconfig is not in parent dir anymore
sed -i 's/${XA_ABSTOPSRCDIR}/${M}/' %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/Kbuild

# remove ipset-6 references to silence make clean errors
sed -i '/ipset-6/ d' %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/Kbuild
sed -i '/ipset-6/ d' %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/Mbuild

cat > %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/dkms.conf << EOF
PACKAGE_NAME="%{name}"
PACKAGE_VERSION="%{version}-%{release}"
AUTOINSTALL="yes"
MAKE[0]="make -C \${kernel_source_dir} M=\\\$(pwd)"
CLEAN="make -C \${kernel_source_dir} M=\\\$(pwd) clean"
BUILT_MODULE_LOCATION[0]="ACCOUNT"
DEST_MODULE_LOCATION[0]="/kernel/extra"
BUILT_MODULE_NAME[0]="xt_ACCOUNT"
BUILT_MODULE_LOCATION[1]="pknock"
DEST_MODULE_LOCATION[1]="/kernel/extra"
BUILT_MODULE_NAME[1]="xt_pknock"
EOF

i=2
for mod in compat_xtables xt_CHAOS \
xt_condition xt_DELUDE xt_DHCPMAC xt_DNETMAP xt_fuzzy xt_geoip xt_iface \
xt_IPMARK xt_ipp2p xt_ipv4options xt_length2 xt_LOGMARK xt_lscan xt_psd \
xt_quota2 xt_SYSRQ xt_TARPIT; do
	echo -e "DEST_MODULE_LOCATION[$i]=\"/kernel/extra\"\nBUILT_MODULE_NAME[$i]=\"$mod\"" >> %{buildroot}%{_usr}/src/%{name}-%{version}-%{release}/dkms.conf
	(( i = $i + 1 ))
done

install -m755 geoip/xt_geoip_dl %{buildroot}%{_sbindir}/
install -m755 geoip/xt_geoip_build %{buildroot}%{_sbindir}/

%post 
/sbin/ldconfig
/sbin/chkconfig --add ipset

%preun
if [ $1 = 0 ] ; then
    /sbin/service ipset stop >/dev/null 2>&1
    /sbin/chkconfig --del ipset
fi

%postun
/sbin/ldconfig
if [ "$1" -ge "1" ] ; then
    /sbin/service ipset condrestart >/dev/null 2>&1 || :
fi

%post -n dkms-%{name}
set -x
/usr/sbin/dkms add     -m %{name} -v %{version}-%{release} --rpm_safe_upgrade &&
/usr/sbin/dkms build   -m %{name} -v %{version}-%{release} --rpm_safe_upgrade &&
/usr/sbin/dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --force
true

%preun -n dkms-%{name}
set -x
/usr/sbin/dkms remove  -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all
true

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc LICENSE README doc/* geoip
%attr(0755,root,root) %{_initddir}/*
%config(noreplace) %{_sysconfdir}/sysconfig/*
/%{_lib}/xtables/*.so
%{_libdir}/*.so.*
%{_sbindir}/*
%{_mandir}/man?/*

%files -n dkms-%{name}
%{_usr}/src/%{name}-%{version}-%{release}

%changelog
* Sun Jun 26 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.10-1
- new upstream release.

* Sat Oct 31 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.9-1
- new upstream release.

* Tue Jul  7 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.7-1
- new upstream release.

* Sat Nov  1 2014 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.6-1
- built for Vine Linux.
- new upstream release.

* Sat Apr 26 2014 Nicolas Chauvet <kwizart@gmail.com> - 2.5-1
- Update to 2.5

* Sun Jan 12 2014 Nicolas Chauvet <kwizart@gmail.com> - 2.4-1
- Update to 2.4

* Tue Jun 18 2013 Nicolas Chauvet <kwizart@gmail.com> - 2.3-1
- Update to 2.3

* Thu Apr 18 2013 Nicolas Chauvet <kwizart@gmail.com> - 2.2-1
- Update to 2.2

* Mon Jan 14 2013 Nicolas Chauvet <kwizart@gmail.com> - 2.1-1
- Update to 2.1

* Thu Oct 18 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.47.1-1
- Update to 1.47.1

* Wed Oct 03 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.46-1
- Update to 1.46

* Tue Jul 31 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.45-1
- Update to 1.45

* Thu Jun 14 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.42-3
- Fix ipset path in F-16 and later

* Tue Jun 05 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.42-2
- Fix for UsrMove - rfbz#2360
- Fix Conflict with ipset - rfbz#2201
- Add Requires ipset >= 6.11 - rfbz#2226

* Thu Apr 12 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.42-1
- Update to 1.42

* Tue Jan 24 2012 Nicolas Chauvet <kwizart@gmail.com> - 1.41-1
- Update to 1.41

* Thu Nov 17 2011 Nicolas Chauvet <kwizart@gmail.com> - 1.39-1
- Update to 1.39

* Wed Oct 27 2010 Chen Lei <supercyper@163.com> - 1.30-1
- update to 1.30

* Sun Jul 25 2010 Chen Lei <supercyper@163.com> - 1.28-1
- update to 1.28

* Mon Jun 28 2010 Chen Lei <supercyper@163.com> - 1.27-2
- rebuild for kernel 2.6.35

* Mon May 31 2010 Chen Lei <supercyper@163.com> - 1.27-1
- update to 1.27

* Sun May 02 2010 Chen Lei <supercyper@163.com> - 1.26-1
- update to 1.26

* Mon Apr 26 2010 Chen Lei <supercyper@163.com> - 1.25-1
- update to 1.25

* Sun Apr 25 2010 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> - 1.24-2
- rebuilt

* Thu Mar 18 2010 Chen Lei <supercyper@163.com> - 1.24-1
- initial rpm build
