diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /www-misc | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Adding metadata
Diffstat (limited to 'www-misc')
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&sortby=active&desc=" . (($CONFIG{TM_SORTBY} eq "active") ? $toggle_desc : $CONFIG{TM_DESC}), + sortbystarturl => "$MyURL?aktion=timer_list&sortby=start&desc=" . (($CONFIG{TM_SORTBY} eq "start") ? $toggle_desc : $CONFIG{TM_DESC}), + sortbystopurl => "$MyURL?aktion=timer_list&sortby=stop&desc=" . (($CONFIG{TM_SORTBY} eq "stop") ? $toggle_desc : $CONFIG{TM_DESC}), ++ sortbypriourl => "$MyURL?aktion=timer_list&sortby=prio&desc=" . (($CONFIG{TM_SORTBY} eq "prio") ? $toggle_desc : $CONFIG{TM_DESC}), ++ sortbylfturl => "$MyURL?aktion=timer_list&sortby=lft&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 +} |
