summaryrefslogtreecommitdiff
path: root/net-analyzer/symon
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /net-analyzer/symon
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'net-analyzer/symon')
-rw-r--r--net-analyzer/symon/Manifest2
-rw-r--r--net-analyzer/symon/files/symon-2.89-condition-makefiles.patch39
-rw-r--r--net-analyzer/symon/files/symon-2.89-extern_c.patch441
-rw-r--r--net-analyzer/symon/files/symon-init.d32
-rw-r--r--net-analyzer/symon/files/symon.conf14
-rw-r--r--net-analyzer/symon/files/symux-init.d32
-rw-r--r--net-analyzer/symon/files/symux.conf35
-rw-r--r--net-analyzer/symon/metadata.xml15
-rw-r--r--net-analyzer/symon/symon-2.89.ebuild99
-rw-r--r--net-analyzer/symon/symon-2.90.ebuild98
10 files changed, 807 insertions, 0 deletions
diff --git a/net-analyzer/symon/Manifest b/net-analyzer/symon/Manifest
new file mode 100644
index 000000000000..a1d54d83f8f7
--- /dev/null
+++ b/net-analyzer/symon/Manifest
@@ -0,0 +1,2 @@
+DIST symon-2.89.tar.gz 106210 BLAKE2B d87fececf6e1e6dc9c39c0474e2a3e5bb6bb47b9a256e377385302a011532d94b751572040594b62962d4b2c2ac2d5bbd90513a79ab82bd69aeb4f30e93609a1 SHA512 631870aafbd29610a0ddc936f86ab12c16c3b19454b6bd98b3f1a1179767be890f9ea828dddcb8d79278f2c10b67631184386d6deb8ffb5c090d7bdc558e5db7
+DIST symon-2.90.tar.gz 102807 BLAKE2B 9ae6042a3376154ed3548d81ddf2bd2fda611f3009d1f12f0dfec957226951c004fc6351933aa78a021bbaa3ffdf0cf4ce0739d861d9e64bf48906c6e4df3f16 SHA512 b6d3664660f119f9f62a3e9cd7fb7d72df7356adf8544a65cb467b9d18b18a5252e3b3cc57ee21f72e45b8dd4f57063a3c876ed736413c11a57575568857aefc
diff --git a/net-analyzer/symon/files/symon-2.89-condition-makefiles.patch b/net-analyzer/symon/files/symon-2.89-condition-makefiles.patch
new file mode 100644
index 000000000000..76ff4f517da7
--- /dev/null
+++ b/net-analyzer/symon/files/symon-2.89-condition-makefiles.patch
@@ -0,0 +1,39 @@
+Fold sed that injects LDFLAGS. Inject CFLAGS too.
+Remove hardcoded CFLAGS. Remove strip that previously was sidestepped
+by setting STRIP=true in ebuild
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -2,7 +2,6 @@
+
+ AR?= ar
+ CC?= cc
+-CFLAGS+=-g -Wall -Wpedantic -Wextra -Wno-unused-parameter -Werror
+ INSTALL?=install
+ LORDER?=lorder
+ TSORT?=tsort
+--- a/symon/Makefile
++++ b/symon/Makefile
+@@ -21,9 +21,8 @@
+ ${OBJS}: conf.h
+
+ symon: ${OBJS}
+- ${CC} -o $@ ${OBJS} ${LIBS}
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ${OBJS} ${LIBS}
+ .ifndef DEBUG
+- ${STRIP} $@
+ .endif
+
+ clean:
+--- a/symux/Makefile
++++ b/symux/Makefile
+@@ -10,9 +10,8 @@
+ all: symux symux.cat8
+
+ symux: ${OBJS}
+- ${CC} -o $@ ${OBJS} ${LIBS}
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ${OBJS} ${LIBS}
+ .ifndef DEBUG
+- ${STRIP} $@
+ .endif
+
+ clean:
diff --git a/net-analyzer/symon/files/symon-2.89-extern_c.patch b/net-analyzer/symon/files/symon-2.89-extern_c.patch
new file mode 100644
index 000000000000..088f8c53ec6c
--- /dev/null
+++ b/net-analyzer/symon/files/symon-2.89-extern_c.patch
@@ -0,0 +1,441 @@
+Replace internal glib definition with correct C++ guard
+https://bugs.gentoo.org/716080
+--- a/lib/data.c
++++ b/lib/data.c
+@@ -54,14 +54,18 @@
+ #include "net.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int bytelenvar(char);
+ int checklen(int, int, int);
+ struct stream *create_stream(int, char *);
+ char *formatstrvar(char);
+ char *rrdstrvar(char);
+ int strlenvar(char);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* Stream formats
+ *
+--- a/lib/data.h
++++ b/lib/data.h
+@@ -38,6 +38,8 @@
+ #ifndef _SYMON_LIB_DATA_H
+ #define _SYMON_LIB_DATA_H
+
++#include <sys/types.h>
++
+ #include "platform.h"
+
+ #include <stdarg.h>
+
+--- a/lib/error.c
++++ b/lib/error.c
+@@ -27,8 +27,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+-#include <sys/cdefs.h>
+-
+ #include <limits.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -38,9 +36,13 @@
+
+ #include "error.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void output_message(int, char *, va_list);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int flag_daemon = 0;
+ int flag_debug = 0;
+--- a/lib/error.h
++++ b/lib/error.h
+@@ -31,17 +31,19 @@
+ #ifndef _SYMON_LIB_ERROR_H
+ #define _SYMON_LIB_ERROR_H
+
+-#include <sys/cdefs.h>
+-
+ extern char *__progname;
+ extern int flag_debug;
+ extern int flag_daemon;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fatal(char *,...);
+ void warning(char *,...);
+ void info(char *,...);
+ void debug(char *,...);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMON_LIB_ERROR_H */
+--- a/lib/lex.h
++++ b/lib/lex.h
+@@ -36,8 +36,6 @@
+ #ifndef _SYMON_LIB_LEX_H
+ #define _SYMON_LIB_LEX_H
+
+-#include <sys/cdefs.h>
+-
+ #include <stdio.h>
+
+ /* Tokens known to lex */
+@@ -100,7 +98,9 @@
+ type; /* type of token in buffer */
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *parse_opcode(int);
+ int lex_nexttoken(struct lex *);
+ int parse_token(const char *);
+@@ -110,7 +110,9 @@
+ void parse_error(struct lex *, const char *);
+ void reset_lex(struct lex *);
+ void rewind_lex(struct lex *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* EXPECT(l,x) = next token in l must be opcode x or error. */
+ #define EXPECT(l, x) do { \
+--- a/lib/net.h
++++ b/lib/net.h
+@@ -40,7 +40,9 @@
+ extern char res_service[];
+ extern struct sockaddr_storage res_addr;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int cmpsock_addr(struct sockaddr *, struct sockaddr *);
+ int get_numeric_name(struct sockaddr_storage *);
+ int getaddr(char *, char *, int, int);
+@@ -50,6 +52,8 @@
+ void get_sockaddr(struct sockaddr_storage *, int, int, int, char*, char *);
+ void get_mux_sockaddr(struct mux *, int);
+ int get_source_sockaddr(struct source *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMON_LIB_NET_H */
+--- a/lib/xmalloc.h
++++ b/lib/xmalloc.h
+@@ -18,10 +18,14 @@
+ #include <sys/types.h>
+
+ /* Like malloc and friends, but these call fatal if something breaks */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void *xmalloc(size_t);
+ void *xrealloc(void *, size_t);
+ void xfree(void *);
+ char *xstrdup(const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_LIB_XMALLOC_H */
+--- a/symon/readconf.c
++++ b/symon/readconf.c
+@@ -40,11 +40,15 @@
+ #include "symon.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_host_port(struct muxlist *, struct mux *, struct lex *);
+ int read_symon_args(struct mux *, struct lex *);
+ int read_monitor(struct muxlist *, struct lex *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ const char *default_symux_port = SYMUX_PORT;
+
+--- a/symon/readconf.h
++++ b/symon/readconf.h
+@@ -33,7 +33,11 @@
+
+ #include "data.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_config_file(struct muxlist *, char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_READCONF_H */
+--- a/symon/symon.c
++++ b/symon/symon.c
+@@ -53,13 +53,17 @@
+ #include "symonnet.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void alarmhandler(int);
+ void exithandler(int);
+ void huphandler(int);
+ void init_streams(struct muxlist *mul);
+ void drop_privileges(int unsecure);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int flag_unsecure = 0;
+ int flag_hup = 0;
+--- a/symon/symon.h
++++ b/symon/symon.h
+@@ -59,7 +59,9 @@
+ extern time_t now;
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /* sm_cpu.c */
+ extern void init_cpu(struct stream *);
+ extern void gets_cpu(void);
+@@ -136,6 +138,8 @@
+ void gets_flukso(void);
+ int get_flukso(char *, int, struct stream *);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMON_SYMON_H */
+--- a/symon/symonnet.h
++++ b/symon/symonnet.h
+@@ -34,11 +34,15 @@
+ #include "data.h"
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void connect2mux(struct mux *);
+ void send_packet(struct mux *);
+ void prepare_packet(struct mux *, time_t t);
+ void stream_in_packet(struct stream *, struct mux *);
+ void finish_packet(struct mux *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_SYMONNET_H */
+--- a/symux/readconf.c
++++ b/symux/readconf.c
+@@ -28,8 +28,8 @@
+ *
+ */
+
+-#include <sys/stat.h>
++#include <sys/stat.h>
+
+ #include <string.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -42,12 +42,15 @@
+ #include "readconf.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_mux(struct muxlist * mul, struct lex *);
+ int read_source(struct sourcelist * sol, struct lex *, int);
+ int insert_filename(char *, int, int, char *);
+-__END_DECLS
+-
++#ifdef __cplusplus
++}
++#endif
+ const char *default_symux_port = SYMUX_PORT;
+
+ int
+--- a/symux/readconf.h
++++ b/symux/readconf.h
+@@ -34,8 +34,12 @@
+
+ #include "data.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_config_file(struct muxlist *, const char *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMUX_READCONF_H */
+--- a/symux/share.c
++++ b/symux/share.c
+@@ -76,7 +76,9 @@
+ *
+ */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void check_master(void);
+ void check_sem(void);
+ void client_doneread(void);
+@@ -86,7 +88,9 @@
+ void exitmaster(void);
+ void master_resetsem(int);
+ void reap_clients(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int realclients; /* number of clients active */
+ int newclients;
+--- a/symux/share.h
++++ b/symux/share.h
+@@ -47,7 +47,9 @@
+ };
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int master_forbidread(void);
+ void master_permitread(void);
+ long shared_getlen(int);
+@@ -56,6 +58,8 @@
+ void initshare(int);
+ void shared_setlen(int, long);
+ pid_t spawn_client(int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMUX_SHARE_H */
+--- a/symux/symux.c
++++ b/symux/symux.c
+@@ -56,11 +56,15 @@
+
+ #include "platform.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void exithandler(int);
+ void huphandler(int);
+ void signalhandler(int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int flag_hup = 0;
+ int flag_testconf = 0;
+--- a/symux/symuxnet.c
++++ b/symux/symuxnet.c
+@@ -46,9 +46,13 @@
+ #include "xmalloc.h"
+ #include "share.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int check_crc_packet(struct symonpacket *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* Obtain sockets for incoming symon traffic */
+ int
+--- a/symux/symuxnet.h
++++ b/symux/symuxnet.h
+@@ -34,11 +34,15 @@
+ #include "data.h"
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int get_client_socket(struct mux *);
+ int get_symon_sockets(struct mux *);
+ int accept_connection(int);
+ int recv_symon_packet(struct mux *, int, struct source **);
+ void wait_for_traffic(struct mux *, struct source **);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMUX_SYMUXNET_H */
+--- a/lib/data.h
++++ b/lib/data.h
+@@ -358,7 +360,9 @@
+ };
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *type2str(const int);
+ int bytelen_sourcelist(struct sourcelist *);
+ int bytelen_streamlist(struct streamlist *);
+@@ -393,5 +397,7 @@
+ void init_crc32(void);
+ void init_symon_packet(struct mux *);
+ void init_symux_packet(struct mux *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_LIB_DATA_H */
diff --git a/net-analyzer/symon/files/symon-init.d b/net-analyzer/symon/files/symon-init.d
new file mode 100644
index 000000000000..3d48b793e597
--- /dev/null
+++ b/net-analyzer/symon/files/symon-init.d
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the 2-clause BSD license
+
+extra_started_commands="reload"
+
+depend() {
+ after bootmisc
+ need localmount net
+ use logger
+}
+
+reload() {
+ ebegin "Reloading symon"
+ start-stop-daemon \
+ --pidfile /run/symon.pid \
+ --exec /usr/sbin/symon \
+ --signal HUP
+ eend $?
+}
+
+start() {
+ ebegin "Starting symon"
+ start-stop-daemon --start --exec /usr/sbin/symon -- -u
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping symon"
+ start-stop-daemon --stop --pidfile /run/symon.pid
+ eend $?
+}
diff --git a/net-analyzer/symon/files/symon.conf b/net-analyzer/symon/files/symon.conf
new file mode 100644
index 000000000000..920662185e58
--- /dev/null
+++ b/net-analyzer/symon/files/symon.conf
@@ -0,0 +1,14 @@
+#
+# Demo configuration for symon. See symon(8) for BNF.
+#
+
+monitor { cpu(0), mem,
+ if(lo),
+# cpuiow(0),
+# sensor(fan0), sensor(in0), sensor(temp0),
+# if(eth0), if(eth1), if(eth2),
+# df(sda),
+# smart(sda),
+# io(hda), io(hdb), io(hdc), io(hdd)
+ io(sda)
+} stream to 127.0.0.1 2100
diff --git a/net-analyzer/symon/files/symux-init.d b/net-analyzer/symon/files/symux-init.d
new file mode 100644
index 000000000000..452d4581b807
--- /dev/null
+++ b/net-analyzer/symon/files/symux-init.d
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the 2-clause BSD license
+
+extra_started_commands="reload"
+
+depend() {
+ after bootmisc
+ need localmount net
+ use logger
+}
+
+reload() {
+ ebegin "Reloading symux"
+ start-stop-daemon \
+ --pidfile /run/symux.pid \
+ --exec /usr/sbin/symux \
+ --signal HUP
+ eend $?
+}
+
+start() {
+ ebegin "Starting symux"
+ start-stop-daemon --start --exec /usr/sbin/symux
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping symux"
+ start-stop-daemon --stop --pidfile /run/symux.pid
+ eend $?
+}
diff --git a/net-analyzer/symon/files/symux.conf b/net-analyzer/symon/files/symux.conf
new file mode 100644
index 000000000000..fa0ed50631d7
--- /dev/null
+++ b/net-analyzer/symon/files/symux.conf
@@ -0,0 +1,35 @@
+#
+# Demo symux configuration. See symux(8) for BNF.
+#
+
+mux 127.0.0.1 2100
+
+source 127.0.0.1 {
+ accept { cpu(0), mem,
+ if(lo),
+# cpuiow(0),
+# sensor(fan0), sensor(in0), sensor(temp0),
+# if(eth0), if(eth1), if(eth2),
+# df(sda),
+# smart(sda),
+# io(hda), io(hdb), io(hdc), io(hdd)
+ io(sda)
+ }
+ datadir "/var/lib/symon/rrds/localhost"
+}
+
+# an example showing the write directive
+#
+# source 10.0.0.2 {
+# accept { cpu(0), mem, if(eth0), if(eth1),
+# if(lo), if(eth2), io(sda)
+# }
+#
+# write cpu(0) in "/var/lib/symon/rrds/<host>/cpu0.rrd"
+# write mem in "/var/lib/symon/rrds/<host>/mem.rrd"
+# write if(eth0) in "/var/lib/symon/rrds/<host>/if_eth0.rrd"
+# write if(eth1) in "/var/lib/symon/rrds/<host>/if_eth1.rrd"
+# write if(lo) in "/var/lib/symon/rrds/<host>/if_lo.rrd"
+# write if(eth2) in "/var/lib/symon/rrds/<host>/if_eth2.rrd"
+# write io(sda) in "/var/lib/symon/rrds/<host>/io_sda.rrd"
+# }
diff --git a/net-analyzer/symon/metadata.xml b/net-analyzer/symon/metadata.xml
new file mode 100644
index 000000000000..324d9ed6fee9
--- /dev/null
+++ b/net-analyzer/symon/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="perl">Enables a generic perl symux client</flag>
+ <flag name="symon">Enables the system monitor. Offers no functionality
+ but monitoring and forwarding of measured data</flag>
+ <flag name="symux">Enables the multiplexer which stores incoming symon
+ streams on disk in RRD (<pkg>net-analyzer/rrdtool</pkg>) files</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-analyzer/symon/symon-2.89.ebuild b/net-analyzer/symon/symon-2.89.ebuild
new file mode 100644
index 000000000000..ae76643393c0
--- /dev/null
+++ b/net-analyzer/symon/symon-2.89.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo perl-module toolchain-funcs
+
+DESCRIPTION="Performance and information monitoring tool"
+HOMEPAGE="https://wpd.home.xs4all.nl/symon/"
+SRC_URI="https://wpd.home.xs4all.nl/symon/philes/${P}.tar.gz"
+S="${WORKDIR}"/${PN}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="perl +symon symux"
+REQUIRED_USE="|| ( perl symon symux )"
+# there are no tests, trying to run them fails because pmakefile
+RESTRICT="test"
+
+BDEPEND="dev-build/pmake"
+RDEPEND="
+ perl? ( dev-lang/perl )
+ symux? ( net-analyzer/rrdtool )
+"
+DEPEND="${RDEPEND}"
+
+# Deletes the directory passed as an argument from the internal pmake
+# variable SUBDIR.
+zap_subdir() {
+ sed -i "/^SUBDIR/s|$1||" Makefile || die
+}
+
+PATCHES=(
+ "${FILESDIR}/${P}-condition-makefiles.patch"
+ "${FILESDIR}/${P}-extern_c.patch"
+)
+
+src_configure() {
+ # Do some sed magic in accordance with the USE flags.
+ use perl && ! use symon && ! use symux && zap_subdir lib
+ ! use perl && zap_subdir client
+ ! use symux && zap_subdir symux
+ ! use symon && zap_subdir symon
+}
+
+src_compile() {
+ edo pmake CC="$(tc-getCC)" CFLAGS+="${CFLAGS}" LDFLAGS+="${LDFLAGS}"
+}
+
+src_install() {
+ if use symon; then
+ insinto /etc
+ doins "${FILESDIR}"/symon.conf
+
+ newinitd "${FILESDIR}"/symon-init.d symon
+
+ dodoc CHANGELOG HACKERS TODO
+
+ doman symon/symon.8
+ dosbin symon/symon
+ fi
+
+ if use perl; then
+ dobin client/getsymonitem.pl
+
+ perl_set_version
+ insinto ${VENDOR_LIB}
+ doins client/SymuxClient.pm
+ fi
+
+ if use symux; then
+ insinto /etc
+ doins "${FILESDIR}"/symux.conf
+
+ newinitd "${FILESDIR}"/symux-init.d symux
+
+ doman symux/symux.8
+ dosbin symux/symux
+
+ insinto /usr/share/symon
+ doins symux/c_smrrds.sh
+ fperms a+x /usr/share/symon/c_smrrds.sh
+
+ dodir /var/lib/symon/rrds/localhost
+ keepdir /var/lib/symon/rrds/localhost
+ fi
+}
+
+pkg_postinst() {
+ if use symux; then
+ elog "The RRDs files can be obtained by running"
+ elog "/usr/share/symon/c_smrrds.sh all."
+ elog "For information about migrating RRDs from a previous"
+ elog "symux version read the LEGACY FORMATS section of symux(8)."
+ elog "To view the rrdtool pictures of the stored data, emerge"
+ elog "net-analyzer/syweb."
+ fi
+}
diff --git a/net-analyzer/symon/symon-2.90.ebuild b/net-analyzer/symon/symon-2.90.ebuild
new file mode 100644
index 000000000000..371ba28573fb
--- /dev/null
+++ b/net-analyzer/symon/symon-2.90.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo perl-module toolchain-funcs
+
+DESCRIPTION="Performance and information monitoring tool"
+HOMEPAGE="https://wpd.home.xs4all.nl/symon/"
+SRC_URI="https://wpd.home.xs4all.nl/symon/philes/${P}.tar.gz"
+S="${WORKDIR}"/${PN}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="perl +symon symux"
+REQUIRED_USE="|| ( perl symon symux )"
+# there are no tests, trying to run them fails because pmakefile
+RESTRICT="test"
+
+BDEPEND="dev-build/pmake"
+RDEPEND="
+ perl? ( dev-lang/perl )
+ symux? ( net-analyzer/rrdtool )
+"
+DEPEND="${RDEPEND}"
+
+# Deletes the directory passed as an argument from the internal pmake
+# variable SUBDIR.
+zap_subdir() {
+ sed -i "/^SUBDIR/s|$1||" Makefile || die
+}
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.89-condition-makefiles.patch"
+)
+
+src_configure() {
+ # Do some sed magic in accordance with the USE flags.
+ use perl && ! use symon && ! use symux && zap_subdir lib
+ ! use perl && zap_subdir client
+ ! use symux && zap_subdir symux
+ ! use symon && zap_subdir symon
+}
+
+src_compile() {
+ edo pmake CC="$(tc-getCC)" CFLAGS+="${CFLAGS}" LDFLAGS+="${LDFLAGS}"
+}
+
+src_install() {
+ if use symon; then
+ insinto /etc
+ doins "${FILESDIR}"/symon.conf
+
+ newinitd "${FILESDIR}"/symon-init.d symon
+
+ dodoc CHANGELOG HACKERS TODO
+
+ doman symon/symon.8
+ dosbin symon/symon
+ fi
+
+ if use perl; then
+ dobin client/getsymonitem.pl
+
+ perl_set_version
+ insinto ${VENDOR_LIB}
+ doins client/SymuxClient.pm
+ fi
+
+ if use symux; then
+ insinto /etc
+ doins "${FILESDIR}"/symux.conf
+
+ newinitd "${FILESDIR}"/symux-init.d symux
+
+ doman symux/symux.8
+ dosbin symux/symux
+
+ insinto /usr/share/symon
+ doins symux/c_smrrds.sh
+ fperms a+x /usr/share/symon/c_smrrds.sh
+
+ dodir /var/lib/symon/rrds/localhost
+ keepdir /var/lib/symon/rrds/localhost
+ fi
+}
+
+pkg_postinst() {
+ if use symux; then
+ elog "The RRDs files can be obtained by running"
+ elog "/usr/share/symon/c_smrrds.sh all."
+ elog "For information about migrating RRDs from a previous"
+ elog "symux version read the LEGACY FORMATS section of symux(8)."
+ elog "To view the rrdtool pictures of the stored data, emerge"
+ elog "net-analyzer/syweb."
+ fi
+}