diff --git a/net-analyzer/smokeping/Manifest b/net-analyzer/smokeping/Manifest new file mode 100644 index 0000000..e02fdf0 --- /dev/null +++ b/net-analyzer/smokeping/Manifest @@ -0,0 +1 @@ +DIST smokeping-2.7.3.tar.gz 6614710 BLAKE2B 7fa10c19487427a3092a1e5591422cb37f66a6eab86b8b43eebbc8af441d5426b99f3c7b54040660f6f150ade99b1ea2555b4fcd6f80d8306d6f86ac9f95974e SHA512 d46d61539ffdd9cac41391aa813364260f90f84443c328b1c9233ab6ba3a0c157861694614e6c33e18b153f6a6afc0769c5fc7752b3ab52f114d984e53232830 diff --git a/net-analyzer/smokeping/files/79_smokeping.conf b/net-analyzer/smokeping/files/79_smokeping.conf new file mode 100644 index 0000000..1e9361b --- /dev/null +++ b/net-analyzer/smokeping/files/79_smokeping.conf @@ -0,0 +1,15 @@ +### +### Setup the smokeping image cache and perl cgi script +### + + Alias "/.simg/" "/var/lib/smokeping/.simg/" + + + Options -Indexes MultiViews + AllowOverride None + Order deny,allow + Deny from all + Allow from 127.0.0.1 + + + diff --git a/net-analyzer/smokeping/files/smokeping.conf b/net-analyzer/smokeping/files/smokeping.conf new file mode 100644 index 0000000..7297263 --- /dev/null +++ b/net-analyzer/smokeping/files/smokeping.conf @@ -0,0 +1 @@ +d /run/smokeping 0755 root root diff --git a/net-analyzer/smokeping/files/smokeping.init.5 b/net-analyzer/smokeping/files/smokeping.init.5 new file mode 100644 index 0000000..b7cedbf --- /dev/null +++ b/net-analyzer/smokeping/files/smokeping.init.5 @@ -0,0 +1,56 @@ +#!/sbin/openrc-run +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +command="/usr/bin/smokeping" +command_args="--nodaemon" +command_background="true" +command_user="smokeping:smokeping" +pidfile="/run/${RC_SVCNAME}.pid" +extra_started_commands="dump reload restore" +required_files="/etc/smokeping/config" + +depend() { + need net + use dns +} + +start_pre() { + export LC_ALL=C +} + +reload() { + ebegin "Reloading smokeping" + "${command}" --reload 2>&1 >/dev/null + eend $? +} + +dump() { + ebegin "Dumping smokeping rrd files to XML for backup or upgrade use" + if service_started "${myservice}" ; then + eerror "You need to stop smokeping before dumping files!" + return 1 + fi + for f in $(find /var/lib/smokeping -name '*.rrd' -print) ; do + f_xml=$(dirname $f)/$(basename $f .rrd).xml + rrdtool dump "$f" > "${f_xml}" + chown root:0 "${f_xml}" + done + eend $? +} + +restore() { + ebegin "Restoring smokeping rrd files from XML dump files" + if service_started "${myservice}" ; then + eerror "You need to stop smokeping before restoring files!" + return 1 + fi + for f in $(find /var/lib/smokeping -name '*.xml' -print) ; do + f_rrd=$(dirname $f)/$(basename $f .xml).rrd + mv -f "${f_rrd}" "${f_rrd}.bak" + chown root:0 "${f_rrd}.bak" + rrdtool restore "$f" "${f_rrd}" + chown smokeping:smokeping "${f_rrd}" + done + eend $? +} diff --git a/net-analyzer/smokeping/files/smokeping.service b/net-analyzer/smokeping/files/smokeping.service new file mode 100644 index 0000000..2130aca --- /dev/null +++ b/net-analyzer/smokeping/files/smokeping.service @@ -0,0 +1,10 @@ +[Unit] +Description=Latency Logging and Graphing System +After=network.target + +[Service] +ExecStart=/usr/bin/smokeping --nodaemon +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/net-analyzer/smokeping/metadata.xml b/net-analyzer/smokeping/metadata.xml new file mode 100644 index 0000000..7b43647 --- /dev/null +++ b/net-analyzer/smokeping/metadata.xml @@ -0,0 +1,12 @@ + + + + +netmon@gentoo.org +Gentoo network monitoring and analysis project + + +Install net-dns/bind-tools for dig functionality +Install net-analyzer/echoping for echoping functionality + + diff --git a/net-analyzer/smokeping/smokeping-2.7.3-r1.ebuild b/net-analyzer/smokeping/smokeping-2.7.3-r1.ebuild new file mode 100644 index 0000000..26e3c02 --- /dev/null +++ b/net-analyzer/smokeping/smokeping-2.7.3-r1.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools systemd tmpfiles + +DESCRIPTION="A powerful latency measurement tool" +HOMEPAGE="https://oss.oetiker.ch/smokeping/" +SRC_URI="https://oss.oetiker.ch/smokeping/pub/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="apache2 curl dig echoping ipv6 radius" + +DEPEND=" + acct-group/smokeping + acct-user/smokeping + >=dev-lang/perl-5.8.8-r8 + >=dev-perl/SNMP_Session-1.13 + >=net-analyzer/fping-2.4_beta2-r2[suid] + >=net-analyzer/rrdtool-1.2[graph,perl] + dev-perl/CGI + dev-perl/CGI-Session + dev-perl/Config-Grammar + dev-perl/Digest-HMAC + dev-perl/FCGI + dev-perl/IO-Socket-SSL + dev-perl/IO-Tty + dev-perl/Net-DNS + dev-perl/Net-OpenSSH + dev-perl/Net-SNMP + dev-perl/Net-Telnet + dev-perl/libwww-perl + dev-perl/perl-ldap + virtual/perl-libnet + dev-perl/CGI-Fast + !apache2? ( virtual/httpd-cgi ) + apache2? ( + >=www-apache/mod_perl-2.0.1 + www-apache/mod_fcgid + ) + curl? ( >=net-misc/curl-7.21.4 ) + dig? ( net-dns/bind-tools ) + echoping? ( >=net-analyzer/echoping-6.0.2 ) + ipv6? ( >=dev-perl/Socket6-0.20 ) + radius? ( dev-perl/Authen-Radius ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + sed -i -e '/^SUBDIRS = / s|thirdparty||g' Makefile.am || die + sed -i -e '/^perllibdir = / s|= .*|= $(libdir)|g' lib/Makefile.am || die + # bundled(?) dev-perl/SNMP_Session + rm -r lib/{BER.pm,SNMP_Session.pm,SNMP_util.pm} || die + echo ${PV} > VERSION || die + + eautoreconf +} + +src_configure() { + econf \ + --sysconfdir=/etc/smokeping \ + --with-htdocs-dir=/var/www/localhost/smokeping +} + +src_compile() { + LC_ALL=C emake +} + +src_install() { + dodir /usr/$(get_libdir) + default + + newinitd "${FILESDIR}"/${PN}.init.5 ${PN} + dotmpfiles "${FILESDIR}"/${PN}.conf + systemd_dounit "${FILESDIR}"/${PN}.service + + mv "${ED}/etc/smokeping/basepage.html.dist" "${ED}/etc/smokeping/basepage.html" || die + mv "${ED}/etc/smokeping/config.dist" "${ED}/etc/smokeping/config" || die + mv "${ED}/etc/smokeping/smokemail.dist" "${ED}/etc/smokeping/smokemail" || die + mv "${ED}/etc/smokeping/smokeping_secrets.dist" "${ED}/etc/smokeping/smokeping_secrets" || die + mv "${ED}/etc/smokeping/tmail.dist" "${ED}/etc/smokeping/tmail" || die + + sed -i \ + -e '/^imgcache/{s:\(^imgcache[ \t]*=\).*:\1 /var/lib/smokeping/.simg:}' \ + -e '/^imgurl/{s:\(^imgurl[ \t]*=\).*:\1 ../.simg:}' \ + -e '/^datadir/{s:\(^datadir[ \t]*=\).*:\1 /var/lib/smokeping:}' \ + -e '/^piddir/{s:\(^piddir[ \t]*=\).*:\1 /run/smokeping:}' \ + -e '/^cgiurl/{s#\(^cgiurl[ \t]*=\).*#\1 http://some.place.xyz/perl/smokeping.pl#}' \ + -e '/^smokemail/{s:\(^smokemail[ \t]*=\).*:\1 /etc/smokeping/smokemail:}' \ + -e '/^tmail/{s:\(^tmail[ \t]*=\).*:\1 /etc/smokeping/tmail:}' \ + -e '/^secrets/{s:\(^secrets[ \t]*=\).*:\1 /etc/smokeping/smokeping_secrets:}' \ + -e '/^template/{s:\(^template[ \t]*=\).*:\1 /etc/smokeping/basepage.html:}' \ + "${ED}/etc/${PN}/config" || die + + sed -i \ + -e '/^