* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 0cbb9835fe27b6d99663a1b9e9d19414537ba388
@ 2025-09-03 18:00 Michael Tremer
0 siblings, 0 replies; only message in thread
From: Michael Tremer @ 2025-09-03 18:00 UTC (permalink / raw)
To: ipfire-scm
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 226374 bytes --]
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".
The branch, next has been updated
via 0cbb9835fe27b6d99663a1b9e9d19414537ba388 (commit)
via 48c401ea406d7508f85316be6433625e12cb09a6 (commit)
via 06b8a198a1df9dfb760f531be7ebef28407f9afd (commit)
via 757937c728ea7c4092aa52fdd639e197134cf544 (commit)
via 518d05d9929433767c53cffe4600912228e0344f (commit)
via 620eaa5e2219ee714d0e8b2568e7296f866124ba (commit)
via 40a1dc20172e374c33bbdbbd5fae0675d7f8bfe5 (commit)
via c2c0f0b2de1164a012f1426a29c6bdb7c2ffde2a (commit)
via c777f8a801c97f88701b61046550ef957ee38cf2 (commit)
via d667c52a0550adb314977aedc5139307fba3018e (commit)
via 49cf90dd6d0c1d271df1e946beadf026d18c6e49 (commit)
via 6d541160462ecdbae89d95be156a792c6afcd432 (commit)
via 64f9f56be56f5838c249c4ae8439e64f2b04c162 (commit)
via cde22e11b1ba763056029e86d80a933925f7a9eb (commit)
via a0424a85aadedcf96a3cc5e0c23ac0f2fd55d5d2 (commit)
via 401351dfe47590c477d338a8e3918bcd628fe0b7 (commit)
via c5a5eae15a002eb5d851554a13f3862f3993250b (commit)
via 09e6c2141c8112af2e7aa49f953e4654692d5519 (commit)
via dce3ae8784d72013f10eeb77d16869a79bd89e47 (commit)
via 2d1c7c81e248aed9dc1e114a7c978ce7d9555603 (commit)
via 275fbf7e723c077db1f559c61c2045639a1cb1b6 (commit)
via 141d3dd7047ceb41706f1b6cd34eb39a34e4b8bc (commit)
via 29ef4c53b05f40b2452722e192451bc104487dfb (commit)
via 30dd4d3e6bbbeb25a3083b60ab21a3afc6742a06 (commit)
via 1276dfd2793c3142509863e5c89802ef49319dd1 (commit)
via c4d57cfc8033271fd066090c42db4c40bb2baff2 (commit)
via 648b5328f57a20c604bb2c205b6be4dfb3d3def1 (commit)
via 7be9123884f7c977e8922b296711b357dd8b3556 (commit)
via d82de6453c62e9c63eeb8f8cad27675dfa464c15 (commit)
via 3e45cba9a793b256c541c6eebac1468a293eeb48 (commit)
via 2be51fcc86cb34cf8914ca17db23ff59da15bc83 (commit)
via 9217f70203ea6dd740e263857f8065990341208d (commit)
via 971867309e39f1c670d011495df2407949cfe05b (commit)
via cccb6ff9901dc4d501e676685d46286e0668d7f6 (commit)
via 6cc2d2bfac1eaa9c0349e84ba07082936ea83db8 (commit)
via 611f4d670c7cc33c38afee682e664cfc8e367af9 (commit)
via 1e610a9cff32a6bc695efebd56bf0f15d7afe931 (commit)
via 959abb02c74bb8c56ce2e8980606bbd7dc224048 (commit)
via aadcd09363ba908d8ca73b41b72b9aad99a12624 (commit)
via 47c89384dafe74d5280f46352debb6afeadda0a0 (commit)
via 522255c67089aa66dc32435a20fc83c0de9d176b (commit)
via 67534d62a913e046cc6d6740d568feeeca0e968a (commit)
via 273cb17f61f1e696edf496206482d7f32452b238 (commit)
via cb74cb11e84b9f89f8a4a2481a6eeee1e2701415 (commit)
via 131d09cf88db5c0d257a81d79269da4b578dd913 (commit)
via 438deca0081c58eec331e1e1490fefae70f26138 (commit)
via a7366da0e2688fed862f7e2eddd04332ae2902f0 (commit)
via f8c7f8c52b924c0fb7cb20edb61a0c2563fc8924 (commit)
via 4d5c29531168be7b109053367e333c5ac556f7cd (commit)
via 27ed0b7a61df30440e93b2ad4cf9123a9750e2a8 (commit)
via 4fea4ffd5b74b0fd6a7709796bc4d009aa9f867e (commit)
via f87d9532828e096b5c898ccf2f698af42579a5f2 (commit)
via bcd0e317d55f3de8adee59e6f82272946f9d933f (commit)
via 990ba3634f1509c4fa31e53dea96346bb3ba9af4 (commit)
via da6d9291663e576e792a1e582dbeea920aa78cbf (commit)
via 87d0e312cec11b22af6bfa9d61320aa1d9a8d200 (commit)
via 3656eac2d7b38ecd877e2773146aa719d794b4c8 (commit)
via 0d59a4a0822ab6ae5e189c1e540432d64caa5948 (commit)
via d0831c07693abb93e511e40dacc34a37fae8e6dd (commit)
via 99f9175ee04d302050709d38d906227c68af0590 (commit)
via a940e906832c7838d1be16fda4e00c90cc6a3413 (commit)
via d95a1ee37e514a2efa706ece609b0aeb117e249a (commit)
via 4a90715ba353fd6f4de7444b56236275b79f5ae8 (commit)
via 49fe4efad57f7707cfbb006e1f9b7e1b3f2be4c8 (commit)
from 962a028dccdc14facb82bcd34b7654c22e47c29e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0cbb9835fe27b6d99663a1b9e9d19414537ba388
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Sep 3 18:00:02 2025 +0000
suricata-reporter: Update to 0.2
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 48c401ea406d7508f85316be6433625e12cb09a6
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Sep 3 17:57:48 2025 +0000
core198: Ship Suricata changes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 06b8a198a1df9dfb760f531be7ebef28407f9afd
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Sep 2 13:00:28 2025 +0000
web-user-interface: Create the fonts directory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 757937c728ea7c4092aa52fdd639e197134cf544
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Sep 1 15:34:08 2025 +0000
suricata: Remove the bundled reporter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 518d05d9929433767c53cffe4600912228e0344f
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Sep 1 15:32:02 2025 +0000
suricata-reporter: Move the configuration from suricata
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 620eaa5e2219ee714d0e8b2568e7296f866124ba
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Sep 1 15:24:36 2025 +0000
suricata-reporter: Import package
This is now being packaged and distributed externally.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 40a1dc20172e374c33bbdbbd5fae0675d7f8bfe5
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Sun Aug 31 14:47:12 2025 +0000
web-user-interface: Use the fonts from the separate package
We should not ship anything binary in the sources anyways.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit c2c0f0b2de1164a012f1426a29c6bdb7c2ffde2a
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Sun Aug 31 14:40:19 2025 +0000
prompt: New package
This ships our current font.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit c777f8a801c97f88701b61046550ef957ee38cf2
Merge: 962a028dc d667c52a0
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Sep 3 17:49:58 2025 +0000
Merge remote-tracking branch 'ms/suricata-8' into next
commit d667c52a0550adb314977aedc5139307fba3018e
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Sep 3 14:40:38 2025 +0100
ids.cgi: Add some spacing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 49cf90dd6d0c1d271df1e946beadf026d18c6e49
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Sep 3 14:25:09 2025 +0100
ids.cgi: Allow to choose which alerts to send by email
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 6d541160462ecdbae89d95be156a792c6afcd432
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 13 10:34:46 2025 +0100
ids.cgi: Update wording and checkbox order
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 64f9f56be56f5838c249c4ae8439e64f2b04c162
Author: Stefan Schantl <stefan.schantl@ipfire.org>
Date: Mon Aug 11 19:39:01 2025 +0200
ids.cgi: Auto fill form inputs with their temporary stored values in
error case
If an user provides any invalid input in the form an error message will be
displayed. In this case, all the form elements (inputs) will be filled
with their temporary stored values from the cgiparams hash.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit cde22e11b1ba763056029e86d80a933925f7a9eb
Author: Stefan Schantl <stefan.schantl@ipfire.org>
Date: Mon Aug 11 19:38:13 2025 +0200
ids.cgi: Allow to configure report summary feature
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit a0424a85aadedcf96a3cc5e0c23ac0f2fd55d5d2
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 14:28:24 2025 +0100
suricata-report-generator: Implement sending reports via email
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 401351dfe47590c477d338a8e3918bcd628fe0b7
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 14:28:00 2025 +0100
suricata-report-generator: Don't print rows
This is a left-over debug statement.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit c5a5eae15a002eb5d851554a13f3862f3993250b
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 12:47:55 2025 +0100
suricata: Automatically email reports once per month/week/day
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 09e6c2141c8112af2e7aa49f953e4654692d5519
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 12:04:06 2025 +0100
ids.cgi: Fix regular expression to check for valid email addresses
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit dce3ae8784d72013f10eeb77d16869a79bd89e47
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 11:56:39 2025 +0100
langs: Capitalize "Sender Address"
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 2d1c7c81e248aed9dc1e114a7c978ce7d9555603
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 11:55:55 2025 +0100
ids.cgi: Remove placeholders
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 275fbf7e723c077db1f559c61c2045639a1cb1b6
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 11:54:52 2025 +0100
ids.cgi: Update translations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 141d3dd7047ceb41706f1b6cd34eb39a34e4b8bc
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 11:47:49 2025 +0100
ids.cgi: Fix table flows
This slightly changes how we list interfaces, but since that got a
little bit tight if lots of interfaces were available (and which
language has been used), this is probably a good idea to change it to
rows.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 29ef4c53b05f40b2452722e192451bc104487dfb
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Mon Aug 11 10:04:21 2025 +0100
ids-functions.pl: Don't detect number of CPU cores
This value is no longer being used in the configuration.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 30dd4d3e6bbbeb25a3083b60ab21a3afc6742a06
Author: Stefan Schantl <stefan.schantl@ipfire.org>
Date: Sat Aug 9 16:46:37 2025 +0200
ids-functions.pl: Add generate_report_generator_config() function
This function is used to genereate the config file for the newly
introduced suricata-report-generator.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 1276dfd2793c3142509863e5c89802ef49319dd1
Author: Stefan Schantl <stefan.schantl@ipfire.org>
Date: Sat Aug 9 17:50:48 2025 +0200
ids.cgi: Add code for e-mail input validation
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit c4d57cfc8033271fd066090c42db4c40bb2baff2
Author: Stefan Schantl <stefan.schantl@ipfire.org>
Date: Sat Aug 9 13:28:35 2025 +0200
ids.cgi: Allow to configure new mail alert system
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 648b5328f57a20c604bb2c205b6be4dfb3d3def1
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Sat Aug 9 15:17:09 2025 +0100
suricata: Reload the reporter process, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 7be9123884f7c977e8922b296711b357dd8b3556
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Sat Aug 9 15:14:53 2025 +0100
suricata-reporter: Add ability to reload the configuration
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit d82de6453c62e9c63eeb8f8cad27675dfa464c15
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 17:15:01 2025 +0000
python3-MarkupSafe: Update rootfile
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 3e45cba9a793b256c541c6eebac1468a293eeb48
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 17:32:13 2025 +0100
suricata-report-generator: Add all alerts in full detail
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 2be51fcc86cb34cf8914ca17db23ff59da15bc83
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 15:07:29 2025 +0100
suricata-report-generator: Render a PDF document and give it a title page
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 9217f70203ea6dd740e263857f8065990341208d
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 11:28:20 2025 +0100
suricata-report-generator: Allow span selection
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 971867309e39f1c670d011495df2407949cfe05b
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 11:04:44 2025 +0100
suricata-report-generator: Create some scaffolding
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit cccb6ff9901dc4d501e676685d46286e0668d7f6
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 16:00:48 2025 +0000
make.sh: Change the order of building Python packages
This way, we should have all the build tools available as early as
possible.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 6cc2d2bfac1eaa9c0349e84ba07082936ea83db8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 09:51:03 2025 +0000
python3-pillow: New package
This is required by reportlab.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 611f4d670c7cc33c38afee682e664cfc8e367af9
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 09:42:24 2025 +0000
python3-more_itertools: New package
This is required by setuptools to run.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 1e610a9cff32a6bc695efebd56bf0f15d7afe931
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 09:35:58 2025 +0000
python3-setuptools: Update to 80.9.0
This patch also removes this as a package. There is no point to ship
this package as the dependencies are not available and there should not
be enough tools around to actually build anything.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 959abb02c74bb8c56ce2e8980606bbd7dc224048
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 09:35:27 2025 +0000
python3-packaging: Update to 25.0
This is required by setuptools and therefore built before.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit aadcd09363ba908d8ca73b41b72b9aad99a12624
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 09:34:31 2025 +0000
python3-wheel: New package
Required to build wheels (at least sometimes).
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 47c89384dafe74d5280f46352debb6afeadda0a0
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Thu Aug 7 08:37:58 2025 +0000
python3-reportlab: New package
This package can generate PDF reports.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 522255c67089aa66dc32435a20fc83c0de9d176b
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:56:34 2025 +0100
suricata-reporter: Create a example configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 67534d62a913e046cc6d6740d568feeeca0e968a
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:20:22 2025 +0100
suricata: Rename this to an IPS at boot time
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 273cb17f61f1e696edf496206482d7f32452b238
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:19:30 2025 +0100
initscripts: Fix lots of whitespace issues in the suricata script
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit cb74cb11e84b9f89f8a4a2481a6eeee1e2701415
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:17:48 2025 +0100
suricata: Start the reporter daemon
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 131d09cf88db5c0d257a81d79269da4b578dd913
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:11:20 2025 +0100
suricata: Install the reporter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 438deca0081c58eec331e1e1490fefae70f26138
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:03:56 2025 +0100
suricata-reporter: Add source/destination ports to the emails, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit a7366da0e2688fed862f7e2eddd04332ae2902f0
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 17:00:02 2025 +0100
suricata-reporter: Don't let workers terminate if something goes wrong
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit f8c7f8c52b924c0fb7cb20edb61a0c2563fc8924
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 16:58:21 2025 +0100
suricata-reporter: Log any alerts to a database
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 4d5c29531168be7b109053367e333c5ac556f7cd
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 16:24:29 2025 +0100
suricata-reporter: Make ownership of the socket configurable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 27ed0b7a61df30440e93b2ad4cf9123a9750e2a8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 16:09:02 2025 +0100
suricata-reporter: Make the socket path configurable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 4fea4ffd5b74b0fd6a7709796bc4d009aa9f867e
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 16:06:23 2025 +0100
suricata-reporter: Make the number of workers configurable
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit f87d9532828e096b5c898ccf2f698af42579a5f2
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 16:01:56 2025 +0100
suricata-reporter: Create capability to send alerts to syslog
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit bcd0e317d55f3de8adee59e6f82272946f9d933f
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 15:31:51 2025 +0100
suricata-reporter: Read the email configuration from file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 990ba3634f1509c4fa31e53dea96346bb3ba9af4
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 15:12:14 2025 +0100
suricata-reporter: Read a configuration file
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit da6d9291663e576e792a1e582dbeea920aa78cbf
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 15:04:31 2025 +0100
suricata-reporter: Parse alerts and generate emails
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 87d0e312cec11b22af6bfa9d61320aa1d9a8d200
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Wed Aug 6 11:13:14 2025 +0100
suricata: Enable EVE logging to the reporter
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 3656eac2d7b38ecd877e2773146aa719d794b4c8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 18:15:40 2025 +0100
suricata: Fix path to the magic file
Aparently it does not automatically append the suffix.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 0d59a4a0822ab6ae5e189c1e540432d64caa5948
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 18:07:57 2025 +0100
suricata-reporter: Replace logic on termination signals
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit d0831c07693abb93e511e40dacc34a37fae8e6dd
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 18:07:30 2025 +0100
suricata-reporter: Close the queue on termination
This will allow us to not have an extra signal to check across
processes.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 99f9175ee04d302050709d38d906227c68af0590
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 16:04:52 2025 +0100
suricata-reporter: Create a listening socket
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit a940e906832c7838d1be16fda4e00c90cc6a3413
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 15:33:47 2025 +0100
suricata-reporter: Handle signals to gracefully terminate
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit d95a1ee37e514a2efa706ece609b0aeb117e249a
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 15:25:04 2025 +0100
suricata-reporter: Create a queue we can push events into the workers with
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 4a90715ba353fd6f4de7444b56236275b79f5ae8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 15:18:15 2025 +0100
suricata-reporter: Create a couple of worker processes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
commit 49fe4efad57f7707cfbb006e1f9b7e1b3f2be4c8
Author: Michael Tremer <michael.tremer@ipfire.org>
Date: Tue Aug 5 15:03:14 2025 +0100
suricata-reporter: Create some scaffolding
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
-----------------------------------------------------------------------
Summary of changes:
config/cfgroot/ids-functions.pl | 46 +++
config/cron/crontab | 5 +
config/rootfiles/common/prompt | 19 +
config/rootfiles/common/python3-MarkupSafe | 1 +
config/rootfiles/common/python3-more_itertools | 13 +
config/rootfiles/common/python3-pillow | 119 ++++++
config/rootfiles/common/python3-reportlab | 208 ++++++++++
config/rootfiles/common/python3-setuptools | 427 +++++++++++++++++++++
config/rootfiles/common/python3-wheel | 44 +++
config/rootfiles/common/suricata-reporter | 11 +
config/rootfiles/core/198/filelists/files | 2 +
config/rootfiles/core/198/filelists/prompt | 1 +
.../core/198/filelists/python3-MarkupSafe | 1 +
.../core/198/filelists/python3-more_itertools | 1 +
config/rootfiles/core/198/filelists/python3-pillow | 1 +
.../rootfiles/core/198/filelists/python3-reportlab | 1 +
.../core/198/filelists/python3-setuptools | 1 +
config/rootfiles/core/198/filelists/python3-wheel | 1 +
.../rootfiles/core/198/filelists/suricata-reporter | 1 +
.../112 => core/198}/filelists/web-user-interface | 0
config/rootfiles/packages/python3-packaging | 43 ++-
config/rootfiles/packages/python3-setuptools | 263 -------------
config/suricata/suricata-report-cron | 144 +++++++
config/suricata/suricata.yaml | 8 +-
doc/language_issues.en | 16 +-
doc/language_issues.es | 15 +
doc/language_issues.fr | 15 +
doc/language_issues.it | 15 +
doc/language_issues.nl | 15 +
doc/language_issues.pl | 15 +
doc/language_issues.ru | 15 +
doc/language_issues.tr | 15 +
doc/language_issues.tw | 15 +
doc/language_issues.zh | 15 +
doc/language_missings | 135 +++++++
html/cgi-bin/ids.cgi | 232 +++++++++--
.../themes/ipfire/include/fonts/Prompt-Bold.ttf | Bin 178804 -> 0 bytes
.../themes/ipfire/include/fonts/Prompt-Medium.ttf | Bin 176444 -> 0 bytes
.../themes/ipfire/include/fonts/Prompt-Regular.ttf | Bin 168932 -> 0 bytes
langs/de/cgi-bin/de.pl | 16 +-
langs/en/cgi-bin/en.pl | 16 +-
langs/es/cgi-bin/es.pl | 1 -
langs/fr/cgi-bin/fr.pl | 1 -
langs/it/cgi-bin/it.pl | 1 -
langs/nl/cgi-bin/nl.pl | 1 -
langs/pl/cgi-bin/pl.pl | 1 -
langs/ru/cgi-bin/ru.pl | 1 -
langs/tr/cgi-bin/tr.pl | 1 -
langs/tw/cgi-bin/tw.pl | 1 -
langs/zh/cgi-bin/zh.pl | 1 -
lfs/{wsdd => prompt} | 26 +-
lfs/{python3-toml => python3-more_itertools} | 12 +-
lfs/python3-packaging | 6 +-
lfs/{python3-Jinja2 => python3-pillow} | 11 +-
lfs/{python3-build => python3-reportlab} | 6 +-
lfs/python3-setuptools | 11 +-
lfs/{python3-toml => python3-wheel} | 8 +-
lfs/{bird => suricata-reporter} | 37 +-
lfs/web-user-interface | 9 +
make.sh | 32 +-
src/initscripts/system/suricata | 51 ++-
.../python3-pillow-11.3.0-fix-license.patch | 13 +
62 files changed, 1718 insertions(+), 424 deletions(-)
create mode 100644 config/rootfiles/common/prompt
create mode 100644 config/rootfiles/common/python3-more_itertools
create mode 100644 config/rootfiles/common/python3-pillow
create mode 100644 config/rootfiles/common/python3-reportlab
create mode 100644 config/rootfiles/common/python3-setuptools
create mode 100644 config/rootfiles/common/python3-wheel
create mode 100644 config/rootfiles/common/suricata-reporter
create mode 120000 config/rootfiles/core/198/filelists/prompt
create mode 120000 config/rootfiles/core/198/filelists/python3-MarkupSafe
create mode 120000 config/rootfiles/core/198/filelists/python3-more_itertools
create mode 120000 config/rootfiles/core/198/filelists/python3-pillow
create mode 120000 config/rootfiles/core/198/filelists/python3-reportlab
create mode 120000 config/rootfiles/core/198/filelists/python3-setuptools
create mode 120000 config/rootfiles/core/198/filelists/python3-wheel
create mode 120000 config/rootfiles/core/198/filelists/suricata-reporter
copy config/rootfiles/{oldcore/112 => core/198}/filelists/web-user-interface (100%)
delete mode 100644 config/rootfiles/packages/python3-setuptools
create mode 100644 config/suricata/suricata-report-cron
delete mode 100644 html/html/themes/ipfire/include/fonts/Prompt-Bold.ttf
delete mode 100644 html/html/themes/ipfire/include/fonts/Prompt-Medium.ttf
delete mode 100644 html/html/themes/ipfire/include/fonts/Prompt-Regular.ttf
copy lfs/{wsdd => prompt} (85%)
copy lfs/{python3-toml => python3-more_itertools} (89%)
copy lfs/{python3-Jinja2 => python3-pillow} (87%)
copy lfs/{python3-build => python3-reportlab} (93%)
copy lfs/{python3-toml => python3-wheel} (92%)
copy lfs/{bird => suricata-reporter} (82%)
create mode 100644 src/patches/python3-pillow-11.3.0-fix-license.patch
Difference in files:
diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl
index 1a72e4c3e2..14212930e6 100644
--- a/config/cfgroot/ids-functions.pl
+++ b/config/cfgroot/ids-functions.pl
@@ -113,9 +113,15 @@ our $whitelist_file = "$rulespath/whitelist.rules";
# (Sourcefire, Emergingthreads, etc..)
our $rulesetsourcesfile = "$settingsdir/ruleset-sources";
+# File which contains the configuration for the suricata-report-generator.
+our $report_generator_config_file = "$settingsdir/reporter.conf";
+
# The pidfile of the IDS.
our $idspidfile = "/var/run/suricata.pid";
+# The pidfile of the report-generator.
+our $report_generator_pid = "/var/run/suricata/reporter.pid";
+
# Location of suricatactrl.
my $suricatactrl = "/usr/local/bin/suricatactrl";
@@ -1743,4 +1749,44 @@ sub unlock_ids_page() {
unlink($ids_page_lock_file);
}
+#
+## Function to generate to configuration for the suricata-report-generator.
+#
+sub generate_report_generator_config() {
+ my %idssettings = ();
+
+ # Read-in IDS settings.
+ &General::readhash("$ids_settings_file", \%idssettings);
+
+ # Open config file for writing.
+ open(FILE, ">", "$report_generator_config_file") or die "Could not write to $report_generator_config_file. $!\n";
+
+ # Print notice about autogenerated file.
+ print FILE "#Autogenerated file. Any custom changes will be overwritten!\n\n";
+
+ # Sylog settings.
+ print FILE "[syslog]\n";
+ print FILE "enabled = true\n\n";
+
+ # Mail settings.
+ print FILE "[email]\n";
+
+ # Check if mail alerts are enabled.
+ if ($idssettings{'ENABLE_EMAIL'} eq "on") {
+ print FILE "enabled = true\n";
+ } else {
+ print FILE "enabled = false\n";
+ }
+
+ print FILE "sender = $idssettings{'EMAIL_SENDER'}\n";
+ print FILE "recipients = $idssettings{'EMAIL_RECIPIENTS'}\n";
+
+ # Optionally add the severity
+ if ($idssettings{'EMAIL_ALERT_SEVERITY'}) {
+ print FILE "severity = $idssettings{'EMAIL_ALERT_SEVERITY'}\n";
+ }
+
+ close(FILE);
+}
+
1;
diff --git a/config/cron/crontab b/config/cron/crontab
index 7088e0b750..f516bcf357 100644
--- a/config/cron/crontab
+++ b/config/cron/crontab
@@ -65,6 +65,11 @@ HOME=/
# Perform a surciata rules update every 12 hours.
@ 12h [ -f "/var/ipfire/red/active" ] && /usr/local/bin/update-ids-ruleset >/dev/null 2>&1
+# Send IPS reports
+&nice(5),bootrun 0 9 * * * /usr/bin/suricata-report-cron daily
+&nice(5),bootrun 0 9 * * MON /usr/bin/suricata-report-cron weekly
+&nice(5),bootrun 0 9 1 * * /usr/bin/suricata-report-cron monthly
+
# Update Lists for IP-based blocking every 15 minutes.
@ 15 [ -f "/var/ipfire/red/active" ] && /usr/local/bin/update-ipblocklists >/dev/null 2>&1
diff --git a/config/rootfiles/common/prompt b/config/rootfiles/common/prompt
new file mode 100644
index 0000000000..bbceb84d7e
--- /dev/null
+++ b/config/rootfiles/common/prompt
@@ -0,0 +1,19 @@
+#usr/share/fonts
+usr/share/fonts/Prompt-Black.ttf
+usr/share/fonts/Prompt-BlackItalic.ttf
+usr/share/fonts/Prompt-Bold.ttf
+usr/share/fonts/Prompt-BoldItalic.ttf
+usr/share/fonts/Prompt-ExtraBold.ttf
+usr/share/fonts/Prompt-ExtraBoldItalic.ttf
+usr/share/fonts/Prompt-ExtraLight.ttf
+usr/share/fonts/Prompt-ExtraLightItalic.ttf
+usr/share/fonts/Prompt-Italic.ttf
+usr/share/fonts/Prompt-Light.ttf
+usr/share/fonts/Prompt-LightItalic.ttf
+usr/share/fonts/Prompt-Medium.ttf
+usr/share/fonts/Prompt-MediumItalic.ttf
+usr/share/fonts/Prompt-Regular.ttf
+usr/share/fonts/Prompt-SemiBold.ttf
+usr/share/fonts/Prompt-SemiBoldItalic.ttf
+usr/share/fonts/Prompt-Thin.ttf
+usr/share/fonts/Prompt-ThinItalic.ttf
diff --git a/config/rootfiles/common/python3-MarkupSafe b/config/rootfiles/common/python3-MarkupSafe
index 452ae293b2..c94e00e09a 100644
--- a/config/rootfiles/common/python3-MarkupSafe
+++ b/config/rootfiles/common/python3-MarkupSafe
@@ -14,3 +14,4 @@
#usr/lib/python3.10/site-packages/MarkupSafe-2.1.3-py3.10-linux-xxxMACHINExxx.egg/markupsafe/_speedups.py
#usr/lib/python3.10/site-packages/MarkupSafe-2.1.3-py3.10-linux-xxxMACHINExxx.egg/markupsafe/_speedups.pyi
#usr/lib/python3.10/site-packages/MarkupSafe-2.1.3-py3.10-linux-xxxMACHINExxx.egg/markupsafe/py.typed
+#usr/lib/python3.10/site-packages/easy-install.pth
diff --git a/config/rootfiles/common/python3-more_itertools b/config/rootfiles/common/python3-more_itertools
new file mode 100644
index 0000000000..54e0f1e369
--- /dev/null
+++ b/config/rootfiles/common/python3-more_itertools
@@ -0,0 +1,13 @@
+#usr/lib/python3.10/site-packages/more_itertools
+#usr/lib/python3.10/site-packages/more_itertools-10.7.0.dist-info
+#usr/lib/python3.10/site-packages/more_itertools-10.7.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/more_itertools-10.7.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/more_itertools-10.7.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/more_itertools-10.7.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/more_itertools/__init__.py
+#usr/lib/python3.10/site-packages/more_itertools/__init__.pyi
+#usr/lib/python3.10/site-packages/more_itertools/more.py
+#usr/lib/python3.10/site-packages/more_itertools/more.pyi
+#usr/lib/python3.10/site-packages/more_itertools/py.typed
+#usr/lib/python3.10/site-packages/more_itertools/recipes.py
+#usr/lib/python3.10/site-packages/more_itertools/recipes.pyi
diff --git a/config/rootfiles/common/python3-pillow b/config/rootfiles/common/python3-pillow
new file mode 100644
index 0000000000..67314e6b9e
--- /dev/null
+++ b/config/rootfiles/common/python3-pillow
@@ -0,0 +1,119 @@
+usr/lib/python3.10/site-packages/PIL
+#usr/lib/python3.10/site-packages/PIL/AvifImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/BdfFontFile.py
+#usr/lib/python3.10/site-packages/PIL/BlpImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/BmpImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/BufrStubImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/ContainerIO.py
+#usr/lib/python3.10/site-packages/PIL/CurImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/DcxImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/DdsImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/EpsImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/ExifTags.py
+#usr/lib/python3.10/site-packages/PIL/FitsImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/FliImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/FontFile.py
+#usr/lib/python3.10/site-packages/PIL/FpxImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/FtexImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/GbrImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/GdImageFile.py
+#usr/lib/python3.10/site-packages/PIL/GifImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/GimpGradientFile.py
+#usr/lib/python3.10/site-packages/PIL/GimpPaletteFile.py
+#usr/lib/python3.10/site-packages/PIL/GribStubImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/Hdf5StubImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/IcnsImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/IcoImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/ImImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/Image.py
+#usr/lib/python3.10/site-packages/PIL/ImageChops.py
+#usr/lib/python3.10/site-packages/PIL/ImageCms.py
+#usr/lib/python3.10/site-packages/PIL/ImageColor.py
+#usr/lib/python3.10/site-packages/PIL/ImageDraw.py
+#usr/lib/python3.10/site-packages/PIL/ImageDraw2.py
+#usr/lib/python3.10/site-packages/PIL/ImageEnhance.py
+#usr/lib/python3.10/site-packages/PIL/ImageFile.py
+#usr/lib/python3.10/site-packages/PIL/ImageFilter.py
+#usr/lib/python3.10/site-packages/PIL/ImageFont.py
+#usr/lib/python3.10/site-packages/PIL/ImageGrab.py
+#usr/lib/python3.10/site-packages/PIL/ImageMath.py
+#usr/lib/python3.10/site-packages/PIL/ImageMode.py
+#usr/lib/python3.10/site-packages/PIL/ImageMorph.py
+#usr/lib/python3.10/site-packages/PIL/ImageOps.py
+#usr/lib/python3.10/site-packages/PIL/ImagePalette.py
+#usr/lib/python3.10/site-packages/PIL/ImagePath.py
+#usr/lib/python3.10/site-packages/PIL/ImageQt.py
+#usr/lib/python3.10/site-packages/PIL/ImageSequence.py
+#usr/lib/python3.10/site-packages/PIL/ImageShow.py
+#usr/lib/python3.10/site-packages/PIL/ImageStat.py
+#usr/lib/python3.10/site-packages/PIL/ImageTk.py
+#usr/lib/python3.10/site-packages/PIL/ImageTransform.py
+#usr/lib/python3.10/site-packages/PIL/ImageWin.py
+#usr/lib/python3.10/site-packages/PIL/ImtImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/IptcImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/Jpeg2KImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/JpegImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/JpegPresets.py
+#usr/lib/python3.10/site-packages/PIL/McIdasImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/MicImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/MpegImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/MpoImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/MspImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PSDraw.py
+#usr/lib/python3.10/site-packages/PIL/PaletteFile.py
+#usr/lib/python3.10/site-packages/PIL/PalmImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PcdImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PcfFontFile.py
+#usr/lib/python3.10/site-packages/PIL/PcxImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PdfImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PdfParser.py
+#usr/lib/python3.10/site-packages/PIL/PixarImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PngImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PpmImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/PsdImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/QoiImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/SgiImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/SpiderImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/SunImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/TarIO.py
+#usr/lib/python3.10/site-packages/PIL/TgaImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/TiffImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/TiffTags.py
+#usr/lib/python3.10/site-packages/PIL/WalImageFile.py
+#usr/lib/python3.10/site-packages/PIL/WebPImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/WmfImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/XVThumbImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/XbmImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/XpmImagePlugin.py
+#usr/lib/python3.10/site-packages/PIL/__init__.py
+#usr/lib/python3.10/site-packages/PIL/__main__.py
+#usr/lib/python3.10/site-packages/PIL/_avif.pyi
+#usr/lib/python3.10/site-packages/PIL/_binary.py
+#usr/lib/python3.10/site-packages/PIL/_deprecate.py
+#usr/lib/python3.10/site-packages/PIL/_imaging.cpython-310-xxxMACHINExxx-linux-gnu.so
+#usr/lib/python3.10/site-packages/PIL/_imaging.pyi
+#usr/lib/python3.10/site-packages/PIL/_imagingcms.pyi
+#usr/lib/python3.10/site-packages/PIL/_imagingft.cpython-310-xxxMACHINExxx-linux-gnu.so
+#usr/lib/python3.10/site-packages/PIL/_imagingft.pyi
+#usr/lib/python3.10/site-packages/PIL/_imagingmath.cpython-310-xxxMACHINExxx-linux-gnu.so
+#usr/lib/python3.10/site-packages/PIL/_imagingmath.pyi
+#usr/lib/python3.10/site-packages/PIL/_imagingmorph.cpython-310-xxxMACHINExxx-linux-gnu.so
+#usr/lib/python3.10/site-packages/PIL/_imagingmorph.pyi
+#usr/lib/python3.10/site-packages/PIL/_imagingtk.cpython-310-xxxMACHINExxx-linux-gnu.so
+#usr/lib/python3.10/site-packages/PIL/_imagingtk.pyi
+#usr/lib/python3.10/site-packages/PIL/_tkinter_finder.py
+#usr/lib/python3.10/site-packages/PIL/_typing.py
+#usr/lib/python3.10/site-packages/PIL/_util.py
+#usr/lib/python3.10/site-packages/PIL/_version.py
+#usr/lib/python3.10/site-packages/PIL/_webp.pyi
+#usr/lib/python3.10/site-packages/PIL/features.py
+#usr/lib/python3.10/site-packages/PIL/py.typed
+#usr/lib/python3.10/site-packages/PIL/report.py
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/licenses
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/licenses/LICENSE
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/pillow-11.3.0.dist-info/zip-safe
diff --git a/config/rootfiles/common/python3-reportlab b/config/rootfiles/common/python3-reportlab
new file mode 100644
index 0000000000..f1372c6629
--- /dev/null
+++ b/config/rootfiles/common/python3-reportlab
@@ -0,0 +1,208 @@
+#usr/lib/python3.10/site-packages/reportlab
+#usr/lib/python3.10/site-packages/reportlab-4.4.3-py3.10.egg-info
+#usr/lib/python3.10/site-packages/reportlab-4.4.3-py3.10.egg-info/PKG-INFO
+#usr/lib/python3.10/site-packages/reportlab-4.4.3-py3.10.egg-info/SOURCES.txt
+#usr/lib/python3.10/site-packages/reportlab-4.4.3-py3.10.egg-info/dependency_links.txt
+#usr/lib/python3.10/site-packages/reportlab-4.4.3-py3.10.egg-info/requires.txt
+#usr/lib/python3.10/site-packages/reportlab-4.4.3-py3.10.egg-info/top_level.txt
+usr/lib/python3.10/site-packages/reportlab/__init__.py
+usr/lib/python3.10/site-packages/reportlab/fonts
+usr/lib/python3.10/site-packages/reportlab/fonts/00readme.txt
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGarden-changelog.txt
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGarden-copying-gpl.txt
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGarden-copying.txt
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGarden-readme.txt
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGarden.sfd
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGardenMK.afm
+usr/lib/python3.10/site-packages/reportlab/fonts/DarkGardenMK.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/Vera.ttf
+usr/lib/python3.10/site-packages/reportlab/fonts/VeraBI.ttf
+usr/lib/python3.10/site-packages/reportlab/fonts/VeraBd.ttf
+usr/lib/python3.10/site-packages/reportlab/fonts/VeraIt.ttf
+usr/lib/python3.10/site-packages/reportlab/fonts/_a______.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_ab_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_abi____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_ai_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_eb_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_ebi____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_ei_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/_er_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/bitstream-vera-license.txt
+usr/lib/python3.10/site-packages/reportlab/fonts/callig15.afm
+usr/lib/python3.10/site-packages/reportlab/fonts/callig15.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/cob_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/cobo____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/com_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/coo_____.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/hb-test.ttf
+usr/lib/python3.10/site-packages/reportlab/fonts/sy______.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/zd______.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/zx______.pfb
+usr/lib/python3.10/site-packages/reportlab/fonts/zy______.pfb
+usr/lib/python3.10/site-packages/reportlab/graphics
+usr/lib/python3.10/site-packages/reportlab/graphics/__init__.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/__init__.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/code128.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/code39.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/code93.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/common.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/dmtx.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/eanbc.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/ecc200datamatrix.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/fourstate.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/lto.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/qr.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/qrencoder.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/test.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/usps.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/usps4s.py
+usr/lib/python3.10/site-packages/reportlab/graphics/barcode/widgets.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/__init__.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/areas.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/axes.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/barcharts.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/dotbox.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/doughnut.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/legends.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/linecharts.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/lineplots.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/markers.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/piecharts.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/slidebox.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/spider.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/textlabels.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/utils.py
+usr/lib/python3.10/site-packages/reportlab/graphics/charts/utils3d.py
+usr/lib/python3.10/site-packages/reportlab/graphics/renderPDF.py
+usr/lib/python3.10/site-packages/reportlab/graphics/renderPM.py
+usr/lib/python3.10/site-packages/reportlab/graphics/renderPS.py
+usr/lib/python3.10/site-packages/reportlab/graphics/renderSVG.py
+usr/lib/python3.10/site-packages/reportlab/graphics/renderbase.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/__init__.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/bubble.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/clustered_bar.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/clustered_column.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/excelcolors.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/exploded_pie.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/filled_radar.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/line_chart.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/linechart_with_markers.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/radar.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/runall.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/scatter.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/scatter_lines.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/scatter_lines_markers.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/simple_pie.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/stacked_bar.py
+usr/lib/python3.10/site-packages/reportlab/graphics/samples/stacked_column.py
+usr/lib/python3.10/site-packages/reportlab/graphics/shapes.py
+usr/lib/python3.10/site-packages/reportlab/graphics/svgpath.py
+usr/lib/python3.10/site-packages/reportlab/graphics/testdrawings.py
+usr/lib/python3.10/site-packages/reportlab/graphics/testshapes.py
+usr/lib/python3.10/site-packages/reportlab/graphics/transform.py
+usr/lib/python3.10/site-packages/reportlab/graphics/utils.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgetbase.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/__init__.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/adjustableArrow.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/eventcal.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/flags.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/grids.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/markers.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/signsandsymbols.py
+usr/lib/python3.10/site-packages/reportlab/graphics/widgets/table.py
+usr/lib/python3.10/site-packages/reportlab/lib
+usr/lib/python3.10/site-packages/reportlab/lib/PyFontify.py
+usr/lib/python3.10/site-packages/reportlab/lib/__init__.py
+usr/lib/python3.10/site-packages/reportlab/lib/abag.py
+usr/lib/python3.10/site-packages/reportlab/lib/arciv.py
+usr/lib/python3.10/site-packages/reportlab/lib/attrmap.py
+usr/lib/python3.10/site-packages/reportlab/lib/boxstuff.py
+usr/lib/python3.10/site-packages/reportlab/lib/codecharts.py
+usr/lib/python3.10/site-packages/reportlab/lib/colors.py
+usr/lib/python3.10/site-packages/reportlab/lib/corp.py
+usr/lib/python3.10/site-packages/reportlab/lib/enums.py
+usr/lib/python3.10/site-packages/reportlab/lib/extformat.py
+usr/lib/python3.10/site-packages/reportlab/lib/fontfinder.py
+usr/lib/python3.10/site-packages/reportlab/lib/fonts.py
+usr/lib/python3.10/site-packages/reportlab/lib/formatters.py
+usr/lib/python3.10/site-packages/reportlab/lib/geomutils.py
+usr/lib/python3.10/site-packages/reportlab/lib/logger.py
+usr/lib/python3.10/site-packages/reportlab/lib/normalDate.py
+usr/lib/python3.10/site-packages/reportlab/lib/pagesizes.py
+usr/lib/python3.10/site-packages/reportlab/lib/pdfencrypt.py
+usr/lib/python3.10/site-packages/reportlab/lib/pygments2xpre.py
+usr/lib/python3.10/site-packages/reportlab/lib/randomtext.py
+usr/lib/python3.10/site-packages/reportlab/lib/rl_accel.py
+usr/lib/python3.10/site-packages/reportlab/lib/rl_safe_eval.py
+usr/lib/python3.10/site-packages/reportlab/lib/rltempfile.py
+usr/lib/python3.10/site-packages/reportlab/lib/rparsexml.py
+usr/lib/python3.10/site-packages/reportlab/lib/sequencer.py
+usr/lib/python3.10/site-packages/reportlab/lib/styles.py
+usr/lib/python3.10/site-packages/reportlab/lib/testutils.py
+usr/lib/python3.10/site-packages/reportlab/lib/textsplit.py
+usr/lib/python3.10/site-packages/reportlab/lib/units.py
+usr/lib/python3.10/site-packages/reportlab/lib/utils.py
+usr/lib/python3.10/site-packages/reportlab/lib/validators.py
+usr/lib/python3.10/site-packages/reportlab/lib/yaml.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase
+usr/lib/python3.10/site-packages/reportlab/pdfbase/__init__.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_can_cmap_data.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_cidfontdata.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_macexpert.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_macroman.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_pdfdoc.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_standard.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_symbol.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_winansi.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_enc_zapfdingbats.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_courier.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_courierbold.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_courierboldoblique.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_courieroblique.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_helvetica.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_helveticabold.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_helveticaboldoblique.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_helveticaoblique.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_symbol.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_timesbold.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_timesbolditalic.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_timesitalic.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_timesroman.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_fontdata_widths_zapfdingbats.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/_glyphlist.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/acroform.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/cidfonts.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/pdfdoc.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/pdfform.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/pdfmetrics.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/pdfpattern.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/pdfutils.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/rl_codecs.py
+usr/lib/python3.10/site-packages/reportlab/pdfbase/ttfonts.py
+usr/lib/python3.10/site-packages/reportlab/pdfgen
+usr/lib/python3.10/site-packages/reportlab/pdfgen/__init__.py
+usr/lib/python3.10/site-packages/reportlab/pdfgen/canvas.py
+usr/lib/python3.10/site-packages/reportlab/pdfgen/pathobject.py
+usr/lib/python3.10/site-packages/reportlab/pdfgen/pdfgeom.py
+usr/lib/python3.10/site-packages/reportlab/pdfgen/pdfimages.py
+usr/lib/python3.10/site-packages/reportlab/pdfgen/textobject.py
+usr/lib/python3.10/site-packages/reportlab/platypus
+usr/lib/python3.10/site-packages/reportlab/platypus/__init__.py
+usr/lib/python3.10/site-packages/reportlab/platypus/doctemplate.py
+usr/lib/python3.10/site-packages/reportlab/platypus/figures.py
+usr/lib/python3.10/site-packages/reportlab/platypus/flowables.py
+usr/lib/python3.10/site-packages/reportlab/platypus/frames.py
+usr/lib/python3.10/site-packages/reportlab/platypus/multicol.py
+usr/lib/python3.10/site-packages/reportlab/platypus/para.py
+usr/lib/python3.10/site-packages/reportlab/platypus/paragraph.py
+usr/lib/python3.10/site-packages/reportlab/platypus/paraparser.py
+usr/lib/python3.10/site-packages/reportlab/platypus/tableofcontents.py
+usr/lib/python3.10/site-packages/reportlab/platypus/tables.py
+usr/lib/python3.10/site-packages/reportlab/platypus/xpreformatted.py
+usr/lib/python3.10/site-packages/reportlab/rl_config.py
+usr/lib/python3.10/site-packages/reportlab/rl_settings.py
diff --git a/config/rootfiles/common/python3-setuptools b/config/rootfiles/common/python3-setuptools
new file mode 100644
index 0000000000..b405aad889
--- /dev/null
+++ b/config/rootfiles/common/python3-setuptools
@@ -0,0 +1,427 @@
+#usr/lib/python3.10/site-packages/pkg_resources/api_tests.txt
+#usr/lib/python3.10/site-packages/pkg_resources/py.typed
+#usr/lib/python3.10/site-packages/pkg_resources/tests
+#usr/lib/python3.10/site-packages/pkg_resources/tests/__init__.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source/setup.cfg
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-zip
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package-zip/my-test-package.zip
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/SOURCES.txt
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/dependency_links.txt
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/top_level.txt
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/zip-safe
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_zipped-egg
+#usr/lib/python3.10/site-packages/pkg_resources/tests/data/my-test-package_zipped-egg/my_test_package-1.0-py3.7.egg
+#usr/lib/python3.10/site-packages/pkg_resources/tests/test_find_distributions.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/test_integration_zope_interface.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/test_markers.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/test_pkg_resources.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/test_resources.py
+#usr/lib/python3.10/site-packages/pkg_resources/tests/test_working_set.py
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info/PKG-INFO
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info/SOURCES.txt
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info/dependency_links.txt
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info/entry_points.txt
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info/requires.txt
+#usr/lib/python3.10/site-packages/setuptools-80.9.0-py3.10.egg-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_core_metadata.py
+#usr/lib/python3.10/site-packages/setuptools/_discovery.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/_log.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/_modified.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compat
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compat/numpy.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compat/py39.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/base.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/cygwin.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/errors.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/msvc.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/tests
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/tests/test_base.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/tests/test_cygwin.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/tests/test_mingw.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/tests/test_msvc.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/tests/test_unix.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/unix.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/compilers/C/zos.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/compat
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/compat/py39.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/support.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_archive_util.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_bdist.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_build.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_build_clib.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_build_ext.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_build_py.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_build_scripts.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_check.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_clean.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_cmd.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_config_cmd.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_core.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_dir_util.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_dist.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_extension.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_file_util.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_filelist.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_install.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_install_data.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_install_headers.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_install_lib.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_install_scripts.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_log.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_modified.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_sdist.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_spawn.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_sysconfig.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_text_file.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_util.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_version.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/test_versionpredicate.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/tests/unix_compat.py
+#usr/lib/python3.10/site-packages/setuptools/_distutils/zosccompiler.py
+#usr/lib/python3.10/site-packages/setuptools/_normalization.py
+#usr/lib/python3.10/site-packages/setuptools/_scripts.py
+#usr/lib/python3.10/site-packages/setuptools/_shutil.py
+#usr/lib/python3.10/site-packages/setuptools/_static.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand/autoasync.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand/autocommand.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand/automain.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand/autoparse.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/autocommand/errors.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/tarfile
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/tarfile/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/tarfile/__main__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/tarfile/compat
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata/compat
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/importlib_metadata/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect/compat
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect/compat/py38.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/inflect/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/collections
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/collections/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/collections/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/functools
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/functools/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/functools/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/text/Lorem ipsum.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/text/layouts.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/__init__.pyi
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/more.pyi
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/more_itertools/recipes.pyi
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/LICENSE.APACHE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/LICENSE.BSD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging-24.2.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/_elffile.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/_parser.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/_tokenizer.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/licenses
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/licenses/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/metadata.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/packaging/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/licenses
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/licenses/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/__main__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/android.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/api.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/macos.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/unix.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/version.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/platformdirs/windows.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/tomli/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/entry_points.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_checkers.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_config.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_decorators.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_exceptions.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_functions.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_importhook.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_memo.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_suppression.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_transformer.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_union_transformer.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/_utils.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typeguard/py.typed
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/LICENSE.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/entry_points.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/__main__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/bdist_wheel.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/cli
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/cli/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/cli/convert.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/cli/pack.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/cli/tags.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/cli/unpack.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/macosx_libfile.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/metadata.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/util.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/LICENSE.APACHE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/LICENSE.BSD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/vendored/vendor.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/wheel/wheelfile.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/INSTALLER
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/LICENSE
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/METADATA
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/RECORD
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/REQUESTED
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/WHEEL
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/top_level.txt
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp/compat
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp/compat/py310.py
+#usr/lib/python3.10/site-packages/setuptools/_vendor/zipp/glob.py
+#usr/lib/python3.10/site-packages/setuptools/command/_requirestxt.py
+#usr/lib/python3.10/site-packages/setuptools/command/bdist_wheel.py
+#usr/lib/python3.10/site-packages/setuptools/command/editable_wheel.py
+#usr/lib/python3.10/site-packages/setuptools/compat
+#usr/lib/python3.10/site-packages/setuptools/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/compat/py310.py
+#usr/lib/python3.10/site-packages/setuptools/compat/py311.py
+#usr/lib/python3.10/site-packages/setuptools/compat/py312.py
+#usr/lib/python3.10/site-packages/setuptools/compat/py39.py
+#usr/lib/python3.10/site-packages/setuptools/config/NOTICE
+#usr/lib/python3.10/site-packages/setuptools/config/_validate_pyproject/NOTICE
+#usr/lib/python3.10/site-packages/setuptools/config/distutils.schema.json
+#usr/lib/python3.10/site-packages/setuptools/config/setuptools.schema.json
+#usr/lib/python3.10/site-packages/setuptools/modified.py
+#usr/lib/python3.10/site-packages/setuptools/tests
+#usr/lib/python3.10/site-packages/setuptools/tests/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/tests/compat
+#usr/lib/python3.10/site-packages/setuptools/tests/compat/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/tests/compat/py39.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config
+#usr/lib/python3.10/site-packages/setuptools/tests/config/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/downloads
+#usr/lib/python3.10/site-packages/setuptools/tests/config/downloads/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/downloads/preload.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/setupcfg_examples.txt
+#usr/lib/python3.10/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/test_expand.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/test_pyprojecttoml.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py
+#usr/lib/python3.10/site-packages/setuptools/tests/config/test_setupcfg.py
+#usr/lib/python3.10/site-packages/setuptools/tests/contexts.py
+#usr/lib/python3.10/site-packages/setuptools/tests/environment.py
+#usr/lib/python3.10/site-packages/setuptools/tests/fixtures.py
+#usr/lib/python3.10/site-packages/setuptools/tests/indexes
+#usr/lib/python3.10/site-packages/setuptools/tests/indexes/test_links_priority
+#usr/lib/python3.10/site-packages/setuptools/tests/indexes/test_links_priority/external.html
+#usr/lib/python3.10/site-packages/setuptools/tests/indexes/test_links_priority/simple
+#usr/lib/python3.10/site-packages/setuptools/tests/indexes/test_links_priority/simple/foobar
+#usr/lib/python3.10/site-packages/setuptools/tests/indexes/test_links_priority/simple/foobar/index.html
+#usr/lib/python3.10/site-packages/setuptools/tests/integration
+#usr/lib/python3.10/site-packages/setuptools/tests/integration/__init__.py
+#usr/lib/python3.10/site-packages/setuptools/tests/integration/helpers.py
+#usr/lib/python3.10/site-packages/setuptools/tests/integration/test_pbr.py
+#usr/lib/python3.10/site-packages/setuptools/tests/integration/test_pip_install_sdist.py
+#usr/lib/python3.10/site-packages/setuptools/tests/mod_with_constant.py
+#usr/lib/python3.10/site-packages/setuptools/tests/namespaces.py
+#usr/lib/python3.10/site-packages/setuptools/tests/script-with-bom.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_archive_util.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_bdist_deprecations.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_bdist_egg.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_bdist_wheel.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_build.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_build_clib.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_build_ext.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_build_meta.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_build_py.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_config_discovery.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_core_metadata.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_depends.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_develop.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_dist.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_dist_info.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_distutils_adoption.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_editable_install.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_egg_info.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_extern.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_find_packages.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_find_py_modules.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_glob.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_install_scripts.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_logging.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_manifest.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_namespaces.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_scripts.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_sdist.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_setopt.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_setuptools.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_shutil_wrapper.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_unicode_utils.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_virtualenv.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_warnings.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_wheel.py
+#usr/lib/python3.10/site-packages/setuptools/tests/test_windows_wrappers.py
+#usr/lib/python3.10/site-packages/setuptools/tests/text.py
+#usr/lib/python3.10/site-packages/setuptools/tests/textwrap.py
+#usr/lib/python3.10/site-packages/setuptools/warnings.py
diff --git a/config/rootfiles/common/python3-wheel b/config/rootfiles/common/python3-wheel
new file mode 100644
index 0000000000..14e3f61e65
--- /dev/null
+++ b/config/rootfiles/common/python3-wheel
@@ -0,0 +1,44 @@
+#usr/bin/wheel
+#usr/lib/python3.10/site-packages/wheel
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info/PKG-INFO
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info/SOURCES.txt
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info/dependency_links.txt
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info/entry_points.txt
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info/requires.txt
+#usr/lib/python3.10/site-packages/wheel-0.45.1-py3.10.egg-info/top_level.txt
+#usr/lib/python3.10/site-packages/wheel/__init__.py
+#usr/lib/python3.10/site-packages/wheel/__main__.py
+#usr/lib/python3.10/site-packages/wheel/_bdist_wheel.py
+#usr/lib/python3.10/site-packages/wheel/_setuptools_logging.py
+#usr/lib/python3.10/site-packages/wheel/bdist_wheel.py
+#usr/lib/python3.10/site-packages/wheel/cli
+#usr/lib/python3.10/site-packages/wheel/cli/__init__.py
+#usr/lib/python3.10/site-packages/wheel/cli/convert.py
+#usr/lib/python3.10/site-packages/wheel/cli/pack.py
+#usr/lib/python3.10/site-packages/wheel/cli/tags.py
+#usr/lib/python3.10/site-packages/wheel/cli/unpack.py
+#usr/lib/python3.10/site-packages/wheel/macosx_libfile.py
+#usr/lib/python3.10/site-packages/wheel/metadata.py
+#usr/lib/python3.10/site-packages/wheel/util.py
+#usr/lib/python3.10/site-packages/wheel/vendored
+#usr/lib/python3.10/site-packages/wheel/vendored/__init__.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/LICENSE
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/LICENSE.APACHE
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/LICENSE.BSD
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/__init__.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/_elffile.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/_manylinux.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/_musllinux.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/_parser.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/_structures.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/_tokenizer.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/markers.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/requirements.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/specifiers.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/tags.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/utils.py
+#usr/lib/python3.10/site-packages/wheel/vendored/packaging/version.py
+#usr/lib/python3.10/site-packages/wheel/vendored/vendor.txt
+#usr/lib/python3.10/site-packages/wheel/wheelfile.py
diff --git a/config/rootfiles/common/suricata-reporter b/config/rootfiles/common/suricata-reporter
new file mode 100644
index 0000000000..b2416625f9
--- /dev/null
+++ b/config/rootfiles/common/suricata-reporter
@@ -0,0 +1,11 @@
+etc/suricata/reporter.conf
+usr/bin/suricata-reporter
+usr/bin/suricata-report-cron
+usr/bin/suricata-report-generator
+#usr/share/doc/suricata-reporter
+#usr/share/doc/suricata-reporter/COPYING
+#usr/share/doc/suricata-reporter/README.md
+usr/share/locale/de_DE
+usr/share/locale/de_DE/LC_MESSAGES
+usr/share/locale/de_DE/LC_MESSAGES/suricata-reporter.mo
+var/ipfire/suricata/reporter.conf
diff --git a/config/rootfiles/core/198/filelists/files b/config/rootfiles/core/198/filelists/files
index 9a71c3df6d..ff40a305f9 100644
--- a/config/rootfiles/core/198/filelists/files
+++ b/config/rootfiles/core/198/filelists/files
@@ -1 +1,3 @@
+etc/rc.d/init.d/suricata
var/ipfire/graphs.pl
+var/ipfire/ids-functions.pl
diff --git a/config/rootfiles/core/198/filelists/prompt b/config/rootfiles/core/198/filelists/prompt
new file mode 120000
index 0000000000..ac8ac24ec4
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/prompt
@@ -0,0 +1 @@
+../../../common/prompt
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/python3-MarkupSafe b/config/rootfiles/core/198/filelists/python3-MarkupSafe
new file mode 120000
index 0000000000..373a01865b
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/python3-MarkupSafe
@@ -0,0 +1 @@
+../../../common/python3-MarkupSafe
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/python3-more_itertools b/config/rootfiles/core/198/filelists/python3-more_itertools
new file mode 120000
index 0000000000..0e4ea81fad
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/python3-more_itertools
@@ -0,0 +1 @@
+../../../common/python3-more_itertools
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/python3-pillow b/config/rootfiles/core/198/filelists/python3-pillow
new file mode 120000
index 0000000000..f13b4f9f3f
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/python3-pillow
@@ -0,0 +1 @@
+../../../common/python3-pillow
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/python3-reportlab b/config/rootfiles/core/198/filelists/python3-reportlab
new file mode 120000
index 0000000000..075d3e119b
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/python3-reportlab
@@ -0,0 +1 @@
+../../../common/python3-reportlab
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/python3-setuptools b/config/rootfiles/core/198/filelists/python3-setuptools
new file mode 120000
index 0000000000..26db0b44aa
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/python3-setuptools
@@ -0,0 +1 @@
+../../../common/python3-setuptools
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/python3-wheel b/config/rootfiles/core/198/filelists/python3-wheel
new file mode 120000
index 0000000000..85e26b254d
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/python3-wheel
@@ -0,0 +1 @@
+../../../common/python3-wheel
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/suricata-reporter b/config/rootfiles/core/198/filelists/suricata-reporter
new file mode 120000
index 0000000000..23f2cd87d4
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/suricata-reporter
@@ -0,0 +1 @@
+../../../common/suricata-reporter
\ No newline at end of file
diff --git a/config/rootfiles/core/198/filelists/web-user-interface b/config/rootfiles/core/198/filelists/web-user-interface
new file mode 120000
index 0000000000..70c74b4382
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/web-user-interface
@@ -0,0 +1 @@
+../../../common/web-user-interface
\ No newline at end of file
diff --git a/config/rootfiles/packages/python3-packaging b/config/rootfiles/packages/python3-packaging
index 6c1ee4773f..c0854af638 100644
--- a/config/rootfiles/packages/python3-packaging
+++ b/config/rootfiles/packages/python3-packaging
@@ -1,21 +1,24 @@
usr/lib/python3.10/site-packages/packaging
-#usr/lib/python3.10/site-packages/packaging-23.2-py3.10.egg-info
-#usr/lib/python3.10/site-packages/packaging-23.2-py3.10.egg-info/PKG-INFO
-#usr/lib/python3.10/site-packages/packaging-23.2-py3.10.egg-info/SOURCES.txt
-#usr/lib/python3.10/site-packages/packaging-23.2-py3.10.egg-info/dependency_links.txt
-#usr/lib/python3.10/site-packages/packaging-23.2-py3.10.egg-info/top_level.txt
-usr/lib/python3.10/site-packages/packaging/__init__.py
-usr/lib/python3.10/site-packages/packaging/_elffile.py
-usr/lib/python3.10/site-packages/packaging/_manylinux.py
-usr/lib/python3.10/site-packages/packaging/_musllinux.py
-usr/lib/python3.10/site-packages/packaging/_parser.py
-usr/lib/python3.10/site-packages/packaging/_structures.py
-usr/lib/python3.10/site-packages/packaging/_tokenizer.py
-usr/lib/python3.10/site-packages/packaging/markers.py
-usr/lib/python3.10/site-packages/packaging/metadata.py
-usr/lib/python3.10/site-packages/packaging/py.typed
-usr/lib/python3.10/site-packages/packaging/requirements.py
-usr/lib/python3.10/site-packages/packaging/specifiers.py
-usr/lib/python3.10/site-packages/packaging/tags.py
-usr/lib/python3.10/site-packages/packaging/utils.py
-usr/lib/python3.10/site-packages/packaging/version.py
+#usr/lib/python3.10/site-packages/packaging-25.0-py3.10.egg-info
+#usr/lib/python3.10/site-packages/packaging-25.0-py3.10.egg-info/PKG-INFO
+#usr/lib/python3.10/site-packages/packaging-25.0-py3.10.egg-info/SOURCES.txt
+#usr/lib/python3.10/site-packages/packaging-25.0-py3.10.egg-info/dependency_links.txt
+#usr/lib/python3.10/site-packages/packaging-25.0-py3.10.egg-info/top_level.txt
+#usr/lib/python3.10/site-packages/packaging/__init__.py
+#usr/lib/python3.10/site-packages/packaging/_elffile.py
+#usr/lib/python3.10/site-packages/packaging/_manylinux.py
+#usr/lib/python3.10/site-packages/packaging/_musllinux.py
+#usr/lib/python3.10/site-packages/packaging/_parser.py
+#usr/lib/python3.10/site-packages/packaging/_structures.py
+#usr/lib/python3.10/site-packages/packaging/_tokenizer.py
+#usr/lib/python3.10/site-packages/packaging/licenses
+#usr/lib/python3.10/site-packages/packaging/licenses/__init__.py
+#usr/lib/python3.10/site-packages/packaging/licenses/_spdx.py
+#usr/lib/python3.10/site-packages/packaging/markers.py
+#usr/lib/python3.10/site-packages/packaging/metadata.py
+#usr/lib/python3.10/site-packages/packaging/py.typed
+#usr/lib/python3.10/site-packages/packaging/requirements.py
+#usr/lib/python3.10/site-packages/packaging/specifiers.py
+#usr/lib/python3.10/site-packages/packaging/tags.py
+#usr/lib/python3.10/site-packages/packaging/utils.py
+#usr/lib/python3.10/site-packages/packaging/version.py
diff --git a/config/rootfiles/packages/python3-setuptools b/config/rootfiles/packages/python3-setuptools
deleted file mode 100644
index be2f13a44b..0000000000
--- a/config/rootfiles/packages/python3-setuptools
+++ /dev/null
@@ -1,263 +0,0 @@
-#usr/lib/python3.10/site-packages/easy-install.pth
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/PKG-INFO
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/SOURCES.txt
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/dependency_links.txt
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/entry_points.txt
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/not-zip-safe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/requires.txt
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/EGG-INFO/top_level.txt
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/_distutils_hack
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/_distutils_hack/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/_distutils_hack/override.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/__init__.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/__init__.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/_adapters.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/_common.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/_compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/_itertools.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/_legacy.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/abc.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/readers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/importlib_resources/simple.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/jaraco
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/jaraco/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/jaraco/context.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/jaraco/functools.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/jaraco/text
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/jaraco/text/__init__.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/more_itertools
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/more_itertools/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/more_itertools/more.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/more_itertools/recipes.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/_elffile.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/_manylinux.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/_musllinux.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/_parser.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/_structures.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/_tokenizer.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/markers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/requirements.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/specifiers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/tags.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/utils.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/packaging/version.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/__main__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/android.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/api.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/macos.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/unix.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/version.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/platformdirs/windows.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/typing_extensions.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/_vendor/zipp.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/extern
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/pkg_resources/extern/__init__.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_deprecation_warning.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/_collections.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/_functools.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/_log.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/_macos_compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/_msvccompiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/archive_util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/bcppcompiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/ccompiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/cmd.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/_framework_compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/bdist.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/bdist_dumb.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/bdist_rpm.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/build.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/build_clib.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/build_ext.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/build_py.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/build_scripts.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/check.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/clean.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/config.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/install.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/install_data.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/install_egg_info.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/install_headers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/install_lib.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/install_scripts.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/py37compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/register.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/sdist.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/command/upload.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/config.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/core.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/cygwinccompiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/debug.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/dep_util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/dir_util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/dist.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/errors.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/extension.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/fancy_getopt.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/file_util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/filelist.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/log.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/msvc9compiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/msvccompiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/py38compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/py39compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/spawn.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/sysconfig.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/text_file.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/unixccompiler.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/version.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_distutils/versionpredicate.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_entry_points.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_imp.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_importlib.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_itertools.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_normalization.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_path.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_reqs.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/__init__.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_adapters.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_collections.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_functools.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_itertools.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_meta.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_py39compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_metadata/_text.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/_adapters.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/_common.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/_compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/_itertools.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/_legacy.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/abc.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/readers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/importlib_resources/simple.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/jaraco
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/jaraco/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/jaraco/context.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/jaraco/functools.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/jaraco/text
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/jaraco/text/__init__.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/more_itertools
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/more_itertools/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/more_itertools/more.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/more_itertools/recipes.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/ordered_set.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/_elffile.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/_manylinux.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/_musllinux.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/_parser.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/_structures.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/_tokenizer.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/markers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/requirements.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/specifiers.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/tags.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/utils.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/packaging/version.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/tomli
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/tomli/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/tomli/_parser.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/tomli/_re.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/tomli/_types.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/typing_extensions.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/_vendor/zipp.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/archive_util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/build_meta.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/cli-32.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/cli-64.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/cli-arm64.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/cli.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/alias.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/bdist_egg.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/bdist_rpm.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/build.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/build_clib.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/build_ext.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/build_py.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/develop.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/dist_info.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/easy_install.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/editable_wheel.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/egg_info.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/install.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/install_egg_info.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/install_lib.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/install_scripts.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/launcher manifest.xml
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/py36compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/register.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/rotate.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/saveopts.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/sdist.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/setopt.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/test.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/upload.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/command/upload_docs.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_apply_pyprojecttoml.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject/error_reporting.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject/extra_validations.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject/fastjsonschema_validations.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/_validate_pyproject/formats.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/expand.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/pyprojecttoml.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/config/setupcfg.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/dep_util.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/depends.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/discovery.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/dist.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/errors.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/extension.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/extern
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/extern/__init__.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/glob.py
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/gui-32.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/gui-64.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/gui-arm64.exe
-#usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/gui.exe
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/installer.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/launch.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/logging.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/monkey.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/msvc.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/namespaces.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/package_index.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/py34compat.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/sandbox.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/script (dev).tmpl
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/script.tmpl
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/unicode_utils.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/version.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/wheel.py
-usr/lib/python3.10/site-packages/setuptools-67.5.1-py3.10.egg/setuptools/windows_support.py
-#usr/lib/python3.10/site-packages/setuptools.pth
diff --git a/config/suricata/suricata-report-cron b/config/suricata/suricata-report-cron
new file mode 100644
index 0000000000..3aa4cc8f89
--- /dev/null
+++ b/config/suricata/suricata-report-cron
@@ -0,0 +1,144 @@
+#!/bin/bash
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2025 Michael Tremer #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+. /etc/sysconfig/rc
+. "${rc_functions}"
+
+# Read the IPS settings
+readhash CONFIG "/var/ipfire/suricata/settings"
+
+send_report() {
+ local args=( "$@" )
+ local address
+
+ # Add the email sender
+ if [ -n "${CONFIG[EMAIL_SENDER]}" ]; then
+ args+=( "--email-sender=${CONFIG[EMAIL_SENDER]}" )
+
+ # Fail if we don't have a sender
+ else
+ echo "${0}: Cannot send reports with EMAIL_SENDER being set" >&2
+ return 2
+ fi
+
+ local IFS=','
+
+ # Append the email recipients
+ for address in ${CONFIG[EMAIL_RECIPIENTS]}; do
+ args+=( "--email-recipient=${address}" )
+ done
+
+ # Generate the report
+ if ! suricata-report-generator "${args[@]}"; then
+ return 1
+ fi
+
+ return 0
+}
+
+send_monthly_report() {
+ # Check if we are supposed to send monthly reports
+ case "${CONFIG[ENABLE_REPORT_MONTHLY]}" in
+ on)
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+
+ # Determine the last month
+ local y="$(date --date="last month" +"%Y")"
+ local m="$(date --date="last month" +"%m")"
+
+ # Send the report
+ send_report --year="${y}" --month="${m}"
+}
+
+send_weekly_report() {
+ # Check if we are supposed to send weekly reports
+ case "${CONFIG[ENABLE_REPORT_WEEKLY]}" in
+ on)
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+
+ # Determine last week
+ local y="$(date --date="last week" +"%Y")"
+ local w="$(date --date="last week" +"%V")"
+
+ # Send the report
+ send_report --year="${y}" --week="${w}"
+}
+
+# Sends a daily report for "yesterday"
+send_daily_report() {
+ # Check if we are supposed to send daily reports
+ case "${CONFIG[ENABLE_REPORT_DAILY]}" in
+ on)
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+
+ # Determine yesterday's date
+ local y="$(date --date="yesterday" +"%Y")"
+ local m="$(date --date="yesterday" +"%m")"
+ local d="$(date --date="yesterday" +"%d")"
+
+ # Send the report
+ send_report --year="${y}" --month="${m}" --day="${d}"
+}
+
+main() {
+ local interval="${1}"
+ shift
+
+ case "${interval}" in
+ monthly)
+ if ! send_monthly_report "$@"; then
+ return $?
+ fi
+ ;;
+
+ weekly)
+ if ! send_weekly_report "$@"; then
+ return $?
+ fi
+ ;;
+
+ daily)
+ if ! send_daily_report "$@"; then
+ return $?
+ fi
+ ;;
+ *)
+ echo "${0}: Unknown interval '${interval}'" >&2
+ return 2
+ ;;
+ esac
+
+ return 0
+}
+
+main "$@" || exit 1
diff --git a/config/suricata/suricata.yaml b/config/suricata/suricata.yaml
index 6a4f31eac8..31c8d38977 100644
--- a/config/suricata/suricata.yaml
+++ b/config/suricata/suricata.yaml
@@ -94,9 +94,9 @@ outputs:
# Extensible Event Format (nicknamed EVE) event log in JSON format
- eve-log:
- enabled: no
- filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
- filename: eve.json
+ enabled: yes
+ filetype: unix_dgram #regular|syslog|unix_dgram|unix_stream|redis
+ filename: /var/run/suricata/reporter.socket
# Enable for multi-threaded eve.json output; output files are amended with
# an identifier, e.g., eve.9.json
#threaded: false
@@ -1144,7 +1144,7 @@ unix-command:
#filename: custom.socket
# Magic file. The extension .mgc is added to the value here.
-magic-file: /usr/share/misc/magic
+magic-file: /usr/share/misc/magic.mgc
# GeoIP2 database file. Specify path and filename of GeoIP2 database
# if using rules with "geoip" rule option.
diff --git a/doc/language_issues.en b/doc/language_issues.en
index 2fec840757..6dfada328b 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -719,7 +719,6 @@ WARNING: untranslated string: enable ignore filter = Enable ignore filter
WARNING: untranslated string: enable otp = Enable OTP
WARNING: untranslated string: enable smt = Enable Simultaneous Multi-Threading (SMT)
WARNING: untranslated string: enabled = Enabled:
-WARNING: untranslated string: enabled on = Enabled on
WARNING: untranslated string: encapsulation = Encapsulation
WARNING: untranslated string: encryption = Encryption:
WARNING: untranslated string: end address = End address:
@@ -1032,6 +1031,7 @@ WARNING: untranslated string: idle timeout = Idle timeout (mins; 0 to disable):
WARNING: untranslated string: idle timeout not set = Idle timeout not set.
WARNING: untranslated string: ids add provider = Add provider
WARNING: untranslated string: ids adjust ruleset = Adjust rules and add user defined customizations...
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
WARNING: untranslated string: ids apply = Apply
WARNING: untranslated string: ids apply ruleset changes = The ruleset changes are being applied. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids autoupdates = Automatic updates
@@ -1039,13 +1039,21 @@ WARNING: untranslated string: ids cleanup tmp dir = Cleanup temporary directory.
WARNING: untranslated string: ids could not add provider = Could not add provider
WARNING: untranslated string: ids customize ruleset = Customize ruleset
WARNING: untranslated string: ids download new ruleset = Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
WARNING: untranslated string: ids enable = Enable Intrusion Prevention System
WARNING: untranslated string: ids enable automatic updates = Enable automatic updates
WARNING: untranslated string: ids extract ruleset = Extracting ruleset for provider:
WARNING: untranslated string: ids finished = Finished...
WARNING: untranslated string: ids force ruleset update = Force ruleset update
WARNING: untranslated string: ids hide = Hide
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
WARNING: untranslated string: ids ignored hosts = Whitelisted Hosts
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
WARNING: untranslated string: ids log hits = Total of number of activated rules for
WARNING: untranslated string: ids log viewer = IPS Log Viewer
WARNING: untranslated string: ids logs = IPS Logs
@@ -1053,16 +1061,22 @@ WARNING: untranslated string: ids merge classifications = Merging classification
WARNING: untranslated string: ids merge sid files = Merging sid to message files...
WARNING: untranslated string: ids monitor traffic only = Monitor traffic only
WARNING: untranslated string: ids monitored interfaces = Monitored Interfaces
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids no enabled ruleset provider = No enabled ruleset is available. Please activate or add one first.
WARNING: untranslated string: ids no network zone = Please select at least one network zone to be monitored
WARNING: untranslated string: ids provider = Provider
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids provider settings = Provider settings
WARNING: untranslated string: ids remove rule structures = Remove old rule structures...
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids reset provider = Reset provider
WARNING: untranslated string: ids ruleset autoupdate in progress = Ruleset update in progress. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids ruleset is up to date = No update required - The ruleset is up to date.
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: ids show = Show
WARNING: untranslated string: ids subscription code required = The selected ruleset requires a subscription code
WARNING: untranslated string: ids the choosen provider is already in use = The choosen provider is already in use.
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 6863eda0ef..cadfaf5d66 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -1056,7 +1056,22 @@ WARNING: untranslated string: guardian logtarget_file = unknown string
WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids provider eol = (EOL)
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: indirect target selection = Indirect target selection
WARNING: untranslated string: info messages = unknown string
WARNING: untranslated string: mdstat = Mdstat
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 750463098e..a03241bcea 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -1044,8 +1044,23 @@ WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
WARNING: untranslated string: hostile networks total = Total Hostile Networks
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids provider eol = (EOL)
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: import connection = Import a Connection
WARNING: untranslated string: indirect target selection = Indirect target selection
WARNING: untranslated string: invalid endpoint = Invalid Endpoint
diff --git a/doc/language_issues.it b/doc/language_issues.it
index 139bd96574..d5fdcd55e0 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -1155,6 +1155,7 @@ WARNING: untranslated string: hostile networks out = To Hostile Networks
WARNING: untranslated string: hostile networks total = Total Hostile Networks
WARNING: untranslated string: ids add provider = Add provider
WARNING: untranslated string: ids adjust ruleset = Adjust rules and add user defined customizations...
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
WARNING: untranslated string: ids apply = Apply
WARNING: untranslated string: ids apply ruleset changes = The ruleset changes are being applied. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids autoupdates = Automatic updates
@@ -1162,28 +1163,42 @@ WARNING: untranslated string: ids cleanup tmp dir = Cleanup temporary directory.
WARNING: untranslated string: ids could not add provider = Could not add provider
WARNING: untranslated string: ids customize ruleset = Customize ruleset
WARNING: untranslated string: ids download new ruleset = Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
WARNING: untranslated string: ids enable = Enable Intrusion Prevention System
WARNING: untranslated string: ids enable automatic updates = Enable automatic updates
WARNING: untranslated string: ids extract ruleset = Extracting ruleset for provider:
WARNING: untranslated string: ids finished = Finished...
WARNING: untranslated string: ids force ruleset update = Force ruleset update
WARNING: untranslated string: ids hide = Hide
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
WARNING: untranslated string: ids ignored hosts = Whitelisted Hosts
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
WARNING: untranslated string: ids log hits = Total of number of activated rules for
WARNING: untranslated string: ids merge classifications = Merging classifications...
WARNING: untranslated string: ids merge sid files = Merging sid to message files...
WARNING: untranslated string: ids monitor traffic only = Monitor traffic only
WARNING: untranslated string: ids monitored interfaces = Monitored Interfaces
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids no enabled ruleset provider = No enabled ruleset is available. Please activate or add one first.
WARNING: untranslated string: ids no network zone = Please select at least one network zone to be monitored
WARNING: untranslated string: ids provider = Provider
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids provider settings = Provider settings
WARNING: untranslated string: ids remove rule structures = Remove old rule structures...
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids reset provider = Reset provider
WARNING: untranslated string: ids ruleset autoupdate in progress = Ruleset update in progress. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids ruleset is up to date = No update required - The ruleset is up to date.
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: ids show = Show
WARNING: untranslated string: ids subscription code required = The selected ruleset requires a subscription code
WARNING: untranslated string: ids the choosen provider is already in use = The choosen provider is already in use.
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index d489dccff1..72af4fba50 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -1161,6 +1161,7 @@ WARNING: untranslated string: hostile networks out = To Hostile Networks
WARNING: untranslated string: hostile networks total = Total Hostile Networks
WARNING: untranslated string: ids add provider = Add provider
WARNING: untranslated string: ids adjust ruleset = Adjust rules and add user defined customizations...
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
WARNING: untranslated string: ids apply = Apply
WARNING: untranslated string: ids apply ruleset changes = The ruleset changes are being applied. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids autoupdates = Automatic updates
@@ -1168,28 +1169,42 @@ WARNING: untranslated string: ids cleanup tmp dir = Cleanup temporary directory.
WARNING: untranslated string: ids could not add provider = Could not add provider
WARNING: untranslated string: ids customize ruleset = Customize ruleset
WARNING: untranslated string: ids download new ruleset = Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
WARNING: untranslated string: ids enable = Enable Intrusion Prevention System
WARNING: untranslated string: ids enable automatic updates = Enable automatic updates
WARNING: untranslated string: ids extract ruleset = Extracting ruleset for provider:
WARNING: untranslated string: ids finished = Finished...
WARNING: untranslated string: ids force ruleset update = Force ruleset update
WARNING: untranslated string: ids hide = Hide
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
WARNING: untranslated string: ids ignored hosts = Whitelisted Hosts
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
WARNING: untranslated string: ids log hits = Total of number of activated rules for
WARNING: untranslated string: ids merge classifications = Merging classifications...
WARNING: untranslated string: ids merge sid files = Merging sid to message files...
WARNING: untranslated string: ids monitor traffic only = Monitor traffic only
WARNING: untranslated string: ids monitored interfaces = Monitored Interfaces
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids no enabled ruleset provider = No enabled ruleset is available. Please activate or add one first.
WARNING: untranslated string: ids no network zone = Please select at least one network zone to be monitored
WARNING: untranslated string: ids provider = Provider
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids provider settings = Provider settings
WARNING: untranslated string: ids remove rule structures = Remove old rule structures...
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids reset provider = Reset provider
WARNING: untranslated string: ids ruleset autoupdate in progress = Ruleset update in progress. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids ruleset is up to date = No update required - The ruleset is up to date.
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: ids show = Show
WARNING: untranslated string: ids subscription code required = The selected ruleset requires a subscription code
WARNING: untranslated string: ids the choosen provider is already in use = The choosen provider is already in use.
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index d5285e233e..c89dd9966a 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -1280,6 +1280,7 @@ WARNING: untranslated string: hostile networks out = To Hostile Networks
WARNING: untranslated string: hostile networks total = Total Hostile Networks
WARNING: untranslated string: ids add provider = Add provider
WARNING: untranslated string: ids adjust ruleset = Adjust rules and add user defined customizations...
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
WARNING: untranslated string: ids apply = Apply
WARNING: untranslated string: ids apply ruleset changes = The ruleset changes are being applied. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids autoupdates = Automatic updates
@@ -1287,28 +1288,42 @@ WARNING: untranslated string: ids cleanup tmp dir = Cleanup temporary directory.
WARNING: untranslated string: ids could not add provider = Could not add provider
WARNING: untranslated string: ids customize ruleset = Customize ruleset
WARNING: untranslated string: ids download new ruleset = Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
WARNING: untranslated string: ids enable = Enable Intrusion Prevention System
WARNING: untranslated string: ids enable automatic updates = Enable automatic updates
WARNING: untranslated string: ids extract ruleset = Extracting ruleset for provider:
WARNING: untranslated string: ids finished = Finished...
WARNING: untranslated string: ids force ruleset update = Force ruleset update
WARNING: untranslated string: ids hide = Hide
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
WARNING: untranslated string: ids ignored hosts = Whitelisted Hosts
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
WARNING: untranslated string: ids log hits = Total of number of activated rules for
WARNING: untranslated string: ids merge classifications = Merging classifications...
WARNING: untranslated string: ids merge sid files = Merging sid to message files...
WARNING: untranslated string: ids monitor traffic only = Monitor traffic only
WARNING: untranslated string: ids monitored interfaces = Monitored Interfaces
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids no enabled ruleset provider = No enabled ruleset is available. Please activate or add one first.
WARNING: untranslated string: ids no network zone = Please select at least one network zone to be monitored
WARNING: untranslated string: ids provider = Provider
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids provider settings = Provider settings
WARNING: untranslated string: ids remove rule structures = Remove old rule structures...
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids reset provider = Reset provider
WARNING: untranslated string: ids ruleset autoupdate in progress = Ruleset update in progress. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids ruleset is up to date = No update required - The ruleset is up to date.
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: ids show = Show
WARNING: untranslated string: ids subscription code required = The selected ruleset requires a subscription code
WARNING: untranslated string: ids the choosen provider is already in use = The choosen provider is already in use.
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index a2f6929a6c..2377115ab3 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -1278,6 +1278,7 @@ WARNING: untranslated string: hostile networks out = To Hostile Networks
WARNING: untranslated string: hostile networks total = Total Hostile Networks
WARNING: untranslated string: ids add provider = Add provider
WARNING: untranslated string: ids adjust ruleset = Adjust rules and add user defined customizations...
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
WARNING: untranslated string: ids apply = Apply
WARNING: untranslated string: ids apply ruleset changes = The ruleset changes are being applied. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids autoupdates = Automatic updates
@@ -1285,28 +1286,42 @@ WARNING: untranslated string: ids cleanup tmp dir = Cleanup temporary directory.
WARNING: untranslated string: ids could not add provider = Could not add provider
WARNING: untranslated string: ids customize ruleset = Customize ruleset
WARNING: untranslated string: ids download new ruleset = Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
WARNING: untranslated string: ids enable = Enable Intrusion Prevention System
WARNING: untranslated string: ids enable automatic updates = Enable automatic updates
WARNING: untranslated string: ids extract ruleset = Extracting ruleset for provider:
WARNING: untranslated string: ids finished = Finished...
WARNING: untranslated string: ids force ruleset update = Force ruleset update
WARNING: untranslated string: ids hide = Hide
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
WARNING: untranslated string: ids ignored hosts = Whitelisted Hosts
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
WARNING: untranslated string: ids log hits = Total of number of activated rules for
WARNING: untranslated string: ids merge classifications = Merging classifications...
WARNING: untranslated string: ids merge sid files = Merging sid to message files...
WARNING: untranslated string: ids monitor traffic only = Monitor traffic only
WARNING: untranslated string: ids monitored interfaces = Monitored Interfaces
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids no enabled ruleset provider = No enabled ruleset is available. Please activate or add one first.
WARNING: untranslated string: ids no network zone = Please select at least one network zone to be monitored
WARNING: untranslated string: ids provider = Provider
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids provider settings = Provider settings
WARNING: untranslated string: ids remove rule structures = Remove old rule structures...
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids reset provider = Reset provider
WARNING: untranslated string: ids ruleset autoupdate in progress = Ruleset update in progress. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids ruleset is up to date = No update required - The ruleset is up to date.
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: ids show = Show
WARNING: untranslated string: ids subscription code required = The selected ruleset requires a subscription code
WARNING: untranslated string: ids the choosen provider is already in use = The choosen provider is already in use.
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index 2137b2a042..dfabd029eb 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -1099,6 +1099,7 @@ WARNING: untranslated string: hostile networks out = To Hostile Networks
WARNING: untranslated string: hostile networks total = Total Hostile Networks
WARNING: untranslated string: ids add provider = Add provider
WARNING: untranslated string: ids adjust ruleset = Adjust rules and add user defined customizations...
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
WARNING: untranslated string: ids apply = Apply
WARNING: untranslated string: ids apply ruleset changes = The ruleset changes are being applied. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids autoupdates = Automatic updates
@@ -1106,28 +1107,42 @@ WARNING: untranslated string: ids cleanup tmp dir = Cleanup temporary directory.
WARNING: untranslated string: ids could not add provider = Could not add provider
WARNING: untranslated string: ids customize ruleset = Customize ruleset
WARNING: untranslated string: ids download new ruleset = Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
WARNING: untranslated string: ids enable = Enable Intrusion Prevention System
WARNING: untranslated string: ids enable automatic updates = Enable automatic updates
WARNING: untranslated string: ids extract ruleset = Extracting ruleset for provider:
WARNING: untranslated string: ids finished = Finished...
WARNING: untranslated string: ids force ruleset update = Force ruleset update
WARNING: untranslated string: ids hide = Hide
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
WARNING: untranslated string: ids ignored hosts = Whitelisted Hosts
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
WARNING: untranslated string: ids log hits = Total of number of activated rules for
WARNING: untranslated string: ids merge classifications = Merging classifications...
WARNING: untranslated string: ids merge sid files = Merging sid to message files...
WARNING: untranslated string: ids monitor traffic only = Monitor traffic only
WARNING: untranslated string: ids monitored interfaces = Monitored Interfaces
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
WARNING: untranslated string: ids no enabled ruleset provider = No enabled ruleset is available. Please activate or add one first.
WARNING: untranslated string: ids no network zone = Please select at least one network zone to be monitored
WARNING: untranslated string: ids provider = Provider
WARNING: untranslated string: ids provider eol = (EOL)
WARNING: untranslated string: ids provider settings = Provider settings
WARNING: untranslated string: ids remove rule structures = Remove old rule structures...
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
WARNING: untranslated string: ids reset provider = Reset provider
WARNING: untranslated string: ids ruleset autoupdate in progress = Ruleset update in progress. Please wait until all operations have completed successfully...
WARNING: untranslated string: ids ruleset is up to date = No update required - The ruleset is up to date.
WARNING: untranslated string: ids rulesets = Rulesets
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: ids show = Show
WARNING: untranslated string: ids subscription code required = The selected ruleset requires a subscription code
WARNING: untranslated string: ids the choosen provider is already in use = The choosen provider is already in use.
diff --git a/doc/language_issues.tw b/doc/language_issues.tw
index 53f97d670a..2745a25baf 100644
--- a/doc/language_issues.tw
+++ b/doc/language_issues.tw
@@ -1065,6 +1065,21 @@ WARNING: untranslated string: guardian logtarget_file = unknown string
WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: indirect target selection = Indirect target selection
WARNING: untranslated string: info messages = unknown string
WARNING: untranslated string: max bandwidth = Maximum bandwidth
diff --git a/doc/language_issues.zh b/doc/language_issues.zh
index 53f97d670a..2745a25baf 100644
--- a/doc/language_issues.zh
+++ b/doc/language_issues.zh
@@ -1065,6 +1065,21 @@ WARNING: untranslated string: guardian logtarget_file = unknown string
WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
+WARNING: untranslated string: ids all including informational = All, Including Informational Alerts
+WARNING: untranslated string: ids email alert severity = Severity
+WARNING: untranslated string: ids email alerts = Email Alerts
+WARNING: untranslated string: ids email recipients = Recipients
+WARNING: untranslated string: ids email sender = Sender Address
+WARNING: untranslated string: ids high and medium severity = High and Medium Severity
+WARNING: untranslated string: ids high severity only = High Severity Only
+WARNING: untranslated string: ids high, medium and low severity = High, Medium, and Low Severity
+WARNING: untranslated string: ids invalid mail address = Is or contains an invalid mail address.
+WARNING: untranslated string: ids no email recipients = No email recipients given
+WARNING: untranslated string: ids no email sender = No sender email address specified
+WARNING: untranslated string: ids reports daily = Send a daily report
+WARNING: untranslated string: ids reports monthly = Send a monthly report
+WARNING: untranslated string: ids reports weekly = Send a weekly report
+WARNING: untranslated string: ids send email on alert = Send email on alert
WARNING: untranslated string: indirect target selection = Indirect target selection
WARNING: untranslated string: info messages = unknown string
WARNING: untranslated string: max bandwidth = Maximum bandwidth
diff --git a/doc/language_missings b/doc/language_missings
index 80b0fbb038..03c286f5a2 100644
--- a/doc/language_missings
+++ b/doc/language_missings
@@ -156,7 +156,22 @@
< AES-256-GCM
< CHACHA20-POLY1305
< dns servers
+< ids all including informational
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
+< ids invalid mail address
+< ids no email recipients
+< ids no email sender
< ids provider eol
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
+< ids send email on alert
< indirect target selection
< mdstat
< offloaded
@@ -207,8 +222,23 @@
< g.dtm
< g.lite
< hostile networks total
+< ids all including informational
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
+< ids invalid mail address
+< ids no email recipients
+< ids no email sender
< ids provider eol
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
< ids rulesets
+< ids send email on alert
< ids unsupported provider
< import connection
< indirect target selection
@@ -552,6 +582,7 @@
< hostile networks total
< ids add provider
< ids adjust ruleset
+< ids all including informational
< ids apply
< ids apply ruleset changes
< ids automatic rules update
@@ -560,29 +591,43 @@
< ids could not add provider
< ids customize ruleset
< ids download new ruleset
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
< ids enable
< ids enable automatic updates
< ids extract ruleset
< ids finished
< ids force ruleset update
< ids hide
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
< ids ignored hosts
+< ids invalid mail address
< ids log hits
< ids merge classifications
< ids merge sid files
< ids monitored interfaces
< ids monitor traffic only
+< ids no email recipients
+< ids no email sender
< ids no enabled ruleset provider
< ids no network zone
< ids provider
< ids provider eol
< ids provider settings
< ids remove rule structures
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
< ids reset provider
< ids ruleset autoupdate in progress
< ids ruleset is up to date
< ids rulesets
< ids ruleset settings
+< ids send email on alert
< ids show
< ids subscription code required
< ids the choosen provider is already in use
@@ -1196,6 +1241,7 @@
< hostile networks total
< ids add provider
< ids adjust ruleset
+< ids all including informational
< ids apply
< ids apply ruleset changes
< ids automatic rules update
@@ -1204,29 +1250,43 @@
< ids could not add provider
< ids customize ruleset
< ids download new ruleset
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
< ids enable
< ids enable automatic updates
< ids extract ruleset
< ids finished
< ids force ruleset update
< ids hide
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
< ids ignored hosts
+< ids invalid mail address
< ids log hits
< ids merge classifications
< ids merge sid files
< ids monitored interfaces
< ids monitor traffic only
+< ids no email recipients
+< ids no email sender
< ids no enabled ruleset provider
< ids no network zone
< ids provider
< ids provider eol
< ids provider settings
< ids remove rule structures
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
< ids reset provider
< ids ruleset autoupdate in progress
< ids ruleset is up to date
< ids rulesets
< ids ruleset settings
+< ids send email on alert
< ids show
< ids subscription code required
< ids the choosen provider is already in use
@@ -2142,6 +2202,7 @@
< hostile networks total
< ids add provider
< ids adjust ruleset
+< ids all including informational
< ids apply
< ids apply ruleset changes
< ids automatic rules update
@@ -2150,29 +2211,43 @@
< ids could not add provider
< ids customize ruleset
< ids download new ruleset
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
< ids enable
< ids enable automatic updates
< ids extract ruleset
< ids finished
< ids force ruleset update
< ids hide
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
< ids ignored hosts
+< ids invalid mail address
< ids log hits
< ids merge classifications
< ids merge sid files
< ids monitored interfaces
< ids monitor traffic only
+< ids no email recipients
+< ids no email sender
< ids no enabled ruleset provider
< ids no network zone
< ids provider
< ids provider eol
< ids provider settings
< ids remove rule structures
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
< ids reset provider
< ids ruleset autoupdate in progress
< ids ruleset is up to date
< ids rulesets
< ids ruleset settings
+< ids send email on alert
< ids show
< ids subscription code required
< ids the choosen provider is already in use
@@ -3256,6 +3331,7 @@
< hour-graph
< ids add provider
< ids adjust ruleset
+< ids all including informational
< ids apply
< ids apply ruleset changes
< ids automatic rules update
@@ -3264,29 +3340,43 @@
< ids could not add provider
< ids customize ruleset
< ids download new ruleset
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
< ids enable
< ids enable automatic updates
< ids extract ruleset
< ids finished
< ids force ruleset update
< ids hide
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
< ids ignored hosts
+< ids invalid mail address
< ids log hits
< ids merge classifications
< ids merge sid files
< ids monitored interfaces
< ids monitor traffic only
+< ids no email recipients
+< ids no email sender
< ids no enabled ruleset provider
< ids no network zone
< ids provider
< ids provider eol
< ids provider settings
< ids remove rule structures
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
< ids reset provider
< ids ruleset autoupdate in progress
< ids ruleset is up to date
< ids rulesets
< ids ruleset settings
+< ids send email on alert
< ids show
< ids subscription code required
< ids the choosen provider is already in use
@@ -3964,6 +4054,7 @@
< hostile networks total
< ids add provider
< ids adjust ruleset
+< ids all including informational
< ids apply
< ids apply ruleset changes
< ids automatic rules update
@@ -3972,29 +4063,43 @@
< ids could not add provider
< ids customize ruleset
< ids download new ruleset
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
< ids enable
< ids enable automatic updates
< ids extract ruleset
< ids finished
< ids force ruleset update
< ids hide
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
< ids ignored hosts
+< ids invalid mail address
< ids log hits
< ids merge classifications
< ids merge sid files
< ids monitored interfaces
< ids monitor traffic only
+< ids no email recipients
+< ids no email sender
< ids no enabled ruleset provider
< ids no network zone
< ids provider
< ids provider eol
< ids provider settings
< ids remove rule structures
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
< ids reset provider
< ids ruleset autoupdate in progress
< ids ruleset is up to date
< ids rulesets
< ids ruleset settings
+< ids send email on alert
< ids show
< ids subscription code required
< ids the choosen provider is already in use
@@ -4295,6 +4400,21 @@
< CHACHA20-POLY1305
< dns servers
< guaranteed bandwidth
+< ids all including informational
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
+< ids invalid mail address
+< ids no email recipients
+< ids no email sender
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
+< ids send email on alert
< indirect target selection
< max bandwidth
< offloaded
@@ -4343,6 +4463,21 @@
< CHACHA20-POLY1305
< dns servers
< guaranteed bandwidth
+< ids all including informational
+< ids email alerts
+< ids email alert severity
+< ids email recipients
+< ids email sender
+< ids high and medium severity
+< ids high, medium and low severity
+< ids high severity only
+< ids invalid mail address
+< ids no email recipients
+< ids no email sender
+< ids reports daily
+< ids reports monthly
+< ids reports weekly
+< ids send email on alert
< indirect target selection
< max bandwidth
< offloaded
diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi
index 960e72ef1c..30a1613c72 100644
--- a/html/cgi-bin/ids.cgi
+++ b/html/cgi-bin/ids.cgi
@@ -574,6 +574,30 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'ids apply'}) {
}
}
+ # Check if the e-mail feature should be used.
+ if (($cgiparams{'ENABLE_EMAIL'} eq "on") || ($cgiparams{'ENABLE_REPORT_DAILY'} eq "on") ||
+ ($cgiparams{'ENABLE_REPORT_WEEKLY'} eq "on") || ($cgiparams{'ENABLE_REPORT_MONTLY'} eq "on")) {
+ # Check if a sender mail address has been provided.
+ unless($cgiparams{'EMAIL_SENDER'}) {
+ $errormessage = $Lang::tr{'ids no email sender'};
+ }
+
+ # Check if the given sender mail address is valid.
+ if (&_validate_mail_address($cgiparams{'EMAIL_SENDER'})) {
+ $errormessage = "$cgiparams{'EMAIL_SENDER'} - $Lang::tr{'ids invalid mail address'}";
+ }
+
+ # Check if at least one mail recipient has been given.
+ unless($cgiparams{'EMAIL_RECIPIENTS'}) {
+ $errormessage = $Lang::tr{'ids no email recipients'};
+ }
+
+ # Check if the given recipient mail address or addresses are valid.
+ if (&_validate_mail_address($cgiparams{'EMAIL_RECIPIENTS'})) {
+ $errormessage = "$cgiparams{'EMAIL_RECIPIENTS'} - $Lang::tr{'ids invalid mail address'}";
+ }
+ }
+
# Go on if there are no error messages.
if (!$errormessage) {
# Store settings into settings file.
@@ -589,6 +613,9 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'ids apply'}) {
# Generate file to store the HTTP ports.
&IDS::generate_http_ports_file();
+ # Generate report generator config file.
+ &IDS::generate_report_generator_config();
+
# Check if the IDS currently is running.
if(&IDS::ids_is_running()) {
# Check if ENABLE_IDS is set to on.
@@ -1006,6 +1033,37 @@ sub show_mainpage() {
$checked{'ENABLE_IDS'}{'off'} = '';
$checked{'ENABLE_IDS'}{'on'} = '';
$checked{'ENABLE_IDS'}{$idssettings{'ENABLE_IDS'}} = "checked='checked'";
+ $checked{'ENABLE_EMAIL'}{'off'} = '';
+ $checked{'ENABLE_EMAIL'}{'on'} = '';
+ $checked{'ENABLE_EMAIL'}{$idssettings{'ENABLE_EMAIL'}} = "checked='checked'";
+
+ $selected{'EMAIL_ALERT_SEVERITY'}{$idssettings{'EMAIL_ALERT_SEVERITY'}} = "selected";
+
+ $checked{'ENABLE_REPORT_DAILY'}{'off'} = '';
+ $checked{'ENABLE_REPORT_DAILY'}{'on'} = '';
+ $checked{'ENABLE_REPORT_DAILY'}{$idssettings{'ENABLE_REPORT_DAILY'}} = "checked='checked'";
+ $checked{'ENABLE_REPORT_WEEKLY'}{'off'} = '';
+ $checked{'ENABLE_REPORT_WEEKLY'}{'on'} = '';
+ $checked{'ENABLE_REPORT_WEEKLY'}{$idssettings{'ENABLE_REPORT_WEEKLY'}} = "checked='checked'";
+ $checked{'ENABLE_REPORT_MONTHLY'}{'off'} = '';
+ $checked{'ENABLE_REPORT_MONTHLY'}{'on'} = '';
+ $checked{'ENABLE_REPORT_MONTHLY'}{$idssettings{'ENABLE_REPORT_MONTHLY'}} = "checked='checked'";
+
+ # Set E-Mail settings from settings hash.
+ my $email_sender = $idssettings{'EMAIL_SENDER'};
+ my $email_recipients = $idssettings{'EMAIL_RECIPIENTS'};
+
+ # Set form values to cgiparams state in error case.
+ if ($errormessage) {
+ $checked{'ENABLE_IDS'}{$cgiparams{'ENABLE_IDS'}} = "checked='checked'";
+ $checked{'ENABLE_EMAIL'}{$cgiparams{'ENABLE_EMAIL'}} = "checked='checked'";
+ $checked{'ENABLE_REPORT_DAILY'}{$cgiparams{'ENABLE_REPORT_DAILY'}} = "checked='checked'";
+ $checked{'ENABLE_REPORT_WEEKLY'}{$cgiparams{'ENABLE_REPORT_WEEKLY'}} = "checked='checked'";
+ $checked{'ENABLE_REPORT_MONTHLY'}{$cgiparams{'ENABLE_REPORT_MONTHLY'}} = "checked='checked'";
+
+ $email_sender = $cgiparams{'EMAIL_SENDER'};
+ $email_recipients = $cgiparams{'EMAIL_RECIPIENTS'};
+ }
# Draw current state of the IDS
&Header::opensection();
@@ -1024,26 +1082,23 @@ print <<END
<br>
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
- <table width='100%' border='0'>
+ <table class='form'>
<tr>
- <td colspan='$num_zones'>
- <input type='checkbox' name='ENABLE_IDS' $checked{'ENABLE_IDS'}{'on'}> $Lang::tr{'ids enable'}
+ <td>
+ $Lang::tr{'ids enable'}
</td>
- </tr>
- <tr> <!-- empty row for spacing -->
- <td colspan='$num_zones'>
-
+ <td>
+ <input type='checkbox' name='ENABLE_IDS' $checked{'ENABLE_IDS'}{'on'}>
</td>
</tr>
+ </table>
- <tr>
- <td colspan='$num_zones'>
- <b>$Lang::tr{'ids monitored interfaces'}</b>
- </td>
- </tr>
+ <h6>
+ $Lang::tr{'ids monitored interfaces'}
+ </h6>
- <tr>
+ <table class="form">
END
;
@@ -1068,27 +1123,135 @@ END
$checked_input = "checked = 'checked'";
}
+ # Set the checkbox status to the cgiparams state in error case.
+ if ($errormessage) {
+ $checked_input = "checked = 'checked'" if ($cgiparams{"ENABLE_IDS_$zone_upper"} eq "on");
+ }
+
print <<END;
- <td>
- <label>
+ <tr>
+ <td>
+ <font color='$colourhash{$zone}'> $Lang::tr{$zone_name}</font>
+ </td>
+
+ <td>
<input type='checkbox' name='ENABLE_IDS_$zone_upper' $checked_input>
- $Lang::tr{'enabled on'}<font color='$colourhash{$zone}'> $Lang::tr{$zone_name}</font>
- </label>
- </td>
+ </td>
+ </tr>
END
}
print <<END
+ </table>
+
+ <h6>
+ $Lang::tr{'ids email alerts'}
+ </h6>
+
+ <table class="form">
+ <tr>
+ <td>
+ <label for='EMAIL_SENDER'>$Lang::tr{'ids email sender'}</label>
+ </td>
+
+ <td>
+ <input type="text" name="EMAIL_SENDER" value="$email_sender">
+ <td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for='EMAIL_RECIPIENTS'>$Lang::tr{'ids email recipients'}</label>
+ </td>
+
+ <td>
+ <input type="text" name="EMAIL_RECIPIENTS" value="$email_recipients">
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2"> </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="ENABLE_EMAIL">
+ $Lang::tr{'ids send email on alert'}
+ </label>
+ </td>
+
+ <td>
+ <input type='checkbox' name='ENABLE_EMAIL' id="ENABLED_EMAIL" $checked{'ENABLE_EMAIL'}{'on'}>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="EMAIL_ALERT_SEVERITY">
+ $Lang::tr{'ids email alert severity'}
+ </label>
+ </td>
+
+ <td>
+ <select name="EMAIL_ALERT_SEVERITY">
+ <option value="4" $selected{'EMAIL_ALERT_SEVERITY'}{'4'}>
+ $Lang::tr{'ids all including informational'}
+ </option>
+ <option value="3" $selected{'EMAIL_ALERT_SEVERITY'}{'3'}>
+ $Lang::tr{'ids high, medium and low severity'}
+ </option>
+ <option value="2" $selected{'EMAIL_ALERT_SEVERITY'}{'2'}>
+ $Lang::tr{'ids high and medium severity'}
+ </option>
+ <option value="1" $selected{'EMAIL_ALERT_SEVERITY'}{'1'}>
+ $Lang::tr{'ids high severity only'}
+ </option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2"> </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="ENABLE_REPORT_DAILY">
+ $Lang::tr{'ids reports daily'}
+ </label>
+ </td>
+
+ <td>
+ <input type='checkbox' name='ENABLE_REPORT_DAILY' id="ENABLE_REPORT_DAILY" $checked{'ENABLE_REPORT_DAILY'}{'on'}>
+ </td>
</tr>
- <tr> <!-- empty row for spacing -->
- <td colspan='$num_zones'>
-
+ <tr>
+ <td>
+ <label for="ENABLE_REPORT_WEEKLY">
+ $Lang::tr{'ids reports weekly'}
+ </label>
+ </td>
+
+ <td>
+ <input type='checkbox' name='ENABLE_REPORT_WEEKLY' id="ENABLE_REPORT_WEEKLY" $checked{'ENABLE_REPORT_WEEKLY'}{'on'}>
</td>
</tr>
<tr>
- <td colspan='$num_zones' align='right'>
+ <td>
+ <label for="ENABLE_REPORT_MONTHLY">
+ $Lang::tr{'ids reports monthly'}
+ </label>
+ </td>
+
+ <td>
+ <input type='checkbox' name='ENABLE_REPORT_MONTHLY' id="ENABLE_REPORT_MONTHLY" $checked{'ENABLE_REPORT_MONTHLY'}{'on'}>
+ </td>
+ </tr>
+
+ <tr class="action">
+ <td colspan="2">
<input type='submit' name='IDS' value='$Lang::tr{'save'}' />
</td>
</tr>
@@ -2050,3 +2213,28 @@ sub _rulefile_to_category($) {
# Return the converted filename.
return $category;
}
+
+#
+## Private function to validate if a given string contains one or
+## more valid mail addresses.
+#
+sub _validate_mail_address($) {
+ my ($address) = @_;
+
+ # Temporary array, which holds the single mail addresses.
+ my @temp;
+
+ # Split the string of mail addresses into single pieces and
+ # store them into the temporary array.
+ @temp = split(/\,/, $address);
+
+ # Loop through the array of mail addresses.
+ foreach my $addr (@temp) {
+ # If the address contains a '@' with at least one character before and after,
+ # we consider it valid.
+ return 1 unless ($address =~ m/.@./);
+ }
+
+ # Return nothing if the address is valid.
+ return;
+}
diff --git a/html/html/themes/ipfire/include/fonts/Prompt-Bold.ttf b/html/html/themes/ipfire/include/fonts/Prompt-Bold.ttf
deleted file mode 100644
index 6cdd89b451..0000000000
Binary files a/html/html/themes/ipfire/include/fonts/Prompt-Bold.ttf and /dev/null differ
diff --git a/html/html/themes/ipfire/include/fonts/Prompt-Medium.ttf b/html/html/themes/ipfire/include/fonts/Prompt-Medium.ttf
deleted file mode 100644
index adf72c9f63..0000000000
Binary files a/html/html/themes/ipfire/include/fonts/Prompt-Medium.ttf and /dev/null differ
diff --git a/html/html/themes/ipfire/include/fonts/Prompt-Regular.ttf b/html/html/themes/ipfire/include/fonts/Prompt-Regular.ttf
deleted file mode 100644
index 2a736dbba7..0000000000
Binary files a/html/html/themes/ipfire/include/fonts/Prompt-Regular.ttf and /dev/null differ
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index c2a6c30433..b997ff9a73 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -982,7 +982,6 @@
'enable smt' => 'Simultaneous Multi-Threading (SMT) einschalten',
'enable wildcards' => 'Wildcards erlauben:',
'enabled' => 'Aktiviert:',
-'enabled on' => 'Aktiviert auf',
'enabledtitle' => 'Aktiviert',
'encapsulation' => 'Kapselung',
'encrypted' => 'Verschlüsselt',
@@ -1384,6 +1383,7 @@
'idle timeout not set' => 'Leerlaufwartezeit nicht angegeben.',
'ids add provider' => 'Provider hinzufügen',
'ids adjust ruleset' => 'Regelset anpassen und Benutzermodifikationen übernehmen...',
+'ids all including informational' => 'Alle, inklusive Informationsalarmen',
'ids apply' => 'Übernehmen',
'ids apply ruleset changes' => 'Regeländerungen werden übernommen. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
'ids autoupdates' => 'Automatische Updates',
@@ -1391,13 +1391,21 @@
'ids could not add provider' => 'Provider konnte nicht hinzugefügt werden',
'ids customize ruleset' => 'Regelset anpassen',
'ids download new ruleset' => 'Das neue Regelset wird heruntergeladen und entpackt. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
+'ids email alert severity' => 'Schweregrad',
+'ids email alerts' => 'E-Mail-Benachrichtigungen',
+'ids email recipients' => 'Empfänger-Addressen',
+'ids email sender' => 'Sender-Addresse',
'ids enable' => 'Einbruchsverhinderungssystem aktivieren',
'ids enable automatic updates' => 'Automatische Updates aktivieren',
'ids extract ruleset' => 'Entpacke Regelset von:',
'ids finished' => 'Fertig...',
'ids force ruleset update' => 'Regelset jetzt aktualisieren',
'ids hide' => 'Verstecken',
+'ids high and medium severity' => 'Hoher and mittlerer Schweregrad',
+'ids high severity only' => 'Nur hoher Schweregrad',
+'ids high, medium and low severity' => 'Hoher, mittlerer, und niedriger Schweregrad',
'ids ignored hosts' => 'Ausnahmeliste',
+'ids invalid mail address' => 'Ist oder enthält eine ungültige E-Mail Addresse',
'ids log hits' => 'Gesamtanzahl der Regeltreffer für',
'ids log viewer' => 'Protokoll des Einbruchsverhinderungssystems',
'ids logs' => 'IPS-Protokolldateien',
@@ -1405,18 +1413,24 @@
'ids merge sid files' => 'Sid-to-message Dateien zusammenführen...',
'ids monitor traffic only' => 'Netzwerkpakete nur überprüfen (nicht verwerfen)',
'ids monitored interfaces' => 'Überwachte Netzwerkzonen',
+'ids no email recipients' => 'Keine Empfänger-Addresse angegeben',
+'ids no email sender' => 'Keine Sender-Addresse angegeben',
'ids no enabled ruleset provider' => 'Es ist kein aktivierter Provider verfügbar. Bitte aktivieren Sie einen oder fügen Sie einen Provider hinzu.',
'ids no network zone' => 'Bitte wählen Sie mindestens eine zu überwachende Netzwerkzone aus',
'ids oinkcode required' => 'Für den ausgewählten Regelsatz wird ein Abonnement oder ein Oinkcode benötigt',
'ids provider' => 'Regelset-Anbieter',
'ids provider settings' => 'Regelset-Anbieter-Einstellungen',
'ids remove rule structures' => 'Entferne alte Regelstrukturen...',
+'ids reports daily' => 'Einen täglichen Bericht schicken',
+'ids reports monthly' => 'Einen monatlichen Bericht schicken',
+'ids reports weekly' => 'Einen wöchentlichen Bericht schicken',
'ids reset provider' => 'Providereinstellungen zurücksetzen',
'ids rules update' => 'Regelsatz',
'ids ruleset autoupdate in progress' => 'Der Regelsatz wird gerade aktualisiert. Bitte warten Sie, bis dieser Vorgang erfolgreich beendet wurde...',
'ids ruleset is up to date' => 'Regelset ist aktuell - Keine Aktualisierung notwendig.',
'ids ruleset settings' => 'Regelsatzeinstellungen',
'ids rulesets' => 'Regelsätze',
+'ids send email on alert' => 'Alarme per Email melden',
'ids show' => 'Anzeigen',
'ids the choosen provider is already in use' => 'Der gewhählte Provider wird bereits verwendet.',
'ids unable to download the ruleset' => 'Das Regelset konnte nicht heruntergeladen werden.',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 3450fe6d78..35e9da184c 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -1032,7 +1032,6 @@
'enable smt' => 'Enable Simultaneous Multi-Threading (SMT)',
'enable wildcards' => 'Enable wildcards:',
'enabled' => 'Enabled:',
-'enabled on' => 'Enabled on',
'enabledtitle' => 'Enabled',
'encapsulation' => 'Encapsulation',
'encrypted' => 'Encrypted',
@@ -1441,6 +1440,7 @@
'idle timeout not set' => 'Idle timeout not set.',
'ids add provider' => 'Add provider',
'ids adjust ruleset' => 'Adjust rules and add user defined customizations...',
+'ids all including informational' => 'All, Including Informational Alerts',
'ids apply' => 'Apply',
'ids apply ruleset changes' => 'The ruleset changes are being applied. Please wait until all operations have completed successfully...',
'ids automatic rules update' => 'Automatic Rule Update',
@@ -1449,13 +1449,21 @@
'ids could not add provider' => 'Could not add provider',
'ids customize ruleset' => 'Customize ruleset',
'ids download new ruleset' => 'Downloading and unpacking new ruleset. Please wait until all operations have completed successfully...',
+'ids email alert severity' => 'Severity',
+'ids email alerts' => 'Email Alerts',
+'ids email recipients' => 'Recipients',
+'ids email sender' => 'Sender Address',
'ids enable' => 'Enable Intrusion Prevention System',
'ids enable automatic updates' => 'Enable automatic updates',
'ids extract ruleset' => 'Extracting ruleset for provider:',
'ids finished' => 'Finished...',
'ids force ruleset update' => 'Force ruleset update',
'ids hide' => 'Hide',
+'ids high and medium severity' => 'High and Medium Severity',
+'ids high severity only' => 'High Severity Only',
+'ids high, medium and low severity' => 'High, Medium, and Low Severity',
'ids ignored hosts' => 'Whitelisted Hosts',
+'ids invalid mail address' => 'Is or contains an invalid mail address.',
'ids log hits' => 'Total of number of activated rules for',
'ids log viewer' => 'IPS Log Viewer',
'ids logs' => 'IPS Logs',
@@ -1463,18 +1471,24 @@
'ids merge sid files' => 'Merging sid to message files...',
'ids monitor traffic only' => 'Monitor traffic only',
'ids monitored interfaces' => 'Monitored Interfaces',
+'ids no email recipients' => 'No email recipients given',
+'ids no email sender' => 'No sender email address specified',
'ids no enabled ruleset provider' => 'No enabled ruleset is available. Please activate or add one first.',
'ids no network zone' => 'Please select at least one network zone to be monitored',
'ids provider' => 'Provider',
'ids provider eol' => '(EOL)',
'ids provider settings' => 'Provider settings',
'ids remove rule structures' => 'Remove old rule structures...',
+'ids reports daily' => 'Send a daily report',
+'ids reports monthly' => 'Send a monthly report',
+'ids reports weekly' => 'Send a weekly report',
'ids reset provider' => 'Reset provider',
'ids rules update' => 'Ruleset',
'ids ruleset autoupdate in progress' => 'Ruleset update in progress. Please wait until all operations have completed successfully...',
'ids ruleset is up to date' => 'No update required - The ruleset is up to date.',
'ids ruleset settings' => 'Ruleset Settings',
'ids rulesets' => 'Rulesets',
+'ids send email on alert' => 'Send email on alert',
'ids show' => 'Show',
'ids subscription code required' => 'The selected ruleset requires a subscription code',
'ids the choosen provider is already in use' => 'The choosen provider is already in use.',
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
index 466bf75338..bd19932c5a 100644
--- a/langs/es/cgi-bin/es.pl
+++ b/langs/es/cgi-bin/es.pl
@@ -1030,7 +1030,6 @@
'enable smt' => 'Habilitar subprocesos múltiples simultáneos (SMT)',
'enable wildcards' => 'Activar comodines',
'enabled' => 'Activado:',
-'enabled on' => 'Activado en',
'enabledtitle' => 'Activado',
'encapsulation' => 'Encapsulamiento',
'encrypted' => 'Encriptado',
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
index b208ff1ae4..7949b3e856 100644
--- a/langs/fr/cgi-bin/fr.pl
+++ b/langs/fr/cgi-bin/fr.pl
@@ -1028,7 +1028,6 @@
'enable smt' => 'Activer le partage d\'un cœur de processeur (SMT)',
'enable wildcards' => 'Activer les cartes d\'invitations :',
'enabled' => 'Activé :',
-'enabled on' => 'Activé sur',
'enabledtitle' => 'Activé',
'encapsulation' => 'Encapsulation',
'encrypted' => 'Chiffré',
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
index ad9a4582dc..842d67950f 100644
--- a/langs/it/cgi-bin/it.pl
+++ b/langs/it/cgi-bin/it.pl
@@ -843,7 +843,6 @@
'enable javascript' => 'Enable javascript',
'enable wildcards' => 'Enable wildcards:',
'enabled' => 'abilitato:',
-'enabled on' => 'abilitato su',
'enabledtitle' => 'abilitato',
'encapsulation' => 'Encapsulation',
'encrypted' => 'Encrypted',
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
index 840c432d71..975f98e598 100644
--- a/langs/nl/cgi-bin/nl.pl
+++ b/langs/nl/cgi-bin/nl.pl
@@ -839,7 +839,6 @@
'enable javascript' => 'Inschakelen javascript',
'enable wildcards' => 'Inschakelen wildcards:',
'enabled' => 'Ingeschakeld:',
-'enabled on' => 'Ingeschakeld op',
'enabledtitle' => 'Ingeschakeld',
'encapsulation' => 'Inkapseling',
'encrypted' => 'Gecodeerd',
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
index c6eb76fe38..d21d9b241c 100644
--- a/langs/pl/cgi-bin/pl.pl
+++ b/langs/pl/cgi-bin/pl.pl
@@ -751,7 +751,6 @@
'enable javascript' => 'Włącz javascript',
'enable wildcards' => 'Enable wildcards:',
'enabled' => 'Włączony:',
-'enabled on' => 'Włączony na',
'enabledtitle' => 'Włączony',
'encapsulation' => 'Encapsulacja',
'encrypted' => 'Encrypted',
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
index 6d915586b5..4fa316e2c2 100644
--- a/langs/ru/cgi-bin/ru.pl
+++ b/langs/ru/cgi-bin/ru.pl
@@ -747,7 +747,6 @@
'enable javascript' => 'Разрешить javascript',
'enable wildcards' => 'Разрешить wildcards:',
'enabled' => 'Включено:',
-'enabled on' => 'Разрешено на',
'enabledtitle' => 'Включено',
'encapsulation' => 'Инкапсуляция',
'encrypted' => 'Зашифровано',
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
index c352cd7571..946c81db59 100644
--- a/langs/tr/cgi-bin/tr.pl
+++ b/langs/tr/cgi-bin/tr.pl
@@ -936,7 +936,6 @@
'enable javascript' => 'Javascripti aktifleştir',
'enable wildcards' => 'Joker karakterleri aktifleştir:',
'enabled' => 'Aktif:',
-'enabled on' => 'Aktif olacağı yer',
'enabledtitle' => 'Aktif',
'encapsulation' => 'Kapsülleme',
'encrypted' => 'Şifre',
diff --git a/langs/tw/cgi-bin/tw.pl b/langs/tw/cgi-bin/tw.pl
index 90fa81af05..9e0e609157 100644
--- a/langs/tw/cgi-bin/tw.pl
+++ b/langs/tw/cgi-bin/tw.pl
@@ -1030,7 +1030,6 @@
'enable smt' => '啟用同時多線程(SMT)',
'enable wildcards' => '啟用通配符:',
'enabled' => '啟用:',
-'enabled on' => '啟用接口',
'enabledtitle' => '啟用',
'encapsulation' => '封裝形式',
'encrypted' => '加密',
diff --git a/langs/zh/cgi-bin/zh.pl b/langs/zh/cgi-bin/zh.pl
index 9ba8a2caba..d298682c40 100644
--- a/langs/zh/cgi-bin/zh.pl
+++ b/langs/zh/cgi-bin/zh.pl
@@ -1030,7 +1030,6 @@
'enable smt' => '启用同时多线程(SMT)',
'enable wildcards' => '启用通配符:',
'enabled' => '启用:',
-'enabled on' => '启用接口',
'enabledtitle' => '启用',
'encapsulation' => '封装形式',
'encrypted' => '加密',
diff --git a/lfs/prompt b/lfs/prompt
new file mode 100644
index 0000000000..0fc9db19f0
--- /dev/null
+++ b/lfs/prompt
@@ -0,0 +1,82 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2025 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+# Downloaded as follows:
+# wget https://github.com/cadsondemak/prompt/archive/$(VER).tar.gz \
+# -O prompt-$(VER).tar.gz
+
+VER = 18f813a4dea16a7ecc6f944053d3ce2cd4d7e824
+
+THISAPP = prompt-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 9087b7dd043e7c483f73e2cd6f94f081940d3b679725ad458e5042dd0bd3455288659b125285c278890d78488fcd64250854ebc89dd6f6fc8057d6d353ca51d7
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+
+ -mkdir -pv /usr/share/fonts
+ cd $(DIR_APP) && cp -vf font/*.ttf /usr/share/fonts/
+
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/lfs/python3-more_itertools b/lfs/python3-more_itertools
new file mode 100644
index 0000000000..9778df685c
--- /dev/null
+++ b/lfs/python3-more_itertools
@@ -0,0 +1,79 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 10.7.0
+
+THISAPP = more_itertools-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 0540d13c0dc2918ea612a1f8ca651f6a0a27d1ab3b6b13160f0bca07fc8b80c0d4b5c175c466cde59d24d54d8ed1cc99f1765d1a559064b82e19ead196ae515c
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && python3 -m build --wheel --no-isolation
+ cd $(DIR_APP) && python3 -m install --destdir=/ dist/*.whl
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/lfs/python3-packaging b/lfs/python3-packaging
index e98c9e2835..28671cb185 100644
--- a/lfs/python3-packaging
+++ b/lfs/python3-packaging
@@ -24,7 +24,7 @@
include Config
-VER = 23.2
+VER = 25.0
THISAPP = packaging-$(VER)
DL_FILE = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = python3-packaging
-PAK_VER = 4
+PAK_VER = 5
###############################################################################
# Top-level Rules
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = cf7986a07312fd82a2a0ee738088993b9570d95cd0b573afa7a1f911bf335de7084e3d40d961adea7f5a8369738688f9d0a4265ef26a393f2d30769bc13f752a
+$(DL_FILE)_BLAKE2 = ad665526339ccc63bbca1e21649f773e626b13f984f0800c6362d5642e8de701d88f7793015bc406f3dc39fa6ce2784f099f925b08d7b5c1d3614d390470080c
install : $(TARGET)
diff --git a/lfs/python3-pillow b/lfs/python3-pillow
new file mode 100644
index 0000000000..5418f519e0
--- /dev/null
+++ b/lfs/python3-pillow
@@ -0,0 +1,80 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 11.3.0
+
+THISAPP = pillow-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = bde2d91943ca39cef342733f57d5c4b4e1fcb4e20b145fea1606018f255d70311e7f09d02321aede10ea1b0ae73cc86e3932d213718eb081f6961cf36174282f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python3-pillow-11.3.0-fix-license.patch
+ cd $(DIR_APP) && python3 -m build --wheel --no-isolation
+ cd $(DIR_APP) && python3 -m install --destdir=/ dist/*.whl
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/lfs/python3-reportlab b/lfs/python3-reportlab
new file mode 100644
index 0000000000..b5e9096ee7
--- /dev/null
+++ b/lfs/python3-reportlab
@@ -0,0 +1,79 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 4.4.3
+
+THISAPP = reportlab-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 30b2dd2160b3d9370ef9ad701da8bf52c640c2f94268bf3459d14d441cfc82b0d1fe5401ebbcfb7110faec9d1d5d03cd024b6be5f088d926f79cf3b4760539c3
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && python3 setup.py build
+ cd $(DIR_APP) && python3 setup.py install --root=/
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/lfs/python3-setuptools b/lfs/python3-setuptools
index 0630a769dc..05e702a7e2 100644
--- a/lfs/python3-setuptools
+++ b/lfs/python3-setuptools
@@ -24,20 +24,13 @@
include Config
-VER = 67.5.1
-SUMMARY = Enhancements to distutils for building and distributing Python packages
+VER = 80.9.0
THISAPP = setuptools-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = python3-setuptools
-PAK_VER = 7
-
-DEPS =
-
-SERVICES =
###############################################################################
# Top-level Rules
@@ -47,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = ed063a287787e56850cd4f20a8f07cc8670138bdbbb934a0684ead355f234312e6d3cebabffbbc41fb2dd2df27c493878c6660ea073ea00e65d31cef8a6568c0
+$(DL_FILE)_BLAKE2 = ab367912eec92b0d1251916d09c1dd2e311767eec87225beaff870dff923b47ba1732d2f7393b7d9e55d1ff1249c612e4403019e0021048951f9fc3b775c04c9
install : $(TARGET)
diff --git a/lfs/python3-wheel b/lfs/python3-wheel
new file mode 100644
index 0000000000..8740db052f
--- /dev/null
+++ b/lfs/python3-wheel
@@ -0,0 +1,79 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2020 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 0.45.1
+
+THISAPP = wheel-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = 13c8d60a2e39ded3d911c9e03915b01bda201f7e8cd6de456484ce6eeb2a990861a01f26e5d9f2ac4ca0ab2b6d0fea9db437d6f82cb39db9b1059c3c53202ec0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+dist:
+ @$(PAK)
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && python3 setup.py build
+ cd $(DIR_APP) && python3 setup.py install --root=/
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/lfs/suricata-reporter b/lfs/suricata-reporter
new file mode 100644
index 0000000000..2c592c9841
--- /dev/null
+++ b/lfs/suricata-reporter
@@ -0,0 +1,90 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2025 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 0.2
+
+THISAPP = suricata-reporter-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_BLAKE2 = af8a881c467898bfad94622d91733f86cfebcca848ac445c6a447e980535d0d6ea4f86be47b7e5db4a6182d0c6d21b2504aa9979aa5a113672597d00d82843e8
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+b2 : $(subst %,%_BLAKE2,$(objects))
+
+###############################################################################
+# Downloading, checking, b2sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_BLAKE2,$(objects)) :
+ @$(B2SUM)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && \
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ cd $(DIR_APP) && make $(MAKETUNING)
+ cd $(DIR_APP) && make install
+
+ # Move the configuration file so that it can be edited by the user
+ # and will be included in the backup
+ mv -v /etc/suricata/reporter.conf \
+ /var/ipfire/suricata/reporter.conf
+ ln -svf --relative \
+ /var/ipfire/suricata/reporter.conf \
+ /etc/suricata/reporter.conf
+ chown nobody:nobody /var/ipfire/suricata/reporter.conf
+
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
diff --git a/lfs/web-user-interface b/lfs/web-user-interface
index da76a7d10e..47bc352972 100644
--- a/lfs/web-user-interface
+++ b/lfs/web-user-interface
@@ -74,6 +74,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
# Reset permissions of redirect templates and theme directories
find /srv/web/ipfire/html/{captive,redirect-templates,themes} -type d | xargs chmod -v 755
+ # Web UI Font
+ mkdir -pv /srv/web/ipfire/html/themes/ipfire/include/fonts
+ ln -svf --relative /usr/share/fonts/Prompt-Bold.ttf \
+ /srv/web/ipfire/html/themes/ipfire/include/fonts/Prompt-Bold.ttf
+ ln -svf --relative /usr/share/fonts/Prompt-Medium.ttf \
+ /srv/web/ipfire/html/themes/ipfire/include/fonts/Prompt-Medium.ttf
+ ln -svf --relative /usr/share/fonts/Prompt-Regular.ttf \
+ /srv/web/ipfire/html/themes/ipfire/include/fonts/Prompt-Regular.ttf
+
# Captive Portal CSS
ln -svf --relative /usr/share/bootstrap/css/bootstrap-grid.min.css \
/srv/web/ipfire/html/captive/assets/bootstrap-grid.min.css
diff --git a/make.sh b/make.sh
index 5be14c07fc..3257ab911a 100755
--- a/make.sh
+++ b/make.sh
@@ -1484,6 +1484,21 @@ build_system() {
lfsmake2 gdbm
lfsmake2 sqlite
lfsmake2 python3
+ lfsmake2 python3-wheel
+ lfsmake2 python3-toml
+ lfsmake2 python3-pyproject2setuppy
+ lfsmake2 python3-packaging
+ lfsmake2 python3-pep517
+ lfsmake2 python3-build
+ lfsmake2 python3-install
+ lfsmake2 python3-urllib3
+ lfsmake2 python3-charset-normalizer
+ lfsmake2 python3-idna
+ lfsmake2 python3-certifi
+ lfsmake2 python3-requests
+ lfsmake2 python3-docutils
+ lfsmake2 python3-flit
+ lfsmake2 python3-more_itertools
lfsmake2 python3-setuptools
lfsmake2 ninja
lfsmake2 meson
@@ -1764,11 +1779,11 @@ build_system() {
lfsmake2 perl-Object-Tiny
lfsmake2 perl-Archive-Peek-Libarchive
lfsmake2 python3-inotify
- lfsmake2 python3-docutils
lfsmake2 python3-daemon
lfsmake2 ntp
lfsmake2 openssh
lfsmake2 fontconfig
+ lfsmake2 prompt
lfsmake2 dejavu-fonts-ttf
lfsmake2 ubuntu-font-family
lfsmake2 freefont
@@ -1863,8 +1878,6 @@ build_system() {
lfsmake2 elinks
lfsmake2 igmpproxy
lfsmake2 opus
- lfsmake2 python3-toml
- lfsmake2 python3-pyproject2setuppy
lfsmake2 python3-pyparsing
lfsmake2 spice-protocol
lfsmake2 spice
@@ -1934,16 +1947,6 @@ build_system() {
lfsmake2 wireless-regdb
lfsmake2 ddns
lfsmake2 python3-pycparser
- lfsmake2 python3-charset-normalizer
- lfsmake2 python3-certifi
- lfsmake2 python3-idna
- lfsmake2 python3-requests
- lfsmake2 python3-pep517
- lfsmake2 python3-build
- lfsmake2 python3-install
- lfsmake2 python3-urllib3
- lfsmake2 python3-flit
- lfsmake2 python3-packaging
lfsmake2 python3-typing-extensions
lfsmake2 python3-semantic-version
lfsmake2 python3-setuptools-scm
@@ -1983,6 +1986,8 @@ build_system() {
lfsmake2 python3-exceptiongroup
lfsmake2 python3-trio
lfsmake2 python3-pyfuse3
+ lfsmake2 python3-pillow
+ lfsmake2 python3-reportlab
lfsmake2 aws-cli
lfsmake2 oci-python-sdk
lfsmake2 oci-cli
@@ -2090,6 +2095,7 @@ build_system() {
lfsmake2 grub-btrfs
lfsmake2 fort-validator
lfsmake2 arpwatch
+ lfsmake2 suricata-reporter
lfsmake2 linux
lfsmake2 rtl8812au
diff --git a/src/initscripts/system/suricata b/src/initscripts/system/suricata
index a0f6079712..1565f795ab 100644
--- a/src/initscripts/system/suricata
+++ b/src/initscripts/system/suricata
@@ -174,7 +174,7 @@ generate_fw_rules() {
}
case "$1" in
- start)
+ start)
# Get amount of CPU cores
cpu_count="$(getconf _NPROCESSORS_ONLN)"
@@ -185,10 +185,15 @@ case "$1" in
NFQUEUES+=":$(($cpu_count-1))"
fi
- # Check if the IDS should be started.
+ # Check if suricata should be started
if [ "$ENABLE_IDS" == "on" ]; then
- # Start the IDS.
- boot_mesg "Starting Intrusion Detection System..."
+ # Start the reporter
+ boot_mesg "Starting Intrusion Prevention Reporter..."
+ loadproc -f -p /var/run/suricata/reporter.pid -b /usr/bin/suricata-reporter \
+ --config="/var/ipfire/suricata/reporter.conf"
+
+ # Start suricata
+ boot_mesg "Starting Intrusion Prevention System..."
loadproc -b /usr/bin/suricata-watcher -c /etc/suricata/suricata.yaml $NFQUEUES
# Flush the firewall chain
@@ -197,33 +202,41 @@ case "$1" in
# Generate firewall rules
generate_fw_rules
fi
- ;;
+ ;;
- stop)
- boot_mesg "Stopping Intrusion Detection System..."
+ stop)
+ boot_mesg "Stopping Intrusion Prevention System..."
killproc -p /var/run/suricata.pid /usr/bin/suricata
+ boot_mesg "Stopping Intrusion Prevention Reporter..."
+ killproc -p /var/run/suricata/reporter.pid /usr/bin/suricata-reporter
+
# Flush firewall chain.
flush_fw_chain
# Don't report returncode of rm if suricata was not started
exit 0
- ;;
+ ;;
- status)
- PIDFILE="/var/run/suricata.pid" statusproc /usr/bin/suricata
- ;;
+ status)
+ PIDFILE="/var/run/suricata.pid" statusproc /usr/bin/suricata
+ PIDFILE="/var/run/suricata/reporter.pid" statusproc /usr/bin/suricata-reporter
+ ;;
- restart)
- $0 stop
- $0 start
- ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
reload)
# Send SIGUSR2 to the suricata process to perform a reload
# of the ruleset.
kill -USR2 $(pidof suricata)
+ # Reload the reporter
+ PIDFILE="/var/run/suricata/reporter.pid" \
+ reloadproc /usr/bin/suricata-reporter
+
# Flush the firewall chain.
flush_fw_chain
@@ -231,8 +244,8 @@ case "$1" in
generate_fw_rules
;;
- *)
- echo "Usage: $0 {start|stop|restart|reload|status}"
- exit 1
- ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|status}"
+ exit 1
+ ;;
esac
diff --git a/src/patches/python3-pillow-11.3.0-fix-license.patch b/src/patches/python3-pillow-11.3.0-fix-license.patch
new file mode 100644
index 0000000000..8349bae0ab
--- /dev/null
+++ b/src/patches/python3-pillow-11.3.0-fix-license.patch
@@ -0,0 +1,13 @@
+--- pillow-11.3.0/pyproject.toml.bak 2025-08-07 15:56:16.353590772 +0000
++++ pillow-11.3.0/pyproject.toml 2025-08-07 15:56:31.049397673 +0000
+@@ -14,8 +14,8 @@
+ keywords = [
+ "Imaging",
+ ]
+-license = "MIT-CMU"
+-license-files = [ "LICENSE" ]
++#license = "MIT-CMU"
++#license-files = [ "LICENSE" ]
+ authors = [
+ { name = "Jeffrey A. Clark", email = "aclark@aclark.net" },
+ ]
hooks/post-receive
--
IPFire 2.x development tree
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-09-03 18:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-03 18:00 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 0cbb9835fe27b6d99663a1b9e9d19414537ba388 Michael Tremer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox