From 4ee364640d85eb2966217e526ff12ee674d27e82 Mon Sep 17 00:00:00 2001 From: Darknet Villain Date: Mon, 22 Jan 2018 13:55:12 -0500 Subject: [PATCH 1/3] Update rpm spec and systemd unit --- contrib/rpm/i2pd.service | 23 +++++++++++++++++------ contrib/rpm/i2pd.spec | 18 ++++++++++++++---- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/contrib/rpm/i2pd.service b/contrib/rpm/i2pd.service index b14af025..89562ff5 100644 --- a/contrib/rpm/i2pd.service +++ b/contrib/rpm/i2pd.service @@ -1,16 +1,27 @@ [Unit] -Description=I2P router +Description=I2P Router written in C++ After=network.target [Service] User=i2pd Group=i2pd +RuntimeDirectory=i2pd +RuntimeDirectoryMode=0700 Type=simple -ExecStart=/usr/bin/i2pd --service -PIDFile=/var/lib/i2pd/i2pd.pid -Restart=always -PrivateTmp=true +ExecStart=/usr/sbin/i2pd --conf=/etc/i2pd/i2pd.conf --pidfile=/var/run/i2pd/i2pd.pid --logfile=/var/log/i2pd/i2pd.log --daemon --service +ExecReload=/bin/kill -HUP $MAINPID +PIDFile=/var/run/i2pd/i2pd.pid +### Uncomment, if auto restart needed +#Restart=on-failure + +### Use SIGINT for graceful stop daemon. +# i2pd stops accepting new tunnels and waits ~10 min while old ones do not die. +KillSignal=SIGINT +TimeoutStopSec=10m + +# If you have problems with hunging i2pd, you can try enable this +#LimitNOFILE=4096 +PrivateDevices=yes [Install] WantedBy=multi-user.target - diff --git a/contrib/rpm/i2pd.spec b/contrib/rpm/i2pd.spec index 0b6fa463..f0f7a9a7 100644 --- a/contrib/rpm/i2pd.spec +++ b/contrib/rpm/i2pd.spec @@ -68,9 +68,15 @@ make %{?_smp_mflags} %install cd build chrpath -d i2pd -install -D -m 755 i2pd %{buildroot}%{_bindir}/i2pd +install -D -m 755 i2pd %{buildroot}%{_sbindir}/i2pd +install -D -m 755 %{_builddir}/%{name}-%{version}/contrib/i2pd.conf %{buildroot}%{_sysconfdir}/i2pd/i2pd.conf +install -D -m 755 %{_builddir}/%{name}-%{version}/contrib/tunnels.conf %{buildroot}%{_sysconfdir}/i2pd/tunnels.conf +install -d -m 755 %{buildroot}/%{_datadir}/i2pd +%{__cp} -r %{_builddir}/%{name}-%{version}/contrib/certificates/ %{buildroot}%{_datadir}/i2pd/certificates install -D -m 644 %{_builddir}/%{name}-%{version}/contrib/rpm/i2pd.service %{buildroot}/%{_unitdir}/i2pd.service install -d -m 700 %{buildroot}/%{_sharedstatedir}/i2pd +install -d -m 700 %{buildroot}/%{_localstatedir}/log/i2pd +ln -s %{_datadir}/%{name}/certificates %{buildroot}%{_sharedstatedir}/%{name}/certificates %pre systemd @@ -94,12 +100,16 @@ getent passwd i2pd >/dev/null || \ %files %doc LICENSE README.md -%_bindir/i2pd +%{_sbindir}/i2pd +%{_datadir}/i2pd/certificates +%config(noreplace) %{_sysconfdir}/i2pd/* %files systemd -/%_unitdir/i2pd.service -%dir %attr(0700,i2pd,i2pd) %_sharedstatedir/i2pd +/%{_unitdir}/i2pd.service +%dir %attr(0700,i2pd,i2pd) %{_localstatedir}/log/i2pd +%dir %attr(0700,i2pd,i2pd) %{_sharedstatedir}/i2pd +%{_sharedstatedir}/i2pd/certificates %changelog From 6ee279d83ee538ce1afb8bde1a6a6e2d77f10a6f Mon Sep 17 00:00:00 2001 From: Darknet Villain Date: Sat, 27 Jan 2018 10:54:03 -0500 Subject: [PATCH 2/3] [rpm] Merge i2pd-systemd with i2pd package + changelog --- contrib/rpm/i2pd.spec | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/contrib/rpm/i2pd.spec b/contrib/rpm/i2pd.spec index f0f7a9a7..23e0b32d 100644 --- a/contrib/rpm/i2pd.spec +++ b/contrib/rpm/i2pd.spec @@ -4,6 +4,7 @@ Name: i2pd Version: 2.17.0 Release: %{build_timestamp}git%{?dist} Summary: I2P router written in C++ +Obsoletes: %{name}-systemd License: BSD URL: https://github.com/PurpleI2P/i2pd @@ -23,25 +24,12 @@ BuildRequires: openssl-devel BuildRequires: miniupnpc-devel BuildRequires: systemd-units -%description -C++ implementation of I2P. - - -%package systemd -Summary: Files to run I2P router under systemd -Requires: i2pd Requires: systemd Requires(pre): %{_sbindir}/useradd %{_sbindir}/groupadd -Obsoletes: %{name}-daemon - -%description systemd +%description C++ implementation of I2P. -This package contains systemd unit file to run i2pd as a system service -using dedicated user's permissions. - - %prep %setup -q @@ -79,22 +67,22 @@ install -d -m 700 %{buildroot}/%{_localstatedir}/log/i2pd ln -s %{_datadir}/%{name}/certificates %{buildroot}%{_sharedstatedir}/%{name}/certificates -%pre systemd +%pre getent group i2pd >/dev/null || %{_sbindir}/groupadd -r i2pd getent passwd i2pd >/dev/null || \ %{_sbindir}/useradd -r -g i2pd -s %{_sbindir}/nologin \ -d %{_sharedstatedir}/i2pd -c 'I2P Service' i2pd -%post systemd +%post %systemd_post i2pd.service -%preun systemd +%preun %systemd_preun i2pd.service -%postun systemd +%postun %systemd_postun_with_restart i2pd.service @@ -103,9 +91,6 @@ getent passwd i2pd >/dev/null || \ %{_sbindir}/i2pd %{_datadir}/i2pd/certificates %config(noreplace) %{_sysconfdir}/i2pd/* - - -%files systemd /%{_unitdir}/i2pd.service %dir %attr(0700,i2pd,i2pd) %{_localstatedir}/log/i2pd %dir %attr(0700,i2pd,i2pd) %{_sharedstatedir}/i2pd @@ -113,6 +98,10 @@ getent passwd i2pd >/dev/null || \ %changelog +* Sat Jan 27 2018 l-n-s - 2.17.0-1 +- Added certificates and default configuration files +- Merge i2pd with i2pd-systemd package + * Mon Dec 04 2017 orignal - 2.17.0 - Added reseed through HTTP and SOCKS proxy - Added show status of client services through web console From 3426906a4ffb09c8bf2bddb42d57c0e4d3a4e8a9 Mon Sep 17 00:00:00 2001 From: Darknet Villain Date: Tue, 30 Jan 2018 10:03:53 -0500 Subject: [PATCH 3/3] [rpm] Fix changelogs to comply with guidelines, add tunconf key to systemd package --- contrib/rpm/i2pd.service | 2 +- contrib/rpm/i2pd.spec | 70 ++++++---------------------------------- 2 files changed, 10 insertions(+), 62 deletions(-) diff --git a/contrib/rpm/i2pd.service b/contrib/rpm/i2pd.service index 89562ff5..ec5949ff 100644 --- a/contrib/rpm/i2pd.service +++ b/contrib/rpm/i2pd.service @@ -8,7 +8,7 @@ Group=i2pd RuntimeDirectory=i2pd RuntimeDirectoryMode=0700 Type=simple -ExecStart=/usr/sbin/i2pd --conf=/etc/i2pd/i2pd.conf --pidfile=/var/run/i2pd/i2pd.pid --logfile=/var/log/i2pd/i2pd.log --daemon --service +ExecStart=/usr/sbin/i2pd --conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf --pidfile=/var/run/i2pd/i2pd.pid --logfile=/var/log/i2pd/i2pd.log --daemon --service ExecReload=/bin/kill -HUP $MAINPID PIDFile=/var/run/i2pd/i2pd.pid ### Uncomment, if auto restart needed diff --git a/contrib/rpm/i2pd.spec b/contrib/rpm/i2pd.spec index 23e0b32d..2efe8838 100644 --- a/contrib/rpm/i2pd.spec +++ b/contrib/rpm/i2pd.spec @@ -98,83 +98,31 @@ getent passwd i2pd >/dev/null || \ %changelog -* Sat Jan 27 2018 l-n-s - 2.17.0-1 +* Sat Jan 30 2018 l-n-s - 2.17.0-1 - Added certificates and default configuration files - Merge i2pd with i2pd-systemd package +- Fixed package changelogs to comply with guidelines * Mon Dec 04 2017 orignal - 2.17.0 -- Added reseed through HTTP and SOCKS proxy -- Added show status of client services through web console -- Added change log level through web connsole -- Added transient keys for tunnels -- Added i2p.streaming.initialAckDelay parameter -- Added CRYPTO_TYPE for SAM destination -- Added signature and crypto type for newkeys BOB command -- Changed - correct publication of ECIES destinations -- Changed - disable RSA signatures completely -- Fixed CVE-2017-17066 -- Fixed possible buffer overflow for RSA-4096 -- Fixed shutdown from web console for Windows -- Fixed web console page layout +- update to 2.17.0 * Mon Nov 13 2017 orignal - 2.16.0 -- Added https and "Connect" method for HTTP proxy -- Added outproxy for HTTP proxy -- Added initial support of ECIES crypto -- Added NTCP soft and hard descriptors limits -- Added support full timestamps in logs -- Changed faster implmentation of GOST R 34.11 hash -- Changed reject routers with RSA signtures -- Changed reload config and shudown from Windows GUI -- Changed update tunnels address(destination) without restart -- Fixed BOB crashes if destination is not set -- Fixed correct SAM tunnel name -- Fixed QT GUI issues +- update to 2.16.0 * Thu Aug 17 2017 orignal - 2.15.0 -- Added QT GUI -- Added ability add and remove I2P tunnels without restart -- Added ability to disable SOCKS outproxy option -- Changed strip-out Accept-* hedaers in HTTP proxy -- Changed peer test if nat=false -- Changed separate output of NTCP and SSU sessions in Transports tab -- Fixed handle lines with comments in hosts.txt file for address book -- Fixed run router with empty netdb for testnet -- Fixed skip expired introducers by iexp +- update to 2.15.0 * Thu Jun 01 2017 orignal - 2.14.0 -- Added transit traffic bandwidth limitation -- Added NTCP connections through HTTP and SOCKS proxies -- Added ability to disable address helper for HTTP proxy -- Changed reseed servers list +- update to 2.14.0 * Thu Apr 06 2017 orignal - 2.13.0 -- Added persist local destination's tags -- Added GOST signature types 9 and 10 -- Added exploratory tunnels configuration -- Changed reseed servers list -- Changed inactive NTCP sockets get closed faster -- Changed some EdDSA speed up -- Fixed multiple acceptors for SAM -- Fixed follow on data after STREAM CREATE for SAM -- Fixed memory leaks +- update to 2.13.0 * Tue Feb 14 2017 orignal - 2.12.0 -- Additional HTTP and SOCKS proxy tunnels -- Reseed from ZIP archive -- 'X' bandwidth code -- Reduced memory and file descriptors usage +- update to 2.12.0 * Mon Dec 19 2016 orignal - 2.11.0 -- Full support of zero-hops tunnels -- Tunnel configuration for HTTP and SOCKS proxy -- Websockets support -- Multiple acceptors for SAM destination -- Routing path for UDP tunnels -- Reseed through a floodfill -- Use AVX instructions for DHT and HMAC if applicable -- Fixed UPnP discovery bug, producing excessive CPU usage -- Handle multiple lookups of the same LeaseSet correctly +- update to 2.11.0 * Thu Oct 20 2016 Anatolii Vorona - 2.10.0-3 - add support C7