summaryrefslogtreecommitdiff
path: root/www-misc
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /www-misc
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'www-misc')
-rw-r--r--www-misc/awstats/Manifest1
-rw-r--r--www-misc/awstats/awstats-7.8-r1.ebuild110
-rw-r--r--www-misc/awstats/files/awstats-7.1-gentoo.diff21
-rw-r--r--www-misc/awstats/files/awstats-7.8-mime.patch12
-rw-r--r--www-misc/awstats/metadata.xml12
-rw-r--r--www-misc/bookmarksync/Manifest1
-rw-r--r--www-misc/bookmarksync/bookmarksync-0.3.4-r3.ebuild43
-rw-r--r--www-misc/bookmarksync/metadata.xml10
-rw-r--r--www-misc/buku/Manifest2
-rw-r--r--www-misc/buku/buku-4.9.ebuild77
-rw-r--r--www-misc/buku/buku-5.0.ebuild76
-rw-r--r--www-misc/buku/metadata.xml17
-rw-r--r--www-misc/fcgiwrap/Manifest1
-rw-r--r--www-misc/fcgiwrap/fcgiwrap-1.1.0_p20150419-r2.ebuild65
-rw-r--r--www-misc/fcgiwrap/files/fcgiwrap-1.1.0-cleanup.patch269
-rw-r--r--www-misc/fcgiwrap/files/fcgiwrap-1.1.0-kill.patch25
-rw-r--r--www-misc/fcgiwrap/files/fcgiwrap-1.1.0-systemd.patch25
-rw-r--r--www-misc/fcgiwrap/files/fcgiwrap-1.1.0-uninit-ipv6.patch34
-rw-r--r--www-misc/fcgiwrap/metadata.xml10
-rw-r--r--www-misc/litmus/Manifest1
-rw-r--r--www-misc/litmus/files/litmus-0.13-autotools-neon-version.patch11
-rw-r--r--www-misc/litmus/litmus-0.13-r2.ebuild66
-rw-r--r--www-misc/litmus/metadata.xml18
-rw-r--r--www-misc/logswan/Manifest1
-rw-r--r--www-misc/logswan/logswan-2.1.15.ebuild32
-rw-r--r--www-misc/logswan/logswan-9999.ebuild28
-rw-r--r--www-misc/logswan/metadata.xml23
-rw-r--r--www-misc/mergelog/Manifest1
-rw-r--r--www-misc/mergelog/files/mergelog-4.5-asneeded.patch32
-rw-r--r--www-misc/mergelog/files/mergelog-4.5-splitlog.patch384
-rw-r--r--www-misc/mergelog/files/mergelog-4.5-zlib-gcc14-pointer.diff48
-rw-r--r--www-misc/mergelog/mergelog-4.5-r4.ebuild28
-rw-r--r--www-misc/mergelog/metadata.xml8
-rw-r--r--www-misc/monitorix/Manifest1
-rw-r--r--www-misc/monitorix/files/monitorix30
-rw-r--r--www-misc/monitorix/metadata.xml16
-rw-r--r--www-misc/monitorix/monitorix-3.16.0.ebuild117
-rw-r--r--www-misc/multisort/Manifest1
-rw-r--r--www-misc/multisort/metadata.xml5
-rw-r--r--www-misc/multisort/multisort-1.1-r2.ebuild28
-rw-r--r--www-misc/profile-sync-daemon/Manifest3
-rw-r--r--www-misc/profile-sync-daemon/files/bad-substitution-fix.patch11
-rw-r--r--www-misc/profile-sync-daemon/files/openrc-path.patch13
-rw-r--r--www-misc/profile-sync-daemon/metadata.xml13
-rw-r--r--www-misc/profile-sync-daemon/profile-sync-daemon-5.75.ebuild34
-rw-r--r--www-misc/profile-sync-daemon/profile-sync-daemon-6.35.ebuild32
-rw-r--r--www-misc/profile-sync-daemon/profile-sync-daemon-6.50.ebuild33
-rw-r--r--www-misc/profile-sync-daemon/profile-sync-daemon-9999.ebuild18
-rw-r--r--www-misc/quixotic/Manifest198
-rw-r--r--www-misc/quixotic/files/linkmaze.confd10
-rw-r--r--www-misc/quixotic/files/linkmaze.initd13
-rw-r--r--www-misc/quixotic/metadata.xml9
-rw-r--r--www-misc/quixotic/quixotic-0.12-r1.ebuild260
-rw-r--r--www-misc/urlwatch/Manifest1
-rw-r--r--www-misc/urlwatch/metadata.xml12
-rw-r--r--www-misc/urlwatch/urlwatch-2.29.ebuild71
-rw-r--r--www-misc/vdradmin-am/Manifest3
-rw-r--r--www-misc/vdradmin-am/files/timerlist_prio_lifetime_addon.patch216
-rw-r--r--www-misc/vdradmin-am/files/vdradmin-3.6.10.conf19
-rw-r--r--www-misc/vdradmin-am/files/vdradmin-3.6.6.logrotate9
-rw-r--r--www-misc/vdradmin-am/files/vdradmin-3.6.7.init56
-rw-r--r--www-misc/vdradmin-am/files/vdradmin-systemd-helper.sh40
-rw-r--r--www-misc/vdradmin-am/files/vdradmind.conf2
-rw-r--r--www-misc/vdradmin-am/files/vdradmind.service18
-rw-r--r--www-misc/vdradmin-am/files/vdradmind.service.conf5
-rw-r--r--www-misc/vdradmin-am/metadata.xml17
-rw-r--r--www-misc/vdradmin-am/vdradmin-am-3.6.10-r2.ebuild187
-rw-r--r--www-misc/vdradmin-am/vdradmin-am-3.6.14.ebuild198
-rw-r--r--www-misc/vdradmin-am/vdradmin-am-3.6.15.ebuild197
-rw-r--r--www-misc/visitors/Manifest1
-rw-r--r--www-misc/visitors/metadata.xml10
-rw-r--r--www-misc/visitors/visitors-0.7-r2.ebuild41
72 files changed, 3440 insertions, 0 deletions
diff --git a/www-misc/awstats/Manifest b/www-misc/awstats/Manifest
new file mode 100644
index 000000000000..5c76406655ee
--- /dev/null
+++ b/www-misc/awstats/Manifest
@@ -0,0 +1 @@
+DIST awstats-7.8.tar.gz 2938739 BLAKE2B 57c692aa935a4191d1cc1f3b34dd1a70a40eef880a3672dcd17472fe6bf447dd7b85a7752d94666d6f1a8dbdcc2eac4959a7f6a83a8bd538d0909ffcaedfd385 SHA512 2fd78e8c7eefb5c9ed39d8ee830ee8ad00b622b812ae40a84cb01c4fa653b9ab7822d1592313d7a8c4b8503d04dcba48b1775d33a629f1ac1278d2300eef931d
diff --git a/www-misc/awstats/awstats-7.8-r1.ebuild b/www-misc/awstats/awstats-7.8-r1.ebuild
new file mode 100644
index 000000000000..f99c49572678
--- /dev/null
+++ b/www-misc/awstats/awstats-7.8-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_P=${PN}-${PV%_p*}
+
+DESCRIPTION="AWStats is short for Advanced Web Statistics"
+HOMEPAGE="https://www.awstats.org/"
+SRC_URI="https://www.awstats.org/files/${P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~sparc ~x86"
+IUSE="geoip ipv6 selinux"
+
+RDEPEND="
+ >=dev-lang/perl-5.6.1
+ dev-perl/URI
+ virtual/perl-Time-Local
+ geoip? (
+ dev-perl/Geo-IP
+ )
+ ipv6? (
+ dev-perl/Net-DNS
+ dev-perl/Net-IP
+ )
+ selinux? ( sec-policy/selinux-awstats )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/${PN}-7.1-gentoo.diff
+ eapply "${FILESDIR}"/${P}-mime.patch
+
+ # change default installation directory
+ find . -type f -exec sed \
+ -e "s#/usr/local/awstats/wwwroot#/usr/share/awstats/wwwroot#g" \
+ -e '/PossibleLibDir/s:(.*):("/usr/share/awstats/wwwroot/cgi-bin/lib"):' \
+ -i {} + || die "find/sed failed"
+
+ # set default values for directories; use apache log as an example
+ sed \
+ -e "s|^\(LogFile=\).*$|\1\"/var/log/apache2/access_log\"|" \
+ -e "s|^\(SiteDomain=\).*$|\1\"localhost\"|" \
+ -e "s|^\(DirIcons=\).*$|\1\"/awstats/icon\"|" \
+ -i "${S}"/wwwroot/cgi-bin/awstats.model.conf || die "sed failed"
+
+ # enable plugins
+
+ if use ipv6; then
+ sed -e "s|^#\(LoadPlugin=\"ipv6\"\)$|\1|" \
+ -i "${S}"/wwwroot/cgi-bin/awstats.model.conf || die "sed failed"
+ fi
+
+ if use geoip; then
+ sed -e '/LoadPlugin="geoip /aLoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"' \
+ -i "${S}"/wwwroot/cgi-bin/awstats.model.conf || die "sed failed"
+ fi
+
+ find "${S}" '(' -type f -not -name '*.pl' ')' -exec chmod -x {} + || die
+
+ eapply_user
+}
+
+HTML_DOCS="docs/"
+DOCS="README.md"
+
+src_install() {
+ einstalldocs
+
+ newdoc wwwroot/cgi-bin/plugins/example/example.pm example_plugin.pm
+ dodoc -r tools/xslt
+
+ keepdir /var/lib/awstats
+
+ insinto /etc/awstats
+ doins "${S}"/wwwroot/cgi-bin/awstats.model.conf
+
+ # remove extra content that we don't want to install
+ rm -r "${S}"/wwwroot/cgi-bin/awstats.model.conf \
+ "${S}"/wwwroot/classes/src || die
+
+ insinto /usr/share/awstats
+ doins -r wwwroot
+ chmod +x "${D}"/usr/share/awstats/wwwroot/cgi-bin/*.pl
+
+ cd "${S}"/tools
+ dobin awstats_buildstaticpages.pl awstats_exportlib.pl \
+ awstats_updateall.pl
+ newbin logresolvemerge.pl awstats_logresolvemerge.pl
+ newbin maillogconvert.pl awstats_maillogconvert.pl
+ newbin urlaliasbuilder.pl awstats_urlaliasbuilder.pl
+
+ dosym ../share/awstats/wwwroot/cgi-bin/awstats.pl /usr/bin/awstats.pl
+}
+
+pkg_postinst() {
+ elog "The AWStats-Manual is available either inside"
+ elog "the /usr/share/doc/${PF} - folder, or at"
+ elog "https://awstats.sourceforge.net/docs/index.html ."
+ elog
+ elog "Copy the /etc/awstats/awstats.model.conf to"
+ elog "/etc/awstats/awstats.<yourdomain>.conf and edit it."
+ elog ""
+ ewarn "This ebuild does no longer use webapp-config to install"
+ ewarn "instead you should point your configuration to the stable"
+ ewarn "directory tree in the following path:"
+ ewarn " /usr/share/awstats"
+}
diff --git a/www-misc/awstats/files/awstats-7.1-gentoo.diff b/www-misc/awstats/files/awstats-7.1-gentoo.diff
new file mode 100644
index 000000000000..a58ed48bd548
--- /dev/null
+++ b/www-misc/awstats/files/awstats-7.1-gentoo.diff
@@ -0,0 +1,21 @@
+--- awstats-6.3.orig/tools/awstats_configure.pl 2005-01-24 09:28:43.980923725 -0500
++++ awstats-6.3/tools/awstats_configure.pl 2005-01-24 09:28:52.034571769 -0500
+@@ -658,6 +658,18 @@
+ print "\n-----> Restart Web server with '$command'\n";
+ my $ret=`$command`;
+ print "$ret";
++ } elsif (-f "/etc/gentoo-release") {
++ my $command;
++ if (-x "/etc/init.d/apache2") {
++ $command="/etc/init.d/apache2 graceful";
++ } else {
++ print "\n-----> Don't forget to restart manually your web server\n";
++ }
++ if ($command != "") {
++ print "\n-----> Restart Web server with '$command'\n";
++ my $ret=`$command`;
++ print "$ret";
++ }
+ } elsif (-x "/sbin/service") {
+ # We are not on debian
+ my $command="/sbin/service httpd restart";
diff --git a/www-misc/awstats/files/awstats-7.8-mime.patch b/www-misc/awstats/files/awstats-7.8-mime.patch
new file mode 100644
index 000000000000..a8d7f6d122a5
--- /dev/null
+++ b/www-misc/awstats/files/awstats-7.8-mime.patch
@@ -0,0 +1,12 @@
+diff -ur awstats-7.8-old/wwwroot/cgi-bin/lib/mime.pm awstats-7.8/wwwroot/cgi-bin/lib/mime.pm
+--- awstats-7.8-old/wwwroot/cgi-bin/lib/mime.pm 2020-04-16 09:18:35.000000000 +0000
++++ awstats-7.8/wwwroot/cgi-bin/lib/mime.pm 2020-05-13 09:38:30.654537576 +0000
+@@ -56,7 +56,7 @@
+ 'diskimage', 'Disc and media file extensions',
+ 'vm', 'Virtual Machine image',
+ 'torrent', 'BitTorrent File',
+-'gis', 'GIS File'
++'gis', 'GIS File',
+ 'ebook', 'Ebook File'
+ );
+
diff --git a/www-misc/awstats/metadata.xml b/www-misc/awstats/metadata.xml
new file mode 100644
index 000000000000..8486f101643d
--- /dev/null
+++ b/www-misc/awstats/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>web-apps@gentoo.org</email>
+ <name>Gentoo Webapps</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:awstats:awstats</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/bookmarksync/Manifest b/www-misc/bookmarksync/Manifest
new file mode 100644
index 000000000000..399e444e4b97
--- /dev/null
+++ b/www-misc/bookmarksync/Manifest
@@ -0,0 +1 @@
+DIST bookmarksync-0.3.4.tar.gz 14324 BLAKE2B f180ab1705b550ba1449c1dd4cacdee2071d7e5889d2455358637d9a117ce98289cb62b0fe1732bc7be31ae89c8d0766a8d4640dd7a103399c8e9cf57f1ee24f SHA512 97464e32e9c21010eccf34b9bc94ce67d20f9b7a1f00b4e10e7096c0bde527a8b2a83a05c8623aa009fa0ab1895b025241aba2dfaf6881755bf05682b9e710d0
diff --git a/www-misc/bookmarksync/bookmarksync-0.3.4-r3.ebuild b/www-misc/bookmarksync/bookmarksync-0.3.4-r3.ebuild
new file mode 100644
index 000000000000..75208b519396
--- /dev/null
+++ b/www-misc/bookmarksync/bookmarksync-0.3.4-r3.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="bookmarksync synchronizes various browser bookmark files"
+HOMEPAGE="https://sourceforge.net/projects/booksync/"
+SRC_URI="https://downloads.sourceforge.net/booksync/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ppc x86"
+SLOT="0"
+
+IUSE="perl"
+RESTRICT="mirror"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ perl? ( dev-lang/perl )"
+
+src_prepare() {
+ default
+ sed -i Makefile \
+ -e 's|g++|$(CXX) $(CFLAGS)|g' \
+ -e 's| -o | $(LDFLAGS)&|g' \
+ || die "sed Makefile"
+ tc-export CXX
+}
+
+src_install() {
+ dobin bookmarksync
+ if use perl ; then
+ dobin tools/bookmarksync.pl
+ dodoc tools/README.tools
+ fi
+ dodoc README TODO DEVELOPERS
+}
+
+pkg_postinst() {
+ use perl && ewarn "You will need to modify bookmarksync.pl before use"
+}
diff --git a/www-misc/bookmarksync/metadata.xml b/www-misc/bookmarksync/metadata.xml
new file mode 100644
index 000000000000..32f389c1a4d5
--- /dev/null
+++ b/www-misc/bookmarksync/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ bookmarksync is a tool used for synchronizing different bookmark files
+ and types. It preserves current bookmark structures and sorts in new
+ ones correctly in existing directorys or create new one if necessary.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/buku/Manifest b/www-misc/buku/Manifest
new file mode 100644
index 000000000000..b143bc5c2c9a
--- /dev/null
+++ b/www-misc/buku/Manifest
@@ -0,0 +1,2 @@
+DIST buku-4.9.tar.gz 615794 BLAKE2B 79e0b7980d1df2b063be5b115c6d55fce63b9e9a58bae5c1ae4d81d77b644c90df2698e20a1743daf5468f4b08ab7b2125af073906385693419249b989686f3f SHA512 3804ea759c3b0172ab07b266123b27683f4785f1fb10859b4fd5b41e267b93e6ad0901b2456a27e434aef216f2063c5881d2755ec45789b3f2d42fe608b32eb2
+DIST buku-5.0.tar.gz 662828 BLAKE2B 8226a38480b7beb4619285833f01b72fd0f6301df0ff298e2484a171aa7b43ae403140ecd0651d6e24080edcea2d3337233eecbfbb15bd7e3362d409ba221744 SHA512 4f067f646da709c0ec0021eb50440ec0f5a1119fc52233941a1a5d6f6c4650656858f17ce95f84a63f40ffad10ca8bb0f7e1e5a194f59eef33ab165951b5ac7c
diff --git a/www-misc/buku/buku-4.9.ebuild b/www-misc/buku/buku-4.9.ebuild
new file mode 100644
index 000000000000..7b0daa7a147a
--- /dev/null
+++ b/www-misc/buku/buku-4.9.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="Powerful command-line bookmark manager"
+HOMEPAGE="https://github.com/jarun/buku"
+SRC_URI="https://github.com/jarun/${PN}/archive/v$(ver_cut 1-2).tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/beautifulsoup4-4.6.0[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-1.0.1[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/attrs[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ >=dev-python/py-1.5.0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-4.2[${PYTHON_USEDEP}]
+ >=dev-python/vcrpy-4.0.2[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # bukuserver tests
+ tests/test_views.py
+ tests/test_server.py
+)
+
+EPYTEST_DESELECT=(
+ # Broken with network-sandbox
+ tests/test_buku.py::test_network_handler_with_url
+ tests/test_buku.py::test_fetch_data_with_url
+ tests/test_bukuDb.py::TestBukuDb::test_tnyfy_url
+ tests/test_bukuDb.py::test_add_rec_exec_arg
+ tests/test_bukuDb.py::test_load_firefox
+ tests/test_bukuDb.py::test_print_db
+ tests/test_bukuDb.py::test_print_rec
+ tests/test_bukuDb.py::test_refreshdb
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # Remove support for bukuserver - complex depgraph which isn't all
+ # sufficiently packaged in Gentoo
+ sed -ie '/console_scripts/s/,.*/]/' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/zsh/site-functions
+ doins auto-completion/zsh/_*
+
+ newbashcomp auto-completion/bash/buku-completion.bash "${PN}"
+
+ doman buku.1
+}
diff --git a/www-misc/buku/buku-5.0.ebuild b/www-misc/buku/buku-5.0.ebuild
new file mode 100644
index 000000000000..4e1b877444a5
--- /dev/null
+++ b/www-misc/buku/buku-5.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 shell-completion
+
+DESCRIPTION="Powerful command-line bookmark manager"
+HOMEPAGE="https://github.com/jarun/buku"
+SRC_URI="https://github.com/jarun/${PN}/archive/v$(ver_cut 1-2).tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/beautifulsoup4-4.6.0[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/html5lib-1.0.1[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-python/attrs[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ >=dev-python/py-1.5.0[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-4.2[${PYTHON_USEDEP}]
+ >=dev-python/vcrpy-4.0.2[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # bukuserver tests
+ tests/test_views.py
+ tests/test_server.py
+)
+
+EPYTEST_DESELECT=(
+ # Broken with network-sandbox
+ tests/test_buku.py::test_network_handler_with_url
+ tests/test_buku.py::test_fetch_data_with_url
+ tests/test_bukuDb.py::TestBukuDb::test_tnyfy_url
+ tests/test_bukuDb.py::test_add_rec_exec_arg
+ tests/test_bukuDb.py::test_load_firefox
+ tests/test_bukuDb.py::test_print_db
+ tests/test_bukuDb.py::test_print_rec
+ tests/test_bukuDb.py::test_refreshdb
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # Remove support for bukuserver - complex depgraph which isn't all
+ # sufficiently packaged in Gentoo
+ sed -ie '/console_scripts/s/,.*/]/' setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ newbashcomp auto-completion/bash/buku-completion.bash "${PN}"
+ newzshcomp auto-completion/zsh/_buku _buku
+ newfishcomp auto-completion/fish/buku.fish buku.fish
+
+ doman buku.1
+}
diff --git a/www-misc/buku/metadata.xml b/www-misc/buku/metadata.xml
new file mode 100644
index 000000000000..e9ddf9cdb1ae
--- /dev/null
+++ b/www-misc/buku/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>stkw0@disroot.org</email>
+ <name>David Roman</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>ajak@gentoo.org</email>
+ <name>John Helmert III</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/fcgiwrap/Manifest b/www-misc/fcgiwrap/Manifest
new file mode 100644
index 000000000000..1471e08f2f39
--- /dev/null
+++ b/www-misc/fcgiwrap/Manifest
@@ -0,0 +1 @@
+DIST fcgiwrap-1.1.0_p20150419.gh.tar.gz 10833 BLAKE2B 3820d2aee99a225656c9b3621f5ccf936b4909e74331a6332925bfbda38e8795339d943768aff4c967381bd52f349f445bcce335e3f94f7fb67ed15e5844a9ad SHA512 87613dcaf617107bb179e5f1c50878f6378fcfcc53237a262881cc8e18a7d8c011215f1642d6d00797f322e08118ff9ed4a1da9fa5d09006f3ffbe20547e4f08
diff --git a/www-misc/fcgiwrap/fcgiwrap-1.1.0_p20150419-r2.ebuild b/www-misc/fcgiwrap/fcgiwrap-1.1.0_p20150419-r2.ebuild
new file mode 100644
index 000000000000..a7748632aaf8
--- /dev/null
+++ b/www-misc/fcgiwrap/fcgiwrap-1.1.0_p20150419-r2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd toolchain-funcs
+
+DESCRIPTION="Simple FastCGI wrapper for CGI scripts (CGI support for nginx)"
+HOMEPAGE="https://github.com/gnosek/fcgiwrap"
+if [[ ${PV} == *_p* ]] ; then
+ FCGIWRAP_COMMIT="99c942c90063c73734e56bacaa65f947772d9186"
+ SRC_URI="https://github.com/gnosek/fcgiwrap/archive/${FCGIWRAP_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+ S="${WORKDIR}"/${PN}-${FCGIWRAP_COMMIT}
+else
+ # https://github.com/gnosek/fcgiwrap/issues/31
+ SRC_URI="https://github.com/gnosek/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+IUSE="systemd"
+
+RDEPEND="
+ dev-libs/fcgi
+ systemd? ( sys-apps/systemd:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( README.rst )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.0-kill.patch
+ "${FILESDIR}"/${PN}-1.1.0-systemd.patch
+ "${FILESDIR}"/${PN}-1.1.0-uninit-ipv6.patch
+ "${FILESDIR}"/${PN}-1.1.0-cleanup.patch
+)
+
+src_prepare() {
+ default
+
+ sed -e "s/-Werror//" \
+ -i configure.ac || die "sed failed"
+ sed -e '/man8dir = $(DESTDIR)/s/@prefix@//' \
+ -i Makefile.in || die "sed failed"
+
+ tc-export CC
+
+ # Fix systemd units for Gentoo
+ sed -i -e '/User/d' systemd/fcgiwrap.service || die
+ sed -i -e '/Group/d' systemd/fcgiwrap.service || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with systemd) \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+}
+
+pkg_postinst() {
+ einfo "You may want to install www-servers/spawn-fcgi to use with fcgiwrap."
+}
diff --git a/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-cleanup.patch b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-cleanup.patch
new file mode 100644
index 000000000000..3e5179aee4cc
--- /dev/null
+++ b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-cleanup.patch
@@ -0,0 +1,269 @@
+https://github.com/gnosek/fcgiwrap/pull/60
+
+From 93ce8e8489bda4a7ebe5161020c83a68f744481f Mon Sep 17 00:00:00 2001
+From: flu0r1ne <flu0r1ne@flu0r1ne.net>
+Date: Sat, 9 Sep 2023 22:56:05 -0500
+Subject: [PATCH 1/4] Fix implicit fallthrough false positive, noreturn
+
+With warnings and pedantic mode enabled, `gcc (GCC) 13.2.1` returns
+an implicit fall through warning. This can be fixed by annotating
+the error function with NORETURN.
+---
+ fcgiwrap.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index b44d8aa..8310284 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -56,6 +56,12 @@
+ #define UNIX_PATH_MAX 108
+ #endif
+
++#if defined(__GNUC__) || defined(__clang__)
++# define NORETURN __attribute__((__noreturn__))
++#else
++# define NORETURN
++#endif
++
+ extern char **environ;
+ static char * const * inherited_environ;
+ static const char **allowed_programs;
+@@ -500,7 +506,7 @@ static bool is_allowed_program(const char *program) {
+ return false;
+ }
+
+-static void cgi_error(const char *message, const char *reason, const char *filename)
++static void NORETURN cgi_error(const char *message, const char *reason, const char *filename)
+ {
+ printf("Status: %s\r\nContent-Type: text/plain\r\n\r\n%s\r\n",
+ message, message);
+
+From 8b8aae2ac99bc91a72a32ca2040302f785e10e2b Mon Sep 17 00:00:00 2001
+From: flu0r1ne <flu0r1ne@flu0r1ne.net>
+Date: Sun, 10 Sep 2023 03:50:27 -0500
+Subject: [PATCH 2/4] close() always results in a duplicate call
+
+Remove close as it always results in a duplicated call, simplify logic
+---
+ fcgiwrap.c | 27 ++++++++++++++++-----------
+ 1 file changed, 16 insertions(+), 11 deletions(-)
+
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index 8310284..cfb7797 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -62,6 +62,8 @@
+ # define NORETURN
+ #endif
+
++#define FCGI_FD 0
++
+ extern char **environ;
+ static char * const * inherited_environ;
+ static const char **allowed_programs;
+@@ -706,8 +708,8 @@ static int listen_on_fd(int fd) {
+ perror("Failed to enable SO_REUSEADDR");
+ return -1;
+ }
+- if (dup2(fd, 0) < 0) {
+- perror("Failed to move socket to fd 0");
++ if (dup2(fd, FCGI_FD) < 0) {
++ fprintf(stderr, "Failed to move socket to fd %d", FCGI_FD);
+ return -1;
+ }
+ if (close(fd) < 0) {
+@@ -809,7 +811,7 @@ int main(int argc, char **argv)
+ {
+ int nchildren = 1;
+ char *socket_url = NULL;
+- int fd = 0;
++ int fd = FCGI_FD;
+ int c;
+
+ while ((c = getopt(argc, argv, "c:hfs:p:")) != -1) {
+@@ -860,6 +862,10 @@ int main(int argc, char **argv)
+
+ #ifdef HAVE_SYSTEMD
+ if (sd_listen_fds(true) > 0) {
++ if(socket_url) {
++ perror("warning: a systemd socket has been provding, ignoring '-s'\n");
++ }
++
+ /* systemd woke us up. we should never see more than one FD passed to us. */
+ if (listen_on_fd(SD_LISTEN_FDS_START) < 0) {
+ return 1;
+@@ -876,16 +882,15 @@ int main(int argc, char **argv)
+ prefork(nchildren);
+ fcgiwrap_main();
+
+- if (fd) {
+- const char *p = socket_url;
+- close(fd);
++ close(FCGI_FD);
+
+- if (socket_url) {
+- if (!strncmp(p, "unix:", sizeof("unix:") - 1)) {
+- p += sizeof("unix:") - 1;
+- unlink(p);
+- }
++ if (fd && socket_url) { // fd > 0 indicates a socket was setup by us
++ const char *p = socket_url;
++ if (!strncmp(p, "unix:", sizeof("unix:") - 1)) {
++ p += sizeof("unix:") - 1;
++ unlink(p);
+ }
+ }
++
+ return 0;
+ }
+
+From b4f2469369960fb914c1d1eb4942feebf648835a Mon Sep 17 00:00:00 2001
+From: flu0r1ne <flu0r1ne@flu0r1ne.net>
+Date: Sun, 10 Sep 2023 04:14:17 -0500
+Subject: [PATCH 3/4] Add better error handling for socket setup
+
+---
+ fcgiwrap.c | 18 +++++++++++++++---
+ 1 file changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index cfb7797..5b8af47 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -793,18 +793,30 @@ static int setup_socket(char *url) {
+ fd = socket(sa.sa.sa_family, SOCK_STREAM, 0);
+ if (fd < 0) {
+ perror("Failed to create socket");
+- return -1;
++ goto cleanup_socket;
+ }
+ if (bind(fd, &sa.sa, sockaddr_size) < 0) {
+ perror("Failed to bind");
+- return -1;
++ goto cleanup_fd;
+ }
+
+ if (listen_on_fd(fd) < 0) {
+- return -1;
++ goto cleanup_fd;
+ }
+
+ return fd;
++
++cleanup_fd:
++
++ close(fd);
++
++cleanup_socket:
++
++ if(sa.sa.sa_family == AF_UNIX) {
++ unlink(sa.sa_un.sun_path);
++ }
++
++ return -1;
+ }
+
+ int main(int argc, char **argv)
+
+From 2870d2729a3930988f0041e2d78fec672e69afac Mon Sep 17 00:00:00 2001
+From: flu0r1ne <flu0r1ne@flu0r1ne.net>
+Date: Sun, 10 Sep 2023 04:36:16 -0500
+Subject: [PATCH 4/4] Kill all child processes on parent SIGTERM
+
+When attached to a terminal, a SIGINT signal is sent to the parent
+and all children, instructing them to exit. In some environments including
+docker, only the parent receives the SIGTERM and is responsible for
+propagating it to the children. This patch kills all child processes
+when the parent receives a SIGTERM or a SIGINT.
+---
+ fcgiwrap.c | 38 ++++++++++++++++++++++++++++----------
+ 1 file changed, 28 insertions(+), 10 deletions(-)
+
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index 5b8af47..123d279 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -62,6 +62,12 @@
+ # define NORETURN
+ #endif
+
++#if defined(__GNUC__)
++# define UNUSED __attribute__((__unused__))
++#else
++# define UNUSED
++#endif
++
+ #define FCGI_FD 0
+
+ extern char **environ;
+@@ -646,6 +652,8 @@ static void fcgiwrap_main(void)
+ while (FCGI_Accept() >= 0 && !sigint_received) {
+ handle_fcgi_request();
+ }
++
++ close(FCGI_FD);
+ }
+
+ static volatile sig_atomic_t nrunning;
+@@ -665,21 +673,26 @@ static void sigchld_handler(int dummy)
+ }
+ }
+
++static volatile sig_atomic_t stop_requested;
++
++static void stop_request_handler(int UNUSED signum) {
++ stop_requested = 1;
++}
++
+ static void prefork(int nchildren)
+ {
+ int startup = 1;
+
+- if (nchildren == 1) {
+- return;
+- }
+-
+ signal(SIGCHLD, sigchld_handler);
++ signal(SIGINT, stop_request_handler);
++ signal(SIGTERM, stop_request_handler);
+
+- while (1) {
++ while (!stop_requested) {
+ while (nrunning < nchildren) {
+ pid_t pid = fork();
+ if (pid == 0) {
+- return;
++ fcgiwrap_main();
++ exit(0);
+ } else if (pid != -1) {
+ nrunning++;
+ } else {
+@@ -695,6 +708,10 @@ static void prefork(int nchildren)
+ startup = 0;
+ pause();
+ }
++
++ if(killpg(0, SIGTERM) != 0) {
++ fprintf(stderr, "killpg() encountered an error, child processes may have to be killed");
++ }
+ }
+
+ static int listen_on_fd(int fd) {
+@@ -891,10 +908,11 @@ int main(int argc, char **argv)
+ }
+ }
+
+- prefork(nchildren);
+- fcgiwrap_main();
+-
+- close(FCGI_FD);
++ if(nchildren > 1) {
++ prefork(nchildren);
++ } else {
++ fcgiwrap_main();
++ }
+
+ if (fd && socket_url) { // fd > 0 indicates a socket was setup by us
+ const char *p = socket_url;
+
diff --git a/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-kill.patch b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-kill.patch
new file mode 100644
index 000000000000..aa627cfa764c
--- /dev/null
+++ b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-kill.patch
@@ -0,0 +1,25 @@
+https://github.com/gnosek/fcgiwrap/pull/44
+
+From dc0c3b14f0d7bb014a9a4c6c17eb55a123496365 Mon Sep 17 00:00:00 2001
+From: "D.pz" <xpz91@126.me>
+Date: Mon, 28 Aug 2017 23:54:08 +0800
+Subject: [PATCH] 1.fix: kill() parameter sequence wrong
+
+---
+ fcgiwrap.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index b44d8aa..bfd9a90 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -205,7 +205,7 @@ static void fcgi_finish(struct fcgi_context *fc, const char* msg)
+ if (fc->fd_stderr >= 0) close(fc->fd_stderr);
+
+ if (fc->cgi_pid)
+- kill(SIGTERM, fc->cgi_pid);
++ kill(fc->cgi_pid, SIGTERM);
+ }
+
+ static const char * fcgi_pass_fd(struct fcgi_context *fc, int *fdp, FCGI_FILE *ffp, char *buf, size_t bufsize)
+
diff --git a/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-systemd.patch b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-systemd.patch
new file mode 100644
index 000000000000..e943a4e89fda
--- /dev/null
+++ b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-systemd.patch
@@ -0,0 +1,25 @@
+https://github.com/gnosek/fcgiwrap/pull/39
+
+From 5e9be0eacceaad4eb11b0f49a0cffb70b18b4af3 Mon Sep 17 00:00:00 2001
+From: Juan Orti Alcaine <j.orti.alcaine@gmail.com>
+Date: Fri, 11 Nov 2016 22:40:23 +0100
+Subject: [PATCH] libsystemd-daemon has been renamed to libsystemd
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index bb3674e..2b02ef4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -28,7 +28,7 @@ AC_ARG_WITH([systemd],
+ [], [with_systemd=check])
+ have_systemd=no
+ if test "x$with_systemd" != "xno"; then
+- PKG_CHECK_MODULES(systemd, [libsystemd-daemon],
++ PKG_CHECK_MODULES(systemd, [libsystemd],
+ [AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is available])
+ have_systemd=yes],
+ have_systemd=no)
+
diff --git a/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-uninit-ipv6.patch b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-uninit-ipv6.patch
new file mode 100644
index 000000000000..3fbd939e36a7
--- /dev/null
+++ b/www-misc/fcgiwrap/files/fcgiwrap-1.1.0-uninit-ipv6.patch
@@ -0,0 +1,34 @@
+https://github.com/gnosek/fcgiwrap/pull/51
+
+From 0b04283bc0f33c8b9e7ec23e2e7fd779da5bda09 Mon Sep 17 00:00:00 2001
+From: Rodrigo Osorio <rodrigo@osorio.me>
+Date: Sat, 28 Mar 2020 18:17:11 +0100
+Subject: [PATCH] Zero-out the sockaddr struct before using it
+
+The sockaddr union struct must be zero-out
+before usage at least for IPv6.
+
+IEEE Std 1003.1, 2004 Edition says:
+---
+The sockaddr_in6 structure shall be set to zero by an
+application prior to using it, since implementations
+are free to have additional, implementation-defined
+fields in sockaddr_in6.
+---
+ fcgiwrap.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index b44d8aa..2e0f44f 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -726,6 +726,8 @@ static int setup_socket(char *url) {
+ struct sockaddr_in6 sa_in6;
+ } sa;
+
++ memset(&sa, 0, sizeof(sa));
++
+ if (!strncmp(p, "unix:", sizeof("unix:") - 1)) {
+ p += sizeof("unix:") - 1;
+
+
diff --git a/www-misc/fcgiwrap/metadata.xml b/www-misc/fcgiwrap/metadata.xml
new file mode 100644
index 000000000000..c57615905af0
--- /dev/null
+++ b/www-misc/fcgiwrap/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription lang="en">
+ fcgiwrap is a simple server for running CGI applications over FastCGI. It
+ hopes to provide clean CGI support to Nginx (and other web servers that may
+ need it).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/litmus/Manifest b/www-misc/litmus/Manifest
new file mode 100644
index 000000000000..a3d992f7e45b
--- /dev/null
+++ b/www-misc/litmus/Manifest
@@ -0,0 +1 @@
+DIST litmus-0.13.tar.gz 467532 BLAKE2B 509951d2751e32917f920fd37720dab215b1b81e6450ee96c5adaad22efd06ce781b80cb6acb363dda9e62ed9e08c2bab1869d24a4fd70f5f7bc337f3e112af4 SHA512 a1c04a17cbe4a17b5e0ed768017296256c9f234ae3f238f838f55064855b254246ba1d2e41b07145e1a9587698145b36b67e31488cfce817a9b5b119ee505b1e
diff --git a/www-misc/litmus/files/litmus-0.13-autotools-neon-version.patch b/www-misc/litmus/files/litmus-0.13-autotools-neon-version.patch
new file mode 100644
index 000000000000..b1fdfd61e3ec
--- /dev/null
+++ b/www-misc/litmus/files/litmus-0.13-autotools-neon-version.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,7 +20,7 @@
+ dnl List of tests
+ AC_SUBST([TESTS], ["basic copymove props locks http"])
+
+-NE_REQUIRE_VERSIONS([0], [25 26 27 28 29])
++NE_REQUIRE_VERSIONS([0], [25 26 27 28 29 30 31 32])
+ NEON_WITHOUT_ZLIB
+ NEON_WITHOUT_ACL
+ NEON_TEST
diff --git a/www-misc/litmus/litmus-0.13-r2.ebuild b/www-misc/litmus/litmus-0.13-r2.ebuild
new file mode 100644
index 000000000000..200b72101d39
--- /dev/null
+++ b/www-misc/litmus/litmus-0.13-r2.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="WebDAV server protocol compliance test suite"
+HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
+SRC_URI="mirror://gentoo/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug expat gnutls kerberos libproxy +libxml2 pkcs11 +ssl threads"
+REQUIRED_USE="
+ ?? ( gnutls ssl )
+ ^^ ( expat libxml2 )
+ threads? (
+ ^^ ( gnutls ssl )
+ )
+"
+
+# TODO: FAIL (connection refused by '...' port 80: Connection refused)
+# We can't run tests that connect with the internet.
+RESTRICT="test"
+
+DEPEND="
+ net-libs/neon:0=[expat?,gnutls?,kerberos?,libproxy?,pkcs11?,ssl?,zlib]
+ expat? ( dev-libs/expat:0 )
+ gnutls? ( net-libs/gnutls:0 )
+ kerberos? ( app-crypt/mit-krb5:0 )
+ libproxy? ( net-libs/libproxy:0 )
+ libxml2? ( dev-libs/libxml2:2= )
+ pkcs11? ( dev-libs/pakchois:0 )
+ ssl? ( dev-libs/openssl:0 )
+"
+
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-autotools-neon-version.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-warnings
+ --without-egd
+ --with-neon
+ --without-included-neon
+ $(use_enable debug)
+ $(use_enable threads threadsafe-ssl posix)
+ $(use_with gnutls ssl gnutls)
+ $(use_with ssl ssl openssl)
+ $(use_with expat)
+ $(use_with libxml2)
+ $(use_with kerberos gssapi)
+ $(use_with pkcs11 pakchois)
+ $(use_with libproxy)
+ )
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/www-misc/litmus/metadata.xml b/www-misc/litmus/metadata.xml
new file mode 100644
index 000000000000..3b9e70be1c5b
--- /dev/null
+++ b/www-misc/litmus/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>bertrand@jacquin.bzh</email>
+ <name>Bertrand Jacquin</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="libproxy">Support for automatic proxy configuration management through <pkg>net-libs/libproxy</pkg>.</flag>
+ <flag name="libxml2">Use <pkg>dev-libs/libxml2</pkg> to parse XML</flag>
+ <flag name="pkcs11">Support for PKCS #11 through PaKChoiS (<pkg>dev-libs/pakchois</pkg>).</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/logswan/Manifest b/www-misc/logswan/Manifest
new file mode 100644
index 000000000000..337c9961dfbe
--- /dev/null
+++ b/www-misc/logswan/Manifest
@@ -0,0 +1 @@
+DIST logswan-2.1.15.gh.tar.gz 25775 BLAKE2B 28e9145083c84700b57fd576c05b125b186d6bf639416d753153edc38bda135591dc1d811e5ac617927d19df2cb8dbc66dba8cac9597a29e38bb795d614d3e3d SHA512 9c829f48e532a5f094b067ca8230a3767a9b3ded8597a9f51daae4fbfe799efa0cc51685019ad2f8752423c8ae87ea85e0ad2251bfbcfb9f95ad60b21ea3d59f
diff --git a/www-misc/logswan/logswan-2.1.15.ebuild b/www-misc/logswan/logswan-2.1.15.ebuild
new file mode 100644
index 000000000000..c0d3b94e6940
--- /dev/null
+++ b/www-misc/logswan/logswan-2.1.15.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Fast Web log analyzer using probabilistic data structures"
+HOMEPAGE="https://www.logswan.org/
+ https://github.com/fcambus/logswan/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/fcambus/${PN}"
+else
+ SRC_URI="https://github.com/fcambus/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+
+ KEYWORDS="amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+
+RDEPEND="
+ dev-libs/jansson:=
+ dev-libs/libmaxminddb:=
+"
+DEPEND="
+ ${RDEPEND}
+"
diff --git a/www-misc/logswan/logswan-9999.ebuild b/www-misc/logswan/logswan-9999.ebuild
new file mode 100644
index 000000000000..6ac9fe8874df
--- /dev/null
+++ b/www-misc/logswan/logswan-9999.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Fast Web log analyzer using probabilistic data structures"
+HOMEPAGE="https://www.logswan.org/
+ https://github.com/fcambus/logswan/"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/fcambus/${PN}.git"
+else
+ SRC_URI="https://github.com/fcambus/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+
+RDEPEND="
+ dev-libs/jansson:=
+ dev-libs/libmaxminddb:=
+"
+DEPEND="${RDEPEND}"
diff --git a/www-misc/logswan/metadata.xml b/www-misc/logswan/metadata.xml
new file mode 100644
index 000000000000..72eb678727ec
--- /dev/null
+++ b/www-misc/logswan/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Logswan is a fast Web log analyzer using probabilistic data structures. It
+ is targeted at very large log files, typically APIs logs. It has constant
+ memory usage regardless of the log file size, and takes approximatively 4MB
+ of RAM. Unique visitors counting is performed using two HyperLogLog
+ counters (one for IPv4, and another one for IPv6), providing a relative
+ accuracy of 0.10%. String representations of IP addresses are used and
+ preferred as they offer better precision. Project design goals include:
+ speed, memory-usage efficiency, and keeping the code as simple as possible.
+ </longdescription>
+ <upstream>
+ <changelog>https://raw.githubusercontent.com/fcambus/logswan/master/ChangeLog</changelog>
+ <bugs-to>https://github.com/fcambus/logswan/issues/</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/mergelog/Manifest b/www-misc/mergelog/Manifest
new file mode 100644
index 000000000000..0b48916c48eb
--- /dev/null
+++ b/www-misc/mergelog/Manifest
@@ -0,0 +1 @@
+DIST mergelog-4.5.tar.gz 39407 BLAKE2B ea51ab27a4a76e635b3a364854cb488ef5b88878a5cb5118443f14658661157c4a8cf601f945e8869614b0205ff71f89d8d8e0b80815a2671ba497e740d6d01a SHA512 f2259cb8981871c1f9d7cadc5414997789aa13eed0e18701673ffbddedc74954e137e282c1357cafaf515e18b39e256f890ec31568a305feefa1089a9347991f
diff --git a/www-misc/mergelog/files/mergelog-4.5-asneeded.patch b/www-misc/mergelog/files/mergelog-4.5-asneeded.patch
new file mode 100644
index 000000000000..77573cc60f9e
--- /dev/null
+++ b/www-misc/mergelog/files/mergelog-4.5-asneeded.patch
@@ -0,0 +1,32 @@
+Index: mergelog-4.5/configure.in
+===================================================================
+--- mergelog-4.5.orig/configure.in
++++ mergelog-4.5/configure.in
+@@ -10,6 +10,7 @@ AC_PROG_INSTALL()
+
+ dnl Checks for programs.
+ AC_PROG_CC
++AM_PROG_CC_C_O
+
+ dnl Checks for libraries.
+ dnl Replace `main' with a function in -lz:
+Index: mergelog-4.5/src/Makefile.am
+===================================================================
+--- mergelog-4.5.orig/src/Makefile.am
++++ mergelog-4.5/src/Makefile.am
+@@ -1,7 +1,10 @@
+ bin_PROGRAMS=mergelog zmergelog
+
+-mergelog: mergelog.c
+- $(COMPILE) $(LIBS) -DVERSION=\"$(VERSION)\" -Wall mergelog.c -o $@
+-
+-zmergelog: mergelog.c
+- $(COMPILE) $(LIBS) -DVERSION=\"$(VERSION)\" -Wall -DUSE_ZLIB mergelog.c -o $@
++# This is a bit of a hack, but it preserves the original design of the
++# upstream Makefile.am in assuming that $VERSION will be defined in the
++# Makefile that is actually fed to make.
++AM_CPPFLAGS=-DVERSION=\"@VERSION@\"
++AM_CFLAGS=-Wall
++mergelog_SOURCES = mergelog.c
++zmergelog_SOURCES = mergelog.c
++zmergelog_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_ZLIB
diff --git a/www-misc/mergelog/files/mergelog-4.5-splitlog.patch b/www-misc/mergelog/files/mergelog-4.5-splitlog.patch
new file mode 100644
index 000000000000..ddc0348543be
--- /dev/null
+++ b/www-misc/mergelog/files/mergelog-4.5-splitlog.patch
@@ -0,0 +1,384 @@
+Index: mergelog-4.5/configure.in
+===================================================================
+--- mergelog-4.5.orig/configure.in
++++ mergelog-4.5/configure.in
+@@ -2,7 +2,7 @@ dnl Process this file with autoconf to p
+ AC_INIT(src/mergelog.c)
+
+ PACKAGE=mergelog
+-VERSION=4.5
++VERSION=4.5-split
+ AM_INIT_AUTOMAKE($PACKAGE,$VERSION,nosubst)
+
+ AC_ARG_PROGRAM
+Index: mergelog-4.5/man/mergelog.1
+===================================================================
+--- mergelog-4.5.orig/man/mergelog.1
++++ mergelog-4.5/man/mergelog.1
+@@ -1,8 +1,9 @@
+-.TH MERGELOG 1 "22 Jan 2001"
++.TH MERGELOG 1 "20 Jun 2001"
+ .SH NAME
+ mergelog \- a fast tool to merge http log files by date
+ .SH SYNOPSIS
+ .B mergelog
++.IR [-vh]\ [-o\ outfmt]
+ .IR logfile1
+ .IR logfile2 \ ...
+ .SH DESCRIPTION
+Index: mergelog-4.5/man/zmergelog.1
+===================================================================
+--- mergelog-4.5.orig/man/zmergelog.1
++++ mergelog-4.5/man/zmergelog.1
+@@ -1,8 +1,9 @@
+-.TH ZMERGELOG 1 "22 Jan 2001"
++.TH ZMERGELOG 1 "20 Jun 2001"
+ .SH NAME
+ zmergelog \- a fast tool to merge gzipped http log files by date
+ .SH SYNOPSIS
+ .B zmergelog
++.IR [-vh]\ [-o\ outfmt]
+ .IR logfile1
+ .IR logfile2 \ ...
+ .SH DESCRIPTION
+Index: mergelog-4.5/src/mergelog.c
+===================================================================
+--- mergelog-4.5.orig/src/mergelog.c
++++ mergelog-4.5/src/mergelog.c
+@@ -45,12 +45,16 @@
+ #define mygets(a,b,c,d) fast_gzgets(a,b,c,d)
+ #define myrewind gzrewind
+ #define myclose gzclose
++#define mywrite(f,b,l) gzwrite((f),(b),(l))
++#define MYSUFFIX ".gz"
+ #else
+ #define myFH FILE
+ #define myopen fopen
+ #define mygets(a,b,c,d) fgets(a,b,c)
+ #define myrewind rewind
+ #define myclose fclose
++#define mywrite(f,b,l) fwrite((b),1,(l),(f))
++#define MYSUFFIX
+ #endif
+
+
+@@ -112,20 +116,141 @@ int main (int argc, char *argv[]) {
+ char *trans_digits[60];
+ char *trans_year[200];
+ char months[24]="anebarprayunulugepctovec";
++ int goc;
++ int goUsage = 0, goVerbose = 0;
++ const char* goOutput = NULL;
++ const char* argv0 = *argv;
++ struct tm gotmFlags;
++ const char* goOutPtr;
++ myFH *outFile = NULL;
++ char outFileName[512];
++ struct tm outFileTM;
++ char outFileNewName[512];
++ size_t outBytes;
++
++ while((goc=getopt(argc,argv,"vho:"))!=-1) {
++ switch(goc) {
++ case 'h': /* -h print usage */
++ goUsage++;
++ break;
++ case 'v': /* -v verbose */
++ goVerbose++;
++ break;
++ case 'o': /* -o fmt output specification */
++ goOutput = optarg;
++ break;
++ default: /* whatever.. but we better print out usage */
++ goUsage++;
++ break;
++ }
++ }
++ argv = &argv[optind];
++ argc -= optind;
+
+- /*
+- print usage if necessary
+- */
+- if (argc == 1) {
+- fprintf(stderr,"usage: %s logfile1 logfile2 ...\nmergelog %s Copyright (C) 2000-2001 Bertrand Demiddelaer\n",argv[0],VERSION);
++ if(argc<1)
++ goUsage++;
++ if(goUsage) {
++ printf(
++ "mergelog " VERSION " Copyright (c) 2000-2001 Bertrand Demiddelaer\n\n"
++ "I have at least %d reason(s) for lending you a helping hand on using the program.\n\n"
++ "Usage: %s [-vh] [-o fmt] logfile1 logfile2 ..\n\n"
++ " -h Print this message\n"
++ " -v Increase verbosity\n"
++ " -o Give template for output file name to write log to\n"
++ " instead of standard output in strftime(3) form.\n"
++ " ( eg. -o %%Y-%%m-%%d-access.log" MYSUFFIX ")\n",
++ goUsage,argv0);
+ exit(1);
+ }
+
++ /* Analyze output format if given. It's better than trying to
++ * regenerate file name and compare it to the filename currently being
++ * written each time we want to dump one line. */
++ if(goOutput) {
++ memset(&gotmFlags,0,sizeof(gotmFlags));
++ for(goOutPtr=goOutput;*goOutPtr;goOutPtr++) {
++ if( (*goOutPtr=='%') && goOutPtr[1]) {
++ switch(*(++goOutPtr)) {
++ case 'a': /* abbreviated weekday */
++ case 'A': /* full weekday */
++ case 'u': /* day of week number */
++ case 'w': /* zerobased weekday number */
++ gotmFlags.tm_wday = 1;
++ break;
++ case 'b': /* abbreviated month */
++ case 'h': /* %b */
++ case 'B': /* full month */
++ case 'm': /* month number */
++ gotmFlags.tm_mon = 1;
++ break;
++ case 'C': /* century */
++ case 'y': /* centuryless year */
++ case 'Y': /* year with a century */
++ gotmFlags.tm_year = 1;
++ break;
++ case 'd': /* day of month */
++ case 'e': /* day of month space padded */
++ gotmFlags.tm_mday = 1;
++ break;
++ case 'D': /* %m/%d/%y americanism */
++ gotmFlags.tm_mon = gotmFlags.tm_mday = gotmFlags.tm_year = 1;
++ break;
++ case 'G': /* ISO 8601 year repsesentation. depends on week */
++ case 'g': /* ISO 8601 year repsesentation without century. depends on week */
++ case 'U': /* sunday-based week number */
++ case 'V': /* ISO 8601 week number */
++ case 'W': /* monday-based week number */
++ case 'x': /* preferred date representation for locale without the time */
++ gotmFlags.tm_yday = gotmFlags.tm_year = 1;
++ break;
++ case 'H': /* 24h format hour */
++ case 'I': /* 12h format hour */
++ case 'k': /* 24h format hour space padded */
++ case 'l': /* 12h format hour space padded */
++ case 'p': /* AM/PM indicator */
++ case 'P': /* am/pm indicator */
++ gotmFlags.tm_hour = 1;
++ break;
++ case 'j': /* day of year */
++ gotmFlags.tm_yday = 1;
++ break;
++ case 'M': /* minute */
++ gotmFlags.tm_min = 1;
++ break;
++ case 'n': /* newline character */
++ case 't': /* tab character */
++ case 'z': /* time zone as an offset from GMT */
++ case 'Z': /* timezone name or abbreviation */
++ case '%': /* % character */
++ break;
++ case 'r': /* %I:%M:%S %p time in am/pm notation*/
++ case 'T': /* %H:%M:%S time in 24h notation */
++ case 'X': /* preferred time representation for locale without the date */
++ gotmFlags.tm_hour = gotmFlags.tm_min = gotmFlags.tm_sec = 1;
++ break;
++ case 'R': /* %H:%M time in 24h notation without seconds */
++ gotmFlags.tm_hour = gotmFlags.tm_min = 1;
++ break;
++ case 'S': /* second */
++ gotmFlags.tm_sec = 1;
++ break;
++ case 'c': /* preferred date and time representation for locale */
++ case 'E': /* weird modifier */
++ case 'O': /* weird modifier */
++ case 's': /* number of seconds since epoch */
++ case '+': /* date and time in date(1) format */
++ memset(&gotmFlags,0xFF,sizeof(gotmFlags));
++ break;
++ }
++ }
++ }
++ }
++
+ #ifdef USE_ZLIB
+ /*
+ check if there are enough gunzip buffers
+ */
+- if(argc>MAX_FILES) {
++ if(argc>=MAX_FILES) {
+ fputs("too many gzipped log files, aborting\n",stderr);
+ exit(1);
+ }
+@@ -134,9 +259,9 @@ int main (int argc, char *argv[]) {
+ /*
+ open log files
+ */
+- for (i=1;i<argc;i++) {
+- log_file[i-1]=myopen(argv[i],"r");
+- if (log_file[i-1] == NULL) {
++ for (i=0;i<argc;i++) {
++ log_file[i]=myopen(argv[i],"r");
++ if (log_file[i] == NULL) {
+ fprintf(stderr,"can't open %s, aborting\n",argv[i]);
+ exit(1);
+ }
+@@ -174,8 +299,8 @@ int main (int argc, char *argv[]) {
+ /*
+ init things for each log file and get the older date to start with
+ */
+- nb_files=argc-1;
+- for (i=0;i<argc-1;i++) {
++ nb_files=argc;
++ for (i=0;i<argc;i++) {
+
+ #ifdef USE_ZLIB
+ /*
+@@ -230,7 +355,7 @@ int main (int argc, char *argv[]) {
+ */
+ log_date=memchr(log_scan[i],'[',SCAN_SIZE);
+ if (log_date == NULL) {
+- fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i+1],log_buffer[i]);
++ fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i],log_buffer[i]);
+ exit(1);
+ }
+
+@@ -239,7 +364,7 @@ int main (int argc, char *argv[]) {
+ */
+ for (j=0;((j == 12)&&(memcmp(months+2*j,log_date+5,2) != 0));j++);
+ if (j == 12) {
+- fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i+1],log_buffer[i]);
++ fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i],log_buffer[i]);
+ exit(1);
+ }
+ memcpy(log_month[i],trans_digits[j],2);
+@@ -255,7 +380,7 @@ int main (int argc, char *argv[]) {
+ extract the date of this first line
+ */
+ if (sscanf(log_date+1,"%d/%3c/%d:%d:%d:%d",&day,month,&year,&hour,&minut,&second) < 6) {
+- fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i+1],log_buffer[i]);
++ fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i],log_buffer[i]);
+ exit(1);
+ }
+
+@@ -270,7 +395,7 @@ int main (int argc, char *argv[]) {
+ date->tm_isdst=-1;
+ for (j=0;((j<12)&&(memcmp(months+2*j,month+1,2) != 0));j++);
+ if (j == 12) {
+- fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i+1],log_buffer[i]);
++ fprintf(stderr,"abort due to a problem with %s:\n%s\n",argv[i],log_buffer[i]);
+ exit(1);
+ }
+ date->tm_mon=j;
+@@ -303,6 +428,8 @@ int main (int argc, char *argv[]) {
+ exit if we have only empty files
+ */
+ if (nb_files == 0) {
++ if(outFile)
++ myclose(outFile);
+ exit(0);
+ }
+
+@@ -323,7 +450,7 @@ int main (int argc, char *argv[]) {
+ /*
+ start to compute since this date
+ */
+- nb_files_orig=argc-1;
++ nb_files_orig=argc;
+ for(;;) {
+
+ /*
+@@ -377,7 +504,55 @@ int main (int argc, char *argv[]) {
+ write the log line
+ faster than a puts and we are sure to find a '\0' in log_buffer[i]
+ */
+- write(1,log_buffer[i],(size_t)((char *)memchr(log_buffer[i],0,BUFFER_SIZE)-log_buffer[i]));
++ if(goOutput) {
++ /* Check whether any of the date/time components concerned
++ * have changes or if we have no output file opened. It
++ * doesn't make much sense to do all the comparinsons in case
++ * we have no output file opened, but it makes even less sense
++ * to check for file handle each time we evaluate date. */
++ if(
++# define TMCOMPARE(tmpart) ( gotmFlags.tm_##tmpart && (outFileTM.tm_##tmpart!=date->tm_##tmpart) )
++ TMCOMPARE(sec) || TMCOMPARE(min) || TMCOMPARE(hour)
++ || TMCOMPARE(mday) || TMCOMPARE(mon) || TMCOMPARE(year)
++ || TMCOMPARE(wday) || TMCOMPARE(yday)
++ || !outFile
++# undef TMCOMPARE
++ ) {
++ if(!strftime(outFileNewName,sizeof(outFileNewName)-1,goOutput,date)) {
++ fprintf(stderr,"abort due to a failed attempt to generate output file name\n");
++ if(outFile)
++ myclose(outFile);
++ exit(1);
++ }
++ if( (!outFile) || strcmp(outFileName,outFileNewName) ) {
++ /* okay, we're about to change output file or start
++ * writing first file */
++ if(outFile) {
++ myclose(outFile);
++ }
++ if(goVerbose)
++ fprintf(stderr, "Writing to \"%s\"..\n",outFileNewName);
++ outFile = myopen(outFileNewName,"a");
++ if(!outFile) {
++ fprintf(stderr, "abort due to a failed attempt to open/create output file %s: %m\n",outFileNewName);
++ exit(1);
++ }
++ memmove(outFileName,outFileNewName,sizeof(outFileName));
++ memmove(&outFileTM,date,sizeof(outFileTM));
++ }
++ }
++ /* %Y-%m-%d_%H-%M-%S-access.log */
++ outBytes = (size_t)((char *)memchr(log_buffer[i],0,BUFFER_SIZE)-log_buffer[i]);
++ if( mywrite(outFile,log_buffer[i],outBytes) != outBytes) {
++ fprintf(stderr,"abort due to a failed write operation on output file %s: %m\n",outFileName);
++ if(outFile)
++ myclose(outFile);
++ exit(1);
++ }
++ }else{
++ /* do it the way we would do without */
++ write(1,log_buffer[i],(size_t)((char *)memchr(log_buffer[i],0,BUFFER_SIZE)-log_buffer[i]));
++ }
+
+ /*
+ is it an end of file ?
+@@ -388,7 +563,9 @@ int main (int argc, char *argv[]) {
+ close all log files and exit if all end of files are reached
+ */
+ if (--nb_files == 0) {
+- for (j=0;j<argc-1;j++) {
++ if(outFile)
++ myclose(outFile);
++ for (j=0;j<argc;j++) {
+ myclose(log_file[j]);
+ }
+ exit(0);
+@@ -425,7 +602,7 @@ int main (int argc, char *argv[]) {
+ } else {
+ for (j=0;((j<12)&&(memcmp(months+2*j,log_date+5,2) != 0));j++);
+ if (j == 12) {
+- fprintf(stderr,"problem with %s:\n%s\ncontinuing...\n",argv[i+1],log_buffer[i]);
++ fprintf(stderr,"problem with %s:\n%s\ncontinuing...\n",argv[i],log_buffer[i]);
+ } else {
+ memcpy(log_month[i],trans_digits[j],2);
+ memcpy(log_month[i]+2,months+2*j,2);
+@@ -439,7 +616,7 @@ int main (int argc, char *argv[]) {
+ }
+ }
+ } else {
+- fprintf(stderr,"problem with %s:\n%s\ncontinuing...\n",argv[i+1],log_buffer[i]);
++ fprintf(stderr,"problem with %s:\n%s\ncontinuing...\n",argv[i],log_buffer[i]);
+ }
+ }
+ }
+@@ -451,3 +628,7 @@ int main (int argc, char *argv[]) {
+ */
+ exit(1);
+ }
++/* vim:set textwidth=72: */
++/* vim:set cindent smartindent: */
++/* vim:set formatoptions-=t formatoptions+=croql: */
++/* vim:set expandtab shiftwidth=2: */
diff --git a/www-misc/mergelog/files/mergelog-4.5-zlib-gcc14-pointer.diff b/www-misc/mergelog/files/mergelog-4.5-zlib-gcc14-pointer.diff
new file mode 100644
index 000000000000..c2f62a8528fb
--- /dev/null
+++ b/www-misc/mergelog/files/mergelog-4.5-zlib-gcc14-pointer.diff
@@ -0,0 +1,48 @@
+diff '--color=auto' -Nur mergelog-4.5~/src/mergelog.c mergelog-4.5/src/mergelog.c
+--- mergelog-4.5~/src/mergelog.c 2025-06-07 18:17:16.000000000 +0200
++++ mergelog-4.5/src/mergelog.c 2025-06-07 18:17:59.000000000 +0200
+@@ -40,7 +40,7 @@
+
+
+ #ifdef USE_ZLIB
+-#define myFH gzFile
++typedef gzFile myFH;
+ #define myopen gzopen
+ #define mygets(a,b,c,d) fast_gzgets(a,b,c,d)
+ #define myrewind gzrewind
+@@ -48,7 +48,7 @@
+ #define mywrite(f,b,l) gzwrite((f),(b),(l))
+ #define MYSUFFIX ".gz"
+ #else
+-#define myFH FILE
++typedef FILE * myFH;
+ #define myopen fopen
+ #define mygets(a,b,c,d) fgets(a,b,c)
+ #define myrewind rewind
+@@ -71,7 +71,7 @@
+ /*
+ replacement for gzgets which reduces calls to zlib decompression
+ */
+-char *fast_gzgets (char *buf, int size, myFH *fp, int i) {
++char *fast_gzgets (char *buf, int size, myFH fp, int i) {
+
+ char *out_cp=buf;
+
+@@ -101,7 +101,7 @@
+ int main (int argc, char *argv[]) {
+
+ int i,j,nb_files,nb_files_orig;
+- myFH *log_file[argc-1];
++ myFH log_file[argc-1];
+ char *log_buffer[argc-1];
+ char *log_scan[argc-1];
+ char *log_month[argc-1];
+@@ -122,7 +122,7 @@
+ const char* argv0 = *argv;
+ struct tm gotmFlags;
+ const char* goOutPtr;
+- myFH *outFile = NULL;
++ myFH outFile = NULL;
+ char outFileName[512];
+ struct tm outFileTM;
+ char outFileNewName[512];
diff --git a/www-misc/mergelog/mergelog-4.5-r4.ebuild b/www-misc/mergelog/mergelog-4.5-r4.ebuild
new file mode 100644
index 000000000000..a0044dde264c
--- /dev/null
+++ b/www-misc/mergelog/mergelog-4.5-r4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A utility to merge apache logs in chronological order"
+HOMEPAGE="http://mergelog.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/mergelog/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ppc x86"
+
+RDEPEND="virtual/zlib:="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-splitlog.patch"
+ "${FILESDIR}/${P}-asneeded.patch"
+ "${FILESDIR}/${P}-zlib-gcc14-pointer.diff"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/www-misc/mergelog/metadata.xml b/www-misc/mergelog/metadata.xml
new file mode 100644
index 000000000000..b2d7a47dffd4
--- /dev/null
+++ b/www-misc/mergelog/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/monitorix/Manifest b/www-misc/monitorix/Manifest
new file mode 100644
index 000000000000..20455b7ebd9b
--- /dev/null
+++ b/www-misc/monitorix/Manifest
@@ -0,0 +1 @@
+DIST monitorix-3.16.0.tar.gz 407707 BLAKE2B 328681b63107db80f6c2f77a95bc90c2fcce7ca4aac78a9a7493937ed3bac5a88dd3f4c5449abc0fea00a9efa738b8742ce1c15b7122eee099107439337afa88 SHA512 92baa4470fb1a2ea482de644975be214086bdf5af3820c23369ebd12128a55a45671d8c30c395643c36bf46b4ac55d5276ca44e671fa3060b84dcaa8e7562988
diff --git a/www-misc/monitorix/files/monitorix b/www-misc/monitorix/files/monitorix
new file mode 100644
index 000000000000..e0e6b538aa3c
--- /dev/null
+++ b/www-misc/monitorix/files/monitorix
@@ -0,0 +1,30 @@
+#!/sbin/openrc-run
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+name="Monitorix"
+description="Monitorix is a lightweight system monitoring tool"
+command=/usr/sbin/monitorix
+command_args="-c /etc/monitorix/monitorix.conf -p /var/run/$name.pid"
+pidfile=/var/run/monitorix.pid
+
+checkconfig() {
+ if [ ! -e /etc/monitorix/monitorix.conf ]; then
+ eerror "Please check that the configuration file exists."
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting $name"
+ start-stop-daemon --start --name $name --pidfile /var/run/$name.pid --exec $command -- $command_args
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping $name"
+ start-stop-daemon --stop --pidfile /var/run/$name.pid
+ eend $?
+}
+
diff --git a/www-misc/monitorix/metadata.xml b/www-misc/monitorix/metadata.xml
new file mode 100644
index 000000000000..7f6c49790ebe
--- /dev/null
+++ b/www-misc/monitorix/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>dwosky@pm.me</email>
+ <name>Pedro Arizmendi</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Gentoo Proxy Maintainers Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:fibranet:monitorix</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/monitorix/monitorix-3.16.0.ebuild b/www-misc/monitorix/monitorix-3.16.0.ebuild
new file mode 100644
index 000000000000..1863d276da1c
--- /dev/null
+++ b/www-misc/monitorix/monitorix-3.16.0.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd optfeature
+
+DESCRIPTION="A lightweight system monitoring tool"
+HOMEPAGE="https://www.monitorix.org/"
+SRC_URI="https://www.monitorix.org/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="
+ acct-group/monitorix
+ acct-user/monitorix
+ dev-perl/CGI
+ dev-perl/Config-General
+ dev-perl/DBI
+ dev-perl/HTTP-Server-Simple
+ dev-perl/IO-Socket-SSL
+ dev-perl/MIME-Lite
+ dev-perl/XML-Simple
+ dev-perl/libwww-perl
+ net-analyzer/rrdtool[graph,perl]"
+
+src_prepare() {
+ # Put better Gentoo defaults in the configuration file.
+ sed -e "s|\(secure_log.*\)/var/log/secure|\1/var/log/auth.log|" \
+ -e "s|nobody|${PN}|g" -i ${PN}.conf || die
+ # Update systemd binary location
+ sed -e "s|/usr/bin|/usr/sbin|g" -i docs/${PN}.service || die
+ eapply_user
+}
+
+# Override compile phase
+src_compile() { :; }
+
+src_install() {
+ dosbin ${PN}
+
+ newinitd "${FILESDIR}/monitorix" ${PN}
+
+ insinto /etc/monitorix
+ doins ${PN}.conf
+
+ keepdir /etc/${PN}/conf.d
+
+ insinto /etc/logrotate.d
+ newins docs/${PN}.logrotate ${PN}
+
+ dodoc Changes README{,.nginx} docs/${PN}-{alert.sh,apache.conf,lighttpd.conf}
+ doman man/man5/${PN}.conf.5
+ doman man/man8/${PN}.8
+
+ insinto /var/lib/${PN}/www
+ doins logo_bot.png logo_top.png ${PN}ico.png
+
+ insinto /var/lib/${PN}/www/css
+ doins css/*.css
+
+ keepdir /var/lib/${PN}/www/imgs
+ fowners monitorix:monitorix /var/lib/${PN}/www/imgs
+
+ exeinto /var/lib/${PN}/www/cgi
+ doexe ${PN}.cgi
+
+ exeinto /usr/lib/${PN}
+ doexe lib/*.pm
+
+ keepdir /var/lib/${PN}/usage
+ insinto /var/lib/${PN}/reports
+ doins -r reports
+
+ systemd_dounit docs/${PN}.service
+}
+
+pkg_postinst() {
+ optfeature_header "Optional package dependencies for certain graphs:"
+ optfeature "disk drive temperatures and health" app-admin/hddtemp
+ optfeature "email reports/statics" mail-mta/postfix mail-mta/sendmail
+ optfeature "lm-sensors and GPU temperatures" sys-apps/lm-sensors
+ optfeature "ZFS statistics" sys-fs/zfs
+ optfeature "Tinyproxy statistics" "net-proxy/tinyproxy dev-perl/XML-LibXML"
+ optfeature "Libvirt statistics" app-emulation/libvirt
+ optfeature "System services demand" mail-filter/MailScanner mail-filter/amavisd-new
+ optfeature "Mail statistics" mail-filter/MailScanner mail-filter/amavisd-new
+ optfeature "FTP statistics" net-ftp/proftpd net-ftp/vsftpd net-ftp/pure-ftpd
+ optfeature "Apache statistics" www-servers/apache
+ optfeature "Nginx statistics" www-servers/nginx
+ optfeature "Lighttpd statistics" www-servers/lighttpd
+ optfeature "MySQL statistics" dev-db/mysql
+ optfeature "PostgreSQL statistics" dev-db/postgresql
+ optfeature "MongoDB statistics" dev-db/mongodb
+ optfeature "Varnish cache statistics" www-servers/varnish
+ optfeature "Squid Proxy Web Cache" net-proxy/squid
+ optfeature "NFS client/server statistics" net-fs/nfs-utils
+ optfeature "BIND statistics" "net-dns/bind dev-perl/XML-LibXML"
+ optfeature "Unbound statistics" net-dns/unbound
+ optfeature "NTP statistics" net-misc/ntp
+ optfeature "Chrony statistics" net-misc/chrony
+ optfeature "Fail2ban statistics" net-analyzer/fail2ban
+ optfeature "Icecast Streaming Media Server" net-misc/icecast
+ optfeature "Memcached statistics" net-misc/memcached
+ optfeature "Redis statistics" dev-db/redis
+ optfeature "APC UPS statistics" sys-power/apcupsd
+ optfeature "Network UPS Tools statistics" sys-power/nut
+ optfeature "Monitoring the Internet traffic of your LAN" "net-firewall/iptables dev-perl/Net-IP"
+
+ elog
+ elog "If you wish to use your own web server:"
+ elog " Web data can be found at: ${EROOT}/var/lib/${PN}/www/"
+ elog " Also please check the correct user and group ownership"
+ elog " of ${EROOT}/var/lib/${PN}/www/imgs/"
+}
diff --git a/www-misc/multisort/Manifest b/www-misc/multisort/Manifest
new file mode 100644
index 000000000000..e530b66a4599
--- /dev/null
+++ b/www-misc/multisort/Manifest
@@ -0,0 +1 @@
+DIST multisort-1.1.tar.gz 3520 BLAKE2B 8fcd797abb9649b21d80bd964a2f82b05f0bbf4b5b0f263b156d8b90ab36f87009199aecbf19b495e7c56415e707cd675cb7b73346a233a6a52b9b66ea223a21 SHA512 346be785a223814086536bfc8aacb11122ca91cf6cb63c8bbe2ae70f323bd36812f25575114c1422c431f658328bbb7fc75b839e74b7f37c12c4a3f179e05e1b
diff --git a/www-misc/multisort/metadata.xml b/www-misc/multisort/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/www-misc/multisort/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/multisort/multisort-1.1-r2.ebuild b/www-misc/multisort/multisort-1.1-r2.ebuild
new file mode 100644
index 000000000000..35c14da6bef1
--- /dev/null
+++ b/www-misc/multisort/multisort-1.1-r2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Merges httpd logfiles in the Common Log Format"
+HOMEPAGE="https://www.xach.com/multisort/"
+SRC_URI="https://www.xach.com/${PN}/${PN}-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+src_prepare() {
+ default
+ # respect LDFLAGS wrt bug #337359
+ sed -i -e 's/$(CFLAGS)/& \$(LDFLAGS)/' Makefile || die 'sed on Makefile failed'
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dosbin multisort
+}
diff --git a/www-misc/profile-sync-daemon/Manifest b/www-misc/profile-sync-daemon/Manifest
new file mode 100644
index 000000000000..ec3b505b7eeb
--- /dev/null
+++ b/www-misc/profile-sync-daemon/Manifest
@@ -0,0 +1,3 @@
+DIST profile-sync-daemon-5.75.tar.gz 27829 BLAKE2B b333688af27a7373f72e72a09dd18afc210f2196957a76f6fab59d46ecd4e9b905b833a66bf49001c0be307b05b06320d7ee2b754cee1b6559a113346717b82b SHA512 54c2a6c743bf3a3dd746862f6dc0448c8993c96fe0163f4f89885cee3e4c81ecac46414c0ca57d57ec0e9e6c646f9a39462d5d533a7515a952cc56276509bdc0
+DIST profile-sync-daemon-6.35.tar.gz 20578 BLAKE2B f989682396f1423acf26719b74a356b0ee3933571aaf6a757620504392083d36bce278cfe9e0bb7a81dd1a95d51454c7bb039a556ce3670ce6b75b0c18e2bcea SHA512 e406d39c4edeabc8baa45320a97656791d4099cc8db84aac2cb9f72ef2ed034c82bba73d53457f4ae4201c945af106717d2d979df5a3f154e307f2e6cc41411a
+DIST profile-sync-daemon-6.50.tar.gz 21464 BLAKE2B 8a16fdd102fd96acef9b777c9a4ca23a0d8b2f8e40e222acc85fe2f2a2734030b1cddd866905cb63d0b29ba7f5e0268d6f4987a88a6f7a7628b23338729802a1 SHA512 e98f3d0d4970016459560119547f6b769c4a159c0f75530124b799ed51b7f08ba384a372bb64b9f06bbb64740638059c1a2b4a061ea92589fbbdf601ed279c05
diff --git a/www-misc/profile-sync-daemon/files/bad-substitution-fix.patch b/www-misc/profile-sync-daemon/files/bad-substitution-fix.patch
new file mode 100644
index 000000000000..7551b08157a6
--- /dev/null
+++ b/www-misc/profile-sync-daemon/files/bad-substitution-fix.patch
@@ -0,0 +1,11 @@
+--- a/common/profile-sync-daemon.in 2015-07-29 16:57:24.000000000 -0400
++++ b/common/profile-sync-daemon.in 2017-07-25 21:35:59.209639588 -0400
+@@ -581,7 +581,7 @@
+ # check that the LAST DIRECTORY in the full path is unique
+ unique_count=$(echo ${DIRArr[@]##*/} |
+ sed 's/ /\n/g' | sort -u | wc -l)
+- if [[ ${#DIRArr[@]##*/} -eq $unique_count ]]; then
++ if [[ ${#DIRArr[@]} -eq $unique_count ]]; then
+ # no problems so do nothing
+ return
+ else
diff --git a/www-misc/profile-sync-daemon/files/openrc-path.patch b/www-misc/profile-sync-daemon/files/openrc-path.patch
new file mode 100644
index 000000000000..fc2d51b872d4
--- /dev/null
+++ b/www-misc/profile-sync-daemon/files/openrc-path.patch
@@ -0,0 +1,13 @@
+--- a/Makefile 2015-07-29 17:57:24.000000000 -0300
++++ b/Makefile 2017-02-02 15:08:06.720017266 -0300
+@@ -64,8 +64,8 @@
+
+ install-openrc:
+ $(Q)echo -e '\033[1;32mInstalling openrc files...\033[0m'
+- $(INSTALL_DIR) "$(DESTDIR)$(DOCDIR)"
+- $(INSTALL_SCRIPT) init/psd.openrc "$(DESTDIR)$(DOCDIR)/psd.openrc"
++ $(INSTALL_DIR) "$(DESTDIR)$(INITDIR_UPSTART)"
++ $(INSTALL_SCRIPT) init/psd.openrc "$(DESTDIR)$(INITDIR_UPSTART)/psd"
+ [ -f "$(DESTDIR)$(CONFDIR)/psd.conf" ] || $(INSTALL_DATA) common/psd.conf "$(DESTDIR)$(CONFDIR)/psd.conf"
+
+ install-systemd:
diff --git a/www-misc/profile-sync-daemon/metadata.xml b/www-misc/profile-sync-daemon/metadata.xml
new file mode 100644
index 000000000000..7224721d0acb
--- /dev/null
+++ b/www-misc/profile-sync-daemon/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>jeffrey@icurse.nl</email>
+ <name>Jeffrey Lin</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/profile-sync-daemon/profile-sync-daemon-5.75.ebuild b/www-misc/profile-sync-daemon/profile-sync-daemon-5.75.ebuild
new file mode 100644
index 000000000000..b1dc3c521bf6
--- /dev/null
+++ b/www-misc/profile-sync-daemon/profile-sync-daemon-5.75.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Symlinks and syncs browser profile dirs to RAM"
+HOMEPAGE="https://wiki.archlinux.org/index.php/Profile-sync-daemon"
+SRC_URI="https://github.com/graysky2/profile-sync-daemon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="systemd"
+
+RDEPEND="
+ app-shells/bash
+ net-misc/rsync[xattr]
+ systemd? ( sys-apps/systemd )"
+
+PATCHES=(
+ "${FILESDIR}/openrc-path.patch"
+ "${FILESDIR}/bad-substitution-fix.patch"
+)
+
+src_install() {
+ emake DESTDIR="${ED}" COMPRESS_MAN=0 \
+ "$(usex systemd "install-systemd-all" "install-openrc-all")"
+
+ use systemd || fperms -x /etc/cron.hourly/psd-update
+}
+
+pkg_postinst() {
+ use systemd || elog "The cronjob is -x by default. You might want to set it +x."
+}
diff --git a/www-misc/profile-sync-daemon/profile-sync-daemon-6.35.ebuild b/www-misc/profile-sync-daemon/profile-sync-daemon-6.35.ebuild
new file mode 100644
index 000000000000..8872fc96f0c2
--- /dev/null
+++ b/www-misc/profile-sync-daemon/profile-sync-daemon-6.35.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Symlinks and syncs browser profile dirs to RAM"
+HOMEPAGE="https://wiki.archlinux.org/index.php/Profile-sync-daemon"
+SRC_URI="https://github.com/graysky2/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="
+ app-shells/bash
+ net-misc/rsync[xattr]
+ sys-apps/systemd"
+
+src_install() {
+ emake DESTDIR="${D}" COMPRESS_MAN=0 install
+}
+
+pkg_postinst() {
+ local replacing
+ for replacing in ${REPLACING_VERSIONS}; do
+ if [[ "$(ver_cut 1 "${replacing}")" == "5" ]]; then
+ ewarn "${PN}-6 and later dropped OpenRC and /etc/psd.conf support"
+ ewarn "See https://github.com/graysky2/profile-sync-daemon#note-for-version-6"
+ break
+ fi
+ done
+}
diff --git a/www-misc/profile-sync-daemon/profile-sync-daemon-6.50.ebuild b/www-misc/profile-sync-daemon/profile-sync-daemon-6.50.ebuild
new file mode 100644
index 000000000000..ae2ef403045d
--- /dev/null
+++ b/www-misc/profile-sync-daemon/profile-sync-daemon-6.50.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Symlinks and syncs browser profile dirs to RAM"
+HOMEPAGE="https://wiki.archlinux.org/title/Profile-sync-daemon"
+SRC_URI="https://github.com/graysky2/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="
+ app-shells/bash
+ net-misc/rsync[xattr]
+ sys-apps/systemd
+"
+
+src_install() {
+ emake DESTDIR="${D}" COMPRESS_MAN=0 install
+}
+
+pkg_postinst() {
+ local replacing
+ for replacing in ${REPLACING_VERSIONS}; do
+ if [[ $(ver_cut 1 "${replacing}") -eq 5 ]]; then
+ ewarn "${PN}-6 and later dropped OpenRC and /etc/psd.conf support"
+ ewarn "See https://github.com/graysky2/profile-sync-daemon#note-for-version-6"
+ break
+ fi
+ done
+}
diff --git a/www-misc/profile-sync-daemon/profile-sync-daemon-9999.ebuild b/www-misc/profile-sync-daemon/profile-sync-daemon-9999.ebuild
new file mode 100644
index 000000000000..379ccb72073c
--- /dev/null
+++ b/www-misc/profile-sync-daemon/profile-sync-daemon-9999.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3
+
+DESCRIPTION="Symlinks and syncs browser profile dirs to RAM"
+HOMEPAGE="https://wiki.archlinux.org/title/Profile-sync-daemon"
+EGIT_REPO_URI="https://github.com/graysky2/${PN}"
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ app-shells/bash
+ net-misc/rsync[xattr]
+ sys-apps/systemd"
diff --git a/www-misc/quixotic/Manifest b/www-misc/quixotic/Manifest
new file mode 100644
index 000000000000..41286125708f
--- /dev/null
+++ b/www-misc/quixotic/Manifest
@@ -0,0 +1,198 @@
+DIST actix-codec-0.5.2.crate 14085 BLAKE2B 751e592c79bfb691076771803f92b788b13d7d97ec30262bec1af7cc1e9ed67904ff6a4bba51fd75a89bb807e7f91aeddb8b8515c2d760b5fa8be0ef122ce7fa SHA512 9fc455a3ae36b93b3b9358b1f0915934f7e52ea1486d4d1a943c47759ff7cb6b7733e3c423378725a3da456669dcca02150cf44033707affff756579d5adba15
+DIST actix-http-3.10.0.crate 164457 BLAKE2B 5b59fb7f259486e9cd0bad602fb5791a47c1e3a54fcdf2a66f8008058ff7e64e12456e9ef19e6ace48fe44bcd2210666c9477af22ca586df6ddba58087b97787 SHA512 f15c8d0a7f23ff3584db551eb1082826635c7b59a5792eebf4b22c56d70fce04cf344a603f3d17099d75f2f3be8ddceae69c964fa96daced4d4f86a5632661d4
+DIST actix-macros-0.2.4.crate 8380 BLAKE2B 43c19c9bed00e042d8704191484a720ed22a1cbd5bf4cd13b5d52163153beeb459d52eea394fbd8ccd2eb149e6766038085559e1a3c6e1fcfe4cd900f45c8bad SHA512 e8d4f488304420d779f19bc4aa6deb8fb02b02c6de1bd393a0aba42c1c7bd8f49ef40ba2eb54251254882bd121cb30575e18e60cee521b07353d96a285681207
+DIST actix-router-0.5.3.crate 33145 BLAKE2B 1bd0748bf1936da090d87002b8720dcdd9036123671c2c0662c0c0e4176803ef55ffbd6fe9841487b2655f1c2495f8059122aad39b9276aaf8f3503261c1d725 SHA512 863f24f9c1af2c497a2a423bdd04c324ea9c41ba56a3d364e3ce1dba0aa4f704968debc79fd475cf177fdf8d26091e9c5a83a66af89d4cee34b257bf9261614c
+DIST actix-rt-2.10.0.crate 22608 BLAKE2B b1fdcdf301fabe74b10d0078ddc74b52e68199fab3ca90d5623336a343ced150b0158cbdc579ea58b96e9481656d2d377dc3a2b88f0ccb2fe474e01134a3c7d0 SHA512 3f9f76ba181cc92a980d24542a0c5f647868736adf9ac636622a74ac4ad03d1cf567c2c4c5e188e401c83a65300c28b96e22607cadc9736433934ea485f63df2
+DIST actix-server-2.5.1.crate 40988 BLAKE2B 26288fccb53d912e2432086483c3da43bb27520a93534160f53fc6c96ceba2a9ce3d128576a1d51ed1232742c17ae4606e2768e954f1f2a206914f7d2b0f3124 SHA512 190eb6e506644e514689f78a44c61309e5b29ab8188d6f4561838f419352d3d2c1cfd021205dc6a23a8789e3a2cd48ad34213cafa8096881d01fd3065f47155e
+DIST actix-service-2.0.3.crate 28409 BLAKE2B 1cbe3a190a89f08ac3ede659a8300c71967d8b4ca48a57982a1a6a85609dd86f1ab8812764524cdedd00ef679ba63e1ba111d7e1fab4f55a16a4882b48455f87 SHA512 d7f972b011ce96103bfedc06606e128a22988b3b4daf2d14dafa50d27761af9371d767d5ce1b4d7bd461488f24da37584532b5f0bedb8b51c5030c0552c01c27
+DIST actix-utils-3.0.1.crate 10096 BLAKE2B 5d1fdbc469ad15f288494d3d4a3ec5c665a95e4768ac0c680b07ed751cb8f5e113082ff0fd880929b25575cf3b33be2a08a8af56e5e181e837f59953af5c9b54 SHA512 1d0be4de0569d0267bb12e2a20e74f41f3cf13328ab77baa873166c868e9b4bc06d1b6e36a2ee7a24680ee5c97d19937cf5ec448575a58e47d0495f973b5d0d8
+DIST actix-web-4.10.2.crate 247273 BLAKE2B aed61afbf8f30996b7ff0fac7b73abfffe75b655b53c2da35df60d5fab591b1eb48100a563f03169cb5b625fd769f86c8b0100eb22fd067eb623da4b01609df3 SHA512 e6ba0685f51fa3bc332ba41c38b513cdbbe1c110b7e8d2c8ca8deec61812bee26e5280d41cbbf7c9ea32882cb7efb226403b42fcb71c83e33b60b5e0963e4d62
+DIST actix-web-codegen-4.3.0.crate 20382 BLAKE2B c3f90389b2622e920437dd8dafd8e517e503f738c7faaf89e7c6f49f6daf35dfe25e3cece4fe4c34540740dd6f08fcd17be42bf037d7d25bd91adfcaf6df1c5c SHA512 22961a159f45bccd48f1e462ec4a7891e5d644b3296abcbe4a12ea70fdafea8b57263c5c25c3e5527d2f2ac557b2abe17138ac54ec3316adc4026c65d3f0c177
+DIST addr2line-0.24.2.crate 39015 BLAKE2B 57186d6b957542cd71a0aa19f1355dfaabe6efa19b853c42f306494728b03d1e3183efdb2d2c7734a3e2347cd83a985d004f50c097e06b7520bd152310532e9b SHA512 39cbec3c920ffc0f37584afb55e1cfe4f182e4415319a4e9bfe842360f102f7b9315f6171c0cf71ba0337123903e604096cd573fe98698a26c8eebc2376d965b
+DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST alloc-no-stdlib-2.0.4.crate 10105 BLAKE2B afa0bfeb7df1d742edb412dca4c22957fc21c2a1be21c64c58503d4b943c06e3163d0f3c90525b25323b8dc38e6c64136ec4f9608758c5c6f3bd07c2c033ee74 SHA512 6518856fa524ee0fe8e04cf133c11028efcf2f6a28f3a70e401566a4eb343c954dba34aec2a02c0d0359757dfb5dcf48279610646215eea190d699708d838904
+DIST alloc-stdlib-0.2.2.crate 6693 BLAKE2B a22faf3482e416664f2e104f5f45c4e6d116a42b890216b80102e266f7a3a3accd2933aeca71650a4c4626e3d9da76b6488ffc9ea2ae4229cdfbf1ce9ca6c7cf SHA512 9c4169052ad460af2be6f2a128056661b2f26da0122877f13fcd4f4f3e2e9537783cb2b2bec47af43569629639aa8ad507ab010833982e5d942f5b26cfd46c14
+DIST anstream-0.6.18.crate 29681 BLAKE2B b6f72cda084b38f1e1cfe60de2562e8d62ebbc352176bdf668a2d6be09349bec46d291cd475e8af814ce66def44d95cb98c325761150130752284a82d8a84f21 SHA512 5149977d6f7b5e9cf6350f1ef130caa3ff46c7e78976358452a185ce196cdd77fee48a3a9838f434ae6ea9c15b19f6bfbab156edf819f81179d6774318f08963
+DIST anstyle-1.0.10.crate 15725 BLAKE2B 36e656bd8f9c584f11fda5cfe0c2e24e8426b9e1b602aad34ed118ae6950a55440e292d2e0ff7615f5e4f466fd06f07536be198a59506a587d40cb0c4ede4f80 SHA512 621e7a89fad13db985f07375d316cf8efba57fd44ae18628a8049a65aefbaef27949f99317872e91e0922bb089a00234055199ea3167f80ae03d00ada4f75dea
+DIST anstyle-parse-0.2.6.crate 22343 BLAKE2B 85eba405dc5cf806283cf442984e86583dfe6c681f849eb7a347b7b67bd2b6f692e84fc9b5bd86486633cb2f05960ec16e8778300df114ae6676da43442db9bb SHA512 e28c9818afcda0e9b84c205d9c6697ce64cb06c21df2c3666869c07d66893105d9c5e96a27fcf2410a09f6af00735252e22b5c7d8c6cb3f68c4a8f376c49d396
+DIST anstyle-query-1.1.2.crate 9969 BLAKE2B 179b8dd6dd709c2ca67f4eb5c9a502b2867cb6744a39f824c4fdebedc67c6c3e07d107c7d817e2ffb589d13b7ed4900cf9653ddc0a43663217042ee92ce8c9da SHA512 26069d936c4b1fb09bc65cda0253fe9be8fa4e96c0821f980c772602b4e9230035ec8c9d092ef95e0a0354ac559f8d25f57a14c34086d4d241b5fba688951837
+DIST anstyle-wincon-3.0.7.crate 12400 BLAKE2B 2023529aa12ebe1b7073a88180ac7491fbba7e8556ba20061bec22b1db9d0f3da058faa5bd7f499d8e5da18422dec7e7648f3b4acd7b4a2d2064824f1b881259 SHA512 782440c1093235ad481f0b854f5a3d3acb7908d2e5ddbd4143139b8bfd0faaf2f9816c1034e760d9261a233e6d645098cd5a594064f190662908eaf79972c903
+DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST backtrace-0.3.74.crate 88516 BLAKE2B 594b537f3860560bc790d04d72a91ea25bbf5f2494b9c43377129a8021c02d9c16471a223e518889775a816c45513b14bf097c453846b62302a58b59753a5fcb SHA512 00cb2be0626f0bf6ec8b8f525bb129d3ac74c386c5e46ee0f343edb78c863222521f8132876057a5a1facacf40792dea51f2f20e986b35f3a85bca3dcf5c1520
+DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
+DIST bitflags-2.9.0.crate 47654 BLAKE2B df924872ccb929f3e428976764d50e5468112cb83e563f663a5e51a21ef4363b4c639e617ed8afd42a39fed522ee468ce7186adf88bd41f5f4a2a6c833d9ff35 SHA512 f314d5391745e5a7eeeda0c014d739981d8639a8e23e1120d9c006ef1a6d5d5b9292ec85ed2fdc117121b6ed7a67df41345116ed311d8523344928a725763446
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST brotli-7.0.0.crate 1356970 BLAKE2B 6d060e6fe4ddd463b0b4603a067de152ba2bec9f337b5c94e790bdbac6ea28b5d9fb6404d7db5d98dd81e69dcc77698949e026f990267f388a396d37c45055a9 SHA512 577b2efc324bf461e06af94b8b509a095a917d4ecb2bfd2f3097ab4663ad699317c2fdb0b470344c762589c75dfac073b828603ce5609295ddf1748a39b75622
+DIST brotli-decompressor-4.0.2.crate 193388 BLAKE2B eba06680719069c9f8f435544525848f21d0b58db9a398e920abfa9602e15a7c5a087021a7ecff808f2b8310493c42b7bc8e1c924e19c2e2816d623899454c14 SHA512 df0451a1ba23ddc187b6868ce7614c77b0bdf3e409b55416dc997bd898ab2cb25d68fd7a0ccb0dd2bd4da52c6a25985772357101df1a218bf87065c6833b0549
+DIST bytes-1.10.1.crate 76779 BLAKE2B 96573ff7852cd2d4f37a68cb4d76bc43d2018dc25b7b7e2164df022de4e1974f22d4d3ea7cbfb280667650cdb5063d600f4f76cbdca43dae508f29ced449b0f7 SHA512 03429f01927b94ba6c958c46b2e5bf92a23b39ce9385689e21accd34a5d3be01fd0f665f4bbffb1f7c5bdf1edfb1bf11d5ccad00eff0f9388be39fe2f753d296
+DIST bytestring-1.4.0.crate 9747 BLAKE2B b45f16f8267dfa85776b64b68ad07776a3b648cff3109df9bd95a4c82fb24a814576430dd776384a43aebc402e6f2357de335805cc661458f7d278a233020726 SHA512 e04e77e3ba9f770a120369cd030686aece97d30456c7d6a41df270333b618dfebd8b7750c9a4e60beb100308f409df7a005e13e2f491fc91b42e6c4c5fbe1241
+DIST cc-1.2.17.crate 105794 BLAKE2B d7d733a72a29b836e3ba160ebca45817f7605ec4d2d10ca79ed8b97cc1013ebc75e07a33027eaaf5aeb803d248a77ef541568de24520efb72ee764ccf368b010 SHA512 3fe7609a6427a37b7fce6e1ebdaa0f108a9c5134892c181ff028e5d50341ca27c9e8982cbfc10595e9ff2fd4c4fe3d46670d10ad6f3c91efdfba373ea1f853ed
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST clap-4.5.34.crate 56980 BLAKE2B 863e51afe9291e9cc2b12be4e6a62af836ed3692ad3df1c1199ee85434bf3f2c4d26c72dd43a78e41663b51631ef5517282b8abdb71b03a59b5ed35d7073280a SHA512 e9096041883deeef893a9692532529a19646666dadd2acf57952c076f63245081a030e61d99cbeef7413b9108cd7ab8009f28e570356dac8d2c10e2072e19322
+DIST clap_builder-4.5.34.crate 168417 BLAKE2B 4027d22847ec9d825bdfdb3ec60167325ce05c64d5de16b93d9b49d12e9fa100a475925cc5a98361b90b2cd1eb8cb3d8367169cd22b18b247b909f9a38fdf4ba SHA512 3100431394bc8847e4f29ada9ed92a02b75342a59886e0a3c6b94c62629d720ecbac74890e1b430d6c3908fcc4b6dc8f45348d883e9543e4e1cedad63edd4044
+DIST clap_derive-4.5.32.crate 33441 BLAKE2B de532305380fd457c0fac504f845ba595f157661de7ae72b14598dde1f3d4ec1961196220354a2eac97943004ca8354f4623b29fc2b6557c6ef4a83ab6fd61d8 SHA512 ddac7bfd885efdc97ed07b23eb1a42827aff9cb0c6eabde0a0b247233316f99fb80acb8122d8faa054dc65b6fd7a76091ea2e533cb44e85e8dda125330cdbf86
+DIST clap_lex-0.7.4.crate 12858 BLAKE2B a5ecd50cc503157dd69746f3b6e9c288e0fe4f6d5d82271499f657134fd401fbe076255e2be6a23ed0b69daf3941c6429dad8b288223b0ad390a2c435575cdd1 SHA512 a2566868f4619679d3b74b70592ffa6a04b13e38e3196c56bb1dae8bea0c711bddbccd778d2aba3cc0ee074c9b1cc0335222818f0d47fb3cc8109cbc35bb992e
+DIST colorchoice-1.0.3.crate 7923 BLAKE2B 7055fe61677143f0d4445ed5f6be2cbc284c155aa6ceac04df6f3fa2563a225e440ba708bf40e298ad09775ab7c7e1842b5f6dd78422b06dbd1250908e3227ee SHA512 fc26696189d3935d5510a1237504339c1f354d03ffd3b4e830b7080335aa778bc72787ac5fa9a67a731b9bde2788da778d497f2ef97ec68bdec5145fedf4cd14
+DIST cookie-0.16.2.crate 34632 BLAKE2B 095c8c4fbd8bd2aca5f1bc2bf7f37f231878e3ea9e2646e7c2e63bc7ff824ed0a55f80216e9d1f0466e6fab306a0f211d08c093278f4f23c07762ded9e2033c5 SHA512 f006bb19f63065c6ba9a7553c1d97643e261723f3d5087586811acfe595b3c7d90f7e5c83431a44a50d0b4a36667635ad09e5cb307e323cde14820dfd38e57c6
+DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2
+DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266
+DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
+DIST deranged-0.4.1.crate 23541 BLAKE2B 1e3802541057b4550400fb2ebed22f7e363efb6fbd4171aab3f1157d32a139a2dc80bc61d037d0cc30a75041f2ea28cde010adecae908563df3f1ac391c4f0a5 SHA512 899e57e35d9c87d26359be14aa023f8fc31c1073d2c5383c176f3b75d2022492649f70e15b5463d810619ad632ab6989d503dfd54b8eec53cec1d3790a75d39a
+DIST derive_more-2.0.1.crate 70127 BLAKE2B cf20f53528e07ea53a8ad4e0cd9698eb44dd95a711ae5a969322518e5b545d4355d1ef396584bac07e73805cb44443a737a3f21e279654faab79b29e6d19093f SHA512 eb80e75fa43bda291b1437dc4df48d39570c3d9f94c758be5560bddc29170ceac6d9a2b51bf414729b8b7331d60998caf930b905951156aee0d07a5b62eb8028
+DIST derive_more-impl-2.0.1.crate 78233 BLAKE2B 84d195fb78479ecde38abfb5311fb220835f4150a301ed01c0aae6058ac00f04ef5a9daf122ddeb180b18bd0eb714fd24a5ba72cf9100896a7bcc1787532ed01 SHA512 e776a931e98b1cd37a8410f6376831c7e3c5704deb57b8c21aa6ff6546b9764c32e705f9055b14cff6b0c802f19ddc7254c14b60082acc176f33ec33f781fdc4
+DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
+DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
+DIST encoding_rs-0.8.35.crate 1381050 BLAKE2B 2db6797e4f226b3836c18496ed77f3fb113fbc075864fd264f23c4fec8396eb3a01c439985ba0586a4464ac4043ddd3acac80e0ecf897cb59569e5065ce2137c SHA512 4b55b53553c5cb6fe05ae81d1c6f3b0bab73ecd3d426b15c58b9de9ea8dd61617bf0bb2e6d3ae2514c7cb6e73019b1a083173d1423b3ece2d190770c597114c4
+DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
+DIST flate2-1.1.0.crate 110650 BLAKE2B 1245a0050ac2f6c966b0c869f772c24544206e1e29ac7bfbd1bb20aff20151f50332e3f2bfcc3edcabdde706b4ac9180e393e4944216183f7319c3b09bf5bc12 SHA512 7f240d413aeead2fd15c0b4cab1ea45b99987c185968ccc22778ecc7e08ff32ad6fd44abcf763a7c708f5bb7c43b325aaaeb30ea9bcea2b0917c9f7542bbcbdb
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST foldhash-0.1.5.crate 21901 BLAKE2B 22c3a266becac17995ac996f5c9caa8dea77e36786c50464e4e7750d8f3f13321a0a1abd3a9abcfd6ff441ddea257066b2dfb7fc6fcf7468f537dbd1b0db737d SHA512 3a634fdec410d87ffced8aa1bf8dacd9316a04c51424563d60b4dd611617041f09085edfd0ec96e6bb0e0db74a0e950b0616d1fb94a31667af35af1637604c22
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST futf-0.1.5.crate 11344 BLAKE2B 2cc5e5f5d4ace47e9273546e46c500432da47f246cee18f24607432305dec9481ec3d02b8a9bff4724efe05ea1d235294c52ee4eeb2f5f285ce56c2987b62d24 SHA512 4cee071c067c879742839d3d32192ca94ee2f9241468656357c3aed116cb7c656bf81722f32b67d60214b7db66858dca6443f0d52f0ff2114fc70971bdddd2d3
+DIST futures-core-0.3.31.crate 14318 BLAKE2B 613d16e4f18547e45ed0dd56a7b908306393e479c379ff64f358844eacb1f8d37008ffbbfe6b1a4ed184e501ee9214db149d9cca31651b7d353ab4a99c8f5ee1 SHA512 d2f4c2476c4f480f724a880ee16566fcdd545579d3cacd2f16745812eed9ac4a7a88d59d4a38b163ef466c6f6b612b9cb06308a09d52256506a8a90e358db935
+DIST futures-sink-0.3.31.crate 7958 BLAKE2B 7d42180cfe19ae42e2ff486d83ed46f3aaa4b333256d4c30c5a2ce0e0d0b05ae93516b029e6d07105b4296bf23ba29e6fcce19f0e38ecf59b53c6ec9cfe2e188 SHA512 79a57dbee5cfe98f2c003bd463d252648743f70d13e2054af072978b758c7cb8e5fb652fd2f36c760df358ad23d2893cef24ca6ae3df44def28f1d39bcf348a9
+DIST futures-task-0.3.31.crate 11217 BLAKE2B 8c0e0aa0aa14bfc28e668af00a3fcc2532950ca865a9f3935717a4a3770cb60477cd8f4cd080675379315b649fbdc5fee9dce49502f0f24f44db481a24c884bf SHA512 4872fd2f24b07c626efc6fd76c01b44d56efecb9697f972d0877307b38d3ccb06277ff029df38981470ba1f8ac5f93086123ab3af44d3c49bd9c10b6c9158a81
+DIST futures-util-0.3.31.crate 162124 BLAKE2B 69ca647a261fe24f90a4221d8629169a8dc7eff9dd1c4e07cc700a52a8609ce9b8aa3974b9b09e1ee64d0121d7bcb3efeee6fc15983347aaa0b0b23b068afc34 SHA512 429b1de584546b931b17d475aacbdb0c14824a57d960c44e615aa808e8c0f9c126473e313a7150b3de87ea91b7eebebb1041509f61b3493fee8a9cd2c75c4df3
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST getrandom-0.3.2.crate 49140 BLAKE2B abe823a8e91fdb83461007909ed447c64adceffb33dce63b18c6561e7c14263c66119370fecc9c564583bff6206800d5253704ca29be1824e210096abb3452fc SHA512 8c5ce6a6180554749a7eac237caaa852aafdcc92f052aa9b3eef24e10c4ec3794a0a1a1f35580d99dd864d464eb79121fbd19ab8f8780021b60378bc967e16a2
+DIST gimli-0.31.1.crate 279515 BLAKE2B c8924ce351af5b8f96ef757a189f7a9be14533c024d496c62037cd4eda790b3f6282cd3013ba82ecc83082acab1b60ea80b83e0fd5f8eeb381fd7f9df88ce0ee SHA512 b9c8c11547dc7420fe936b9f32a4f5ccf3bb68d1d9f39dedffd40d631360f6e032e719d858668826f1099b8a262e8096aa7ae1f6d7d3d7aaf47934d832715949
+DIST h2-0.3.26.crate 168315 BLAKE2B 81c65e519bacc8570a28b82808828044d1c94f8cf9111ae432b1684f216ce51c1b583b87a2bda3c36cf206dd508084b8f0877e93d58c8d511f87eb143bc77ca9 SHA512 3e1fb02d42d86c9fbaee6f10fec78eebd9a31a70efbead1f4ca22664ee0e96809a52b06e23a9b6f5d0646422dc8054b5ff5d82644ef65cbc0ed2b3729d849163
+DIST hashbrown-0.15.2.crate 138478 BLAKE2B 453888ce68b10cd6e93d787986603fceb29b83fe2dc417e7e57316b9e0060d0bba51ec7fb71d46a038662c99f60deac8237a8f349297208d1d223bcc13f0d0ea SHA512 d6fc0613623f9313533dfcab1240e97f652f78f05baa21419f7edb2eff030c4a2c5f426d3eaae747923cffdd8aa9cc2648340e5fc229395b5eacc6fae087c8cd
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST html5ever-0.30.0.crate 72797 BLAKE2B 350080285dca3e7f7a57be5c8024d3d3e1bce28e2ae65dbc8dfe80afc652e39690a74a4c1f35dca3bc2502a26c7054cb1b6ca875c8101aa4f1a87c696bff92b9 SHA512 3af55c61ef7be28dbfb70a3b60c08255527546163692645c5b6340b75a6ea8e6aa80ff84c070f68ad9a53121c9ab56bcc3392b3a0e84b99734abd0a58dead831
+DIST http-0.2.12.crate 101964 BLAKE2B c35c2ae5f9494cafdfacefd778b4b6824588e74685fe5204bc6efa87b667d00b28f59cae667115fe45ae332d8542e7a0c2c7c42fdeb302302f89b00cb716f380 SHA512 e32dd4600aae7e26f1d530871815b30fa0b9bf95293005649bd9a7bc4df7f69a1d8de503d1b8873e67a5496e644d0a47db2a0680fa1e9058bee4dcecccebee58
+DIST httparse-1.10.1.crate 45190 BLAKE2B ce166e68e60434c9e5659b7fd8d2b014247e798be12bdd08ed1a28bd71d9aab4047f96c6179e00fdbeff8967d27ffcc9c9ad3b76a4fbc5791c68c14ab36ac31d SHA512 b9988b4657e54931a9f8beab694d938bca7c15783c7181059770e56a7cbff801531e96eaa396615f19b0d99c37f73b39194c6ae06df1309a02097ba13e33ffd0
+DIST httpdate-1.0.3.crate 10639 BLAKE2B ce0b401c69f76252639c10f6c2e4a823574a58565d7c5cc3633c72837aa4ec3630b34b148de4378ec498db196e3b2e1413ca0e5a4d9247855380fe19a8c20f94 SHA512 0586888fe89f40b838d5ceb083084d0b8058feff1d2933faedb96896dc86eec68b541a0374a508fd11b86eeadab3c62f88568ffe2c53206fad438373a50b2e5a
+DIST icu_collections-1.5.0.crate 82762 BLAKE2B ab89336790ceafe62dd72f0aaef16a6eb47fa5e41424ed990e6c059ad431cdb3dcea943436aed0bf9c6eabd7aba12d255a2233fbbcf9cf5f666ef1dfd5b79a16 SHA512 127f1c91101ba69405b10a2590579606df766166fcf1fe6aa9a74c4900296425cba5c47a391a53a01b02026af5581f068fce4a7a400179809f7ed9922b94c0db
+DIST icu_locid-1.5.0.crate 55131 BLAKE2B cde2b988f0af200b8e7851a66b8ae08881670ad6ff79c5caf5135a04c200e5ecd0acf27d8856fb0fce46d502527d506095f469c28f325b9b9d21d2a3657149be SHA512 4b85f0e7cc73166a542b2e502b3ffae1f30d2a9609ab83acf98e90b0edb37fa8ae4592f61ecf48a0ae0779fdd376abeff59e1d5cb97475012eda99ce2a97da57
+DIST icu_locid_transform-1.5.0.crate 29094 BLAKE2B c7bb5c5ed273a6a97279d4599f612dccdd796f3ae717411aa5b21949721989986d8b766041b9c7e49a91cdd42a48fc965effb8d7fb6d33554926d203a6535953 SHA512 1779078e2ef9859bee2bfd5414ad7e4b0f0a40e6813f4ccf8de2bbe8c764fac7f99ef001cce22332a8b3840af22e9c7fb7cc0341cf8ba61303794ebe87071e63
+DIST icu_locid_transform_data-1.5.1.crate 42937 BLAKE2B d9d1d66a556ba5383abe07c23cb96765312fe9637aeea50d030488faa9431cdeccfe42a5367d84c8fddb7a3fd2550fef106876798a1f020821ebc1cb6d32cbbc SHA512 fe5b5563248ea0c78f63b8f5fa19b7298776e0d6dca062af108e388565c932d098b98f1e7eba1469c705184684a369e9d142b3123b24451bf5084bc7b83245db
+DIST icu_normalizer-1.5.0.crate 53113 BLAKE2B ccd58f24469da1f237ed9a349f0b3bdbb49b8f5b1995d6254c6e3eab53a71208ff4a0b09bdc68082cdbd288df66499efb19555f41d12a19205d724af22fb504c SHA512 22612b86a24e3ea222469392763ae9d40dcbb37191dd8b9fa1c64332463a4299a53275a1cd3deb7e0f057d137f4312d990762f9925d0ceafbc8839d67c425a13
+DIST icu_normalizer_data-1.5.1.crate 50737 BLAKE2B 3beba44344a525220cb64bed28c1d869d2df0cd7091c92841ed08b1a82b958e61d388653ffce6dbc49781a8a157d427f7ff89f0b5a3bf874d1dd3f4461a1f00f SHA512 372ea6d0ed10bbba7392cb563997dca1601b3799c5c9ae585602629cd064461d096bbb0c624f14e43ccbeb6186d28d2d75e7f2ae98bc3a5ccbc0893b15dce7f2
+DIST icu_properties-1.5.1.crate 64479 BLAKE2B be7d3a1663664095f4af654723ebc74f385a6423fbd3acad325ba0d6188dce9d9321eb323c1b1d8e6d75fc9aaef3d873b609d7049525d2402456c6331bcbf486 SHA512 7e347c0a02a41a3add950290bee90a339091a713546d4369c2995022e64f127f54204b0d46cbb88f396b3bccbd4cf12720a93d8551b73926f78fd5ec01829cac
+DIST icu_properties_data-1.5.1.crate 229231 BLAKE2B 9bf61185e1e99f213fda4e28e0fe196e9884de0bf00783357607ee9d055d43c4303e611248b174e7cce0df3978f028d15188503160ae2b08ef9696f9dc835d35 SHA512 f37bb469d33f6a0d5126a37469783bdbd268dee081cdcaa8d18461c8bcbf91b08a75ecabe6df8c47e532838c95816778ae7aa36a22571fbba452d84fa6d63228
+DIST icu_provider-1.5.0.crate 52722 BLAKE2B b1e53ac677e2db5870df0a91de405ebbc635c3f7931960f3bd744b57350c7536116f3861d4177faed2145b79c1c957d79815fadc2dc85faa656a1f0bb338a16d SHA512 6c11d89c7d2b788a44757f02b0e298b558ebe174fe917664401d91109cdc7bd1aba5526b3cdcee1f066018de1b775bc9dfc294bdfb40476c53d552bd6f29d6a1
+DIST icu_provider_macros-1.5.0.crate 6436 BLAKE2B 7405924dca41db72ce422437434a4affece69f888e5c18d2a92f761a8d83b180f40c8de9a34ec15d0e107b63b2fe0502cebd0a0ae6f98d9d6ee37d197e754703 SHA512 a0dd58d731556a010428fe4aebbc9dbcd626b46d380cf28ba5236ec8824045a20f6f2ec986e0c1e791bc8bc2b692a10306f448279f079b4c37237e4a3c3cef63
+DIST idna-1.0.3.crate 142515 BLAKE2B 6835a64772e5d301c2456a94f8f5f40ebe6828aaeb1d48e3fbe015917dc3ef95ac7cfd0e1f1763e23950482f4b46ef7987928c8dfddebab63947d5a29fb490ac SHA512 e75ab18297878df11d82bf3623b005a3dbf7a6fa38c8f78830c219adc7d6f4ac07dce24a5f1186de69035ec316421319e487396cfacb053674137342d72a4126
+DIST idna_adapter-1.2.0.crate 8206 BLAKE2B 5e8d7dbfea699584542cde53039df9d8c3dd408efa2534f11fce7086f679872c45d9905d6b2cfe523148eda3bb0cd4820a7b14317f91725f3d9cdb475aafbd57 SHA512 1d8b54c19878645749a1bae768dacf353b07d266f2cb3bfa1071a7afb56ca68f534dc1d54cae277b777bc97e5986f297cbe2051a82e14f553ea73cd723d9da7e
+DIST impl-more-0.1.9.crate 15583 BLAKE2B 894a7b18168270736e302571d54ae68fe6c80792eac142600ae5076ae8adbfdaf91db137200f9771ffa0569e13792a9162226013087ab946778b212134a4b783 SHA512 a4f708e1852a64082d082e8403ffd51756148ac1babb8e7148209827ca51ffa7151eb0507adad19a2da2372808aa4ddb8e1619dc3174f63be078af1837323110
+DIST indexmap-2.8.0.crate 89670 BLAKE2B 65d206045ca5c8479f9436df693d282fb73e79873fa1c586e5a2922e29ceba0adad529429bed87afb4ed4fcd66bb03c29711ee4bda9b9f848a2c35dcd7cafa8f SHA512 4ac87d1b1991d4a3c332bf4f3c6fa864ce783e1abd04e80558f6e4f3b28180062afec5bd1587511d04883c52d1756f25eeed48a45a4395b9a4bdd66e6f9668ab
+DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1
+DIST itoa-1.0.15.crate 11231 BLAKE2B 17c261baf95bff2f6cf0dbc33ab78ebbab0cf5dc56aeb7f8977377af868deb5957918f1763c2fe8c080e931489ea89ebcc16b3ebd976eeeb7663ff74989a1071 SHA512 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42
+DIST jobserver-0.1.32.crate 27549 BLAKE2B 5f6556788d10af992fafcb578ecfd2c81698eea31b636d3adb7544e12155796082623735c8b10ac4c04d891d1acc307fb4e4ac3f88b2006e181013006f51c8cb SHA512 d4528113dd5a5d4a3765d55599a07e0998c69c7d21a90d2872679755ec4bd7726e9721af9220c36e1179b153ad8a39214a422af63aea15eaafd7cefc828ddff4
+DIST language-tags-0.3.2.crate 53420 BLAKE2B 7c6d6f6db5c79b00d9e2b70f1a33769b83ec6d75a3e282f61db459146cbd05cec855a9979e3f229d43439f045ee3e9eafd1255c8b7167e623c2d990b2fd0c110 SHA512 1257bef56efd927db15d98dd6d40d5607408d08fb352d6dc0323fe2bbd0367625bc045fcddbf308387d71b9cecdda3b9f8c785683b6988fbb49c87daf4cb3c3f
+DIST libc-0.2.171.crate 785246 BLAKE2B 2bfbb3146d63444632b924520bc3d8af4adc6bbc38f4a7c6e8a003365430372ac1c05246684b54f0a98c36c8a7f02c325e1a6dd7fec44adeff41767e427ea77f SHA512 aca8b5f769dff18d9b3d73cae2c496f64a9828edfb0b57412da01a89158e770a5dcbb74bd83612870f9a08eb31647c1a2c92463189f16b01be8cdfc76fe0bacd
+DIST litemap-0.7.5.crate 29962 BLAKE2B c94ddff0b5f6fb99d6adf31ee7c953bb1bb3741e5a68cfa598c75f58f6f426a53d19423e40b0b3ae2010e1533b4d46eefeeb7e86fdfc72289748cac897ba99c9 SHA512 722345f73b4ec2e91a9407dafd3951f1aad0acfb66e0adfed8b0a83dc1ea71d513fa5570bf960ef51409c9d50aeac23f85410ec6392f5620dc1f1e1e1f884659
+DIST local-channel-0.1.5.crate 7881 BLAKE2B b9f613bedfe6d99e2a571cc3a4149d32afa36d46a71c553de71e927620159d93c18191d9cf08f83b0b5cf0f5d100afaa939f72180dccff7319fa7c2512195b22 SHA512 a38f5edb36c4881dde9ece58e7f71af4fe3edcd60bc7f64ae52292cf8d00055c3e4ab1d85d02f40419ced2e9e104da5b2100f25402ff6ac99b0fcd02a60fc3b4
+DIST local-waker-0.1.4.crate 6730 BLAKE2B 02c85d8aeff2432727fcfb14627f3ee9b89b31ad8129d6acd66285903bf88167ac8f64e36b368f3ffa711861bb077482e4541c0f13b32e9e27a8a22ad7661e8e SHA512 f4b8d3ec7b0bfdbd755f1cfe939fd292e4d3e8d243b4d3b3a2b64b2d9c366d87b431ba7dd1ded23247ddbc7e3f620423cce31aeaa08f83453febed8d9714e858
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+DIST log-0.4.27.crate 48120 BLAKE2B 09a2159032baaff7eede480062da30ffec1c1d4c77e76288467941dc13722ab1566742c1821326ca5f8c2f9f7597099e235213ecbf883fd93daf5ae9ad5ee981 SHA512 8d57219b76c8a25bae193e4d16d4d03bf0b8523e1ed3bdc80a692cabe00fc0359ae9bc3be989f04476ecda7187f27e4ad23fe260a96fcefc819af00fe12a1151
+DIST mac-0.1.1.crate 4838 BLAKE2B c87e9f9283f179acd28c189d02d9d3de0ec99f9cfbefa590daa2880c275894951c5b0b935b652ab6c8c0172ac59e87f52fd49b787b230e6730365dc076d17578 SHA512 dbc6def04c482911ace311f34be79992fa04042c7ce36b71459b5af5c1c43e9fa66b6b40f63f8c3647daba287bf1c1be9b1a8031ead1d855f99a988898c96f1a
+DIST markup5ever-0.15.0.crate 38104 BLAKE2B 95374e73dd7d3d1fee3659467418a1c7d4bc559fcff2bf086913d6fa4dde1d69e412231a794ba1c0cf4fdae8c8c2bc266515373860f393e27f1bfa66d5dc061f SHA512 a9931aa54681aa968a08899c3cfd01df8ec037756e4876711e4b27f94f5d7245bbb6aa3ffe5047ea091158645e1c6d10652a3d94034f332a287f2f8e097d0da2
+DIST match_token-0.1.0.crate 4903 BLAKE2B 2a0fa25e39047adcc988fd092a59980b06e07db4b4b119850dac2f87e1da2dd9c94431ed4a2bf2d66167f8d9c61dc3ce03384c0a675dc552742929f6e171dc31 SHA512 60466f65e6ba17734db87cba9732d5dc9b79826a7906182b2a625b82066e46de566c7faa586c3c011880918b8aa9b60a2a7dbd92f64d91538c431bf524d90ad6
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST mime-0.3.17.crate 15712 BLAKE2B abb892b75b40657d356b6b53b9a45b2c822a05873453e919f2bbfeed9e5c06104f24db9cef2716f302198020870eaf96b2c62aff55cc11d8ca4f4f614d7c8e17 SHA512 e6d2ca92bb58fc747c1bb65a7f9023e5dbf4b94966003a72e4913bcaaeccdd6752725cdbd5081e0fd69d9e8f364d79664fcbe70061737d5c39e5b3e3a154a0d1
+DIST miniz_oxide-0.8.5.crate 62237 BLAKE2B 6afb3df5938ce0427fa8f61b0962b04ebb8baf76f304dc9c1b6d89b685be89c4bcc241a3cc54fbaff73a4607e58803bb6eb1689c817ac1302476db7a01d12abe SHA512 a82e36fdec6d77876c00bc4d03f2d8d90be898091a7c2f474e1b0c21142df2f362d5bcde407ec6bb48be982b22e2bc7fb23572c8aacb2b063ac20149b4564251
+DIST mio-1.0.3.crate 103703 BLAKE2B 0d2360e4ef45f37104208a31e9aa467d6db041dfeb97403a010a36e1e1427f51d97f8408948c75c0084e6c118f058267bfe87d36e7911cb37366f2b1ac6eb693 SHA512 2142edc7e9378fc3437110c85ba2cee9c9683e87034cd44275d2c389645979db53fbbc29fec304f1d8c8f0464ae17d2a5db1aa9215d696fa0282f5069700b1e2
+DIST new_debug_unreachable-1.0.6.crate 2582 BLAKE2B 2ac3dd86f1a532832a40ccfda95654e43709a62faebb8182c87309827afdd23e6d3f250f2345f044cb789015c30b7907be63253b487d368e68c4fdbc7de20492 SHA512 73a61acbc9b20b3595925360827ba8798f3338471b291fa37c72a1c9505b3ec9f688808fcaac9a2eb494e5f3ea5331d30545d5f21f89559111bec6126ac90b48
+DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100
+DIST object-0.36.7.crate 329938 BLAKE2B 0b02cf2f44e99002909b38125edada1a259feae59fd0e5ef52001755b6878cac710c87c60fbafdbe405281e039f68572ea3d8093d16128899090fd70df7f2fa8 SHA512 dd69172349ecf51fd2351d32cc4453760ca1d15e854a1cf5ed99112032901a54b4645b24163b946deed11f81d3e3035e1a5afd8bff20f335dbd05eceab073478
+DIST once_cell-1.21.2.crate 34518 BLAKE2B b8c64845e0e9bd80affdc59881c067351bb99e1b5746aac4393b8f23f7c536fe30ceb782c5bb54343b8d0e75809b9ca46009fcd78f970a2fc2508abdb6dc722b SHA512 f54783c33e025d298be807a2674e6cc208f952fbe0bd0a7b53e2f2d7f68d5c614a13ce9710efee405ed298700a590376df2fc07296fcbe537648e314b843d98e
+DIST parking_lot-0.12.3.crate 41860 BLAKE2B d1899a1132035aaea3a784290cf4951ea3b36b2018d407e27d333b2a2ce3820e040d635009c44cb6e58ad07cec6565c0347af6f6fb02954eac2d4c348bb036f0 SHA512 368c17203fb5b9e4ecfd4857e3b1ab96b86da3770b8f21be392818c845952f72dde1072a10265760a62aa8a1dd65332bfd585667444e5fbb9dbe3280b5862703
+DIST parking_lot_core-0.9.10.crate 32406 BLAKE2B 25339d028579eb45a957ae5fdbac00288b1472d784c0aa7fa2953fcf9279c750d243ce69744993ee8cbe6899633e71e0a54ffc11e39247755685107f2f8dea54 SHA512 4f30fb60ded274d3154ffb00f6f50ac284b6fb97daebc1a2ac897ce97fa8e2ec6ff30cbdadf3b7419617a410fa7525f30ef5e580334e07d4420f4c0200a57389
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST phf-0.11.3.crate 23231 BLAKE2B 588ff9dfc05a3d2cbe223d97c36c8a596d89cd421b568a0526992a089958e4b4ae8f7d33b3f15cf935d20bffea8f60d39ef2d2e1904101f285ca9b8b8155ecb0 SHA512 20a834481bc43ac8c560b00e337294d3c14d1fe359e7f78ed08166b096305e40277f4cd3c179a740911b5c241aeb4e263afa1a50d37f383ef63da113bd6270a9
+DIST phf_codegen-0.11.3.crate 13741 BLAKE2B 88b6f0c206a95945c115401a30ba1bbf6a74e3acd4458f892fcd1eae5312765ed4e17272a814b6242240b97cc0d4eaedbf8c1c37a090d9aeda6ab23bd2280e78 SHA512 e86c3b73de198aa0ac67beb6eeebb88865f77d075b9d7f290eb9b73bfdd6728d9479f796d56e4f3358226ee88b877d848017cd951a14804534e4cb656eed209e
+DIST phf_generator-0.11.3.crate 15431 BLAKE2B 0c8fa88e391141d36d6f128fdc3708a87e34ebd56e201ad56d62de8c05e9bff62258dd7f3a03b432ddcbd83c4f61fb9a57d93574a9f9a68e931720733ecfe1c6 SHA512 52998e20648b6ecd1eaafa407f7da4667fa829d48fe0c9f8f718377cc86a232a6261fc2f831ffc7051b62dbdb880654b1207ac314e57b23d2b70f634d07c2115
+DIST phf_shared-0.11.3.crate 15199 BLAKE2B 82441a3f6db12e9021552b51ef4ad8b564532833dce782938d7d721e9f2d8b7015eee7483724552b8fcfeeed365259cdfd5044e9d2a999f42baf476df8141db4 SHA512 34bc3c0dff5568f0276777614d92d87882ca6be9e3d405c1e7de90ac16ec52a12acc30ea9ab2033074d0e988fa514247f37de1a21a3727de0ef43f42f477e27e
+DIST pin-project-lite-0.2.16.crate 30504 BLAKE2B efd0b426fcc6ea8852bce499fac61f9755a11c6a2999cbec514f093ba7b3f94b1f2d437ee9abb243e31f3838ac1c74491a212851d7798eb249e209b35e015332 SHA512 971adfe54cfed304647fd944c1c915e78b37eaf0de3a582fb984a5e91f1b7d4db2cf0f53a9a64b64427062d4b41c0a36baddef782411a76ae3be0f8ca45f0718
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST pkg-config-0.3.32.crate 21370 BLAKE2B 74ded191f066bc223739b3d4afec58f23de57566e7604e3dd62001d9a095a7b6a3633fdb01fdc46960c8134a694d6bf097d9ecec62b38c4f14acafbbabd6e893 SHA512 59569110185fa665f76a13e884a67ad1578c55246abacfc18cb9f037b2d2d9ec3f2078a3adfe5cc82a451892c9ad55f918ee01362a741f57dc9ff6846a4e32e5
+DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST ppv-lite86-0.2.21.crate 22522 BLAKE2B 150b2ae019f296dc0a15090bcabcf4981bc58159d592b07da729565ef8976e3d1b4416381c6ecaac77874d8e259995254255c8831861ac20922b810753128cd4 SHA512 94710d5b25b67539cfa828476367849e1ecaca744f2e0429b48c05b47ec48cd57f950fb9845a361fbfd96f361ac00fd2d47cc27c584b79ce3d9d8fc133f5b7bc
+DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19bc9b8c844156c831d2b550692c7e2e36bce44ecf18dd9f2d0f0511346eaf0d2a0ebe792fc288ca0e94a93933f2051846 SHA512 a118a98286a47e2f0cf35d2678d0325c18b9b7d5bdf40ceadc16483b282307fd1498434d5bdfa25477a4f420d97c34d786e42e9fa70431b788b4b8fde9718e05
+DIST proc-macro2-1.0.94.crate 52391 BLAKE2B c50986bb34468379e22215c6572c2b722f54381c02258fcba6805eef0166e4bb591d20b94b9084b5d68972df8ef12476ce0d1081588cf80dad3c4ffffa347660 SHA512 3fc4552187d4130f0fdb415f94e625c156a1fdc6cc955fda8a68b49983ac8a83b897f43d1caa130c4f0932fbd9651140b7670601faa2b9b936947c3fd89f7769
+DIST quixotic-0.12.tar.gz 22600 BLAKE2B 4cc78afd08812bcf2ea08dd5aacafb29c388e7acf3e02993174c23f9ec1bd51fea1bcbc021ef62ef8bd5509785130605ec0fdbba2f827a27306145f101a3d14a SHA512 ec7204e05b9c40314858cdde68afd79ec1bc7ca25f9289a342dad6ae486053742de5e644bf11e65acda621ab4202b423a75c510af2a3e9647151bf2ab8a69f19
+DIST quixotic-0.12.tar.gz.sig 566 BLAKE2B 17dbff718de874bc23fab0e26e3e072d7debdd7398f8dfcad15f6982c3859ba181b7cfcdf28e5169f3d8d4b4a65fdf5036c04cfcd744579786f6c567738755a5 SHA512 b552215db032595f35e0abca9ee1d86ec6cb1e2687537e1f2258050f6eaaab4cca82bea9f280da704fbedca44eff6e47c28f4add95ecba8b44e26d89c0de42a7
+DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
+DIST r-efi-5.2.0.crate 64764 BLAKE2B ee17fae983b2c39137cb75698062a3bf8edb4bc680b04900797730618b54298e2f1d13ceab6b660f7a1799f6fc4113ca15d4320b1b95fc42913e0930f3aa16f8 SHA512 80f89d467b482297ec2c13cb0dc8e310442495483e25c33bb523f1cb66d6ce01fee4a57b36880a4f51c0e9f20eb3f993a5bc0a13224d52693dbc81b97c630158
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand-0.9.0.crate 97798 BLAKE2B db07e33ceedec70d4cf094ba18d010e45036d9ab847beceefd1dbfd3cf7a608d9e333ff1a0f157cd920dd71d8e63d0e3634f24076b72a88aa3ccd29f25770536 SHA512 e07c9650dda7f9686b4f604990bb7f948667bc820322f464302fac3b2a8136a2a5d48ae6399f104e47bc1ebfda105f99ad8b031ce090cdb71840afb85f6a3032
+DIST rand_chacha-0.9.0.crate 18258 BLAKE2B aa0efd158877a116b2587177f2da84832ba8153b629aaf8181ca7622bc8ea624b5a5d205d1b745caafaad78d5a55aa08a4f35822b8925acdf7d1212baf62abeb SHA512 f62a7bb067ff984049c96cddccc841cd9931daeb5b25bb69f056bfe577f62b1b35c08f2bb5028590eefa04a9369beead4e6b03607eec97256e0383b20542af96
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST rand_core-0.9.3.crate 24543 BLAKE2B d611130e240dffaff33f8384f13a008af93254b1530bbbd2369057ca33f295c7037178010efe76e4d7bf18e36003f843409fabec060c8c78077cba00772e66f9 SHA512 6e8e4067dbf5853c55b0ed38293b6bc6bdecbdd31bb9d624609b0222f706f5b29281ffd5fffd5c316367ba5b22c29e5282c61de3738344798ce0f9cf9cf2ce19
+DIST redox_syscall-0.5.10.crate 30226 BLAKE2B a61a155b8b490d12c62389e51540e691cd63a06a830006b06bf7959cd0d9a1f53b62827052fa72b9627c0a4f15a08bf40df44c58bd5a468fbf3fffda3fab482b SHA512 fb27b2624d26488eb439efed79a63f8e6991d51cb7c7a8deaa97fdb9fa3f5f7cca4f5a0a7ab3f9c33ab4bcd62694067d84489218e7a3885981c1dcfea611d8de
+DIST regex-1.11.1.crate 254170 BLAKE2B 5cf41012fc2ba8a006c0eb4a922cbbf1614bf300be361c9e2d98956a9a5e9b140e37bea09132fab7bfb633d4439158723624bcf45e8c619c4061b399253c1b82 SHA512 d065f6dc405771518260425f39a5eaaf8cab62e78c91ceed3b3994a9a121674d2484cadaaf816bdad89c87a40550d57b66a3d9de6618a7119a658301ce7e67d8
+DIST regex-automata-0.4.9.crate 618525 BLAKE2B ee3fc41c8c445be4c1aa3e5b19a3e61efd641b1a24e7a1ed55f837c1fba9c816272cb4645c13232b66b170bc7c413802928beb22e3891500141ad4ede65b60b0 SHA512 40bde0ec91cc27bc0c3fa237a37ecee5a1f023dbe006a999c5888f8f578ee2c4c64d9edfe1827546cea8e92ca3c10f8b4d494d81f3d0422b40d90bca9cf598d2
+DIST regex-lite-0.1.6.crate 95278 BLAKE2B 02b9cf7758e6eda37384cf8d0ca2560bc0ee595015c17cc8a230f7dfa365305eed8d5a99218aa53ef49fc62ce1158014ab81a7c8497beea5a3729867e984eaf3 SHA512 98b5224ae530c78ce9f1981f31d8d9ab5ffceaa2e391ee33d74e7fd21650bc5f40eaa8e627c596772cedf084f37f0463c57c9bb1b7180473c6d0c5f95906aa9d
+DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8
+DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8
+DIST ryu-1.0.20.crate 48738 BLAKE2B b126085448cb58639a7b5867fe313dcaabaf19df478f67fcb6cf15b8e881a21e641878345e0bf1fea7d24b56b921e667fd26a39cb81fca7ea02585332068263f SHA512 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384
+DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST serde-1.0.219.crate 78983 BLAKE2B 7e9542a04c7f1aeff95b821245034368ff1721d98d7138bb1e0a99cdd6436dc37d69606308834fd33daaea3a1792409b3b2305b802433fa1d155816c55ca2a7d SHA512 0d3fe9a47af027d0d79499e60d940661dba6e29e8f0ce47d0db2ab722030d255aff637248af6f893a9c4224239733db09ffcdc6e1923a7177bfae55c98ebe769
+DIST serde_derive-1.0.219.crate 57798 BLAKE2B 071f02019f829a2753769ce915d11df8f0d202ca67314fe83b42e1f1f3d07bc91b7e7c38fe498a0513714f80d3a3dbf2b447b1f85762de06dd021119801afa89 SHA512 1676bbf09e11273705a35c540d52d35d1bba7cdf1f347d40a364d7ae9269167f9f0f62ff4fa384aaa613c83e432a8eb3c016587ea643bb11434c00664a5c116b
+DIST serde_json-1.0.140.crate 154852 BLAKE2B 733aecfb88fc37de37b60fdd33a45fecc2bf0ac2165b81bdb12665de7e26633836160e927be5d538eb2056a799e85ca4a1008cbd30af23b72a594643c6015f22 SHA512 bafa26fd43ba30cbf73572b8203292b1f275995636e9dfc3d47954939453fe4ecf0c60f25d2af1ec16c7cb0e7ce3b96cc07507d1b53b7db566fe7cb2624f0e12
+DIST serde_urlencoded-0.7.1.crate 12822 BLAKE2B 38c74ea862f041828467dfa586bad9b8e1d1d64a9f82fb7f98727e3965377d00e59f2dbf20955a9dce976b6911c0a619d2a6e4cc9dfc73cf0f6c449d873fd072 SHA512 b209ad01b6565e95c1d5b431a3f4f8a0df3d11c2a06a44123048bfa4b34ebb6807eec593f0c1c89de3a06ac3786a14747df9c70b4f4d5e4b72b4feb53084eb60
+DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST signal-hook-registry-1.4.2.crate 18064 BLAKE2B 7274d4c115678eae2640a709bf9d682ce867c1f6295a0c5f49e492f95dd1c457f20b56207a74221df1fd9d744b24c6260e28f705777e3c7d47b7bdd36f1d57fb SHA512 16362d232b1d301007c069198d7716848aa73d898ef92e050422b36c09001b4334390dc95a6650e5315377fd8960d4336e5ae869b0a305e8525e977b8327c508
+DIST siphasher-1.0.1.crate 10351 BLAKE2B 6653898cf0eb071fe83b7c317f93ffb73bd26ed601961173875b26ec8851632599891ec178b7e14318abb9eb98d522db8022deb852af9ad9f6bf38a5a5708e82 SHA512 d230991add51a555af95b30ef104c0e5ed7011fafb92d6ac9ba0f238c8bf4d2fbd39f4b04dbbe960453f8fdd16d3768ba39f39e4877ad453562e689ec8f24a28
+DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST smallvec-1.14.0.crate 35561 BLAKE2B aa8ee61800a6d13eda5acb4e9dc03543160849479a96a72c50ab38013b23e9593a665773b455a09777038edd436d7a35b501f6d4a0e16ff49544be60345a1e50 SHA512 90de38f208f551cdbf4980fda2314dee57d4e2bbf769a01c47bc849189e9243474932052faa92fe0ca59ecc9c5d1ed84091ef87f724343d38ebbbf710ba232be
+DIST socket2-0.5.8.crate 56309 BLAKE2B 309e5a0e46d0b9debbbd6049a138e56b82df4fc0e9d1115745ed935eb40c81b004ad748844f641934e13b5b88773db5cc4a57fc9e61dc82b5322fa0232110864 SHA512 b7d03608a3d4cf3e2d1539b5a375412effcc96279e8f57668fa8cf67b3f0a3a6b611ea5e2e72f282460582954acbb5364320611f7798a11ec9e4833e53830b60
+DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
+DIST string_cache-0.8.9.crate 17408 BLAKE2B 7b38afd1f0bbd5a6cee1d2cee3579fa071a118025463dd18a1298cee580eade5bbd5c5c780398aac40c1a290a9813ece0f48b3f83ce1f2d594f13f8587ee196d SHA512 a1b85e609d52b2dc01536a34d1b297e353b60255fba538b0e80d37771d180c009500d237050fb95cc80c9bb69b01763d2c367b9dde71c1a0e475967fcee9b0dc
+DIST string_cache_codegen-0.5.4.crate 9406 BLAKE2B 20e38c57d612d8b78677e664128a451f50eb18ca7ae839955e4b106b92a667ff7332496b23f24622e5448c7fa44180a27f0c5b7e8bdabc4f7eb18f47f7f7fafa SHA512 0c5e6b3cadde7fa48e5cdf899ae941026b7a8409447b777973afb7cea449ae439b59d0c9d4394cf96a9c34f3e52118696305688771a2dfddcf49bc31a0e6b161
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST syn-2.0.100.crate 297947 BLAKE2B 50a9b244732eebc16464bef152bb620d86aba590942b0d68710d36e89c0ee752629be5bb8db48866c7d252d545ab910625891a5a9b499ad9142191881eb9b42b SHA512 082a975c6448febe38abdc0b43ae929a97a303c0f980ecd2bdd6c44aa2b39ee5aeedf6b1c84316cf088e0d97aff011ec0482a5242ddb338dcf7db5d55926cf6c
+DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST tendril-0.4.3.crate 37210 BLAKE2B 0a70926644e8dc492247d49b8939169702903c2458d7b2c0fea2e6ed54166909f484e8e876eddc8ff7491642ec24a200c5d1e51412c6a7c26ee60f1f4164e98c SHA512 53f074aec6e59717fca280b1764f6c2e0a1c073336f48d012ff268a7189697d42d24a91a6a549c7d9e1fe8b0006e34c219f4dba3cc95247d3905c6f8a6a8186f
+DIST time-0.3.41.crate 138369 BLAKE2B 1e6e22c973dc33c950886e9628864dfc07e52dd05fb6880ff233ee4815f41172374af9672c44d53c56c6ba1ca38c53315ae1b4999f1fea3706562880481ddecf SHA512 be43d521ed6bfff6331d614112877b0b68d99ee7bad8533dc0d49193bb130f25c933bd7c9b6af873de252f9aba59becb47ef72774ee2e57de106b6f34b646170
+DIST time-core-0.1.4.crate 8422 BLAKE2B 3c9fd96b77b2d405ef696d62d18639945b81d1c8d84f1613f440a4d61a373f767aa204cf557f82d41a990cb74e952b5ae51e467f9ad0eca0175bf3cc4385dee2 SHA512 677e6b67081901b2f0bf2856a2cc29ffbb0ec3a4363e6deaa3082890f4972669f30cb55863462d8510462faa6dd698b013e04921a0657005633506b51dbef531
+DIST time-macros-0.2.22.crate 24604 BLAKE2B a511923e4c8d790ed422e4635244796154b6893a3dfdd32e9b960fe0a12749a23656335573b42c1245984988382e6991e242830c770378580a61e9f451bd06a5 SHA512 7633ea40338364add29e7cf6beb7f2e9c441a8fd6079fba9b9fd13dcda6537c2ccbc3091cb6551715649d13080567fa26ed6db4e4b3402736105f526da2f45bc
+DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25
+DIST tokio-1.44.1.crate 830115 BLAKE2B aa5782eb5c17671154aaa5f306cd97a7f47c298b0aebbd9641183796a77fead391c837986873e27ba617e3ad61d92af050ea3e1bf269a7b6eaef508d1571a635 SHA512 41250b12a7fef14026215f098eb5aec128c83d601cd6f005943fa06f89a096a384c0a5f66c409d26281aa44b0039598d8b058ca86d9e58d9a76a780a58db7d2f
+DIST tokio-util-0.7.14.crate 118861 BLAKE2B 77ce7e2a6eb3bad6da00a4614642ed8493a9122e096e81ed5c529706278b8ed03ff732df2d8ae053f82407942fc13f23cb4b4eafd040a31a65450db73cb0d171 SHA512 7a4652f539acc7b7ca7b726e63279a5cdd2863620f0e79c7a643dcb4ff1d1778a1734ee2fc02759575cd651bf5ecc1d0228562693d62c02b5795bde3f712e555
+DIST tracing-0.1.41.crate 82448 BLAKE2B c056d938e001654e03efaec7a11eb8ecfbdfe9af2099271fcefa43f4f4683b40c59f7111fdf7f27df4da38bcbe94f1b2ac0abb6ec3d6e6a0d165b9fbb14da3a3 SHA512 dffb8d3a1375f1b9d5418550a46cb7b1d92b2cc8ffbccb430a38f7731547960775bb42798074186711847d256eee30fb3e74078b69cb36f28c07d9f231dbf96c
+DIST tracing-attributes-0.1.28.crate 33280 BLAKE2B 4f4bfab16ad8a296c9399125edfd4314d55ef58977d8a1f3e867618617feed898cd14766527c9b788d5fe3d3f8ee5bcca0e26dae79a2e6cf05366991ac23dc10 SHA512 4a3d5fd76efc414c86af0721aab9e9aa70fcd6b08eed4acee8c2af5af56fd665197aea612187c7f6022d1acf5567d5b9e72a7dcdcf25cc401135d875d95a99ed
+DIST tracing-core-0.1.33.crate 63434 BLAKE2B bc36332ffe5f4c95ae2d12df43944bcf589746cdb923a39098e5f4007fd1f19d7c3bb115011ddc40c13e3ae0e5cfc9a59c49861824e99fed7430fd29479abacf SHA512 1c6f0cf3b7bd6c8f6316ed9ea0b315a619308de6cbf7e50e665a193cf8c3399b5227d4f145d83b10c7e01a2f9fbc83d16e108cf09b7fd6cef413aa5c1acf89ef
+DIST typenum-1.18.0.crate 74871 BLAKE2B 99116d32b5317a658526daaf4fece2b9dc8cdbbc30c1e7a32fadf913e56a270a742abe0a0d348ea6039ae74fd4258c702d4626b14071626b7c5d2e2c31d82dec SHA512 c30ca78f8ba2e3e1bbfb3472c01974a0aeecb4471640ef373ddbef984ab37bca87ad4eced8193e5db6206d35ead31ebc25cdfe958f371625eeb97b6664f9c9e3
+DIST unicode-ident-1.0.18.crate 47743 BLAKE2B 517ab42a847020515b2b871844d0571ea672340f89a762631a791eac18935ac122122fa5566e58b99ab47de179eadb5298e8ff1d05b123c4e93b7fa989c8e31f SHA512 d11f89fb696f9e2953c96a40b5478832651b268c83b9c7a700b07e768e795d6e8dc346597d1226df21219d36866768d1f640bd8edb68db8bd3d5d437b2bfd324
+DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
+DIST url-2.5.4.crate 81097 BLAKE2B 74943c63809ca41a526a146bedae66f91f390fbd2ccbd90f9397d8074ee7ec26535f0f67170eb1d7232e139d8d795fde99be37f53f1bc32c6a6a4d46aad1369f SHA512 8f1d62bfdd45f52fa12ad657a521a3478d0ab54d187346a29dd59cc66a0f140ca96d850948e09f6316f08b44b3fc68526c58bd620fed5d065b7e8528df3cd46d
+DIST utf-8-0.7.6.crate 10422 BLAKE2B 296690040895ba9da9e69d527aea415f4bd6bd3c010e67a08f9cffd2f4cd92a99f9ddde77512f9ef5a0db069ac9ac3cd6fd91aa18f0bcadf870ed212fdd76f2b SHA512 6bf0787cc297a1ac4e47389464d05ef6850602f549621687e776618bec96c1f7bacbb1ac8faaa63e5d28d975b850db8d6c784eb66e2466128f0521b91c14015b
+DIST utf16_iter-1.0.5.crate 9736 BLAKE2B edcd9776113d4d2b267a9cbd58cab11c5497ff1a8252c4e695de619fc8e5eee1595343c857651774b3670d13392144e9d7df579f2e226842aa7e4e023a76fb65 SHA512 44dcbc5a7db149392fdaa31862be240f78fc5d7616f54be32cfc8f3adbee310e8681ae1bbe6edaad8a7fe6e7759dbac8ae4f69d0dbdbe5350c21dccdbbe975fa
+DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
+DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasi-0.14.2+wasi-0.2.4.crate 140921 BLAKE2B 6b3ce7cb8ed888ad65053352b02b827bced3b59118d546ba593ffa9de48305bef62419751036e22b0f95c22fe34ea1d7bdf7fee0f6981181026d1eedfacf73d9 SHA512 57e47ba27fb2b66b34f017c85743b99687eb8bcdc1312fb36e30d0c501e670f00dc7d6113730d819364abef5e8ec04d95f0d1150ec2b6049e605fa8bbdaa2cb3
+DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST wit-bindgen-rt-0.39.0.crate 12241 BLAKE2B c8cda3c7a513dca58e2ad52b03692714750870801af37a235bfe1f217afe880f36df56d8e54b52ee1cb9f4e30f5580b8a28519b44084d2191146977f237e406f SHA512 24b559688991083057b7fc0b6fa9f84445ae11cf53fca20887f55da93c24d97c9a3ed6488b3a845fe88243530b46442d3c2de70da4dc1c64f3ac632a440ea2c7
+DIST write16-1.0.0.crate 7218 BLAKE2B 548796314339463e4b71f8af3d344e45dc89480e103180b6d56c90fcb816ad1a37ab2ba20766c4b9754f2cc686752eb1f3a5a12ec1ed4369a9cef749ad4f3e97 SHA512 655a207b8082bb88e462f992ecb4833cef9d590da06d6356b41d109df2862b49ee5705189c78a607b549e7343035119d158020d58fcad49608e51659357a83c1
+DIST writeable-0.5.5.crate 22354 BLAKE2B e4ff9862c070b413568ce0c75d1eccafcf1db8578eee4795ea9046dadd643f8a77258b437be288b93af247199d63455298ac2cff909226bc432f91c0aa863921 SHA512 818b2546c8ec25816aeaf5e31a1ded927d197bf7256e7c5073738c2709bc58a95d382a0256eb38a99235ae83729b578701261866d42ea3357a26024906e196c1
+DIST yoke-0.7.5.crate 29673 BLAKE2B cd2e42103140e080a29bf579fe5176b36a192f9b1309c1f2fd7557fe93b2f6eadbf6fca4a6a3b1a7b6288403d2f643841dfc7a5b6a4476776943950abe5c1613 SHA512 6bbd99671d1a5a5217890eaa267113d193b3636b265393afb6e72a313f01704d462fe017264f061405e8e84c188b590094c29e3fcf19a63c375ae165d1a0bbef
+DIST yoke-derive-0.7.5.crate 7525 BLAKE2B 9b6b97eaf3c50f0f5ce8cebf685a1a17d4c21eb9b26d38eac99e0a4c0f9d592e95a7843b7a0b897945a14c4eb78ffdf2c0972b448d31d7bc7b077f27aad81d9a SHA512 e30b06b020aa283080905004295fb643c539b130d0d53bda51927b95e79ba562336aad30d8a6202d9a0c62d5b64559a01218c6f02f3faada6003d4b03c205cd6
+DIST zerocopy-0.8.24.crate 243777 BLAKE2B 01742167e36d19de6cdbbbddbd0ae303e729094fc68ac05a11cedc50a99c6fa6ea7622cf984d6945eda133b73d87e2bcf3173cdb57a9e15707882e119ae3849c SHA512 8d9d909486248fd2b3487cb7dbea1d944ceeb5bcfeca227df80c869dd0b6b5c78a73389f171d3f6c33d9a8772e7d6197abcc540d47db70906f12c45cc76dd6e8
+DIST zerocopy-derive-0.8.24.crate 86487 BLAKE2B 0a66fd7d9a07f919fbe774a1480e1b4a9d5302ef207d8d7427a03b05f457792f6f758969ccae0e4f3422edc06d017e635dfee4129f8030b36ff9f9443856bd36 SHA512 cd683875b46361fa0423e4fe0c933018b254c753681d5e14b941e443374a065236e6af553caf1f452c1aaa4ebf22e0fa6f304217367b66e141eb31b265e6b31a
+DIST zerofrom-0.1.6.crate 5669 BLAKE2B 1428e9cfdcdae13b39b7465524d1b8b79bdd89f743d3db4a3305c2b39d61ad7ced958dabd673a135147a04c8ace69d8c710dc06c6a07b1dd3987fc0a45148094 SHA512 e87c50b4f87caff70d026099bddcced73398c432f6aade32d74ad199cb3a985956bac282f48efdd501e64e80297afe4f8a4518db32437bf297fcf51a6f94bbd9
+DIST zerofrom-derive-0.1.6.crate 8305 BLAKE2B 9ab7425b450bf8c47538be7ff32901045393bdd91b9687b8a32ac194b7272dbd4f5310629647c6710f97a50cea45c722c018a77006f24da2b44a4c475daa54cb SHA512 ef4226df3c9ca9c0146639b19d9aa611f2ea3148c10ea875f43ca1960ee8ed438a553b078a9b449a58862f44cb7d4434fa35bbd6db6f0a773618f63d2575c985
+DIST zerovec-0.10.4.crate 126398 BLAKE2B b078784d6f178bbb9de1c3c1b6c7ef996f00bdd7dfd2924bda921e62f3e09e953fbf50f8d0da99ac6ff6d134f146253846f5663549dcf8df08eaf34b9d4016b3 SHA512 db12bba1d7476ddead92e6dfcdcc30e2e0defff4f263a740244eabee265a2cab265473a663d3dc3210f48e113b66d951da496dfab7965ce1bc792e5f2db422a0
+DIST zerovec-derive-0.10.3.crate 19438 BLAKE2B 9f7df8a4e4a0b62ab25aed967b26509db4bcc5d5b10b3bd73305099a4c49a60be8921484ced1a34d9b7ae30ffa5abe789686f432416a8f1cfc07de1db1dff594 SHA512 caefbffeb35265db9f74933bf07109d57f0da48156cafd4f330af78a5c7eb9ab0831a80789ad4fb119875ebc6cfd7e3de68c9984b77dca5151f9be41f1ae6e09
+DIST zstd-0.13.3.crate 30514 BLAKE2B f849d794a4e9157c95d7fcce57551a0fe25098348759086219adab57f37b328e9701b65994da30d8756adf12feae4407f5be92f6c1ca43a57807097520fcd04f SHA512 07e1589ebf2aa169cdc50381f5078012574e3613cc89f3d02914b286d37a9028124c6d40ee8efd75ecc50f31e51a24d2ad0a6e83e669d7dc6477fc43878d4751
+DIST zstd-safe-7.2.4.crate 29350 BLAKE2B d14a28f39faf7ed77b9dc11d79cc3b0b79f904a2cf2e78b184a0e57f02bb4a5c49c71c6693352a4f1e6d4653e570c491d52a4dca80293a7f98f49659d1d2ca82 SHA512 b4f3a4dc63814a2a088e549a0fa0bdeeba3e5ab3416c414207eb9ec1772f8913002f3b94ccf0675b651af94ed12eda427cc90dd40a8e81b3ed565ce80f4db1de
+DIST zstd-sys-2.0.15+zstd.1.5.7.crate 774847 BLAKE2B 9174ef2085fd9f8195e035abc49d4f1670f256ba81ffe60ddde8e7f42fe3b584e4eca5a455deb1da23cc5598a8f81784f09c22adbf3f5266218fa71338b9419c SHA512 c684e3d966746dfac12947174d7786f528f2e26ed2802e24b457a751616a9b6e6a274d77f70f7e75a111caefdc4357257ed4c2e2137cd2f051206f56e9cd19cf
diff --git a/www-misc/quixotic/files/linkmaze.confd b/www-misc/quixotic/files/linkmaze.confd
new file mode 100644
index 000000000000..2273924c7f03
--- /dev/null
+++ b/www-misc/quixotic/files/linkmaze.confd
@@ -0,0 +1,10 @@
+# May wish to run it as the same user as your webserver so it has access
+# to training data.
+#LINKMAZE_USER="nginx"
+LINKMAZE_USER="nobody"
+
+# --linkpath controls which paths belong to linkmaze
+# e.g. if webserver proxies /foo/ to linkmaze, then --linkpath should be foo.
+#
+# --train is for training data, point it to a collection of HTML files
+LINKMAZE_ARGS="--linkpath linkmaze --train /path/to/training/data --listen-addr 127.0.0.1 --listen-port 3005"
diff --git a/www-misc/quixotic/files/linkmaze.initd b/www-misc/quixotic/files/linkmaze.initd
new file mode 100644
index 000000000000..9e6d10450622
--- /dev/null
+++ b/www-misc/quixotic/files/linkmaze.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+name=linkmaze
+pidfile=/run/linkmaze.pid
+command=/usr/bin/linkmaze
+command_background=true
+command_user="${LINKMAZE_USER}"
+retry="TERM/10/KILL/5"
+command_args="${LINKMAZE_ARGS}"
+
+start_stop_daemon_args="--wait 300"
diff --git a/www-misc/quixotic/metadata.xml b/www-misc/quixotic/metadata.xml
new file mode 100644
index 000000000000..d9201802d6c5
--- /dev/null
+++ b/www-misc/quixotic/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/quixotic/quixotic-0.12-r1.ebuild b/www-misc/quixotic/quixotic-0.12-r1.ebuild
new file mode 100644
index 000000000000..6d08c87b36fa
--- /dev/null
+++ b/www-misc/quixotic/quixotic-0.12-r1.ebuild
@@ -0,0 +1,260 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+ actix-codec@0.5.2
+ actix-http@3.10.0
+ actix-macros@0.2.4
+ actix-router@0.5.3
+ actix-rt@2.10.0
+ actix-server@2.5.1
+ actix-service@2.0.3
+ actix-utils@3.0.1
+ actix-web-codegen@4.3.0
+ actix-web@4.10.2
+ addr2line@0.24.2
+ adler2@2.0.0
+ aho-corasick@1.1.3
+ alloc-no-stdlib@2.0.4
+ alloc-stdlib@0.2.2
+ anstream@0.6.18
+ anstyle-parse@0.2.6
+ anstyle-query@1.1.2
+ anstyle-wincon@3.0.7
+ anstyle@1.0.10
+ autocfg@1.4.0
+ backtrace@0.3.74
+ base64@0.22.1
+ bitflags@2.9.0
+ block-buffer@0.10.4
+ brotli-decompressor@4.0.2
+ brotli@7.0.0
+ bytes@1.10.1
+ bytestring@1.4.0
+ cc@1.2.17
+ cfg-if@1.0.0
+ clap@4.5.34
+ clap_builder@4.5.34
+ clap_derive@4.5.32
+ clap_lex@0.7.4
+ colorchoice@1.0.3
+ cookie@0.16.2
+ cpufeatures@0.2.17
+ crc32fast@1.4.2
+ crypto-common@0.1.6
+ deranged@0.4.1
+ derive_more-impl@2.0.1
+ derive_more@2.0.1
+ digest@0.10.7
+ displaydoc@0.2.5
+ encoding_rs@0.8.35
+ equivalent@1.0.2
+ flate2@1.1.0
+ fnv@1.0.7
+ foldhash@0.1.5
+ form_urlencoded@1.2.1
+ futf@0.1.5
+ futures-core@0.3.31
+ futures-sink@0.3.31
+ futures-task@0.3.31
+ futures-util@0.3.31
+ generic-array@0.14.7
+ getrandom@0.3.2
+ gimli@0.31.1
+ h2@0.3.26
+ hashbrown@0.15.2
+ heck@0.5.0
+ html5ever@0.30.0
+ http@0.2.12
+ httparse@1.10.1
+ httpdate@1.0.3
+ icu_collections@1.5.0
+ icu_locid@1.5.0
+ icu_locid_transform@1.5.0
+ icu_locid_transform_data@1.5.1
+ icu_normalizer@1.5.0
+ icu_normalizer_data@1.5.1
+ icu_properties@1.5.1
+ icu_properties_data@1.5.1
+ icu_provider@1.5.0
+ icu_provider_macros@1.5.0
+ idna@1.0.3
+ idna_adapter@1.2.0
+ impl-more@0.1.9
+ indexmap@2.8.0
+ is_terminal_polyfill@1.70.1
+ itoa@1.0.15
+ jobserver@0.1.32
+ language-tags@0.3.2
+ libc@0.2.171
+ litemap@0.7.5
+ local-channel@0.1.5
+ local-waker@0.1.4
+ lock_api@0.4.12
+ log@0.4.27
+ mac@0.1.1
+ markup5ever@0.15.0
+ match_token@0.1.0
+ memchr@2.7.4
+ mime@0.3.17
+ miniz_oxide@0.8.5
+ mio@1.0.3
+ new_debug_unreachable@1.0.6
+ num-conv@0.1.0
+ object@0.36.7
+ once_cell@1.21.2
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ percent-encoding@2.3.1
+ phf@0.11.3
+ phf_codegen@0.11.3
+ phf_generator@0.11.3
+ phf_shared@0.11.3
+ pin-project-lite@0.2.16
+ pin-utils@0.1.0
+ pkg-config@0.3.32
+ powerfmt@0.2.0
+ ppv-lite86@0.2.21
+ precomputed-hash@0.1.1
+ proc-macro2@1.0.94
+ quote@1.0.40
+ r-efi@5.2.0
+ rand@0.8.5
+ rand@0.9.0
+ rand_chacha@0.9.0
+ rand_core@0.6.4
+ rand_core@0.9.3
+ redox_syscall@0.5.10
+ regex-automata@0.4.9
+ regex-lite@0.1.6
+ regex-syntax@0.8.5
+ regex@1.11.1
+ rustc-demangle@0.1.24
+ ryu@1.0.20
+ same-file@1.0.6
+ scopeguard@1.2.0
+ serde@1.0.219
+ serde_derive@1.0.219
+ serde_json@1.0.140
+ serde_urlencoded@0.7.1
+ sha1@0.10.6
+ shlex@1.3.0
+ signal-hook-registry@1.4.2
+ siphasher@1.0.1
+ slab@0.4.9
+ smallvec@1.14.0
+ socket2@0.5.8
+ stable_deref_trait@1.2.0
+ string_cache@0.8.9
+ string_cache_codegen@0.5.4
+ strsim@0.11.1
+ syn@2.0.100
+ synstructure@0.13.1
+ tendril@0.4.3
+ time-core@0.1.4
+ time-macros@0.2.22
+ time@0.3.41
+ tinystr@0.7.6
+ tokio-util@0.7.14
+ tokio@1.44.1
+ tracing-attributes@0.1.28
+ tracing-core@0.1.33
+ tracing@0.1.41
+ typenum@1.18.0
+ unicode-ident@1.0.18
+ unicode-xid@0.2.6
+ url@2.5.4
+ utf-8@0.7.6
+ utf16_iter@1.0.5
+ utf8_iter@1.0.4
+ utf8parse@0.2.2
+ version_check@0.9.5
+ walkdir@2.5.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasi@0.14.2+wasi-0.2.4
+ winapi-util@0.1.9
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+ wit-bindgen-rt@0.39.0
+ write16@1.0.0
+ writeable@0.5.5
+ yoke-derive@0.7.5
+ yoke@0.7.5
+ zerocopy-derive@0.8.24
+ zerocopy@0.8.24
+ zerofrom-derive@0.1.6
+ zerofrom@0.1.6
+ zerovec-derive@0.10.3
+ zerovec@0.10.4
+ zstd-safe@7.2.4
+ zstd-sys@2.0.15+zstd.1.5.7
+ zstd@0.13.3
+"
+RUST_MIN_VER="1.81"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/marcusb.asc
+inherit cargo systemd verify-sig
+
+DESCRIPTION="Feed fake content to bots and robots.txt-ignoring LLM scrapers"
+HOMEPAGE="https://marcusb.org/hacks/quixotic.html"
+# https://github.com/marcus0x62/quixotic/issues/7 wrt 0.13
+SRC_URI="
+ https://marcusb.org/releases/${P}.tar.gz
+ verify-sig? ( https://marcusb.org/releases/${P}.tar.gz.sig )
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ BSD MIT Unicode-3.0 ZLIB
+ || ( Apache-2.0 Boost-1.0 )
+"
+SLOT="0"
+KEYWORDS="amd64"
+
+RDEPEND="app-arch/zstd:="
+DEPEND="${RDEPEND}"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-marcusb )"
+
+QA_FLAGS_IGNORED="usr/bin/linkmaze usr/bin/quixotic"
+
+src_unpack() {
+ if use verify-sig ; then
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.gz{,.sig}
+ unpack ${P}.tar.gz
+ fi
+
+ cargo_src_unpack
+}
+
+src_prepare() {
+ default
+
+ sed -i -e "s:/usr/local/bin/linkmaze:${EPREFIX}/usr/bin/linkmaze:" linkmaze.service || die
+}
+
+src_configure() {
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ cargo_src_configure
+}
+
+src_install() {
+ cargo_src_install
+
+ systemd_dounit linkmaze.service
+ newinitd "${FILESDIR}"/linkmaze.initd linkmaze
+ newconfd "${FILESDIR}"/linkmaze.confd linkmaze
+}
diff --git a/www-misc/urlwatch/Manifest b/www-misc/urlwatch/Manifest
new file mode 100644
index 000000000000..5a0069c554ab
--- /dev/null
+++ b/www-misc/urlwatch/Manifest
@@ -0,0 +1 @@
+DIST urlwatch-2.29.tar.gz 180540 BLAKE2B 69a86d208cb5e69f2596006d901696da92d8640119d1b3bcfdc31ba7ce196b5558a10266da5b320f813912fc564fa1550db9011217ead4c13f55ebe2755fc7b5 SHA512 09a8f1e7133614d6dfab9b7fdf56006ee6d2144bcaa8079a9bd9d8222fd67a08ab094c26956f01432bd9148fa5d1017607031673a02333ba5eac1060a2571c87
diff --git a/www-misc/urlwatch/metadata.xml b/www-misc/urlwatch/metadata.xml
new file mode 100644
index 000000000000..db1cedec88d0
--- /dev/null
+++ b/www-misc/urlwatch/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sbraz@gentoo.org</email>
+ <name>Louis Sautier</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/thp/urlwatch/issues</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/urlwatch/urlwatch-2.29.ebuild b/www-misc/urlwatch/urlwatch-2.29.ebuild
new file mode 100644
index 000000000000..54a6b08fa661
--- /dev/null
+++ b/www-misc/urlwatch/urlwatch-2.29.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A tool for monitoring webpages for updates"
+HOMEPAGE="
+ https://thp.io/2008/urlwatch/
+ https://github.com/thp/urlwatch/
+ https://pypi.org/project/urlwatch/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 arm64 x86"
+
+RDEPEND="
+ dev-python/cssselect[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/minidb-2.0.8[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ app-text/tesseract[png]
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/jq[${PYTHON_USEDEP}]
+ dev-python/pytesseract[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( CHANGELOG.md README.md )
+
+EPYTEST_PLUGINS=()
+EPYTEST_IGNORE=(
+ # Skip code quality check
+ "lib/urlwatch/tests/test_pep8.py"
+)
+EPYTEST_DESELECT=(
+ # Require the pdftotext module
+ "lib/urlwatch/tests/test_filter_documentation.py::test_url[https://example.net/pdf-test.pdf]"
+ "lib/urlwatch/tests/test_filter_documentation.py::test_url[https://example.net/pdf-test-password.pdf]"
+)
+
+distutils_enable_sphinx docs/source dev-python/alabaster
+distutils_enable_tests pytest
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ if ! has_version dev-python/jq; then
+ elog "Install 'dev-python/jq' to enable jq filtering support"
+ fi
+ if ! has_version dev-python/pytesseract; then
+ elog "Install 'dev-python/pytesseract' to enable OCR support"
+ fi
+ elog "HTML parsing can be improved by installing one of the following packages"
+ elog "and changing the html2text subfilter parameter:"
+ elog "dev-python/beautifulsoup4"
+ elog "app-text/html2text"
+ elog "dev-python/html2text"
+ elog "www-client/lynx"
+ fi
+}
diff --git a/www-misc/vdradmin-am/Manifest b/www-misc/vdradmin-am/Manifest
new file mode 100644
index 000000000000..db2c99fb0dd9
--- /dev/null
+++ b/www-misc/vdradmin-am/Manifest
@@ -0,0 +1,3 @@
+DIST vdradmin-am-3.6.10.tar.bz2 606665 BLAKE2B c475b36c840548b6e0d50b2095ce3278b0b526af856c891a25d28bb2f0cb9f950aa9979533a6b6425a2a36a594dc5d6a075fca7713eb1f59071fec854582cf5b SHA512 f7546f79b786ca383c0846656e74bd69dc9faf57fe5794ffd68776123497ec2a96c2f131801e3d5d19247ac36eaa896801e1ac9cd11291418abb518ba208e597
+DIST vdradmin-am-3.6.14.tgz 603368 BLAKE2B 0b3c13c9c92ba01e6ea9968a286006c5fbae6f6491d39f33857cac058d1ae924d8d19d214566b45017412818a57a5ac9788580b13301614523557d78242e8cc7 SHA512 64f75e1ce40086144b4d2d3cec0b2c0560e70e25bbc6ff36ed46261cd58abb1246b6664966adfb39d76266641fe3c6e7febb5644b7bf0c8eb56c7ef8cd4bdbb0
+DIST vdradmin-am-3.6.15.tgz 604304 BLAKE2B 1d99033ac74bdcf1d884c585de88a4d2355564297c541fe440d23888360db8a96496a89e9f140e7e74af1214ea78791b5afe67f0185b044d632d202e3ecda65a SHA512 2bcbe22e4ca2fc781922687bedb45d68fdffa6184b63c56a8886255bb43b0e06983a6a668a926bd26ad1c5d6fd7789ac4b804fe3959c057a521aa6d310c5248d
diff --git a/www-misc/vdradmin-am/files/timerlist_prio_lifetime_addon.patch b/www-misc/vdradmin-am/files/timerlist_prio_lifetime_addon.patch
new file mode 100644
index 000000000000..2518d5f32a58
--- /dev/null
+++ b/www-misc/vdradmin-am/files/timerlist_prio_lifetime_addon.patch
@@ -0,0 +1,216 @@
+commit 594f576033e8042c1339e45a5ca67dd0395b9788
+Author: Martin Dummer <martin.dummer@gmx.net>
+Date: Sun Oct 12 23:58:35 2025 +0200
+
+ add priority and lifetime to timer list
+
+diff --git a/po/de.po b/po/de.po
+index d532626..6cd13d4 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -1511,3 +1511,15 @@ msgstr "Timer"
+
+ msgid "System default"
+ msgstr "Systemstandard"
++
++msgid "Priority"
++msgstr "Priorität"
++
++msgid "Lifetime"
++msgstr "Lebenszeit"
++
++msgid "Show priority in timer list:"
++msgstr "Timer-Priorität in Timer-Liste anzeigen:"
++
++msgid "Show lifetime in timer list:"
++msgstr "Aufnahme-Lebenszeit in Timer-Liste anzeigen:"
+diff --git a/po/vdradmin.pot b/po/vdradmin.pot
+index 74f854b..4d9a04d 100644
+--- a/po/vdradmin.pot
++++ b/po/vdradmin.pot
+@@ -1523,3 +1523,15 @@ msgstr ""
+
+ msgid "System default"
+ msgstr ""
++
++msgid "Priority"
++msgstr ""
++
++msgid "Lifetime"
++msgstr ""
++
++msgid "Show priority in timer list:"
++msgstr ""
++
++msgid "Show lifetime in timer list:"
++msgstr ""
+diff --git a/template/default/config.html b/template/default/config.html
+index 094a327..a3318ab 100644
+--- a/template/default/config.html
++++ b/template/default/config.html
+@@ -315,6 +315,20 @@
+ <input type="radio" name="TM_TT_LIST" value="0" id="tm_tl_list_no" <?% UNLESS config.TM_TT_LIST %?>checked="checked"<?% END %?> /><label for="tm_tl_list_no"><?% gettext('No') %?></label>
+ </td>
+ </tr>
++ <tr class="row_odd">
++ <td class="col_label"><h5><?% gettext('Show priority in timer list:') %?></h5></td>
++ <td class="col_value">
++ <input type="radio" name="TM_LIST_PRIORITY" value="1" id="tm_list_priority_yes" <?% IF config.TM_LIST_PRIORITY %?>checked="checked"<?% END %?> /><label for="tm_list_priority_yes"><?% gettext('Yes') %?></label>
++ <input type="radio" name="TM_LIST_PRIORITY" value="0" id="tm_list_priority_no" <?% UNLESS config.TM_LIST_PRIORITY %?>checked="checked"<?% END %?> /><label for="tm_list_priority_no"><?% gettext('No') %?></label>
++ </td>
++ </tr>
++ <tr class="row_even">
++ <td class="col_label"><h5><?% gettext('Show lifetime in timer list:') %?></h5></td>
++ <td class="col_value">
++ <input type="radio" name="TM_LIST_LIFETIME" value="1" id="tm_list_lifetime_yes" <?% IF config.TM_LIST_LIFETIME %?>checked="checked"<?% END %?> /><label for="tm_list_lifetime_yes"><?% gettext('Yes') %?></label>
++ <input type="radio" name="TM_LIST_LIFETIME" value="0" id="tm_list_lifetime_no" <?% UNLESS config.TM_LIST_LIFETIME %?>checked="checked"<?% END %?> /><label for="tm_list_lifetime_no"><?% gettext('No') %?></label>
++ </td>
++ </tr>
+ </table>
+
+ <?% IF config.ST_FUNC %?>
+diff --git a/template/default/timer_list.html b/template/default/timer_list.html
+index cafe28d..cf47459 100644
+--- a/template/default/timer_list.html
++++ b/template/default/timer_list.html
+@@ -304,6 +304,32 @@
+ </a>
+ </h2>
+ </td>
++ <?% IF showprio %?>
++ <td class="col_prio <?% IF sortbyprio %?>selected<?% END %?>">
++ <h2>
++ <a href="<?% sortbypriourl %?>"><?% gettext('Priority') %?>
++ <?% IF sortbyprio %?>
++ <img src="bilder/sortiert_<?% desc %?>.gif" alt="" width="9" height="11" border="0" />
++ <?% ELSE %?>
++ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
++ <?% END %?>
++ </a>
++ </h2>
++ </td>
++ <?% END %?>
++ <?% IF showlft %?>
++ <td class="col_lft <?% IF sortbylft %?>selected<?% END %?>">
++ <h2>
++ <a href="<?% sortbylfturl %?>"><?% gettext('Lifetime') %?>
++ <?% IF sortbylft %?>
++ <img src="bilder/sortiert_<?% desc %?>.gif" alt="" width="9" height="11" border="0" />
++ <?% ELSE %?>
++ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
++ <?% END %?>
++ </a>
++ </h2>
++ </td>
++ <?% END %?>
+ <td class="col_name <?% IF sortbyname %?>selected<?% END %?>">
+ <h2>
+ <a href="<?% sortbynameurl %?>">
+@@ -396,6 +422,16 @@
+ <?% timer.stop %?>
+ </div>
+ </td>
++ <?% IF showprio %?>
++ <td class="col_prio <?% IF timer.sortbyprio %?>selected<?% END %?>">
++ <div><?% timer.prio %?></div>
++ </td>
++ <?% END %?>
++ <?% IF showlft %?>
++ <td class="col_lft <?% IF timer.sortbylft %?>selected<?% END %?>">
++ <div><?% timer.lft %?></div>
++ </td>
++ <?% END %?>
+ <td class="col_name <?% IF timer.sortbyname %?>selected<?% END %?>">
+ <div <?% IF config.TM_TT_LIST %?>onmouseover="tip('VDR-
+ <?% timer.id %?>'); return true;" onmouseout="untip(); return true;"
+diff --git a/vdradmind.pl b/vdradmind.pl
+index 7e83baa..08acbac 100755
+--- a/vdradmind.pl
++++ b/vdradmind.pl
+@@ -213,6 +213,8 @@ $CONFIG{TM_TT_TIMELINE} = 1;
+ $CONFIG{TM_TT_LIST} = 1;
+ $CONFIG{TM_SORTBY} = "day";
+ $CONFIG{TM_DESC} = 0;
++$CONFIG{TM_LIST_PRIORITY}= 0; # show timer's priority in timerlist
++$CONFIG{TM_LIST_LIFETIME}= 0; # show timer's lifetime in timerlist
+
+ #
+ $CONFIG{ST_FUNC} = 1;
+@@ -4717,6 +4719,8 @@ sub timer_list {
+ $CONFIG{TM_DESC} = ($q->param("desc") ? 1 : 0) if (defined($q->param("desc")));
+ $CONFIG{TM_SORTBY} = $q->param("sortby") if (defined($q->param("sortby")));
+ $CONFIG{TM_SORTBY} = "day" if (!$CONFIG{TM_SORTBY});
++ $CONFIG{TM_SORTBY} = "day" if (($CONFIG{TM_SORTBY} eq "prio") && (! $CONFIG{TM_LIST_PRIORITY}));
++ $CONFIG{TM_SORTBY} = "day" if (($CONFIG{TM_SORTBY} eq "lft") && (! $CONFIG{TM_LIST_LIFETIME}));
+
+ #
+ my @timer;
+@@ -4757,6 +4761,8 @@ sub timer_list {
+ $timer->{sortbyname} = 1 if ($CONFIG{TM_SORTBY} eq "name");
+ $timer->{sortbystart} = 1 if ($CONFIG{TM_SORTBY} eq "start");
+ $timer->{sortbystop} = 1 if ($CONFIG{TM_SORTBY} eq "stop");
++ $timer->{sortbyprio} = 1 if ($CONFIG{TM_SORTBY} eq "prio");
++ $timer->{sortbylft} = 1 if ($CONFIG{TM_SORTBY} eq "lft");
+ $timer->{sortbyday} = 1 if ($CONFIG{TM_SORTBY} eq "day");
+
+ $timer->{transponder} = get_transponder_from_vdrid($timer->{vdr_id});
+@@ -4941,6 +4947,18 @@ sub timer_list {
+ } else {
+ @timer = sort({ $a->{stop} <=> $b->{stop} } @timer);
+ }
++ } elsif ($CONFIG{TM_SORTBY} eq "prio") {
++ if ($CONFIG{TM_DESC}) {
++ @timer = sort({ $b->{prio} <=> $a->{prio} } @timer);
++ } else {
++ @timer = sort({ $a->{prio} <=> $b->{prio} } @timer);
++ }
++ } elsif ($CONFIG{TM_SORTBY} eq "lft") {
++ if ($CONFIG{TM_DESC}) {
++ @timer = sort({ $b->{lft} <=> $a->{lft} } @timer);
++ } else {
++ @timer = sort({ $a->{lft} <=> $b->{lft} } @timer);
++ }
+ } elsif ($CONFIG{TM_SORTBY} eq "day") {
+ if ($CONFIG{TM_DESC}) {
+ @timer = sort({ $b->{startsse} <=> $a->{startsse} } @timer);
+@@ -4958,13 +4976,19 @@ sub timer_list {
+ sortbyactiveurl => "$MyURL?aktion=timer_list&amp;sortby=active&amp;desc=" . (($CONFIG{TM_SORTBY} eq "active") ? $toggle_desc : $CONFIG{TM_DESC}),
+ sortbystarturl => "$MyURL?aktion=timer_list&amp;sortby=start&amp;desc=" . (($CONFIG{TM_SORTBY} eq "start") ? $toggle_desc : $CONFIG{TM_DESC}),
+ sortbystopurl => "$MyURL?aktion=timer_list&amp;sortby=stop&amp;desc=" . (($CONFIG{TM_SORTBY} eq "stop") ? $toggle_desc : $CONFIG{TM_DESC}),
++ sortbypriourl => "$MyURL?aktion=timer_list&amp;sortby=prio&amp;desc=" . (($CONFIG{TM_SORTBY} eq "prio") ? $toggle_desc : $CONFIG{TM_DESC}),
++ sortbylfturl => "$MyURL?aktion=timer_list&amp;sortby=lft&amp;desc=" . (($CONFIG{TM_SORTBY} eq "lft") ? $toggle_desc : $CONFIG{TM_DESC}),
+ sortbyday => ($CONFIG{TM_SORTBY} eq "day") ? 1 : 0,
+ sortbychannel => ($CONFIG{TM_SORTBY} eq "channel") ? 1 : 0,
+ sortbyname => ($CONFIG{TM_SORTBY} eq "name") ? 1 : 0,
+ sortbyactive => ($CONFIG{TM_SORTBY} eq "active") ? 1 : 0,
+ sortbystart => ($CONFIG{TM_SORTBY} eq "start") ? 1 : 0,
+ sortbystop => ($CONFIG{TM_SORTBY} eq "stop") ? 1 : 0,
++ sortbyprio => ($CONFIG{TM_SORTBY} eq "prio") ? 1 : 0,
++ sortbylft => ($CONFIG{TM_SORTBY} eq "lft") ? 1 : 0,
+ sortby => $CONFIG{TM_SORTBY},
++ showprio => $CONFIG{TM_LIST_PRIORITY},
++ showlft => $CONFIG{TM_LIST_LIFETIME},
+ desc => $CONFIG{TM_DESC} ? "desc" : "asc",
+ timer_loop => \@timer,
+ timers => \@timer2,
+diff --git a/template/default/style.css b/template/default/style.css
+index 3f83433..c454a3b 100644
+--- a/template/default/style.css
++++ b/template/default/style.css
+@@ -479,11 +479,16 @@ body.help .heading {
+ }
+ .col_start,
+ .col_stop,
++.col_prio,
+ .col_date,
+ .col_time {
+ width: 75px;
+ text-align: left;
+ }
++.col_lft {
++ width: 85px;
++ text-align: left;
++}
+ .col_length {
+ width: 75px;
+ text-align: right;
diff --git a/www-misc/vdradmin-am/files/vdradmin-3.6.10.conf b/www-misc/vdradmin-am/files/vdradmin-3.6.10.conf
new file mode 100644
index 000000000000..1895b9c51dd8
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmin-3.6.10.conf
@@ -0,0 +1,19 @@
+# Settings for vdradmin-am
+
+# Use ssl connection
+# Allowed values: yes no
+# SSL using will disable non SSL connections
+#SSL=no
+
+# Use the ipv6 protocol [EXPERIMENTAL]
+# Allowed values: yes no
+#IPV6=no
+
+# Enable Logging
+# Allowed values: syslog file no
+# Setting this value to file will log to /var/log/vdradmin/vdradmind.log
+#LOGGING=no
+
+# Set loglevel
+# Allowed values: 0-7
+#LOGLEVEL=4
diff --git a/www-misc/vdradmin-am/files/vdradmin-3.6.6.logrotate b/www-misc/vdradmin-am/files/vdradmin-3.6.6.logrotate
new file mode 100644
index 000000000000..a4f726c63c15
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmin-3.6.6.logrotate
@@ -0,0 +1,9 @@
+/var/log/vdradmin/vdradmind.log {
+ compress
+ rotate 4
+ weekly
+ delaycompress
+ copytruncate
+ missingok
+ notifempty
+}
diff --git a/www-misc/vdradmin-am/files/vdradmin-3.6.7.init b/www-misc/vdradmin-am/files/vdradmin-3.6.7.init
new file mode 100644
index 000000000000..10ffa6cd74ec
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmin-3.6.7.init
@@ -0,0 +1,56 @@
+#!/sbin/openrc-run
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+depend() {
+ use vdr
+}
+
+start() {
+ ebegin "Starting vdradmin"
+
+ : ${VDRADMIN_USER:=vdradmin}
+
+ local dir vdradmin_opts
+
+ # Prepare directories
+ for dir in cache log run; do
+ checkpath -q -d -m 0755 -o ${VDRADMIN_USER}:vdradmin "/var/${dir}/vdradmin"
+ done
+ checkpath -q -d -m 0755 -o ${VDRADMIN_USER}:vdradmin "/etc/vdradmin" \
+ "/etc/vdradmin/certs"
+ checkpath -q -f -m 0644 -o ${VDRADMIN_USER}:vdradmin "/etc/vdradmin/vdradmind.conf" \
+ "/etc/vdradmin/certs/server-cert.pem" \
+ "/etc/vdradmin/certs/server-key.pem"
+
+ if [ "${SSL}" = "yes" ]; then vdradmin_opts="${vdradmin_opts} --ssl"; fi
+ if [ "${IPV6}" = "yes" ]; then vdradmin_opts="${vdradmin_opts} --ipv6"; fi
+ vdradmin_opts="${vdradmin_opts} --log ${LOGLEVEL:=4}"
+
+ if [ "${LOGGING}" = "syslog" ]; then
+ sed -i -e "/LOGGING/s-LOGGING.*-LOGGING = 1-" /etc/vdradmin/vdradmind.conf
+ sed -i -e "/LOGFILE/s-LOGFILE.*-LOGFILE = syslog-" /etc/vdradmin/vdradmind.conf
+ elif [ "${LOGGING}" = "file" ]; then
+ sed -i -e "/LOGGING/s-LOGGING.*-LOGGING = 1-" /etc/vdradmin/vdradmind.conf
+ sed -i -e "/LOGFILE/s-LOGFILE.*-LOGFILE = vdradmind.log-" /etc/vdradmin/vdradmind.conf
+ else
+ sed -i -e "/LOGGING/s-LOGGING.*-LOGGING = 0-" /etc/vdradmin/vdradmind.conf
+ fi
+
+ if [ -n "${RC_UNAME}" ]; then
+ # running on baselayout-2/openrc
+ start-stop-daemon --start --background --user "${VDRADMIN_USER}" \
+ --pidfile /var/run/vdradmin/vdradmind.pid \
+ --exec /usr/bin/perl /usr/bin/vdradmind -- ${vdradmin_opts}
+ else
+ start-stop-daemon --start --background --chuid "${VDRADMIN_USER}" \
+ --exec /usr/bin/vdradmind -- ${vdradmin_opts}
+ fi
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping vdradmin"
+ start-stop-daemon --stop --quiet --pidfile /var/run/vdradmin/vdradmind.pid
+ eend $?
+}
diff --git a/www-misc/vdradmin-am/files/vdradmin-systemd-helper.sh b/www-misc/vdradmin-am/files/vdradmin-systemd-helper.sh
new file mode 100644
index 000000000000..a243d6912786
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmin-systemd-helper.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# VDRADMIN helper script for configuration transfer from gentoo config file
+# to a systemd service env file
+
+# read config file
+. /etc/conf.d/vdradmin
+
+SYSTEMD_ENV_FILE="/etc/vdradmin/vdradmin-systemd.env"
+SYSTEMD_ENV_TMP=$(mktemp)
+
+DAEMON_OPTS=""
+
+if [ "${SSL:=no}" = "yes" ]; then
+ DAEMON_OPTS="--ssl"
+fi
+
+if [ "${IPV6:=no}" = "yes" ]; then
+ DAEMON_OPTS="${DAEMON_OPTS} --ipv6"
+fi
+
+if [ "${LOGGING:=no}" = "yes" ]; then
+ DAEMON_OPTS="${DAEMON_OPTS} --log ${LOGLEVEL:=4} --logfile /var/log/vdradmin/vdradmind.log"
+fi
+
+echo "# systemd environment file, created by pre-exec script, do not edit!" > ${SYSTEMD_ENV_TMP}
+echo "CONF_D_OPTS=\"${DAEMON_OPTS}\"" >> ${SYSTEMD_ENV_TMP}
+
+# compare env file for changes
+diff -q ${SYSTEMD_ENV_TMP} ${SYSTEMD_ENV_FILE} >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ echo "vdradmin-am configuration changed"
+ cat ${SYSTEMD_ENV_TMP}
+ mv ${SYSTEMD_ENV_TMP} ${SYSTEMD_ENV_FILE}
+ chmod 0644 ${SYSTEMD_ENV_FILE}
+ sudo systemctl daemon-reload
+else
+ echo "vdradmin-am configuration not changed"
+ rm -f ${SYSTEMD_ENV_TMP} >/dev/null 2>&1
+fi
diff --git a/www-misc/vdradmin-am/files/vdradmind.conf b/www-misc/vdradmin-am/files/vdradmind.conf
new file mode 100644
index 000000000000..a5208a89b1b9
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmind.conf
@@ -0,0 +1,2 @@
+d /var/cache/vdradmin 0755 vdradmin vdradmin -
+d /var/log/vdradmin 0755 vdradmin vdradmin -
diff --git a/www-misc/vdradmin-am/files/vdradmind.service b/www-misc/vdradmin-am/files/vdradmind.service
new file mode 100644
index 000000000000..f82da02cd0b8
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmind.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=vdradmin-am, the web-based administration tool for VDR
+Documentation=man:vdradmind(8)
+
+After=vdr.service
+After=network.target
+
+ConditionPathExists=/etc/vdradmin
+ConditionPathExists=/etc/vdradmin/vdradmind.conf
+
+[Service]
+EnvironmentFile=/etc/vdradmin/vdradmin-systemd.env
+ExecStartPre=/usr/share/vdradmin/systemd/vdradmin-systemd-helper.sh
+ExecStart=/usr/bin/vdradmind $CONF_D_OPTS --nofork
+User=vdradmin
+
+[Install]
+WantedBy=multi-user.target
diff --git a/www-misc/vdradmin-am/files/vdradmind.service.conf b/www-misc/vdradmin-am/files/vdradmind.service.conf
new file mode 100644
index 000000000000..a44eefd46a9a
--- /dev/null
+++ b/www-misc/vdradmin-am/files/vdradmind.service.conf
@@ -0,0 +1,5 @@
+[Service]
+# set options for vdradmind here
+# example: DAEMON_OPTIONS=
+Environment="DAEMON_OPTIONS=/tftproot"
+
diff --git a/www-misc/vdradmin-am/metadata.xml b/www-misc/vdradmin-am/metadata.xml
new file mode 100644
index 000000000000..a0235fdeb599
--- /dev/null
+++ b/www-misc/vdradmin-am/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>martin.dummer@gmx.net</email>
+ <name>Martin Dummer</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>vdr@gentoo.org</email>
+ <name>Gentoo VDR Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/vdradmin-am/vdradmin-am-3.6.10-r2.ebuild b/www-misc/vdradmin-am/vdradmin-am-3.6.10-r2.ebuild
new file mode 100644
index 000000000000..575574307049
--- /dev/null
+++ b/www-misc/vdradmin-am/vdradmin-am-3.6.10-r2.ebuild
@@ -0,0 +1,187 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit ssl-cert systemd tmpfiles
+
+DESCRIPTION="WWW Admin for the Video Disk Recorder"
+HOMEPAGE="http://andreas.vdr-developer.org/vdradmin-am/index.html"
+SRC_URI="http://andreas.vdr-developer.org/vdradmin-am/download/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="ipv6 ssl systemd"
+
+DEPEND="
+ acct-group/vdradmin
+ acct-user/vdradmin
+ dev-lang/perl
+ dev-perl/Authen-SASL
+ dev-perl/CGI
+ dev-perl/Digest-HMAC
+ dev-perl/Locale-gettext
+ dev-perl/Template-Toolkit
+ dev-perl/URI
+ dev-perl/libwww-perl
+ virtual/perl-IO-Compress
+ virtual/perl-libnet
+ ipv6? ( dev-perl/IO-Socket-INET6 )
+ ssl? ( dev-perl/IO-Socket-SSL )
+ systemd? ( sys-apps/systemd )
+"
+RDEPEND="${DEPEND}"
+
+ETC_DIR="/etc/vdradmin"
+CERTS_DIR="/etc/vdradmin/certs"
+LIB_DIR="/usr/share/vdradmin"
+VDRADMIN_USER="vdradmin"
+VDRADMIN_GROUP="vdradmin"
+
+create_ssl_cert() {
+ # The ssl-cert eclass is not flexible enough, so do some steps manually
+ SSL_ORGANIZATION="${SSL_ORGANIZATION:-vdradmin-am}"
+ SSL_COMMONNAME="${SSL_COMMONNAME:-`hostname -f`}"
+
+ gen_cnf || return 1
+
+ gen_key 1 || return 1
+ gen_csr 1 || return 1
+ gen_crt 1 || return 1
+}
+
+src_unpack() {
+ unpack ${A}
+ cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service
+}
+
+src_prepare() {
+ default
+
+ sed -i vdradmind.pl \
+ -e "s|FILES_IN_SYSTEM = 0;|FILES_IN_SYSTEM = 1;|g" || die
+
+ if use ipv6; then
+ sed -e "s|/usr/bin/vdradmind|/usr/bin/vdradmind --ipv6|" \
+ -i "${WORKDIR}"/vdradmind.service || die
+ fi
+
+ if use ssl; then
+ sed -e "s|/usr/bin/vdradmind|/usr/bin/vdradmind --ssl|" \
+ -i "${WORKDIR}"/vdradmind.service || die
+ fi
+}
+
+src_install() {
+ newinitd "${FILESDIR}"/vdradmin-3.6.7.init vdradmin
+ newconfd "${FILESDIR}"/vdradmin-3.6.10.conf vdradmin
+
+ systemd_dounit "${WORKDIR}"/vdradmind.service
+ dotmpfiles "${FILESDIR}"/vdradmind.conf
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/vdradmin-3.6.6.logrotate vdradmin
+
+ newbin vdradmind.pl vdradmind
+
+ insinto "${LIB_DIR}"/template
+ doins -r "${S}"/template/*
+
+ insinto "${LIB_DIR}"/lib/Template/Plugin
+ doins -r "${S}"/lib/Template/Plugin/JavaScript.pm
+
+ insinto /usr/share/locale/
+ doins -r "${S}"/locale/*
+
+ newman vdradmind.pl.1 vdradmind.8
+
+ dodoc CREDITS ChangeLog FAQ HISTORY INSTALL README* REQUIREMENTS
+ docinto contrib
+ dodoc "${S}"/contrib/*
+
+ keepdir "${ETC_DIR}"
+ fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ETC_DIR}"
+
+ if use ssl; then
+ keepdir "${CERTS_DIR}"
+ fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${CERTS_DIR}"
+ fi
+}
+
+pkg_preinst() {
+ install -m 0644 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} /dev/null \
+ "${ED}"${ETC_DIR}/vdradmind.conf || die
+
+ if [[ -f "${EROOT}"${ETC_DIR}/vdradmind.conf ]]; then
+ cp "${EROOT}"${ETC_DIR}/vdradmind.conf \
+ "${ED}"${ETC_DIR}/vdradmind.conf || die
+ else
+ elog
+ elog "Creating a new config-file."
+ echo
+
+ cat <<-EOF > "${ED}"${ETC_DIR}/vdradmind.conf
+ VDRCONFDIR = "${EROOT}"/etc/vdr
+ VIDEODIR = "${EROOT}"/var/vdr/video
+ EPG_FILENAME = "${EROOT}"/var/vdr/video/epg.data
+ EPGIMAGES = "${EROOT}"/var/vdr/video/epgimages
+ PASSWORD = gentoo-vdr
+ USERNAME = gentoo-vdr
+ EOF
+ # Feed it with newlines
+ yes "" \
+ | "${ED}"/usr/bin/vdradmind --cfgdir "${ED}"${ETC_DIR} --config \
+ |sed -e 's|: |: \n|g'
+
+ [[ ${PIPESTATUS[1]} == "0" ]] \
+ || die "Failed to create initial configuration."
+
+ elog
+ elog "Created default user/password: gentoo-vdr/gentoo-vdr"
+ elog
+ elog "You can run \"emerge --config ${PN}\" if the default-values"
+ elog "do not match your installation or change them in the Setup-Menu"
+ elog "of the Web-Interface."
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process vdradmind.conf
+
+ if use ipv6; then
+ if ! use systemd; then
+ elog
+ elog "To make use of the ipv6 protocol"
+ elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
+ fi
+ fi
+
+ if use ssl; then
+ if ! use systemd; then
+ elog
+ elog "To use ssl connection to your vdr"
+ elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
+ fi
+
+ if [[ ! -f "${EROOT}"${CERTS_DIR}/server-cert.pem || \
+ ! -f "${EROOT}"${CERTS_DIR}/server-key.pem ]]; then
+ create_ssl_cert
+ local base=$(get_base 1)
+ install -D -m 0400 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
+ "${base}".key "${EROOT}"${CERTS_DIR}/server-key.pem || die
+ install -D -m 0444 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
+ "${base}".crt "${EROOT}"${CERTS_DIR}/server-cert.pem || die
+ fi
+ fi
+
+ elog
+ elog "To extend ${PN} you can emerge"
+ elog " media-plugins/vdr-epgsearch to search the EPG"
+ elog " media-plugins/vdr-streamdev for livetv streaming"
+ elog "on the machine running the VDR you connect to with ${PN}."
+}
+
+pkg_config() {
+ "${EROOT}"/usr/bin/vdradmind -c
+}
diff --git a/www-misc/vdradmin-am/vdradmin-am-3.6.14.ebuild b/www-misc/vdradmin-am/vdradmin-am-3.6.14.ebuild
new file mode 100644
index 000000000000..1130bc240f89
--- /dev/null
+++ b/www-misc/vdradmin-am/vdradmin-am-3.6.14.ebuild
@@ -0,0 +1,198 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit ssl-cert systemd tmpfiles
+
+DESCRIPTION="WWW Admin for the Video Disk Recorder"
+HOMEPAGE="http://andreas.vdr-developer.org/vdradmin-am/index.html"
+SRC_URI="https://github.com/vdr-projects/vdradmin-am/archive/refs/tags/v${PV}.tar.gz -> ${P}.tgz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ipv6 systemd"
+
+DEPEND="acct-user/vdradmin
+ dev-lang/perl
+ dev-perl/Authen-SASL
+ dev-perl/CGI
+ dev-perl/Digest-HMAC
+ dev-perl/HTTP-Daemon
+ dev-perl/Locale-gettext
+ dev-perl/Template-Toolkit
+ dev-perl/URI
+ dev-perl/libwww-perl
+ virtual/perl-IO-Compress
+ virtual/perl-libnet
+ ipv6? ( dev-perl/IO-Socket-INET6 )
+ ssl? ( dev-perl/HTTP-Daemon-SSL )
+ systemd? ( sys-apps/systemd )"
+RDEPEND="${DEPEND}
+ app-admin/sudo"
+BDEPEND="
+ acct-user/vdradmin
+ sys-devel/gettext"
+PATCHES=( "${FILESDIR}/timerlist_prio_lifetime_addon.patch" )
+
+ETC_DIR="/etc/vdradmin"
+CERTS_DIR="/etc/vdradmin/certs"
+LIB_DIR="/usr/share/vdradmin"
+VDRADMIN_USER="vdradmin"
+VDRADMIN_GROUP="vdradmin"
+
+create_ssl_cert() {
+ elog "Create and install SSL certificate"
+ SSL_ORGANIZATION="VDR vdradmin-am"
+ SSL_COMMONNAME=$("${ROOT}"/bin/hostname -f)
+ elog "install_cert ${CERTS_DIR}/server-cert.pem for host $SSL_COMMONNAME"
+ rm -f "${ROOT}${CERTS_DIR}/server-cert.pem" "${ROOT}${CERTS_DIR}/server-key.pem" || die
+ install_cert "${ROOT}${CERTS_DIR}/vdradmin"
+ ls -la "${ROOT}${CERTS_DIR}/"
+ rm -f "${ROOT}${CERTS_DIR}/vdradmin.csr" "${ROOT}${CERTS_DIR}/vdradmin.pem" || die
+ mv "${ROOT}${CERTS_DIR}/vdradmin.key" "${ROOT}${CERTS_DIR}/server-key.pem" || die
+ mv "${ROOT}${CERTS_DIR}/vdradmin.crt" "${ROOT}${CERTS_DIR}/server-cert.pem" || die
+ chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ROOT}${CERTS_DIR}/server-cert.pem" || die
+ chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ROOT}${CERTS_DIR}/server-key.pem" || die
+}
+
+src_unpack() {
+ unpack ${A}
+ cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service || die
+}
+
+src_prepare() {
+ default
+
+ sed -i vdradmind.pl \
+ -e "s|FILES_IN_SYSTEM\s*=\s*0;|FILES_IN_SYSTEM = 1;|" || die
+}
+
+src_install() {
+ newinitd "${FILESDIR}"/vdradmin-3.6.7.init vdradmin
+ newconfd "${FILESDIR}"/vdradmin-3.6.10.conf vdradmin
+
+ systemd_dounit "${WORKDIR}"/vdradmind.service
+ dotmpfiles "${FILESDIR}"/vdradmind.conf
+
+ exeinto /usr/share/vdradmin/systemd
+ doexe "${FILESDIR}"/vdradmin-systemd-helper.sh
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/vdradmin-3.6.6.logrotate vdradmin
+
+ newbin vdradmind.pl vdradmind
+
+ insinto "${LIB_DIR}"/template
+ doins -r "${S}"/template/*
+
+ insinto "${LIB_DIR}"/lib/Template/Plugin
+ doins -r "${S}"/lib/Template/Plugin/JavaScript.pm
+
+ newman vdradmind.pl.1 vdradmind.8
+
+ dodoc CREDITS FAQ HISTORY INSTALL README* REQUIREMENTS
+ docinto contrib
+ dodoc "${S}"/contrib/*
+
+ keepdir "${ETC_DIR}"
+ fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ETC_DIR}"
+
+ if use ssl; then
+ keepdir "${CERTS_DIR}"
+ fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${CERTS_DIR}"
+ fi
+
+ mkdir -p "${ED}/etc/sudoers.d/" || die
+ echo "vdradmin ALL=NOPASSWD:/bin/systemctl daemon-reload" > "${ED}/etc/sudoers.d/${PN}" || die
+ chmod 0440 "${ED}/etc/sudoers.d/${PN}" || die
+
+ local PO L
+ for PO in po/*.po
+ do
+ L=$(basename $PO .po)
+ insinto /usr/share/locale/${L}/LC_MESSAGES/
+ msgfmt po/${L}.po -o po/${L}.mo
+ newins po/${L}.mo vdradmin.mo
+ done
+
+}
+
+pkg_preinst() {
+ install -m 0644 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} /dev/null \
+ "${ED}"${ETC_DIR}/vdradmind.conf || die
+
+ if [[ -f "${EROOT}"${ETC_DIR}/vdradmind.conf ]]; then
+ cp "${EROOT}"${ETC_DIR}/vdradmind.conf \
+ "${ED}"${ETC_DIR}/vdradmind.conf || die
+ else
+ elog
+ elog "Creating a new config-file."
+ echo
+
+ cat <<-EOF > "${ED}"${ETC_DIR}/vdradmind.conf
+ VDRCONFDIR = /etc/vdr
+ VIDEODIR = /var/vdr/video
+ EPG_FILENAME = /var/vdr/video/epg.data
+ EPGIMAGES = /var/vdr/video/epgimages
+ PASSWORD = gentoo-vdr
+ USERNAME = gentoo-vdr
+ VDR_PORT = 6419
+ EOF
+ # Feed it with newlines
+ yes "" \
+ | "${ED}"/usr/bin/vdradmind --cfgdir "${ED}"${ETC_DIR} --config \
+ |sed -e 's|: |: \n|g'
+
+ [[ ${PIPESTATUS[1]} == "0" ]] \
+ || die "Failed to create initial configuration."
+
+ elog
+ elog "Created default user/password: gentoo-vdr/gentoo-vdr"
+ elog
+ elog "You can run \"emerge --config ${PN}\" if the default-values"
+ elog "do not match your installation or change them in the Setup-Menu"
+ elog "of the Web-Interface."
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process vdradmind.conf
+
+ if use ipv6; then
+ elog
+ elog "To make use of the ipv6 protocol"
+ elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
+ fi
+
+ if use ssl; then
+ elog
+ elog "To use ssl connection to your vdradmin"
+ elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
+
+ # only create a certificate if none exists
+ if [[ -f ${ROOT}${CERTS_DIR}/server-cert.pem ]]; then
+ elog "Existing SSL cert found, not touching it."
+ else
+ elog "No SSL cert found, creating a default one now"
+ create_ssl_cert
+ fi
+ fi
+
+ if [[ ! -f "${EROOT}"${ETC_DIR}/vdradmin-systemd.env ]]; then
+ echo "# systemd environment file, created by pre-exec script, do not edit!" \
+ > "${EROOT}"${ETC_DIR}/vdradmin-systemd.env
+ chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${EROOT}"${ETC_DIR}/vdradmin-systemd.env || die
+ fi
+
+ elog
+ elog "To extend the functionality of ${PN} you can emerge"
+ elog " media-plugins/vdr-epgsearch to search the EPG"
+ elog " media-plugins/vdr-streamdev for livetv streaming"
+ elog "on the machine running the VDR you connect to with ${PN}."
+}
+
+pkg_config() {
+ "${EROOT}"/usr/bin/vdradmind -c
+}
diff --git a/www-misc/vdradmin-am/vdradmin-am-3.6.15.ebuild b/www-misc/vdradmin-am/vdradmin-am-3.6.15.ebuild
new file mode 100644
index 000000000000..e4fdf8890dde
--- /dev/null
+++ b/www-misc/vdradmin-am/vdradmin-am-3.6.15.ebuild
@@ -0,0 +1,197 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit ssl-cert systemd tmpfiles
+
+DESCRIPTION="WWW Admin for the Video Disk Recorder"
+HOMEPAGE="https://github.com/vdr-projects/vdradmin-am"
+SRC_URI="https://github.com/vdr-projects/vdradmin-am/archive/refs/tags/v${PV}.tar.gz -> ${P}.tgz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ipv6 systemd"
+
+DEPEND="acct-user/vdradmin
+ dev-lang/perl
+ dev-perl/Authen-SASL
+ dev-perl/CGI
+ dev-perl/Digest-HMAC
+ dev-perl/HTTP-Daemon
+ dev-perl/Locale-gettext
+ dev-perl/Template-Toolkit
+ dev-perl/URI
+ dev-perl/libwww-perl
+ virtual/perl-IO-Compress
+ virtual/perl-libnet
+ ipv6? ( dev-perl/IO-Socket-INET6 )
+ ssl? ( dev-perl/HTTP-Daemon-SSL )
+ systemd? ( sys-apps/systemd )"
+RDEPEND="${DEPEND}
+ app-admin/sudo"
+BDEPEND="
+ acct-user/vdradmin
+ sys-devel/gettext"
+
+ETC_DIR="/etc/vdradmin"
+CERTS_DIR="/etc/vdradmin/certs"
+LIB_DIR="/usr/share/vdradmin"
+VDRADMIN_USER="vdradmin"
+VDRADMIN_GROUP="vdradmin"
+
+create_ssl_cert() {
+ elog "Create and install SSL certificate"
+ SSL_ORGANIZATION="VDR vdradmin-am"
+ SSL_COMMONNAME=$("${ROOT}"/bin/hostname -f)
+ elog "install_cert ${CERTS_DIR}/server-cert.pem for host $SSL_COMMONNAME"
+ rm -f "${ROOT}${CERTS_DIR}/server-cert.pem" "${ROOT}${CERTS_DIR}/server-key.pem" || die
+ install_cert "${ROOT}${CERTS_DIR}/vdradmin"
+ ls -la "${ROOT}${CERTS_DIR}/"
+ rm -f "${ROOT}${CERTS_DIR}/vdradmin.csr" "${ROOT}${CERTS_DIR}/vdradmin.pem" || die
+ mv "${ROOT}${CERTS_DIR}/vdradmin.key" "${ROOT}${CERTS_DIR}/server-key.pem" || die
+ mv "${ROOT}${CERTS_DIR}/vdradmin.crt" "${ROOT}${CERTS_DIR}/server-cert.pem" || die
+ chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ROOT}${CERTS_DIR}/server-cert.pem" || die
+ chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ROOT}${CERTS_DIR}/server-key.pem" || die
+}
+
+src_unpack() {
+ unpack ${A}
+ cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service || die
+}
+
+src_prepare() {
+ default
+
+ sed -i vdradmind.pl \
+ -e "s|FILES_IN_SYSTEM\s*=\s*0;|FILES_IN_SYSTEM = 1;|" || die
+}
+
+src_install() {
+ newinitd "${FILESDIR}"/vdradmin-3.6.7.init vdradmin
+ newconfd "${FILESDIR}"/vdradmin-3.6.10.conf vdradmin
+
+ systemd_dounit "${WORKDIR}"/vdradmind.service
+ dotmpfiles "${FILESDIR}"/vdradmind.conf
+
+ exeinto /usr/share/vdradmin/systemd
+ doexe "${FILESDIR}"/vdradmin-systemd-helper.sh
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}"/vdradmin-3.6.6.logrotate vdradmin
+
+ newbin vdradmind.pl vdradmind
+
+ insinto "${LIB_DIR}"/template
+ doins -r "${S}"/template/*
+
+ insinto "${LIB_DIR}"/lib/Template/Plugin
+ doins -r "${S}"/lib/Template/Plugin/JavaScript.pm
+
+ newman vdradmind.pl.1 vdradmind.8
+
+ dodoc CREDITS FAQ HISTORY INSTALL README* REQUIREMENTS
+ docinto contrib
+ dodoc "${S}"/contrib/*
+
+ keepdir "${ETC_DIR}"
+ fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ETC_DIR}"
+
+ if use ssl; then
+ keepdir "${CERTS_DIR}"
+ fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${CERTS_DIR}"
+ fi
+
+ mkdir -p "${ED}/etc/sudoers.d/" || die
+ echo "vdradmin ALL=NOPASSWD:/bin/systemctl daemon-reload" > "${ED}/etc/sudoers.d/${PN}" || die
+ chmod 0440 "${ED}/etc/sudoers.d/${PN}" || die
+
+ local PO L
+ for PO in po/*.po
+ do
+ L=$(basename $PO .po)
+ insinto /usr/share/locale/${L}/LC_MESSAGES/
+ msgfmt po/${L}.po -o po/${L}.mo
+ newins po/${L}.mo vdradmin.mo
+ done
+
+}
+
+pkg_preinst() {
+ install -m 0644 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} /dev/null \
+ "${ED}"${ETC_DIR}/vdradmind.conf || die
+
+ if [[ -f "${EROOT}"${ETC_DIR}/vdradmind.conf ]]; then
+ cp "${EROOT}"${ETC_DIR}/vdradmind.conf \
+ "${ED}"${ETC_DIR}/vdradmind.conf || die
+ else
+ elog
+ elog "Creating a new config-file."
+ echo
+
+ cat <<-EOF > "${ED}"${ETC_DIR}/vdradmind.conf
+ VDRCONFDIR = /etc/vdr
+ VIDEODIR = /var/vdr/video
+ EPG_FILENAME = /var/vdr/video/epg.data
+ EPGIMAGES = /var/vdr/video/epgimages
+ PASSWORD = gentoo-vdr
+ USERNAME = gentoo-vdr
+ VDR_PORT = 6419
+ EOF
+ # Feed it with newlines
+ yes "" \
+ | "${ED}"/usr/bin/vdradmind --cfgdir "${ED}"${ETC_DIR} --config \
+ |sed -e 's|: |: \n|g'
+
+ [[ ${PIPESTATUS[1]} == "0" ]] \
+ || die "Failed to create initial configuration."
+
+ elog
+ elog "Created default user/password: gentoo-vdr/gentoo-vdr"
+ elog
+ elog "You can run \"emerge --config ${PN}\" if the default-values"
+ elog "do not match your installation or change them in the Setup-Menu"
+ elog "of the Web-Interface."
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process vdradmind.conf
+
+ if use ipv6; then
+ elog
+ elog "To make use of the ipv6 protocol"
+ elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
+ fi
+
+ if use ssl; then
+ elog
+ elog "To use ssl connection to your vdradmin"
+ elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
+
+ # only create a certificate if none exists
+ if [[ -f ${ROOT}${CERTS_DIR}/server-cert.pem ]]; then
+ elog "Existing SSL cert found, not touching it."
+ else
+ elog "No SSL cert found, creating a default one now"
+ create_ssl_cert
+ fi
+ fi
+
+ if [[ ! -f "${EROOT}"${ETC_DIR}/vdradmin-systemd.env ]]; then
+ echo "# systemd environment file, created by pre-exec script, do not edit!" \
+ > "${EROOT}"${ETC_DIR}/vdradmin-systemd.env
+ chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${EROOT}"${ETC_DIR}/vdradmin-systemd.env || die
+ fi
+
+ elog
+ elog "To extend the functionality of ${PN} you can emerge"
+ elog " media-plugins/vdr-epgsearch to search the EPG"
+ elog " media-plugins/vdr-streamdev for livetv streaming"
+ elog "on the machine running the VDR you connect to with ${PN}."
+}
+
+pkg_config() {
+ "${EROOT}"/usr/bin/vdradmind -c
+}
diff --git a/www-misc/visitors/Manifest b/www-misc/visitors/Manifest
new file mode 100644
index 000000000000..8d01d7220425
--- /dev/null
+++ b/www-misc/visitors/Manifest
@@ -0,0 +1 @@
+DIST visitors-0.7.tar.gz 100154 BLAKE2B 4846da14b22210024696d85d3eb4048cece04ce20bcfc74dec4b3e9a794780839034b01a335fe13d8fdd71f785f49a23ccaf43ceb01878528621ad4272c0dd65 SHA512 41902a44d802b7318e0a2aec7b2947ca478cac94c97e071fefbae0ba67fe74d2985e7c27bdc64d8789d41ab46586a0478cc8f4b6ed83cb6a32139799cb328a11
diff --git a/www-misc/visitors/metadata.xml b/www-misc/visitors/metadata.xml
new file mode 100644
index 000000000000..9d25a08752af
--- /dev/null
+++ b/www-misc/visitors/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ Visitors is a very fast web log analyzer for Linux, Windows, and other
+ Unix-like operating systems. It takes as input a web server log file, and
+ outputs statistics in form of different types of reports.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/www-misc/visitors/visitors-0.7-r2.ebuild b/www-misc/visitors/visitors-0.7-r2.ebuild
new file mode 100644
index 000000000000..8e41c2d0dac7
--- /dev/null
+++ b/www-misc/visitors/visitors-0.7-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Fast web log analyzer"
+HOMEPAGE="http://www.hping.org/visitors/"
+SRC_URI="http://www.hping.org/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+S="${WORKDIR}/${P/-/_}"
+
+DOCS=( AUTHORS Changelog README TODO )
+HTML_DOCS=( doc.html visitors.css visitors.png )
+
+src_prepare() {
+ default
+ sed -i doc.html \
+ -e 's:graph\.gif:graph.png:' \
+ || die "sed doc.html"
+ sed -i Makefile \
+ -e 's| -o | $(LDFLAGS)&|g' \
+ || die "sed Makefile"
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS} -Wall -W" \
+ DEBUG=""
+}
+
+src_install() {
+ einstalldocs
+ dobin visitors
+}