lkundrak / rpms / hostapd

Forked from rpms/hostapd 4 years ago
Clone
Blob Blame History Raw
Name:           hostapd
Version:        1.0
Release:        4%{?dist}
Summary:        IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Group:          System Environment/Daemons
License:        BSD
URL:            http://w1.fi/hostapd
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)  
Source0:        http://w1.fi/releases/%{name}-%{version}.tar.gz
Source1:        %{name}.service
Source2:        %{name}.conf
Source3:        %{name}.sysconfig
Patch0:         hostapd-RPM_OPT_FLAGS.patch
Patch1:         hostapd-EAP-TLS-server-Fix-TLS-Message-Length-validation.patch

BuildRequires:  libnl-devel >= 1.1
BuildRequires:  openssl-devel
BuildRequires:  systemd-units

#Requires(post): chkconfig
#Requires(preun): chkconfig
## This is for /sbin/service
#Requires(preun): initscripts
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units

%description
hostapd is a user space daemon for access point and authentication
servers.  It implements IEEE 802.11 access point management, IEEE
802.1X/WPA/WPA2/EAP Authenticators and RADIUS authentication server.

hostapd is designed to be a "daemon" program that runs in the back-
ground and acts as the backend component controlling authentication.
hostapd supports separate frontend programs and an example text-based
frontend, hostapd_cli, is included with hostapd.

%package logwatch
Summary: Logwatch scripts for hostapd
Requires: %{name} = %{version}-%{release} logwatch perl
%description logwatch
Logwatch scripts for hostapd


%prep
%setup -q

# Hack Makefile to allow use of RPM_OPT_FLAGS
%patch0 -p1

# git://w1.fi/srv/git/hostap.git
# 	commit 586c446e0ff42ae00315b014924ec669023bd8de
%patch1 -p1

# Prepare default config file
cat %{SOURCE2} | sed -e 's/HOSTAPD_VERSION/'%{version}'/' > hostapd.conf


%build
cd hostapd
cat defconfig | sed -e '/^#CONFIG_DRIVER_NL80211=y/s/^#//' \
                        -e '/^#CONFIG_RADIUS_SERVER=y/s/^#//' \
                        -e '/^#CONFIG_DRIVER_WIRED=y/s/^#//' \
                        -e '/^#CONFIG_DRIVER_NONE=y/s/^#//' \
                        -e '/^#CONFIG_IEEE80211N=y/s/^#//' > .config
make %{?_smp_mflags} EXTRA_CFLAGS="$RPM_OPT_FLAGS"


%install
rm -rf %{buildroot}

# init scripts
install -d %{buildroot}/%{_unitdir}
install -pm 0755 %{SOURCE1} %{buildroot}/%{_unitdir}/hostapd.service

# logwatch files
install -d %{buildroot}/%{_sysconfdir}/logwatch/conf/services
install -pm 0644 hostapd/logwatch/hostapd.conf  \
        %{buildroot}/%{_sysconfdir}/logwatch/conf/services/hostapd.conf
install -d %{buildroot}/%{_sysconfdir}/logwatch/scripts/services
install -pm 0755 hostapd/logwatch/hostapd \
        %{buildroot}/%{_sysconfdir}/logwatch/scripts/services/hostapd

# config files
install -d %{buildroot}/%{_sysconfdir}/%{name}
install -pm 0600 hostapd.conf %{buildroot}/%{_sysconfdir}/%{name}/hostapd.conf

install -d %{buildroot}/%{_sysconfdir}/sysconfig
install -pm 0644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/sysconfig/hostapd

# binaries
install -d %{buildroot}/%{_sbindir}
install -pm 0755 hostapd/hostapd %{buildroot}%{_sbindir}/hostapd
install -pm 0755 hostapd/hostapd_cli %{buildroot}%{_sbindir}/hostapd_cli

# man pages
install -d %{buildroot}%{_mandir}/man{1,8}
install -pm 0644 hostapd/hostapd_cli.1 %{buildroot}%{_mandir}/man1
install -pm 0644 hostapd/hostapd.8 %{buildroot}%{_mandir}/man8

# prepare docs
cp hostapd/README ./README.hostapd
cp hostapd/README-WPS ./README-WPS.hostapd
cp hostapd/logwatch/README ./README.logwatch


%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root,-)
%doc COPYING README README.hostapd README-WPS.hostapd
%doc hostapd/hostapd.conf hostapd/wired.conf
%doc hostapd/hostapd.accept hostapd/hostapd.deny
%doc hostapd/hostapd.eap_user hostapd/hostapd.radius_clients
%doc hostapd/hostapd.vlan hostapd/hostapd.wpa_psk
%config(noreplace) %{_sysconfdir}/%{name}/hostapd.conf
%config(noreplace) %{_sysconfdir}/sysconfig/hostapd
%{_unitdir}/hostapd.service
%{_sbindir}/hostapd
%{_sbindir}/hostapd_cli
%dir %{_sysconfdir}/%{name}
%{_mandir}/man1/*
%{_mandir}/man8/*

%files logwatch
%defattr(-,root,root,-)
%doc hostapd/logwatch/README
%config(noreplace) %{_sysconfdir}/logwatch/conf/services/hostapd.conf
%{_sysconfdir}/logwatch/scripts/services/hostapd


%post
#/sbin/chkconfig --add %{name}
if [ $1 -eq 1 ] ; then 
    # Initial installation 
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi

%preun
#if [ $1 = 0 ]; then
#        /sbin/service %{name} stop >/dev/null 2>&1
#        /sbin/chkconfig --del %{name}
#fi
if [ $1 -eq 0 ] ; then
    # Package removal, not upgrade
    /bin/systemctl --no-reload disable hostapd.service > /dev/null 2>&1 || :
    /bin/systemctl stop hostapd.service > /dev/null 2>&1 || :
fi

%postun
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
    # Package upgrade, not uninstall
    /bin/systemctl try-restart hostapd.service >/dev/null 2>&1 || :
fi

%triggerun -- hostapd < 0.7.3-5
# Save the current service runlevel info
# User must manually run systemd-sysv-convert --apply hostapd
# to migrate them to systemd targets
/usr/bin/systemd-sysv-convert --save hostapd >/dev/null 2>&1 ||:

# Run these because the SysV package being removed won't do them
/sbin/chkconfig --del hostapd >/dev/null 2>&1 || :
/bin/systemctl try-restart hostapd.service >/dev/null 2>&1 || :


%changelog
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Mon Oct  8 2012 John W. Linville <linville@redhat.com> - 1.0-3
- EAP-TLS: Add extra validation for TLS Message Length

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jun  8 2012 John W. Linville <linville@redhat.com> - 1.0-1
- Update to version 1.0 from upstream

* Fri Jun  8 2012 John W. Linville <linville@redhat.com> - 0.7.3-9
- Remove hostapd-specific runtime state directory

* Wed Jun  6 2012 John W. Linville <linville@redhat.com> - 0.7.3-8
- Fixup typo in pid file path in hostapd.service

* Wed May 30 2012 John W. Linville <linville@redhat.com> - 0.7.3-7
- Add BuildRequires for systemd-units

* Fri May 25 2012 John W. Linville <linville@redhat.com> - 0.7.3-6
- Fixup typo in configuration file path in hostapd.service
- Tighten-up default permissions for hostapd.conf

* Tue Feb 28 2012 Jon Ciesla <limburgher@gmail.com> - 0.7.3-5
- Migrate to systemd, BZ 770310.

* Wed Jan 18 2012 John W. Linville <linville@redhat.com> - 0.7.3-4
- Add reference to sample hostapd.conf in the default installed version
- Include README-WPS from the hostapd distribution as part of the docs

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Thu Dec 23 2010 John W. Linville <linville@redhat.com> - 0.7.3-1
- Update to version 0.7.3

* Wed Nov 24 2010 John W. Linville <linville@redhat.com> - 0.6.10-3
- Use ghost directive for /var/run/hostapd
- Remove some rpmlint warnings

* Thu May 27 2010 John W. Linville <linville@redhat.com> - 0.6.10-2
- Move DTIM period configuration into Beacon set operation

* Mon May 10 2010 John W. Linville <linville@redhat.com> - 0.6.10-1
- Update to version 0.6.10

* Tue Jan 19 2010 John W. Linville <linville@redhat.com> - 0.6.9-8
- Do not compress man pages manually in spec file
- Correct date of previous changelog entry

* Thu Jan 14 2010 John W. Linville <linville@redhat.com> - 0.6.9-7
- Enable 802.11n support

* Thu Dec 17 2009 John W. Linville <linville@redhat.com> - 0.6.9-6
- Enable RADIUS server
- Enable "wired" and "none" drivers
- Use BSD license option

* Wed Dec 16 2009 John W. Linville <linville@redhat.com> - 0.6.9-5
- Use openssl instead of gnutls (broken)

* Wed Dec 16 2009 John W. Linville <linville@redhat.com> - 0.6.9-4
- Remove wired.conf from doc (not in chosen configuration)
- Use $RPM_OPT_FLAGS
- Add dist tag

* Wed Dec 16 2009 John W. Linville <linville@redhat.com> - 0.6.9-3
- Use gnutls instead of openssl
- Turn-off internal EAP server (broken w/ gnutls)
- Remove doc files not applicable to chosen configuration
- Un-mangle README filename for logwatch sub-package

* Wed Dec 16 2009 John W. Linville <linville@redhat.com> - 0.6.9-2
- Initial build
- Start release at 2 to avoid conflicts w/ previous attempts by others