# # Conditional build: %bcond_without ipv6 # without IPv6 support # Summary: An anonymous distributed secure network Summary(pl.UTF-8): Anonimowa, rozproszona, bezpieczna sieć Name: GNUnet Version: 0.6.5 Release: 0.1 License: GPL Group: Applications/Networking Source0: http://www.ovmj.org/GNUnet/download/%{name}-%{version}.tar.bz2 # Source0-md5: 8bca32b55dccdb5bde7bd2b38df9df03 Source1: gnunet.init Patch0: %{name}-nolibs.patch Patch1: %{name}-ipv6.patch URL: http://www.gnu.org/software/GNUnet/ BuildRequires: autoconf >= 2.57 BuildRequires: automake BuildRequires: db-devel BuildRequires: gdbm-devel BuildRequires: gettext-tools BuildRequires: gmp-devel >= 4.0.0 BuildRequires: gtk+2-devel >= 2:2.4 BuildRequires: libextractor-devel >= 0.3.10 BuildRequires: libltdl-devel BuildRequires: libtool >= 1:1.4.2-9 BuildRequires: mysql-devel >= 3.23.56 BuildRequires: openssl-devel >= 0.9.7d BuildRequires: rpmbuild(macros) >= 1.268 BuildRequires: tdb-devel Requires(post,postun): /sbin/ldconfig Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(postun): /usr/sbin/userdel Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires: gdbm Requires: gtk+ >= 1.2 Requires: libextractor >= 0.3.10 Requires: openssl >= 0.9.7d Requires: rc-scripts Provides: group(gnunet) Provides: user(gnunet) BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _gnunethomedir /var/lib/GNUnet %description GNUnet is framework for secure peer-to-peer networking. The primary application for GNUnet is anonymous file-sharing. GNUnet is part of the GNU project . While GNUnet file-sharing provides anonymity for its users, it also provides accounting to perform better resource allocation. Contributing users are rewarded with better service. Peers monitor the behavior of other peers and allocate resources for peers that are economically trusted. The content encoding makes it hard for peers to circumvent the reward system. GNUnet supports multiple transport protocols, currently UDP, TCP and SMTP. The framework automatically chooses a cheap transport that is currently available by both peers for any given link. It is possible to run GNUnet peers behind NAT boxes and almost all firewall configurations. This is a beta version. The important features have been implemented and tested. The security features are in place, but note that anonymity may be limited due to the small number of active participants. For a more detailed description of GNUnet, see our webpages at: and Note that this RPM contains only plain directories database frontend; bdb, gdbm, mysql and tdb frontends are in separate subpackages. %description -l pl.UTF-8 GNUnet stanowi szkielet bezpiecznej sieci typu peer-to-peer. Podstawową aplikacją GNUnet jest anonimowe współdzielenie plików. GNUnet stanowi część projektu GNU (http://www.gnu.org/). Podczas gdy współdzielenie plików za pomocą GNUnet zapewnia użytkownikom anonimowość, umożliwia ono również ewidencjonowanie dla zapewnienia lepszego gospodarowania zasobami. Użytkownicy wnoszący coś są nagradzani lepszą jakością usługi. Każdy z równorzędnych użytkowników monitoruje zachowanie pozostałych i przydziela zasoby użytkownikom, którzy są ekonomicznie wiarygodni. Kodowanie treści czyni system nagród trudnym do przechytrzenia. GNUnet wspiera wiele protokołów transportowych, aktualnie: UDP, TCP i SMTP. Szkielet automatycznie wybiera tanią metodę transportu dostępną w danej chwili dla obu użytkowników przy dowolnym połączeniu. GNUnet może działać pomiędzy dwiema maszynami znajdującymi się za NAT i z prawie wszystkimi konfiguracjami firewalli. Jest to wersja beta. Najważniejsze funkcje zostały zaimplementowane i przetestowane. Funkcje zapewniające bezpieczeństwo są na swoim miejscu, lecz należy zauważyć, że anonimowość może być ograniczona ze względu na małą liczbę aktywnych uczestników. Bardziej szczegółowy opis GNUnet można znaleźć na stronie: i Należy też zauważyć, że ten pakiet zawiera tylko interfejs bazodanowy dla zwykłych katalogów; wtyczki obsługujące bazy bdb, gdbm, mysql i tdb znajdują się w osobnych podpakietach. %package bdb Summary: BerkeleyDB database support for GNUnet Summary(pl.UTF-8): Obsługa bazy BerkeleyDB dla GNUnet Group: Applications/Networking Requires: %{name} = %{version}-%{release} %description bdb This package contains BerkeleyDB database frontend for GNUnet. %description bdb -l pl.UTF-8 Pakiet ten zawiera interfejs bazy danych BerkeleyDB dla GNUnet. %package gdbm Summary: GDBM database support for GNUnet Summary(pl.UTF-8): Obsługa bazy GDBM dla GNUnet Group: Applications/Networking Requires: %{name} = %{version}-%{release} %description gdbm This package contains GDBM database frontend for GNUnet. %description gdbm -l pl.UTF-8 Pakiet ten zawiera interfejs bazy danych GDBM dla GNUnet. %package mysql Summary: MySQL database support for GNUnet Summary(pl.UTF-8): Obsługa bazy MySQL dla GNUnet Group: Applications/Networking Requires: %{name} = %{version}-%{release} Requires: mysql-libs >= 3.23.56 %description mysql This package contains MySQL database frontend for GNUnet. %description mysql -l pl.UTF-8 Pakiet ten zawiera interfejs bazy danych MySQL dla GNUnet. %package tdb Summary: TDB database support for GNUnet Summary(pl.UTF-8): Obsługa bazy TDB dla GNUnet Group: Applications/Networking Requires: %{name} = %{version}-%{release} %description tdb This package contains TDB database frontend for GNUnet. %description tdb -l pl.UTF-8 Pakiet ten zawiera interfejs bazy danych TDB dla GNUnet. %prep %setup -q %patch0 -p1 %{?with_ipv6:%patch1 -p1} %build %{__gettextize} %{__libtoolize} --ltdl %{__aclocal} -I m4 %{__autoconf} %{__autoheader} %{__automake} %configure \ --disable-static \ --with-gdbm=/usr \ --with-mysql=/usr \ --with-tdb=/usr \ --with-crypto=/usr \ %{?with_ipv6:--enable-ipv6} %{__make} %install rm -rf $RPM_BUILD_ROOT %{__make} install \ DESTDIR=$RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{skel/.gnunet,/rc.d/init.d} \ $RPM_BUILD_ROOT%{_gnunethomedir}/{state.sdb,data/{afs,credit,hosts}} install contrib/gnunet.root $RPM_BUILD_ROOT%{_sysconfdir}/gnunet.conf install contrib/gnunet.user $RPM_BUILD_ROOT%{_sysconfdir}/skel/.gnunet/gnunet.conf install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/gnunet # these are normal, dynamically linked libraries - there is no -devel, so *.la not needed rm -f $RPM_BUILD_ROOT%{_libdir}/{libgnunetutil,libgnunet_afs_esed2,libgnunetdht_api}.la \ $RPM_BUILD_ROOT%{_libdir}/{libgnunetdht_datastore_memory,libgnunetrpc_util}.la \ $RPM_BUILD_ROOT%{_includedir}/*.h %find_lang %{name} %clean rm -rf $RPM_BUILD_ROOT %pre %groupadd -g 115 gnunet %useradd -o -u 115 -d /var/lib/GNUnet -s /bin/sh -g gnunet -c "GNUnet daemon" gnunet %post /sbin/ldconfig /sbin/chkconfig --add gnunet %service gnunet restart "GNUnet" %preun if [ "$1" = 0 ]; then %service gnunet stop /sbin/chkconfig --del gnunet fi %postun /sbin/ldconfig if [ "$1" = "0" ]; then %userremove gnunet %groupremove gnunet fi %files -f %{name}.lang %defattr(644,root,root,755) %doc AUTHORS ChangeLog NEWS PLATFORMS README UPDATING %attr(755,root,root) %{_bindir}/gnunet-chat %attr(755,root,root) %{_bindir}/gnunet-check %attr(755,root,root) %{_bindir}/gnunet-convert %attr(755,root,root) %{_bindir}/gnunet-delete %attr(755,root,root) %{_bindir}/gnunet-dht-join %attr(755,root,root) %{_bindir}/gnunet-dht-query %attr(755,root,root) %{_bindir}/gnunet-directory %attr(755,root,root) %{_bindir}/gnunet-download #%attr(755,root,root) %{_bindir}/gnunet-download-manager.scm %attr(755,root,root) %{_bindir}/gnunet-gtk %attr(755,root,root) %{_bindir}/gnunet-insert %attr(755,root,root) %{_bindir}/gnunet-peer-info %attr(755,root,root) %{_bindir}/gnunet-pseudonym %attr(755,root,root) %{_bindir}/gnunet-search %attr(755,root,root) %{_bindir}/gnunet-setup %attr(755,root,root) %{_bindir}/gnunet-stats %attr(755,root,root) %{_bindir}/gnunet-tbench %attr(755,root,root) %{_bindir}/gnunet-testbed %attr(755,root,root) %{_bindir}/gnunet-tracekit %attr(755,root,root) %{_bindir}/gnunet-transport-check %attr(755,root,root) %{_bindir}/gnunet-update %attr(755,root,root) %{_bindir}/gnunetd # normal, dynamically linked libraries %attr(755,root,root) %{_libdir}/libgnunet_afs_esed2.so.0.0.0 %attr(755,root,root) %{_libdir}/libgnunetdht_api.so.0.0.0 %attr(755,root,root) %{_libdir}/libgnunetdht_datastore_memory.so.0.0.0 %attr(755,root,root) %{_libdir}/libgnunetrpc_util.so.0.0.0 %attr(755,root,root) %{_libdir}/libgnunetutil.so.0.0.0 # ltdlopened plugins - these must have *.la %attr(755,root,root) %{_libdir}/libgnunetafs_database_directory.so %{_libdir}/libgnunetafs_database_directory.la %attr(755,root,root) %{_libdir}/libgnunetafs_protocol.so %{_libdir}/libgnunetafs_protocol.la %attr(755,root,root) %{_libdir}/libgnunetchat_protocol.so %{_libdir}/libgnunetchat_protocol.la %attr(755,root,root) %{_libdir}/libgnunetdht_protocol.so %{_libdir}/libgnunetdht_protocol.la %attr(755,root,root) %{_libdir}/libgnunetrpc_protocol.so %{_libdir}/libgnunetrpc_protocol.la %attr(755,root,root) %{_libdir}/libgnunettbench_protocol.so %{_libdir}/libgnunettbench_protocol.la %attr(755,root,root) %{_libdir}/libgnunettestbed_protocol.so %{_libdir}/libgnunettestbed_protocol.la %attr(755,root,root) %{_libdir}/libgnunettracekit_protocol.so %{_libdir}/libgnunettracekit_protocol.la %attr(755,root,root) %{_libdir}/libgnunettransport_http.so %{_libdir}/libgnunettransport_http.la %attr(755,root,root) %{_libdir}/libgnunettransport_nat.so %{_libdir}/libgnunettransport_nat.la %attr(755,root,root) %{_libdir}/libgnunettransport_smtp.so %{_libdir}/libgnunettransport_smtp.la %attr(755,root,root) %{_libdir}/libgnunettransport_tcp.so %{_libdir}/libgnunettransport_tcp.la %attr(755,root,root) %{_libdir}/libgnunettransport_udp.so %{_libdir}/libgnunettransport_udp.la %if %{with ipv6} %attr(755,root,root) %{_libdir}/libgnunettransport_tcp6.so %{_libdir}/libgnunettransport_tcp6.la %attr(755,root,root) %{_libdir}/libgnunettransport_udp6.so %{_libdir}/libgnunettransport_udp6.la %endif %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gnunet.conf /etc/skel/.gnunet %attr(754,root,root) /etc/rc.d/init.d/gnunet %{_mandir}/man1/gnunet-chat.1* %{_mandir}/man1/gnunet-check.1* %{_mandir}/man1/gnunet-convert.1* %{_mandir}/man1/gnunet-delete.1* %{_mandir}/man1/gnunet-directory.1* %{_mandir}/man1/gnunet-download-manager.1* %{_mandir}/man1/gnunet-download.1* %{_mandir}/man1/gnunet-gtk.1* %{_mandir}/man1/gnunet-insert.1* %{_mandir}/man1/gnunet-peer-info.1* %{_mandir}/man1/gnunet-pseudonym.1* %{_mandir}/man1/gnunet-search.1* %{_mandir}/man1/gnunet-stats.1* %{_mandir}/man1/gnunet-tbench.1* %{_mandir}/man1/gnunet-testbed.1* %{_mandir}/man1/gnunet-tracekit.1* %{_mandir}/man1/gnunet-transport-check.1* %{_mandir}/man1/gnunet-update.1* %{_mandir}/man1/gnunetd.1* %{_mandir}/man5/gnunet.conf.5* %attr(2770,gnunet,gnunet) %dir %{_gnunethomedir} %attr(2770,gnunet,gnunet) %dir %{_gnunethomedir}/data %attr(2770,gnunet,gnunet) %dir %{_gnunethomedir}/data/afs %attr(2770,gnunet,gnunet) %dir %{_gnunethomedir}/data/credit %attr(2770,gnunet,gnunet) %dir %{_gnunethomedir}/data/hosts %attr(2770,gnunet,gnunet) %dir %{_gnunethomedir}/state.sdb # these (and *.so for them) should be in -devel or /dev/null #%{_libdir}/libgnunetutil.la #%{_libdir}/libgnunet_afs_esed2.la #%{_libdir}/libgnunetdht_api.la #%{_libdir}/libgnunetdht_datastore_memory.la #%{_libdir}/libgnunetrpc_util.la %files bdb %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libgnunetafs_database_bdb.so %{_libdir}/libgnunetafs_database_bdb.la %files gdbm %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libgnunetafs_database_gdbm.so %{_libdir}/libgnunetafs_database_gdbm.la %files mysql %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libgnunetafs_database_mysql.so %{_libdir}/libgnunetafs_database_mysql.la %files tdb %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libgnunetafs_database_tdb.so %{_libdir}/libgnunetafs_database_tdb.la