+#
+# Conditional build:
+%bcond_without apidocs # Doxygen documentation in HTML format
+
Summary: C library for portable packet creation and injection
-Summary(pl): Biblioteka C do przeno¶nego tworzenia i wprowadzania pakietów
-Summary(pt_BR): API para funções de rede de baixo nível
+Summary(pl.UTF-8): Biblioteka C do przenośnego tworzenia i wprowadzania pakietów
+Summary(pt_BR.UTF-8): API para funções de rede de baixo nível
Name: libnet
-Version: 1.1.2.1
+Version: 1.2
Release: 1
Epoch: 1
License: BSD
Group: Libraries
-Source0: http://www.packetfactory.net/libnet/dist/%{name}-%{version}.tar.gz
-# Source0-md5: be845c41170d72c7db524f3411b50256
-Patch0: %{name}-shared.patch
-Patch1: %{name}-am.patch
-URL: http://www.packetfactory.net/libnet/
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: libtool
+#Source0Download: https://github.com/libnet/libnet/releases
+Source0: https://github.com/libnet/libnet/releases/download/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: a36c669e0cdfda6a2aa3adfb1f6fe60a
+Patch0: %{name}-libdir.patch
+Patch1: %{name}-proc.patch
+URL: https://github.com/libnet/libnet
+BuildRequires: autoconf >= 2.69
+BuildRequires: automake >= 1:1.14
+%{?with_apidocs:BuildRequires: doxygen}
+BuildRequires: libtool >= 2:2.4.2
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
link layer as well as a host of supplementary and complementary
functionality.
-%description -l pl
+%description -l pl.UTF-8
Biblioteka dostarcza API dla popularnych niskopoziomowych funkcji
-sieciowych (g³ównie wprowadzania pakietów). Przy u¿yciu libnet mo¿na
-³atwo stworzyæ dowolne pakiety sieciowe. Biblioteka dostarcza
-przeno¶ny szkielet do niskopoziomowego zapisu i obs³ugi pakietów
-sieciowych (w po³±czeniu z libpcap mo¿na napisaæ co¶ naprawdê
-fajnego). Libnet obejmuje tworzenie pakietów w warstwie IP i
-po³±czenia, a tak¿e funkcjonalno¶æ dodatkow± i uzupe³niaj±c±.
-
-%description -l pt_BR
-Este pacote fornece uma API simples para funções de rede de baixo
-nível comumente usadas (principalmente injeção de pacotes). Usando
-libnet, é simples construir e enviar pacotes de rede arbitrários.
+sieciowych (głównie wprowadzania pakietów). Przy użyciu libnet można
+łatwo stworzyć dowolne pakiety sieciowe. Biblioteka dostarcza
+przenośny szkielet do niskopoziomowego zapisu i obsługi pakietów
+sieciowych (w połączeniu z libpcap można napisać coś naprawdę
+fajnego). Libnet obejmuje tworzenie pakietów w warstwie IP i
+połączenia, a także funkcjonalność dodatkową i uzupełniającą.
+
+%description -l pt_BR.UTF-8
+Este pacote fornece uma API simples para funções de rede de baixo
+nível comumente usadas (principalmente injeção de pacotes). Usando
+libnet, é simples construir e enviar pacotes de rede arbitrários.
%package devel
Summary: Header files and develpment documentation for libnet
-Summary(pl): Pliki nag³ówkowe i dokumetacja do libnet
-Summary(pt_BR): Arquivos do pacote libnet para desenvolvimento
+Summary(pl.UTF-8): Pliki nagłówkowe i dokumetacja do libnet
+Summary(pt_BR.UTF-8): Arquivos do pacote libnet para desenvolvimento
Group: Development/Libraries
Requires: %{name} = %{epoch}:%{version}-%{release}
%description devel
Header files and develpment documentation for libnet.
-%description devel -l pl
-Pliki nag³ówkowe i dokumetacja do libnet.
+%description devel -l pl.UTF-8
+Pliki nagłówkowe i dokumentacja do libnet.
-%description devel -l pt_BR
-Arquivos de cabeçalho e bibliotecas usadas no desenvolvimento de
+%description devel -l pt_BR.UTF-8
+Arquivos de cabeçalho e bibliotecas usadas no desenvolvimento de
aplicativos que usam libnet.
%package static
Summary: Static libnet library
-Summary(pl): Biblioteka statyczna libnet
-Summary(pt_BR): Arquivos do pacote libnet para desenvolvimento estático
+Summary(pl.UTF-8): Biblioteka statyczna libnet
+Summary(pt_BR.UTF-8): Arquivos do pacote libnet para desenvolvimento estático
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%description static
Static libnet library.
-%description static -l pl
+%description static -l pl.UTF-8
Biblioteka statyczna libnet.
-%description static -l pt_BR
-Arquivos de cabeçalho e bibliotecas usadas no desenvolvimento de
-aplicativos estáticos que usam libnet.
+%description static -l pt_BR.UTF-8
+Arquivos de cabeçalho e bibliotecas usadas no desenvolvimento de
+aplicativos estáticos que usam libnet.
+
+%package apidocs
+Summary: API documentation for libnet
+Summary(pl.UTF-8): Dokumentacja API biblioteki libnet
+Group: Documentation
+BuildArch: noarch
+
+%description apidocs
+API documentation for libnet.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki libnet.
%package examples
Summary: libnet - example programs
-Summary(pl): libnet - programy przyk³adowe
+Summary(pl.UTF-8): libnet - programy przykładowe
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+BuildArch: noarch
%description examples
libnet - example programs.
-%description examples -l pl
-libnet - programy przyk³adowe.
+%description examples -l pl.UTF-8
+libnet - programy przykładowe.
%prep
-%setup -q -n %{name}
+%setup -q
%patch0 -p1
%patch1 -p1
%build
%{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
%{__autoconf}
+%{__autoheader}
%{__automake}
%configure \
- --with-pf_packet=yes
-%{__make} \
- CFLAGS="%{rpmcflags}"
+ %{!?with_apidocs:--disable-doxygen-html} \
+ --with-link-layer=linux
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_examplesdir}/%{name}-%{version},%{_mandir}/man3}
+install -d $RPM_BUILD_ROOT{/%{_lib},%{_mandir}/man1,%{_examplesdir}/%{name}-%{version}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-ln -sf libnet.so $RPM_BUILD_ROOT%{_libdir}/libpwrite.so
-ln -sf libnet.a $RPM_BUILD_ROOT%{_libdir}/libpwrite.a
-install sample/*.[ch] $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-install doc/man/man3/libnet-functions.h.3 $RPM_BUILD_ROOT/%{_mandir}/man3
+cp -p sample/*.[ch] $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libnet.so.* $RPM_BUILD_ROOT/%{_lib}
+ln -sf /%{_lib}/$(cd $RPM_BUILD_ROOT/%{_lib} ; echo libnet.so.*.*.*) \
+ $RPM_BUILD_ROOT%{_libdir}/libnet.so
+
+# fix man section
+%{__mv} $RPM_BUILD_ROOT{%{_mandir}/man3/libnet-config.3,%{_mandir}/man1/libnet-config.1}
+
+# obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libnet.la
+
+%if %{with apidocs}
+# packaged as %doc
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/libnet
+%endif
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README doc/{CHANGELOG,MIGRATION,PACKET_BUILDING}
-%attr(755,root,root) %{_libdir}/lib*.so.*.*
+%doc ChangeLog.md LICENSE README.md doc/{MIGRATION,RAWSOCKET}.md
+%attr(755,root,root) /%{_lib}/libnet.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libnet.so.9
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so
-%{_libdir}/lib*.la
-%{_includedir}/*.h
+%attr(755,root,root) %{_bindir}/libnet-config
+%attr(755,root,root) %{_libdir}/libnet.so
+%{_includedir}/libnet.h
%{_includedir}/libnet
-%{_mandir}/man*/*
+%{_pkgconfigdir}/libnet.pc
+%{_mandir}/man1/libnet-config.1*
+%{_mandir}/man3/libnet.3*
+%{_mandir}/man3/libnet-functions.3*
+%{_mandir}/man3/libnet-macros.3*
%files static
%defattr(644,root,root,755)
-%{_libdir}/lib*.a
+%{_libdir}/libnet.a
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%doc doc/html/*.{css,html,js,png}
+%endif
%files examples
%defattr(644,root,root,755)