diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
| commit | bfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch) | |
| tree | 0d7a74b4463ee387f9cf9368ceb1b757f694f72a /net-vpn | |
| parent | f716a9fe6455d39eef01e718aae68dae61c19704 (diff) | |
| download | baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip | |
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'net-vpn')
355 files changed, 18558 insertions, 0 deletions
diff --git a/net-vpn/6tunnel/6tunnel-0.13-r1.ebuild b/net-vpn/6tunnel/6tunnel-0.13-r1.ebuild new file mode 100644 index 000000000000..bc238adf9859 --- /dev/null +++ b/net-vpn/6tunnel/6tunnel-0.13-r1.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +inherit flag-o-matic python-any-r1 + +DESCRIPTION="TCP proxy for applications that don't speak IPv6" +HOMEPAGE="https://github.com/wojtekka/6tunnel" +SRC_URI="https://github.com/wojtekka/6tunnel/releases/download/${PV}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ~riscv ~s390 x86" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND="test? ( ${PYTHON_DEPS} )" + +PATCHES=( "${FILESDIR}"/${P}-test.patch ) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_configure() { + # bug #943850 + append-cflags -std=gnu17 + + default +} diff --git a/net-vpn/6tunnel/Manifest b/net-vpn/6tunnel/Manifest new file mode 100644 index 000000000000..094e55d0e9b4 --- /dev/null +++ b/net-vpn/6tunnel/Manifest @@ -0,0 +1 @@ +DIST 6tunnel-0.13.tar.gz 103054 BLAKE2B 4aa10cd798ff3e3ab1e78bf3497c007e63a3e0cef094f507976fa495e6b544601cd9a231b828fc21db35a45e67a9dc4f13b1339e82d4f198c842c9b1177b95ad SHA512 e495b561e2fe4483417cf44291d729377fe02123f21b7d58b9aed294c676392d860de7474b6bcb4e3e4ffdcd87752ee1af070dfbab028b5de5adb778b0241f72 diff --git a/net-vpn/6tunnel/files/6tunnel-0.13-test.patch b/net-vpn/6tunnel/files/6tunnel-0.13-test.patch new file mode 100644 index 000000000000..1cac66ea73cf --- /dev/null +++ b/net-vpn/6tunnel/files/6tunnel-0.13-test.patch @@ -0,0 +1,56 @@ +From 9e4119f03f57eec67b97dddbf09d363b638791dc Mon Sep 17 00:00:00 2001 +From: Wojtek Kaniewski <wojtekka@toxygen.net> +Date: Fri, 18 Sep 2020 20:36:19 +0200 +Subject: [PATCH] Move test script to Python 3 + +--- + test.py | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/test.py b/test.py +index c56feca..4a754bd 100755 +--- a/test.py ++++ b/test.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import os + import socket +@@ -8,7 +8,7 @@ import select + (SUCCESS, COMMAND_FAIL, CONNECT_FAIL, DISCONNECT, ACCEPT_FAIL, DATA_MISMATCH) = range(6) + labels = ["success", "command fail", "connection fail", "disconnection", "accept fail", "data mismatch"] + +-def test(expect, client_af, server_af, from_ip, to_ip, args="", client_sends_first="NICK nick\r\n", server_receives="NICK nick\r\n", app_responds="", app_inserts="", server_sends_then=":localhost 001 nick :Welcome\r\n"): ++def test(expect, client_af, server_af, from_ip, to_ip, args="", client_sends_first=b"NICK nick\r\n", server_receives=b"NICK nick\r\n", app_responds=b"", app_inserts=b"", server_sends_then=b":localhost 001 nick :Welcome\r\n"): + # Open and close a socket to get random port available + + client_sock = socket.socket(client_af, socket.SOCK_STREAM, 0) +@@ -26,7 +26,7 @@ def test(expect, client_af, server_af, from_ip, to_ip, args="", client_sends_fir + server_port = server_sock.getsockname()[1] + + all_args = "-1 %s %d %s %d" % (args, client_port, to_ip, server_port) +- print "Running with %s" % all_args ++ print ("Running with %s" % all_args) + if os.system("./6tunnel " + all_args) != 0: + if expect != COMMAND_FAIL: + raise Exception("expected %s yet command failed" % labels[expect]) +@@ -139,11 +139,11 @@ test(COMMAND_FAIL, socket.AF_INET6, socket.AF_INET6, '::1', '::1', '-6 -s 127.0. + + # Test IRC password options + +-test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-I password', app_inserts="PASS password\r\n") ++test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-I password', app_inserts=b"PASS password\r\n") + +-test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first="NICK nick\r\n") ++test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first=b"NICK nick\r\n") + +-test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first="PASS invalid\r\nNICK nick\r\n", app_responds=":6tunnel 464 * :Password incorrect\r\n") ++test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first=b"PASS invalid\r\nNICK nick\r\n", app_responds=b":6tunnel 464 * :Password incorrect\r\n") + +-test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first="PASS password\r\nNICK nick\r\n") ++test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first=b"PASS password\r\nNICK nick\r\n") + +-- +2.26.2 + diff --git a/net-vpn/6tunnel/metadata.xml b/net-vpn/6tunnel/metadata.xml new file mode 100644 index 000000000000..159017daa7e6 --- /dev/null +++ b/net-vpn/6tunnel/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="github">wojtekka/6tunnel</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/GlobalProtect-openconnect/GlobalProtect-openconnect-2.4.4-r1.ebuild b/net-vpn/GlobalProtect-openconnect/GlobalProtect-openconnect-2.4.4-r1.ebuild new file mode 100644 index 000000000000..8e25354dcb9f --- /dev/null +++ b/net-vpn/GlobalProtect-openconnect/GlobalProtect-openconnect-2.4.4-r1.ebuild @@ -0,0 +1,639 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Autogenerated by pycargoebuild 0.13.3 + +EAPI=8 + +CRATES=" + Inflector@0.11.4 + addr2line@0.24.2 + adler2@2.0.0 + aead@0.5.2 + aho-corasick@1.1.3 + alloc-no-stdlib@2.0.4 + alloc-stdlib@0.2.2 + android-tzdata@0.1.1 + android_system_properties@0.1.5 + anstream@0.6.18 + anstyle-parse@0.2.6 + anstyle-query@1.1.2 + anstyle-wincon@3.0.7 + anstyle@1.0.10 + anyhow@1.0.95 + ascii@1.1.0 + async-trait@0.1.86 + atk-sys@0.18.2 + atk@0.18.2 + atomic-waker@1.1.2 + autocfg@1.4.0 + axum-core@0.5.0 + axum@0.8.1 + backtrace@0.3.74 + base64@0.21.7 + base64@0.22.1 + bitflags@1.3.2 + bitflags@2.8.0 + block-buffer@0.10.4 + block2@0.5.1 + block@0.1.6 + brotli-decompressor@4.0.2 + brotli@7.0.0 + bumpalo@3.17.0 + bytemuck@1.21.0 + byteorder@1.5.0 + bytes@1.10.0 + cairo-rs@0.18.5 + cairo-sys-rs@0.18.2 + camino@1.1.9 + cargo-platform@0.1.9 + cargo_metadata@0.19.1 + cargo_toml@0.21.0 + cc@1.2.13 + cesu8@1.1.0 + cfb@0.7.3 + cfg-expr@0.15.8 + cfg-if@1.0.0 + cfg_aliases@0.2.1 + chacha20@0.9.1 + chacha20poly1305@0.10.1 + chrono@0.4.39 + chunked_transfer@1.5.0 + cipher@0.4.4 + clap-verbosity-flag@3.0.2 + clap@4.5.28 + clap_builder@4.5.27 + clap_derive@4.5.28 + clap_lex@0.7.4 + cocoa-foundation@0.2.0 + cocoa@0.26.0 + colorchoice@1.0.3 + combine@4.6.7 + compile-time@0.2.0 + convert_case@0.4.0 + cookie@0.18.1 + core-foundation-sys@0.8.7 + core-foundation@0.10.0 + core-foundation@0.9.4 + core-graphics-types@0.2.0 + core-graphics@0.24.0 + cpufeatures@0.2.17 + crc32fast@1.4.2 + crossbeam-channel@0.5.14 + crossbeam-deque@0.8.6 + crossbeam-epoch@0.9.18 + crossbeam-utils@0.8.21 + crossterm@0.25.0 + crossterm_winapi@0.9.1 + crypto-common@0.1.6 + cssparser-macros@0.6.1 + cssparser@0.27.2 + ctor@0.2.9 + darling@0.20.10 + darling_core@0.20.10 + darling_macro@0.20.10 + data-encoding@2.8.0 + deranged@0.3.11 + derive_more@0.99.19 + digest@0.10.7 + directories@5.0.1 + dirs-sys@0.4.1 + dirs-sys@0.5.0 + dirs@5.0.1 + dirs@6.0.0 + dispatch@0.2.0 + displaydoc@0.2.5 + dlopen2@0.7.0 + dlopen2_derive@0.4.0 + dns-lookup@2.0.4 + dpi@0.1.1 + dtoa-short@0.3.5 + dtoa@1.0.9 + dunce@1.0.5 + dyn-clone@1.0.18 + either@1.13.0 + embed-resource@2.5.1 + embed_plist@1.2.2 + encoding_rs@0.8.35 + env_filter@0.1.3 + env_home@0.1.0 + env_logger@0.11.6 + equivalent@1.0.1 + erased-serde@0.4.5 + errno@0.3.10 + fastrand@2.3.0 + fdeflate@0.3.7 + field-offset@0.3.6 + filetime@0.2.25 + flate2@1.0.35 + fnv@1.0.7 + foreign-types-macros@0.2.3 + foreign-types-shared@0.1.1 + foreign-types-shared@0.3.1 + foreign-types@0.3.2 + foreign-types@0.5.0 + form_urlencoded@1.2.1 + futf@0.1.5 + futures-channel@0.3.31 + futures-core@0.3.31 + futures-executor@0.3.31 + futures-io@0.3.31 + futures-macro@0.3.31 + futures-sink@0.3.31 + futures-task@0.3.31 + futures-util@0.3.31 + futures@0.3.31 + fuzzy-matcher@0.3.7 + fxhash@0.2.1 + gdk-pixbuf-sys@0.18.0 + gdk-pixbuf@0.18.5 + gdk-sys@0.18.2 + gdk@0.18.2 + gdkwayland-sys@0.18.2 + gdkx11-sys@0.18.2 + gdkx11@0.18.2 + generic-array@0.14.7 + getrandom@0.1.16 + getrandom@0.2.15 + getrandom@0.3.1 + gimli@0.31.1 + gio-sys@0.18.1 + gio@0.18.4 + glib-macros@0.18.5 + glib-sys@0.18.1 + glib@0.18.5 + glob@0.3.2 + gobject-sys@0.18.0 + gtk-sys@0.18.2 + gtk3-macros@0.18.2 + gtk@0.18.2 + h2@0.4.7 + hashbrown@0.12.3 + hashbrown@0.15.2 + heck@0.4.1 + heck@0.5.0 + hex@0.4.3 + home@0.5.9 + html-escape@0.2.13 + html5ever@0.26.0 + http-body-util@0.1.2 + http-body@1.0.1 + http@1.2.0 + httparse@1.10.0 + httpdate@1.0.3 + humantime@2.1.0 + hyper-rustls@0.27.5 + hyper-tls@0.6.0 + hyper-util@0.1.10 + hyper@1.6.0 + iana-time-zone-haiku@0.1.2 + iana-time-zone@0.1.61 + ico@0.3.0 + icu_collections@1.5.0 + icu_locid@1.5.0 + icu_locid_transform@1.5.0 + icu_locid_transform_data@1.5.0 + icu_normalizer@1.5.0 + icu_normalizer_data@1.5.0 + icu_properties@1.5.1 + icu_properties_data@1.5.0 + icu_provider@1.5.0 + icu_provider_macros@1.5.0 + ident_case@1.0.1 + idna@1.0.3 + idna_adapter@1.2.0 + indexmap@1.9.3 + indexmap@2.7.1 + infer@0.16.0 + inout@0.1.3 + inquire@0.7.5 + ipnet@2.11.0 + is-docker@0.2.0 + is-wsl@0.4.0 + is_executable@1.0.4 + is_terminal_polyfill@1.70.1 + itoa@0.4.8 + itoa@1.0.14 + javascriptcore-rs-sys@1.1.1 + javascriptcore-rs@1.1.2 + jni-sys@0.3.0 + jni@0.21.1 + js-sys@0.3.77 + json-patch@3.0.1 + jsonptr@0.6.3 + keyboard-types@0.7.0 + kuchikiki@0.8.2 + lazy_static@1.5.0 + libappindicator-sys@0.9.0 + libappindicator@0.9.0 + libc@0.2.169 + libloading@0.7.4 + libredox@0.1.3 + linux-raw-sys@0.4.15 + litemap@0.7.4 + lock_api@0.4.12 + log-reload@0.1.2 + log@0.4.25 + lzma-sys@0.1.20 + mac@0.1.1 + malloc_buf@0.0.6 + markup5ever@0.11.0 + matches@0.1.10 + matchit@0.8.4 + md5@0.7.0 + memchr@2.7.4 + memoffset@0.9.1 + mime@0.3.17 + miniz_oxide@0.8.3 + mio@0.8.11 + mio@1.0.3 + muda@0.15.3 + native-tls@0.2.13 + ndk-context@0.1.1 + ndk-sys@0.6.0+11769913 + ndk@0.9.0 + new_debug_unreachable@1.0.6 + newline-converter@0.3.0 + nodrop@0.1.14 + ntapi@0.4.1 + num-conv@0.1.0 + num-traits@0.2.19 + num_enum@0.7.3 + num_enum_derive@0.7.3 + objc-sys@0.3.5 + objc2-app-kit@0.2.2 + objc2-cloud-kit@0.2.2 + objc2-contacts@0.2.2 + objc2-core-data@0.2.2 + objc2-core-image@0.2.2 + objc2-core-location@0.2.2 + objc2-encode@4.1.0 + objc2-foundation@0.2.2 + objc2-link-presentation@0.2.2 + objc2-metal@0.2.2 + objc2-quartz-core@0.2.2 + objc2-symbols@0.2.2 + objc2-ui-kit@0.2.2 + objc2-uniform-type-identifiers@0.2.2 + objc2-user-notifications@0.2.2 + objc2-web-kit@0.2.2 + objc2@0.5.2 + objc@0.2.7 + object@0.36.7 + once_cell@1.20.3 + opaque-debug@0.3.1 + open@5.3.2 + openssl-macros@0.1.1 + openssl-probe@0.1.6 + openssl-sys@0.9.105 + openssl@0.10.70 + option-ext@0.2.0 + pango-sys@0.18.0 + pango@0.18.3 + parking_lot@0.12.3 + parking_lot_core@0.9.10 + pathdiff@0.2.3 + pem@3.0.4 + percent-encoding@2.3.1 + phf@0.10.1 + phf@0.11.3 + phf@0.8.0 + phf_codegen@0.10.0 + phf_codegen@0.8.0 + phf_generator@0.10.0 + phf_generator@0.11.3 + phf_generator@0.8.0 + phf_macros@0.11.3 + phf_macros@0.8.0 + phf_shared@0.10.0 + phf_shared@0.11.3 + phf_shared@0.8.0 + pin-project-lite@0.2.16 + pin-utils@0.1.0 + pkg-config@0.3.31 + plist@1.7.0 + png@0.17.16 + poly1305@0.8.0 + powerfmt@0.2.0 + ppv-lite86@0.2.20 + precomputed-hash@0.1.1 + proc-macro-crate@1.3.1 + proc-macro-crate@2.0.0 + proc-macro-crate@3.2.0 + proc-macro-error-attr@1.0.4 + proc-macro-error@1.0.4 + proc-macro-hack@0.5.20+deprecated + proc-macro2@1.0.93 + quick-xml@0.32.0 + quinn-proto@0.11.9 + quinn-udp@0.5.9 + quinn@0.11.6 + quote@1.0.38 + rand@0.7.3 + rand@0.8.5 + rand_chacha@0.2.2 + rand_chacha@0.3.1 + rand_core@0.5.1 + rand_core@0.6.4 + rand_hc@0.2.0 + rand_pcg@0.2.1 + raw-window-handle@0.6.2 + rayon-core@1.12.1 + rayon@1.10.0 + redact-engine@0.1.2 + redox_syscall@0.5.8 + redox_users@0.4.6 + redox_users@0.5.0 + regex-automata@0.4.9 + regex-syntax@0.8.5 + regex@1.11.1 + reqwest@0.12.12 + ring@0.17.8 + roxmltree@0.20.0 + rustc-demangle@0.1.24 + rustc-hash@2.1.1 + rustc_version@0.4.1 + rustix@0.38.44 + rustls-pemfile@2.2.0 + rustls-pki-types@1.11.0 + rustls-webpki@0.102.8 + rustls@0.23.22 + rustversion@1.0.19 + ryu@1.0.19 + same-file@1.0.6 + schannel@0.1.27 + schemars@0.8.21 + schemars_derive@0.8.21 + scopeguard@1.2.0 + security-framework-sys@2.14.0 + security-framework@2.11.1 + selectors@0.22.0 + semver@1.0.25 + serde-untagged@0.1.6 + serde@1.0.217 + serde_derive@1.0.217 + serde_derive_internals@0.29.1 + serde_json@1.0.138 + serde_path_to_error@0.1.16 + serde_regex@1.1.0 + serde_repr@0.1.19 + serde_spanned@0.6.8 + serde_urlencoded@0.7.1 + serde_with@3.12.0 + serde_with_macros@3.12.0 + serialize-to-javascript-impl@0.1.1 + serialize-to-javascript@0.1.1 + servo_arc@0.1.1 + sha1@0.10.6 + sha256@1.5.0 + sha2@0.10.8 + shlex@1.3.0 + signal-hook-mio@0.2.4 + signal-hook-registry@1.4.2 + signal-hook@0.3.17 + simd-adler32@0.3.7 + siphasher@0.3.11 + siphasher@1.0.1 + slab@0.4.9 + smallvec@1.13.2 + socket2@0.5.8 + softbuffer@0.4.6 + soup3-sys@0.5.0 + soup3@0.5.0 + specta-macros@2.0.0-rc.17 + specta@2.0.0-rc.20 + spin@0.9.8 + stable_deref_trait@1.2.0 + string_cache@0.8.8 + string_cache_codegen@0.5.3 + strsim@0.11.1 + subtle@2.6.1 + swift-rs@1.0.7 + syn@1.0.109 + syn@2.0.98 + sync_wrapper@1.0.2 + synstructure@0.13.1 + sysinfo@0.33.1 + system-configuration-sys@0.6.0 + system-configuration@0.6.1 + system-deps@6.2.2 + tao-macros@0.1.3 + tao@0.31.1 + tar@0.4.43 + target-lexicon@0.12.16 + tauri-build@2.0.5 + tauri-codegen@2.0.4 + tauri-macros@2.0.4 + tauri-runtime-wry@2.3.0 + tauri-runtime@2.3.0 + tauri-utils@2.1.1 + tauri-winres@0.1.1 + tauri@2.2.5 + tempfile@3.16.0 + tendril@0.4.3 + thin-slice@0.1.1 + thiserror-impl@1.0.69 + thiserror-impl@2.0.11 + thiserror@1.0.69 + thiserror@2.0.11 + thread_local@1.1.8 + time-core@0.1.2 + time-macros@0.2.19 + time@0.3.37 + tiny_http@0.12.0 + tinystr@0.7.6 + tinyvec@1.8.1 + tinyvec_macros@0.1.1 + tokio-macros@2.5.0 + tokio-native-tls@0.3.1 + tokio-rustls@0.26.1 + tokio-tungstenite@0.26.1 + tokio-util@0.7.13 + tokio@1.43.0 + toml@0.7.8 + toml@0.8.20 + toml_datetime@0.6.8 + toml_edit@0.19.15 + toml_edit@0.20.7 + toml_edit@0.22.23 + tower-layer@0.3.3 + tower-service@0.3.3 + tower@0.5.2 + tracing-core@0.1.33 + tracing@0.1.41 + tray-icon@0.19.2 + try-lock@0.2.5 + tungstenite@0.26.1 + typeid@1.0.2 + typenum@1.17.0 + unic-char-property@0.9.0 + unic-char-range@0.9.0 + unic-common@0.9.0 + unic-ucd-ident@0.9.0 + unic-ucd-version@0.9.0 + unicode-ident@1.0.16 + unicode-segmentation@1.12.0 + unicode-width@0.1.14 + universal-hash@0.5.1 + untrusted@0.9.0 + url@2.5.4 + urlencoding@2.1.3 + urlpattern@0.3.0 + utf-8@0.7.6 + utf16_iter@1.0.5 + utf8-width@0.1.7 + utf8_iter@1.0.4 + utf8parse@0.2.2 + uuid@1.13.1 + uzers@0.12.1 + vcpkg@0.2.15 + version-compare@0.2.0 + version_check@0.9.5 + vswhom-sys@0.1.2 + vswhom@0.1.0 + walkdir@2.5.0 + want@0.3.1 + wasi@0.11.0+wasi-snapshot-preview1 + wasi@0.13.3+wasi-0.2.2 + wasi@0.9.0+wasi-snapshot-preview1 + wasite@0.1.0 + wasm-bindgen-backend@0.2.100 + wasm-bindgen-futures@0.4.50 + wasm-bindgen-macro-support@0.2.100 + wasm-bindgen-macro@0.2.100 + wasm-bindgen-shared@0.2.100 + wasm-bindgen@0.2.100 + wasm-streams@0.4.2 + web-sys@0.3.77 + web-time@1.1.0 + webbrowser@1.0.3 + webkit2gtk-sys@2.0.1 + webkit2gtk@2.0.1 + webpki-roots@0.26.8 + webview2-com-macros@0.8.0 + webview2-com-sys@0.34.0 + webview2-com@0.34.0 + which@7.0.2 + whoami@1.5.2 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.9 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + window-vibrancy@0.5.2 + windows-core@0.52.0 + windows-core@0.57.0 + windows-core@0.58.0 + windows-implement@0.57.0 + windows-implement@0.58.0 + windows-interface@0.57.0 + windows-interface@0.58.0 + windows-registry@0.2.0 + windows-result@0.1.2 + windows-result@0.2.0 + windows-strings@0.1.0 + windows-sys@0.45.0 + windows-sys@0.48.0 + windows-sys@0.52.0 + windows-sys@0.59.0 + windows-targets@0.42.2 + windows-targets@0.48.5 + windows-targets@0.52.6 + windows-targets@0.53.0 + windows-version@0.1.2 + windows@0.57.0 + windows@0.58.0 + windows_aarch64_gnullvm@0.42.2 + windows_aarch64_gnullvm@0.48.5 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_gnullvm@0.53.0 + windows_aarch64_msvc@0.42.2 + windows_aarch64_msvc@0.48.5 + windows_aarch64_msvc@0.52.6 + windows_aarch64_msvc@0.53.0 + windows_i686_gnu@0.42.2 + windows_i686_gnu@0.48.5 + windows_i686_gnu@0.52.6 + windows_i686_gnu@0.53.0 + windows_i686_gnullvm@0.52.6 + windows_i686_gnullvm@0.53.0 + windows_i686_msvc@0.42.2 + windows_i686_msvc@0.48.5 + windows_i686_msvc@0.52.6 + windows_i686_msvc@0.53.0 + windows_x86_64_gnu@0.42.2 + windows_x86_64_gnu@0.48.5 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnu@0.53.0 + windows_x86_64_gnullvm@0.42.2 + windows_x86_64_gnullvm@0.48.5 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_gnullvm@0.53.0 + windows_x86_64_msvc@0.42.2 + windows_x86_64_msvc@0.48.5 + windows_x86_64_msvc@0.52.6 + windows_x86_64_msvc@0.53.0 + winnow@0.5.40 + winnow@0.7.1 + winreg@0.52.0 + winsafe@0.0.19 + wit-bindgen-rt@0.33.0 + write16@1.0.0 + writeable@0.5.5 + wry@0.48.1 + x11-dl@2.21.0 + x11@2.21.0 + xattr@1.4.0 + xz2@0.1.7 + yoke-derive@0.7.5 + yoke@0.7.5 + zerocopy-derive@0.7.35 + zerocopy@0.7.35 + zerofrom-derive@0.1.5 + zerofrom@0.1.5 + zeroize@1.8.1 + zerovec-derive@0.10.3 + zerovec@0.10.4 +" + +inherit cargo + +DESCRIPTION="Unofficial GlobalProtect VPN client for Linux" +HOMEPAGE="https://github.com/yuezk/GlobalProtect-openconnect" +SRC_URI=" + https://github.com/yuezk/GlobalProtect-openconnect/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" + +LICENSE="GPL-3" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT MPL-2.0 + Unicode-3.0 +" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + app-arch/xz-utils + dev-libs/glib:2 + net-libs/libsoup:3.0 + dev-libs/openssl:= + net-libs/webkit-gtk:4.1= + >=net-vpn/openconnect-8.2.0:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[wayland] +" +DEPEND="${RDEPEND}" + +QA_FLAGS_IGNORED="usr/bin/gp*" + +src_compile() { + cargo_src_compile -p gpauth -p gpclient -p gpservice +} + +src_install() { + for i in gpauth gpclient gpservice; do + dobin "$(cargo_target_dir)/${i}" + done +} diff --git a/net-vpn/GlobalProtect-openconnect/Manifest b/net-vpn/GlobalProtect-openconnect/Manifest new file mode 100644 index 000000000000..137a2ce254ad --- /dev/null +++ b/net-vpn/GlobalProtect-openconnect/Manifest @@ -0,0 +1,588 @@ +DIST GlobalProtect-openconnect-2.4.4.gh.tar.gz 1769207 BLAKE2B d01562fec7f6a6d8bfc54faba327398aa96158f6cb98f808a26376d5876055e35a77176d80fc701ece0c676d19b17b8df0a4acb179dc559175d2797f404f6ce2 SHA512 5b34458fb46fa63689307682e6150adde7c00769b815d03b640c99ca55cc7dbbd6dae569ad8dc0290316036a265864540963b2eeb2f71a3bdac2a2c3b359daeb +DIST Inflector-0.11.4.crate 17438 BLAKE2B eaf0c7f983b3186e9bc89353021a10592f2877e46585bd50b96db9b087343d1199c7b6cf3fa53cd274fb6d33de025a904b8aa31a7ac9599ae3689ecdbcec34cd SHA512 f1f6463e033b6d3c16c51dc1e1a3f5569954308b95b59058294b7f9310919bbda797e99e6a07529071bb83f0688867a243997d33795a7136b0af73977004296e +DIST addr2line-0.24.2.crate 39015 BLAKE2B 57186d6b957542cd71a0aa19f1355dfaabe6efa19b853c42f306494728b03d1e3183efdb2d2c7734a3e2347cd83a985d004f50c097e06b7520bd152310532e9b SHA512 39cbec3c920ffc0f37584afb55e1cfe4f182e4415319a4e9bfe842360f102f7b9315f6171c0cf71ba0337123903e604096cd573fe98698a26c8eebc2376d965b +DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423 +DIST aead-0.5.2.crate 15509 BLAKE2B 0214f3e8ee85a7e18c7d20f9a3fcbdbb9e5af6fdfdcb427e915279b505556dbd2df6d09d5c90561417c56796236a56ab24b2b11389745bc03a0a6da45c0e8636 SHA512 61926a615618e64efd0e9342d729a89f80d6e092dda50e018252a06147e2ca0dc2a989136416f57ae02019695757dfa3d3f3cf3799f138e440662744ecab4a44 +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 android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077 +DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191 +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 anyhow-1.0.95.crate 52155 BLAKE2B fc9cebdfae0afed86f2dfb7faf62f5a108000895317dd0cab9c83d6e48c891558fc3a1d8b9940b623b4c6fd861631a0f0344a9915517a9bc39dbfbe48ec6b45b SHA512 8c5c176381c3e861c3c4451f7cd3d9e2447c0a55735ececfd3199288d65d36dc5fdc4a19a0798f62a0b9d6ca2c155a616c7eab8bcd53e6ece743aed57ec3d0fa +DIST ascii-1.1.0.crate 36075 BLAKE2B 7e68e7b3d5e6aef132c52db8c078fdf2e70462d9238b637015d7964312737fc09b35719143ce1fbd3e5b8072c21717f33e5061adf4da1913a9b9f11ac9c453ec SHA512 d74982ad87796f0d745bfd654450dc74174fdc6aa2a0047e5d250f76dd6079189dc0f05d02a73a85b1d3a86c163524d1f43f5d014de0153cd69fad4de26cf0ec +DIST async-trait-0.1.86.crate 31946 BLAKE2B 3f77ef7ceda45e2095a53030114b0290c7d8962b027605e28e00fd38feacd8ea623be63449404670aaa10692ff07e63e52b66cd3815469b5ea9a368178d40244 SHA512 7b93891d90ce6a2ba36c27a12f0636eb3318693a6f5d5a5debe0a7a921e70090376f0e9178f7453341e5b0914adbaba96ff5ad6327fb97f812c13ebd68a69501 +DIST atk-0.18.2.crate 34179 BLAKE2B da0fa5a7f9346b3a1b1f50ddef18668d3314350208cc5b0046e2cc410e63e42c1433983d907867daf289b822347194e77627fe826a1242903c161966359e09f1 SHA512 f79df2bb34171b86c1c3638ca0514e961126f14e45572e10e42f388b67970be3475e829c6fa099d2c12c0d8b6df730a783e988194b73631d0d9b21b6ed7333fe +DIST atk-sys-0.18.2.crate 22997 BLAKE2B c9ba7403ced396a633457003647199f44d9f165bd9244a51f1f37a47523610a97b6b23f13e9a2d505bee55d38a8d60bbe6895ac062de0d7f261dd3ad7a66b242 SHA512 9f10322c34bf8dd44e3b870cc93eefa866370a431901fcf5b956c65f58acbeef0284db120c0ffc360e32b924268583a76f2f0153d20e3f09dc5721a9cac1abec +DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c +DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c +DIST axum-0.8.1.crate 172586 BLAKE2B a255f5f06080cfb7a1e8bc0f56d0da1ecb9668f4b0e997450d27ddf811323de113ce6ed79d9403516c2a4c9fb3421ca36166f5ed8e79f4ae46a172a400fe4ec9 SHA512 52bbcc55921ff9d404a578439750cfaa9c728510d85ab4a93c9791054822b9f9584959a4b904f0ae549d4447a20ad50510942de3a36f5d29cabac9e0a8c58ead +DIST axum-core-0.5.0.crate 26187 BLAKE2B a32e51516e90acb72147a455d5c1b200f4c07f9823be9a8ca71ff2218695b01708fb38a140f972b697fdac23e14a71311bce0f4793389fe843399570a9518969 SHA512 85d09a9a112529cb40dd7c97186f28229e613c0bbba4b261e6b1f174b41507d90ea0afc565dc06cd8af18f045fed9b01bb874e01c66095f766c0e4cba885ecdb +DIST backtrace-0.3.74.crate 88516 BLAKE2B 594b537f3860560bc790d04d72a91ea25bbf5f2494b9c43377129a8021c02d9c16471a223e518889775a816c45513b14bf097c453846b62302a58b59753a5fcb SHA512 00cb2be0626f0bf6ec8b8f525bb129d3ac74c386c5e46ee0f343edb78c863222521f8132876057a5a1facacf40792dea51f2f20e986b35f3a85bca3dcf5c1520 +DIST base64-0.21.7.crate 82576 BLAKE2B 25cc8761c14220981ff4ed332058f6179948080cbfa2b225ec1d1602e4af14cd470c969e8b7049117e6fc51a5a24e06b1d27bab844486ecb76409d12e0581d5d SHA512 c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9 +DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20 +DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 +DIST bitflags-2.8.0.crate 47482 BLAKE2B cfa5dac5bb9fda57a5887773399d2507e83ed30fb0c5a332c48905f912c9b8d3c5e6493a9626a73459cb67d63973efff719ab4153a14e774ff4a632c96872ca2 SHA512 f1bc02c858432b0e1fc3b10f239c5886e51d620d55a75521bdf35c8e8f6b6cf8db97e90e08eb2e96715a2c5b28858af305eb266f1ce0c90f9d3945d6d9bdda8b +DIST block-0.1.6.crate 4077 BLAKE2B a2c11873b8cb1a1ea399ecc99ed45e5d0b9399bd88435cdea346910b8707b7da94eeef522dafa5cdb09929534472b2a096c03c373744a789962d4175fd1b110e SHA512 c278e3c0346cae423b533a8f5d6b822e788ec450c92ef0f5f559d5705764a0a11df49f0f66bb1c8af7e89bec8ec802934676b969e43f92255a38b210d0fbd710 +DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb +DIST block2-0.5.1.crate 24191 BLAKE2B 6fb5505091c5f06524f20250d3c649bec46a93e96ea08227ed91163bcfd0c64fdfebbe86e77a4e64d0d049036e14d5d28ff1c85c4707d4791651616cd6c7ed6a SHA512 084b15f06d005c9d4b78b20a85ed804ca10143e3bfc6b52c4c90f72b4b3455fd27bb02577a01f7c21e58a60d174c1b5d29b662da05b9e35688dcd266a988e045 +DIST brotli-7.0.0.crate 1356970 BLAKE2B 6d060e6fe4ddd463b0b4603a067de152ba2bec9f337b5c94e790bdbac6ea28b5d9fb6404d7db5d98dd81e69dcc77698949e026f990267f388a396d37c45055a9 SHA512 577b2efc324bf461e06af94b8b509a095a917d4ecb2bfd2f3097ab4663ad699317c2fdb0b470344c762589c75dfac073b828603ce5609295ddf1748a39b75622 +DIST brotli-decompressor-4.0.2.crate 193388 BLAKE2B eba06680719069c9f8f435544525848f21d0b58db9a398e920abfa9602e15a7c5a087021a7ecff808f2b8310493c42b7bc8e1c924e19c2e2816d623899454c14 SHA512 df0451a1ba23ddc187b6868ce7614c77b0bdf3e409b55416dc997bd898ab2cb25d68fd7a0ccb0dd2bd4da52c6a25985772357101df1a218bf87065c6833b0549 +DIST bumpalo-3.17.0.crate 91975 BLAKE2B b0aca1d64373425384eddcdf8d60dc977058a3d1570451de944ce48aacdb984e73a29ab64fb5b23413582d57a8e32ad8155f6a1479eb00f804afe9d8a9d9e163 SHA512 b2acfb463aa705b9c6a9555858b84f565234110988c880cdb761ab8dc87892ee5d22e65fa935d2cfef9d58869fec0ab64d810b26bf122fdd89b454b6ce65ea1f +DIST bytemuck-1.21.0.crate 51553 BLAKE2B dbd88d153c79cd87d6a51d33e49dde7b825711339367a168cf2471fc98a41e72d4d759873d542c3c6e196a6baed4f099103dbdfd369a329bb4578864b9ffb448 SHA512 64abfc5c0430b8bbb4b75fa7ee43037ceb180699655c0862b2699f3823fc445d931d3284ccc88dfdc98ed1a24a660cf6ea1040f91c6b2ba1cb21ab83c89d9b18 +DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f +DIST bytes-1.10.0.crate 76656 BLAKE2B 2f10cc49184de42dac9073264a4e981ae132760bbbc84cab9b5d00462a7b925ff2c1c00aa2284c34875148a025794e5f4eb63e17b117e27e89504299d8921406 SHA512 ee02d6c0ae18e75ac3a44f949f3891b98865bae5594b25a866b619c42fb574b5249e4e936972373845030c27cd94d2bfcc14885f9f92ef23bf059ad7fc8fbb2b +DIST cairo-rs-0.18.5.crate 54235 BLAKE2B 38a41a6acdcb5591447f1f873990872999c4735edb1b7aa9c434991221290517c80ab07bbfbaf5afea6b86634426113b9d34e92cdf0c36d891dced3437372be1 SHA512 fd6951ddce1a12e1f3de4d65c69bb53f7be9f04c017e17d17c4300fcd3227de705ab3e036944181aa6d5f417082cbbe2b2190a94c8c9ba52a27851c881f714ee +DIST cairo-sys-rs-0.18.2.crate 11855 BLAKE2B da237a944a6eed675b6812bf8a71f99354c0c41302d222cc0ddf38e47d612d6c49754cb8854c92dbc62d32de5f716bc869cc874949b62c2ac4736104c5996144 SHA512 b101f7a2543793fbc1a1cf86c62a8fa404ce171160603e72f9aae3592736e4d68ae53b8ad91aa8d70e21965d263dc740f96fe001bb049674b4efee1039d3d68a +DIST camino-1.1.9.crate 37552 BLAKE2B 28b21517730db408598f83e269ee8aa4dc5388c4b491779ebb6e76c478d407f929bda6906d88d429828d7f01be1762c72ecbb6d8c7aa4a1d1906109a17b45df1 SHA512 27a6a3cf72c46f15a6017aea44a048f2a8eb577aa9d2a088141b1cb7479106152ef0bc00a6cea9332c4df4d0c54aa6bd3dc21159f15640e347407c15a1bbf7ea +DIST cargo-platform-0.1.9.crate 12010 BLAKE2B e178d5a444c6536f0c95f497bdfbb13cadd0d58d55bfae76008bcadc2a042044f432a232f657cb1fdc91b7af4d197cc44bc0cd7a41c9cca6c5da085409ab49d1 SHA512 05cf4c18ed6f3a1193a4567a48f1f3c832ae85faa7487a4e087e5dd8499eabd36c862d8e58af5443933b87aa8becc258011ebbecb2247f8a75067c8ac018676a +DIST cargo_metadata-0.19.1.crate 26131 BLAKE2B ab8114504cfd55a237893556f9d004a5dfa94fce89e5229dc7906bc76910df84cde89ce461519e49dcba9ef0dbe4c3b7975510544a58164d6478ff0d1d7fb9ba SHA512 5b4f69690a5852127ef505bb87d29cb16e6d6dd7c7b4fa6bc10f78bbbadb4e4bcb2e92ecfc46fbae4d905f83c55418be4d43202273aae44b384295870b509190 +DIST cargo_toml-0.21.0.crate 32376 BLAKE2B 596ddbdd279529941c3fa0465e9bf5eaf7e5615d4369fb96a2fec236be2b05654ddc0653101b0b72b4eb4d95a2e8b91e359572ab52615856976c16c4b80adc45 SHA512 9512682f55543f2ea545df40a0f9604377456f889941fcf4c9b29e69d8c49c9a4fe0634ed6e1c37a1de9449bd0dedfef0c8f078f1b42d96cf652c8668c9c083f +DIST cc-1.2.13.crate 102839 BLAKE2B 8a9134b529123badc5e16263fb0a778ad53e84c6aae415fc68029769eb2bc1ab62323e609372f3321ce34d2b56c57637165297694ea8933128952d628d541adf SHA512 291880b18276aeb8a5e436a1e114127bc266842b42708168a5cd41b8b46b0bbd84431346a393de0b961e7dd46eee992ad1a0c61e4c72384f99a09884162c2773 +DIST cesu8-1.1.0.crate 10555 BLAKE2B 4fe369d1247c3b30ff9beb644dbe2a517d78632191f3216bb83d632bc8857f9541a1b60d0bb583cf3fc0ae974f7c9d2b07fca5efe2057d9ef281de76fe810a49 SHA512 2d902b624c7ccfe3633c7bcf99b833b120c0ed7760ea825bfb2fa03ae90df543e637efd46e0743782b81e468e0fd3b534956ffca81f9bdfbf742ff3beae8f8b8 +DIST cfb-0.7.3.crate 63277 BLAKE2B 5d0d4124421d26c1e3dbfabaf741c407f346d62147b12bbf889ef5b4c25350c02d09919e332e1ca18ade34a4e6d2895fc835161f7062c0c0bb56f104f94811a6 SHA512 a5c8d5da5ac009dd7d19320237ea516a65c9b1780bec3403fdbfb6ffa13bf7d05a896baeac5760c3e9aead9f4bd66cf969ab12bbd2938cbe479b1d2266e80b8f +DIST cfg-expr-0.15.8.crate 42108 BLAKE2B 846a67059fc30e8c1f70d8b5495443ca0ed373a333d394b92d79981b415888a2f5c745a028e702464bcf68765667c35513e51931b84d9d081873146a0a4edbd0 SHA512 1077d113dfe080e0e78e25c40f32c9f14988d2dbb76bb783ed3e8ce13c58e5dc0dd549362d2f197b69cfbffcfa3ebed385a0247f5928dcff8be7d0b055be1041 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c +DIST chacha20-0.9.1.crate 23424 BLAKE2B d460d8f3e6424278fcebd90c987c5290abbb798a5a9915ad3355ed92d8ebd0058e3308eb914c8f7d3c277b2c310728f2f10b56d34f27305688f0ced2d65f8880 SHA512 3813d6f3c3d9dbd2f18aa660f32567378a79a994520c83d0b09795e4e4b161e2a5bf205e454021a6e33028e9f9f61e9b14f79f2c935c2df95d32eb1d732cbf83 +DIST chacha20poly1305-0.10.1.crate 68485 BLAKE2B 580cdcb819afaf514e920e7c86686cb397355fea531c5642c419eecfa131cf30118913bb0cae542f50bcdca775f8d5db1bab967d6d833e8012b4c2ba41e87b4a SHA512 8c2ff7100eff5ea953baf559b0984c5b5ac0dd231d8ff179688d87ca7812966d4cd64aaa0c56778f7a83c8138ebed4f2b87a2d4a005251f51e1fc8e74914d629 +DIST chrono-0.4.39.crate 222248 BLAKE2B eeff1694a98e8775524c261c5c46ebf09bf1ffc6222a945576960e8153af99e4549d8c988bd086507fa430f9cb15a3159be85300247ab3c6f5e77ab515f0988b SHA512 5b258f76bea58ab9baa0fe8fb32c41928b8b655c76bb2fbaae9300ef8380cbb881296cee6b9e9886dce62b0759c73e84f6409e374a86cf0c80e3383512f98571 +DIST chunked_transfer-1.5.0.crate 9779 BLAKE2B 5a26e784e9de06b8026edd56685d9767cab5cbd25e787f642c308be944194d78de5a38ca061b815e234952008c4981d68f591780ae9dcc0d76693857dffda3fe SHA512 e4888b19e7e650889a531e0e07f4d724826f5fb78c9c05966f066ff7898ef8bb1280f89e9e7951914b7b52fc0e831bf205b7a4813bb204989f2f72adc5868975 +DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846 +DIST clap-4.5.28.crate 56073 BLAKE2B 3ac81e50fd02867a9aa57d2d12f37ddc65ecccd88f5ca8ff0946da006acaec62d992303d8bf2c9994a6efc840ef4308b65b1b8846160488672abee12c634a0e3 SHA512 1132d3ef822ec6122e5c8f96f9e04d281d769bfd724df3486a2bdb7fba7fe5da5cfe50a6049af18167d84a7912b59996ad04cf6db73f6aa026d43854550cfa6c +DIST clap-verbosity-flag-3.0.2.crate 14866 BLAKE2B abbc5e1e8032cb21f7f6c278bf7ddf3b18d29b7ba5444dd704089e4cff9450a21fc6b9613529ec06a33d486514eefaaff607ecc1cb85cfeb232e9dd684d8b43f SHA512 a9b320da1bda292b48720533a193be329448456bf7ed1ff79ffaa5588ddc6caa65ca8d0b888b0a5b362843a30f5d18210abcd82063e1caee73dc2134d7311628 +DIST clap_builder-4.5.27.crate 168024 BLAKE2B 3d9a1c38974eb6b78649c37122780e3a5960084fd52612951e5b2419535d749db37bb01067cd7acf2ae7864fbfdbbcfdeedad58814904c19105834a4b949bef9 SHA512 77b0e968361bd348b95b5b2993d5d1a3a4f3dda5fa790598bcb5edd201e7ad487a9ed87f551d40c30343e3e0a30942273c07c7becc12b4b67ddf7395488d8265 +DIST clap_derive-4.5.28.crate 33428 BLAKE2B 64a0dd857325c988401ac29499969c08561717e07f8cb05d6e62fe899d847ba509d40e91c21365c8fa174f0c7bb5b41f26b42ff5ffcfa332392eaee2fe629cb3 SHA512 c68924f301000e74a5d9bec3ade8a694f5fcaecbfeb1bd1d11b1bdeafe3a279249b24daf56e6fc006c2d5a1115992996a42e49860085f7e4d53848cdb0fe373d +DIST clap_lex-0.7.4.crate 12858 BLAKE2B a5ecd50cc503157dd69746f3b6e9c288e0fe4f6d5d82271499f657134fd401fbe076255e2be6a23ed0b69daf3941c6429dad8b288223b0ad390a2c435575cdd1 SHA512 a2566868f4619679d3b74b70592ffa6a04b13e38e3196c56bb1dae8bea0c711bddbccd778d2aba3cc0ee074c9b1cc0335222818f0d47fb3cc8109cbc35bb992e +DIST cocoa-0.26.0.crate 42628 BLAKE2B e55ff9007800fda195dad993c95298ecdd86405be639c344c717490c0686e994ecdcbe19b23d741f708c5af135785ca67b96d1235cc06e38bf59f48b6f3a4aaa SHA512 c733a4db360a283319527382d5a4e57bb7d6c62783ade5bc3a6269fc17bb317fcf915594e7d98d294ac4172ea1518cf7c12ed292d60ba796d2852e05ba6d49c2 +DIST cocoa-foundation-0.2.0.crate 15203 BLAKE2B 0a7a5a9decaeff4b380bf9e5ef86af4945b989497989939a58fa76f4cb7e8f0917fed8241590d4b182ef8bb256554686b9ceb79cc575f33b94fcb533fecdcd72 SHA512 9371c45f3823ec4a2408b7d3ab6c1af10c78963d535199393b6c5c7331d4b59a99bac7a787f030df03e7933ebf99d93e6e5214d29ba248886bb1e3add36f58ac +DIST colorchoice-1.0.3.crate 7923 BLAKE2B 7055fe61677143f0d4445ed5f6be2cbc284c155aa6ceac04df6f3fa2563a225e440ba708bf40e298ad09775ab7c7e1842b5f6dd78422b06dbd1250908e3227ee SHA512 fc26696189d3935d5510a1237504339c1f354d03ffd3b4e830b7080335aa778bc72787ac5fa9a67a731b9bde2788da778d497f2ef97ec68bdec5145fedf4cd14 +DIST combine-4.6.7.crate 134808 BLAKE2B 1f3ea9962f4ed4177a9c028d04934b5e261df405c1c0282c74609e0e6a1490a92b262ad26d1d21dae977cff8795bfa3c1f85aa43fab13a88227394d61d93861d SHA512 b8232b0e1f94039cef3ad4a0a35a972eb49f4f198749d2fe50aa3fd2a77614f2d24e51f3b4465243ce9140aed6bd048aaaae189a7ba864e3d23843e9be0c437f +DIST compile-time-0.2.0.crate 3574 BLAKE2B 074061025c57ca2a11274cd58a817be0455f71bd128170e3b5be246fbb4e91a6358dc852d2c44bb59c761586fab79c9c1d4d7426ac037724acb9e479ada0f0fe SHA512 56f3310d12ce4fdc43fbb635f48923fd9fd7b6ab005f70882f361ec6c57205e67fb346edadf52d49d82fafd3aa8bb1957c36f893273e167943cc81ba1a4419e5 +DIST convert_case-0.4.0.crate 8098 BLAKE2B cd038a7b0d52a9e183a96cbd548a8deefbe0c60d6aea15d7c6f92a4bbf991444d401b5cd3c944f3d37019e7e3db2a648e321402e13803768556f32c08ec00084 SHA512 e17e92b94b030e39f368ef0dd0288dbb45f77c8ce3034c1a6fd2fd43f38cf10a1af5aa7bebdfb447c335d9593c32dde7262e13f97c271c419c6106cf47dc01e1 +DIST cookie-0.18.1.crate 43551 BLAKE2B 64a0ae8a2cbcec4c75558ed7244b82212078dd4e6fe672d30f71532e8d9193cfb0725352aba19b49d3b64cd175dd53b542c8e8f627c5eb3f594af957efec06b6 SHA512 be7c4a6919db8521a548950ce593427b9aafff0e53ae659f7e73f523d8c38bb18a142ec7ca17e6278c2073a90145f7553ae91d5cd1695d51644418f1554a185e +DIST core-foundation-0.10.0.crate 27023 BLAKE2B ba4b8e42aca4df30627eae9e8ce8ee9f4b512d51141338d284f9b897ee944619d7f63b0bd9318263eb5f5c1436ca0fad8a208c8005620779865c4f4e653d1fbd SHA512 771a34b79519c5a51e3490589672ecf3eb019d4eb28db9d19c88bc116632dea96ebb2cd04e251e94dddd0876cb8a7f07ec65aa5143f7f8aaf1661caae052a94f +DIST core-foundation-0.9.4.crate 27743 BLAKE2B 5b695e671cc833170bc6bad436b2d0d8d386ffb8181bfcf2e92a1d93cee67c3ba1768cf57064fb91b0897c6aec1be7db40b5bd256a052c1bdaf872ec19f6e15e SHA512 82d0878a1b9e3d56b3666fb5a78f92c6f7806d01665c242c06a640bd6b1fd36260211e92dc05e1a16d1430622bfdd650aabb0b5bd8e5592f74abdcf412448e33 +DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a +DIST core-graphics-0.24.0.crate 31332 BLAKE2B 572eabb70211df9ff50f3b9b2bb757dc41b61c12390489c18ecbb899007525ac092903860622763346c6623bf412a553a4da76e3a9a0e899d965100cabad83a9 SHA512 f347601e9b853b503cd08e633b87767d13ca9e104d1ffb02a07ee8b1de05136e74c897aba5ff788586e0113b5b2208ed8b8010f8b96392ad9ed3cb2a56011985 +DIST core-graphics-types-0.2.0.crate 7098 BLAKE2B f00ddda48802ad0e4911b2f3e1e4267837fb306ebf32bd7701534766b625988c6d8cb69dab4a3e7b0bfee1eb5fc02c6f05dc60d511e0879f8d7049160d79cd1c SHA512 2674dcae97efbc52281fb0f8461489ae5932abff40ae18f1aa41f7865b450ffcba9b4710a2a4137835cc7b9475fbb6392330b6c0c296c9a84f3dab197f605e08 +DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2 +DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266 +DIST crossbeam-channel-0.5.14.crate 92728 BLAKE2B 0da1bb0f0dc6f35c4ce8d4bb058d61b7c3ff4854f71b58968edc691c1d7016ec845f27e2fffa34835e86f19fdf4507275b013946b2fe3135dfa83d328ecb5199 SHA512 ab3448f7adeccab3c1d988746c3db1fc1e8854a53f7b5cad63fb7874e5b6f5663d34541d4c5383472db56a7c8b272fddfc78ea2ac1792a18d6c8230dfbabad45 +DIST crossbeam-deque-0.8.6.crate 22471 BLAKE2B 02b854df171b0430ca8a40349674ff251698d0c322c317055da8678da6661730c945d86737fa4947c3bd824ffe402271ee2f77fd6a505d2d46b4a41454c510c8 SHA512 9368c0c224c4b84356f1d422d8869a5ab4bfb36b0ff69244a9e7a7304ed51f034001cd9b2bc35849df874d36ed34285c66574943573522ea32bbdc5a05df6989 +DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2 +DIST crossbeam-utils-0.8.21.crate 42691 BLAKE2B cd9015c41f532eb3c90101603f32d383f01e6880718b727d6d1fe46872ae276cda685e1b548cf77dd22bb1a05f0d4c4982332c2bde90e1743dbd7f51919022a7 SHA512 6f4aa7ca10c20da291c4714b56ceb1fab1c06b03b2f4e28e474e9aeb95ab6615a25462dc7819713652c3b5f6a06fa0f24ebc92c533fcf35dfcf2655857d975f8 +DIST crossterm-0.25.0.crate 116533 BLAKE2B d39cdd1f4df716974cd0929ca40073ac6e17b2dd73f27b48c7b2bcd7cb4545bce544b2e8459812b866936c03a27162b309848e6a92290960619c4efe2a1e0502 SHA512 fdf2b5b4bdcbc8c7dc4e8c5e0cdf68cacdb97886b52087dde1f1be9b869c00965c0cf9db64b700801b0d1274b913703ade66a92d47aa8da604121693b8701201 +DIST crossterm_winapi-0.9.1.crate 16027 BLAKE2B ea63abf751aeab203f326e77260cfbd1de286be26acf714a083ae1262b0cc2a35b5cb6d0bd54f45b33c1942eb22f916141c5870aab34149fdb30faccf4d4642e SHA512 48eee242f477f43b69c00e3a5d4d255de2ce1774f6e73d869c5472b35d85af0b63f3a607097da8ace437b1e52a524ded4106767b83d4ec53c30c2e37ac4b46a7 +DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f +DIST cssparser-0.27.2.crate 56792 BLAKE2B 06b2c5692526fa8aabf158fdf4c05e77a6c30f33c631a735256da6eb50bca93031dd7899f484e482ced7377fcf433b30e6a0ed458b27401e183f9f80af897007 SHA512 7ab205b05112deffb5c50586106c6f04932a8b5aa1bc3224062abfb65136884f20189ffb1b2402aca5c29cc52c3315492db5c05ac052a70ddea88eb6683df295 +DIST cssparser-macros-0.6.1.crate 7914 BLAKE2B e754cdabbf678d3f9efab469e72cacd05e2635352c4a3f4c40971772550c3bd48315a65cd121a79542ffcea642cc0868c41cef1c7ad5a31da92ba21a02c41530 SHA512 21d2f8bcaad0a8fff865b23bb2b59dcc5165f8861c4b9d7d70e9f302b58e2cc5ef8555bcab97889bfe81889a2b27863c755494baa64a52c65cd74687fe58b124 +DIST ctor-0.2.9.crate 11032 BLAKE2B 3dd71580df939114cbaa0555410c721c66eef82628aa5be34a51365217944d3880d9b51ffbe3d734349cf87e4341237bed9093cc59e281ab8fc5cd49b9e73ee0 SHA512 70c3febb597883eaf99e5c640c41d29091d4da436e272e22238110cde1a762c37dc2f4a0d26c76a212c25013b00a88d7a391dd5e28a36dce88523974519808bf +DIST darling-0.20.10.crate 32031 BLAKE2B 038c2a4d919a8e9ff6eff5f83911b40cf4e918ac27c90f313b6b9131c41770f83cc3901973fea1c6fea2886a8360f3c5cf73b807d14e579b8b8e87f15e3bc6dc SHA512 7a14eebc20e48fd39ddf7b8376dc937a04f561d723aba864432cabd5ab46eb189706b43e5121a7f4fb0d68dbfd044353875bb479d4bd5cd96b76e3571733ce55 +DIST darling_core-0.20.10.crate 65015 BLAKE2B a94adcc6092a7a69728725ec4bf4cb7c163bc3fe0890f272bba9963c256697bbe1ad964d58a975c80742019c59d4e1b3e56e624f938576996e216d2f99e21f2d SHA512 2b971156b8c1433dd0ddb2213ee522e2fe9968a62889285d1457b5e733daa70a09c21bca9b8573d9c742026b4c06f4dd2025a6a196ec0b08b25a78d8737dff6d +DIST darling_macro-0.20.10.crate 1874 BLAKE2B 29cbdc6bd63e4eb0731c8f8f0a50cfcae9a88f116f8cfc0068e5d3cddc20b42b7f0f20f128ffa0f7bcb8d72f0188b04b3838b8327fa6f3ab45de4cf5c3bbf317 SHA512 565b8d535248d9d88b49a58e2a210ecc70f1cd39bfaf029ac6576a9b2eac70a6b18b4930aeca746d76d53b745c6aa82172bb341c4844b3757fc7978732fc2f52 +DIST data-encoding-2.8.0.crate 21394 BLAKE2B c07bba0c16083131e654a8ce91d4d59eea88a4f9c3c331ff395353d3aeacb6632c11ee213aa7bbfa9c415070bba697bb725ec9c3000e21ca9141b2ec02eab568 SHA512 5152e65bd3f3b24d2df43630012d17891b1b10d860ffce110332598de4aede15139ad948ec4486961d48baf1282d842fce1c3eab416d6254c8fcba2eed7af5f8 +DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43 +DIST derive_more-0.99.19.crate 55072 BLAKE2B 42edae47d228319dfc1f1851b81ab62bc38980aeef798bb5a4452ec534c9deb46266e0ad8d547fb3855e6d50253de5eafc460c60fa52386c04a86956f70c7227 SHA512 31fb786ee8fc731fcabb5479f3a35a8e1436fa7fca66dbeac1e402fd4a50337af7046a46c3f08d9902f5d201f83ae893865a43f95264a2dda5754ff6220b3e67 +DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c +DIST directories-5.0.1.crate 15833 BLAKE2B 2348af89efae3020f901bc6d97a42028c12d3168ec57a9a19668eacfaed61da95df597a26afeb0faa82c9322fd3772478290f00216acee636694a67441e408e0 SHA512 4ec733bccf79940190b983e022ad4a5741c32136aac7bd942423e63a2e7a7c07b87e2692ae42eb21b7a5cc81c60ad883d55c568e0d6c10a7c7c64652ec0df83e +DIST dirs-5.0.1.crate 12255 BLAKE2B eadd38e85211ed5aee7fab964e90342273320644c36262aa7b436e493512851a4751a09d22aa8bae0495f4b22df6e7395d13715ca8b8c6196107b1be03af9328 SHA512 cfc329518e85a25c296521b9aeb6e5d5f60b4525aa786ebfa8b9f198446a1ff5892160d1bb4790d7f3fc4a0abdb5921b2e4896e271a3fc3a3225897313b77bd1 +DIST dirs-6.0.0.crate 14190 BLAKE2B e214cf0c4669fa149d1e3eda1f6ba5b10a4a4b7d13a9050e63c13a4b605aae5d545bb711fb659312dabad26028f190853764acf74c1f6f31014e57c0a53a2281 SHA512 f29f0f932aa627bada67db5bd9d2661b5fb3b18d07030f5d88da28de7049eb872a2f35756cf29c094aacbc2429a3a333b54fb94d70e470288d3ca091cf6d4aa8 +DIST dirs-sys-0.4.1.crate 10719 BLAKE2B 30334f2192698d7d03bd4e8bc8a682482da7d13baacb8547a132f55019d3727ac35579926ba4367fe0a5b7fa917945abc03e010cb7363683753c87440581df42 SHA512 53c7c8bc76d7211d08a0e6b25caaed12eeb7283cb4b352c12311db3c796794330943259a08e48ff9d3a280917920a088e5aede32677a4b2f9f819c2dca6adb9a +DIST dirs-sys-0.5.0.crate 10157 BLAKE2B 0808bd5c7bfaceef00d62476ff459a8f3ab19fdd4d3a860b04698e51c390285ab8f01690fdec7faf01ccee5734b28c44e50a4358f30de1193a0d54ae5c6622c3 SHA512 c2ca362ad04e92c929e2cea4db359de689e512b7c76246c408f40d10f1d47c5dbbd49238e67edc0a251bd642ee292cae88992e5755035c632baec36cd77c10b2 +DIST dispatch-0.2.0.crate 10229 BLAKE2B 3a3f011bbd994f6620619d5bd26d95eda7ba21f1a4874b69e3a654e04611ec7af7257300a669ee95ae04ce35a91e033dddddb4a14da48036a5d19c4bad721386 SHA512 cf2b4c624f92808e43a0a4828ee1085e115540d5df5a0ad6a3593c9e5109951b26e8afbabcfb0a1fde41207d5c060566bf9260bf4c2a95907e3a822d84364b3d +DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948 +DIST dlopen2-0.7.0.crate 28034 BLAKE2B e8f24b087ef92dc28c4b7d9ab05043a1a5db88754a76308449acec50bf4fa613c12dd1162897a2dfef409fda391ec359d615c7db14566f76178243e6b2342e16 SHA512 1ee2240107a09c1a82d97b127461c0f5f72568dcb4f6519d9703ac28566ac399fa9b8afa83dc83e76d832f1862a5e8b1cc52494af0392fd128221ed8d9bae680 +DIST dlopen2_derive-0.4.0.crate 4500 BLAKE2B 786ee9917288ede3df20b20ebff5b36ef353fea87157e745b5afad1c03f10d43ea087ecc988d374d061d062448e37e3515f4d11743be0bf8448ddcda1d5e122f SHA512 bac03351670c296ee514b86840aef1a47f0b3afaa8fa4460eed619b02fec44b2a39ae74560380063ceec30feda4f7805942c88322be3db961874016fa4d65fce +DIST dns-lookup-2.0.4.crate 13733 BLAKE2B c28840a97de70192d337d078d0e04db5da0b0c01781bc245036dbd2931092c3e381a3792086fc0e84c6a1a0f92d0adf0366f41d4f48479a331a6de1e69af267c SHA512 4b2be29b927a8bc83e983b7caf24f3391dd1046b1d6b255e11edcc69338cec9d04fe5935bd01bed30fe2b551ed7f93585e92fac066e67479fe597acc6bdd87eb +DIST dpi-0.1.1.crate 11131 BLAKE2B 3b457f2811ba80745b76a9c00030a6f4972757feadeac8340a0f683335cbd05a8286a90ab429ea925ca2488d11c3149e637ab41472b862ee30bc49caa36131df SHA512 428d2e11a246446f01b0e82b2a01c2447bc223c492a153178bc2b4ff4834f4afd3bd715ec51d6b364d7b89a27ffc8920e69ad7ac9b0b42b46656235bb2960f8a +DIST dtoa-1.0.9.crate 17002 BLAKE2B 0b658c6af9a82f7b6ddfeec4f7c2fe21b8ae65e25674c4bb15d5c39c62a0afd9461e37d01074a0e3cef9085732c95cc1c12a09e2f91e508be80f2b22743413a2 SHA512 996814e68f67c77d68a0e3195241f7034575453401370a1842c94232a35aa41c832f788720ee68947662ae0e8c7595df736810a2b392871f57e6ccb47f55a4b9 +DIST dtoa-short-0.3.5.crate 8287 BLAKE2B 9a8e6625b2358d8f5c1346f2ec7fad73dc566b13f4c354b69a7004b43fdefd8118e76233ca55d8a572a13315504c4ce426b11745242ab713e24bfb774881d4d0 SHA512 da4d7c318b7146775260de71be363fa257ce9b1f7fcee8f5213cf905211379c5f58496d2070a001fd74fd4570a7de2a1ddf4d02e617dae6977e7a1e29b8817f2 +DIST dunce-1.0.5.crate 8244 BLAKE2B 1499ae0bb3d34e8d42e97eaf551308efc95697366b804dc83c51171a939d45bad46fce9f82a39e17b6b92fc833aecc85eabd2104823c7db30396833388125728 SHA512 36d7d75217d629185a9a9187f7d2e2dc346a28be0ad1c21b1b6bcbe3991e9cd11797e53d745c0b3b5ae94cf1e4cf141cdb2322bab86d97cc258b4145e3b97a56 +DIST dyn-clone-1.0.18.crate 12871 BLAKE2B 083f5a8840fbb279c0aa59258a0cdb0ce652941d0ee843c70e3aaca0bc5fe5ac918b26134b8610623657b4f37e376d53771b840a1facfa34cbab93f523b22533 SHA512 a06587c4ef96bede67dba3164922f25eb1c85ff5bdcd86a2339d8c20daab5e384efd6f43cb224497f06763f4881d46c9bfdc9ef8dd87cfd5cdc119ae9d829b36 +DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322 +DIST embed-resource-2.5.1.crate 16796 BLAKE2B c8d06418cf7865cacbc72c5f957dbafb1409703c199499dbc78505f8f471008959cb93f2203865f957d109f89385cd6701b6be986a5b742f7a4c7b5e159c34d1 SHA512 e2cef36fa5b1cc8f5692c5ec710bab630c2bf397d1fcf7eb5c04c3e1cc525b1bce4aefeebabd7b7cabe6c4c9971ba7572f05571b82c576f883259c2709911384 +DIST embed_plist-1.2.2.crate 13024 BLAKE2B 83025c3a541f5cd8b401f66498fa1b98cfa3cf0b899c48cb21039440ded7ab5e43ec09176353728a3bb0fb8a601cb36dde26e50ee3da1a428905ab6ccf178077 SHA512 2363fbe5cea9f41f29c61db79661c275cdff30009597304d1311837cfe3fe6da90ae959ae2c95a80b8727125a6b630591918437813125449721b688337b244a0 +DIST encoding_rs-0.8.35.crate 1381050 BLAKE2B 2db6797e4f226b3836c18496ed77f3fb113fbc075864fd264f23c4fec8396eb3a01c439985ba0586a4464ac4043ddd3acac80e0ecf897cb59569e5065ce2137c SHA512 4b55b53553c5cb6fe05ae81d1c6f3b0bab73ecd3d426b15c58b9de9ea8dd61617bf0bb2e6d3ae2514c7cb6e73019b1a083173d1423b3ece2d190770c597114c4 +DIST env_filter-0.1.3.crate 15191 BLAKE2B 95fa27602c10e819ef09b8f4935dcc3204104f7c5a0227e5fd33cc51fd77f70cdab3d822670d216321f263643d1f5220f5849002ad857925d4170b1b56cd3fd7 SHA512 94db29f1639636655e05ab02611cf14d5c2c8778be6eddddf0b6b8c21f364a71909a2ecc3acf3f4062d5d3c79a6316e9ef30b2fe042f617108af8431e198d344 +DIST env_home-0.1.0.crate 9006 BLAKE2B 3737d6a3c2c750271d67727a2f7f3466a20ffe2e88998c104416f4814643f929af744b91c2c89ef3db5353faaf8a5daf34430f9e413b0d09c79cee3d10863399 SHA512 5c79ed50e48f35bef62a1135d661ba15b3b30fe93c27d0854f58e9397058579ece4b7083bd2ecdfdf6d7ada6c84c1710c07cdc57fa638d758cc3f54afc46f22f +DIST env_logger-0.11.6.crate 31105 BLAKE2B 536f7b02bc6bd4f186061d55d2c5fb0d57aa91adc73d0c2521e0136573283147d5d336228fa7b64306daec9f488a2a83c83b96f06d648f45c3b52d04699b15d9 SHA512 1ec41e4c4eee4ea6bea38d40e739b1f324ef236fc786553fd77c6bacf6303f13d35c1626d3408a18346d42ebf5c896869deba133ef34b8cccf3729957c72de0e +DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140 +DIST erased-serde-0.4.5.crate 25459 BLAKE2B 0745866c0780b8635861ac9c6bc545742d5b1abbc7a42e299ee5fc7092803e709892987b2a82b293eea5a610b410602c5f4f27be3503b7467ea71eac01bcb028 SHA512 56ecd1be8f756a852102eea15d6e79b6c1c5d39c87cac0a5595d050fd3a62fda6b2bd81b9370dbde806b3b1b1c664a994f968b418212d0453b47a458313968c8 +DIST errno-0.3.10.crate 11824 BLAKE2B f9976b538868daba3cd2d47ff2fdcda16b4a436ca767f865f23d1139e7f232aba263dd4aa38d573442c762999c8a8beab8a4a8c10649d21b49090fa65ced1ec7 SHA512 fa4b9a368f254cd90c6f69f6883af4c579829a6da6f31481a1b527ac9602c8ffcb5e9518cdc32c39b5589c151a20e75a7300c8a907d178346185ecc6e8749f3f +DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947 +DIST fdeflate-0.3.7.crate 27188 BLAKE2B 284998759bf6eff9122224eeb14864d2693a166c140a2fbf84a1ad195599b5c005d1128499d2fa37431a87bfb15f65edbedf9b62a47c0964f635b6fd32033499 SHA512 7418eb5e55736788fbc3637e0ff4ee84e3b1d833684862049b3025991a5449cea6131bb04911d541178b0a91e0600546b8f2b646fc468dba6e631501b202c306 +DIST field-offset-0.3.6.crate 10032 BLAKE2B b4b43d35f793c55e8c521de7bc1648501cfe46494fc17d0b6135ba3456c8d72a11b422a16735c681c7c6542084652c119661372628096d61197f6e387b66143a SHA512 3ec99bf5e860dc68f3fcd0abd2b0de2ae0b3174eb177458506aabeee9dc7b0b8b58b925e2c6108a8f18ab95f2e1952dd9474650a639e1c1d50ec3f72bbd30077 +DIST filetime-0.2.25.crate 14940 BLAKE2B 1ffcbad3b2023ba5e9b2d71e279fd8c3564458b28290f3e19bf43b87083e1e3c0e18f191f6dc67540baccb83075df453950230089f243e6276e413321cceedc7 SHA512 90b4f3c4df29a3456c393f78f636d70f2615cba748a972dc9b937c2fcbbf4544f5b0d28c6c8fcfed5d5eda026ac670afffec18ab7d7127cee9afa2717146ccf2 +DIST flate2-1.0.35.crate 109188 BLAKE2B 8bd6e51c3bcc06044e5b8d7ead950c3beab6c6337052fd48e86175f0fc98c8d12804274308ee515dc6156bbedb2277dfa2706cdcd7baaf2a789122473248486e SHA512 aa2c4f0ad46cfbc7d2bfbdffd226eaa37f5223a34d132d8fb2dfd04c20d15a96c4882cc377fd72afbc7d13e512f5e9934386b0390a0ab2b171d081335c58fad4 +DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 +DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232 +DIST foreign-types-0.5.0.crate 7824 BLAKE2B 01a5111a11e48462914f9877d3228008590093633e957883fdafd3a7017e144c14fbbe713bb8b0061ebae78d20a49978191ce416a4e28317b67ec69e38acb879 SHA512 d07c92cf99c99419a3ebe05ba9154e396ab88116f46af736ffdd958c8e47741bca5d9f478f6719d5361360e844375968c1cbf6ac40995d47128a5e5fda3f6c82 +DIST foreign-types-macros-0.2.3.crate 7635 BLAKE2B ee89f576f2d892209c0f344dcab9dd85a671c976c8034b33dc984b93a5c872ff0353311657fa1dafc499243e55d3293a7bfc532ba55894a719a50ddaa6957589 SHA512 c3965e058d15159f789a8ab1597770ff6325e8ac9e6914c98450225ce27af849698646d53326e07b13eb3a9730452d926b73fd76e5a1fbd8ae4a6083bdce3367 +DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a +DIST foreign-types-shared-0.3.1.crate 6006 BLAKE2B 27c26518e0de0a298df2996da4959727dcc6a21bb4efa6c28869a9affe7ee3b427d1bae25ed6928477d07959bd143d5d4fa27325f8f5a5cb0ddd3cdb9e5314df SHA512 c68da34b55230941d6655f6a52d5dcb8ee02149f25c25a5ef782402f9a18b33047905f28b70183a5f45b45977c011a5320cf7283b7901c76ede4d82082ca4c9e +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-0.3.31.crate 54953 BLAKE2B 4b91470d3c85b9260c734dc6be8c985f78491b599d2a6ec0d1e824b82f684cd030be6f64179f7aa7c1d1fbc7cf0c5a1bc5bd045123b73461f490d7c2b9011f9a SHA512 a08d23cdac9e162d0e6ae72bd792201ff4e13d7ade6b498cc597149b3df2062b06814804c0750d941d8b5be5d2ab4cfebbe2d08a98d875d2092bf25e6e71a51d +DIST futures-channel-0.3.31.crate 31971 BLAKE2B 2a59ebb73f998ec307bef01e997bf2922556d6dea10e2e6e8da9e1b4cd05a8bcfeef01bc1cc57d79c39bbd98b8a0d26871dca5c7641a9d4e9c2bacbb3feb4eeb SHA512 87e49e661cb12c1e03a07d3c94ca9bf5954344a51fa11639a118f5a49877c883387343af54639ad80e7196062a77fa7c9b9aff9804fb1e6ea3d0eb09efc53c69 +DIST futures-core-0.3.31.crate 14318 BLAKE2B 613d16e4f18547e45ed0dd56a7b908306393e479c379ff64f358844eacb1f8d37008ffbbfe6b1a4ed184e501ee9214db149d9cca31651b7d353ab4a99c8f5ee1 SHA512 d2f4c2476c4f480f724a880ee16566fcdd545579d3cacd2f16745812eed9ac4a7a88d59d4a38b163ef466c6f6b612b9cb06308a09d52256506a8a90e358db935 +DIST futures-executor-0.3.31.crate 17965 BLAKE2B e111467391cc99d1b6a1f5fd3aafdb86922a2d2d9e360112402d68489577527aa35f4f65e6c0dc8f48372927e6d7a6a4a97c7b9525c369cb14e34ca2dafbe64c SHA512 337e70bd3a3bd3075b51e2afe8f157902ebe486696587cc2706b6a5770478ee2ee4216aa9e155e9821ed1d02ba437cdd3abd0c05aa960378ea192e2ed39af564 +DIST futures-io-0.3.31.crate 9047 BLAKE2B 667e62b50be304b68b8437d93b734a0e2433d88a3b410010ed0b04eb2bbfbc9984454c3f0a591f720c9983582c6421d7f870f0733c31337c4c518112f52aea54 SHA512 16d21388f7ca083d2c618ec140cb2c0807ca621b8c338698c367d862b99133ec9edda828f051f3f666472c929e7bf7a5cb334fcf167109c7c392c5cc60b54fdf +DIST futures-macro-0.3.31.crate 11341 BLAKE2B d91ace97b854cbfeba1df90468fabf6313721ef72bb408ca6bee1c110b0162fe91da18d371b628513644f9d3956540d93c3e13bc9917550338f797967acc3967 SHA512 26c45dd8c037831ce3c41a326ddfd581784c2e7aa2805ca4d93b91e439f4d8c078293cd328bcd66d0283cbd5a14724bc624ec607c343d15193b00bd644b86166 +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 fuzzy-matcher-0.3.7.crate 18047 BLAKE2B 934b90a74826393ceccc3e433df7cbc056a10744077e7a2178df9d9edc9db5d4cbc86d006c0ef1f7d82f4fb8ea0d52df71be1c7cc9ee39b433207d7f2126404e SHA512 ebcb6de06dd66da952183c75e4a44988bc60df17f035fe541c134f1c4e3c33d18a7385a9867fc23a99c07cef2b2737edd6128dea6546e243985da2f3a55dd8e3 +DIST fxhash-0.2.1.crate 4102 BLAKE2B efade6722efed1cff0bcf307ababd9c9031af297baf410367212758411a21d61a473456c7f9b5cb15e444d115a62120f140c082e70dd360a3ae83f2f71bec9e6 SHA512 638e1c0a4e7f365483a329e715afbc2e57e47c03b32e0e1818c879baa96996e81dce8ab39320e24a3e1633f73dec1e5f18a06c37f3ad38043002fc99b55efc38 +DIST gdk-0.18.2.crate 86561 BLAKE2B 5addc07957ad9cff673fd0c13eaf37b2841e442d135756a1a5d8228adf8a5ebd6022ee653551a26c02cbf396fda40d366a1b3a3d8ef1992164a659479658ee33 SHA512 70c6f1a47fe77fc4eec968fc85bbe0cc959fc25697b46c07e8fc8b039d4fa4aa27180a958f88b1075706e523374e9e563354cd850f968bba623d8ecb8070668c +DIST gdk-pixbuf-0.18.5.crate 18176 BLAKE2B f278fd9b6c9d7dfe1a6cef06d6203cb9cc48a9e64efdd49fe1c06968d090355403f6a65ddf3d8584b6306ddd50f4b6f93a983b83a177e45f47b2b1d0a3c7a8ad SHA512 9bae24b5337a83a694fc3f5a4f6bd539577d1abbf0976b306f85d8be16940ab686be2cb52010795a2e5915f3edd90ec2bfaa0a43444ff01f0ff497760cdf8797 +DIST gdk-pixbuf-sys-0.18.0.crate 9674 BLAKE2B f9c224988cc2d46181a5d3dde212988785c5cd8fd411ca5d4a55156307ee5895465c5185d761b246a7ebfff81a60ef7c5973ecbe5704b5e0ad77ec72b55025e2 SHA512 ef757be6df8f6ffbe8a0276ccac2b3d4c46b7acc6580876635a10b6782d5afb9ae6e8b11c7dccb0933b6d8767c57bc89b0ab117470f33b73f7a4a141f44fb121 +DIST gdk-sys-0.18.2.crate 73345 BLAKE2B 09e34957c93a52cb3444f236c47582cae98d212f2d1e2304796522183c43e60554c68d5b062688c13a4d259210a19a815d32ea5ec2d277392fed6b2e26b00d6a SHA512 4f2663a475f6b0549fd5ad7125edbc4ba66d0085a20960c6314815417bc18698f906177eb43351256ace7f9a588a946a23446540ea8a8c6543e64fce18d35ea5 +DIST gdkwayland-sys-0.18.2.crate 2967 BLAKE2B 28dd3186872e19cd7d6f827fafdfca9f5eb998cbb618965ea51c0230c8b21c5928eeed15b5bf891da55a772006f629d2c909b189b6f9b5855cbe0cf2a56b9598 SHA512 a6a90911142bbf3382e6aa0ab2bfdec9e9b9d8580089fb8a86096042c29f674436a536d039c3b958e495bfdece6d0bb91a52842c2215b2d915cdf48c5e93a6d9 +DIST gdkx11-0.18.2.crate 9281 BLAKE2B 074f0b8ed1b63683ca6b38c9e7ab379502d754cdc185f459c619f43d279e665a563ef55bf8bfb30988522e2a945ffd8630df782f34c39340dae6792bc966a297 SHA512 5f3bea6c4a4c7f0ce4615a1a08a0f394e170679c7a58f8f31e81efc864d398a58ed53519e78d88ec18e502a156a7fedee14256c62810a0bd911064c21fc1bfbd +DIST gdkx11-sys-0.18.2.crate 4791 BLAKE2B e91ca49ed2ebe4b9f0512031dba31282548ed99cdd6fec76ccb18a6bb688fe56f1956594e1a1a85ba1c4b64307ae9ef9a76df3b00e0006f378270c82b20102cc SHA512 6abfea48618b3aaf71366de0ee5c3ff70419befef46910482022932fc42fde21fead15814208504934837f134f9d172fed648b8b20343c861a1e33a89ddcb11b +DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d +DIST getrandom-0.1.16.crate 25077 BLAKE2B 0cbe96c27e78100c181a064e5fe524efa9a7a267fe60f8336d2ae0125883acd5d575ff17d1d56607255d9b2c30cb9d962026fdea1a5c3c29a5e0760d27c3136a SHA512 c5450c522c07c7a38b326f9a9062bac7d089630219d577ea4b55abad4e0c31d17b7cde385fc43912dfa100b42334e7a52422c55fda8b738caae428c6f9addb53 +DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb +DIST getrandom-0.3.1.crate 42449 BLAKE2B dd70e0abfd27a7c363ce1b91746ef7568edf1d176d5575201623b6403f3a503b5d8503d10ba01d055f9de61cd8092729d34ac8f0f4f9fc6ad79b9fce926720d1 SHA512 431682efdc2ba82114e173925b99e1059d4915ebec6b0432d4a7683e56ccff7b4b45b9ee9cf5d0ee53067d5ae1ba733524c18577379c8414c385189718fbbcfe +DIST gimli-0.31.1.crate 279515 BLAKE2B c8924ce351af5b8f96ef757a189f7a9be14533c024d496c62037cd4eda790b3f6282cd3013ba82ecc83082acab1b60ea80b83e0fd5f8eeb381fd7f9df88ce0ee SHA512 b9c8c11547dc7420fe936b9f32a4f5ccf3bb68d1d9f39dedffd40d631360f6e032e719d858668826f1099b8a262e8096aa7ae1f6d7d3d7aaf47934d832715949 +DIST gio-0.18.4.crate 206027 BLAKE2B 6fc7b587e5195d0230491b61440d7f0f9aeb87dc0835c5af8c6a95ea19c4803d56b1528cfceb5b7d006b4de65b92d3cefa3b2727a647af44c6dcf1c107fda7c4 SHA512 d4e5de6c4600883217a98331b9c0d6836a04fbe446dc5fb70e7eed6c7af8469defa01f246ceb962b4b6f905d08782e3f169d7237c032f4b9b699f087b50beca8 +DIST gio-sys-0.18.1.crate 81369 BLAKE2B 40b7425735f49cab5748130a3edde01713472cb75c2e3f1612ac1699ff2488abcd17addc8b9de1704328f7656e660f90cf33502f8567c22565f15d9f80aa4079 SHA512 f02e9766754d48407e955fc81bb27820a357a1f6cf7b1e89464c0399cd39d4adfb8586d7d7a2a12e98792fcf6e4fe2807816185824967906d45ff936ba3d911c +DIST glib-0.18.5.crate 267679 BLAKE2B 3f8470e16a0d06dcf88d9e9c6f8fada78dbc2d96137c9d7649633cfd4fa3d19be27954fde0affefb63474c5ef7a4eea9618d3ccb0fc64a0afe72dd7d5072b49e SHA512 51fa8dbfbed341876d41e5d8e27386aa1a2a5429ef8dc1089a0de6b5724421bbd6b7947f5d95cef7056874959b6168a26198c57c788ec5165370ea2ccf7258e0 +DIST glib-macros-0.18.5.crate 50911 BLAKE2B ef41a20b180bc8603d24cc916627acd2ae846e58526d1025a10b5959ec15db6ee4e71726d8ba1bac1f9ed58aa12e87666dc6693abad5a0063e2a20940e36e7e7 SHA512 ebc789c8a11d7c990c35dbcb0cecbd577e9422156bccab94d1dc88d662d3a30e8f989cd61c6c70185b132b791fa5907f506e26f22125e6498acb4eaf98da3ff7 +DIST glib-sys-0.18.1.crate 60464 BLAKE2B a68df8198874339988cb60ff45b9904607a7852d224e5efa487f22f3bda8d3eb54f7e30f6e2c30bb20dd6e5d48c205b65b7f8c3787915d3a436666d6fbfb797c SHA512 46583979de6d58cb863e522f9f11f9fd2e16ed5d1ec098f9f9511a7a124029671107beba01d5a19dcb082e57c53a2714ad3f75b0ae47c65985c2ab947d3f2c15 +DIST glob-0.3.2.crate 22359 BLAKE2B 564b72e2738cce5311aee12d8d6147631cb571f7b96d8d3823098d3dd449bcc23ffed5a6584f8979402bef95536b0e73fe9772f273295a0079782b9f7d88d19f SHA512 d15389441e337e3fab9c30102fe7b4b1b3e68d8cbb5d14162d2fd7e7d01a9812b2d6d6d2a24a60116418be41e2075e70becd6994c13b34365d512521e8debb02 +DIST gobject-sys-0.18.0.crate 18699 BLAKE2B c5578c791f40ebece8210473bb363174ebf6d41db6a7ce64f4a86a2ab5337c45c5b10ff9093712a846cd2cd9bec99e135b4db556a4d18d6d4758a1a66aac08ed SHA512 7b274a6a4c4f38a4c1a5abf6410151d5ecd669c9a2c3ca874faadb0cf31c94b000c7439e1c1d409cf66ba41d8157dc9bd931de5bac58e50bc2ea9cbab13b3f00 +DIST gtk-0.18.2.crate 400997 BLAKE2B 98e887463157cd2e4cd9b5c2769afe85ac1811a0c68398056b6f6637ba1e2ae67cb81effcf043976df9229b23b56be66d2ad2e27c1c122da7dd72245bcc6cbb6 SHA512 2e0c8a706ebcb5d8f0a759d198eea20e99255f1092a45c4ff108b716872c378f091092695f848dcc9024a07a709f9ad4d024b4f29bfb11f3e924bd56fd6e7604 +DIST gtk-sys-0.18.2.crate 137210 BLAKE2B f71022982eb7c17ae5e53830a22c6e194106bbaea1d88971c19849aef58895078618877bbc557fb0a067c5a2d86e80bf4913b19555d39cf6ff82b7adb3ed43b5 SHA512 691fde3edf0d55157594a200ea54fa588b4e9a4d91fc91771c3b0900499e6443d0ff5b662a61acee4c99601433df68b93131b61ea378dc51c2c31a858d2c4ceb +DIST gtk3-macros-0.18.2.crate 5508 BLAKE2B 192e397d41c7062d9abd8b2219ac41287489793ed5d9b904966dd1abca2e886c303deb66fd1b710607d70db617f43476bda696e97ac0cb9f2a1ebfd975a8dd80 SHA512 64b9cf29ba4d0655512f03181384909dcf53f0c15a19914060fa4853e26e73a39877f10e0254482650211918c708bfd015a708d58e919b338066007fd6951c48 +DIST h2-0.4.7.crate 174114 BLAKE2B bf146baa6f998b6d95bfee77f190be7f85af5304a8b8b9931674a35a0ba0a1262d26ba097149327482dd988f8900e996086a820fd828fb023e52adb104e21bce SHA512 0d56fd3a67473d98199e0d944d2bc094c36638f3a2d986942e6bb2e1c8022e7a53f184d5ac5e8d435ae97da481ddb8d5b2a039c70180345c8006290fef39a59e +DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76 +DIST hashbrown-0.15.2.crate 138478 BLAKE2B 453888ce68b10cd6e93d787986603fceb29b83fe2dc417e7e57316b9e0060d0bba51ec7fb71d46a038662c99f60deac8237a8f349297208d1d223bcc13f0d0ea SHA512 d6fc0613623f9313533dfcab1240e97f652f78f05baa21419f7edb2eff030c4a2c5f426d3eaae747923cffdd8aa9cc2648340e5fc229395b5eacc6fae087c8cd +DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8 +DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 +DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6 +DIST home-0.5.9.crate 8760 BLAKE2B 02277a6d0e54a88e62a50ceb5b50b08cd5dc1ca5ddc17a799db0f49a17fee8560df53f616ae22cd16020ae2a89ce7c6ec22e5e2c0d513405bc2859a6e3ec61f9 SHA512 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1 +DIST html-escape-0.2.13.crate 23345 BLAKE2B a138f627fe019eed647230dd88bc37228fd00a356b709fdf82aca1e3dc9eef9518336d9de2c3be14537266e971ab5439890e84443f3a6f1c286a9db2b5757835 SHA512 3b6328313a4cec3fbf3f2d7fd417c6ac19ade8ae196ecdb3a3255a335c7d2e557180eec199319f6ca4aafe443ed99d8341296f0b1732fd4944ca0bbd178bb54d +DIST html5ever-0.26.0.crate 72921 BLAKE2B bba23709f6404afcb86dc5af8fe8c0728c4c407de7cfc679c286ef13a790077329f7df2a065eae742e7b4c2303e01793e1b936daadd73f663cf2933845d975c9 SHA512 383a25421cddb0573e41ca93131d681cfbfaf551989337845a197e939a2580751ae90e96605bfc4e187dbd5189b6c014557cc69e3d7d2d2cdfb88eeca8896089 +DIST http-1.2.0.crate 105932 BLAKE2B efc9fc4ccc4a622781ed895f77c1752baf34e82d249acf97687ac8d4260aeafb333040833d9f8df5916cb105cc8217c8f27ddd021636b9248ad551ebfe4d83a6 SHA512 2c8e7234ec3aa720c9dd762c0bb06367fbc39ea89446fc9d8d2e55052a4ac461559a20a8294c877879f3e94d5db06fe41e2cdbb9664ea7ab1bc8003abb038bb5 +DIST http-body-1.0.1.crate 6125 BLAKE2B e253f2c85c0553382db955ce9ed18072f8916738962083223f2466034803553818e7f5a11649ebf5ea9118e7ce1067bd9b999379a03a335b88c810bcd312cafc SHA512 3d9a711619e5b14d2188fa42bbd43653dceeeb7e172cbd96d36fdf37846fa2c1efa0fad019395a4fa6da2e139875934aa56caf7332dc40546095b0a774ca39bd +DIST http-body-util-0.1.2.crate 12821 BLAKE2B 43ed71d7b7247d8d11f6f204bcac1b3b81c002cf7ec89e6c381554132293c11e6ca148cdf0dae8bc213409c9e0523dd388cdfc6f636dc1bc5ec7a0f7d3796dd2 SHA512 1f3eddc475791d860848041075d9df8a3d613c9761b2248364e406c84b070b9d2e4d7e8ced61d7445d97919d5cb96d5c1424e8298ddbe6069110c6d4a5c9246e +DIST httparse-1.10.0.crate 44882 BLAKE2B 20a070d3e5dbb752602a80ea1c620afd1c5bfd9cde7e05eece6515168a60e9bd38f2cd10b179ee369d5408b0eb911ad95d69df2c1f1144ca3ec573b57aeaa4f2 SHA512 0ed43a15585b49064ae6b745b7c17775db1d849911115448239fa70a0b6f1d5a1fb09e654c4c04af8d533d74865966bfb215135a133aefec89eac81f136709d6 +DIST httpdate-1.0.3.crate 10639 BLAKE2B ce0b401c69f76252639c10f6c2e4a823574a58565d7c5cc3633c72837aa4ec3630b34b148de4378ec498db196e3b2e1413ca0e5a4d9247855380fe19a8c20f94 SHA512 0586888fe89f40b838d5ceb083084d0b8058feff1d2933faedb96896dc86eec68b541a0374a508fd11b86eeadab3c62f88568ffe2c53206fad438373a50b2e5a +DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c +DIST hyper-1.6.0.crate 153923 BLAKE2B c69d338d00dd9be80c910dae6b3b995918d862d6ee863e9f85442f0e45584a054056f51864313b8ca0068680d7667faac61d70adfe2e7d2db2346f608b45bb32 SHA512 8c30624f51fed280e909ca526284f81a0863e3ace05f20ce8117298f180efc1567e92f807895034d9ad83026059e4b90c5a3cfe527a3e9c99674489fd17fc6a8 +DIST hyper-rustls-0.27.5.crate 34660 BLAKE2B de261692fa4765f3ffdf8c384250532a0747b2595c41fbbc1a01c69c2c8a68a87656572f70228ecadb4aea04851ea6e7a0ab7077d6ffbe75b1a15805e64fbcbf SHA512 6a2451be2f42880978b0236385e8775fdfc3f538d9642c7fd6993ce85b16d623357f97a8c2a328e76e31c76083a8be557a4e7447f34aa52b9e990f4c9680e193 +DIST hyper-tls-0.6.0.crate 15052 BLAKE2B 2d9baa91bb89078e58b6a3af87af6796c110cc26f79604d56552836b3fc770ea63b215b44623a57394d1d60382d65f9ac0502e68700ccef4a2d4b19414497545 SHA512 6b99b08669e689005a27f2ca70a12aa51298a6a4226de072cd84fb15275339dde8e2054838541096484d732a1d2d913bfa945ff3003054eb62ac4c2d0a8ecbd8 +DIST hyper-util-0.1.10.crate 72887 BLAKE2B 9d8ae7445ea56505e19f57ad680020b748e943a5cc3eca7292c06d93be1b58499db5769b214687aba53a0e9aa6fff3b3f63d1623157350ea826cd2decaf8d0aa SHA512 0a16c5d8857cf522bd53017dac50e530ae685c512eb55221fd6808299c7d716815f7b8192f8a9a504421b938cc0536bd497c7388d2f70ebbd91c46b644496b2a +DIST iana-time-zone-0.1.61.crate 27685 BLAKE2B 2091f0bdbfae3f63ff846e27136d9779a2d65f85cef899ea3ab0ff7c987329e6a584cf49c57de566f08e0277bd4981ac3db30ea0cec6a6757ed50d96e2c6583f SHA512 d16c67f435606334042c3a286350db46ff3409f142c0782509b136150b4069aafff0dc5c2ecfb7519dd8d105b9a2e6649df2a7bec33ee3966dc94034c9d5a1c4 +DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2 +DIST ico-0.3.0.crate 69218 BLAKE2B a482d9781ce8c35f84a607dc0ce19ae5e0a1df607cbdb7ab7a15957e289adee90ab1c03944942ddc4549497b28beadc18fd4d54d27a81182a82c5fa3b2faf201 SHA512 8b80441e2e642244afa792380c78fd529361da63af129e147202d9b9ad8e70b5fcd782c5d341fbbf091aa85a085c4ac8d02762cc473a10126d03bd2d8d3cf212 +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.0.crate 44727 BLAKE2B 7fc5408510886bd7b7d796850a542f2c1d759d2c67492b695245d46b34930e3918513cae2699963f603d2bd02484960b05afd58cefb6c3152ec201880366d44a SHA512 1c00fb962eb4b8c759b1120313bb890f4388d579890d7450b798d6266a7d6adcbbebc8a8dad2f267668ca6f1c059d0bd2209eafbe2a72f4558c85258eba57405 +DIST icu_normalizer-1.5.0.crate 53113 BLAKE2B ccd58f24469da1f237ed9a349f0b3bdbb49b8f5b1995d6254c6e3eab53a71208ff4a0b09bdc68082cdbd288df66499efb19555f41d12a19205d724af22fb504c SHA512 22612b86a24e3ea222469392763ae9d40dcbb37191dd8b9fa1c64332463a4299a53275a1cd3deb7e0f057d137f4312d990762f9925d0ceafbc8839d67c425a13 +DIST icu_normalizer_data-1.5.0.crate 50561 BLAKE2B c7b8c5751c6d6df03b23d63855335ef67b34a0b13b15f1f8a8986943b5131874f5205155889e12253692b39918256fe2cfed70dfe2087011683ab9165a5fd786 SHA512 222fbb819791fb4ec7889e45ed3032ac8d4753e2e9cdce9d0b3f79128baca5ce64157a8a58ecdf39cfddb6c2395001e3cc8828ed51803e85cae133c247cb338f +DIST icu_properties-1.5.1.crate 64479 BLAKE2B be7d3a1663664095f4af654723ebc74f385a6423fbd3acad325ba0d6188dce9d9321eb323c1b1d8e6d75fc9aaef3d873b609d7049525d2402456c6331bcbf486 SHA512 7e347c0a02a41a3add950290bee90a339091a713546d4369c2995022e64f127f54204b0d46cbb88f396b3bccbd4cf12720a93d8551b73926f78fd5ec01829cac +DIST icu_properties_data-1.5.0.crate 227993 BLAKE2B 3b3141507077dfdeb4f89316e63e1a651fc5570cda58c6c2d566130858ff67f900c3b151113e6303962fedf1d6b6d617601b21a08c4c0c98e6bf135aace6f299 SHA512 c651d0a50c229acafa648ce234a73bc1d0a85a8bf2369fdadaa62badc741c35e8a7d5392fb1bdb7b720fe2e0f883d1309c78de4ba913691969e5367a4e8bafac +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 ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9 +DIST idna-1.0.3.crate 142515 BLAKE2B 6835a64772e5d301c2456a94f8f5f40ebe6828aaeb1d48e3fbe015917dc3ef95ac7cfd0e1f1763e23950482f4b46ef7987928c8dfddebab63947d5a29fb490ac SHA512 e75ab18297878df11d82bf3623b005a3dbf7a6fa38c8f78830c219adc7d6f4ac07dce24a5f1186de69035ec316421319e487396cfacb053674137342d72a4126 +DIST idna_adapter-1.2.0.crate 8206 BLAKE2B 5e8d7dbfea699584542cde53039df9d8c3dd408efa2534f11fce7086f679872c45d9905d6b2cfe523148eda3bb0cd4820a7b14317f91725f3d9cdb475aafbd57 SHA512 1d8b54c19878645749a1bae768dacf353b07d266f2cb3bfa1071a7afb56ca68f534dc1d54cae277b777bc97e5986f297cbe2051a82e14f553ea73cd723d9da7e +DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37 +DIST indexmap-2.7.1.crate 88644 BLAKE2B eab47b5a8322ea4ea038884e70a67dbfa40293eb71c125d0ccf117af9153c19268c5fd9efd7f0be4a773a04bef961bac90ab3269ad42b565e5ce6db5a6d49daf SHA512 225703f74a734da1ad464895192f07c83068b36129f69a9e87608134f250d3a19b95fdb21dcda6c44cb0204bc4ad69bfbba24d94c83b439000ab4b9ffec74abe +DIST infer-0.16.0.crate 18830 BLAKE2B 4ea9a8f5ace677aa212007dbc0c559f14857b262ea7ecb4f6a343959307bd06b45e213e80f26c011036caea3f7b4712a6aa4bf345e585f39a9e612a244b5e538 SHA512 0cd54ebcf35d8628d8b576ec305f0ec5884c0578f1655764a34c1eb6eb0aad830f7b737c818545c75fcd404afd9ffce62d431bd0b5afb2cf01beddbf4669872f +DIST inout-0.1.3.crate 10743 BLAKE2B ac2fa5cadd98088ea3f6eb94ca46b3a9ceb6547ba49f0de311d86474d71024d1a087ce9b8d44ec808008db69146e9c81446bcfeebeb2fd74d2e8d0ad2c4975ed SHA512 1db5bc2bd87aae145b3b0be6669a9a722df2aac8f970fda210aaf945c372e641b941cee822917926dfa1ab8381c6e99cc7df4b18d2f4e2fbef17fdec36ed2beb +DIST inquire-0.7.5.crate 102904 BLAKE2B 938ca75b7f150be20dd9cf1d124977b5f39e5ce25dd55b9a574764833a0b5cf70c994498ee241411bf9d3d2428aa6531449092060145d304471f155167506469 SHA512 4035e9274afd01432a2b20213d4f2c71d651968dc03e7cabcabc0b28ef809af04cab8207eefd7da0c66f07d32cd01e5c4caaa6c7b443f652466808bf753fee46 +DIST ipnet-2.11.0.crate 29718 BLAKE2B 5cfd0876d2c45de886a069fa564d5bd0d4bc53a62ba445692b35c12ad4e3197d9d42b51b14e31bf79e7b8ece129e4612dbf47c90ace5e2e5a9f0e478bd6a5b1c SHA512 9d3c42b5bd93a792ac09975b9ced105e6e8b1eb83bfe012aeabcaa3fc388ee2c5a0541d5cd6dae48dfb97cf82aa970316962d231b65298873136335ac3e5ddca +DIST is-docker-0.2.0.crate 2664 BLAKE2B 6c3b10a805bb077b9d0c54155fb9e72a15304fb3d6f0ebfc3efea8b42e02b99737d22c16a5352ee0c1f820699f765673bf0ca8f46c6a49b45796796c01015b84 SHA512 759e00292710b685954df031ef96bb650993cc3384cf03760ebaec377524cadc929c6561dde5fd3e14d71f9f122c86495dcf9893d1216d99055048542123ff06 +DIST is-wsl-0.4.0.crate 3264 BLAKE2B bb9842ea007d5ff132c77b719c877c370eb5cdf63aebea8f3165ab49fbf6c68d624a3809de2b374cc4c6c86dfd0fb23b9dc32c2e7cc5f2378b2efc918dd710c5 SHA512 69ffd419eb4de2e50ef4e61efca76ec4547216957d5422ac7b2bde85264080c2f522714aa40b5a6566c25eaf791d12ec0df09afe3060cc43087d18510f33d049 +DIST is_executable-1.0.4.crate 8263 BLAKE2B b6871fd2bf99883a64b35c3839ad499bcb11ec33d8e3fcef95d7cd17d3dfdc7a8b1ecff579ce191f7b09b32a6257904ee2825d606b959f813b1f7a18c453c42c SHA512 a4cea8ac0dc1d08187d210c7864136e4900e3fa1516ce69bbc870c184e3ee66906ebd841ec5eba228a71acaf0080469b4446716043fab8b1a0ab2bf16d85afb3 +DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1 +DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e +DIST itoa-1.0.14.crate 11210 BLAKE2B b2d33dc384757963eab3ae7d80bb672d828a549967986e3af8c70fe71a0ad46c4a278da2db4dfccef99e804e6cd4934067e97c0697a33ac3302cafbc46eeb416 SHA512 ea2d38df373652ddacccd11e610dfdad4e3ae7f0d476514e6ac58092733c817bd834e8cd88c3bc4178dd5a646ba628ae626195e0aa407e8534ae3c2a7b049987 +DIST javascriptcore-rs-1.1.2.crate 17456 BLAKE2B 4146389d869b0fc6909110bf4d6437fb6a5818d325e6348fd483f2c0aca2a23afd247e7970dbefd9a08200f7c3632a8229dd63d94ff8dd248ec22df9244aba79 SHA512 cba576f242961350f248ede7b6d7c159ce23ba97d88a02d24e334e48fac714cb374fcdfad3f350b209023bbef2f87fb230d13190dc8d2bfca4c00d0f357baf89 +DIST javascriptcore-rs-sys-1.1.1.crate 9704 BLAKE2B 6f0c1e1e2f29115a08d44b3946fbbefbd8938e06f191404a8eecff1344eb3cecb74851692772de0a3e84e917bdb6c3dc6dde9c68789d05b7a5cf0b1edb1a7e55 SHA512 06332d21c8a7ab0922c1a533fcd31bc9f61097be11a6a0ae44c0a31b15a947ecc3a3b57965b4f4a57cca384b45cfbb3559743d8f8dcc2ac49831021b0b0832e0 +DIST jni-0.21.1.crate 105028 BLAKE2B b384973d4d991de027da3f0c27aaae33a5d1f2ae8037f0121e8c637a96382055611da753c14732cd9fda56f929b307c988f1c3f6bc2c7617e2e5182a66a943b6 SHA512 46897d5fb968e598fe39179307376305f4604db61ea5d7f12050506a6813e242c05785536528ff2d59de8a3877f6b24be15c30f451f1bec40a5c72fa3b772835 +DIST jni-sys-0.3.0.crate 10232 BLAKE2B dd6334daa6db9fae6cf1b31b9c13f09f9dc3f6a0e227bf6779880a6e197189d91583cd463b9876125cf892ffa5f8417dcc51aa010cdb8c99bb4f969990e969b1 SHA512 1e47582ed4dcf608ffd218549f1eef5ee3c87a89e28c65eeb5bba801edd6cabc0f095e213e8df606e050a57608653a59ced6f01a8bc76a5eb32ba1a337a63321 +DIST js-sys-0.3.77.crate 55538 BLAKE2B 8a4c04a8e93bf5dab63784a24320a314cc5cb629df788e116c452857b8c049c6bf357f3bf8f35086eaa81bc2d7f0954001addfd0577d845844871ee138e81bc6 SHA512 d9370ed6ea892bd51ea181630ca661c348f82d575381aa4c8b529113dfcab6687f4d19bceecad7e1b28ebaca74d405862150a5b5ee2d5d55efdaf98eed1ab255 +DIST json-patch-3.0.1.crate 22046 BLAKE2B 509bcc0451df654bdacfcb89dfffd47eb33e7eb27f52671c6c8574b8d83e82d444fa8d82090d0f1812aa15b4912e60b0ee2569dd55ee5b08d01830695c47f720 SHA512 858a2c7c5a54d43069fb0c56b7fa22c50b6391b905fe2c56e4021b19a56bcdf00a9c2fd63e3a0c9de07d1b71ab8eebd1662655d9f730e7dd4f145f938069a146 +DIST jsonptr-0.6.3.crate 46086 BLAKE2B 334a2ef5528912a38be021766ffb122c5e433f053537ca8531a7b5ff2582250562d508c4ce1543e58d2a7d0111dcc75170a13a14920d01c2970a4d2cd1c7b2ff SHA512 bf91a3439a7443a17b78e1087cb51f1d94411172e98d65f8602754389cf4479c709fdcbeedab155727a8bcdc54f8bf8c85a680717de3708cd0d2b8fae571c20a +DIST keyboard-types-0.7.0.crate 37068 BLAKE2B 2a11b182641e133f64cd313c36c2587c7f124ac9e1eb3815057b904665b9bf3438d0e805fa56d0ddf1e3011f3d9f9d47c0971343f8e8c97d3a198700036ceae5 SHA512 607f4e52b246a2986fc00c164623d1d0cab901b5fb376a648bf3d6247aa0ba16aa0f8c481466786feb443ced37249199b9c21ceccb248ea4486882ebd5b36a02 +DIST kuchikiki-0.8.2.crate 31055 BLAKE2B d96cf6605380624ef8c493f5e696e5e2945d80fb70384be11865b5f2f281aaf36635f2ae92cbb1153a67fadc11303953d7d4cc7b7d4748c371b4262b0376d84d SHA512 46c530dbd958eb0cdf6b0d4f7553f3d1d93adffc968cf5063af5720079ec7432822c29b6b77092bed508a3eabfec264b63d7a5ab3534506fcce4e9d5abe76e5c +DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f +DIST libappindicator-0.9.0.crate 53678 BLAKE2B fa23ca172383a1c124538d282b98ddd79303d9ecbecbb24a9b8d96039caf29b3f5788c6e2e2ada7fcd900e47335ca139c8ff57c1f453df05dba44985af80d523 SHA512 40679a1cf4053a244f84d0e5f71b72e1091f5b1bfafab799bc37db9f3af80a06c8d36aee90cac5c2363ad728735432ddb68add8f8ef3f1a393671bf62fb3456e +DIST libappindicator-sys-0.9.0.crate 7370 BLAKE2B 04a69566900a5ade5d55b8e774efaf8b44601373e8550a93b3e949f9e26b572d6b32add88ec92bdb2245014594788d2d67bff8c3dfdada6dd0d22765b8820fd6 SHA512 65cd3169ecefe0c2ad29c2bb36acc2edc97d7af94d08966d75234157def70b7fb75da25ced61b4a83398e0a6478ad0d2d7d1cc33d05a0d793270efc3c2d6f0b7 +DIST libc-0.2.169.crate 757901 BLAKE2B 1012cf93d8975aa20fc3f2332e253426ff66be6aed63ace5292cc8568ee419b0f1a4b5b39ddbb78d9c2dfd8d72eb0d068c98faa229ab55556da5e674429f0e97 SHA512 c4566330a7967efc211edf31a23647d1a33aa51fc25aa4e9337716748c8fd4be0ae63679220ff2cf6e892f37d03bc5264c55e8f082eb82574a6ec1fa8e5e45ce +DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1 +DIST libredox-0.1.3.crate 6068 BLAKE2B cf09f261d3a945d290ecaaa724903e0042d66eca46dde8a40c261ccb1e82c0d6b9926898eadafc6313fdb9f19cde56377b8a9179935482559c4b9707e327511a SHA512 c62142fdca92388664eef83fc89b8607e2df318cbadff6edf9e3d927837853d5cfeb54445299a82054a0ca81853b0a33536966ab26f1f2e0fa43b39aaaf67c49 +DIST linux-raw-sys-0.4.15.crate 2150898 BLAKE2B d1936eb74377d9bfddccef3830b56eb716c38ea3cb7e13b73325dfd00f9fc0df74bae49e4214dd7f27c257403b8b12cd1ef332d53336279d13f7e9497caf4135 SHA512 b5c39181fb6b901abddd8b2e7b449142e2e5691cddadb8e6b74ddc3b53076b1d410522cfa45af68dd18befd24ff12313c2494cf2cb0cf142e2228bfe42014309 +DIST litemap-0.7.4.crate 28257 BLAKE2B 52989ad353a782e9592357530dca3504e3ef5475bd2f1b2c795b60825d971ee6d3e6da51fbb6bbc26cb3c3303f6a751a3e15d1caa78c0cb888288a965666279c SHA512 5009c486a87b2f52237e15e2e772365424e4780c146776656d8e1551e52bc8e06e5c1cee8db1c59ef20d0463962fc07ba5221a46020a82df17a2f623a175f58f +DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7 +DIST log-0.4.25.crate 44876 BLAKE2B ab9433934d16edca42b38f559c3c87f949c4540fc422e6d65c75aedd5055c7a4935ac0f735e7ef5c901a7443e70d60be77079a104dc61a3955b0c900162b3967 SHA512 b420404c82aeb04219e9f63505d60b8853cad44d1de0bec0750715baae21afae806bd4f741bb8964dd39bb5d1e0f5be41bc38d76773bdfd5e920d30533146231 +DIST log-reload-0.1.2.crate 6423 BLAKE2B 3ba1b0c6ca5d7563fcf5c61a17316fe22d917339c24fc38dc2fa1a88f455f9cc49aa387f67f71fd7cb4aea0528c7718091e58d19bb93f5ced587ff5054eeefb0 SHA512 f644aba65097e0b7e413b18aa432094c735e435cb6c99c556ce0b44889680726c1b246d630e1555f1f1ff5ca25602a6b3563356b42263fdc7a0ea7cb266f8a88 +DIST lzma-sys-0.1.20.crate 760045 BLAKE2B 1f66d32008178c218575fba12df95a2cdc448e080c0a81ef4617f35dde09f0d56c86c28050db61c2ae7b464d0eaed7dd8c59a1fa605b39ff8c329e49165cd922 SHA512 393908b4e3006e4d9948a077d84ba7f5004765c4cc0f854e04847e504a246ab9a8e761fa48d4f211a7ac08dc119d950481da1ed1a480778d6b6e9b446a697279 +DIST mac-0.1.1.crate 4838 BLAKE2B c87e9f9283f179acd28c189d02d9d3de0ec99f9cfbefa590daa2880c275894951c5b0b935b652ab6c8c0172ac59e87f52fd49b787b230e6730365dc076d17578 SHA512 dbc6def04c482911ace311f34be79992fa04042c7ce36b71459b5af5c1c43e9fa66b6b40f63f8c3647daba287bf1c1be9b1a8031ead1d855f99a988898c96f1a +DIST malloc_buf-0.0.6.crate 1239 BLAKE2B baa59345fd372db162773adbb441caff1f6bad965c3681f244161deaee76282fa09b9af0d0642cd39ef35689f85f5bd7c2efb7ba8119a58e86c7cd12d81b2c6b SHA512 463b3d7666cdd7de618abf0cc4e488060c84d6d93c56d4e922169511a0b03de380ea988cd998f5a162b244088902198763351ac16dea3762f0fa0840fc29d6ed +DIST markup5ever-0.11.0.crate 34667 BLAKE2B 7a4e9c860949296912616fab105b688fc5ad86df012f064efb3e5125aae57869b4e63f4a551fc787e65987e5bb8c0dc26e2ff99651a2e56fa67237796f5967e8 SHA512 c9e9452f5bd43a7e578434467ce324a857ad600965fe37a24650f0f3e968fe1dc603ac8c7b9c4ebe2f624511cbdbc592ca0072b04ae094738670e199df9ad05e +DIST matches-0.1.10.crate 2592 BLAKE2B 6e9e8ce8ade3fa0f144a1befae104f63764f8346fe864395be44f99d40ff0fbaeb45b6f2fafb2e7822d1ca72f1cbeaee4c5f9bc3e2485cfef2b8de2a4183ec04 SHA512 2248c6192238a8eda2dc389a5c27357555607b726d195c36c4cf647f793a4a9e17ecdf5145b5a4d8fe6eba7f9b23c7b2db1cbd553f5610d25976e3709bc2fe4d +DIST matchit-0.8.4.crate 33986 BLAKE2B 4d7b43199552cf01daee7aab49cd5bd114704d14985c1df7a800f2ad7951a7ac2b1047b9ca35e42b8443d701f2e76afb669f383380e442e60ff08f30418f7a41 SHA512 62cd181bb866a874c5d403ed1b14ac54628ccd356d87c5479ea88febdef2ec58e60eb02a42e8eb19cc12f14483e5aef0158608143ac2d78548f1d892910fa8ac +DIST md5-0.7.0.crate 6671 BLAKE2B a1c8132cb4d7497ab3f4550e6fffdea6b118ad99a31128c068ea3243b5f76c4b059042da376a0be32fb74e866571348a581c2ca727d6acf855d823ce15f593b5 SHA512 569c992eafe25986a1328666a428b2335ecc5cb7a5ba142c34d7abb1247f6768c0bb3dce790121686d4ebf1b4a1832d65315136552163dfba5f799f99551544a +DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2 +DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa +DIST mime-0.3.17.crate 15712 BLAKE2B abb892b75b40657d356b6b53b9a45b2c822a05873453e919f2bbfeed9e5c06104f24db9cef2716f302198020870eaf96b2c62aff55cc11d8ca4f4f614d7c8e17 SHA512 e6d2ca92bb58fc747c1bb65a7f9023e5dbf4b94966003a72e4913bcaaeccdd6752725cdbd5081e0fd69d9e8f364d79664fcbe70061737d5c39e5b3e3a154a0d1 +DIST miniz_oxide-0.8.3.crate 61827 BLAKE2B ae8626de8711a8b7c2bce52d2e226a3e973ba6919ed33904883ae6287f848fcf40642afdb9ad71bba19db181fe9ea354c85cd81c1dad889588d5df8fcc99b9f2 SHA512 b79cd67a477851b18ed87c887bfd9f40f97059eb3fedbdc3a52eac66b5fcea42cae833eea39fd62becdb057b337f91d27f2087a407d02770feeaea934c0b1e1c +DIST mio-0.8.11.crate 102983 BLAKE2B 913a8e0e4843b3b19cce3eeaaff0a0024eaf1bdb4784a710e54ee95b6631edbd763e37669ec7d269e45157907663dd2eb6c9279db850fa47ef4c1eee867ea24a SHA512 9a2806ea78b0637d0cf92448abcd50bc5d09bd80da0f37752c847bc98d014baae7a5cc4d929de98be6283c76d82ccab1f1467aa6ab583a4e782d97d5592b0bb1 +DIST mio-1.0.3.crate 103703 BLAKE2B 0d2360e4ef45f37104208a31e9aa467d6db041dfeb97403a010a36e1e1427f51d97f8408948c75c0084e6c118f058267bfe87d36e7911cb37366f2b1ac6eb693 SHA512 2142edc7e9378fc3437110c85ba2cee9c9683e87034cd44275d2c389645979db53fbbc29fec304f1d8c8f0464ae17d2a5db1aa9215d696fa0282f5069700b1e2 +DIST muda-0.15.3.crate 101343 BLAKE2B 5f3e1a5bccde9f88ae34486334e2d483d8dd6c0674a5a94eefce0e481864542f5ea55b8e5539028dd07ea436e9a63cd00efc83182b56ad816981e8e4e8763b00 SHA512 39b744b48a80ea5e80100ed212a3044a1d5a900427929a65751220cb5b76c21dba6436e7b0238577751df7706aa34cb473be66e1fce5eb6313342a92dd286922 +DIST native-tls-0.2.13.crate 29133 BLAKE2B c216285644e7c09e1e208e739d292b9248245e86cca6425c8836d45445cdaf2cbf9adbf08a6354de60b646455f8769e252d91e5d77dee8c3176400e9108576d6 SHA512 f175d7d32748e8bbfdd92d5b26a552a62a6f38eb4c7e08e1aa77aaa8828978fafc6abf3cddcd2ccf866631c8c7761868d4b00cb014b9ad582a94fa7630c5f356 +DIST ndk-0.9.0.crate 84865 BLAKE2B edb91aed693550117386583ed41bc5c2521a1622f5d6f994b28193c808ace18a336327e04d92d4f36fe3e64094b9aecb85dd58c5e90ab52d6bc2f6dc743cc2d6 SHA512 d6f7962406df285e9b96d622590f79fe00be854c9f1c91806a277d3ec1f58e59666cd96663ac543290f41a361dc3632cd91a3c39fa70f0903e760d1e415feefc +DIST ndk-context-0.1.1.crate 2205 BLAKE2B 6c1013410459ee13357877654303a04c2ee674eae77911d8c35dc7ebf3df2e8632440c26273f994f90f083fe20b4923240e3b9eaa2ae90faccc7e2f0021b6e0a SHA512 3e15db351492b3f1935424a4c119d878f5d771d6ca0cb6161e4105b263178e96e41cdf1e927e5f3c81a281f55dee25929a9cee911eeb4ff307dcd31fc400398b +DIST ndk-sys-0.6.0+11769913.crate 329984 BLAKE2B a837bb5fc74dfe13f20f1923f1882257dd23b2d9eb57bf516696c391f48a2ad3a72be8062f7b957e2b25f00f729dc9f5da2b2c0942c43e7f2f3e844100281f11 SHA512 3f7a26aef2e220a5a98fa94e9770c0d865653b5c23331b8a6652819176be5d319d589050d4fb68a12ab3a4a87650aa5f30c7f50582fd097a411ab763f3359112 +DIST new_debug_unreachable-1.0.6.crate 2582 BLAKE2B 2ac3dd86f1a532832a40ccfda95654e43709a62faebb8182c87309827afdd23e6d3f250f2345f044cb789015c30b7907be63253b487d368e68c4fdbc7de20492 SHA512 73a61acbc9b20b3595925360827ba8798f3338471b291fa37c72a1c9505b3ec9f688808fcaac9a2eb494e5f3ea5331d30545d5f21f89559111bec6126ac90b48 +DIST newline-converter-0.3.0.crate 4603 BLAKE2B 9e9da284e1953deb2fd1b3f3f9a72d2bde6d5f06f488afd4c027631c5a09f92e64d929e2340419ec288310dcfbc82606ef8cf8c31fbe0c42c40bf9f8e76cc362 SHA512 0bedebf00b63bb5874807cfbbc9fb936a223bb3a04f416d41eaf801c99a318e13bc54ab626630204c5eeffa519552e77478a34435828244e1c18937b796d47a7 +DIST nodrop-0.1.14.crate 7667 BLAKE2B 83aa728540908d2d2d9f82c18282d9a9d74ea01b5b836d83cd3f03d225ddbef9fd3fd13460895d744158af74fccf13b7edcd5bb1bc127c696e613de673e25863 SHA512 f583ef6104aa087e13c66a183d451d4cf350560476ca959ce4e0e8308db26ac9f31166c25aca3d50ccd972266d7595d89767655504566a4131a54607e8ed9376 +DIST ntapi-0.4.1.crate 126552 BLAKE2B ef5291a32f5edab4b29648fcc73df30f993558e45ed862a62a4d7e85f963f195f0a74c9e61eecf928c8966799da45a23694d0c6a1ad5f7d9ab3a8bce86d6d2eb SHA512 8e32d45a508d20f0d3537e056f363270120980dc23564713306e36acbc12a6d379eb3857026fecc16ca75080431e06742e3806801d3e0a848a01f64a8dd4f2d7 +DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100 +DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956 +DIST num_enum-0.7.3.crate 18603 BLAKE2B ae7644ae0697518e538a38e33fc1658057641b719437351a5cd1d5add8ce2b03b834097a4b2ddcadb27937c266bf758894aab5e0949fe82b63150b8332aeae84 SHA512 8b8fc32da39d1c89210fda38098425f21cc384b6a38841f3b04264dbb24ba3c46344835be6e70b794c18365f86796a8af584085dab41bfa677136b8c9c9b6197 +DIST num_enum_derive-0.7.3.crate 17092 BLAKE2B 79b4e4f1def44702347a2291e7c2b3f97a902b4768031795d9fea53c624f31acce9f5ee68316d08af149681afd8374e39b596c3d63e3547445cfcd28d3b5314e SHA512 d670d60cf9a547232190d663d92a288b06953ccc5989c2fd9d4101db35be9e3e7386c42878c15bd820817aa703ba06af3a9641898f4a204fe9d7fbc32c3bd786 +DIST objc-0.2.7.crate 22036 BLAKE2B 14a41a5ed6beb100d68601af12914dfef67a9f580f80d70c4578ad9df98a6b4496bc3a1003dec762a27f0ae71afe2c9e8fd41ad715bdb310722c8fc092563599 SHA512 7178870c8e4e9154b4c7b4953b3164946b7ce72c956a02b9ba18889353c72be735824bd73e44a485e42ad5f97994820d9153ac684629342755a6a63711ab5988 +DIST objc-sys-0.3.5.crate 20560 BLAKE2B 448be3afd2fb1c4ec3059138329f325dee87a394f2d22a121292d24d55709497789eda356bc5498871660764d455320e30a0e2732c5b5e3f93a22647c8798130 SHA512 caf19594c04d666f24c791b941346d31cc6fc03adedd6d0ff393910e9489d974afccb155400b618e2d62cd13885cc85b16a3c33e4e72409e3cebb0760ae34b99 +DIST objc2-0.5.2.crate 199204 BLAKE2B 439eb3b4883f09e523cf43727eebb1008e1a444a2395fed87d55ed1b5d6bb31d4ac405076143920fb3eb1e9ade6a7b17d2431c50b77b030fe98249ce59ca67e5 SHA512 2375d4e7633ce8a14c8229e5da54694419e8516be3bc80083d0be4d80b786dd07d7e152b044fe058946a96c41346b119b7725d9a05038f12074d95c15c9d9aaa +DIST objc2-app-kit-0.2.2.crate 337435 BLAKE2B 470a0f4e1766e24db45ffe8fd1366cdcc187db1174d8a59d5971b9956ecc4f405649b65a0ffe5495e7d6c76148dddbdc17e1196719c1e2b582459756b6a10a4f SHA512 23b865fe8d27ba34c71863d73fb4f6164cc88900baa7d1419f1671fc72cf2f759fb99321abd09af7b2976ee8cba2f0711c68f9a2302827f5f61134b9006e18d2 +DIST objc2-cloud-kit-0.2.2.crate 27094 BLAKE2B b1d878e915efee7eac26c7f1d1c467a10193adb0d4c9ed911b9b75b542305a8eaec0398fb6ec61ded29713ebdd35619cf0f1bcd6cb480eeb56ac674fdb682320 SHA512 d94d1dae96d245881bae4f638789b8ae39fac90ccb3db480b0cae41e963b8ba7922b68b8faac072cc680a0fb8c95f89b0967c70258d574d3e72b47b840faa453 +DIST objc2-contacts-0.2.2.crate 17094 BLAKE2B f1f2febbb30d9eaca4795effa52ed828c00743a2729108ffdc5dfab2682348f2c6dd25029dcf5f9011ebb08db6dc1fe5e30bace6775637cdbc5039aa817ed34b SHA512 dd3eb2e2ea9303c6061074371f0c7f8e3e342f8d9b08429baca4f0501455e40ac47a6318749439d7e0a4cc92ca91dad76dcac11e8507a38c4b476fb6de450ca6 +DIST objc2-core-data-0.2.2.crate 30575 BLAKE2B ad42cc40d212a97372833e3c9d4b3d79972dfec4f527b1cff2752cc77ca845b558ca02cb550bc51f498b276e99efc7408a038028bcf20d1244f73f9dbe599764 SHA512 f63a8098d8a29752433611acce935f34bd58dbe559002ef49397a08794998e6817229aca0a230d00f08c23c86424f1cfd1eef3a8cb01d3c3cecbaacbc8fbe6e9 +DIST objc2-core-image-0.2.2.crate 20050 BLAKE2B e1cdacdc0c90bd277b281085fc5c3baa61b64da921a82157b38e2cd258cd8c8aae04d649c4a99dc8174ac9d27cb3534beb824a03c20a137b46de00146eb770e7 SHA512 65f61850be62ae0d8d01ff5ba1b948ca95672367ba32dcea4fa59288fbde38fdbd9bd49dd8bcb4aa58cfb37856c2eb16355aa4626a9fd1278177cc6a73c94fe8 +DIST objc2-core-location-0.2.2.crate 13100 BLAKE2B 90a536ef7b5e17cc21fc6bdd5968aa58b79c2b6f443691d8a583a0a0d0b89ac831a4e41db29c9c5bba719680347b9c22741684eb8cc0283a26d6b7d7baad3661 SHA512 11d5d55b04cc2d0c30f338d8610832023e51deb116639e3ffd5e19bf7a38d13aa543f3d96f6e268191e2689f29bfbd4ee7bee77d47b2f074a95adb8ea99e02c9 +DIST objc2-encode-4.1.0.crate 21004 BLAKE2B 6f3b11c96ea4941bd24f2949b8fef5c3bdd91037eb0a0d9af88a0798001e4164e252817fdad0ba7e150f1b2e0c9d4cc0fb976dc01def7ac19d308c989a92f714 SHA512 47a23fca26df26e1efa1045a9778322dc0b2cd232acc2be750a98a1ddaa7f264c39848b14a5d9821573495601dded2893a4bcbc36a0e21ae442b7c9de5c12303 +DIST objc2-foundation-0.2.2.crate 249330 BLAKE2B d0780c549cbafcfeb6e52839960b92229425991f9c6eaf54d9b5db5cf3fd4a49b2c0b982a443801009be2c43fe75d509043323e98e75235b99273e6c9c0a6482 SHA512 888fe08f4b0061c73a24eb7632a25259753ff00a30a32f40aff4526885e1490d09dcfe38ca50ad12877d0eeb5e97d65f9d9e7bad953c890c278899c4dd79b113 +DIST objc2-link-presentation-0.2.2.crate 4440 BLAKE2B 09060c0e87eda4c8bf29eae92ac7912298b89e61b36c9468b546c9135b5409ad5a18ff74d6cf37578afe316966aa18738bd52258532470f5f268132cf6989558 SHA512 ba48eb136208a018b9b5ec7a6953903982e6e6c4b32c7f6f08e9cb0e0b2a2d85c8a949702a8494b3a08aa6d385f5790b4389f94ad4a256064af5b3e95ed61970 +DIST objc2-metal-0.2.2.crate 75276 BLAKE2B 018445d05ee53871b998a7870cd9ee48bc5d85c5aa20c20203d023273ee68d0d9411bfdcc7f7f42ed03001773e11d527f7eac1546b57990451d3928f8716f2a3 SHA512 104df0fb4a68875918d45b6b86bbe378d3735a0fb83de531ef6fea9f608afb250e8bfdeb29d051d6b1f76946d7398c277552e1e58dd80d952f4f4c5b6cfa4b82 +DIST objc2-quartz-core-0.2.2.crate 21306 BLAKE2B fbbe6388d29766895e2037fc82ae4dc3ce40ef9fbef635b73b5b8931e624ee706ecf296102ab9c68cd88c0add354c884d15adc4cd479924f6f902ed407463689 SHA512 bf8b8e9dd17081162d048fefee3200c58041a31319f8e5516bec218e09e7221bdb3f8c3f9cc95e322772dc030e5f3d64be84f129e657eced4e037a00ef63275e +DIST objc2-symbols-0.2.2.crate 3626 BLAKE2B 71620c0a71c26494e004b87483e4503199ad0b23f1aacadca66619e768efdf77c063122fe09effa5fd4b318cc1d4ae8b29fe2e4ebf3db27cd3e6473be6ef3dc4 SHA512 58bd17bea53c838d5e1b7a26a15480156abcd07201b9d0d4f062c4635c138fddf42d16a61ede1a600d502d9db8ca642ea1ea7849003c50613ec31bed3edff747 +DIST objc2-ui-kit-0.2.2.crate 303111 BLAKE2B 530d6b2336f2d2822afb8fa37baa15919842d416e0ec3bcced07fac754f1094dfc902c87b9af1c2095b4a720c7b60bdc477640ee305d68bc34a0e78e516b6a6a SHA512 b75fd4b46bbf3bd15cc2dc43662930ce199dcd1903837b8fc87b671cd8aeca5df0761ff46e7f03ced37b7f79785b05a620025c2cd7abfff65b1708ac7ae5e985 +DIST objc2-uniform-type-identifiers-0.2.2.crate 6017 BLAKE2B d6603f5ca562983d82171692e97c7549a4958e2d193d4c7bbbb4b39c1eb4cba69feabd271c3fbb078dcf74935d66ddaf708fae6479ac478832a82e6434d92a03 SHA512 e1d9e324be6e5d59b0e323e896ff034f20085481953096ad5744bae33d936ec90a10bbf9e203d01237b6dddf07f279d3efd8b0f524ec0b4aad25febc94acf178 +DIST objc2-user-notifications-0.2.2.crate 9600 BLAKE2B 2ecbd3968df53f50a6d524fe61040815c92f65a966edac397d23903e793977ceae2f96e12477a44c4c91f4591fdda92d407a57daa584f6363c7d9c1aa1d4af76 SHA512 c661ee5e0f656bb6e6e0fc95ea2e939195e26446e584d47c13dc0f33b68e9fed33401e3ae30db51474a7b2bb299b16489e7903efa3e1fa60074dcb27865a54c6 +DIST objc2-web-kit-0.2.2.crate 74442 BLAKE2B bff74811002b55530c761c435eb471a44f4ca015b06522789cea24296629cf3c15fced542ef497cc4583cb19fe534e1929521ea97fcc013145ac43a5e336d299 SHA512 a4ebf60fa0ee7944e0c3c00f5273bdb07d54470253b940ea566d842bc7cca2834ab8a5eb30eca72de95e9b8b1d5a3376f2c546de2d26de5c7a6e9f6ee99c9937 +DIST object-0.36.7.crate 329938 BLAKE2B 0b02cf2f44e99002909b38125edada1a259feae59fd0e5ef52001755b6878cac710c87c60fbafdbe405281e039f68572ea3d8093d16128899090fd70df7f2fa8 SHA512 dd69172349ecf51fd2351d32cc4453760ca1d15e854a1cf5ed99112032901a54b4645b24163b946deed11f81d3e3035e1a5afd8bff20f335dbd05eceab073478 +DIST once_cell-1.20.3.crate 33456 BLAKE2B b16081751a1b6649d0235fe9cef3fd0a9023d4f6980521933e4a411282458050ca27c1a8aa01d5237d424fa279219b5713da21d8900eccc3100d19c37d24b7a2 SHA512 3ede903f232d6ced73aa74c6b2e2ec306012517eac684db253913df4656515d087d1aff9f437a58fdeecb77cedf8a5960d6772d72bf1f1f19f1ce3fe54bc72dd +DIST opaque-debug-0.3.1.crate 7066 BLAKE2B dc1dcadbb5654a5f69c59b84faeb3095f008a6eb4f63e3cff95bd4e97f803201e2f16f59a65f8ea21b662e77e3fed0d0870eb1db7f5a4f95cc02422907732951 SHA512 f325214d604e74197ddd9209a596851c5bf0c0f3299b79b6267c35e0ff6351205b628fb5086279684fbb29fd07746c91ede4f45019657e761d8400fef2b3d8bf +DIST open-5.3.2.crate 26342 BLAKE2B fbff73f0893f7499d4e3dde80ce43f7bc51db7858431c8344fbec70e640c209c9e0b6176418119ea7b4b6a8cf29ad7872910e4281dfbc41a08e19e7c76023d59 SHA512 f79debb89ef358332659a292f20296984aee9e954dd4537272006270317ebc1abfe859bc4780f61a3614eb47839d6e76a95ab3f48f5dd33a16bfab0f31ede7e0 +DIST openssl-0.10.70.crate 277545 BLAKE2B d3cfa90624c24588361d1ed6120b21f4b70c33bc90d6d6ac4fde416130c1d0775e039bacca6dfc5672a7ef5b9b44fa46801f91f37c71bd980f78648588076e74 SHA512 6d06cf1b999c1a6af6057defd1b0f3663c1c38cb4276520c29c4b06560d3c55654af093883d159a6d4527ba5c37641b89f204ab7c72c133001241a9cc2bba1b1 +DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c +DIST openssl-probe-0.1.6.crate 8128 BLAKE2B 912371bbd0e105e7281eaa1462d68c6674ae11226f72a9e5c2808be12e975e39a257b5424cafdc527fac9d2313ed928f34ecf407cddbfb179283137e0817631d SHA512 6c2f02a9d42caf578fbd2a40277ad346bef32d191f27564d04a83477d62d6ad1f44945f40234e9425503e3f701a9e0ec8735ade52641170ff57fa6732666ac69 +DIST openssl-sys-0.9.105.crate 72287 BLAKE2B fa9d80aeb44852f58df7486a11fe079c4be39c649f2d5e3f767f89bbea945785b63fb1816c21bacd20668111b2c512deef9edadf6c2d18a95c0aa003380a0505 SHA512 43dc99d22db8af0d23fc4ccd9c1384f16c18bc3b62eced4886ea33b350c341beb1ee585e50216327e17d986376a41c4a793f2abd2736cf3d7662655150b98ddf +DIST option-ext-0.2.0.crate 7345 BLAKE2B cbfc03e7c960fe3023512a4ad816d657b4f54f8ecbde9f9c4df4c5fee3b36b68ab463c67ad650778279e01c7ffaa63a0dacbd0c080c8c3d15b1611de0e71f92d SHA512 f8539f97b01af97e0b80fc96556002251befa60f8ddd19613311e62f9dc9834d71c22f5d8e7c53c4925046e38cdcf834c3c28042a4da862d6f6a21ddff8d8e56 +DIST pango-0.18.3.crate 47591 BLAKE2B 56eb8e33752289787ded747b5184dc088a948a60500663ffa56bbb3fee638745597719e266862e1990331a3356231418fa3c2a8dc6fd7194790fd904ecdb480a SHA512 eaa4d780ab208089e2c3e989d3ec3b2a2131752dfa0ed2a048394e3425007b58f668509f5b6064acb9070bcf424e9e93469070c11fe343725fe6df0c9b45c318 +DIST pango-sys-0.18.0.crate 24709 BLAKE2B f197872258fae7b554be9d62ad2c7a3484fc817430b008263a6b2d20845809ee3c450fa8c65e6845854d5885cdd80f24791a94ee7fa3cde43bf1c7c504f886a0 SHA512 b20df431e744c7b19896b31f487060e0d929c65289520f1fd4d624ff708698d4e082baa73366321206a2a7e3f4ad126ace9b3e55169ff815c9c6b25e5ec5ba3f +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 pathdiff-0.2.3.crate 7495 BLAKE2B 4fd2dc1beb3385b86603404a344d992ec8454addc580384df4004df1e83bc326283081f591b8b1d87d99a4c9f08a3a68159776c0c57a64f7299c1845961ccf73 SHA512 54938b311d4eeb49d1d7418d2ab7ffd19bd308c36419cf3ad3ae58785b971fbb2fd2d8f5907e0c47be7bf74ded98c62deeb90f509e6cb0edc6d3c1a69dce3bf7 +DIST pem-3.0.4.crate 13040 BLAKE2B 33126cd0feeeeb8b57691c50f6535c43e853b9835308d69a5afb426c7a738d260a67d5c46f091ad73e934f0347d976c6f65f88b2f7b1058eca542296191bcb9a SHA512 be743157e11ed76e5a9a60f5e58f50277910ecbf12df492b114b4211f1f1d69555702d955337ec41d368566ae1697f550e3705a195105068c617b9392c43f56d +DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44 +DIST phf-0.10.1.crate 5406 BLAKE2B 70532bb97a0089ef2a57a1bd43b4dd30f0289ffc1a15357ffd8a372d82374bd505f4e39d3bfd6bc2d3c2afca39703c89e3ed37ac41c364cee3759bf0cb609f82 SHA512 84568d6d1baa7c4e6faf5f3ee09133e736977286d7cb7630a59a53fc8ea15d0d41b9242f8929184667ce576cc9946da55d1e8bc06e98824f163c91c6aa05e073 +DIST phf-0.11.3.crate 23231 BLAKE2B 588ff9dfc05a3d2cbe223d97c36c8a596d89cd421b568a0526992a089958e4b4ae8f7d33b3f15cf935d20bffea8f60d39ef2d2e1904101f285ca9b8b8155ecb0 SHA512 20a834481bc43ac8c560b00e337294d3c14d1fe359e7f78ed08166b096305e40277f4cd3c179a740911b5c241aeb4e263afa1a50d37f383ef63da113bd6270a9 +DIST phf-0.8.0.crate 3902 BLAKE2B 3f1d4f9c23cfa2a3a0b7e4f809ff00783d71bb4839b27246d5244e5aee61a211498715ed576f00749e8132a6af1cdf50b2eb27d2f49896f006212981886a0e44 SHA512 a3013c4106ba72aa3cf22bd3f903eeacc24ac7cc47aad791bc5e9a63e1aff928a537399b6a86b0346c5eb37979ec01b404807e622e79a0a70a0e01e63c07a47f +DIST phf_codegen-0.10.0.crate 3402 BLAKE2B 2d0a3d8f5fd0f8e577f6d4a5d0cf87bd5e4c0d5690d3aa331ba252351b59c478e42212cd66f167a2a88c2b9111ae7aca2c9fff3740dcba1b77d2beedc1d44483 SHA512 dab91b53c72a5b9b6c4773b9f16d2cd58f65bdd9fb975257b8d107d4509b44f5ce8b92ab59a60171207e025688cde54ef97c9973c4226a8765f10f35c4f6f1b1 +DIST phf_codegen-0.8.0.crate 3192 BLAKE2B 65c733fb896fa034c97482d122a2ed4c39d763cbb65ee48a229cdb320910aefeef125674bb1305a4a12f5fccefd71f859e33cb26c3e6be09ed8f776f9ff9b463 SHA512 6649779b50683b1b83c89da921ee52963fd517660540148e9ba4b59f9639c705e08400c4da972880ed161564816c7ad45704d6bd51d1429717137de8f46cb941 +DIST phf_generator-0.10.0.crate 7525 BLAKE2B 1219f37d5699896f9dcdd367cfcbeb4ba19d3498c2e52acd02975b236ec3802f6ee57eaca40393a9742b5397809ef548923410768a727108c83139fc70562a43 SHA512 b6542d816b2e963c169df695d332f92237ba380f49bf919021514a16aef71de8f4f70b9612356db9f345f3f0d3656b2b39a4f34f8ffa8515510b81f1b19cb9f7 +DIST phf_generator-0.11.3.crate 15431 BLAKE2B 0c8fa88e391141d36d6f128fdc3708a87e34ebd56e201ad56d62de8c05e9bff62258dd7f3a03b432ddcbd83c4f61fb9a57d93574a9f9a68e931720733ecfe1c6 SHA512 52998e20648b6ecd1eaafa407f7da4667fa829d48fe0c9f8f718377cc86a232a6261fc2f831ffc7051b62dbdb880654b1207ac314e57b23d2b70f634d07c2115 +DIST phf_generator-0.8.0.crate 7604 BLAKE2B 936c9ad95d2d5b6b4bc97dac9bcf99813462950f6280d9cbb8c8ae9253d3197f25b8173c202cdd51c4a2d3f422ca1d6f5c9055e7a87e45b2dc5fbe5aa6aa45ce SHA512 de045f47567defd43fe32fc62191a9a892e5a478e1a84b853cff3005e94967ded68e5770eacb43f2e97e58b8f4283327a38a3bdbd55e1d5c708dab601ea66270 +DIST phf_macros-0.11.3.crate 18436 BLAKE2B f52beba12088a40eb532da1dabab5d633c1c90fe143ea0367afd7ad8263c42336fa81974fb122ae0d30eb45f13a257c7fef85f03b0aee8de45d3cf3b9e903d30 SHA512 331d3392dfd3e48eab0e65c3daca469c3abaf902989ed912e394175876f36c14d06fd1ba4ed03e01234608faf1189743e6dcde75eccdf2f4fe0dc8ffb15e720f +DIST phf_macros-0.8.0.crate 5814 BLAKE2B 39f40a52c177da227b3bf54d0fe4f05a2d6c382183ab0400d74a06d34fb3f28a23342496f6e0d48d25a792bb848bd9ed740a10d37c39969ad79c929fdc98d743 SHA512 ba56661aa92393fad7712f774fe4f0b7bf25d483aa7d4c4617409e655e9448b39780a904b8865293e16f8e63d62440aa0d653fe231beda4f58194de455598170 +DIST phf_shared-0.10.0.crate 4095 BLAKE2B 9155a2c145148f3c36ba6d6d8be86a526480b127f4af79b2b5855cb014a0080bec1ec45be466513bd57faa39c77cfde0d6ca02b6bb77d37a23d697603227da37 SHA512 f088a6836a28afca7a2ef5440d7aa953227785d52aa0b9fcb76c88d085fe7f0e68732f2354c9f8dfc0a90ab1b8ac214f28549780e6f32d857ff7e8963093d9e5 +DIST phf_shared-0.11.3.crate 15199 BLAKE2B 82441a3f6db12e9021552b51ef4ad8b564532833dce782938d7d721e9f2d8b7015eee7483724552b8fcfeeed365259cdfd5044e9d2a999f42baf476df8141db4 SHA512 34bc3c0dff5568f0276777614d92d87882ca6be9e3d405c1e7de90ac16ec52a12acc30ea9ab2033074d0e988fa514247f37de1a21a3727de0ef43f42f477e27e +DIST phf_shared-0.8.0.crate 2860 BLAKE2B db48d88ad6e7aa6bdb2f6750ab66063a55d005b4f5e92ededb59da1f1fa9b1296d30f87d32d036f08e3a74111ea4d8287e8eb6c86d0edd76b3ceb38f223696db SHA512 6ad7ac732b7cc42e7e179329fbfee7074d26652d73eb4f2b97224491d978ad9b14c66e5a539c96b84c70124ac44cfc009bf963a42c438d028bd9737b99f463f3 +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.31.crate 20880 BLAKE2B ab7676e810751f89639b60ae70bdebe1d57edc76319f83077c3680049a701a26e72e8cc485fe77cdc4346fe3571d32c59e7384c8c86fef17e00d7d81df5daf43 SHA512 ac3e8062ee8831a4e4fc717b5247dc7f113da7bf6d64ec95cbca7875959a2afa1497bf81d9dfc27206b5fb10027a2509d51dd9ca1c10139d7b4c78128864fdf4 +DIST plist-1.7.0.crate 101068 BLAKE2B d94c0c9abe1b39d747259fa56decdbbd4679b606f7753ad11dafa43aaf8e8673903c70e5e6c994a6bbc404993bd77b70b119ffc998fa1b05049c5c9768d75983 SHA512 68298950e1e0a3d5228348dfce7f0796a72f75f43f0e6b93647d460eaecb826b2a3fa1f4023bdb84a1544a4ccfc7abfb39f9aa7550d9b2199878064e1a76b69b +DIST png-0.17.16.crate 117975 BLAKE2B fce8a5b8e28fe800796161bacfc008e86076b920100beebbb7bc9f0608f13917cf6c12de363c84e1eea1eeb90d095211a46ac2926e410133ef33c3d4ab0c79fa SHA512 fd9130d8d91fe40724f4065748bf1a6175de0b7e8df521939f169000933dadd0815bed0f95c00d12bf5ad341469983ea97be427392a85b82c232473ea753b6ba +DIST poly1305-0.8.0.crate 32633 BLAKE2B 80dd7526a31112de4ebb9ec800456c1118b588e7aaeb879ef4b1b93bc34ec9f9f8a1451259ff5da7a1c97a5d94ecf6be648e86aedd7e55ea501a94f314aa863f SHA512 0081afdfb9ae16b24ca9cd78c17d72b2bde865dd58f8e66008934cd2e4b49dc96b57a612b9c53e466f3f896d10ba9f61956ddc225cee7f128fd9f84a27ea6966 +DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029 +DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1 +DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19bc9b8c844156c831d2b550692c7e2e36bce44ecf18dd9f2d0f0511346eaf0d2a0ebe792fc288ca0e94a93933f2051846 SHA512 a118a98286a47e2f0cf35d2678d0325c18b9b7d5bdf40ceadc16483b282307fd1498434d5bdfa25477a4f420d97c34d786e42e9fa70431b788b4b8fde9718e05 +DIST proc-macro-crate-1.3.1.crate 9678 BLAKE2B ed617a1930bf28a26e865f6477229566a0c4ade7f2c1e8f70d628c5536985f03c7533c561490415e207c0f58b4885367e7f54ddcf10b058711829f78a34d68a9 SHA512 5306f017933ffa89eb6111ee00b0536179c5cfab56529440630a0bec86b62194ff16f57ebb471b233e88cd886b7b9871de8402ed29073b23e5ca98193e513659 +DIST proc-macro-crate-2.0.0.crate 10922 BLAKE2B 37071c10c6f6d2500deabc6bacf034d48733f761a8d2639a891b41a1999ac12dc9ea25a7e6c04a7c6e27d0b89139e6241de95ac90c4f97e8e20f49a6bcf3086e SHA512 f733f9fea1f52343fcf7c3b5168abaf88b68b1cddd20a05bc7f370ba57048f918be1550081642c2ab3a023b95d9eadeb29c31a55aaf8be23a27b06ff90056363 +DIST proc-macro-crate-3.2.0.crate 11164 BLAKE2B dba3e1f4e38f427df72794ad891746fbb8c24239cf06b076e75ab6795a7e8c9abf25ae0f40379e07a696827156e7a3780ae242da7e5442cf1224d058f54b83a6 SHA512 41479ec5e414a8b05dffaa0ece21122387d5165a54e60d8ee3502f8a3c0a2ac0247f56996f933d5d77f1efe41a56bffe16874e8c6a34b66100cf047e4b760863 +DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db +DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495 +DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43 +DIST proc-macro2-1.0.93.crate 52388 BLAKE2B dae4493215b88f68cc485bc0ae80f0a48ebad68e0260839b1c367832d1ab778197bf040647b3fe36cfe9d5f7a496e05cd71b5914f531eb129c2d458d5f0be896 SHA512 1ae650e390e4f1b18d05f42d2ffcd025cabf72568a326cd85496c722600108b0aa0ab0161b39fcc931b8b302427f678650e703f4db57aa1a60f1751db881dc6c +DIST quick-xml-0.32.0.crate 184149 BLAKE2B 35a28dda8dab04a933c4e5d40f22dec6f9c5bc75e9319bf2711daad869301a90aceea9aeccdce5763d5fb513548b7c1f030b6216ca1454e8f56bd6e5a5fb6ba7 SHA512 288232de1583d8c7387716900be1fc513b2161123182e4812bde9851f4bd31c1a67417afdc16e8a55c028747d0a1147d2dbae6f0e8885e946829a379563507d2 +DIST quinn-0.11.6.crate 78222 BLAKE2B 75a5531450e8990a610967b40d31ef5409a4b9b99d965b3b31c35276a788731473ebbb26fa465aab621923cf52236a0560df8abb87a02d0e911021509cf1a1b5 SHA512 f8d4359df3698442181843a5c49d688502046d60394d0954cd5a6336aa16ae9960f8906c152ccd966f5ff24225a6c4851f1f0b3153528bbb3d58e2b549096ca9 +DIST quinn-proto-0.11.9.crate 209286 BLAKE2B 4d512dc74943dbd19fe406a7dcb40288b78aed8086b81a49daf12da808eed35ce0546842b840aa460afac9a8187e47da0628cc2d4cfe8ba6eb1ddfd2c0c528aa SHA512 a0e37817d91ca1dcd780d2ca1c01b30d59716ad94dfc313f9232dff708cd8f64c7dd3da91026c8fc1fa9e81d918ffc354092ab1b8841d521eda5ab93153c2616 +DIST quinn-udp-0.5.9.crate 25342 BLAKE2B ca285db2f61734b08f105955a22fa3aab5276371675bf111f35239a4c5461aa8e26617d0ce83c50c11e65e98c67f290a0124b3523852670a1fe727aa0432c937 SHA512 13d9abb6162933a8318d1acb3e90c7c7d936952f9795ac02d751f8964bee05dcb0a98890dcdfe1fa3160061049f14b385c125ae56b829a43aafea150be90257d +DIST quote-1.0.38.crate 31252 BLAKE2B a3836efbe5c21dec70c684002b47b8fc7cef643c82ee903b537a48bc0707a28106c4b33d98e60ff81e04c7520f7404b1dc4d49446e8d91dded517e476c36e1c2 SHA512 530c47c5e6372b508bf5b2b88a138408a7afa5ef52c47280ed20eccf39f8e97dfc1e0a18c1bd5472efcdc49a7a1e69566333a0a1b4c0b4f0e11e6a7a85bfe8af +DIST rand-0.7.3.crate 112246 BLAKE2B ecc7c1bd70ac874c03bd8b7faa3016bb2d5ee5c19603280a12a45a81598f706e445971ee081e6ca410ab6f0f5f7a06d9315848cd556a2d8522a82024f6ff91e4 SHA512 f9b68ef9446f1ca2c8092c50990f15c1b4cb5529eeeac4df8d69755e0b7253c663c587775e7cb0a7298c31edb444975dda34926759306541f6d43d0d3cf57b7e +DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2 +DIST rand_chacha-0.2.2.crate 13267 BLAKE2B 7908867ceac98243ade22e1b38f1903fe0249324484d91c948a5058a1e099e5213f325c5ba3400898c8319158ed69f4ed064164f235470856a8191bd990d5a10 SHA512 1e2117442e4ffdd834dcbf0ea1829e73202c0ff9041d5969d81a59330242145f2753f2a56de2fdbff65f26cf0d227c7d08b2094ab2f946b764aef88106a6ac84 +DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075 +DIST rand_core-0.5.1.crate 21116 BLAKE2B e74791f941a79971f2741172d489d546373c9abcb0dfbffcb7b97b858ec800b2e0c97df4ac636f3aa1b8dd6c14685edf317336d577f31b5c6cb7d89a157e547a SHA512 4f7500b35e165e6c817fdd67a50745d5497d24e554bb554705097e37258751e8755c4d6b8a69fcb5e1977708ba78620bc35d640e4e018fcd4e88d9dbdbebdcbf +DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79 +DIST rand_hc-0.2.0.crate 11670 BLAKE2B 55fd048f2524cecd4f0e17927a81111e3070a8cc6a5b0234a46445400ad5527194edf8c91fb5ad6538f4958d53044ab02424f61a38adb2931e2cb7568c458ee8 SHA512 bca185612bed5cee4da76fb68fe854105da276f5bf2da464e596d586b925df798cc692ed881e276ab77c36b4b0551930966c93656be122ad05899d87853533b0 +DIST rand_pcg-0.2.1.crate 11291 BLAKE2B f8837f3f3dcd7ecfc90f88bb6464b9f79f7c1975ecc68289fd10a5c97323de9c1106de9847fc798f50d96044e46cca9d41f1635130be40bc789492bfaf999de9 SHA512 612c0d1cdc591f80733bf8097e251f02ef7a7e71cafb74e37b63ac68043558045c0c96196200ad07ce7aa9f2d373640c20e598ae5774935c8b52350ec20958ba +DIST raw-window-handle-0.6.2.crate 20234 BLAKE2B 9bc9b1188cd3ee8d799d45908de10f98a4069850e7855c1f7db86ffdcf49661f8ff1294da2f542fe9c09a3e8551bb34e2702f6a88f85306bcf8a36e03bfb738c SHA512 41020ee56615607aa0cd75a3f09348f3255abbf8705d68f001b3f2d7ecdc6c4f5ee060e97c4a2ca08607892e49d2ef009ea4f3b4f3c6256e593c6b66f52ffb1b +DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3 +DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e +DIST redact-engine-0.1.2.crate 15454 BLAKE2B 2c470b47070eb3fe006e2f2f634fd08e8957de3d6929ac4a1676e393b5f1199aba879ed99b69e07ba9d5e0cf604f211f47b44fcd463b1f0b3895871ea6d00a33 SHA512 af14b5064820859ff1d30df25c1f4313ae45a2eac9b171de2b262ede731d79ee23e3a8ec9d20656bcee4cf825ccaf68be8694f3938d7d56e8cfcb3fe05ca6d19 +DIST redox_syscall-0.5.8.crate 26319 BLAKE2B bd69a69e2a0f3d84843a8f76199ef6b3991698ebac58b23f69c26d02f5f3e24e77a9d5e8259e9fbff3887f06d15ced94ff23b5a3272ab475918e6e3e753dcde6 SHA512 5f9632f1f89f4963c36ede4da9b955c3474b673c3414d81cdbb61f46c08eff67167f703a0b06b239beeb2d720f8fa592a5493c0f7e872728b5b95f561ff11348 +DIST redox_users-0.4.6.crate 15585 BLAKE2B 1d60d0b7781395ff271d79264910d24fb021cd8ef612714265abae25b26ac158d48f542f1e73701bf5b99bd67546a7b878e4a14e40cdbd478b35bcc8b4778f5f SHA512 719d63fec42bad3cbed39deb9242ce1daf3f391bccafa8121f63198120371f112d78b0da8d66458519e946581511004983f04b0a697071f22294ac7c831120c9 +DIST redox_users-0.5.0.crate 15586 BLAKE2B d38045f8b10c2c62eeca1207110e6a194366d17964a641eb4e2898378b9ebb127a5a89f379caf3b4d530f247eb5440844e31056d47a125fe0e6aff25d98d17c5 SHA512 11f255963cede17382071354568315e6aaaec5afe5ae09986fc71e273f6a44ae8eef2f6169e3a5b635bfed7729775d485a4edf655ae8c1297aa73bc156d78554 +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-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8 +DIST reqwest-0.12.12.crate 193321 BLAKE2B d024aac31fdc9f67db81ea0c8f6ac328cdb176220634373931598d5fa9270819ef5775dfd9c2a8da99454e04198390327cdfb02e904f9f54eea5e188f7fda05e SHA512 c94ba8449d5a1d709e9676537ffab187b5f844fec44c80118e7fe467282305660f195995ade0bd1a49529ab9a8284f82a52094b43ea4be87e4517014be6ae349 +DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358 +DIST roxmltree-0.20.0.crate 54594 BLAKE2B 9605ca407af248c71e0d2bc24d213aa6ff08a14eb548b85de16de7e172a617cdf12c2e4c686f6dd1c80455448a313f6e7d760885f189ae726934efbe06fb5603 SHA512 f8a934d3809e417c43bca53478cef0a7a18d908620175c84cfa2cdb8c85775b52cc641fb7eb12c80c483e0c17eb500dd3358ace858aceaa810d3ddbdef902d91 +DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8 +DIST rustc-hash-2.1.1.crate 14154 BLAKE2B 7a1b3b82bbbf6a123512815c3e8f068a17890cbbb8b68e88a5a492f62469942fadd776207eebd913052a1c06e1fd37a549e86526b9fc8f08b9ca7cb0044ac16b SHA512 87097d98d47f327d000041ab13acddc366f1500d9c3e5c82169c3358112c7a7c03701c9b3c2c81d9f9da65b7ebac1c479b179dfaf7c059cd0b929b4673e51084 +DIST rustc_version-0.4.1.crate 12245 BLAKE2B 0ed627c560d88e5ade830cc5f72c62f6ba88be3e30d0f8db34761fcd0b284e5b2fc063c240149aabdfb12c8410ecdbe50cb10a3544500b5a020f95a31cd6709c SHA512 7aa8a487ca7411b6d23cae62f7568fa3474a7b1fd1589621071be3428a550ed3b7c4ad68277a8f86849e5900397d7d0e9d678f5d423742a045dc7c660fa6c598 +DIST rustix-0.38.44.crate 379347 BLAKE2B 780efaa7c9e7fb78782c552345ead692e4dc87a6e68fe9c972097ed4ef9066b54633c565d4f1b4752e08a1ceceef15ed5d8c11286c7cf17d971648ac5f9d399f SHA512 b7e66a27c9188eff307aa9912852706f686864852a97af0696ac5fc5dccdf2e4d22a69266fa74ac71aa123e2831f24b898b7ee9121850d65cfb56e12bd647d8f +DIST rustls-0.23.22.crate 341983 BLAKE2B e52cb0ddb9fcf635a778887f67bc5692bf9a18408ebe9c07c05883246b2e98f87f8abfa029ffab1656025cc0d30919955a747df8d91fc2f57193546ea7008d8a SHA512 0eb7ba40c0752e8b9b5ccfaa74d3c6575b3c8ab095b0e661bbb1b43cff334528c35bea5068bad2c154edb342425f6791c2651104ef4b0bc718121772b44d9090 +DIST rustls-pemfile-2.2.0.crate 25849 BLAKE2B dfb94a77fe9d86b17b0c6badc6b715f247e9aaf0b312bc9698dbe8d38fff281428ceaec2ec73bef8009667dd93536dda2bc7e7c49d194b36244dca38dd86d577 SHA512 1e69f0b72c6060eb0a54ec8a1cb51809525b053771a1d417892205f8f5dbcf4ba45250fc0d6a836e0cc8fede06d934f0a90c47d475cd8e066dcb3f7504ddaf17 +DIST rustls-pki-types-1.11.0.crate 63933 BLAKE2B 487099180f45163b87614a8ba7088f189547191ef628011911f76ae6f6aa615b16e969682e26f26ce47f52463def702395f2a5dcf6a1742a87fb7c6d559a2e59 SHA512 60a6d20b66b15f077cbded6abcbfbc8524a02229209a3a73ed676a218ecffa26e375ab086247c05aec826ad63bcd9d446748a061191fe2ba5d9f35ec05b698fb +DIST rustls-webpki-0.102.8.crate 204327 BLAKE2B 8db832f181b46bdecc419e1433dd5550bc181cbffa1961aa90b2533f92696ebe15d71d742225bf806e2dc3a4ebb110d48bf62b0677089df1eede6d5a072c0a28 SHA512 8cdd5d07bb8d6c3f0d1d6663babc3b7ccbe8c9b1463870a3dd095c67f46addf4097a715da796c70f1891ebc1d045ae7d7c3a352400e8bfd6687e6cddfd33b1ba +DIST rustversion-1.0.19.crate 20616 BLAKE2B 025944fe053ef928f26affb890ef6a563b0e63cf6acc0ce7bd4ff104541f819bbda48ebb59fd8a677e44ca1ea21f4a18c209adf2004c9ad79604dfbeca43b5fb SHA512 45b959aea8155ee47c51aa1d87c6c344b5f4b20199a2646ca30bdabe1c2458b014be91fe0c48c29c2261ad9e5de6df7eef7ddead1682e584d4a906c17984baab +DIST ryu-1.0.19.crate 48770 BLAKE2B 588ca156238ff7285edc90d62c41991f6ec6b732656ef874c4bd5723350d2db19eeae844fa8998123a26b34a7feba0ad897731d73cb4daa88a24a3587b860dbd SHA512 b80d07d609237e13ce1f8cbef5b16738308c540800c7ec18387aec876fb2204029754f20f1f273a0ea07f54dfbaa4595fd0a90044d09f124c1c99e46f1005a99 +DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c +DIST schannel-0.1.27.crate 42772 BLAKE2B 55b3cdf596d6d490fdbc10298eed7cb1b1bb8d6349ac8700ac2e7db66e1d75f0a5bea5b1b322bf30cc0f982262e96aa421998151a8ee1e620b5a09d25ad4263f SHA512 f469d03c2be014c248e7b6408f541584f250a9d58bc8dd8ff4d1e63f5720cadba1c0579b1e5d97b58844fadaeff10e9cfae6d5cd33c5de0fa4ebe699a8ead4a8 +DIST schemars-0.8.21.crate 58475 BLAKE2B dc3e96140728a9aa2a4ec5a4a46e12f016635d818dbd78865dc0281b6f0fc05174fe7dc0ddf085f0ed5fe26d4a4e6b1bfecd6909236cfcd83c9471b876d2d01a SHA512 23a794ec52d83ce045c8b2d633913b3b29e4cfc9d0a29f76aca8cd5b31a9c707ffc04c94390ab719b3c8109f37c11a00dae73ec1719087dfe7b3c4007beb066d +DIST schemars_derive-0.8.21.crate 18703 BLAKE2B 62cca4add2d8282e0461d52026a3d7b58cf6a8b34819179336648300b8618056c6a1eba49b6bbac098a101d73ddf577bf9e6e8afab225ba67cf519126c6f9d06 SHA512 2e24af9e86aa1c04921608a7ff8a62ac1c3e7971591db9c8488b6e701f289fe56931ad208bd73f2542fc1d95863fdda2cef9561585b7e760eb99e187661ee102 +DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb +DIST security-framework-2.11.1.crate 80188 BLAKE2B 844d36d2b2216cc7055687110d54ea783a7ed9bfe6375fd4dcbea267ec85531e666fe002648110315f42c3364ff5ff5aeba711cf8d1f5358ba65c8393e96f55c SHA512 02786d62fd9dded80bae3942896bc8fea2a90763427f582bf5d9f127ca5682097b59b5dbff2cde373198ba659316ab5906a68d3141ba00c7408b73ebe353fac1 +DIST security-framework-sys-2.14.0.crate 20537 BLAKE2B 50a04eda370788fb769600b0df2f984155d9ff67c753a8b138568c648fc23f90f076092c9a8f984aa3b6590c547171e53b968ecc4f80f6b7edb8cbbf23bce31c SHA512 a6b5a391450ad91118aff3b9d8420e1099fc9f96926043f5c4061a1fd615a00bb1f86f5a06b9a549f45b27a43b5f9ceb5a015d8589d7df258a77dd4b4dfdd7e4 +DIST selectors-0.22.0.crate 44199 BLAKE2B f749e0e53476b695b4937bc0cbf1add4f3f7d4c64f59f71cd0095d87a20bb13c69b6a5271ff7951f9a67934ced5ca0d3fda684c99727ab90b637c0af170e012e SHA512 af2f4ba87c7a52291bc7f5276c4ebcc7689724d95972ac8d162e0f4007a6f0a47ee1aa6095b3b80441924f990b2d147bc4e3e65a7dec164d95742977ca792b04 +DIST semver-1.0.25.crate 31291 BLAKE2B 725a2e1710936fcd759f4eba3f6dcce71dede5027591d06f731e05d162e41c3f4491415cabc9c46c6da18e668dbffd9ff67d1c2559b429459813310b3d2cb293 SHA512 82b66a040a155ea2714a7b014840d55bb4c01fd4862b58519e5adaa5651343048e1f1b86213470cfe919290664de46ee548680bad93e9969fc44ed227c545374 +DIST serde-1.0.217.crate 79019 BLAKE2B a0aacff795d34583365ddd469fa14c58a6cccf8afbb248210aaff3134c7ce6e34b3d03f437326d7c01b3e78f82a5d19c37ed9fa4372970d8b2793f2889288e1c SHA512 f97b3b54b9e99c9a027390405cc054c3072f49c92803a4ed5f5f69e76a179deda9d77993b645b3581437085912d881da88d0451b9e0da423c64033a23fdd8054 +DIST serde-untagged-0.1.6.crate 15741 BLAKE2B 34aaa48e9c5e7d0340275affa4e5bfe333002242f5e2369e9141e7498b3828c3da6dcc38d805b7c21bf395467ce0625b29d4065e76886e08a2ddd4515d378414 SHA512 d1659bc19c1b1fc9febc7948c82379bc10560dabcf92d6bbb9c890b4706eddd78f4dab5d7a0cd1f5efd06ce6c58a77175157ad3c258e332505666221f807e065 +DIST serde_derive-1.0.217.crate 57749 BLAKE2B 63b4930122d80d64492ba2718630513012202e42bbaa74510729ee66a0e72b8a1ad123784b479697ba562db43868f4bddfdf5e94bb3d744cd68a547471ba40aa SHA512 31020f4533d04b31ae125580a3c5093fad36438d324e2d9b063923aa8c125c654102ae7fbc3b3df892bb41db6b321962a23e0a37950e080055d715d15b18af76 +DIST serde_derive_internals-0.29.1.crate 26189 BLAKE2B 09d2fd10c73ab114efe244749678c166afcc3e6217f2a4c08c01a44e546471c5f7cbb7e79ef908fb306975852fe1ae32b7988e04df3741ca82db1e3a3d6979f8 SHA512 ee7c8a35094b8ee1d8958f4aa177e5c536c6c7706d446e875f1ae1b5249738ecee053a0239e1508114b747797fcd080ee33ed88929ff1f4903988f64f038b771 +DIST serde_json-1.0.138.crate 154769 BLAKE2B 42f146a688dda70f3afad1a6ff989823f2e2cf4037c2a4d019b87155c7e37d86f649f2a54b373b787ac9021e42ac3be5fc27ea975b62e08865802afb993196bc SHA512 31678f1289301d65a088b305726c4fa6b5cd17b01527abc8dd7fc09720c98b2e86bebd5b20d7e9e7b7e41c42829db3a7e705172eca20d0c333e6c09131e1fe09 +DIST serde_path_to_error-0.1.16.crate 16657 BLAKE2B c9064b28677201ead32eaa91f20444251b75e7fc7f512075cd53079fcad54006f531ab4fada27ad7414f57a385441de65def5702d592143916d0106fa8e70182 SHA512 d937e2ef7eb6f58e741f0b1805431fd8cfc583d558fd5b58aa04aefcfc61694503afeca33ad62f6a09b4039555e3199c18d5912b7d5d928120ff631949cfc30e +DIST serde_regex-1.1.0.crate 9710 BLAKE2B 0b3584da26eead014c360e963a1d6aa880674a3c9f8efe971cb12da1e2786ccc37a6a50c8c0b1e4bfe9f8074c1845133de8a0f17b3989b54a075f35fa2fc5268 SHA512 7e366be1997859cde665ee536f4c67d6d29e65e1ad3aaa438dd5d5b764263dbe8b0981d7b76bfa2e90961aa6b94dea6a9140e404069ffaf862da056dde57b612 +DIST serde_repr-0.1.19.crate 9997 BLAKE2B 1bfc8e94b8c3cf897813f4749d6a1112c1097c2c257821eb366073a41ac46084a21bdc0ee4e3b99d82444619a894472e24fccb60cbd8a41ab7d5b0469cad7c41 SHA512 678216a62702b3300fef850f10ee60d88f31de1fbeb7300e3fbbdc4e4a9cbc95c6890c8e7b9385223ec837d9504edd53e69b620f80609e54579c0994ed1ab0a1 +DIST serde_spanned-0.6.8.crate 9330 BLAKE2B 630bb2cabd74e8d9736e315ac57c4d2c5c4f72264aab35ecc8e0040cb4186885722051a9f7b8a9006fd121fe58428cbb151e5cf541e7de30b6528c84e968f7ac SHA512 2343a2fda35ff57ed8ff7d8eeadd651821fce7e22f91c2d5797c6af7db9e009b7d637382f6f390c17911912865a5aea1ce87a86fbe36f4b6aeccb065a4c8942d +DIST serde_urlencoded-0.7.1.crate 12822 BLAKE2B 38c74ea862f041828467dfa586bad9b8e1d1d64a9f82fb7f98727e3965377d00e59f2dbf20955a9dce976b6911c0a619d2a6e4cc9dfc73cf0f6c449d873fd072 SHA512 b209ad01b6565e95c1d5b431a3f4f8a0df3d11c2a06a44123048bfa4b34ebb6807eec593f0c1c89de3a06ac3786a14747df9c70b4f4d5e4b72b4feb53084eb60 +DIST serde_with-3.12.0.crate 148666 BLAKE2B 244377aa9de46c77d12f0348a2656848ab44bda4bbac2f14a607ccfb532cbc33597e0b3336b9fff5242e8b907f59cbe093eac7e1aa9cc82e320bce011f5d177a SHA512 243b4aacf9f0aa9c3915274650c2b70ebb389ef0b1e607afba35f0144199073b573703f8b66bcaa875aeb434301ec2ad209c3d54160f6fe25dc2e4a9fe48a53d +DIST serde_with_macros-3.12.0.crate 32089 BLAKE2B 667db574c1a7850917a6738ba55447285085e87826b04da22b6be92ecf32ade3f0e99f63c738262f822820674b09be742778223f28507daf75324f4c62195e98 SHA512 feb186b9c51325a19643217ca2bfafc6f7e5433e2e059683ac2f271d11641a7feab728c5e7e37a99310ef259faf862b6a42ec41e77ff9b3349cb04333e008907 +DIST serialize-to-javascript-0.1.1.crate 9894 BLAKE2B d5514c51520902ceef4b60a7135b9e3f862416373ed7e840447852e5c8c598b3f8773ea8ab917fa8b8a58de42ced6d490afa0781ac469bc335291c3ed98a365e SHA512 09c95d8f9034c2e8b8f26132df427382950910d5dc815db50df34969cd1d7d06a44c1cb3e55376af1c2222790fd11787186cd7179ec5c0479dcec4a11a34fa53 +DIST serialize-to-javascript-impl-0.1.1.crate 6750 BLAKE2B c48d6779b97e7430c7daafa70f2948ce9b90547272f239bba7b49ce39af28ee82d03c4a4b7eaea192e082486dbd9b6f8383284960fe53e8aaa1d60c3cfc1672c SHA512 f27e60e0332dc2cf213c3b84ecfb7073c029dafb1bf5adc96f6a64faf57aa6bf795c888c0484dc7cff97054bb1505ae8b34982cabfe9b5f47039943186a28a9f +DIST servo_arc-0.1.1.crate 9817 BLAKE2B 88586ca0c969df8bfb3a04ba4a689606995876434877a2cd48a72b26451deb6fdcf65273aa9b03948adcbc66b2450301840910e5c4162b993535d69585c62128 SHA512 59d531dcf7a9191b8462ce395e713194994714b65275c0af412186f862be169d0c6fc5d86603332a1aacd8af9ace934dc78531b9cb576cf8179ec35709225447 +DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f +DIST sha2-0.10.8.crate 26357 BLAKE2B 1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a SHA512 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785 +DIST sha256-1.5.0.crate 9361 BLAKE2B 16ed0e3de34fb18ffac001b8e929b03f83213b3a86290559bd90fd69c196258a74db5412c61d11875e49ad16b83a34d3ba620098d40745168ce6d6754108882a SHA512 11650dcd9fbe51019dc36f151636b6afe28b93211a4e1ba1339c14f558688912b3304b5ac893bea81545a0d6cdc4fb7ccfb40428d536e1fbcf80dd34aded253d +DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a +DIST signal-hook-0.3.17.crate 50296 BLAKE2B 5469a11485362b4a76f99c06071c69f6cc083bf4cceea93fce0b43385163ac3621b7a3c98d18ea1fb9e1439460ea37f470a29bfde9dea199e60a12b248be5d25 SHA512 045ac6268e504c5561d3884610a48c930dfd936086f793839f42602e92e4a8cef289955776e8eba8a5ca1a91b5f27ccb3724f49b32091f8f06c8bde984d82298 +DIST signal-hook-mio-0.2.4.crate 9314 BLAKE2B 018d406ae25802cb376c1f02241ae8e7018f2f7837127a9db40fd17df1cb3e13299c2c372257b0e82aeac1a77b75c732c7344e50e969180e696bf3f8e4836f62 SHA512 1ce372f4550c046f1420b8f4a29cc4c8e904c08fd089cf973f26aa25b39cc6199db56d2ee3bb34684732b79237648e904389eebbc32b5e108f7d6a2d22b1cf3f +DIST signal-hook-registry-1.4.2.crate 18064 BLAKE2B 7274d4c115678eae2640a709bf9d682ce867c1f6295a0c5f49e492f95dd1c457f20b56207a74221df1fd9d744b24c6260e28f705777e3c7d47b7bdd36f1d57fb SHA512 16362d232b1d301007c069198d7716848aa73d898ef92e050422b36c09001b4334390dc95a6650e5315377fd8960d4336e5ae869b0a305e8525e977b8327c508 +DIST simd-adler32-0.3.7.crate 12086 BLAKE2B 8e0ae18603b344fd8a6573cc3fe1f8594ad542619a6e0d6e8f62e356a3a97409f4de3a215d561b8ed0e063ab431d81b63967a5a0b6561c45537a27ee84eaa362 SHA512 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac +DIST siphasher-0.3.11.crate 10442 BLAKE2B 771221614bbd56f609b9743da4352dc7a2cbd0f6257952fab0cd052e5e5b258a4c95a0461d6d1b579dec90b72d66a0e58e036899b3db8341ae753a421a4cd4d5 SHA512 601121bd41da896142dc6ccc74a6eec3ebee3e976857ab8b5d21e915fdc8bc6e979af66a489c406371fbbbfc7a13338cc4b3744aa981206e43c53998f3e1699b +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.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679 +DIST socket2-0.5.8.crate 56309 BLAKE2B 309e5a0e46d0b9debbbd6049a138e56b82df4fc0e9d1115745ed935eb40c81b004ad748844f641934e13b5b88773db5cc4a57fc9e61dc82b5322fa0232110864 SHA512 b7d03608a3d4cf3e2d1539b5a375412effcc96279e8f57668fa8cf67b3f0a3a6b611ea5e2e72f282460582954acbb5364320611f7798a11ec9e4833e53830b60 +DIST softbuffer-0.4.6.crate 61049 BLAKE2B 8e2631e079597f94959ec1291343dd8775217aeedcffcd4d8d8ea5cc5dbe929363bce9a51ddb4370c24aae257061f092de7fdbc13f0eb3b9781ee66aa6e7f4f5 SHA512 7dea75a83da1bd37f42f3ab4805b28867e3e53f1d4b37e37c3366cecc8d216b1661176daa2b2cce03b3c8535d59f5bb0dc363ece6ce476e25adac37fe5209b32 +DIST soup3-0.5.0.crate 44040 BLAKE2B f3753714d3faec8e15cfabc6bbb76e274ef03d6336626f268749ed747fbfe04fc32b625405f6024c9b09115828b94fe5531883a98d07e96b91444e1fd7ddf3ea SHA512 132a45158fd08d99f52b3191db0bdaca73c4acf28742e6fee36cb4d9d5e65b5b637d8984a4cc27b65a90d56a1ab6e7ad00f1a09a09645d0cb4b02395ff223f18 +DIST soup3-sys-0.5.0.crate 19781 BLAKE2B f9b9d20e7acbe9a2cc29b0e2248a60d77f45ed085060adcbef4e1b7ff752e31c375ac29c2c57c58409cd22db005f154eea3cc405362ea20af52b046e1167595b SHA512 c71b0dfe6352689aa1b7f2daa47b20b4316293e617fb083ea08db8662f94ff4d7728d77f2296e0404f70f406c5bea9e28ffc36c14901c23b13d88583712fa99f +DIST specta-2.0.0-rc.20.crate 25144 BLAKE2B bf78585e7448094d121c50f8c8600f937f295bc7f4a96f319fe9e1e9bb7c03557938a6956792694255dc2433e66160810d7571152d81da8d31d51ffb9838054a SHA512 938aa3d225864ae2c9336707c0544edbd6f6c41ccde339602c22a017776fdaf51751a7795199c91cd6665bb42cc162bc46dc945b81a0889702aac5b674950800 +DIST specta-macros-2.0.0-rc.17.crate 14136 BLAKE2B c89ee21c76bc93cd40996e21c5ac6f21a496d2556a84731023bfcdd6bf28998fa574e22eb6587da8888b6d03add0fea718c2ef0e5b10480958e0fc8d161b6458 SHA512 2e3451b942b95bbfe919301e1013452fc862f842c7ba11bce39f1713be5063d1978069d2c4422d6369a73ba2bb512d5f969fa2a007419a7f885fc94306a145e3 +DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee +DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03 +DIST string_cache-0.8.8.crate 17181 BLAKE2B 0c24081c48a63815d1f066456ede7d57273bd13647e0ea9b6e7ea4308052d9e68531485ff6d301cefcf9c17786b894d48e0038a0e828f50162d4d63f25e95c2b SHA512 d1a3008a7325e0aa48803f3a1f8a12ec1f17acfbd9b904dbe8c6c70cd85df17ed7adf6566919b54c81f3ba5ea23e6aeb5c36c536048796407ac45375b8246677 +DIST string_cache_codegen-0.5.3.crate 9176 BLAKE2B 25584efed66c421a6febdc055563acd3bea447aebf0c1ff23a6108db5adaef1b73f6d3e9b6623d68672899f8c335a90ff286832bb525d2959d08e867f4886519 SHA512 24b8ac2f0ef6d47e9fe92ad75b2e00217debd76949e1a7e44c9fb16cd172149cdda6279160a2f9d91ab405724b0ca54b2aae9b295a2188aeda9bf8a318c5cb07 +DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c +DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd +DIST swift-rs-1.0.7.crate 20697 BLAKE2B f963b99b0c7f0d833460eee56688438d44af2a5eb8c9009887f35140a4cb6c6fe64e7531ece24ee48ef215fb629223b163d210db2ad1e8b9b9627275395fae94 SHA512 4ed828775ebc3087f36c0a730449be9ee1ff4e8797cf1ba1abb9d160187a3c44fa463ceeb293ffc591afc3d16d26cfd194057b66244d062ea369fc9de7feae06 +DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d +DIST syn-2.0.98.crate 297807 BLAKE2B b17e2bb4f151fba26debb722bda8e8677dcc4f57f0e88bec214f8b06e9b15c48731ca3f63d1453a44f34845c9895b3519008ce6cfb69746486324d7a8e0e0c20 SHA512 792dc70249d55face151b5481b0ebabbd3d290de78cff8b5dad8bee08e5a932ee22e54ca5fc5980e0b218197d19822c3672e02eb92ca74c8ac1328081d4d2cbf +DIST sync_wrapper-1.0.2.crate 6958 BLAKE2B b2e162f982ea827229dcff468bcf31c6286c57ea3491a909784cdb50b0ba36c3a1a6fbdc7b34fc2aa9a7df1d174393d61ea9dc7ab3439a5e1a1884e2473a70f8 SHA512 aa314a6ab3ba028d2a169ea55a50eecf3b73b475a81c91330430ece9f1734296562627a8c32fad51b5a26796931f364e2803b3a13075ccd9a0aa614d5220903c +DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa +DIST sysinfo-0.33.1.crate 197268 BLAKE2B 754355ec7b331fb11b2458400b4e392884aa1395eb3a8741bbc3ce733896835061fb830c925d3f228f439167acae9fcabf4fc3f0261ae90546d716eb2c18954b SHA512 c0dfe05434fe76ffa84e26bd462a0fed9e41f897b0d8da6c49f7692d4e786e6f6997843f0b5ddc5efcf1cc34001e67841206477f90728966f1aeca304145017d +DIST system-configuration-0.6.1.crate 17935 BLAKE2B 9f4d8f60b3b000995b39f9c3a2ab56e6587293dd64c26558763203bde641adf57ce1dc5107b4f73b392daf3997038309e02b3da8c6bb0e4beccc0732becd0333 SHA512 ba7eddeba87d22206c250908f0158120b4984750cf7b2b8d57a50a32b323d3346321c8f2bab726c1d7ad97fc5da0b19d663c0e2db27ff74e3889463639a4ec89 +DIST system-configuration-sys-0.6.0.crate 11090 BLAKE2B 2bc38fa55070e33e762cba4baa7e1f5a637e625c150a821bfdf99c60d08343e83cc26a302f4f70a44cee967bd8b4784caacc15436df82d10e05751831b46c1e6 SHA512 02b1693b8c18ae3484e366a7f7395a31902a026e0864a8ffc7643c7b4a856f912f58f2ec19ba52a50d0d1dc09a806888fa1f3222e1af1f65b8a16eedcc966234 +DIST system-deps-6.2.2.crate 25546 BLAKE2B e2f3c546565ae26554bfdc284eff2145b1248bed90f5b4315d9151777c96794f1aae0ec34cff0d3c922d1ee287e637c1b6c8a96dd48c2a2bb8a58871d2967347 SHA512 a81020d5cbccab3c618f17d691d76a058c634ff9e3615cafdc95ec002d8f1533586ce9ea1ad5da8ae3945be7dfd3d962cd7dbdcc95f0614ed5156bfb3c6c9c42 +DIST tao-0.31.1.crate 2349688 BLAKE2B 9972a1f427f188b54ff4644183ceb688a3796e1942a0394994df52a6bef8f0853fbf094c810e45a18fbd060679a8f2718829ae2342598105a598716c41e83825 SHA512 0960e34d3b8a5347b46d173da7f429f67ff76c179ddcf7f12529f90eeca50263f655e7ee2e6f0b60d65acc39f812452a1a93245935404fae08f76a0cbf95feef +DIST tao-macros-0.1.3.crate 6171 BLAKE2B f96bb27fb3ac9396978252b471aff189b06d76f4edf23682344c5f1b45278695e30421c642ef6537086954cfffa6efb920d27decf5b5a3e7c341dd3276eaa88a SHA512 658bb64d947b038b85685b1ce6f4a6fd7b2f65e4acea89f1104019947dbacf1d696a26dc90e996c7cb903670f76c5cf7d8d9490a6c9ebab74bdb709623225a02 +DIST tar-0.4.43.crate 60181 BLAKE2B 0c517cd0ccf1aca093136985513f5ee90312f0b99e34fef9ec8ef21c9537469c3ed31591434a9509ebc6887861e768f52e8dbc1858f0dc1ac5fbcb7d45e805e5 SHA512 d54953e0c7f7e34eb30d85c44527af620e673426592d896261dc2638a9b8a34e2486d0f56dcf93ab3a104c0a43aa3d3478db98fa86fe44ac5be6a10de145447e +DIST target-lexicon-0.12.16.crate 26488 BLAKE2B e7950e4a302059a1bfc9bc15618a3c1b971a17cffae117a6e8f5f63a0d82fd2bd02680301d15338612d5426d349dd24cfee30ee787a15a7d3187f2a6825e69ce SHA512 092639957c4a0391560b6442b31c47159c04d12e971010f730a6ec9cb5389e4be903ef3d7daa06db95e64dc78b6970731fb647179ebaad2b12e9ed5e9b24da27 +DIST tauri-2.2.5.crate 266974 BLAKE2B 12f56d4c1646bac5174be970c2fef3dd228588be69a5b0f6f19b5c5e2f55f785b50eea183d5cf3363dd6dc4d542c5b0d5bd433b3add273631f00bd0284b10251 SHA512 71ed8db278576f417fa1b6cb8fa6a66b655c7ceb06e97056bdb77946dc99502fc59862374efed3a0245035d1f339ee5575fd12fd99d803640237302f14d5a40f +DIST tauri-build-2.0.5.crate 20505 BLAKE2B a9f23e27301ea24f7fb04a9560958dde7c02155b7db9ed9dc575a7fb997e217fa8587be11a1bb2e6a4422f7bf23fd3a890909b34f9697a90dde08fd6bf5a2877 SHA512 02dc4e72599ce62ac16b39df83500f98812c8fccda2b5c8c931a378d1dfa2595bbff48f5ddd6d13eb64230b6b296d16d90e663f0fa67486df0daa58075f80096 +DIST tauri-codegen-2.0.4.crate 21186 BLAKE2B 0a5e96df70d636e70c5b7cc45c903bf622d6cac5cd165c76f32dfbfb87437500157086ed815459a457be44540a0ff9de13ba12b0ecf9ab85c47fdc07f5115079 SHA512 96892714c0cc67173516b2191a9e9a71f2309a6652d99426cbc17d477693e76722a7247d49705af5c7e7a07cc079d9da782bd15cbec4beedc5e0470eea40d524 +DIST tauri-macros-2.0.4.crate 17055 BLAKE2B 018556c945f79234b7033b4eab4aeb7fb4d0395f566a2352fbe6d2dd3a89861623a96537b3c1c86f469fb616a2ef765c97d60678c97ac5a0a5b05d1052f4cfcb SHA512 e9675fe5b5ee013d99dac7e30a7b033fc9ced65de752bbbd9da7b1cfa726f149111d392139d10d49229313011f45810ed259d8ddea2b69afae7e1f98a95dd26a +DIST tauri-runtime-2.3.0.crate 21808 BLAKE2B 9eaae0cb677b34ac3e38250424e2c7c4eeb3a5b54ae26d14fad8ee1204abc5a3b20f4404a4935399964682883ae3b1e10ce95f10d2ad7e26f17b370b62bf5c16 SHA512 557e56629f711da92b8478a4c52974608340e5b2002275fc11200b4d79d150356a67602381bfc58d65308bb29710aa3754650a19aaceef2e50084878df2ecad9 +DIST tauri-runtime-wry-2.3.0.crate 37663 BLAKE2B f9887b3b3bd621f92375664831cfd4bd4a6229ddfc4d1846623680e58e3c7929f6cb0be9b66534d6f4486014c10cb2d9b80d540d2b8104dbea58b8a4a931db8a SHA512 5ba1ef324f213a70babffe8ebad22b37689e1416b7769f9b18aea31796de58d7594bad681f3849d271579b9924cc214c1bc786fc84e8d5b3e48c01b5418d3d8e +DIST tauri-utils-2.1.1.crate 85797 BLAKE2B c81e869fc7505b4e0e1656567827aa1954c8c87022dc2b2a6eea51acdf3159183ac8082c0c6a069c62a6e0963cf1ca4f283e4428758805e69f9d3d2d895f5403 SHA512 8d1932473b129cfea1358e38f4a0ce372b6affec74218b7177a0143749a3fa6ec5bb831485faf9c56a1053de37b63b7eab0c7ab9c16181ee2b1ee28815d4d8e3 +DIST tauri-winres-0.1.1.crate 20766 BLAKE2B 50ea7b421c05b6a014e079f3aa1dca17b3470e6f34fd1385ac87ab16e2fdf14f56962b444b0008c4a07d49ab40e8433a889bc82c4ac0ce5ff0d801e98c20d719 SHA512 b33f92adb17aee75765a481b8e5951b76ee177667b28bdfad67417f854a8db3c1ba62b86a765c2719c0a4d99fdb2becd4616cccbeb83f9ca865e698bbe16069e +DIST tempfile-3.16.0.crate 38550 BLAKE2B 11702e6bc2ba2c400b52f14e53eb1df71ad523aa1507b4700eb64eb76d5f4688b0f889cf155c2e15ac68a3c68b27e1e202bb26439076e350b407e14b59467a80 SHA512 c9f95326e315178a1fd4b53fcb362b9b0c4cb120cc0700dd6c2862be8ea80c5a592e0f46e6b051144c0b0aab3f322151d5df1cbd6037bbe0067e0a8eed1204a4 +DIST tendril-0.4.3.crate 37210 BLAKE2B 0a70926644e8dc492247d49b8939169702903c2458d7b2c0fea2e6ed54166909f484e8e876eddc8ff7491642ec24a200c5d1e51412c6a7c26ee60f1f4164e98c SHA512 53f074aec6e59717fca280b1764f6c2e0a1c073336f48d012ff268a7189697d42d24a91a6a549c7d9e1fe8b0006e34c219f4dba3cc95247d3905c6f8a6a8186f +DIST thin-slice-0.1.1.crate 4484 BLAKE2B 7efcd3c30dd24c22641139288b0c530ffe56dd82f26c2c31f557f1fa09ced695cf12b645fa6bc4c12324af0b9b05792a9cff422b6deee3bbb06b57a7cec06f47 SHA512 27b9e6b2a8485b3f89f659d80d67ccb96370f3371996e39f97784c40bdd7fef5429fb96f48d9c045eec5906051708f169fe4ca8f5f546a25e5f6859cafa42925 +DIST thiserror-1.0.69.crate 22198 BLAKE2B fdd8ca8c8ca78702377d0bf7b253440519018275b105db980d63229d0d44aa5c39a703e14aa6fe453c779b3c864d8044009dfef893d2a5294950f067656d7a80 SHA512 ef50d2867d965da1dfb29d26faf6de273b5fadf78f95313f6caf44d68bfc610b9bd4b7544200b05bb0861231cfc84e961007f8db83c7905244c492037fd31899 +DIST thiserror-2.0.11.crate 28648 BLAKE2B 973126f9a9ca5f3118e830af11ddde4b26c905e13df89b2888b42facc4e48b3adea53b66405260f6291c3df7ddb85a93856841be3626b005040b3fd15502e2bd SHA512 ba0c3c2615bb9bfb07affa66ffeb2eeda43b16a974dc9a0482165a4a5a502a376e2fd6b569a228a08647de23d291e2c301dedf89d8caa79833b965a184dd5904 +DIST thiserror-impl-1.0.69.crate 18365 BLAKE2B 51663251ea6ec99c59aec35fe73c5f9760809d6b6b7eaa8ecbc8f6939acdc4d0ebc11f9034d9204dde7bd689d5e8303ae0be86e298745e9ef96825bf73453a08 SHA512 579eb796c8885feb01d27638862823acd96c79440655bb444c3445ac00121852603396ce7439aed617c0a0ac69f62102167fde5845411c906997574a46d6d9e3 +DIST thiserror-impl-2.0.11.crate 21067 BLAKE2B 33be76d7ab098eaeeaefb2ea5ef20a73221ac51b491d6339e1fff66e24118854f3640de43241e233c68be17804b90d22d75f1d60f7df274acef4647c871e0e17 SHA512 3fb76f16613064917d2b21f1bab06fd4dec9f40ad1f850aa78c5917854347cf9034a72d2091dc792ac06ce9ff9e29ed2bec3a4330b459abff379356e35c8f701 +DIST thread_local-1.1.8.crate 13962 BLAKE2B fce2feddaaebde42bdb83d814929868f06387a4fa25d5becc73ff0b983395aabe076268569c6a89e2d90ce6e68d2ebca7c3e0ba1c9159c61b32631ce39289a9f SHA512 6d7e3941f43c43ac091db5d1cf2a8a3892b54b0634d9200426eadeb82015566532f04b6040085dbdcb10580ac724b6ded8416931d764d795a5f923aced66c492 +DIST time-0.3.37.crate 123257 BLAKE2B 5968d85182e3a945c194c0e405a3c771698472f4b4028a01870e8dedcfc5c10a32e167715c7c12626b46b9ddd758c72e0188b55e45c0396cbaa42a65920ae28e SHA512 6d007507f79c45a7408675b3223bbf83a133bbaf96429ae6a02b5db09acccf884bb8323dc6f3dd05e7ce87a78366a55bafa6c6ba31b04198a31026df4ef425e2 +DIST time-core-0.1.2.crate 7191 BLAKE2B c477ad3410ff29f3bf4a38fc6ac4a043d49b6d2bdf5cf309ffcd2eec3bb6e4c4b62156ee7f069f0b37ea31c163bc75ccbf35abc1db2833cdd4912135e60ddfc9 SHA512 3861724c23cb806829a01186deb5217ae8252c20af622975264e6670cff528f42155039e4937756a9eb312a5580ffab07949437d5504d684a0e70755046cac52 +DIST time-macros-0.2.19.crate 24268 BLAKE2B 18f0601f5307d310010bea20dc7171adc8600c5b2e6303dc9b38ebfbaa7fb59a029dddb627cf5a5b7fd2f7ed66186dbb5321cad0f90f3f85b6edcc901a8c2855 SHA512 c58aa596247a4cab720bef74ff43be44686db2da2978826a1f9b58c640113b5696efc2ae1746bf84042fdbb94bec42c7fc34f7ae6812478f55849a12a90dff5e +DIST tiny_http-0.12.0.crate 51330 BLAKE2B d296b90b4e13d29cf16954c01bed353897740e37d6117208f8a52214d722778be7e326508f6e2a5b21e7f3cfba6f65de7a2c1bc52dbe57efe2fcf6b235fe7234 SHA512 c74efe5a0cad88ef0d569329bd633a9ed09365854aa5ef601c97f7f20a7869253b53f8945b998146ff1d97e7301fd59ea76a497fb0f1866c6b9bb76b87561fb0 +DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25 +DIST tinyvec-1.8.1.crate 47269 BLAKE2B d72ec2417520fa0481b8447e6d75e1f24731d38f9083a711185785174a8567c81f6416468b9eabf426f9d32683231e7c5e80202292d1e424f9e4ac9cc8b3e765 SHA512 db32a6beb1c86eb3e9f5ff2732a4acc03d1d684f0e54df5de2ecbfd08399639f47396ae8b17eb5f0122a09ba0c313f39bd73a6f7c44cc38d1891d1bdf3f2d176 +DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e +DIST tokio-1.43.0.crate 817422 BLAKE2B 86d7b3c0488ac3a31e76a6846568c2c565d08ddafe265eeb28303bb2d57506afbd10a75490c834ee76d57dc45ccf7329a693fa3aa01fd7033e13495d82f74d9b SHA512 8a2681829afc3ffa6446eaff7463d52aa3351598639ef5d9af0633dc5425e7ff222a7e661f519c3383377cb46b40969ae8c38bedc77a9da92a871ba7d1c18a63 +DIST tokio-macros-2.5.0.crate 12617 BLAKE2B c30d0011173d246dc82a5c24ba97b0ed6b66bd8f19b0977e0305b03843b3611528fc5911b632d2c46bd22b8fd2e8488956bde0037c322a3ff8b7306e72cb9bdb SHA512 c1d24cbb8b3f500357e39f93cf139790e4bd3ad1657dd5d695f5e4f9a2a460cd63e8c1c32a36b64d3cadd7b6467e59ee34cd5b1548a99449d8e46c2db83e9ec4 +DIST tokio-native-tls-0.3.1.crate 20676 BLAKE2B 4c752179aab8b4beaa6aa212dc8d9e4a2b7c12be0dbf80406f20f92fd12844a3390e88a1536875596ab44774a67ce35115ca4622f9faa977c80c4261ab4c06ea SHA512 bda2e77671e030a021f628ad760b3fbdc26e7483a5f9ef6c6892ae0fc38b538d52d527805c020d578079896d50fff0bbc036a87cc91604904840d5b7dc181914 +DIST tokio-rustls-0.26.1.crate 31214 BLAKE2B c5829570c90b5d4dffe73c8b3a5bcba799bc48e8b742ff10030805067201848c362fad9f4ff319b003eb734b078389a35420186e90a434464f45dc1b6b3391ad SHA512 0cee6b356ebc4be05c484d459ac457280f41401093ca942cc61a6e6514dd4a48b1cc921f7dc02f9c8bc34b751d4d40d6d4768b21193d5a12c38ebd140bad4896 +DIST tokio-tungstenite-0.26.1.crate 29538 BLAKE2B 9141c280b92baa9b10668d4e1ed1c18529be51439a7ddb61e0c97c1d2b08151badd90909bc757fd1e6f8e81c9503822e4fe7abcfa86f33161ebb5c480c4a2205 SHA512 6a70938af414f1dbd8acfabdb5506f08332fb2bb96ff04ac58af959c743af9f4166fbe274151cb792a113c5b4478179197fcdde4f4589ecff346b1aa5bbaab5a +DIST tokio-util-0.7.13.crate 115191 BLAKE2B f4acc65d0fd14a88d46545bec2313cb1f25e1cb76014d09c34f8a8be62c6901ab09b18d7b32fdab58f6594fb861bfcb8bfdc8825871347d7eabe2bd8117768bf SHA512 2a1e8fbdd094f81e00ee87eb5ebc4c62825945048105970e52d6d0a872769d268a41ddf91c60158c02a303ecbaa1b19795948b5416f9bbfcb079c5b27d39d51f +DIST toml-0.7.8.crate 49671 BLAKE2B 47988292efa682f34b5295ee15524d9603d7884a0ebdc50aff93823bc9bb565569097b6aa0c622976cb23688aff73e41c0a19b0ab72ca55676cc86d7ae3db693 SHA512 84479acfa305aa682ed6ba655208c245d442d61028c422fefd6174371ec214e88912c257a3e2527e14646b655b18d55ac2d5482b0b4fd8cc2a9f66575ff1c84b +DIST toml-0.8.20.crate 51095 BLAKE2B 8e46bf5b667fa650883fba759efd1cc524fa758eaf1b9124f73121127cc72c0ebefaf64edaba6d249d7a9d0d81f75295d335f68e4e88d20949aba538a2aa71a5 SHA512 c842705270baea3e62e3b0535485f15af87e9a1b26dafb7945e1918e9fd59654b83316ace4ff837d84739d2dd1fddfafabc7d7b0c3ea1dcb9a07433a8cce72f1 +DIST toml_datetime-0.6.8.crate 12028 BLAKE2B 62113366771f22b437b2ed0d3bb2489ae9078cb589cfad2ad2e92c81ddbda48f689e5a573366eea4f54c2b3cbc6b37eaa8b442b6d935b631a992de4917268757 SHA512 d38b98db3b2d4eebd3001d88e2135b6fdbae63b200f7e900c6bb9c121dd3f170e557332bd26f237312c1cbef61666716b0cf550c2d730f86fa7cd9eb5f64a16f +DIST toml_edit-0.19.15.crate 95324 BLAKE2B f989f96d571693ff81572af6c05a6f51b673e478f22d20a6b166c45909902ac80280ea92ec5c3567327df90100a47fb7504845fc39bbcff6756af6c1a89e2221 SHA512 46d6bd2fea957392ae0ad7e687dad7743b76ee8e8ec76c80d6374ea294d3d09b6f73df0a82c821b9ee3b5268987a4136aa825034309f3cbc1947dbd1af1505dc +DIST toml_edit-0.20.7.crate 101056 BLAKE2B 76c8ba87b0acfe74fb225bb1f1ef92ccee3e58e0dff64025e8d0727710e1362ccfe2f6d4625d0f1de7c14db318857c0e24e87831a82ce514bcb21f84d77dfade SHA512 fb6ef6e495e18b5d6eb96eee5c2a39b5539a8cebbaa8b93c3995d1e14d1db26488200633c7368f67ff5f982ab20dce0977601314c643fb2671c3caaae8e584af +DIST toml_edit-0.22.23.crate 106376 BLAKE2B d218ade72fcf2ced6f40eeb4d32dd616dc82d3bf9bf82492b4a0bb11c2448cf411bf15bc4f9193659aeab027f8652a5b3f3982a689d39ba384ce8d5ec6815447 SHA512 4a08e10910c6fa089a3c788aed3df222c70c5567e97128810fc0eb881ff88ba8db0e9bb6a1877f24ea6bc1b259769293440991147536bca61e5ba8eda6ce29ba +DIST tower-0.5.2.crate 109417 BLAKE2B 414f17e97102224f1fdf23a03e6aa958e0a2d6cfcfce93ac3f2e911d68267aee33aa079c94540626ec3fa895e1780e6e5d18b4831f9f05cdf3e8c26ff73b7279 SHA512 e89c4ffd83fec3566334a4c4e9151ddeabfd3437269afc8bffb46201391bc1cdc82cbb97c69643a30f8873e87c511ad9aefc6c081241a4419fe315c99c61ffce +DIST tower-layer-0.3.3.crate 6180 BLAKE2B 20435102dd62113c3e961bb28d7b18ac6f8ec6d5f0051f511e6f5eb044b20016f247ddd1b8eae9dc9f1ee259d8cc31e0bbddd26f5a22fadeea4007a3011b8500 SHA512 edf36671076cd29bb32c29351b648afbf3e7134316988a697c7807db62de7a63cb0339e4db7c0f36ed60d8aced7f3e493318cccc272070c037b01e2dd189b934 +DIST tower-service-0.3.3.crate 6950 BLAKE2B 32ca66bff783eeb015af982b539acb63c9d426b931832b27aa45088382712df3894132a9e6e96fe1ed9d0f9e582b7a25b33e0ab73711acb06b4e134e69158452 SHA512 770cbca46d8500ff36fe84a9a420beb84a0e893dbeaccdd93a3970e746c893b5d32580182ef3017662f421e4b2d71f079ed2cf1727dcd5fc3443a4484f9b43fd +DIST tracing-0.1.41.crate 82448 BLAKE2B c056d938e001654e03efaec7a11eb8ecfbdfe9af2099271fcefa43f4f4683b40c59f7111fdf7f27df4da38bcbe94f1b2ac0abb6ec3d6e6a0d165b9fbb14da3a3 SHA512 dffb8d3a1375f1b9d5418550a46cb7b1d92b2cc8ffbccb430a38f7731547960775bb42798074186711847d256eee30fb3e74078b69cb36f28c07d9f231dbf96c +DIST tracing-core-0.1.33.crate 63434 BLAKE2B bc36332ffe5f4c95ae2d12df43944bcf589746cdb923a39098e5f4007fd1f19d7c3bb115011ddc40c13e3ae0e5cfc9a59c49861824e99fed7430fd29479abacf SHA512 1c6f0cf3b7bd6c8f6316ed9ea0b315a619308de6cbf7e50e665a193cf8c3399b5227d4f145d83b10c7e01a2f9fbc83d16e108cf09b7fd6cef413aa5c1acf89ef +DIST tray-icon-0.19.2.crate 69387 BLAKE2B 10ea083c1d383ed2d78dcfdf6285bb23b620989a74309a0c4e3127aa97f36645702e070ae6346da91d5e15d40a8b40f5b174017a61a10b012d2f416952b5810b SHA512 0b8adad7da6ca4cf1b96442d539f434687f30024adff1f5eb81e12d446e21f7654b69b408c6fba38cf1c9310a2c3221f65dc14e9bc70c6f7f2fd9aaec4f02061 +DIST try-lock-0.2.5.crate 4314 BLAKE2B e75c6c0d7c975e294e3d723e2fb023067530ad6db3c7bdbe89b9558764606fd1a74f0d1ba787d85266db1912dbeda85408e85646d0f7cb24496d743b7a18c705 SHA512 433db3c52f55d78220db414ef6a7367791dd66eac935f41dcda85ec9200f0eefeab6e8342e70aabe35c300069c0e7b7c4f8d63a2334b52a081cc98416371ef08 +DIST tungstenite-0.26.1.crate 64489 BLAKE2B 1f199f446657f07490a458b2910801167e676a726351dba7caee26e9b85432f1964dc591db4c95c7dc08480fe7cce78cd75d6045699dcdbaeed6fbb0732c3467 SHA512 cf3b11d512c51dfe7f3670237163d14f80cb50b59c31ba5a08e86d1289fbe905af5a61575c757bf1bce6cde878ca7fa66578b7e04f4eb65fb89aac9b724df2c8 +DIST typeid-1.0.2.crate 8844 BLAKE2B ec74d365b11f17f63f938bfd8819a29d94eee8a3d938d8e5f6c797c0fc4696c1016e5c900f5874e3df05f6d5650f1b05da9446e240afea6185d16ec958beaa37 SHA512 a056d99db3bc648ea260157335045dba1df96e70cefe65dbeac80d517cf630cf398f86da692180592e99f27ae14eec1d3f658c0d2d039ae353ce56463f7cee40 +DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508 +DIST unic-char-property-0.9.0.crate 6809 BLAKE2B d2bb66259b66e59e831ad74d89528882336a7cf6dfac7a9f49308a70a3d61d5ab88f3ade9df2c086f27ff4a6eae0d2d2b8e63bd154ce3e700cc525769f34542a SHA512 ef969968c61eae6a7d68e6ccb0b40f6618a69bfc4714b51bf4ee8c5ec4532d10b9c6675a4cd5121c904a578ceec7c6471d1496fedbf121059f076ad1c5ccb70d +DIST unic-char-range-0.9.0.crate 7020 BLAKE2B ab79b4298b999a9fbb769bf191f83e259b40b8d06cc5cb82abac48434162216a283fa82c1bc9af8b40656c2d06e5b6a919ff7888852eabb9001a92db12fa48d7 SHA512 bb0ede1695f4f016bdf9ec83bb49639527248c175c71d24993b8651ea6be0a411251ed8518893101dd5e96fd2913cf15ec27799c677ddb08b8e408da06ae0ceb +DIST unic-common-0.9.0.crate 2558 BLAKE2B 4efd81198a61076ed45f6fff73561de21b5b7500277de206ed41cfb01ce8e5046a1e2c5f90ac75c03eb1897b7f54a14cf0a8f6d9cb39f624b3a9fac375468e58 SHA512 9212f99afd4c694a3a671963d63e5349f81adde6d5f50c92ec39d15e7ee24aa91eee63ba578a857c8b21380937860968a8e13cd16bb0ee0c0ccd96b3094ad155 +DIST unic-ucd-ident-0.9.0.crate 16128 BLAKE2B f06da48584ac6fbf254c104404918839b519890a7d17a8916c3f9fb611457a721ea5799912251f9686ee1644f17ed9c82d72dd9b0046b636ce4ad1e681ad290d SHA512 9e485ae18723b1af7310388e8a91d26e2aebc5398643e076444aa4d3b6a1c557557c358405d5327a77192e0a03c68e0f6032a262baed16659884e0adb39df7e5 +DIST unic-ucd-version-0.9.0.crate 2246 BLAKE2B c546ee182387db997e6cd699a25bc201fc943306d8e87f96edc1a3dc1cd5ab8ad96f34e8275721a5604765aa6fb6f81e3d8d9eae690d04e5ba71325a769b065b SHA512 153219ff18be02e23ff3dc90bba11fa8c7cda11b972e0d84500d9a0742fb7d84466f2cc63ee278a24098c39634e50742af3317cd942f4ea882ef5a2a8e003d7b +DIST unicode-ident-1.0.16.crate 47684 BLAKE2B 0cdfea4b56bdfcb8288941f95a31e66f7922b7e1dfa8f5e6265f1051701d31bfbe6e0cefb0fbd33456e2fdff48f8da30580351309e19fbb5d2f2573c716965cc SHA512 9484a34a4e283f94e971fa9ec42528a62f2c056e702040da37dd9d9b794e16e14a408302d1ac26a850d0eadf0d0266d8ef5b80761490f7029240244a39878ec9 +DIST unicode-segmentation-1.12.0.crate 106323 BLAKE2B 268b60aff6694434f05afb7e2b8187eeccdceb77460f8ce2ac0f84d470f8a4e03182ce3f7906177cd2f00f989273a7e69061a763006245f0876bf21b15076804 SHA512 55eebfe5e9972b39d7c0011d80eb5f517d636de37870999119a3d8f064f21f67b66a5ba9761d562738b05f220e21d56b5be7bbd9cc51662994e40dd67c38f946 +DIST unicode-width-0.1.14.crate 271615 BLAKE2B dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e SHA512 3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb +DIST universal-hash-0.5.1.crate 9146 BLAKE2B 9095f95faa8ed4128c3787226f3899acec4278d36799ae30a7ca71ade7179c274a1807f62605e687e60ee97e6bebfe818100ed0441db455bdee0f8e5dd451809 SHA512 83b3ddb1f0d7ff621ca2b3d426c2e682d8339a2adedbbbb3a4584977e2e996549d665578729bff65b5693059460e9e04b9df2181c404980d3b3d946c80e0b589 +DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416 +DIST url-2.5.4.crate 81097 BLAKE2B 74943c63809ca41a526a146bedae66f91f390fbd2ccbd90f9397d8074ee7ec26535f0f67170eb1d7232e139d8d795fde99be37f53f1bc32c6a6a4d46aad1369f SHA512 8f1d62bfdd45f52fa12ad657a521a3478d0ab54d187346a29dd59cc66a0f140ca96d850948e09f6316f08b44b3fc68526c58bd620fed5d065b7e8528df3cd46d +DIST urlencoding-2.1.3.crate 6538 BLAKE2B 65777b0990aa6b3d27a47f36114da8622026ac8946b5ffb6e04172b666ec7244a55c250a7fb626472bb2b636eb32ee945599cee5ce7351c3cef2322366db15ff SHA512 035848d9243ed6a4528377b56edd7f8bcb5f824381b420dc8f5c4bfc3f1246655c54eaa7de0e4aaa7138e0b08fd796b9ace140ab919aed2d94f6952b577386ac +DIST urlpattern-0.3.0.crate 28180 BLAKE2B 07a55289ca8a47844bf638572987242ce2a34f71f2a85fa37a0c75110aaccbcbd9b6293c56d7a31870918889d76e1f8354ef57d45b5ac34f989ff1e95cba283c SHA512 a2a4a634599eacec54a3a38c370a22766f28c775d0b68d5c3e4a1fff18d4af42e5dd01b75c2a2c04802d35f398bd7b4dedb3d3b57f2887692f27fcb1242ee2a1 +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-width-0.1.7.crate 2977 BLAKE2B 319871431fd21dc30f812460ca69bf0f3b1f6f9bdf749e4ab650eee1597e3a86afebeb646f4abf4b32ab661142433eb9bd2b0917d0f5c0a93d154168c2ea3278 SHA512 ae870bc338bc74f9e214acbb31155ed37e3c686abcda81e7a3f9b8440d2782e4b29efa6d1a52afb22da390f3e64f012380f18ba1e3c1a37bde927812c361909e +DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090 +DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266 +DIST uuid-1.13.1.crate 56741 BLAKE2B c731532b9192a860353d9eb4512904609e50238c5e7c3dd9b856a6e0650bff81fc5d753c2f87defda23b5ce4e511053a9328da0380861b36aa02eb862c8cf3be SHA512 1b63c1760dcebfa139c8067a492e33bab57b9a0554c3be4fbcb1ab033d204b3b4abc2cf441f7201a54e086935c9e0a3883d279a2ccfd10973cdfe884b84f1ef4 +DIST uzers-0.12.1.crate 29272 BLAKE2B 1a79446814c636702a8845291c8f0add0a0a6b468de8e07a7d8fc5bc3098490e48125abc809c0f44a9e47c9becb4806e29dcf390a6311f952de35a886b85d721 SHA512 93c4160bfcbdca57a3c945b73a94d1ba8612e0258950f7c10307dd57c838a0664890cbe34a98649c18fb783744423a7fd240da8b5eabe1e660a533e9b32f6260 +DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172 +DIST version-compare-0.2.0.crate 13942 BLAKE2B 054f7d717ba953f4dbda226aa22332fb40622a776a6f53450831f027273e5a64bb8e87d42a9af1c64a6f035afa76565309c5a8810a20b8a5e51a7168a2e91dbc SHA512 b799c1713d4bf7af00f9c6d562d39c5e916f37350c2f3f57119277725b81c93246d0b1410d4ee981694bbbb731460b6512a813fdde1cf25949cd45fb3e70bd6f +DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db +DIST vswhom-0.1.0.crate 9420 BLAKE2B ad748822fa9650d011c5f240f5e52ae1e27380fc1b22db2ceaaece4fbc814ac2f2792cf6772079199202efe88fb968618a13d91609e5245639f25b32640fad44 SHA512 0ac192e6a1d296904246d89a08021b55384b48959f26f1f0dca893f8fa1e71a012a0d731d1e48e41ca8e4427da84e50fa43ced621e435b010cbcda4f19c45a58 +DIST vswhom-sys-0.1.2.crate 15852 BLAKE2B b21fbc0af440d3feac8ffb769f951f504e01f630d6f806d78a8f218eeb09ff8940328d6a9289e195deae9fdc43fdd55cfd037ae9c57b366ae57906b80d2f4785 SHA512 cd7e7b9e1953c70470d2f17210e83d28cd2c5ab8fc34ef0c9e06390e928853e375ed7bc2bda343b2f15820e989b5adc5bd33d9cea078716bc31545ff019435c8 +DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad +DIST want-0.3.1.crate 6398 BLAKE2B bcc1384bbb86db27b5e082b29a8dd4d89c37b40f6cdec4df8a86c8d205b418468b6cd42a78bd14ebaba057b28e151c00b474c098d7596f49a823ce33510c13b9 SHA512 f93f765113f035e134b967e8eb3f4511b8e03e793a47899b614d826afac02348fc02865c298a10410ecec4eb64f35f66c22bcbdbe36ed0c4c1665dca1db4d526 +DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f +DIST wasi-0.13.3+wasi-0.2.2.crate 136754 BLAKE2B a17e2670caed033c1b2e2bd709a79c1dff5d0ff46b32e9d9b0faceac2b3350397e7bc6ce113a9275c400537121c9d853130b4bd546afbf0bcd248f4c69d8a708 SHA512 c0b0ce3c4d82ad7350e017fda565a69cf91186ebc41a1c5bc21a6e2fd2f0d8e7d90bcd60488074da6062ac1fa39c684ddd8ee1d8efd66e82eff36ddb16682abd +DIST wasi-0.9.0+wasi-snapshot-preview1.crate 31521 BLAKE2B 716bdd2ec46d0bc9911c5e5e29fc783840559931b2563d8619675fc11da9527ddbe653a0f1ce0b782ee0c5f7a3131aba2b0867d415f003aa9c2389357569e7dc SHA512 dbe641f796ee3a5daafcaafc911ecc6dff170340f477c2df7a61fb4858a85aefc2637c9e61973ecce66a987aa8e08a736273a4aad3ef47eaf61ed4268dbf9c47 +DIST wasite-0.1.0.crate 2346 BLAKE2B a5a03d04135e3e32354d298386f132f9aa3b5c3806186f0c1eb75138038001d07f3bb5a3c6f8f938c9bba7c84b97b06b5304be3c9f86255d2d00f46a134ccd3e SHA512 06be2f7a2d289136740cc7b9ef9c4addbbf85210312759a7c99f977aa52285e2c3e4e3dade82d454a266ae42aaeeda7e767140b0bcdc1208ecc86aa18afc1384 +DIST wasm-bindgen-0.2.100.crate 48288 BLAKE2B 8fc4f71c7d6cef15f131a9bdbb50e3eaf9f3894a5b6c1d73876824efb731b46e8c3449947893103f23bc15cad228a1b8bcccd45ada20df53b3f3dde6e419c184 SHA512 2a8ea7ec669efe10f5701dc3b2bf496e33afa70c31dbc65fda5191c9c28ddde54fa38bb168a41b0319a4ff0bb5ccd897ce51ccd7e523e647b3544fb390f8a4e3 +DIST wasm-bindgen-backend-0.2.100.crate 32111 BLAKE2B 6bbbef709753e22230176121388a95fdb8f4dd32e0755dce5bf6c1127c54a236af292f319d14b5cd97bdb310fee65288e8f404921b83693e287164cf9d589a2e SHA512 a2ee30c1185644f989af6be34e93149a791c05125de24c0ff91c320f683f6f5d939fe42b8ca09d629096388a39256469f8b96a6e35722ccfdbe8d978c9a51770 +DIST wasm-bindgen-futures-0.4.50.crate 16181 BLAKE2B 2659a84c54a1703c7378449339c216b601363be1f1cb22d97a7f85572cb5968597cccc868e03d48b20dae2ffeac83cdfea7c39185dd57158824fef8a51f9567f SHA512 bd24e131150f1a16fa6330400af0c1c71fcdb577562f0c8893d24ee75cd5afca4a7272b424646ffd3330badde92800bbdccd6d4d9d9e47f404e6c29fdd83a51c +DIST wasm-bindgen-macro-0.2.100.crate 9663 BLAKE2B b8a3fc6b3571f8caf106a9e9f3d9cc48b86096d714c5d0208f03d44d47003b3b26441b5cd68bcd49a8c05758bc1b984e460fb62ab439ff2d68c72766ce20358f SHA512 a1942f838eff5fd54406b573d81fe18f262df48a19535245b1a46cb31db2a022746e861d72e5286c632969d15d416655460d3865309c4947cd3d7965dead5c42 +DIST wasm-bindgen-macro-support-0.2.100.crate 26243 BLAKE2B c18e35978b62dd2822ba8a4f6955cd5154b2a0d81b8e8032c2f8bda42c1c25f74a13f3e1c3a7bf47a823de2517a237e6a1aef18b189bf1f2b934123c58d1eb34 SHA512 0d03eaeda37c9c6ae06c0fa96e872b54780c4cf545b621c730dcc113dd59a8cb6333c5e3818f51365f71913b9669d8a870a06e70729722d03c07a49cff8a4fdf +DIST wasm-bindgen-shared-0.2.100.crate 8570 BLAKE2B 886fa72cae891d4c2311e12e28f0a7bde9bcaca893603afa3428a402726b3b2bcdb6cb7dca6fdf983bd8fac5f049f0543537f2161318769b43c7eebfc906df27 SHA512 3fca8ddd1c6b2f66f70f6608c9b341822603f1c0dd71d47d27c6be8fe3f2c88598619946627720734b48cf999cafd0c63a08af5db28ea78a1538d2165a5fba61 +DIST wasm-streams-0.4.2.crate 36773 BLAKE2B 601f8bc4bf872943de47903de57c9e833afa2500d7e30205046ee02a8a2a8d6486b546117009e81f399f9ece69de89145fff85557ae87d37f989095bbe2046c0 SHA512 f93693b41220e819c4efce0fe756633f1aaffbb57b8a9c028031a6b02a7a221ff4d5bacf162a0b301b55794745ad1f4c97a7bbd46ac396e1518689c0639ecd65 +DIST web-sys-0.3.77.crate 638246 BLAKE2B 3f21ab03a18d82cffd96432e4f08bfae183b24f9a50dcfc51c927e9973dabfb8b6bb1f3ae044890832809ec91709242c1c37463931770d347fdf521587a72515 SHA512 cd149286105288f7c385a29eae7df2306d4066edfca4de1255efc7bd8a4e8eaafc313dab85091025c3b5d5e333fce8b7fcef1fb824fe4d799bcc9bb78b73c97a +DIST web-time-1.1.0.crate 18026 BLAKE2B cd72e384aca90c79e587448160587531c417f31a32e9ded23e6b78d492d0e517520170fd03177f28870c313b9302b28c32069a2408acccc076a1e4939a2c8f8d SHA512 73e4ef9851de089fde9381a595cb9e37a434f563f1fd350e345f2617b701caf57a9aef739b922b5b10cda131cdf2fd0af42c55603f8973a623a8b6ae70f6cc9f +DIST webbrowser-1.0.3.crate 40256 BLAKE2B eb8948e605c939fbbdf5c0ce70882d024a5741e7ec6fa7483b3fc47d75c4564d90b858551a7dec7420e13e74c91f01a533ba3213c0d8c3c42980400c193a643c SHA512 ea9192812a536ec9836b6caa953f7711c81f2c69c2a99212e6e6a25d80f93379360d9d995176a49538b0f3e50bf2254af28eab2c92c5ad73dc709c1f9caa122f +DIST webkit2gtk-2.0.1.crate 88051 BLAKE2B 4c1f6580d07a11a47f6b2691fc72fa2800c97387f5f9b01d42fb19d611d77480560d3894dd3bf546f395bd5a61c43488d193e3bd15b7ec39b2cbc3c76de55f10 SHA512 ae6d4ca18dd9174ca213183ffad70e8c85f6778b9efbaa34bb83afd335bc55d00242c8a4dd18009087abd8f093152e945fa48fb4af331071294152cc81d7f026 +DIST webkit2gtk-sys-2.0.1.crate 35898 BLAKE2B 42fae7a425301dadb49eede08e26487bbbd89823773ca8f254620a157ac625d6a2331545b48070062e57ad14097a0a76b6a81314144d569d323380ae3e72c11b SHA512 088e8839d59d8a12903e17191e67e805d9f6379e2217035d1b8e52018ff7a9f7d44df2ddfb1f294f0513c4c28e99a5e8dd4a6bf9be115e33acfde40958d69565 +DIST webpki-roots-0.26.8.crate 257981 BLAKE2B 881596c6664391b3ab10aac8ec74bf31fa4fb8e6c8747da36f5e2f21d90763abdca0d73bfac6f4a2c709d82f66a098b98c408b4948b2045d42b636dfbe17bd25 SHA512 13f282628b74d6c717f499298ee35b4d7bd30d6440366c7aaf3504c32f1c1260740a83683d0973cbb7d1e9108c93a6c640a65b71f4889c7e0eeb7314fa4f8b08 +DIST webview2-com-0.34.0.crate 19137 BLAKE2B 94b00e018883f5794449de46ebf411437be4e25cfe86ab5da6578cb0aef328ba7209671cc577931546127647a99a3ef49e2db6d9563c6279c62edacecb9842e9 SHA512 a53c7aa68616fd4395a557e54855d4fe3a9e54bb6e62321d8458601f0305f0d70a9c7b2685862aaf3b52401b9fc8f2cc9d904e5aa5a6640db50389c009798163 +DIST webview2-com-macros-0.8.0.crate 2711 BLAKE2B 296f83b5aaa1262959f83085d3d3b15c9c4509bd80d423c679832de7e6f12799e21e09641bae5c4d0565a3caa63f8e17e534b36464a8cc44eade5ca1f65be079 SHA512 2bd1df13f231ddd90040936222b5803b94d9cba07d7b1695120b5fbe8b4e80096e913a5d879d7d5ba2663cbc88ecdee139dcf816cc1215c48985c6addc9887ca +DIST webview2-com-sys-0.34.0.crate 5626234 BLAKE2B c4f71a7628c1842a49c3d17eaba0a825b61efa3ed8b0fbac6e671a0461e7d888d1f33f943a3897198525fad6b931c9c856c9d4c1e4d45e87d8b0bc69e9226d4a SHA512 147006180d6850b8fba2f2f3c7b942808a7bc9af846f1f31eccfae1d93d6e8a016cf3b879e8762b5ea8f35be6cb3307f0a9902676f5dc41c9bbb8b677235d142 +DIST which-7.0.2.crate 21099 BLAKE2B 818302e48813802b879b12c6a506cbe11ef6edd2eb19b033d662d77101256bf5cadef163b075e3d255e24eb52009cc0bd8c03b8ae97749cf472eeae7b9489478 SHA512 23674bad5fd5ca2f3495bcaf530ab57e8c74ceab4bd502d974851569888e7e2367f5fedf1c09c3ba2100bf13c781c0c384f1397b6b5c03354684f290b2d2f5fc +DIST whoami-1.5.2.crate 24204 BLAKE2B 29ca6ac8b280d10882d39fe8f15850e2e6035c1e72445c7fb541acdd8784ee756f0a412daf3ea48f7f7755fd5ed68bdd309e85e9380bb9c5af7b05c197b46b14 SHA512 5ecb06b352528e3320cc71c6700f72a79a04791c33f08fde172762f6f2dde25218aa0d405604d0a18a741dba7c370c26cb63b471f09c7b2a6303cdf849606398 +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9 +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST window-vibrancy-0.5.2.crate 1404937 BLAKE2B cfb8807257bccd061793a18b1a8014d9749e41d9f6303d981f925a1f201d380dc6aa46cba48d72edac3a3bcdbbf3137d1f76c45c6a86453d3998536a880876c8 SHA512 33db959409209fd59920a98d0b03f32340223aa123b115f3be0488a529e746462d9c2b616bd65f7f3af3b9a7fd4cbb85a17fa379c6e8c995f0bea8d188ceae66 +DIST windows-0.57.0.crate 9694564 BLAKE2B f506c91f909e82f0ba7653351bbd9b455a4a028cac24ed0cf7bedf07e3670f3b804391ef65fd21a8a66c554c1089c48244ff1e30530bbe40bb94ea240454778b SHA512 df59ddcb41a6a4e4598b06e66856bc7bc01162e0fd1f109fcfd24e1c6c835475241746fb6a9abe458cff55a7c524837ffc48c6a3e0fc0b4f5edb614cc1d1062c +DIST windows-0.58.0.crate 9744521 BLAKE2B ad865c866cbc2825e35def7bd21c0a9015a87b8b9f1c01aa7b6a4ed49db8c8806e1fabdef9f729860d1501e79a4ed4872b19cfc347f5cd4c71d34baa3e14d052 SHA512 c4c6e4af6f6c4527325262189ef0106df5a1a0159c3cdab8d2364a0d7f060c197f109d2d021303779c8b3ff3295d13701e6fdeedcd67c8b09e9092d3279d2d8d +DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36 +DIST windows-core-0.57.0.crate 53695 BLAKE2B b986279aacd34409286ab5761ed38cea9218a2c9b4c5463ba662033b08a167cb65870aae17273e7a0977315ff6a6ad7593011d559fe51d8d8ca157184a1b2542 SHA512 db7dcdfe0f464206b15fbd262539386f67102f2c54c1ff7fe2e6a2e2b28e8d5e4ee0312b787ea55632ecf83260552dc2ba0349933b2d5ada4527b95d196c62fa +DIST windows-core-0.58.0.crate 41022 BLAKE2B fcc1113ea97fd4fb889a8ce1a03f6cebf340c2e6c26136a4185860a98eac3585caba7269cea351c832e388c9c25974c7807fe1929691ab39a14f1cf56d9d869d SHA512 d864e373a3d04edce84ec133b98496ffdd0cba2fb547ed6e5bb7f717648f4fddda8fe4af73ed24a9bac1e3a44f1031de4ad145ae662dd26531ed875317d4526d +DIST windows-implement-0.57.0.crate 10470 BLAKE2B 62bf0f37b73ba8d02dc316015deb7c47c9ef82e0d64cb7d1e624b320cabb37961a8ffe94132b97abafe1d1792bfd58b79d83b0ac3fb14e917f9ed6d9d5f7d362 SHA512 a78d37c8af8b163fb475f02ba667fdc6242bfd7b647061de2156aa94853ad793db112f0fb69549ed171119d654a4ccff0435c73664d5faaf3a32454054e1f12c +DIST windows-implement-0.58.0.crate 10491 BLAKE2B ca5ed4a45179924feb41b319c39121a22bfeaab36f93c8b9d6a26e399b188019179b4e1a0079cbb8fba80f88b8e174d3ec036751915cc3d258ba58c0b6ece332 SHA512 34c57da756632272276c051d3d67ff3c00ea7bfda787313f0487d629135a18dea52ce4d7f887d7e6d56e004a6efd0da6b00496ce05e413eabf69970ed64065a5 +DIST windows-interface-0.57.0.crate 10931 BLAKE2B deaaf2adfffff0c0ecaea0f43bfa772871e5f0894ddc6cd8a3bbf211c341bd04db653d4c164bb29a779665972d605439a3a79d5d8072ca78a3a228c1969c4fa9 SHA512 5c5814f81f819e9d220e8b16342f7ffc051cd920b466d8213144298e038b9c92e8ebea8e130c5357e5c6e9b04f1b1db125acedfac2d189658d12183f637248aa +DIST windows-interface-0.58.0.crate 11246 BLAKE2B 347c0f50e8bf0f93a1cd82aa194591b982902cffe178e84ae14e2e77fcc97867f80c6f84fd93be885d241da734fb428c82f12d5b6c77c55096f91508f5c2ea45 SHA512 242ae57290b011330bd9d9bad4f982209a94781cd3831f0991168b70c763c50945a67dc80d02fda0c8149d22090124e44c0fb3f20ff7264d0f4adfd1d692cef7 +DIST windows-registry-0.2.0.crate 10470 BLAKE2B 65deb9af12935a537d3334c026b6a6430c9ba5d14152bcd5da03fe6732cc3df60567c8b6f61af844e2c202337eaf5ccdfc74abd498c126c3d9328666b727d61e SHA512 bc952f9cc8dfb90481a7d7951b8b08eb64e049cb99239a506319fa4ef332563b8064926218195b2062413671e35a13ba642bb3144bbf8436eca8c8fcbaaf7669 +DIST windows-result-0.1.2.crate 10601 BLAKE2B 75db56ada75b59fbc450ea39d73c7ea2ca05239c7a1973bbbcef2445f5fe009e32eb0b1df15ab8b44802cebdb71671ad5e741019beea2d49eb59c37534b63197 SHA512 435649961752a345aa3bf5234f88c87248768ce0ee099f6836e889406941069fbbbb17b4c6cea981fe0aa30bcb8839dba88731fbb023265a14b6232c03fcf7df +DIST windows-result-0.2.0.crate 12756 BLAKE2B bd61fda1930933bfc9c55981b399c1f9d6d674b47ac194f413de8b4e69e476d9db7da2edd2990ce7918dd5ae28d42927bde1c8858a8f8dcab1ce9d5871d9e3dd SHA512 a8e52682e8b22f6a3d9b6fc759b69a7e1a093c777303b7fced725023b4e91dab4c5a07f8415222428e04fcaaffdc49d2b2738bac5f6a0db374cfc3ff9c540b55 +DIST windows-strings-0.1.0.crate 13832 BLAKE2B cf824e6587238df812470695dc623dbf8bed115f985ef62cda86f7a3836fca47fe0360b5bfcef81494617ad418588775673fbb8037746c75315ab6824bd3ac18 SHA512 f932d81985d7ad7598006e1271ebf2e7275b20a46cca421697f4a8517a2878264b6ece79dd684c6ecfecac0a61311d99137aa2d5c5944bc419a66749c4b99604 +DIST windows-sys-0.45.0.crate 2568659 BLAKE2B 6f2d634d121a9bf41e2887e277a73f33aee69b04c7fcfc6ff973d21902787997f1e186f530e9226cddc003ffc3f85a179c069c8a8688de459f617df92d33f94f SHA512 f239346c0141b95aa76e0771e2f4e38b9a592f3cd92c6001de353637cd65cd73b94cbf9917a4eaa9b0c0b2e6e2af920b9cf6b3fccb52770df5160254cffc1c47 +DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed +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.42.2.crate 5492 BLAKE2B 42fc4a7d3e287fe2a70637e890304b49737776596f4a94a6d216668247092135e84322bd04caddd19c83b7700b0f27278e600ce8ed326957fabc21bffcae89b0 SHA512 84fbaffcad9a80beca77506aac26d0c5cb75aa0f21a5a70bcd3f6a16e71e8753ae00d3b89da9262c99756624163dcc0d6074fa9f99dfaae0dc098018209025f9 +DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709 +DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f +DIST windows-targets-0.53.0.crate 7020 BLAKE2B 03a4ccd7d2f229491be1ac0fbf1ab4d4a5876f6850392635e670a3cbbfab2d069db9c697095ae75aa98d2a493d8b7220d545f4a17e234764bb97a43a46ee2816 SHA512 db8e6dd2e83bf11bc7cd96c5e32e5de201cfce3cec14d189223659b637d23d0a670d7436c7fbd9a0a25efc6d7430ae27c47202badca399c3244cde5eb90f2c32 +DIST windows-version-0.1.2.crate 7738 BLAKE2B cd515f1c7235ba9c22c0c5e8e456dff2f6b56947f6662deb44530fb7c75b86744215fa5a8f4dcfd754f7ad841ce5f2011c95c090f3a9d852a9da7ee05bfe1730 SHA512 f7a09cdefd2bf607ecc345d28683b4427a09fea2dc918bcad4ac752ade3fbdb86fd89db0729c59114af82e4a862181ec4853565dcad11f38dcc9d07d2200bd53 +DIST windows_aarch64_gnullvm-0.42.2.crate 364071 BLAKE2B 97c4e3b2a2dd3f936f9bfcdad23639c9c4c499eed220aec361d26d6013d798efa118e6b298f9cf841ac149d2ae5d58ca653731718450fcf2910bb5f6fa39159f SHA512 75cd7eb1def8ce9d0ff3d7468d2b1cc31cc76c08f981a2460c3d1eb09cff7100d7442863a3591621c1f5f3b3f4badf0b5c95285b6ed583e37283a8403f1095f1 +DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996 +DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5 +DIST windows_aarch64_gnullvm-0.53.0.crate 782443 BLAKE2B 64a74d4f10a60cfbd6cc02dfbb41ca9709abf56f49f74a6dfb4f4686bdc3d847d27eb92553c553c4ccbd39dd4f967bad1cba3c42a33a0e86fd8500284f260cd0 SHA512 185d1a63f3c00a4acd1a14701fd12ebcd715d6e709d6e40e6423e832fda0336463a8746f8eb5e3f81c9fbf26ed0de2332c04bd4d057c57ff67dd43e6a07fa9ac +DIST windows_aarch64_msvc-0.42.2.crate 666981 BLAKE2B 9f3cc5592cdede08bcdc1e7c455325279e3b763d96942695e10dccf1dfc37a81c749b69a7d6de883d4c0fa6e8a0d2f578fe2a8d6c42ad8ef6282590bf8fc87b7 SHA512 d2dafa8c94d01c1b65ca1bd631d31f2ef842f1db7accb132ff78c3f8483221b991afd3391563e03dcec42bbc9cbdc0ebdab47b991d25af85b5ba2ac1bbf8db63 +DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff +DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b +DIST windows_aarch64_msvc-0.53.0.crate 834446 BLAKE2B cc3df33489a282fcce6d693dd14d4bd5a284279794fed9e717a37c9367e4b3b40c47981e70adbcf8b15cc9cc01aebb63cf90f4564bd4289c8ef8daf59fd6bb50 SHA512 32d56f60b2327e334552f7554e67adc042b3c8e79f6b69237d83fa28f768cbee232b1e783430dad1b437dbaf2d7e1f1ae5c53e2cacf3021b99498148ac964cb3 +DIST windows_i686_gnu-0.42.2.crate 736236 BLAKE2B 4ef0496462afc73d9d72af7e5da1e6d3506a92f8172930e88ae64ab97596ffd31c4f97fb969e9b677e30159c27f00a8e756deb006b630fb98ce83f03c8b762e2 SHA512 ad09d650a05cb91cb6b40f59025c023a4c286bc1194586697c506016df2b9b0d5b02606b81687bc634795a0d9a9b8a73e486599328ae09c853e8e5ba662fc59c +DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a +DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822 +DIST windows_i686_gnu-0.53.0.crate 936973 BLAKE2B c64b15193a5263e871e1919ecdb49fbf5a94b3e5b8d96c547a9212733f3bd07096511cd6f6b129dd3566bfc263c17e909daf04925916cb4f6789c797926ea793 SHA512 676ec6ed73672e418913078d8bae9b74679db02a3b5bee9cc72c62452fb70d87f7dd1e2b2a7e4e6058f4bc536c15075f929c38c7261d7f47872099a397fb5ca3 +DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f +DIST windows_i686_gnullvm-0.53.0.crate 854056 BLAKE2B db81a346b516db01e7977137e11f79c0cf1df0763a5415b75c9f49972436c22ab77084f958b92a7cda3fa11bf2a764ee7bb6b2e6592889a895c278793a806ff6 SHA512 ec830a4c7b5d3be4948d788971f034c53e4bda7351ceb9aeb5a0af24868fe8c8383f96b1736de27832b113d2a679d5fa8764db2fe2db5942e25bccd036e96232 +DIST windows_i686_msvc-0.42.2.crate 724951 BLAKE2B b084286cd4927efd2889b149abf8a9fe9d3d777130db9e592982660dbf9a96a0f5e723ca121465787aa11877d2d29a5a7d7cf066cdc8fa7e90d7ca7dcb7677f1 SHA512 c1706fc36d4b157c020744a11b3eb5d7dfbf05a0b56775bc717e94b7fd725816b20154fdbcd69ac08dbfb8b8bbfa74fab72d7a9c10399aad6a1cc54cf597e804 +DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e +DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96 +DIST windows_i686_msvc-0.53.0.crate 903450 BLAKE2B 0cb567d1b54ff979ad6549f1a17919510eecd62e028bc01ee3448ade18d08e684746023881f713e078ae5ca9d9e799cc4e6d15bea12f926463d291f46d6b3c85 SHA512 9f7f6df98e47895e0824dd70af7b6dd5017b65a6904f0b0c6cba8df59f8162489754c6437f87b281fc8c34da2557e21eb33c89ef505f1b3fbcf60f5152191342 +DIST windows_x86_64_gnu-0.42.2.crate 699373 BLAKE2B 01c70809d564b16b268656e47295e99c992d8f9839fac8a51338a0e7c3b9cdcd0429c456ca8c1c139a8c687ed7ed6c43a82250889d881aadaa65bd037223e0a6 SHA512 5767af3c86e717f93137a89d442230e6b60a649057edb3ab104b1f82c0bcd64fe089dcdf2f4fd486a799bece1ddb5f0449641536b678211945e749ae24f35c1f +DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74 +DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb +DIST windows_x86_64_gnu-0.53.0.crate 902585 BLAKE2B f376f4ed30c1f82f567713f2fa03dd5fe5f8e78ea876d4d29e4b3a0fc52400d64cd6b971e06fb4607e5da15d6c4aba6a7a83841e2f178ffec73e70996f1ce052 SHA512 9856a67c32c9969100ff4f730047f92ecdf8a19e003553b3d9cbfd847f376a20c72a1202071a36f3640afbb6ff45f95c83579ce4a45a2b64485c980fc06b65ab +DIST windows_x86_64_gnullvm-0.42.2.crate 364068 BLAKE2B 64bc53e98eb3fc649c9b43a6e734de4e65088e41edacabd49f7afcc5dc6e1065c563ecfc682747dda05978dea2dba4f45c16fcc18c3b00684c3d93681e5a7deb SHA512 d39a8bc948110fe612d3f8d6628b3f0d56620df11d8a49e0fabb6c90389ad407582b3af10e4eab46c79b3d11d2e10753d73d9e55963fbeac085f41e9749bdba3 +DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa +DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd +DIST windows_x86_64_gnullvm-0.53.0.crate 782434 BLAKE2B b82d7a41c771db81f2dbc6500616fec8f019f89cc0f3c43b45332ff8275dd0f7919cf0b6e0fd2d50aaa1cd7e381e7d20211414f619ca92b60a21fa2137c7f9b0 SHA512 bd3777209b4cee092134c21298859d5974b29b70fd0d2882ae704b58a34413022de944f6254d8948fc87b4dbe1044b08ddc6a82b9d1a48b33d33509454318e7f +DIST windows_x86_64_msvc-0.42.2.crate 666936 BLAKE2B bc3a456e7f8bc272f8978ec69506ec9d89f97b7582ebbe05d8bd57bdf8156ef62d0d2dc6137a97e81d54059d70db97a24af9a038adff357f5dfd28805d6193b5 SHA512 53a35f438903fceb59e36bd2ac331773fb8e6c8c5a6d984e79021761f91b3b4a23efe49d219667a4d0d23dcdbf906da9c24e74fb1cff93395b5c55ff524e3788 +DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0 +DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7 +DIST windows_x86_64_msvc-0.53.0.crate 834400 BLAKE2B b5a06459571c6ac31fdb94d64f66f83ad71fa039ba04e07b62259ca66211662e703dc9afde205cb0489a2213a937ba1d8d6bc212262e8140a1629d2273d4bf43 SHA512 47265ca5d43c39c9470c9ff7caa8ad0962bf81cfedb207d3307895cc7e4885512a4895d3447906349e1261dbef531c0c3326cd82cecf6d645d42039997134707 +DIST winnow-0.5.40.crate 159316 BLAKE2B aae5076d59b3459c901d918d8aaa97ba8bfcc993b8484344f52e45f1f37deb96d6cd3a1663a67f3c367be2b05d633286f270274c621bda9f3ab72b98bb652cc2 SHA512 525156f08514b0110697360be6e331a68d08f0cb65ee4ba3ac9d101dd2d42a8c89601e7409bdb5652c5b05145626506651010f58a854c47712065334c61ff39c +DIST winnow-0.7.1.crate 170986 BLAKE2B 0c68ef187c248b7a04fc86aca9ed87eaa1cbfbf7ba63c64f6aceb9398d57d8d3a250d23d581710d86b593dc816fdac89c3a95abf3c4fe6c830a9d488ab95d512 SHA512 640952229a81845fbc2e425c816298481dcd7c86ba237e7f3d7cfc4e38a590e62787f0a1468037314c40452df69070f7809291f084484ea5a1ebc5e5315e0899 +DIST winreg-0.52.0.crate 30148 BLAKE2B 7b458d356ed1385b23ace88d8a7e2a4e2e3211ba4bd22e6488b60fe508ab2b5f6d93c7547e45e0564f512391a8fbc2af1bbd3e3e3a773865d87adff67b5b2fb5 SHA512 50659afe4fa9671696bb5c6a50d62e493ef5359a324a71f7877e2ff0b522560ad65196ac6d2f7f4117edb2e47e84adce7d1de5ed2ce273f132cb2d5006472e25 +DIST winsafe-0.0.19.crate 492820 BLAKE2B 4eba26861f85f668e134b08c60e9522b698aed61eaa5e6d4e89ef31c1b97953fa08a5157add52d9a306075df4ad97e9aaf1767eea4208b72401ec0bc1c3eb0e9 SHA512 0555ec74c5acbb69ab08e54d920094e806258079bffaff3f90297bb94a000c7da36d6eba0eae445d425c781465235dd70a198437cf83a1f113438bfd9baf4c21 +DIST wit-bindgen-rt-0.33.0.crate 3357 BLAKE2B 7c5227e835eb405b681ba36a2472fb3330b9e44f8e9cef06ae5de326691d4e4535cfd09843241963572060f4ccb048aa088fb8692591f9253cd215f510969420 SHA512 fffae2da775fcb5066398aba5cd02119a07f5bb5ab2282c74f1665656de0278ba13352b8ccc6ff107677aec3ec5d401729158332f653e0a2e7b393d1aa018b8a +DIST write16-1.0.0.crate 7218 BLAKE2B 548796314339463e4b71f8af3d344e45dc89480e103180b6d56c90fcb816ad1a37ab2ba20766c4b9754f2cc686752eb1f3a5a12ec1ed4369a9cef749ad4f3e97 SHA512 655a207b8082bb88e462f992ecb4833cef9d590da06d6356b41d109df2862b49ee5705189c78a607b549e7343035119d158020d58fcad49608e51659357a83c1 +DIST writeable-0.5.5.crate 22354 BLAKE2B e4ff9862c070b413568ce0c75d1eccafcf1db8578eee4795ea9046dadd643f8a77258b437be288b93af247199d63455298ac2cff909226bc432f91c0aa863921 SHA512 818b2546c8ec25816aeaf5e31a1ded927d197bf7256e7c5073738c2709bc58a95d382a0256eb38a99235ae83729b578701261866d42ea3357a26024906e196c1 +DIST wry-0.48.1.crate 176821 BLAKE2B 34b04da226f987ca98b8ca6e227b01c27622dc51a6326b7e448e9d25bcc9fa4b48782fb2dedba13a57aaf35984111d19171b6c31d8822a7fe4fd672c0454bce3 SHA512 b65016c6294580d0089b77de8870a4a08e7db4d7f91daf3ed167f3893c4a41d835bf828f78105ddc2b61feb52c59063122a5c06b14a9a6bc32fb5bbe02937e02 +DIST x11-2.21.0.crate 67810 BLAKE2B 075a51fd5f20b700389625b7f582a1d946d810d08f559df6fc4a8214e9383817578079402394420a5591872c29fc7ba440b992b4ed792a3a4db836804f25cb3b SHA512 1586ba1c0e77e70075ccbb9f3b88ab5af862d7f76f7d8108d4fc95fa87cb316865b593ec62aae53ab7ea0b90541e2b2db8806ea1b3fe9306b98ff4ac69daf674 +DIST x11-dl-2.21.0.crate 66823 BLAKE2B 83305b44ec89e765ecb2dc48fc3aa93bc67d30f12e9782348bca822ca636207e9a9c2b707ab33b6dfc7fadd2b2cdaa599480470eef7a29a15332e923413a7cce SHA512 b864b0865720a9b2afc6d986fb7ebe19734671433449897d7f00488e019f3781f417f8e3763f09fa0db100a1d0c7e709ea9ac43c6dd48775f3daf803ebaebee5 +DIST xattr-1.4.0.crate 12995 BLAKE2B 8e75a4636c42bdc052e00fcc020554e7431620950c67967af10ae1a61dfd26086ffd8ebd9836def0b79a4264f3b8fa7edef3e598a5bff4127bfc9eb05167a4e7 SHA512 57f5243055743dc5baa3c4028e20f469b93542eef8fad8ce41efb35268bad58f637c0573581d25796f4649ed3ec52bb4fe072613b64fcbc0e7fbc4a9a56d2b0a +DIST xz2-0.1.7.crate 23892 BLAKE2B fd4b65cc82405f28a3d9fcc3db9dbffac41ae8ec7e767f3405bc9c7e45000b529cd571f72a76e41f2fb9866e7af8ab37d9f1ab8e6f14652495d306ba0a745879 SHA512 9969ae958b157f3d49708bd00640e57fe7c3826add2871575bdac03e6064aabd28392e3062bfbb833752df374195c50b19dc6b6c08ac41455c492213fb91fc74 +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.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c +DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb +DIST zerofrom-0.1.5.crate 5091 BLAKE2B a2b938197957755c4a8ccfb258f60f90931a0a342d9d4bd098c7a25e1c9069148a51ddfffd2b72a6a9856d8c6e66fe1482ab2081a5f3478b4b318062caffff42 SHA512 11f16a1003967b3f30d7b32ffc8541ec05fb335690b08cf4f7554c624ad4312ee0961c83390a997e2a73aee06d8bb09a0ff4e6a5e489f8fb925141e732006544 +DIST zerofrom-derive-0.1.5.crate 8285 BLAKE2B d19bf1b74be89f4d27eda36ba6407d598358d3d69bed64f02903ab7dc509faa006cde9c13e19f5f3cde09cf9049120575263996c922b20da366a11e18baa42dc SHA512 75098e0f1c690bd8476f819f4ea2a7645b88237042a8876259bf4e025b070a4b105caf16ca7a824c5dd6c4690b693fcc74bed9ac0b5e6fdab05a5bed1b5cb298 +DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe +DIST zerovec-0.10.4.crate 126398 BLAKE2B b078784d6f178bbb9de1c3c1b6c7ef996f00bdd7dfd2924bda921e62f3e09e953fbf50f8d0da99ac6ff6d134f146253846f5663549dcf8df08eaf34b9d4016b3 SHA512 db12bba1d7476ddead92e6dfcdcc30e2e0defff4f263a740244eabee265a2cab265473a663d3dc3210f48e113b66d951da496dfab7965ce1bc792e5f2db422a0 +DIST zerovec-derive-0.10.3.crate 19438 BLAKE2B 9f7df8a4e4a0b62ab25aed967b26509db4bcc5d5b10b3bd73305099a4c49a60be8921484ced1a34d9b7ae30ffa5abe789686f432416a8f1cfc07de1db1dff594 SHA512 caefbffeb35265db9f74933bf07109d57f0da48156cafd4f330af78a5c7eb9ab0831a80789ad4fb119875ebc6cfd7e3de68c9984b77dca5151f9be41f1ae6e09 diff --git a/net-vpn/GlobalProtect-openconnect/metadata.xml b/net-vpn/GlobalProtect-openconnect/metadata.xml new file mode 100644 index 000000000000..51860efd7e51 --- /dev/null +++ b/net-vpn/GlobalProtect-openconnect/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Julien Roy</name> + <email>julien@jroy.ca</email> + </maintainer> + <upstream> + <changelog>https://github.com/yuezk/GlobalProtect-openconnect/issues</changelog> + <bugs-to>https://github.com/yuezk/GlobalProtect-openconnect/releases</bugs-to> + <remote-id type="github">yuezk/GlobalProtect-openconnect</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/amneziawg-modules/Manifest b/net-vpn/amneziawg-modules/Manifest new file mode 100644 index 000000000000..e28807919b05 --- /dev/null +++ b/net-vpn/amneziawg-modules/Manifest @@ -0,0 +1,2 @@ +DIST amneziawg-modules-1.0.20251009.tar.gz 406841 BLAKE2B ed7649619506d16f10e79e8ea13f24f7b22bd65c3cbbf66a19391ebc3b9fe3db744dee09ebf2b538bf1881c6b79084e16b5871d9b76a9673f45395d8291c0366 SHA512 1c807df0e54fa79f50c055229fe75a4289febd272c304528f5cfe57271aecfe2fb5a8c4480c82f527e1b0272bfae73e03b5b06119769e98d37bb4df65844f2ff +DIST amneziawg-modules-1.0.20260210.tar.gz 407303 BLAKE2B 537d7cc3d811e2a3e81b3031c0e4abb22dec3db0f8d3a609f6eea83791306350fbf0a9c82e438fdb76b13f49eb7b8fa9355968653bfedc036150b7cfb40b74e3 SHA512 705fbbb13e5d2f456fb321942ecd404420c5e54c75fbd28b7fd34583c9d6b0ca3b63e3eb18ddbb49f34354ffa0c042745fe2a0c97946a4dab65b52ebc864d5b5 diff --git a/net-vpn/amneziawg-modules/amneziawg-modules-1.0.20251009.ebuild b/net-vpn/amneziawg-modules/amneziawg-modules-1.0.20251009.ebuild new file mode 100644 index 000000000000..4fed4330d5d1 --- /dev/null +++ b/net-vpn/amneziawg-modules/amneziawg-modules-1.0.20251009.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-mod-r1 + +DESCRIPTION="AmneziaWG Linux kernel module" +HOMEPAGE="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module" +SRC_URI="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +S="${WORKDIR}/amneziawg-linux-kernel-module-${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="debug" + +CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI" + +pkg_setup() { + linux-mod-r1_pkg_setup + if kernel_is -lt 3 10 0; then + die "This version of ${PN} requires Linux >= 3.10." + fi +} + +src_compile() { + local modlist=( amneziawg=net:src::module ) + local modargs=( + KERNELDIR=${KV_OUT_DIR} + ) + use debug && modargs+=( CONFIG_AMNEZIAWG_DEBUG=y ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + local old new + if [[ $(uname -r) != "${KV_FULL}" ]]; then + ewarn + ewarn "You have just built AmneziaWG for kernel ${KV_FULL}, yet the currently running" + ewarn "kernel is $(uname -r). If you intend to use this AmneziaWG module on the currently" + ewarn "running machine, you will first need to reboot it into the kernel ${KV_FULL}, for" + ewarn "which this module was built." + ewarn + elif [[ -f /sys/module/amneziawg/version ]] && \ + old="$(</sys/module/amneziawg/version)" && \ + new="$(modinfo -F version "${ROOT}/lib/modules/${KV_FULL}/net/amneziawg.ko" 2>/dev/null)" && \ + [[ $old != "$new" ]]; then + ewarn + ewarn "You appear to have just upgraded AmneziaWG from version v$old to v$new." + ewarn "However, the old version is still running on your system. In order to use the" + ewarn "new version, you will need to remove the old module and load the new one. As" + ewarn "root, you can accomplish this with the following commands:" + ewarn + ewarn " # rmmod amneziawg" + ewarn " # modprobe amneziawg" + ewarn + ewarn "Do note that doing this will remove current AmneziaWG interfaces, so you may want" + ewarn "to gracefully remove them yourself prior." + ewarn + fi +} diff --git a/net-vpn/amneziawg-modules/amneziawg-modules-1.0.20260210.ebuild b/net-vpn/amneziawg-modules/amneziawg-modules-1.0.20260210.ebuild new file mode 100644 index 000000000000..ffdb47f7d095 --- /dev/null +++ b/net-vpn/amneziawg-modules/amneziawg-modules-1.0.20260210.ebuild @@ -0,0 +1,74 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-mod-r1 + +DESCRIPTION="AmneziaWG Linux kernel module" +HOMEPAGE="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module" +SRC_URI="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +S="${WORKDIR}/amneziawg-linux-kernel-module-${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="debug" + +CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI" + +pkg_setup() { + linux-mod-r1_pkg_setup + + if kernel_is -lt 3 10 0; then + die "This version of ${PN} requires Linux >= 3.10." + fi + + # https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/issues/138 + if kernel_is -ge 6 19 0; then + die "This version of ${PN} requires Linux < 6.19." + fi +} + +src_compile() { + local modlist=( amneziawg=net:src::module ) + local modargs=( + KERNELDIR=${KV_OUT_DIR} + ) + use debug && modargs+=( CONFIG_AMNEZIAWG_DEBUG=y ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + local old new + if [[ $(uname -r) != "${KV_FULL}" ]]; then + ewarn + ewarn "You have just built AmneziaWG for kernel ${KV_FULL}, yet the currently running" + ewarn "kernel is $(uname -r). If you intend to use this AmneziaWG module on the currently" + ewarn "running machine, you will first need to reboot it into the kernel ${KV_FULL}, for" + ewarn "which this module was built." + ewarn + elif [[ -f /sys/module/amneziawg/version ]] && \ + old="$(</sys/module/amneziawg/version)" && \ + new="$(modinfo -F version "${ROOT}/lib/modules/${KV_FULL}/net/amneziawg.ko" 2>/dev/null)" && \ + [[ $old != "$new" ]]; then + ewarn + ewarn "You appear to have just upgraded AmneziaWG from version v$old to v$new." + ewarn "However, the old version is still running on your system. In order to use the" + ewarn "new version, you will need to remove the old module and load the new one. As" + ewarn "root, you can accomplish this with the following commands:" + ewarn + ewarn " # rmmod amneziawg" + ewarn " # modprobe amneziawg" + ewarn + ewarn "Do note that doing this will remove current AmneziaWG interfaces, so you may want" + ewarn "to gracefully remove them yourself prior." + ewarn + fi +} diff --git a/net-vpn/amneziawg-modules/metadata.xml b/net-vpn/amneziawg-modules/metadata.xml new file mode 100644 index 000000000000..e7dc1a89724d --- /dev/null +++ b/net-vpn/amneziawg-modules/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Pavel Sobolev</name> + <email>contact@paveloom.dev</email> + </maintainer> + <use> + <flag name="debug">Enable verbose debug reporting in dmesg of various AmneziaWG peer and device information.</flag> + </use> + <upstream> + <bugs-to>https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/issues</bugs-to> + <remote-id type="github">amnezia-vpn/amneziawg-linux-kernel-module</remote-id> + </upstream> +</pkgmetadata> + diff --git a/net-vpn/amneziawg-tools/Manifest b/net-vpn/amneziawg-tools/Manifest new file mode 100644 index 000000000000..5f725f08b5ef --- /dev/null +++ b/net-vpn/amneziawg-tools/Manifest @@ -0,0 +1,2 @@ +DIST amneziawg-tools-1.0.20250903.tar.gz 160214 BLAKE2B ec32969cf32b0c75179a3c53702997963c176e61958d4cc166706d8439ae736e191be488e7dc93e3c2f9d8657e67deee674359b15e19ca473ddfc19f5fe3767d SHA512 a69f3911b18cd5abb73ba1f695802c87205ed6be10be035a5d06ca266c5de3c0b88c0aeac7670bc302112288f1b58937608e7b2835a22d2b4fc45a8f63b218ad +DIST amneziawg-tools-1.0.20260223.tar.gz 160261 BLAKE2B 33277e23dfd7b498e845329a853495ecfe4ca00faf1f9d5aa2288e302d0d03363df418082f32c727ce83b67ece8dccd91c252964e67c42a6646d7cea1d489227 SHA512 591afaef659e26be16c8d883da8d8ff026f855f60c9887440b566ef18b9948ca57754673d833f27e77d8c05f7e354f37b49adc9f5467334eeb7eda7165960c54 diff --git a/net-vpn/amneziawg-tools/amneziawg-tools-1.0.20250903.ebuild b/net-vpn/amneziawg-tools/amneziawg-tools-1.0.20250903.ebuild new file mode 100644 index 000000000000..231922fd632f --- /dev/null +++ b/net-vpn/amneziawg-tools/amneziawg-tools-1.0.20250903.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info bash-completion-r1 systemd toolchain-funcs + +DESCRIPTION="Required tools for AmneziaWG, such as awg(8) and awg-quick(8)" +HOMEPAGE="https://github.com/amnezia-vpn/amneziawg-tools" +SRC_URI="https://github.com/amnezia-vpn/amneziawg-tools/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+awg-quick selinux" + +BDEPEND="virtual/pkgconfig" +RDEPEND="${DEPEND} + awg-quick? ( + || ( net-firewall/nftables net-firewall/iptables ) + virtual/resolvconf + ) + selinux? ( sec-policy/selinux-wireguard ) +" + +awg_quick_optional_config_nob() { + CONFIG_CHECK="$CONFIG_CHECK ~$1" + declare -g ERROR_$1="CONFIG_$1: This option is required for automatic routing of default routes inside of awg-quick(8), though it is not required for general AmneziaWG usage." +} + +pkg_setup() { + if use awg-quick; then + awg_quick_optional_config_nob IP_ADVANCED_ROUTER + awg_quick_optional_config_nob IP_MULTIPLE_TABLES + awg_quick_optional_config_nob IPV6_MULTIPLE_TABLES + if has_version net-firewall/nftables; then + awg_quick_optional_config_nob NF_TABLES + awg_quick_optional_config_nob NF_TABLES_IPV4 + awg_quick_optional_config_nob NF_TABLES_IPV6 + awg_quick_optional_config_nob NFT_CT + awg_quick_optional_config_nob NFT_FIB + awg_quick_optional_config_nob NFT_FIB_IPV4 + awg_quick_optional_config_nob NFT_FIB_IPV6 + awg_quick_optional_config_nob NF_CONNTRACK_MARK + elif has_version net-firewall/iptables; then + awg_quick_optional_config_nob NETFILTER_XTABLES + awg_quick_optional_config_nob NETFILTER_XT_MARK + awg_quick_optional_config_nob NETFILTER_XT_CONNMARK + awg_quick_optional_config_nob NETFILTER_XT_MATCH_COMMENT + awg_quick_optional_config_nob NETFILTER_XT_MATCH_ADDRTYPE + awg_quick_optional_config_nob IP6_NF_RAW + awg_quick_optional_config_nob IP_NF_RAW + awg_quick_optional_config_nob IP6_NF_FILTER + awg_quick_optional_config_nob IP_NF_FILTER + fi + fi + get_version + if ! has_version net-vpn/amneziawg-modules; then + ewarn + ewarn "Linux kernel does not have upstream support for AmneziaWG." + ewarn "However, the net-vpn/amneziawg-modules ebuild" + ewarn "contains a module that should work for your kernel." + ewarn "It is highly recommended to install it:" + ewarn + ewarn " emerge -av net-vpn/amneziawg-modules" + ewarn + fi + linux-info_pkg_setup +} + +src_compile() { + emake RUNSTATEDIR="${EPREFIX}/run" -C src CC="$(tc-getCC)" LD="$(tc-getLD)" +} + +src_install() { + dodoc README.md + dodoc -r contrib + emake \ + WITH_BASHCOMPLETION=yes \ + WITH_SYSTEMDUNITS=yes \ + WITH_WGQUICK=$(usex awg-quick) \ + DESTDIR="${D}" \ + BASHCOMPDIR="$(get_bashcompdir)" \ + SYSTEMDUNITDIR="$(systemd_get_systemunitdir)" \ + PREFIX="${EPREFIX}/usr" \ + -C src install + use awg-quick && newinitd "${FILESDIR}/awg-quick.init" awg-quick +} diff --git a/net-vpn/amneziawg-tools/amneziawg-tools-1.0.20260223.ebuild b/net-vpn/amneziawg-tools/amneziawg-tools-1.0.20260223.ebuild new file mode 100644 index 000000000000..d56be730d3c5 --- /dev/null +++ b/net-vpn/amneziawg-tools/amneziawg-tools-1.0.20260223.ebuild @@ -0,0 +1,88 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info bash-completion-r1 systemd toolchain-funcs + +DESCRIPTION="Required tools for AmneziaWG, such as awg(8) and awg-quick(8)" +HOMEPAGE="https://github.com/amnezia-vpn/amneziawg-tools" +SRC_URI="https://github.com/amnezia-vpn/amneziawg-tools/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+awg-quick selinux" + +BDEPEND="virtual/pkgconfig" +RDEPEND="${DEPEND} + awg-quick? ( + || ( net-firewall/nftables net-firewall/iptables ) + virtual/resolvconf + ) + selinux? ( sec-policy/selinux-wireguard ) +" + +awg_quick_optional_config_nob() { + CONFIG_CHECK="$CONFIG_CHECK ~$1" + declare -g ERROR_$1="CONFIG_$1: This option is required for automatic routing of default routes inside of awg-quick(8), though it is not required for general AmneziaWG usage." +} + +pkg_setup() { + if use awg-quick; then + awg_quick_optional_config_nob IP_ADVANCED_ROUTER + awg_quick_optional_config_nob IP_MULTIPLE_TABLES + awg_quick_optional_config_nob IPV6_MULTIPLE_TABLES + if has_version net-firewall/nftables; then + awg_quick_optional_config_nob NF_TABLES + awg_quick_optional_config_nob NF_TABLES_IPV4 + awg_quick_optional_config_nob NF_TABLES_IPV6 + awg_quick_optional_config_nob NFT_CT + awg_quick_optional_config_nob NFT_FIB + awg_quick_optional_config_nob NFT_FIB_IPV4 + awg_quick_optional_config_nob NFT_FIB_IPV6 + awg_quick_optional_config_nob NF_CONNTRACK_MARK + elif has_version net-firewall/iptables; then + awg_quick_optional_config_nob NETFILTER_XTABLES + awg_quick_optional_config_nob NETFILTER_XT_MARK + awg_quick_optional_config_nob NETFILTER_XT_CONNMARK + awg_quick_optional_config_nob NETFILTER_XT_MATCH_COMMENT + awg_quick_optional_config_nob NETFILTER_XT_MATCH_ADDRTYPE + awg_quick_optional_config_nob IP6_NF_RAW + awg_quick_optional_config_nob IP_NF_RAW + awg_quick_optional_config_nob IP6_NF_FILTER + awg_quick_optional_config_nob IP_NF_FILTER + fi + fi + get_version + if ! has_version net-vpn/amneziawg-modules; then + ewarn + ewarn "Linux kernel does not have upstream support for AmneziaWG." + ewarn "However, the net-vpn/amneziawg-modules ebuild" + ewarn "contains a module that should work for your kernel." + ewarn "It is highly recommended to install it:" + ewarn + ewarn " emerge -av net-vpn/amneziawg-modules" + ewarn + fi + linux-info_pkg_setup +} + +src_compile() { + emake RUNSTATEDIR="${EPREFIX}/run" -C src CC="$(tc-getCC)" LD="$(tc-getLD)" +} + +src_install() { + dodoc README.md + dodoc -r contrib + emake \ + WITH_BASHCOMPLETION=yes \ + WITH_SYSTEMDUNITS=yes \ + WITH_WGQUICK=$(usex awg-quick) \ + DESTDIR="${D}" \ + BASHCOMPDIR="$(get_bashcompdir)" \ + SYSTEMDUNITDIR="$(systemd_get_systemunitdir)" \ + PREFIX="${EPREFIX}/usr" \ + -C src install + use awg-quick && newinitd "${FILESDIR}/awg-quick.init" awg-quick +} diff --git a/net-vpn/amneziawg-tools/files/awg-quick.init b/net-vpn/amneziawg-tools/files/awg-quick.init new file mode 100644 index 000000000000..792c131f11ac --- /dev/null +++ b/net-vpn/amneziawg-tools/files/awg-quick.init @@ -0,0 +1,38 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="AmneziaWG" +description="AmneziaWG via awg-quick(8)" + +depend() { + need net + use dns +} + +CONF="${SVCNAME#*.}" + +checkconfig() { + if [ "$CONF" = "$SVCNAME" ]; then + eerror "You cannot call this init script directly. You must create a symbolic link to it with the configuration name:" + eerror " ln -s /etc/init.d/awg-quick /etc/init.d/awg-quick.vpn0" + eerror "And then call it instead:" + eerror " /etc/init.d/awg-quick.vpn0 start" + return 1 + fi + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting $description for $CONF" + awg-quick up "$CONF" + eend $? "Failed to start $description for $CONF" +} + +stop() { + checkconfig || return 1 + ebegin "Stopping $description for $CONF" + awg-quick down "$CONF" + eend $? "Failed to stop $description for $CONF" +} diff --git a/net-vpn/amneziawg-tools/metadata.xml b/net-vpn/amneziawg-tools/metadata.xml new file mode 100644 index 000000000000..ad302208d9d6 --- /dev/null +++ b/net-vpn/amneziawg-tools/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Pavel Sobolev</name> + <email>contact@paveloom.dev</email> + </maintainer> + <use> + <flag name="awg-quick">Install the awg-quick(8) helper tool. Most users want to use this.</flag> + </use> + <upstream> + <bugs-to>https://github.com/amnezia-vpn/amneziawg-tools/issues</bugs-to> + <remote-id type="github">amnezia-vpn/amneziawg-tools</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/candy/Manifest b/net-vpn/candy/Manifest new file mode 100644 index 000000000000..f55d7d67741f --- /dev/null +++ b/net-vpn/candy/Manifest @@ -0,0 +1,2 @@ +DIST candy-6.1.6.gh.tar.gz 337782 BLAKE2B e7765f84f21aa2b29b11eb2d4154e472b70f4ee5cf3bff83cf14996a12c1c4ba56e6b451516c07aac3b0357cef8e2d91d3d678e5a67ea873a06af76e1d3c467e SHA512 5ad2a502981a60be3810cb8de589590d3d35a1e1f1b3b7b4737f93eb207df7ea8e715705c6b3714306aafedb67cb14e88cfe59705c254de235cda48bd081a672 +DIST candy-6.1.7.gh.tar.gz 338183 BLAKE2B 2c51c36b157cfbbff77f1065cdccd4eaaf73d9b3431071e9650d049863c0a2f1e67dec441c211aa677c9ba90f63e7154148b6e779b89481a83b1ce59e1682b36 SHA512 0bb58ffe4911730eec1ec6bcd9af4794be22444f162cc100964feb16db142c3def4a75170e97a985ef9bf3cc4ecef366fcdbcb1f7bdd2a583dd8a7c9f58c2361 diff --git a/net-vpn/candy/candy-6.1.6-r1.ebuild b/net-vpn/candy/candy-6.1.6-r1.ebuild new file mode 100644 index 000000000000..f4271429ba33 --- /dev/null +++ b/net-vpn/candy/candy-6.1.6-r1.ebuild @@ -0,0 +1,42 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake systemd readme.gentoo-r1 + +DESCRIPTION="A reliable, low-latency, and anti-censorship virtual private network" +HOMEPAGE="https://github.com/lanthora/candy" +SRC_URI="https://github.com/lanthora/candy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +DEPEND=" + dev-libs/poco:=[crypt,net,util,xml] + dev-libs/openssl:= + dev-libs/spdlog:= + dev-libs/libfmt:= +" +RDEPEND=" + ${DEPEND} +" + +src_install(){ + cmake_src_install + default + + insinto /etc + doins candy.cfg + + systemd_dounit candy.service + systemd_dounit candy@.service + newinitd candy.initd candy + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/net-vpn/candy/candy-6.1.7.ebuild b/net-vpn/candy/candy-6.1.7.ebuild new file mode 100644 index 000000000000..f4271429ba33 --- /dev/null +++ b/net-vpn/candy/candy-6.1.7.ebuild @@ -0,0 +1,42 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake systemd readme.gentoo-r1 + +DESCRIPTION="A reliable, low-latency, and anti-censorship virtual private network" +HOMEPAGE="https://github.com/lanthora/candy" +SRC_URI="https://github.com/lanthora/candy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +DEPEND=" + dev-libs/poco:=[crypt,net,util,xml] + dev-libs/openssl:= + dev-libs/spdlog:= + dev-libs/libfmt:= +" +RDEPEND=" + ${DEPEND} +" + +src_install(){ + cmake_src_install + default + + insinto /etc + doins candy.cfg + + systemd_dounit candy.service + systemd_dounit candy@.service + newinitd candy.initd candy + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/net-vpn/candy/files/README.gentoo b/net-vpn/candy/files/README.gentoo new file mode 100644 index 000000000000..810d833321b0 --- /dev/null +++ b/net-vpn/candy/files/README.gentoo @@ -0,0 +1,10 @@ +Notes: + Running candy with multi instances + + 1) Using OpenRC + Prepare /etc/candy.d/${foo}.cfg first + # ln -s /etc/init.d/candy{,.${foo}} + # rc-update add candy.${foo} default + + 2) Using Systemd + # systemctl enable candy@${foo} diff --git a/net-vpn/candy/metadata.xml b/net-vpn/candy/metadata.xml new file mode 100644 index 000000000000..997cf71315bb --- /dev/null +++ b/net-vpn/candy/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>yangmame@icloud.com</email> + <name>Xin Yang</name> + </maintainer> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <upstream> + <remote-id type="github">lanthora/candy</remote-id> + <maintainer> + <name>lanthora</name> + <email>lanthora@outlook.com</email> + </maintainer> + </upstream> +</pkgmetadata> diff --git a/net-vpn/cloudflare-warp/Manifest b/net-vpn/cloudflare-warp/Manifest new file mode 100644 index 000000000000..8511d043e6f3 --- /dev/null +++ b/net-vpn/cloudflare-warp/Manifest @@ -0,0 +1,3 @@ +DIST cloudflare-warp-2026.1.150.0.x86_64.rpm 57413580 BLAKE2B 7e2d566a39ca4c1affc7f1226adc2de30191194598f039e1d28a478c10285bec52ee6ab42fc0b8b0fa6657da73ef6af2b2d421d695f60e6f364459d766154d99 SHA512 4f955d978e94feebdb1d67db3a5b0e7ab37069573be2e73fcb0910740a9c69e08eab88e04ce128faa7c88e3544fc3cf1c5cacafb447113f8ed52540a486019b4 +DIST cloudflare-warp-2026.3.846.0.x86_64.rpm 57220073 BLAKE2B 3b9de22fd40833557798324682bbba981f40a901cc0afdfb4ea0eee0c7a45d5b131b4bfda13530992d3e8d77463986c8f1f864245951084bb08a3c17368ac1d6 SHA512 1db11bcf479b8511300a947cbe0051a4436227df586065a4ea8684e911208e0b4b38a03d113ab6af75c75211b07686562155dea30213f5d111a32879fe60b3cc +DIST cloudflare-warp_2026.4.1350.0_amd64.deb 77317298 BLAKE2B cd79ebbbd6f5310fa7c39bf33ef33d47c2589729c6c0cbd2286de17e289814c80b638dab788c0e95a233082c741a8f2be63f50f44301e3d9eab1e95ad7bbae95 SHA512 27737fbd009b88afa07326692fbc0cd3a7ab3b0c97440bf3305440dd8733114fbdaeef7fac00495587ba998821eafdb0d95ca479dfb67aafcf2501a4a05d537e diff --git a/net-vpn/cloudflare-warp/cloudflare-warp-2026.1.150.0-r1.ebuild b/net-vpn/cloudflare-warp/cloudflare-warp-2026.1.150.0-r1.ebuild new file mode 100644 index 000000000000..0567c98a433c --- /dev/null +++ b/net-vpn/cloudflare-warp/cloudflare-warp-2026.1.150.0-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit rpm systemd xdg desktop + +DESCRIPTION="Cloudflare Warp Client" +HOMEPAGE="https://1.1.1.1" +SRC_URI=" + https://downloads.cloudflareclient.com/v1/download/fedora35-intel/version/${PV} + -> ${P}.x86_64.rpm +" +S="${WORKDIR}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="-* ~amd64" +IUSE="+gui" +RESTRICT="bindist mirror" + +DEPEND=" + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + net-firewall/nftables + net-libs/libpcap + sys-apps/dbus + x11-libs/cairo + gui? ( + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/pango + ) +" +RDEPEND="${DEPEND}" + +QA_PREBUILT=" + usr/bin/warp-.* +" + +src_unpack() { + rpm_unpack ${A} +} + +src_install() { + dobin bin/warp-{cli,dex,diag,svc} + systemd_dounit opt/cloudflare-warp/warp-svc.service + newinitd "${FILESDIR}"/warp-svc.initd warp-svc + + if use gui; then + dobin bin/{warp-desktop-svc,warp-taskbar} + systemd_douserunit usr/lib/systemd/user/warp-desktop-svc.service + domenu usr/share/applications/com.cloudflare.WarpTaskbar.desktop + + doicon -s scalable usr/share/icons/hicolor/scalable/apps/*.svg + insinto /usr/share/warp/images + doins usr/share/warp/images/*.png + + insinto /etc/xdg/autostart + doins etc/xdg/autostart/com.cloudflare.WarpTaskbar.desktop + fi +} diff --git a/net-vpn/cloudflare-warp/cloudflare-warp-2026.3.846.0.ebuild b/net-vpn/cloudflare-warp/cloudflare-warp-2026.3.846.0.ebuild new file mode 100644 index 000000000000..48b37d6b1e38 --- /dev/null +++ b/net-vpn/cloudflare-warp/cloudflare-warp-2026.3.846.0.ebuild @@ -0,0 +1,64 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RPM_COMPRESS_TYPE=none +inherit rpm systemd xdg desktop + +DESCRIPTION="Cloudflare Warp Client" +HOMEPAGE="https://1.1.1.1" +SRC_URI=" + https://downloads.cloudflareclient.com/v1/download/fedora35-intel/version/${PV} + -> ${P}.x86_64.rpm +" +S="${WORKDIR}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="-* ~amd64" +IUSE="+gui" +RESTRICT="bindist mirror" + +DEPEND=" + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + net-firewall/nftables + net-libs/libpcap + sys-apps/dbus + x11-libs/cairo + gui? ( + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/pango + ) +" +RDEPEND="${DEPEND}" + +QA_PREBUILT=" + usr/bin/warp-.* +" + +src_unpack() { + rpm_unpack ${A} +} + +src_install() { + dobin bin/warp-{cli,dex,diag,svc} + systemd_dounit opt/cloudflare-warp/warp-svc.service + newinitd "${FILESDIR}"/warp-svc.initd warp-svc + + if use gui; then + dobin bin/{warp-desktop-svc,warp-taskbar} + systemd_douserunit usr/lib/systemd/user/warp-desktop-svc.service + domenu usr/share/applications/com.cloudflare.WarpTaskbar.desktop + + doicon -s scalable usr/share/icons/hicolor/scalable/apps/*.svg + insinto /usr/share/warp/images + doins usr/share/warp/images/*.png + + insinto /etc/xdg/autostart + doins etc/xdg/autostart/com.cloudflare.WarpTaskbar.desktop + fi +} diff --git a/net-vpn/cloudflare-warp/cloudflare-warp-2026.4.1350.0.ebuild b/net-vpn/cloudflare-warp/cloudflare-warp-2026.4.1350.0.ebuild new file mode 100644 index 000000000000..dca13f106414 --- /dev/null +++ b/net-vpn/cloudflare-warp/cloudflare-warp-2026.4.1350.0.ebuild @@ -0,0 +1,83 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit unpacker systemd xdg desktop + +DESCRIPTION="Cloudflare Warp Client" +HOMEPAGE="https://1.1.1.1" +SRC_URI="https://pkg.cloudflareclient.com/pool/jammy/main/c/cloudflare-warp/${PN}_${PV}_amd64.deb" +S="${WORKDIR}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="-* ~amd64" +IUSE="+gui" +RESTRICT="bindist mirror" + +DEPEND=" + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + net-firewall/nftables + net-libs/libpcap + sys-apps/dbus + gui? ( + app-accessibility/at-spi2-core:2 + dev-libs/ayatana-ido + dev-libs/libayatana-appindicator + dev-libs/libayatana-indicator:3 + dev-libs/libdbusmenu + media-libs/fontconfig + media-libs/harfbuzz + media-libs/libepoxy + net-libs/libsoup:3.0 + net-libs/webkit-gtk:4.1 + net-misc/curl + virtual/zlib + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/pango + ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + app-admin/chrpath + dev-util/patchelf +" + +QA_PREBUILT=" + usr/bin/warp-.* + usr/libexec/warp/.* +" + +src_prepare() { + default + # Fixup the library dependencies to match the ones in the system + patchelf --replace-needed libpcap.so.0.8 libpcap.so.1 "${S}"/bin/warp-dex || die + chrpath -d "${S}/usr/lib/warp/lib/crashpad_handler" || die + rm "${S}/usr/lib/warp/lib/libdartjni.so" || die +} + +src_install() { + dobin bin/warp-{cli,dex,diag,svc} + domenu usr/share/applications/com.cloudflare.warp.desktop + systemd_dounit lib/systemd/system/warp-svc.service + newinitd "${FILESDIR}"/warp-svc.initd warp-svc + + if use gui; then + mkdir -p "${D}"/usr/libexec/warp || die + cp -r "${S}"/usr/lib/warp/* "${D}"/usr/libexec/warp/ || die + + dosym ../libexec/warp/warp-taskbar usr/bin/warp-taskbar + systemd_douserunit usr/lib/systemd/user/warp-taskbar.service + domenu usr/share/applications/com.cloudflare.WarpTaskbar.desktop + + doicon -s scalable usr/share/icons/hicolor/scalable/apps/*.svg + + insinto /usr/share/dbus-1/services + doins usr/share/dbus-1/services/com.cloudflare.WarpTaskbar.service + fi +} diff --git a/net-vpn/cloudflare-warp/files/warp-svc.initd b/net-vpn/cloudflare-warp/files/warp-svc.initd new file mode 100644 index 000000000000..96d1d9e89efa --- /dev/null +++ b/net-vpn/cloudflare-warp/files/warp-svc.initd @@ -0,0 +1,11 @@ +#!/sbin/openrc-run + +name=$RC_SVCNAME +description="Cloudflare Zero Trust Client Daemon" +supervisor="supervise-daemon" +command="/bin/warp-svc" +command_args="" + +depend() { + need net +} diff --git a/net-vpn/cloudflare-warp/metadata.xml b/net-vpn/cloudflare-warp/metadata.xml new file mode 100644 index 000000000000..8b1443351bf8 --- /dev/null +++ b/net-vpn/cloudflare-warp/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>arthurzam@gentoo.org</email> + <name>Arthur Zamarin</name> + </maintainer> +</pkgmetadata> diff --git a/net-vpn/cloudflared/Manifest b/net-vpn/cloudflared/Manifest new file mode 100644 index 000000000000..1b03f4a38b67 --- /dev/null +++ b/net-vpn/cloudflared/Manifest @@ -0,0 +1,2 @@ +DIST cloudflared-2026.3.0.tar.gz 7099252 BLAKE2B a4198aa1b43603bd165f446dd18ed9b91932c8327c816853ca695595401259bf8c712feb12763d6950ee2b271f5eee441fdac72d1d27c205c209832775193efd SHA512 4d455bbe04d8b401ed4b3bf721d0ea9a0d4ecbce2ab4680cd83ee3a9fe7504598790cf3ae482901ff95ee8b872da8bd24f1ec8ac1ad783431f7e53c55ad9ee3c +DIST cloudflared-2026.5.2.tar.gz 6790497 BLAKE2B c110ff4b1299a7491336bf01db45d4032f817343c0bafc29be97d2f5a21dc343eb53b7f3cb651057a0a920b99d6eea74b6213c1042a3fc4e88a9f817426da6cc SHA512 b64e4f98ea3408638eea259cbaa5e2a3381529c7bcc4dad0ffee388af8785bcf2c249d3d87ba602205bf693ab7a16e68859f9be66b63a2408a7964adf26b9b5a diff --git a/net-vpn/cloudflared/cloudflared-2026.3.0.ebuild b/net-vpn/cloudflared/cloudflared-2026.3.0.ebuild new file mode 100644 index 000000000000..88c15cc38df9 --- /dev/null +++ b/net-vpn/cloudflared/cloudflared-2026.3.0.ebuild @@ -0,0 +1,31 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module + +DESCRIPTION="A command-line client and tunneling daemon for Cloudflare Tunnel" +HOMEPAGE="https://github.com/cloudflare/cloudflared" +SRC_URI="https://github.com/cloudflare/cloudflared/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 arm64" + +# "make test" fails since cloudflared-2024.12.1, and fails with network-sanbox +RESTRICT="test" + +BDEPEND=">=dev-lang/go-1.24.13" + +src_compile(){ + local ldflags=" + -X main.Version=${PV} + -X 'main.BuildTime=$(date +'%F %T %z')'" + ego build -ldflags "${ldflags}" ./cmd/cloudflared +} + +src_install(){ + dobin cloudflared + einstalldocs +} diff --git a/net-vpn/cloudflared/cloudflared-2026.5.2.ebuild b/net-vpn/cloudflared/cloudflared-2026.5.2.ebuild new file mode 100644 index 000000000000..55809e3374e2 --- /dev/null +++ b/net-vpn/cloudflared/cloudflared-2026.5.2.ebuild @@ -0,0 +1,31 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module + +DESCRIPTION="A command-line client and tunneling daemon for Cloudflare Tunnel" +HOMEPAGE="https://github.com/cloudflare/cloudflared" +SRC_URI="https://github.com/cloudflare/cloudflared/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +# "make test" fails since cloudflared-2024.12.1, and fails with network-sanbox +RESTRICT="test" + +BDEPEND=">=dev-lang/go-1.26.3" + +src_compile(){ + local ldflags=" + -X main.Version=${PV} + -X 'main.BuildTime=$(date +'%F %T %z')'" + ego build -ldflags "${ldflags}" ./cmd/cloudflared +} + +src_install(){ + dobin cloudflared + einstalldocs +} diff --git a/net-vpn/cloudflared/metadata.xml b/net-vpn/cloudflared/metadata.xml new file mode 100644 index 000000000000..b31454043882 --- /dev/null +++ b/net-vpn/cloudflared/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>peeweep@0x0.ee</email> + <name>jinqiang zhang</name> + </maintainer> + <maintainer type="person" proxied="yes"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <upstream> + <remote-id type="github">cloudflare/cloudflared</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/corkscrew/Manifest b/net-vpn/corkscrew/Manifest new file mode 100644 index 000000000000..47120989edd1 --- /dev/null +++ b/net-vpn/corkscrew/Manifest @@ -0,0 +1 @@ +DIST corkscrew-2.0.tar.gz 56749 BLAKE2B 4685b373af3a6d19cbd50b42c7fb421cd1c9b872d9682280aba52933869ba723940e959619f6f6d31d93f117d8d1803c79bcd50a86edadcd66a9ffd1df84b3f0 SHA512 bfea81064601cdf67ba1730b49e3a5f7aa377423edbfb052ff0f6b2776b49e104852b7f126f4668d37541a706313ef37d9b4535126e94bb202db4ac38f693e6f diff --git a/net-vpn/corkscrew/corkscrew-2.0-r1.ebuild b/net-vpn/corkscrew/corkscrew-2.0-r1.ebuild new file mode 100644 index 000000000000..b006657d8fe1 --- /dev/null +++ b/net-vpn/corkscrew/corkscrew-2.0-r1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools + +DESCRIPTION="a tool for tunneling SSH through HTTP proxies" +HOMEPAGE="https://github.com/patpadgett/corkscrew/" +# This is the old distfile URL; the github site does not have exact matching +# checksum, but the content is otherwise identical. +SRC_URI="http://www.agroman.net/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ~arm ~ppc ~riscv ~sparc x86" +IUSE="" + +DOCS="AUTHORS ChangeLog README TODO" + +src_prepare() { + # Fix \r\n per bug 652342 + eapply "${FILESDIR}/${P}-crlf-with-authfile.patch" + + # Christoph Mende <angelos@gentoo.org (23 Jun 2010) + # Shipped configure doesn't work with some locales (bug #305771) + # Shipped missing doesn't work with new configure, so we'll force + # regeneration + rm -f install-sh missing mkinstalldirs || die + + # Samuli Suominen <ssuominen@gentoo.org> (24 Jun 2012) + # AC_HEADER_STDC is called separately and #include <string.h> is + # without #ifdef in corkscrew.c. Instead of using AC_C_PROTOTYPES, + # remove the call entirely as unused wrt bug #423193 + sed -i -e 's:AM_C_PROTOTYPES:dnl &:' configure.in || die + + mv configure.{in,ac} || die + + eautoreconf + default +} diff --git a/net-vpn/corkscrew/files/corkscrew-2.0-crlf-with-authfile.patch b/net-vpn/corkscrew/files/corkscrew-2.0-crlf-with-authfile.patch new file mode 100644 index 000000000000..1e750bc74115 --- /dev/null +++ b/net-vpn/corkscrew/files/corkscrew-2.0-crlf-with-authfile.patch @@ -0,0 +1,12 @@ +diff -ur corkscrew-2.0/corkscrew.c corkscrew-2.0.new/corkscrew.c +--- corkscrew-2.0/corkscrew.c 2001-08-23 14:27:32.000000000 -0400 ++++ corkscrew-2.0.new/corkscrew.c 2018-04-03 11:06:53.268025605 -0400 +@@ -219,7 +219,7 @@ + strncat(uri, destport, sizeof(uri) - strlen(uri) - 1); + strncat(uri, " HTTP/1.0", sizeof(uri) - strlen(uri) - 1); + if ((argc == 6) || (argc == 7)) { +- strncat(uri, "\nProxy-Authorization: Basic ", sizeof(uri) - strlen(uri) - 1); ++ strncat(uri, "\r\nProxy-Authorization: Basic ", sizeof(uri) - strlen(uri) - 1); + strncat(uri, base64_encode(up), sizeof(uri) - strlen(uri) - 1); + } + strncat(uri, linefeed, sizeof(uri) - strlen(uri) - 1); diff --git a/net-vpn/corkscrew/metadata.xml b/net-vpn/corkscrew/metadata.xml new file mode 100644 index 000000000000..e3c26a82b53a --- /dev/null +++ b/net-vpn/corkscrew/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>sysadmin@gentoo.org</email> + <name>Gentoo Sysadmin Project</name> +</maintainer> +<longdescription lang="ja"> +Corkscrew は HTTP プロクシ経由の SSH トンネルを構築するツールです。 +</longdescription> +</pkgmetadata> diff --git a/net-vpn/derper/Manifest b/net-vpn/derper/Manifest new file mode 100644 index 000000000000..b45949aec212 --- /dev/null +++ b/net-vpn/derper/Manifest @@ -0,0 +1,4 @@ +DIST tailscale-1.92.4-deps.tar.xz 261683816 BLAKE2B e20589b62558cc756f85f7528997dd865fed3b60aa325b20beb69225e3dac94837a6c15a2c2dec79fe0ff1daabfc514217ef9fbb1efb6a5909321aeb1bc28b5c SHA512 b2566315ccca62b25cddd6249f9c6d68b46362cd4eb413374767d3404fd8952c6241c2fe5520756eea5e781a27051be30d04df728cf924f2fb5ce58231f610c9 +DIST tailscale-1.92.4.tar.gz 4376455 BLAKE2B fd526abf0d73019c4db48ce05cbe964184430c1f94e027344bffe3161379447c4cf776bd7205177357a6ed119187120d0536485c03f58b90e5a6765cc6824521 SHA512 8a9884800982041fa3ee9e955617e71d346f8f2365b24bd7a5673a810a887e57dd901d1b0ca1d7649ab84f2e2831222387e5258ef2d9abfcffa56535d618d586 +DIST tailscale-1.96.5-vendor.tar.xz 28208044 BLAKE2B 04b41a6c192b66dbdfb9765afa736c233539a5eb8fbdc6d9000157ca2cd85b322477553e0ce1312104a19079e886dd87bcebfbf08348b8694ed6a4666c55babe SHA512 40f3c12f89856a0f91b8da986d7fc0e0a955a2fc28a33cb1c4cb86427ad17d5a7a47adb6614047fd60eb12faaff740b38f2fc90c8f2bbbb142c1abfe1a4d5e04 +DIST tailscale-1.96.5.tar.gz 4527087 BLAKE2B 9c07399c0d020bed47e2b88f43139b4e3c8600f6236d07137e17e1306261b4c88946099c64994be6a4218578370a7ae5685b6159161e9c709091c03409ba2f38 SHA512 b48966dbf3d8d10ec2a94cb948c5998140b2562aafc4539456e652fc6224145631e770982b9d1866657ed897777ffd4cd5ac7692a5123ebfd93ab4e94b37d7e6 diff --git a/net-vpn/derper/derper-1.92.4.ebuild b/net-vpn/derper/derper-1.92.4.ebuild new file mode 100644 index 000000000000..05ad51d09f0e --- /dev/null +++ b/net-vpn/derper/derper-1.92.4.ebuild @@ -0,0 +1,64 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd + +# share same source with net-vpn/tailscale +VERSION_MINOR="92" +VERSION_SHORT="1.92.4" +VERSION_LONG="1.92.4-t5065307fb" +VERSION_GIT_HASH="5065307fb87479c975d513a49a7faf1cf4d4c38d" + +MY_P="tailscale-${PV}" +DESCRIPTION="DERP server for tailscale network" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${MY_P}-deps.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +BDEPEND=" + acct-group/derper + acct-user/derper + >=dev-lang/go-1.24 +" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/derper + build_dist ./cmd/derpprobe +} + +src_install() { + dobin derper + dobin derpprobe + + insinto /etc/default + newins "${FILESDIR}"/derper.defaults derper + systemd_dounit "${FILESDIR}"/derper.service + systemd_install_serviced "${FILESDIR}"/derper.service.conf derper + + newinitd "${FILESDIR}"/derper.initd derper + + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + exeinto /usr/libexec + doexe "${FILESDIR}"/derper-pre.sh +} diff --git a/net-vpn/derper/derper-1.96.5.ebuild b/net-vpn/derper/derper-1.96.5.ebuild new file mode 100644 index 000000000000..c0749782cb4d --- /dev/null +++ b/net-vpn/derper/derper-1.96.5.ebuild @@ -0,0 +1,64 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd + +# share same source with net-vpn/tailscale +VERSION_GIT_HASH="41cb72f27119f95b859335f3ffc3434d6ca55e23" +VERSION_MINOR=$(ver_cut 2) +VERSION_SHORT=${PV} +VERSION_LONG=${PV}-t${VERSION_GIT_HASH::9} + +MY_P="tailscale-${PV}" +DESCRIPTION="DERP server for tailscale network" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-golang-dist/tailscale/releases/download/v${PV}/${MY_P}-vendor.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +BDEPEND=" + acct-group/derper + acct-user/derper + >=dev-lang/go-1.26.1 +" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/derper + build_dist ./cmd/derpprobe +} + +src_install() { + dobin derper + dobin derpprobe + + insinto /etc/default + newins "${FILESDIR}"/derper.defaults derper + systemd_dounit "${FILESDIR}"/derper.service + systemd_install_serviced "${FILESDIR}"/derper.service.conf derper + + newinitd "${FILESDIR}"/derper.initd derper + + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + exeinto /usr/libexec + doexe "${FILESDIR}"/derper-pre.sh +} diff --git a/net-vpn/derper/files/derper-pre.sh b/net-vpn/derper/files/derper-pre.sh new file mode 100644 index 000000000000..ba5b224109be --- /dev/null +++ b/net-vpn/derper/files/derper-pre.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# + +set -e + +. /etc/default/derper + +if [[ -z ${DERPER_USER} ]]; then + echo "DERPER_USER is not set via /etc/default/derper" >&2 + exit 1 +fi + +if [[ -z ${CERTDIR} ]]; then + eval "CERTDIR=~${_user}/.cache/tailscale/derper-certs" + echo "CERTDIR is not set, fallback to default '${CERTDIR}' directory" >&2 +fi + +if [[ ! -e ${CERTDIR} ]]; then + mkdir -m 750 -p ${CERTDIR} + chown ${DERPER_USER}${DERPER_GROUP:+:}${DERPER_GROUP} ${CERTDIR} +fi + +# according to: https://github.com/tailscale/tailscale/blob/651e0d8aad1e97df71ac09ee25274377995133dd/cmd/derper/cert.go#L63 +parse_hostname() { + local hn="${1}" + while [[ ${hn} =~ (.*)[^a-zA-Z0-9\.-]+(.*) ]]; do + hn=${BASH_REMATCH[1]}${BASH_REMATCH[2]} + done + echo -n ${hn} +} + +cp_cert() { + local suffix=".crt" mode=640 var="CERTFILE" + if [[ ${FUNCNAME[1]} == cp_key ]]; then + suffix=".key" + mode=600 + var="KEYFILE" + fi + + if [[ -z ${HOSTNAME} ]]; then + echo "${var} is set while HOSTNAME is not, ignore ${var}" >&2 + else + local file="${CERTDIR%/}/$(parse_hostname ${HOSTNAME})${suffix}" + cp -f -L ${!var} ${file} + chown ${DERPER_USER}${DERPER_GROUP:+:}${DERPER_GROUP} ${file} + chmod ${mode} ${file} + fi +} + +cp_key() { + cp_cert +} + +if [[ -n ${CERTFILE} ]]; then + cp_cert +fi +if [[ -n ${KEYFILE} ]]; then + cp_key +fi diff --git a/net-vpn/derper/files/derper.defaults b/net-vpn/derper/files/derper.defaults new file mode 100644 index 000000000000..98fed53cf4a0 --- /dev/null +++ b/net-vpn/derper/files/derper.defaults @@ -0,0 +1,48 @@ +# executing user +DERPER_USER=derper + +# executing group +DERPER_GROUP=derper + +# Home dir for derper +HOMEDIR=/var/lib/derper + +# server HTTPS listen address, in form ":port", "ip:port", or for IPv6 "[ip]:port". +# If the IP is omitted, it defaults to all interfaces. +# If you want to listen to 443 or other well-known port +# you should set the executing user to the 'root' +ADDR=":9781" + +# The port on which to serve HTTP. +# -1 means disabled +HTTP_PORT="-1" + +# servername for TLS cert +HOSTNAME="derp.example.com" + +# mode for getting a cert. +# If you want to change to the 'letsencrypt' mode, +# the DERP server should be listened on 443 port, and +# the http port 80 should be listened also at the first time +CERTMODE="manual" +# cert dir +# when in the 'manual' mode, the default cert file and private key +# will be read via path: +# CERTDIR/HOSTNAME.crt +# CERTDIR/HOSTNAME.key +# and all non [a-zA-Z0-9\.-] characters will be removed +# from the HOSTNAME +CERTDIR="/var/lib/derper/certs" +# The custom cert and key file path, +# simplify the certificate deployment process in manual mode, +# the two files will overwrite the default cert and key files +# everytime when derper service starts. +#CERTFILE= +#KEYFILE= + +# extra arguments passed to the derper +# run derper --help to get help +# -verify-clients +# verify clients to this DERP server through a local tailscaled instance. +FLAGS="-verify-clients" + diff --git a/net-vpn/derper/files/derper.initd b/net-vpn/derper/files/derper.initd new file mode 100644 index 000000000000..ef76ad085ed0 --- /dev/null +++ b/net-vpn/derper/files/derper.initd @@ -0,0 +1,34 @@ +#!/sbin/openrc-run +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +. /etc/default/derper + +name="derper" +description="Tailscale DERP server" +command="/usr/bin/derper" +command_args=" \ + -certdir ${CERTDIR} \ + -certmode ${CERTMODE} \ + -hostname ${HOSTNAME} \ + -a ${ADDR} \ + -http-port ${HTTP_PORT} \ + -c '${HOMEDIR}'/derper.key \ + ${FLAGS} +" +command_user="${DERPER_USER}:${DERPER_GROUP}" +command_background=true +pidfile="/run/derper.pid" +directory="${HOMEDIR}" +output_log="/var/log/derper/derper.log" +error_log="/var/log/derper/derper.error" + +depend() { + need net +} + +start_pre() { + checkpath -d -m 700 -o ${command_user} /var/log/derper + checkpath -d -m 750 -o ${command_user} ${HOMEDIR} + /usr/libexec/derper-pre.sh +} diff --git a/net-vpn/derper/files/derper.service b/net-vpn/derper/files/derper.service new file mode 100644 index 000000000000..44c093af85a5 --- /dev/null +++ b/net-vpn/derper/files/derper.service @@ -0,0 +1,15 @@ +[Unit] +Description=Tailscale DERP server +Documentation=https://tailscale.com/kb/1118/custom-derp-servers +Wants=network-pre.target +After=network-pre.target NetworkManager.service systemd-resolved.service + +[Service] +EnvironmentFile=/etc/default/derper +ExecStartPre=+/usr/libexec/derper-pre.sh +ExecStart=/usr/sbin/derper -certdir ${CERTDIR} -certmode ${CERTMODE} -hostname ${HOSTNAME} -a ${ADDR} -http-port ${HTTP_PORT} -c "${HOMEDIR}"/derper.key ${FLAGS} +ReadWritePaths=${HOMEDIR} ${CERTDIR} +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/derper/files/derper.service.conf b/net-vpn/derper/files/derper.service.conf new file mode 100644 index 000000000000..0640c936cca6 --- /dev/null +++ b/net-vpn/derper/files/derper.service.conf @@ -0,0 +1,3 @@ +[Service] +User=derper +Group=derper diff --git a/net-vpn/derper/metadata.xml b/net-vpn/derper/metadata.xml new file mode 100644 index 000000000000..8799a931f9d4 --- /dev/null +++ b/net-vpn/derper/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <upstream> + <remote-id type="github">tailscale/tailscale</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/eduvpn-client/Manifest b/net-vpn/eduvpn-client/Manifest new file mode 100644 index 000000000000..7529ee759e6d --- /dev/null +++ b/net-vpn/eduvpn-client/Manifest @@ -0,0 +1,6 @@ +DIST eduvpn-client-4.6.0.tar.xz 981208 BLAKE2B 3ee23695c93b01d8d2dbdad782a6faeffd5288199ff83dcd4c724039af9538a93bbf6782878b144c12c5ca3d8686f233991acf5b824f8aebcf0bc09aa2b4d76c SHA512 e569693731faaf839fe3b6d675dd988299a845901aa9d0a0f0d175c4642343082fbe56fe24de0f90a4f690bc0763cd12f3d65f0e3b426f50824d609faabb892c +DIST eduvpn-client-4.6.0.tar.xz.asc 228 BLAKE2B 38c6f47e4ed7047fe046c2503206cd3b162b4dd7d279f396e4d41a497b21df4c72d74edd1c6b9c963f9b7c4b1e67baa1c9419585151c7f54d600e68912741c78 SHA512 44666db226e90e95bbdf6cf42651364088eb5274753d8cb0af20d569716fe5e707a8c7a4560dfa9e15ec268d408e2475e49cee546f256f5da31d24f8776588c7 +DIST eduvpn-client-4.7.1.tar.xz 986756 BLAKE2B 39705eba3c84844164a3823586d71420bc61eba6171496ad02a00384cfa190ba20356d425afe23da516afa0afea02e8322f45af98f834cd0d9c95c0cad55f150 SHA512 b54476c91558a2f22db686732f3e2ce612512f8989c3fa9dc653ab7699478f481636473a2d2d00b4e1c6db6e823bea6464f6dd56c56e0659d49c0766bdfac5f2 +DIST eduvpn-client-4.7.1.tar.xz.asc 265 BLAKE2B 9494a0906baf1cd2ff8edffa5b2bbf7f423ea437f4b57c4b3aa594549c087d925550ef7cabe72c4fcdf6a5980b0976def163dc79a366b80777e6364eb475e59b SHA512 ab663f436f0d8c8c94e2138cd151dfc96133d125adddbcaaac829027b8fff5cd94bb8a03cb4760dc7cdc6906c45e28775ae96f92bac402179982b7639bfab535 +DIST eduvpn-client-4.7.2.tar.xz 986744 BLAKE2B 02efa3003feb1503520a11e01fba4d7727444c5bf8a191d3c906e66312dcaf55212221129a0014e42fc8de0210b26f78327d031183b72f09b3fb75352564225c SHA512 f95a36a071d785b85f2700f38c8568959e88ee15c970ec21da16079a82e5f07848bca0ba1f3f200b54825d24b2b346bd3199483a9b71e86dba337f1aba30e894 +DIST eduvpn-client-4.7.2.tar.xz.asc 265 BLAKE2B 008fb72ab7f8176cbe18cbb951aa09188fdfa7fbfcaac9582e70ad192046f6d95825e7b0bede56a29eab20c0025f80cb0670b4424956eef94a3c5c80983cf40b SHA512 2e10cf57d3b76605518de5ccee2e84cf10109242eec58dae4dbacd785a397a2b591fbc0c1b3c8b2a2ca9e202d5c083abd953ed098a03b70fb82475e2e7e939b3 diff --git a/net-vpn/eduvpn-client/eduvpn-client-4.6.0.ebuild b/net-vpn/eduvpn-client/eduvpn-client-4.6.0.ebuild new file mode 100644 index 000000000000..b70a88083f6f --- /dev/null +++ b/net-vpn/eduvpn-client/eduvpn-client-4.6.0.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND="dev-python/mkdocs-material" +DOCS_DIR="doc" + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 docs xdg + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/python-${PN}.git" + S="${WORKDIR}/${P}" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + MY_P="linux-app-${PV}" + SRC_URI=" + https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz -> ${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz.asc -> ${P}.tar.xz.asc ) + " + KEYWORDS="amd64 x86" + S="${WORKDIR}/${MY_P}" +fi + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +LICENSE="GPL-3+" +SLOT="0" + +# Test suite involves adding NetworkManager configuration entries, +# disable for now. +RESTRICT="test" + +RDEPEND=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + net-misc/networkmanager + >=net-vpn/eduvpn-common-4[${PYTHON_USEDEP}] + <net-vpn/eduvpn-common-5[${PYTHON_USEDEP}] + x11-libs/libnotify +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +python_install() { + distutils-r1_python_install + # See utils.py: client supports loading from sys.prefix or + # package_data dir. Move to the sys.prefix so desktop files work. + # https://codeberg.org/eduVPN/linux-app/pulls/626 + rsync -a "${D}/$(python_get_sitedir)/eduvpn/data/share/"* \ + "${ED}/usr/share/" --remove-source-files || die +} diff --git a/net-vpn/eduvpn-client/eduvpn-client-4.7.1.ebuild b/net-vpn/eduvpn-client/eduvpn-client-4.7.1.ebuild new file mode 100644 index 000000000000..acea92861413 --- /dev/null +++ b/net-vpn/eduvpn-client/eduvpn-client-4.7.1.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND="dev-python/mkdocs-material" +DOCS_DIR="doc" + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 docs xdg + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/python-${PN}.git" + S="${WORKDIR}/${P}" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + MY_P="linux-app-${PV}" + SRC_URI=" + https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz -> ${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz.asc -> ${P}.tar.xz.asc ) + " + KEYWORDS="amd64 ~x86" + S="${WORKDIR}/${MY_P}" +fi + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +LICENSE="GPL-3+" +SLOT="0" + +# Test suite involves adding NetworkManager configuration entries, +# disable for now. +RESTRICT="test" + +RDEPEND=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + net-misc/networkmanager + >=net-vpn/eduvpn-common-5[${PYTHON_USEDEP}] + <net-vpn/eduvpn-common-6[${PYTHON_USEDEP}] + x11-libs/libnotify +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +python_install() { + distutils-r1_python_install + # See utils.py: client supports loading from sys.prefix or + # package_data dir. Move to the sys.prefix so desktop files work. + # https://codeberg.org/eduVPN/linux-app/pulls/626 + rsync -a "${D}/$(python_get_sitedir)/eduvpn/data/share/"* \ + "${ED}/usr/share/" --remove-source-files || die +} diff --git a/net-vpn/eduvpn-client/eduvpn-client-4.7.2.ebuild b/net-vpn/eduvpn-client/eduvpn-client-4.7.2.ebuild new file mode 100644 index 000000000000..a640f32335b7 --- /dev/null +++ b/net-vpn/eduvpn-client/eduvpn-client-4.7.2.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 xdg + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/python-${PN}.git" + S="${WORKDIR}/${P}" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + MY_P="linux-app-${PV}" + SRC_URI=" + https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz -> ${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz.asc -> ${P}.tar.xz.asc ) + " + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${MY_P}" +fi + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +LICENSE="GPL-3+" +SLOT="0" + +# Test suite involves adding NetworkManager configuration entries, +# disable for now. +RESTRICT="test" + +RDEPEND=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + net-misc/networkmanager + >=net-vpn/eduvpn-common-5[${PYTHON_USEDEP}] + <net-vpn/eduvpn-common-6[${PYTHON_USEDEP}] + x11-libs/libnotify +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +python_install() { + distutils-r1_python_install + # See utils.py: client supports loading from sys.prefix or + # package_data dir. Move to the sys.prefix so desktop files work. + # https://codeberg.org/eduVPN/linux-app/pulls/626 + rsync -a "${D}/$(python_get_sitedir)/eduvpn/data/share/"* \ + "${ED}/usr/share/" --remove-source-files || die +} diff --git a/net-vpn/eduvpn-client/eduvpn-client-9999.ebuild b/net-vpn/eduvpn-client/eduvpn-client-9999.ebuild new file mode 100644 index 000000000000..a640f32335b7 --- /dev/null +++ b/net-vpn/eduvpn-client/eduvpn-client-9999.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 xdg + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/python-${PN}.git" + S="${WORKDIR}/${P}" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + MY_P="linux-app-${PV}" + SRC_URI=" + https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz -> ${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/linux-app/releases/download/${PV}/${MY_P}.tar.xz.asc -> ${P}.tar.xz.asc ) + " + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${MY_P}" +fi + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +LICENSE="GPL-3+" +SLOT="0" + +# Test suite involves adding NetworkManager configuration entries, +# disable for now. +RESTRICT="test" + +RDEPEND=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + net-misc/networkmanager + >=net-vpn/eduvpn-common-5[${PYTHON_USEDEP}] + <net-vpn/eduvpn-common-6[${PYTHON_USEDEP}] + x11-libs/libnotify +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +python_install() { + distutils-r1_python_install + # See utils.py: client supports loading from sys.prefix or + # package_data dir. Move to the sys.prefix so desktop files work. + # https://codeberg.org/eduVPN/linux-app/pulls/626 + rsync -a "${D}/$(python_get_sitedir)/eduvpn/data/share/"* \ + "${ED}/usr/share/" --remove-source-files || die +} diff --git a/net-vpn/eduvpn-client/metadata.xml b/net-vpn/eduvpn-client/metadata.xml new file mode 100644 index 000000000000..350c7522d51e --- /dev/null +++ b/net-vpn/eduvpn-client/metadata.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>mario.haustein@hrz.tu-chemnitz.de</email> + <name>Mario Haustein</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription> + Linux client for eduVPN + + eduVPN is a frontend for either WireGuard or OpenVPN used widely at + european academic institutions. It features an easy to use VPN + configuration utility. Users just need to login occasionally with their + credentials issued by the institution to refresh their VPN + configuration. + </longdescription> + <upstream> + <remote-id type="github">eduvpn/python-eduvpn-client</remote-id> + <remote-id type="codeberg">eduVPN/linux-app</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/eduvpn-common/Manifest b/net-vpn/eduvpn-common/Manifest new file mode 100644 index 000000000000..28952ccc0dd7 --- /dev/null +++ b/net-vpn/eduvpn-common/Manifest @@ -0,0 +1,9 @@ +DIST eduvpn-common-4.0.0-deps.tar.xz 20436036 BLAKE2B b525b08e25f17f977781facc05e713963c07646836e5a76ba4119913cba7ec3be94740276a483125b060dfa9d217561f7a2c0cf6dc3861323399f6179f7fbeba SHA512 3b0319fe17caeaed582cff1845fbaa7d7bdbeb19da0dbf9997859766c42927c28b5b4d905b6e4f4c4ff2ab854d60ab48b89b2496d9288f0c3ac0db782217c68d +DIST eduvpn-common-4.0.0.tar.xz 1044748 BLAKE2B 16486a0e030ebf75a3339f1711716dcc543603648ae0d174113ad64dfa61de45afd233c5cad124cf87e61f04fc50f631e70668702464834ac186a808400390b4 SHA512 f415077fd8404c74a3bb67d57445506cfcb5417e5986b2feb3f9a54a792da639d95c48b85d9bde653e822c2e2842329224b08ad79ad45f76d8f96d4fff056300 +DIST eduvpn-common-4.0.0.tar.xz.asc 228 BLAKE2B 8a67efb18d07ad2b8dad5d2cdac3adbfc18cbab22aceba41e5bc95428103ef03006bb19de0842aa6c9895939bae58f4c99a1119a32ad16b424ac68278e674167 SHA512 c50c7ba4e5ca05365446fe0dc33ba14db283d52a3f7d61fa176e0aac8e54fae438c2c336bb16bf8f126156f362d6685b892544d51537b7e580d2072ff33fd4ac +DIST eduvpn-common-5.0.1-deps.tar.xz 18577932 BLAKE2B 75d76dc5f430ccd2cc6382a91daefaaa8edec71d38b939971baec776e51527bb7de27342be3c682c503ead1db5e87c152a3367f06718b5539177d45b91b62018 SHA512 0e270c118ae3d62b13ece18ede889f117874927bbe49ea0492703c17219f9eb8acf5444d60f2b76a721d30ef8848d1cdda765eba0479c04f6a6400accc61a148 +DIST eduvpn-common-5.0.1.tar.xz 999496 BLAKE2B b0bebe74f0432ddf47d467eabcf28c1bfd6a68ba5dbe8d5fd1dff9bd8ddec52074b6b036df9939ba95ce675064f3f6e046798064895fa8d40863f8e521643119 SHA512 22f81bef2e11c3bf143058a0066aac5dbe3a7c46f5563440a0b83cbb94852eea601b413002a94bea12c9d98450c3391e0ce95cd6c674d0c973ac337b099b3c63 +DIST eduvpn-common-5.0.1.tar.xz.asc 265 BLAKE2B de140ac350a410d43c18c488855636e7b00adc08d3a84a21e0e48e50c72740c4f3804cf7a290b518909eec7c18f94bde25d3a25c7efbf4356c7d83433c30a252 SHA512 77715c6b72a6bc3f3f356b505758c3f3dc6ad261a0544f04bd867477e71c3d98f540e00acd09c78ecf5880b5916daa98ee5a7449265fc7a538be7810c11f6329 +DIST eduvpn-common-5.0.2-deps.tar.xz 18615296 BLAKE2B afbb7d020fd47baf89ef486e88ab4536f5b238c537f1de2a7d65f7fec761957b740d9131b5aef1c3ab8c4e4e6b4d9ca14d42d91fcd8e471f7ceb835b1bbaa762 SHA512 17f4c51c1519e5850a697ca314cd3f84109e686d6f3fe75f98b6931015201ed80467e51b8a6583921765b70caa7356ed94402dd5cff1ad2937e0fc689fecffbe +DIST eduvpn-common-5.0.2.tar.xz 1002616 BLAKE2B 4d792b7d17ffbcdc400219a7117b96b9b8393cfcda3d79dabba0faf74e7604a1c9559996159d087ff62854f16092e6b1c4fbb46e4e8b0467fb75f0ba2d0a28e1 SHA512 0abf5687842fc31a3d9480e47b1c650a22802764ba8738fe42cb23b812ad10deddd69376940688a9c55ffced179f7d5f6e75952dd0b245c7990f51d9d1fbae0a +DIST eduvpn-common-5.0.2.tar.xz.asc 265 BLAKE2B 821845b9ed84b373dfe2150cc7a270ce1f806dd8922b91663ca0292b8d49fce61d2327c13d0c98b31f6c768ae9343401bacc29e7c9f26f4b0cdd5ff422aa43e2 SHA512 a82995438053e5d43764296b25e2fe82d06a004bbb19dd25840e70cf12b2a1d49b10257edec2894aa3f9bbb5953c8c8ec569a942d59dcbe963c606cfcdbc86ff diff --git a/net-vpn/eduvpn-common/eduvpn-common-4.0.0.ebuild b/net-vpn/eduvpn-common/eduvpn-common-4.0.0.ebuild new file mode 100644 index 000000000000..3e0dd682e801 --- /dev/null +++ b/net-vpn/eduvpn-common/eduvpn-common-4.0.0.ebuild @@ -0,0 +1,92 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +inherit distutils-r1 go-module linux-info + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/eduvpn-common.git" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + SRC_URI=" + https://codeberg.org/eduVPN/eduvpn-common/releases/download/${PV}/${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/eduvpn-common/releases/download/${PV}/${P}.tar.xz.asc ) + https://www-user.tu-chemnitz.de/~hamari/eduvpn/${P}-deps.tar.xz + " + KEYWORDS="amd64 x86" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="openvpn" +RESTRICT="test" + +RDEPEND=" + openvpn? ( net-vpn/openvpn ) +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +wrap_python() { + local phase=$1 + shift + + pushd wrappers/python >/dev/null || die + distutils-r1_${phase} "$@" + popd >/dev/null || die +} + +pkg_pretend() { + CONFIG_CHECK="~WIREGUARD" + WARNING_WIREGUARD="You must enable WIREGUARD to use wireguard." + check_extra_config +} + +src_unpack() { + # go dependencies are not signed + if use verify-sig; then + pushd "${DISTDIR}" > /dev/null || die + verify-sig_verify_detached \ + ${P}.tar.xz{,.asc} + popd > /dev/null || die + fi + default_src_unpack +} + +src_compile() { + default + + # Install shared library into the python directory so the python packaging + # magic can find it. + pushd wrappers/python >/dev/null || die + emake install-lib + popd >/dev/null || die + + wrap_python ${FUNCNAME} +} + +src_test() { + default + wrap_python ${FUNCNAME} +} + +src_install() { + wrap_python ${FUNCNAME} +} diff --git a/net-vpn/eduvpn-common/eduvpn-common-5.0.1.ebuild b/net-vpn/eduvpn-common/eduvpn-common-5.0.1.ebuild new file mode 100644 index 000000000000..36c6dd7306dc --- /dev/null +++ b/net-vpn/eduvpn-common/eduvpn-common-5.0.1.ebuild @@ -0,0 +1,92 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +inherit distutils-r1 go-module linux-info + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/eduvpn-common.git" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + SRC_URI=" + https://codeberg.org/eduVPN/eduvpn-common/releases/download/${PV}/${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/eduvpn-common/releases/download/${PV}/${P}.tar.xz.asc ) + https://www-user.tu-chemnitz.de/~hamari/eduvpn/${P}-deps.tar.xz + " + KEYWORDS="amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="openvpn" +RESTRICT="test" + +RDEPEND=" + openvpn? ( net-vpn/openvpn ) +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +wrap_python() { + local phase=$1 + shift + + pushd wrappers/python >/dev/null || die + distutils-r1_${phase} "$@" + popd >/dev/null || die +} + +pkg_pretend() { + CONFIG_CHECK="~WIREGUARD" + WARNING_WIREGUARD="You must enable WIREGUARD to use wireguard." + check_extra_config +} + +src_unpack() { + # go dependencies are not signed + if use verify-sig; then + pushd "${DISTDIR}" > /dev/null || die + verify-sig_verify_detached \ + ${P}.tar.xz{,.asc} + popd > /dev/null || die + fi + default_src_unpack +} + +src_compile() { + default + + # Install shared library into the python directory so the python packaging + # magic can find it. + pushd wrappers/python >/dev/null || die + emake install-lib + popd >/dev/null || die + + wrap_python ${FUNCNAME} +} + +src_test() { + default + wrap_python ${FUNCNAME} +} + +src_install() { + wrap_python ${FUNCNAME} +} diff --git a/net-vpn/eduvpn-common/eduvpn-common-5.0.2.ebuild b/net-vpn/eduvpn-common/eduvpn-common-5.0.2.ebuild new file mode 100644 index 000000000000..e3fb26ce0a6d --- /dev/null +++ b/net-vpn/eduvpn-common/eduvpn-common-5.0.2.ebuild @@ -0,0 +1,92 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +inherit distutils-r1 go-module linux-info + +DESCRIPTION="Linux client and Python client API for eduVPN" +HOMEPAGE="https://www.eduvpn.org/" + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/eduvpn/eduvpn-common.git" +else + # Development Versions use a different release signing key + if [[ $(ver_cut 2) == 99 || $(ver_cut 3) == 99 ]] ; then + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn-dev.asc + else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eduvpn.asc + fi + inherit verify-sig + SRC_URI=" + https://codeberg.org/eduVPN/eduvpn-common/releases/download/${PV}/${P}.tar.xz + verify-sig? ( https://codeberg.org/eduVPN/eduvpn-common/releases/download/${PV}/${P}.tar.xz.asc ) + https://www-user.tu-chemnitz.de/~hamari/eduvpn/${P}-deps.tar.xz + " + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="openvpn" +RESTRICT="test" + +RDEPEND=" + openvpn? ( net-vpn/openvpn ) +" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eduvpn-20240307 )" +fi + +wrap_python() { + local phase=$1 + shift + + pushd wrappers/python >/dev/null || die + distutils-r1_${phase} "$@" + popd >/dev/null || die +} + +pkg_pretend() { + CONFIG_CHECK="~WIREGUARD" + WARNING_WIREGUARD="You must enable WIREGUARD to use wireguard." + check_extra_config +} + +src_unpack() { + # go dependencies are not signed + if use verify-sig; then + pushd "${DISTDIR}" > /dev/null || die + verify-sig_verify_detached \ + ${P}.tar.xz{,.asc} + popd > /dev/null || die + fi + default_src_unpack +} + +src_compile() { + default + + # Install shared library into the python directory so the python packaging + # magic can find it. + pushd wrappers/python >/dev/null || die + emake install-lib + popd >/dev/null || die + + wrap_python ${FUNCNAME} +} + +src_test() { + default + wrap_python ${FUNCNAME} +} + +src_install() { + wrap_python ${FUNCNAME} +} diff --git a/net-vpn/eduvpn-common/metadata.xml b/net-vpn/eduvpn-common/metadata.xml new file mode 100644 index 000000000000..2586b330b98c --- /dev/null +++ b/net-vpn/eduvpn-common/metadata.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>mario.haustein@hrz.tu-chemnitz.de</email> + <name>Mario Haustein</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription> + Code to be shared between eduVPN clients + + eduVPN is a frontend for either WireGuard or OpenVPN used widely at + european academic institutions. It features an easy to use VPN + configuration utility. Users just need to login occasionally with their + credentials issued by the institution to refresh their VPN + configuration. + </longdescription> + <use> + <flag name="openvpn">enable support for OpenVPN</flag> + </use> + <upstream> + <remote-id type="github">eduvpn/eduvpn-common</remote-id> + <remote-id type="codeberg">eduvpn/eduvpn-common</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/fastd/Manifest b/net-vpn/fastd/Manifest new file mode 100644 index 000000000000..0361d08c516d --- /dev/null +++ b/net-vpn/fastd/Manifest @@ -0,0 +1,2 @@ +DIST fastd-22.tar.xz 161288 BLAKE2B 25c741a0fe1ff4d8f02ee932301cc0bf58ff65cb95d4f53a49b2ef691d8531a917c1fea5b93f796dc0151ebeea3edd2b0c97e1ea5649ef2dfa4043b489c945eb SHA512 66196fa13c93b87b78b9e31bc267cf616dcfb4a964387c4a3f0f3176fa1529be335a6fac91379038d6a8b1a1be4fea547659551a8a9fa8d6939589d5f8a9a7aa +DIST fastd-23.tar.xz 166916 BLAKE2B 97387c5675df47d5392dc215ff43ec46cd7a143c09c131688760acf150000eae8b8bd38572ad3a3f1af2b012ec5f0d83272541fb35ff71991597078e58407cb3 SHA512 41aae32e1fcc2e2ba6c45d9a901eaefcacdde0d03a8b5844023e6ffbef69345004b622f975eea95fc1d6864ad20f67739054e33a75fc27f4bf70d2f4147854d5 diff --git a/net-vpn/fastd/fastd-22.ebuild b/net-vpn/fastd/fastd-22.ebuild new file mode 100644 index 000000000000..7c0e586afa9f --- /dev/null +++ b/net-vpn/fastd/fastd-22.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2023 Gentoo Authors +# +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit linux-info meson systemd + +DESCRIPTION="A very small VPN daemon which tunnels IP packets and Ethernet frames over UDP." +HOMEPAGE="https://fastd.readthedocs.io/" +SRC_URI="https://github.com/neocturne/fastd/releases/download/v${PV}/${P}.tar.xz" + +# while source COPYRIGHT also mentions LGPLv2.1+, that only applies to +# vendored libmnl. we are using system libmnl. +LICENSE="BSD BSD-2" + +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="+caps doc offload-l2tp systemd test" +RESTRICT="!test? ( test )" + +RDEPEND=" +>=net-libs/libuecc-6 +dev-libs/json-c +dev-libs/libsodium +dev-libs/openssl +offload-l2tp? ( net-libs/libmnl ) +caps? ( sys-libs/libcap ) +test? ( dev-util/cmocka ) +" +DEPEND="${RDEPEND}" +BDEPEND=" +sys-devel/bison +doc? ( dev-python/sphinx ) +" + +pkg_setup() { + if use offload-l2tp; then + CONFIG_CHECK="~L2TP ~L2TP_V3 ~L2TP_ETH" + declare -g ERROR_L2TP="CONFIG_L2TP isn't set. Offloading L2TP to kernel will not work." + declare -g ERROR_L2TP_V3="CONFIG_L2TP_V3 isn't set. Offloading L2TP to kernel will not work." + declare -g ERROR_L2TP_ETH="CONFIG_L2TP_ETH isn't set. Offloading L2TP to kernel will not work." + linux-info_pkg_setup + fi +} + +src_configure() { + local emesonargs=( + $(meson_feature caps capabilities) + $(meson_feature offload-l2tp offload_l2tp) + $(meson_feature systemd) + $(meson_use test build_tests) + -Dlibmnl_builtin=false + ) + meson_src_configure +} + +src_compile() { + meson_src_compile + if use doc; then + einfo "Building documentation ..." + local doc_dir="${S}/doc" + cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!" + emake man || die "Building documentation failed!" + fi +} + +src_install() { + meson_src_install + systemd_dounit "doc/examples/fastd@.service" + newinitd "${FILESDIR}/fastd.init" fastd + use doc && doman doc/build/man/* + keepdir /etc/fastd +} diff --git a/net-vpn/fastd/fastd-23.ebuild b/net-vpn/fastd/fastd-23.ebuild new file mode 100644 index 000000000000..7c0e586afa9f --- /dev/null +++ b/net-vpn/fastd/fastd-23.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2023 Gentoo Authors +# +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit linux-info meson systemd + +DESCRIPTION="A very small VPN daemon which tunnels IP packets and Ethernet frames over UDP." +HOMEPAGE="https://fastd.readthedocs.io/" +SRC_URI="https://github.com/neocturne/fastd/releases/download/v${PV}/${P}.tar.xz" + +# while source COPYRIGHT also mentions LGPLv2.1+, that only applies to +# vendored libmnl. we are using system libmnl. +LICENSE="BSD BSD-2" + +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="+caps doc offload-l2tp systemd test" +RESTRICT="!test? ( test )" + +RDEPEND=" +>=net-libs/libuecc-6 +dev-libs/json-c +dev-libs/libsodium +dev-libs/openssl +offload-l2tp? ( net-libs/libmnl ) +caps? ( sys-libs/libcap ) +test? ( dev-util/cmocka ) +" +DEPEND="${RDEPEND}" +BDEPEND=" +sys-devel/bison +doc? ( dev-python/sphinx ) +" + +pkg_setup() { + if use offload-l2tp; then + CONFIG_CHECK="~L2TP ~L2TP_V3 ~L2TP_ETH" + declare -g ERROR_L2TP="CONFIG_L2TP isn't set. Offloading L2TP to kernel will not work." + declare -g ERROR_L2TP_V3="CONFIG_L2TP_V3 isn't set. Offloading L2TP to kernel will not work." + declare -g ERROR_L2TP_ETH="CONFIG_L2TP_ETH isn't set. Offloading L2TP to kernel will not work." + linux-info_pkg_setup + fi +} + +src_configure() { + local emesonargs=( + $(meson_feature caps capabilities) + $(meson_feature offload-l2tp offload_l2tp) + $(meson_feature systemd) + $(meson_use test build_tests) + -Dlibmnl_builtin=false + ) + meson_src_configure +} + +src_compile() { + meson_src_compile + if use doc; then + einfo "Building documentation ..." + local doc_dir="${S}/doc" + cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!" + emake man || die "Building documentation failed!" + fi +} + +src_install() { + meson_src_install + systemd_dounit "doc/examples/fastd@.service" + newinitd "${FILESDIR}/fastd.init" fastd + use doc && doman doc/build/man/* + keepdir /etc/fastd +} diff --git a/net-vpn/fastd/files/fastd.init b/net-vpn/fastd/files/fastd.init new file mode 100644 index 000000000000..9f93c7a8105e --- /dev/null +++ b/net-vpn/fastd/files/fastd.init @@ -0,0 +1,55 @@ +#!/sbin/openrc-run +# Copyright 2023 Gentoo Authors +# +# Distributed under the terms of the GNU General Public License v2 + +name="fastd" +description="fastd (Fast and Secure Tunnelling Daemon)" + +# usage would be i.e. fastd.my_vpn +IFACE="${RC_SVCNAME#*.}" + +command="/usr/bin/fastd" +command_args="--syslog-level info --syslog-ident fastd.${IFACE} --config /etc/fastd/${IFACE}/fastd.conf" +pidfile="/run/${RC_SVCNAME}.pid" +command_args_background="--daemon --pid-file ${pidfile}" + +depend() { + need net + use dns +} + +extra_commands="checkconfig" +checkconfig() { + if [ "${IFACE}" = "${RC_SVCNAME}" ]; then + eerror "You cannot call this init script directly. You must create a symbolic link to it with the configuration name:" + eerror " mkdir -p /etc/fastd/my_vpn" + eerror " nano /etc/fastd/my_vpn/fastd.conf" + eerror " ln -s /etc/init.d/fastd /etc/init.d/fastd.my_vpn" + eerror "And then call it instead:" + eerror " /etc/init.d/fastd.my_vpn start" + return 1 + fi + fastd --config "/etc/fastd/${IFACE}/fastd.conf" --verify-config +} + +start_pre() { + # If this isn't a restart, make sure that the user's config isn't + # busted before we try to start the daemon (this will produce + # better error messages than if we just try to start it blindly). + # + # If, on the other hand, this *is* a restart, then the stop_pre + # action will have ensured that the config is usable and we don't + # need to do that again. + if [ "${RC_CMD}" != "restart" ] ; then + checkconfig || return $? + fi +} + +stop_pre() { + # If this is a restart, check to make sure the user's config + # isn't busted before we stop the running daemon. + if [ "${RC_CMD}" = "restart" ] ; then + checkconfig || return $? + fi +} diff --git a/net-vpn/fastd/metadata.xml b/net-vpn/fastd/metadata.xml new file mode 100644 index 000000000000..00f752eeaec8 --- /dev/null +++ b/net-vpn/fastd/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>artemis@artemis.sh</email> + <description>Primary maintainer</description> + <name>Artemis Everfree</name> + </maintainer> + <upstream> + <remote-id type="github">neocturne/fastd</remote-id> + </upstream> + <use> + <flag name="offload-l2tp">Offload L2TP traffic to the kernel when using the null@l2tp transport method</flag> + <flag name="doc">Build and install manpages</flag> + </use> +</pkgmetadata> diff --git a/net-vpn/fp-multiuser/Manifest b/net-vpn/fp-multiuser/Manifest new file mode 100644 index 000000000000..737ae711c4e8 --- /dev/null +++ b/net-vpn/fp-multiuser/Manifest @@ -0,0 +1,2 @@ +DIST fp-multiuser-0.0.2-deps.tar.xz 12749212 BLAKE2B 8fd0f16a8b58eec4094a6ea3d21b297ec7b3d111cc7d13acf1263ccb8d93724bc6a14172caafdff2f4e13e96f73cf2e22110c4c1aa19971172f85efce6a74468 SHA512 2513d61b3818e9c4a21aaaac36d65a5309fa87eb361c989366c09ce795fabfdb16ab7fb7bb30a112f37d9244b2ac2f54e43605c1f11ce1352b188c38848cc37d +DIST fp-multiuser-0.0.2.tar.gz 19162 BLAKE2B 90f84ae8411ce08a817e50782690bfa5736059cd1f28ecd83d8a4b0fb72208dbd46986f5c863fe6e63647785f4cad18e7e3b291462c9a62117aae593a43defb2 SHA512 7eb5556134aaec3246d5849af76408195a8037e5ca382fedeaf19a94e049a45e560d396ae63cfb9e96b9088a6f83bb7c34d0214233013e41a0fd378f04cfae29 diff --git a/net-vpn/fp-multiuser/files/confd b/net-vpn/fp-multiuser/files/confd new file mode 100644 index 000000000000..edcc4a45239d --- /dev/null +++ b/net-vpn/fp-multiuser/files/confd @@ -0,0 +1 @@ +FP_MULTIUSER_OPTS="-f /etc/fp-multiuser/tokens -l 127.0.0.1:7200" diff --git a/net-vpn/fp-multiuser/files/fp-multiuser.service b/net-vpn/fp-multiuser/files/fp-multiuser.service new file mode 100644 index 000000000000..8f56b148c9b6 --- /dev/null +++ b/net-vpn/fp-multiuser/files/fp-multiuser.service @@ -0,0 +1,14 @@ +[Unit] +Description=A frp server plugin to support multiple users for frp +After=network.target + +[Service] +User=fp-multiuser +Group=fp-multiuser +Environment=FP_MULTIUSER_OPTS="-f /etc/fp-multiuser/tokens -l 127.0.0.1:7200" +Restart=on-failure +RestartSec=5s +ExecStart=/usr/bin/fp-multiuser $FP_MULTIUSER_OPTS + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/fp-multiuser/files/initd b/net-vpn/fp-multiuser/files/initd new file mode 100644 index 000000000000..bd3d6343f940 --- /dev/null +++ b/net-vpn/fp-multiuser/files/initd @@ -0,0 +1,26 @@ +#!/sbin/openrc-run + +description="frp server" +pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"} +command="/usr/bin/fp-multiuser" +command_user="fp-multiuser:fp-multiuser" +command_args="${FP_MULTIUSER_OPTS:-"-f /etc/fp-multiuser/tokens -l 127.0.0.1:7200"}" +command_background="true" +logfile=/var/log/fp-multiuser/${RC_SVCNAME}.log +start_stop_daemon_args="--user ${command_user%:*} --group ${command_user#*:} + --stdout ${logfile} --stderr ${logfile}" + +: "${supervisor:=supervise-daemon}" +: "${respawn_delay:=1}" +: "${respawn_max:=10}" +: "${respawn_period:=60}" + +depend() { + need net +} + +start() { + checkpath --directory --mode 755 --owner root "${pidfile%/*}" + checkpath --directory --mode 755 --owner "${command_user}" "${logfile%/*}" + default_start +} diff --git a/net-vpn/fp-multiuser/files/logrotated b/net-vpn/fp-multiuser/files/logrotated new file mode 100644 index 000000000000..5a880584d820 --- /dev/null +++ b/net-vpn/fp-multiuser/files/logrotated @@ -0,0 +1,3 @@ +/var/log/fp-multiuser/*.log { + copytruncate +} diff --git a/net-vpn/fp-multiuser/fp-multiuser-0.0.2.ebuild b/net-vpn/fp-multiuser/fp-multiuser-0.0.2.ebuild new file mode 100644 index 000000000000..358f00f4c30e --- /dev/null +++ b/net-vpn/fp-multiuser/fp-multiuser-0.0.2.ebuild @@ -0,0 +1,34 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit go-module systemd + +DESCRIPTION="A frp server plugin to support multiple users for frp" +HOMEPAGE="https://github.com/gofrp/fp-multiuser" +SRC_URI="https://github.com/gofrp/fp-multiuser/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz" + +LICENSE="Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + acct-user/fp-multiuser + acct-group/fp-multiuser" +DEPEND="${RDEPEND}" + +src_compile() { + emake all +} + +src_install() { + dobin bin/${PN} + keepdir /etc/${PN} + systemd_dounit "${FILESDIR}/fp-multiuser.service" + newinitd "${FILESDIR}/initd" "${PN}" + newconfd "${FILESDIR}/confd" "${PN}" + insinto /etc/logrotate.d + newins "${FILESDIR}/logrotated" "${PN}" + dodoc README*.md +} diff --git a/net-vpn/fp-multiuser/metadata.xml b/net-vpn/fp-multiuser/metadata.xml new file mode 100644 index 000000000000..08ece7c6cf7b --- /dev/null +++ b/net-vpn/fp-multiuser/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>zmedico@gentoo.org</email> + <name>Zac Medico</name> + </maintainer> + <upstream> + <remote-id type="github">gofrp/fp-multiuser</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/frp/Manifest b/net-vpn/frp/Manifest new file mode 100644 index 000000000000..ddd4ae3b2086 --- /dev/null +++ b/net-vpn/frp/Manifest @@ -0,0 +1,4 @@ +DIST frp-0.65.0-vendor.tar.xz 3419816 BLAKE2B 7f03284e4bcfb8a3c61fb769187c0b4fe142658eee4a586f527a513c5f1227bac6faba0ca82178ba0306d52080a06a3e562d0b9b3f70650151bef8f3d7d6ecaf SHA512 a3ece9da58ccf681bedc7bcd3155407ac06d6044cba76f99c4990713e1d038762469e8df9774cafc851c19f5ca519bc492c49013327b9f0ed4fffe78a0e87ad5 +DIST frp-0.65.0.tar.gz 1146182 BLAKE2B 09745e448fb07e8bcc1f02a0aabbef6cc5eb7567072746539d1a7ca2b2b60d03e692c2d0d319af54e1c9d1a17204c4b2b596731416ad0d7b3364c6c4af3dbe9c SHA512 c70a42bedd243bb12729357a7482ade573627dd4ec54b5da62ca1ff1ed5389c2dc24807b0164aac7cc1ba48aa10c0ed617a52b1a9e8254029bdc3bfd27415081 +DIST frp-0.68.0-vendor.tar.xz 3311480 BLAKE2B a2865fef6274e9d1a55867ee4780fe577d374a4f586c75d39fb45ce07f28e06786db7bfbf90c984d5e0ec0f5d30ef0779964bb92bade4d411b33d8a21413d21b SHA512 08f8200a1218d521d9aa2e91147aa64e58bd3c3e93debb0e546eff2be1fd78ece948c20e53159df6285fc7f3e250aea244b5b649a908f1f490074c01c64dc6a1 +DIST frp-0.68.0.tar.gz 570096 BLAKE2B 5d6c8f19457c8c630beb001ea1af6f27c8c4a1467d3bcf31b9be716ae78aa92892817a9ca07acbb85788f99f1e92f54f83d5234ebef7d8f7a07e65156854f2d8 SHA512 93df483648f29db10f5e61ed28a4898715615e6b3f68087e1e0c356461a2f723135c73ae4fb9d3ca7c8c1fee9415a920012241f9362e0768a57eb5fd9c984818 diff --git a/net-vpn/frp/files/frpc.service b/net-vpn/frp/files/frpc.service new file mode 100644 index 000000000000..5679ae7d1229 --- /dev/null +++ b/net-vpn/frp/files/frpc.service @@ -0,0 +1,14 @@ +[Unit] +Description=Frp Client Service +After=network.target + +[Service] +Type=simple +DynamicUser=yes +Restart=on-failure +RestartSec=5s +ExecStart=/usr/bin/frpc -c /etc/frp/frpc.toml +LimitNOFILE=1048576 + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/frp/files/frpc_at_.service b/net-vpn/frp/files/frpc_at_.service new file mode 100644 index 000000000000..79331b417003 --- /dev/null +++ b/net-vpn/frp/files/frpc_at_.service @@ -0,0 +1,14 @@ +[Unit] +Description=Frp Client Service +After=network.target + +[Service] +Type=simple +DynamicUser=yes +Restart=on-failure +RestartSec=5s +ExecStart=/usr/bin/frpc -c /etc/frp/%i.toml +LimitNOFILE=1048576 + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/frp/files/frps.service b/net-vpn/frp/files/frps.service new file mode 100644 index 000000000000..69b1cd887029 --- /dev/null +++ b/net-vpn/frp/files/frps.service @@ -0,0 +1,14 @@ +[Unit] +Description=Frp Server Service +After=network.target + +[Service] +Type=simple +DynamicUser=yes +Restart=on-failure +RestartSec=5s +ExecStart=/usr/bin/frps -c /etc/frp/frps.toml +LimitNOFILE=1048576 + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/frp/files/frps_at_.service b/net-vpn/frp/files/frps_at_.service new file mode 100644 index 000000000000..3f337590fcd0 --- /dev/null +++ b/net-vpn/frp/files/frps_at_.service @@ -0,0 +1,14 @@ +[Unit] +Description=Frp Server Service +After=network.target + +[Service] +Type=simple +DynamicUser=yes +Restart=on-failure +RestartSec=5s +ExecStart=/usr/bin/frps -c /etc/frp/%i.toml +LimitNOFILE=1048576 + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/frp/frp-0.65.0.ebuild b/net-vpn/frp/frp-0.65.0.ebuild new file mode 100644 index 000000000000..869ca1c19103 --- /dev/null +++ b/net-vpn/frp/frp-0.65.0.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module systemd shell-completion + +DESCRIPTION="A reverse proxy that exposes a server behind a NAT or firewall to the internet" +HOMEPAGE="https://github.com/fatedier/frp" +SRC_URI=" + https://github.com/fatedier/frp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/gentoo-zh-drafts/frp/releases/download/v${PV}/${P}-vendor.tar.xz +" + +LICENSE="Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="amd64 ~loong ~riscv" + +IUSE="+client +server" +REQUIRED_USE="|| ( client server )" + +BDEPEND=">=dev-lang/go-1.24" + +_compile() { + ego build -tags "${1}" "./cmd/${1}" + + # Generate completion files + "./${1}" completion bash > "${S}/completion/${1}" || die + "./${1}" completion fish > "${S}/completion/${1}.fish" || die + "./${1}" completion zsh > "${S}/completion/_${1}" || die +} + +_install() { + # Install binary file + dobin "${1}" + + # Install completion files + dobashcomp "${S}/completion/${1}" + dofishcomp "${S}/completion/${1}.fish" + dozshcomp "${S}/completion/_${1}" + + # Install systemd services + systemd_dounit "${FILESDIR}/${1}.service" + systemd_newunit "${FILESDIR}/${1}_at_.service" "${1}@.service" + + # Install config files + insinto "/etc/${PN}" + newins "${S}/conf/${1}.toml" "${1}.toml.example" + newins "${S}/conf/${1}_full_example.toml" "${1}_full.toml.example" +} + +src_compile() { + mkdir -pv completion || die + use client && _compile frpc + use server && _compile frps +} + +src_install() { + use client && _install frpc + use server && _install frps +} diff --git a/net-vpn/frp/frp-0.68.0.ebuild b/net-vpn/frp/frp-0.68.0.ebuild new file mode 100644 index 000000000000..2deb2b27cfa5 --- /dev/null +++ b/net-vpn/frp/frp-0.68.0.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module systemd shell-completion + +DESCRIPTION="A reverse proxy that exposes a server behind a NAT or firewall to the internet" +HOMEPAGE="https://github.com/fatedier/frp" +SRC_URI=" + https://github.com/fatedier/frp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/gentoo-zh-drafts/frp/releases/download/v${PV}/${P}-vendor.tar.xz +" + +LICENSE="Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~loong ~riscv" + +IUSE="+client +server" +REQUIRED_USE="|| ( client server )" + +BDEPEND=">=dev-lang/go-1.25.0" + +_compile() { + # Currently no web support + ego build -tags "${1},noweb" "./cmd/${1}" + + # Generate completion files + "./${1}" completion bash > "${S}/completion/${1}" || die + "./${1}" completion fish > "${S}/completion/${1}.fish" || die + "./${1}" completion zsh > "${S}/completion/_${1}" || die +} + +_install() { + # Install binary file + dobin "${1}" + + # Install completion files + dobashcomp "${S}/completion/${1}" + dofishcomp "${S}/completion/${1}.fish" + dozshcomp "${S}/completion/_${1}" + + # Install systemd services + systemd_dounit "${FILESDIR}/${1}.service" + systemd_newunit "${FILESDIR}/${1}_at_.service" "${1}@.service" + + # Install config files + insinto "/etc/${PN}" + newins "${S}/conf/${1}.toml" "${1}.toml.example" + newins "${S}/conf/${1}_full_example.toml" "${1}_full.toml.example" +} + +src_compile() { + mkdir -pv completion || die + use client && _compile frpc + use server && _compile frps +} + +src_install() { + use client && _install frpc + use server && _install frps +} diff --git a/net-vpn/frp/metadata.xml b/net-vpn/frp/metadata.xml new file mode 100644 index 000000000000..29fb056dd278 --- /dev/null +++ b/net-vpn/frp/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>zmedico@gentoo.org</email> + <name>Zac Medico</name> + </maintainer> + <use> + <flag name="client">Build and install frp client (frpc)</flag> + <flag name="server">Build and install frp server (frps)</flag> + </use> + <upstream> + <remote-id type="github">fatedier/frp</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/gp-saml-gui/gp-saml-gui-9999.ebuild b/net-vpn/gp-saml-gui/gp-saml-gui-9999.ebuild new file mode 100644 index 000000000000..b9d163cd2c9f --- /dev/null +++ b/net-vpn/gp-saml-gui/gp-saml-gui-9999.ebuild @@ -0,0 +1,23 @@ +# Copyright 2023-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} ) +inherit distutils-r1 git-r3 + +DESCRIPTION="Interactively authenticate to GlobalProtect VPNs that require SAML" +HOMEPAGE="https://github.com/dlenski/gp-saml-gui" + +EGIT_REPO_URI="https://github.com/dlenski/gp-saml-gui.git" + +LICENSE="GPL-3+" +SLOT="0" + +RDEPEND=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/pygobject[${PYTHON_USEDEP}] + net-libs/webkit-gtk:4.1 + net-vpn/openconnect +" diff --git a/net-vpn/gp-saml-gui/metadata.xml b/net-vpn/gp-saml-gui/metadata.xml new file mode 100644 index 000000000000..c761ac015d35 --- /dev/null +++ b/net-vpn/gp-saml-gui/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="github">dlenski/gp-saml-gui</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/gsocket/Manifest b/net-vpn/gsocket/Manifest new file mode 100644 index 000000000000..f249ca143c02 --- /dev/null +++ b/net-vpn/gsocket/Manifest @@ -0,0 +1 @@ +DIST gsocket-1.4.43.tar.gz 223602 BLAKE2B 92818d932f1d5eddd66a810aaecb800d0ac435d7320912fdb8e485ae7f5398dfb96b1e6c0bbc4edc651414eb912bd90e14e442db904d04aa71b236188a9bff66 SHA512 2c58182b52242f275b7597c7214f8f0b09f52d369fee66454a2b00322b9b7075af3f675c7f785ae66ed8f331351ed60a0038e997258df35a938c6b1f4a94b21c diff --git a/net-vpn/gsocket/files/gs-socks-proxy.service b/net-vpn/gsocket/files/gs-socks-proxy.service new file mode 100644 index 000000000000..ce9d180641b3 --- /dev/null +++ b/net-vpn/gsocket/files/gs-socks-proxy.service @@ -0,0 +1,22 @@ +[Unit] +Description=Global Socket Socks Proxy +After=network-online.target +Wants=network-online.target + +[Service] +Restart=always +RestartSec=10 +RestartSteps=10 +RestartMaxDelaySec=30m + +DynamicUser=yes +RuntimeDirectory=gs-socks-proxy + +ExecStartPre=+gs-init-secret /etc/gsocket/gs-socks-proxy-key +ExecStartPre=+install --owner %u /etc/gsocket/gs-socks-proxy-key /run/gs-socks-proxy/key + +ExecStart=gs-netcat -k /run/gs-socks-proxy/key -lS + + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/gsocket/files/gsocket-1.4.43-gs-init-secret.patch b/net-vpn/gsocket/files/gsocket-1.4.43-gs-init-secret.patch new file mode 100644 index 000000000000..1e8d589a90c4 --- /dev/null +++ b/net-vpn/gsocket/files/gsocket-1.4.43-gs-init-secret.patch @@ -0,0 +1,160 @@ +From 9601745f3f75eea748ec93f90b1b1a3023b6514d Mon Sep 17 00:00:00 2001 +From: Florian Schmaus <flo@geekplace.eu> +Date: Tue, 28 May 2024 11:08:31 +0200 +Subject: [PATCH 1/5] gs-init-secret: add new script + +The gs-init-secret script can be used to securely initialize a file +containing a gsocket secret. +--- + tools/Makefile.am | 2 +- + tools/gs-init-secret | 33 +++++++++++++++++++++++++++++++++ + 2 files changed, 34 insertions(+), 1 deletion(-) + create mode 100755 tools/gs-init-secret + +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 805fedd..9af4df0 100755 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -38,7 +38,7 @@ gs_netcat_SOURCES = 4_gs-netcat.c utils.c socks.c console.c ids.c event_mgr.c pk + gs_netcat_LDADD = ../lib/libgsocket.a @LDADD_STATIC@ + gs_netcat_CFLAGS = @CFLAGS_STATIC@ + +-dist_bin_SCRIPTS = blitz gs-sftp gs-mount gsocket ++dist_bin_SCRIPTS = blitz gs-sftp gs-mount gsocket gs-init-secret + + gsocket_uchroot_dso_so_0_SOURCES = gsocket_uchroot_dso.c + gsocket_uchroot_dso_so_0_CFLAGS = -shared -fPIC +diff --git a/tools/gs-init-secret b/tools/gs-init-secret +new file mode 100755 +index 0000000..f2782f1 +--- /dev/null ++++ b/tools/gs-init-secret +@@ -0,0 +1,33 @@ ++#!/usr/bin/env bash ++set -eu ++ ++if [[ $# -eq 2 ]]; then ++ >&2 echo "ERROR: Must provide exactly one argument" ++ exit 1 ++fi ++ ++SECRET_FILE="${1}" ++ ++if [[ -f "${SECRET_FILE}" ]]; then ++ SECRET_FILE_PERMS="$(stat -c %a "${SECRET_FILE}")" ++ if [[ ${SECRET_FILE_PERMS} != [0-9][0-9]0 ]]; then ++ >&2 echo "ERROR: ${SECRET_FILE} has world-permissions set (${SECRET_FILE_PERMS})" ++ exit 1 ++ fi ++ ++ exit ++fi ++ ++TARGET_DIR="$(dirname "${SECRET_FILE}")" ++if [[ ! -d "${TARGET_DIR}" ]]; then ++ mkdir -p "${TARGET_DIR}" ++fi ++ ++MY_TMPDIR=$(mktemp -d --tmpdir="${TMPDIR:-/tmp}") ++trap 'rm -rf ${MY_TMPDIR}' EXIT ++ ++SECRET_FILE_TMP="${MY_TMPDIR}/secret" ++ ++gs-netcat -g > "${SECRET_FILE_TMP}" ++ ++install --mode=400 "${SECRET_FILE_TMP}" "${SECRET_FILE}" + +From 756a515a116b5e13f6b5ba95ebbee676d34bfbd8 Mon Sep 17 00:00:00 2001 +From: Florian Schmaus <flo@geekplace.eu> +Date: Tue, 28 May 2024 11:10:53 +0200 +Subject: [PATCH 2/5] gs-root-shell.service: use gs-init-secret + +--- + examples/systemd-root-shell/gs-root-shell.service | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/examples/systemd-root-shell/gs-root-shell.service b/examples/systemd-root-shell/gs-root-shell.service +index 5b0e9a1..278de73 100644 +--- a/examples/systemd-root-shell/gs-root-shell.service ++++ b/examples/systemd-root-shell/gs-root-shell.service +@@ -7,7 +7,8 @@ Type=simple + Restart=always + RestartSec=10 + WorkingDirectory=/root +-ExecStart=gs-netcat -k /etc/systemd/gs-root-shell-key.txt -il ++ExecStartPre=gs-init-secret /etc/gsocket/gs-root-shell-key ++ExecStart=gs-netcat -k /etc/gsocket/gs-root-shell-key -il + + [Install] + WantedBy=multi-user.target + +From 5e72debc560cc18e36d9066653fba864a366b4c3 Mon Sep 17 00:00:00 2001 +From: Florian Schmaus <flo@geekplace.eu> +Date: Tue, 28 May 2024 11:11:43 +0200 +Subject: [PATCH 3/5] gs-root-shell.service: drop Type=simple, as it is the + default + +--- + examples/systemd-root-shell/gs-root-shell.service | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/examples/systemd-root-shell/gs-root-shell.service b/examples/systemd-root-shell/gs-root-shell.service +index 278de73..92a9814 100644 +--- a/examples/systemd-root-shell/gs-root-shell.service ++++ b/examples/systemd-root-shell/gs-root-shell.service +@@ -3,7 +3,6 @@ Description=Global Socket Root Shell + After=network.target + + [Service] +-Type=simple + Restart=always + RestartSec=10 + WorkingDirectory=/root + +From 9aa3a85656e8917720568a9b019cc774636b9d23 Mon Sep 17 00:00:00 2001 +From: Florian Schmaus <flo@geekplace.eu> +Date: Tue, 28 May 2024 11:12:17 +0200 +Subject: [PATCH 4/5] gs-root-shell.service: set RestartSteps=10 and cap + restart delays at 30min + +--- + examples/systemd-root-shell/gs-root-shell.service | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/examples/systemd-root-shell/gs-root-shell.service b/examples/systemd-root-shell/gs-root-shell.service +index 92a9814..5d52050 100644 +--- a/examples/systemd-root-shell/gs-root-shell.service ++++ b/examples/systemd-root-shell/gs-root-shell.service +@@ -5,6 +5,8 @@ After=network.target + [Service] + Restart=always + RestartSec=10 ++RestartSteps=10 ++RestartMaxDelaySec=30m + WorkingDirectory=/root + ExecStartPre=gs-init-secret /etc/gsocket/gs-root-shell-key + ExecStart=gs-netcat -k /etc/gsocket/gs-root-shell-key -il + +From 24eb0d5606bbe38a4b401394933f4dbe9b851a5c Mon Sep 17 00:00:00 2001 +From: Florian Schmaus <flo@geekplace.eu> +Date: Tue, 28 May 2024 11:13:14 +0200 +Subject: [PATCH 5/5] gs-root-shell.service: configure service to await + network-online.target + +--- + examples/systemd-root-shell/gs-root-shell.service | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/examples/systemd-root-shell/gs-root-shell.service b/examples/systemd-root-shell/gs-root-shell.service +index 5d52050..439890e 100644 +--- a/examples/systemd-root-shell/gs-root-shell.service ++++ b/examples/systemd-root-shell/gs-root-shell.service +@@ -1,6 +1,7 @@ + [Unit] + Description=Global Socket Root Shell +-After=network.target ++After=network-online.target ++Wants=network-online.target + + [Service] + Restart=always diff --git a/net-vpn/gsocket/gsocket-1.4.43-r1.ebuild b/net-vpn/gsocket/gsocket-1.4.43-r1.ebuild new file mode 100644 index 000000000000..450fb65d37c4 --- /dev/null +++ b/net-vpn/gsocket/gsocket-1.4.43-r1.ebuild @@ -0,0 +1,68 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="Allow firewalled/NATed host to establish a secure connection" +HOMEPAGE="https://www.gsocket.io/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hackerschoice/gsocket.git" +else + SRC_URI="https://github.com/hackerschoice/gsocket/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64 ~riscv" +fi + +LICENSE="BSD-2" +SLOT="0" + +IUSE="test" +RESTRICT="!test? ( test )" + +COMMON_DEPEND="dev-libs/openssl:=" +DEPEND=" + ${COMMON_DEPEND} + test? ( + net-analyzer/netcat + net-misc/socat + ) +" +RDEPEND="${COMMON_DEPEND}" + +PATCHES=( + # https://github.com/hackerschoice/gsocket/pull/104 + "${FILESDIR}"/gsocket-1.4.43-gs-init-secret.patch +) + +src_prepare() { + default + + # Patch in the correct libdir + sed -i \ + "s;arrayContains \"/usr/lib\".*;DL+=(\"${EPREFIX}/usr/$(get_libdir)\");" \ + tools/gs_funcs || die "Failed to patch libdir in gs_funcs" + + eautoreconf +} + +src_configure() { + econf $(use_enable test tests) +} + +src_test() { + cd tests || die + + ./run_ft_tests.sh || die + # Most of the "gs_tests" seem to fail (probably due the sandbox). + ./run_gs_tests.sh 4.1 || die +} + +src_install() { + default + + systemd_dounit examples/systemd-root-shell/gs-root-shell.service + systemd_dounit "${FILESDIR}"/gs-socks-proxy.service +} diff --git a/net-vpn/gsocket/gsocket-1.4.43.ebuild b/net-vpn/gsocket/gsocket-1.4.43.ebuild new file mode 100644 index 000000000000..cf52e0c79b0d --- /dev/null +++ b/net-vpn/gsocket/gsocket-1.4.43.ebuild @@ -0,0 +1,67 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="Allow firewalled/NATed host to establish a secure connection" +HOMEPAGE="https://www.gsocket.io/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hackerschoice/gsocket.git" +else + SRC_URI="https://github.com/hackerschoice/gsocket/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64 ~riscv" +fi + +LICENSE="BSD-2" +SLOT="0" + +IUSE="test" +RESTRICT="!test? ( test )" + +COMMON_DEPEND="dev-libs/openssl:=" +DEPEND=" + ${COMMON_DEPEND} + test? ( + net-analyzer/netcat + net-misc/socat + ) +" +RDEPEND="${COMMON_DEPEND}" + +PATCHES=( + # https://github.com/hackerschoice/gsocket/pull/104 + "${FILESDIR}"/gsocket-1.4.43-gs-init-secret.patch +) + +src_prepare() { + default + + # Patch in the correct libdir + sed -i \ + "s;arrayContains \"/usr/lib\".*;DL+=(\"${EPREFIX}/usr/$(get_libdir)\");" \ + tools/gs_funcs || die "Failed to patch libdir in gs_funcs" + + eautoreconf +} + +src_configure() { + econf $(use_enable test tests) +} + +src_test() { + cd tests || die + + ./run_ft_tests.sh || die + # Most of the "gs_tests" seem to fail (probably due the sandbox). + ./run_gs_tests.sh 4.1 || die +} + +src_install() { + default + + systemd_dounit examples/systemd-root-shell/gs-root-shell.service +} diff --git a/net-vpn/gsocket/gsocket-9999.ebuild b/net-vpn/gsocket/gsocket-9999.ebuild new file mode 100644 index 000000000000..74426aaafe23 --- /dev/null +++ b/net-vpn/gsocket/gsocket-9999.ebuild @@ -0,0 +1,68 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="Allow firewalled/NATed host to establish a secure connection" +HOMEPAGE="https://www.gsocket.io/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hackerschoice/gsocket.git" +else + SRC_URI="https://github.com/hackerschoice/gsocket/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~riscv" +fi + +LICENSE="BSD-2" +SLOT="0" + +IUSE="test" +RESTRICT="!test? ( test )" + +COMMON_DEPEND="dev-libs/openssl:=" +DEPEND=" + ${COMMON_DEPEND} + test? ( + net-analyzer/netcat + net-misc/socat + ) +" +RDEPEND="${COMMON_DEPEND}" + +PATCHES=( + # https://github.com/hackerschoice/gsocket/pull/104 + "${FILESDIR}"/gsocket-1.4.43-gs-init-secret.patch +) + +src_prepare() { + default + + # Patch in the correct libdir + sed -i \ + "s;arrayContains \"/usr/lib\".*;DL+=(\"${EPREFIX}/usr/$(get_libdir)\");" \ + tools/gs_funcs || die "Failed to patch libdir in gs_funcs" + + eautoreconf +} + +src_configure() { + econf $(use_enable test tests) +} + +src_test() { + cd tests || die + + ./run_ft_tests.sh || die + # Most of the "gs_tests" seem to fail (probably due the sandbox). + ./run_gs_tests.sh 4.1 || die +} + +src_install() { + default + + systemd_dounit examples/systemd-root-shell/gs-root-shell.service + systemd_dounit "${FILESDIR}"/gs-socks-proxy.service +} diff --git a/net-vpn/gsocket/metadata.xml b/net-vpn/gsocket/metadata.xml new file mode 100644 index 000000000000..484ee0f87b0a --- /dev/null +++ b/net-vpn/gsocket/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Florian Schmaus</name> + <email>flow@gentoo.org</email> + </maintainer> + <upstream> + <remote-id type="github">hackerschoice/gsocket</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/headscale/Manifest b/net-vpn/headscale/Manifest new file mode 100644 index 000000000000..62fe1eddc280 --- /dev/null +++ b/net-vpn/headscale/Manifest @@ -0,0 +1,2 @@ +DIST headscale-0.27.1-deps.tar.xz 259439520 BLAKE2B 2022da884e144e15da86989841c4f57edf0a182c538f7def89113b2cbc1cefa21bd1734c7ff998349abbda73724b68f45122a8f6be27320c1d82fdbe73a9ab6a SHA512 1e1bef557550e06e5c7eac9943ca61d045cb4dc44a22b09ac751c75d7ac7ed99649f9647b5ce90d5ac7a94f06da44f1bc46b5ada97f0be37cb2efe3d101bfb5c +DIST headscale-0.27.1.tar.gz 1027977 BLAKE2B 0567e219974b284a309eed6481c997e3c75bf44eb0450547203431b649e5b1ecb99ca540872b5beb8f275ea7cd1c6829eb66c6167082bd7b3ee72c532cc93a6b SHA512 8334042ae90d9beb0f291952f87037efe15b4c184391e22257e04791a5dbdd5c2370b03769de9080dc5e4475cb398c478e713b00946394b245bf2afeda092b78 diff --git a/net-vpn/headscale/files/headscale.confd b/net-vpn/headscale/files/headscale.confd new file mode 100644 index 000000000000..5bf65c68e358 --- /dev/null +++ b/net-vpn/headscale/files/headscale.confd @@ -0,0 +1,8 @@ +HEADSCALE_USER=headscale +HEADSCALE_GROUP=headscale + +# max number of open files (for floodfill) +rc_ulimit="-n 4096" + +# Options to headscale +HEADSCALE_OPTIONS="serve" diff --git a/net-vpn/headscale/files/headscale.initd b/net-vpn/headscale/files/headscale.initd new file mode 100644 index 000000000000..9e89ac2ead15 --- /dev/null +++ b/net-vpn/headscale/files/headscale.initd @@ -0,0 +1,35 @@ +#!/sbin/openrc-run +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +description="Headscale Server daemon" +command="/usr/bin/headscale" +user="${HEADSCALE_USER}:${HEADSCALE_GROUP}" +directory="/var/lib/headscale" +output_log="/var/log/headscale.log" +error_log="/var/log/headscale.log" +private_key="/var/lib/headscale/private.key" + +start_stop_daemon_args="--user \"${user}\" ${HEADSCALE_OPTIONS} --background" + +depend() { + need net +} + +start_pre() { + if [ ! -s /etc/headscale/config.yaml ] ; then + eerror "Missing headscale configuration file" + eerror "Please check the documentation directory for an example" + return 1 + fi + + checkpath -d -m 700 -o "${user}" /run/headscale /var/lib/headscale + checkpath -f -m 600 -o "${user}" \ + /var/lib/headscale/db.sqlite \ + /var/log/headscale.log \ + /etc/headscale/config.yaml + + if [ -f ${private_key} ]; then + checkpath -f -m 600 -o "${user}" ${private_key} + fi +} diff --git a/net-vpn/headscale/files/headscale.service b/net-vpn/headscale/files/headscale.service new file mode 100644 index 000000000000..fb27b40d4e31 --- /dev/null +++ b/net-vpn/headscale/files/headscale.service @@ -0,0 +1,24 @@ +[Unit] +Description=headscale controller +After=syslog.target +After=network.target + +[Service] +Type=simple +User=headscale +Group=headscale +ExecStart=/usr/bin/headscale serve +Restart=always +RestartSec=5 + +# Optional security enhancements +NoNewPrivileges=yes +PrivateTmp=yes +ProtectSystem=strict +ProtectHome=yes +ReadWritePaths=/var/lib/headscale /run/headscale +AmbientCapabilities=CAP_NET_BIND_SERVICE +RuntimeDirectory=headscale + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/headscale/headscale-0.27.1.ebuild b/net-vpn/headscale/headscale-0.27.1.ebuild new file mode 100644 index 000000000000..ad6c3c58b580 --- /dev/null +++ b/net-vpn/headscale/headscale-0.27.1.ebuild @@ -0,0 +1,49 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module systemd + +DESCRIPTION="An open source, self-hosted implementation of the Tailscale control server" +HOMEPAGE="https://github.com/juanfont/headscale" +DEPS_URIS=( "https://github.com/dlan17/gentoo-go-deps/releases/download/${P}/${P}-deps.tar.xz" ) +SRC_URI="https://github.com/juanfont/headscale/archive/v${PV}.tar.gz -> ${P}.tar.gz + ${DEPS_URIS[*]}" + +LICENSE="BSD Apache-2.0 MIT" +SLOT="0" +KEYWORDS="~amd64 ~riscv" + +DEPEND=" + acct-group/headscale + acct-user/headscale +" +RDEPEND=" + ${DEPEND} + net-firewall/iptables +" +BDEPEND=">=dev-lang/go-1.25.0" + +src_compile() { + export -n GOCACHE XDG_CACHE_HOME + go build -o "./bin/${PN}" "./cmd/${PN}" || die +} + +src_install() { + dobin bin/headscale + dodoc -r config-example.yaml derp-example.yaml + keepdir /etc/headscale /var/lib/headscale + systemd_dounit "${FILESDIR}"/headscale.service + newconfd "${FILESDIR}"/headscale.confd headscale + newinitd "${FILESDIR}"/headscale.initd headscale + fowners -R "${PN}":"${PN}" /etc/headscale /var/lib/headscale +} + +pkg_postinst() { + [[ -f "${EROOT}"/etc/headscale/config.yaml ]] && return + elog "Please create ${EROOT}/etc/headscale/config.yaml before starting the service" + elog "An example is in ${EROOT}/usr/share/doc/${P}/config-example.yaml.bz2" + ewarn ">=headscale-0.19.0 has a DB structs breaking, please BACKUP your database before upgrading!" + ewarn "see also: https://github.com/juanfont/headscale/pull/1171 and https://github.com/juanfont/headscale/pull/1144" +} diff --git a/net-vpn/headscale/metadata.xml b/net-vpn/headscale/metadata.xml new file mode 100644 index 000000000000..6a0810676304 --- /dev/null +++ b/net-vpn/headscale/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>chris@lesscrowds.org</email> + <name>Chris Su</name> + </maintainer> + <maintainer type="person" proxied="proxy"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <maintainer type="person" proxied="proxy"> + <email>jsmolic@gentoo.org</email> + <name>Jakov Smolić</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <upstream> + <remote-id type="github">juanfont/headscale</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/httptunnel/Manifest b/net-vpn/httptunnel/Manifest new file mode 100644 index 000000000000..1049be2e977b --- /dev/null +++ b/net-vpn/httptunnel/Manifest @@ -0,0 +1 @@ +DIST httptunnel-3.3_p20230508.tar.gz 376345 BLAKE2B fc7cd76be346b5e289d7ce21348d87304ee08a11afbcae53f84afef19ea2dfcf88256f3afbcba242acb01f12a9adc08e6679b6c96f2ebe9051fbac6fe4a1d227 SHA512 77383fc2926d1579a3efdde476b8057373b544f3ace4a5a855692fd8b313d192e98e8d003b5165bba0559f114b0c1fa6ab5345b2bb6206e95cc3eee3c3dacda3 diff --git a/net-vpn/httptunnel/files/httptunnel-3.3_p20180119-respect-AR.patch b/net-vpn/httptunnel/files/httptunnel-3.3_p20180119-respect-AR.patch new file mode 100644 index 000000000000..bdc6b7fb5a4a --- /dev/null +++ b/net-vpn/httptunnel/files/httptunnel-3.3_p20180119-respect-AR.patch @@ -0,0 +1,12 @@ +diff --git a/configure.ac b/configure.ac +index acd5843..f5ad65d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -26,6 +26,7 @@ AC_PROG_CC + AC_PROG_INSTALL + AC_PROG_LN_S + AC_PROG_RANLIB ++AM_PROG_AR + + dnl Checks for libraries. + AC_CHECK_FUNC([gethostent], :, [AC_CHECK_LIB(nsl, gethostent)]) diff --git a/net-vpn/httptunnel/httptunnel-3.3_p20230508.ebuild b/net-vpn/httptunnel/httptunnel-3.3_p20230508.ebuild new file mode 100644 index 000000000000..e27adfa6d8aa --- /dev/null +++ b/net-vpn/httptunnel/httptunnel-3.3_p20230508.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic toolchain-funcs + +COMMIT="d8f91af976c97a6006a5bd1ad7149380c39ba454" +DESCRIPTION="httptunnel can create IP tunnels through firewalls/proxies using HTTP" +HOMEPAGE="https://github.com/larsbrinkhoff/httptunnel" +SRC_URI="https://github.com/larsbrinkhoff/httptunnel/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc x86" + +PATCHES=( + "${FILESDIR}/${PN}-3.3_p20180119-respect-AR.patch" +) + +src_prepare() { + default + + tc-export AR RANLIB + eautoreconf +} + +src_configure() { + # bug #943924 + append-cflags -std=gnu17 + + default +} diff --git a/net-vpn/httptunnel/metadata.xml b/net-vpn/httptunnel/metadata.xml new file mode 100644 index 000000000000..5cf88b1a6c25 --- /dev/null +++ b/net-vpn/httptunnel/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="github">larsbrinkhoff/httptunnel</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/i2p/Manifest b/net-vpn/i2p/Manifest new file mode 100644 index 000000000000..3ac7faed7d23 --- /dev/null +++ b/net-vpn/i2p/Manifest @@ -0,0 +1,3 @@ +DIST i2psource_2.11.0.tar.bz2 39807193 BLAKE2B 91c7d1cf6b33f8ec119b0aedfb2e3fd3997a75709715d484aa03bcbd5be1ef1aea1b305ee3ed1a7650bbfc15ab44e59ca5dd5734a166f9daa8f98a4956486968 SHA512 8faa5a4ffbbc3cb9e19d491c919c7e708ae66bb8207d05e33c8c51ca1f4707b22b95ce7413777d8513666bd9ee108f95d88de842c4a0e5485739b2d5b5633886 +DIST i2psource_2.12.0.tar.bz2 39528116 BLAKE2B ab97a97c82690377db941e9729170db0d1869d5cf473509b231d478f4951ef4f0214c318b9805ef0d9d14b421d9537132c47676301fe7d1e9a302b2d25fd2210 SHA512 1bffdbd3ba8b9e46d375f71f316242c6d914650b52bbe948a0659fc5807dd2e4c4547459837ac286fbc474dc8f99531a53a45fce944575fa6b58adbb0591fbcc +DIST i2psource_2.12.0.tar.bz2.sig 310 BLAKE2B de90f8b013d20b7f162abebdae074a523f44ac7bc9528a1b586fe7316e11a5b2f4033b2d47afcf017b6e426bb44eadb68d6e11241c31341b70dd1d164db7d705 SHA512 b27930a2c14f1bf118ae7037e0ce58741841136edfcbd5f586b46909a2be78eff015205441a7ee0c70a5a841e92d227439b4ca453bf2e2917563f3b4a871587e diff --git a/net-vpn/i2p/files/2.11.0-force-gentoo-classpath.patch b/net-vpn/i2p/files/2.11.0-force-gentoo-classpath.patch new file mode 100644 index 000000000000..e7b58b797265 --- /dev/null +++ b/net-vpn/i2p/files/2.11.0-force-gentoo-classpath.patch @@ -0,0 +1,418 @@ +commit 4f380e55415321eec39d579a5df307a05966e192 +Author: tharvik <tharvik@users.noreply.github.com> +Date: Sat Aug 17 13:56:51 2024 +0200 + + add gentoo.classpath + +diff --git a/apps/i2pcontrol/build.xml b/apps/i2pcontrol/build.xml +index 78e4533a3f..54541d4ddb 100644 +--- a/apps/i2pcontrol/build.xml ++++ b/apps/i2pcontrol/build.xml +@@ -27,6 +27,7 @@ + <pathelement location="${wrapperlib}/wrapper.jar" /> + <!-- following jar only present for debian builds --> + <pathelement location="../../core/java/build/json-simple.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <path id="cpSocket"> +@@ -36,6 +37,7 @@ + <pathelement location="${wrapperlib}/wrapper.jar" /> + <!-- following jar only present for debian builds --> + <pathelement location="../../core/java/build/json-simple.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <target name="all" depends="clean, build" /> +diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml +index aad4f3ad1f..df3b3186e2 100644 +--- a/apps/i2psnark/java/build.xml ++++ b/apps/i2psnark/java/build.xml +@@ -65,6 +65,7 @@ + <pathelement location="../../jetty/jettylib/jetty-http.jar" /> + <pathelement location="../../jetty/jettylib/jetty-io.jar" /> + <pathelement location="../../desktopgui/dist/desktopgui.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + </target> +diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml +index 86e5078376..8473e52a96 100644 +--- a/apps/i2ptunnel/java/build.xml ++++ b/apps/i2ptunnel/java/build.xml +@@ -45,7 +45,7 @@ + destdir="./build/obj" + includeAntRuntime="false" + encoding="UTF-8" +- classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar" > ++ classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + </javac> + </target> +@@ -372,6 +372,7 @@ + <!-- required for multipart form handling in register.jsp --> + <pathelement location="../../jetty/jettylib/jetty-i2p.jar" /> + <pathelement location="../../jetty/jettylib/jspc.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <arg value="-d" /> + <arg value="../jsp/WEB-INF/classes" /> +@@ -409,6 +410,7 @@ + <pathelement location="../../../core/java/build/i2p.jar" /> + <!-- required for multipart form handling in register.jsp --> + <pathelement location="../../jetty/jettylib/jetty-i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + <copy file="../jsp/web.xml" tofile="../jsp/web-out.xml" /> +@@ -476,6 +478,7 @@ + <pathelement location="../../ministreaming/java/build/mstreaming.jar" /> + <pathelement location="../../streaming/java/build/streaming.jar" /> + <pathelement location="${junit.home}/junit4.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest> + <fileset dir="./test/junit/"> +diff --git a/apps/imagegen/imagegen/build.xml b/apps/imagegen/imagegen/build.xml +index 39252ef8bd..6193ff129e 100644 +--- a/apps/imagegen/imagegen/build.xml ++++ b/apps/imagegen/imagegen/build.xml +@@ -9,6 +9,7 @@ + <pathelement location="../zxing/build/zxing.jar" /> + <pathelement location="../../../build/i2p.jar" /> + <pathelement location="../../../build/jrobin.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <target name="all" depends="war" /> +diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml +index d6c8879d3a..dcfbc6498e 100644 +--- a/apps/jetty/build.xml ++++ b/apps/jetty/build.xml +@@ -405,7 +405,7 @@ + <target name="depend" if="depend.available"> + <depend + cache="../../build" +- srcdir="./java/src" ++ srcdir="./java/src" + destdir="./build/obj" > + <classpath> + <pathelement location="../../core/java/build/i2p.jar" /> +@@ -427,11 +427,11 @@ + <target name="compile" depends="builddep, ensureJettylib, depend" > + <mkdir dir="./build" /> + <mkdir dir="./build/obj" /> +- <javac +- srcdir="./java/src" +- debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" ++ <javac ++ srcdir="./java/src" ++ debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" + release="${javac.release}" +- destdir="./build/obj" ++ destdir="./build/obj" + encoding="UTF-8" + includeAntRuntime="false" > + <classpath> +@@ -450,6 +450,7 @@ + <!-- following jars only present for debian builds --> + <pathelement location="./jettylib/tomcat-api.jar" /> + <pathelement location="./jettylib/slf4j2-api.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -499,7 +500,7 @@ + <!-- separate jar for JspC wrapper used only in build, not included in jetty-i2p.jar --> + <jar destfile="./jettylib/jspc.jar" basedir="./build/obj" includes="**/JspC.class" > + </jar> +- </target> ++ </target> + + <target name="jarUpToDate"> + <uptodate property="jar.uptodate" targetfile="jettylib/jetty-i2p.jar" > +@@ -514,7 +515,7 @@ + <isset property="git.available" /> + </and> + </condition> +- </target> ++ </target> + + <!-- empty, uncomment below if needed --> + <target name="buildPatches" unless="${with-libjetty12-java}" /> +@@ -526,11 +527,11 @@ + <target name="compilePatches" unless="${with-libjetty12-java}" > + <mkdir dir="./build" /> + <mkdir dir="./build/objPatches" /> +- <javac +- srcdir="./patches/jetty-util/src/main/java" +- debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" ++ <javac ++ srcdir="./patches/jetty-util/src/main/java" ++ debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" + release="${javac.release}" +- destdir="./build/objPatches" ++ destdir="./build/objPatches" + includeAntRuntime="false" + encoding="UTF-8" + classpath="" > +@@ -538,11 +539,11 @@ + </javac> + <!-- + <mkdir dir="./build/objPatches2" /> +- <javac +- srcdir="./patches/jetty-io/src/main/java" +- debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" ++ <javac ++ srcdir="./patches/jetty-io/src/main/java" ++ debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" + release="${javac.release}" +- destdir="./build/objPatches2" ++ destdir="./build/objPatches2" + includeAntRuntime="false" + encoding="UTF-8" > + <compilerarg line="${javac.compilerargs}" /> +@@ -559,7 +560,7 @@ + <!-- + <jar destfile="./build/jetty-io-patch.jar" basedir="./build/objPatches2" includes="**/*.class" /> + --> +- </target> ++ </target> + + <target name="jarPatchesUpToDate" > + <condition property="jarPatches.uptodate" > +@@ -573,12 +574,12 @@ + </uptodate> + </or> + </condition> +- </target> ++ </target> + + <target name="clean" > + <delete dir="./build" /> + <delete file="${verified.filename}" /> +- </target> ++ </target> + <target name="cleandep" depends="clean" /> + <target name="distclean" depends="clean"> + <delete dir="./jettylib" /> +@@ -628,7 +629,7 @@ + <attribute name="X-Compile-Target-JDK" value="${javac.version}" /> + </manifest> + </jar> +- </target> ++ </target> + + <target name="servletJavadoc"> + <mkdir dir="./build" /> +diff --git a/apps/ministreaming/java/build.xml b/apps/ministreaming/java/build.xml +index b61f36dc34..81b1e954eb 100644 +--- a/apps/ministreaming/java/build.xml ++++ b/apps/ministreaming/java/build.xml +@@ -262,6 +262,7 @@ + <pathelement location="${mockito.home}/byte-buddy.jar" /> + <pathelement location="${mockito.home}/objenesis.jar" /> + <pathelement location="${mockito.home}/mockito-core.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -326,6 +327,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../../reports/ministreaming/junit/"> + <fileset dir="./test/junit"> +diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml +index 8e556c9c71..2eee69cfc1 100644 +--- a/apps/routerconsole/java/build.xml ++++ b/apps/routerconsole/java/build.xml +@@ -89,6 +89,7 @@ + <pathelement location="../../jetty/jettylib/jetty-ee.jar" /> + <pathelement location="../../jetty/jettylib/tomcat-api.jar" /> + <pathelement location="../../../core/java/build/json-simple.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + </target> +@@ -500,6 +501,7 @@ + <pathelement location="build/obj/" /> + <pathelement location="../../../router/java/build/router.jar" /> + <pathelement location="../../../core/java/build/i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <arg value="-d" /> + <arg value="../jsp/WEB-INF/classes" /> +@@ -541,6 +543,7 @@ + <pathelement location="build/obj/" /> + <pathelement location="../../../router/java/build/router.jar" /> + <pathelement location="../../../core/java/build/i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + +diff --git a/apps/sam/java/build.xml b/apps/sam/java/build.xml +index 89233a415f..24c84ab08c 100644 +--- a/apps/sam/java/build.xml ++++ b/apps/sam/java/build.xml +@@ -18,6 +18,7 @@ + <pathelement location="../../../core/java/build/obj" /> + <pathelement location="../../../core/java/build/gnu-getopt.jar" /> + <pathelement location="../../ministreaming/java/build/obj" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </depend> + </target> +@@ -38,8 +39,8 @@ + release="${javac.release}" + includeAntRuntime="false" + encoding="UTF-8" +- destdir="./build/obj" +- classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar" > ++ destdir="./build/obj" ++ classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + </javac> + </target> +diff --git a/apps/streaming/java/build.xml b/apps/streaming/java/build.xml +index 751c04f4f1..3703e01b39 100644 +--- a/apps/streaming/java/build.xml ++++ b/apps/streaming/java/build.xml +@@ -76,6 +76,7 @@ + <pathelement location="${mockito.home}/byte-buddy.jar" /> + <pathelement location="${mockito.home}/objenesis.jar" /> + <pathelement location="${mockito.home}/mockito-core.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -143,6 +144,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../../reports/streaming/junit/"> + <fileset dir="./test/junit"> +diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml +index 652b32d44e..9761ea09d3 100644 +--- a/apps/susidns/src/build.xml ++++ b/apps/susidns/src/build.xml +@@ -35,6 +35,7 @@ + <pathelement location="${ant.home}/lib/ant.jar" /> + <pathelement location="../../../core/java/build/i2p.jar" /> + <pathelement location="../../addressbook/dist/addressbook.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <property name="javac.compilerargs" value="" /> +diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml +index e88fb3f275..4ab1a8736f 100644 +--- a/apps/susimail/build.xml ++++ b/apps/susimail/build.xml +@@ -53,6 +53,7 @@ + <!-- tomcat-api.jar only present for debian builds --> + <pathelement location="../jetty/jettylib/tomcat-api.jar" /> + <pathelement location="../jetty/jettylib/jetty-i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + </target> +diff --git a/core/java/build.xml b/core/java/build.xml +index f2e2adb266..11f355f777 100644 +--- a/core/java/build.xml ++++ b/core/java/build.xml +@@ -72,7 +72,7 @@ + debuglevel="lines,vars,source" + includeAntRuntime="false" + encoding="UTF-8" +- destdir="./build/obj" classpath="${javac.classpath.mod}" > ++ destdir="./build/obj" classpath="${javac.classpath.mod}:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + <include name="**/*.java" /> + <exclude name="${source.exclude1}" /> +@@ -291,6 +291,7 @@ + <pathelement location="${scalactic.jar}" /> + <pathelement location="${scalatest.jar}" /> + <pathelement location="./build/obj" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </scalac> + </target> +@@ -326,6 +327,7 @@ + <pathelement location="${mockito.home}/objenesis.jar" /> + <pathelement location="${mockito.home}/mockito-core.jar" /> + <pathelement location="${junit.home}/junit4.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -491,6 +493,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../reports/core/junit/"> + <fileset dir="./test/junit/"> +diff --git a/installer/tools/java/build.xml b/installer/tools/java/build.xml +index 51c45cebfa..81b0f6f269 100644 +--- a/installer/tools/java/build.xml ++++ b/installer/tools/java/build.xml +@@ -29,7 +29,7 @@ + release="${javac.release}" + includeAntRuntime="false" + encoding="UTF-8" +- destdir="./build/obj" classpath="${javac.classpath}:../../../build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../../build/router.jar" > ++ destdir="./build/obj" classpath="${javac.classpath}:../../../build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../../build/router.jar:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + </javac> + </target> +diff --git a/router/java/build.xml b/router/java/build.xml +index 025e652b46..365ef40746 100644 +--- a/router/java/build.xml ++++ b/router/java/build.xml +@@ -14,7 +14,7 @@ + <target name="depend" if="depend.available"> + <depend + cache="../../build" +- srcdir="./src" ++ srcdir="./src" + destdir="./build/obj" > + <!-- Depend on classes instead of jars where available --> + <classpath> +@@ -68,6 +68,7 @@ + <pathelement path="../../core/java/build/gnu-getopt.jar" /> + <pathelement path="../../core/java/build/httpclient.jar" /> + <pathelement path="../../core/java/build/httpcore.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + <include name="**/*.java" /> +@@ -151,7 +152,7 @@ + <exec executable="sh" osfamily="windows" failifexecutionfails="false" > + <arg value="./bundle-messages.sh" /> + </exec> +- <javac source="${javac.version}" target="${javac.version}" ++ <javac source="${javac.version}" target="${javac.version}" + release="${javac.release}" + includeAntRuntime="false" + encoding="UTF-8" +@@ -314,6 +315,7 @@ + <pathelement location="${hamcrest.home}/hamcrest-all.jar" /> + <pathelement location="${junit.home}/junit4.jar" /> + <pathelement location="../../core/java/build/i2ptest.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -460,6 +462,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../reports/router/junit/"> + <fileset dir="./test/junit"> diff --git a/net-vpn/i2p/files/2.12.0-force-gentoo-classpath.patch b/net-vpn/i2p/files/2.12.0-force-gentoo-classpath.patch new file mode 100644 index 000000000000..0c4093c19e2b --- /dev/null +++ b/net-vpn/i2p/files/2.12.0-force-gentoo-classpath.patch @@ -0,0 +1,418 @@ +commit b305455fd22e10c3265f4d89cc721c81bc90c0b2 +Author: tharvik <tharvik@users.noreply.github.com> +Date: Sat Aug 17 13:56:51 2024 +0200 + + add gentoo.classpath + +diff --git a/apps/i2pcontrol/build.xml b/apps/i2pcontrol/build.xml +index d714a304d4..915e56e730 100644 +--- a/apps/i2pcontrol/build.xml ++++ b/apps/i2pcontrol/build.xml +@@ -28,6 +28,7 @@ + <pathelement location="${wrapperlib}/wrapper.jar" /> + <!-- following jar only present for debian builds --> + <pathelement location="../../core/java/build/json-simple.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <path id="cpSocket"> +@@ -37,6 +38,7 @@ + <pathelement location="${wrapperlib}/wrapper.jar" /> + <!-- following jar only present for debian builds --> + <pathelement location="../../core/java/build/json-simple.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <target name="all" depends="clean, build" /> +diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml +index aad4f3ad1f..df3b3186e2 100644 +--- a/apps/i2psnark/java/build.xml ++++ b/apps/i2psnark/java/build.xml +@@ -65,6 +65,7 @@ + <pathelement location="../../jetty/jettylib/jetty-http.jar" /> + <pathelement location="../../jetty/jettylib/jetty-io.jar" /> + <pathelement location="../../desktopgui/dist/desktopgui.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + </target> +diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml +index 86e5078376..8473e52a96 100644 +--- a/apps/i2ptunnel/java/build.xml ++++ b/apps/i2ptunnel/java/build.xml +@@ -45,7 +45,7 @@ + destdir="./build/obj" + includeAntRuntime="false" + encoding="UTF-8" +- classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar" > ++ classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + </javac> + </target> +@@ -372,6 +372,7 @@ + <!-- required for multipart form handling in register.jsp --> + <pathelement location="../../jetty/jettylib/jetty-i2p.jar" /> + <pathelement location="../../jetty/jettylib/jspc.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <arg value="-d" /> + <arg value="../jsp/WEB-INF/classes" /> +@@ -409,6 +410,7 @@ + <pathelement location="../../../core/java/build/i2p.jar" /> + <!-- required for multipart form handling in register.jsp --> + <pathelement location="../../jetty/jettylib/jetty-i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + <copy file="../jsp/web.xml" tofile="../jsp/web-out.xml" /> +@@ -476,6 +478,7 @@ + <pathelement location="../../ministreaming/java/build/mstreaming.jar" /> + <pathelement location="../../streaming/java/build/streaming.jar" /> + <pathelement location="${junit.home}/junit4.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest> + <fileset dir="./test/junit/"> +diff --git a/apps/imagegen/imagegen/build.xml b/apps/imagegen/imagegen/build.xml +index 39252ef8bd..6193ff129e 100644 +--- a/apps/imagegen/imagegen/build.xml ++++ b/apps/imagegen/imagegen/build.xml +@@ -9,6 +9,7 @@ + <pathelement location="../zxing/build/zxing.jar" /> + <pathelement location="../../../build/i2p.jar" /> + <pathelement location="../../../build/jrobin.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <target name="all" depends="war" /> +diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml +index 3746c1874c..17da397bb1 100644 +--- a/apps/jetty/build.xml ++++ b/apps/jetty/build.xml +@@ -415,7 +415,7 @@ + <target name="depend" if="depend.available"> + <depend + cache="../../build" +- srcdir="./java/src" ++ srcdir="./java/src" + destdir="./build/obj" > + <classpath> + <pathelement location="../../core/java/build/i2p.jar" /> +@@ -438,11 +438,11 @@ + <target name="compile" depends="builddep, ensureJettylib, depend" > + <mkdir dir="./build" /> + <mkdir dir="./build/obj" /> +- <javac +- srcdir="./java/src" +- debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" ++ <javac ++ srcdir="./java/src" ++ debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" + release="${javac.release}" +- destdir="./build/obj" ++ destdir="./build/obj" + encoding="UTF-8" + includeAntRuntime="false" > + <classpath> +@@ -462,6 +462,7 @@ + <!-- following jars only present for debian builds --> + <pathelement location="./jettylib/tomcat-api.jar" /> + <pathelement location="./jettylib/slf4j2-api.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -511,7 +512,7 @@ + <!-- separate jar for JspC wrapper used only in build, not included in jetty-i2p.jar --> + <jar destfile="./jettylib/jspc.jar" basedir="./build/obj" includes="**/JspC.class" > + </jar> +- </target> ++ </target> + + <target name="jarUpToDate"> + <uptodate property="jar.uptodate" targetfile="jettylib/jetty-i2p.jar" > +@@ -526,7 +527,7 @@ + <isset property="git.available" /> + </and> + </condition> +- </target> ++ </target> + + <!-- empty, uncomment below if needed --> + <target name="buildPatches" unless="${with-libjetty12-java}" /> +@@ -538,11 +539,11 @@ + <target name="compilePatches" unless="${with-libjetty12-java}" > + <mkdir dir="./build" /> + <mkdir dir="./build/objPatches" /> +- <javac +- srcdir="./patches/jetty-util/src/main/java" +- debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" ++ <javac ++ srcdir="./patches/jetty-util/src/main/java" ++ debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" + release="${javac.release}" +- destdir="./build/objPatches" ++ destdir="./build/objPatches" + includeAntRuntime="false" + encoding="UTF-8" + classpath="" > +@@ -550,11 +551,11 @@ + </javac> + <!-- + <mkdir dir="./build/objPatches2" /> +- <javac +- srcdir="./patches/jetty-io/src/main/java" +- debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" ++ <javac ++ srcdir="./patches/jetty-io/src/main/java" ++ debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" + release="${javac.release}" +- destdir="./build/objPatches2" ++ destdir="./build/objPatches2" + includeAntRuntime="false" + encoding="UTF-8" > + <compilerarg line="${javac.compilerargs}" /> +@@ -571,7 +572,7 @@ + <!-- + <jar destfile="./build/jetty-io-patch.jar" basedir="./build/objPatches2" includes="**/*.class" /> + --> +- </target> ++ </target> + + <target name="jarPatchesUpToDate" > + <condition property="jarPatches.uptodate" > +@@ -585,12 +586,12 @@ + </uptodate> + </or> + </condition> +- </target> ++ </target> + + <target name="clean" > + <delete dir="./build" /> + <delete file="${verified.filename}" /> +- </target> ++ </target> + <target name="cleandep" depends="clean" /> + <target name="distclean" depends="clean"> + <delete dir="./jettylib" /> +@@ -640,7 +641,7 @@ + <attribute name="X-Compile-Target-JDK" value="${javac.version}" /> + </manifest> + </jar> +- </target> ++ </target> + + <target name="servletJavadoc"> + <mkdir dir="./build" /> +diff --git a/apps/ministreaming/java/build.xml b/apps/ministreaming/java/build.xml +index b61f36dc34..81b1e954eb 100644 +--- a/apps/ministreaming/java/build.xml ++++ b/apps/ministreaming/java/build.xml +@@ -262,6 +262,7 @@ + <pathelement location="${mockito.home}/byte-buddy.jar" /> + <pathelement location="${mockito.home}/objenesis.jar" /> + <pathelement location="${mockito.home}/mockito-core.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -326,6 +327,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../../reports/ministreaming/junit/"> + <fileset dir="./test/junit"> +diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml +index 87fb97dad7..d54c399aeb 100644 +--- a/apps/routerconsole/java/build.xml ++++ b/apps/routerconsole/java/build.xml +@@ -91,6 +91,7 @@ + <pathelement location="../../jetty/jettylib/jetty-ee.jar" /> + <pathelement location="../../jetty/jettylib/tomcat-api.jar" /> + <pathelement location="../../../core/java/build/json-simple.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + </target> +@@ -502,6 +503,7 @@ + <pathelement location="build/obj/" /> + <pathelement location="../../../router/java/build/router.jar" /> + <pathelement location="../../../core/java/build/i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <arg value="-d" /> + <arg value="../jsp/WEB-INF/classes" /> +@@ -543,6 +545,7 @@ + <pathelement location="build/obj/" /> + <pathelement location="../../../router/java/build/router.jar" /> + <pathelement location="../../../core/java/build/i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + +diff --git a/apps/sam/java/build.xml b/apps/sam/java/build.xml +index 89233a415f..24c84ab08c 100644 +--- a/apps/sam/java/build.xml ++++ b/apps/sam/java/build.xml +@@ -18,6 +18,7 @@ + <pathelement location="../../../core/java/build/obj" /> + <pathelement location="../../../core/java/build/gnu-getopt.jar" /> + <pathelement location="../../ministreaming/java/build/obj" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </depend> + </target> +@@ -38,8 +39,8 @@ + release="${javac.release}" + includeAntRuntime="false" + encoding="UTF-8" +- destdir="./build/obj" +- classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar" > ++ destdir="./build/obj" ++ classpath="../../../core/java/build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../ministreaming/java/build/mstreaming.jar:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + </javac> + </target> +diff --git a/apps/streaming/java/build.xml b/apps/streaming/java/build.xml +index 751c04f4f1..3703e01b39 100644 +--- a/apps/streaming/java/build.xml ++++ b/apps/streaming/java/build.xml +@@ -76,6 +76,7 @@ + <pathelement location="${mockito.home}/byte-buddy.jar" /> + <pathelement location="${mockito.home}/objenesis.jar" /> + <pathelement location="${mockito.home}/mockito-core.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -143,6 +144,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../../reports/streaming/junit/"> + <fileset dir="./test/junit"> +diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml +index 652b32d44e..9761ea09d3 100644 +--- a/apps/susidns/src/build.xml ++++ b/apps/susidns/src/build.xml +@@ -35,6 +35,7 @@ + <pathelement location="${ant.home}/lib/ant.jar" /> + <pathelement location="../../../core/java/build/i2p.jar" /> + <pathelement location="../../addressbook/dist/addressbook.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </path> + + <property name="javac.compilerargs" value="" /> +diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml +index e88fb3f275..4ab1a8736f 100644 +--- a/apps/susimail/build.xml ++++ b/apps/susimail/build.xml +@@ -53,6 +53,7 @@ + <!-- tomcat-api.jar only present for debian builds --> + <pathelement location="../jetty/jettylib/tomcat-api.jar" /> + <pathelement location="../jetty/jettylib/jetty-i2p.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </javac> + </target> +diff --git a/core/java/build.xml b/core/java/build.xml +index f2e2adb266..11f355f777 100644 +--- a/core/java/build.xml ++++ b/core/java/build.xml +@@ -72,7 +72,7 @@ + debuglevel="lines,vars,source" + includeAntRuntime="false" + encoding="UTF-8" +- destdir="./build/obj" classpath="${javac.classpath.mod}" > ++ destdir="./build/obj" classpath="${javac.classpath.mod}:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + <include name="**/*.java" /> + <exclude name="${source.exclude1}" /> +@@ -291,6 +291,7 @@ + <pathelement location="${scalactic.jar}" /> + <pathelement location="${scalatest.jar}" /> + <pathelement location="./build/obj" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + </scalac> + </target> +@@ -326,6 +327,7 @@ + <pathelement location="${mockito.home}/objenesis.jar" /> + <pathelement location="${mockito.home}/mockito-core.jar" /> + <pathelement location="${junit.home}/junit4.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -491,6 +493,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../reports/core/junit/"> + <fileset dir="./test/junit/"> +diff --git a/installer/tools/java/build.xml b/installer/tools/java/build.xml +index 97dacf5821..6388a0b595 100644 +--- a/installer/tools/java/build.xml ++++ b/installer/tools/java/build.xml +@@ -29,7 +29,7 @@ + release="${javac.release}" + includeAntRuntime="false" + encoding="UTF-8" +- destdir="./build/obj" classpath="${javac.classpath}:../../../build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../../build/router.jar:../../../build/routerconsole.jar" > ++ destdir="./build/obj" classpath="${javac.classpath}:../../../build/i2p.jar:../../../core/java/build/gnu-getopt.jar:../../../build/router.jar:../../../build/routerconsole.jar:${gentoo.classpath}" > + <compilerarg line="${javac.compilerargs}" /> + </javac> + </target> +diff --git a/router/java/build.xml b/router/java/build.xml +index 025e652b46..365ef40746 100644 +--- a/router/java/build.xml ++++ b/router/java/build.xml +@@ -14,7 +14,7 @@ + <target name="depend" if="depend.available"> + <depend + cache="../../build" +- srcdir="./src" ++ srcdir="./src" + destdir="./build/obj" > + <!-- Depend on classes instead of jars where available --> + <classpath> +@@ -68,6 +68,7 @@ + <pathelement path="../../core/java/build/gnu-getopt.jar" /> + <pathelement path="../../core/java/build/httpclient.jar" /> + <pathelement path="../../core/java/build/httpcore.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + <include name="**/*.java" /> +@@ -151,7 +152,7 @@ + <exec executable="sh" osfamily="windows" failifexecutionfails="false" > + <arg value="./bundle-messages.sh" /> + </exec> +- <javac source="${javac.version}" target="${javac.version}" ++ <javac source="${javac.version}" target="${javac.version}" + release="${javac.release}" + includeAntRuntime="false" + encoding="UTF-8" +@@ -314,6 +315,7 @@ + <pathelement location="${hamcrest.home}/hamcrest-all.jar" /> + <pathelement location="${junit.home}/junit4.jar" /> + <pathelement location="../../core/java/build/i2ptest.jar" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <compilerarg line="${javac.compilerargs}" /> + </javac> +@@ -460,6 +462,7 @@ + <pathelement location="../../build/jbigi.jar" /> + <pathelement location="${with.clover}" /> + <pathelement location="${with.cobertura}" /> ++ <pathelement path="${gentoo.classpath}" /> + </classpath> + <batchtest todir="../../reports/router/junit/"> + <fileset dir="./test/junit"> diff --git a/net-vpn/i2p/files/i2p.init b/net-vpn/i2p/files/i2p.init new file mode 100644 index 000000000000..5115c14bb1a9 --- /dev/null +++ b/net-vpn/i2p/files/i2p.init @@ -0,0 +1,15 @@ +#!/sbin/openrc-run +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net +} + +command=i2prouter +pidfile=/var/run/i2p.pid +command_background=true +command_progress=true +command_user=i2p +stopsig=SIGHUP +retry=20 diff --git a/net-vpn/i2p/files/i2p.service b/net-vpn/i2p/files/i2p.service new file mode 100644 index 000000000000..e7c525e695eb --- /dev/null +++ b/net-vpn/i2p/files/i2p.service @@ -0,0 +1,11 @@ +[Unit] +Description=Invisible Internet Project +After=network.target + +[Service] +User=i2p +ExecStart=/usr/bin/i2prouter +KillSignal=SIGHUP + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/i2p/i2p-2.11.0.ebuild b/net-vpn/i2p/i2p-2.11.0.ebuild new file mode 100644 index 000000000000..fe97c0c79f44 --- /dev/null +++ b/net-vpn/i2p/i2p-2.11.0.ebuild @@ -0,0 +1,272 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="test" + +inherit java-pkg-2 systemd toolchain-funcs + +DESCRIPTION="A privacy-centric, anonymous network" +HOMEPAGE="https://i2p.net" +SRC_URI="https://files.i2p-projekt.de/${PV}/i2psource_${PV}.tar.bz2" + +LICENSE="Apache-2.0 Artistic BSD CC-BY-2.5 CC-BY-3.0 CC-BY-SA-3.0 EPL-1.0 GPL-2 GPL-3 LGPL-2.1 LGPL-3 MIT public-domain WTFPL-2" +SLOT="0" + +KEYWORDS="amd64 ~arm64" +LANGS=( + ar az bg ca cs da de el en es es-AR et fa fi fr gl he hi hr hu id it ja ko ku mg nb nl nn pl pt pt-BR ro ru sk sl sq + sr sv tk tr uk vi zh zh-TW +) +IUSE="${LANGS[@]/#/l10n_}" + +CP_DEPEND=" + dev-java/bcprov:0 + dev-java/hashcash:1 + dev-java/httpcomponents-client:4 + dev-java/java-getopt:1 + dev-java/java-service-wrapper:0 + dev-java/jbcrypt:0 + dev-java/json-simple:2.3 + dev-java/jsonrpc2-server:1 + dev-java/jstl-api:0 + dev-java/jstl:0 + dev-java/minidns-core:1 + dev-java/slf4j-api:0 + dev-java/zxing-core:3 + dev-java/zxing-javase:3 + sys-devel/gettext:0[java] + www-servers/tomcat:9 +" +# jdk-11 for bug #932030 +DEPEND=" + dev-libs/gmp:0= + ${CP_DEPEND} + >=virtual/jdk-17:* + test? ( + dev-java/hamcrest:0 + dev-java/junit:4 + dev-java/mockito:4 + ) +" +BDEPEND=" + >=dev-java/ant-1.10.14-r3:0 + sys-apps/which + sys-devel/gettext + test? ( + >=dev-java/ant-1.10.14-r3:0[junit,junit4] + ) +" +RDEPEND=" + ${CP_DEPEND} + acct-user/i2p + acct-group/i2p + >=virtual/jre-17:* +" + +PATCHES=( "${FILESDIR}/2.11.0-force-gentoo-classpath.patch" ) + +DOCS=( README.md history.txt ) + +JAVA_PKG_NO_CLEAN=( + # need to package jetty + './apps/jetty/jetty-home-*/start.jar' + './apps/jetty/jetty-home-*/lib/jetty-*.jar' +) + +src_prepare() { + default # apply PATCHES + + # remove hardcoded javac's source & target + find -name build.xml \ + -exec sed -Ei 's,(source|target)="\$\{javac\.version\}",,g' {} + || + die "remove javac's source & target in build files" + + java-pkg-2_src_prepare + + # remove most bundled, excepted the next ones. + # apps/addressbook/java/src/net/metanotion too much code drift + # apps/i2psnark/java/src/org/klomp/snark too much code drift + # apps/imagegen/identicon too much code drift + # apps/jrobin need rrd4j ebuild + # apps/routerconsole/java/src/{com,edu} too much code drift + # {core,router}/java/src/com/southernstorm/noise use internal symbols + # core/java/src/freenet too much code drift + # core/java/src/gnu/crypto too much code drift + # router/java/src/com/maxmind changed interface + # router/java/src/org/cybergarage unable to find version 3 + # router/java/src/org/freenetproject too big to pull + # router/java/src/org/xlattice changed interface + java-pkg_clean + rm -r installer/lib || die 'unbundle installer libs' + ( cat >> override.properties || die 'set unbundled properties' ) <<- EOF + require.gettext=true + with-gettext-base=true + with-libslf4j2-java=true + with-libbcprov-java=true + with-libgetopt-java=true + with-libjakarta-taglibs-standard-java=true + with-libjson-simple-java=true + with-libtomcat9-java=true + # with-geoip-database=true need std geoip use + # with-libjetty12-java=true needs a jetty ebuild + EOF + + # bcprov + rm -r core/java/src/net/i2p/crypto/elgamal || die 'unbundle bcprov' + sed -e 's,net\.i2p\.crypto\.elgamal\.spec,org.bouncycastle.jce.spec,' \ + -i core/java/src/net/i2p/crypto/CryptoConstants.java || + die 'redirect imports of bcprov' + # getopt, gettext + rm -r core/java/src/gnu/{getopt,gettext} || die 'unbundle GNU code' + # httpcomponents-client + rm -r core/java/src/net/i2p/apache || die 'unbundle httpcomponents-client' + sed -e 's,net\.i2p\.apache,org.apache,' \ + -i core/java/src/net/i2p/util/{Addresses,I2PSSLSocketFactory}.java \ + apps/i2pcontrol/java/net/i2p/i2pcontrol/HostCheckHandler.java || + die 'redirect imports of httpcomponents-client' + # zxing + rm -r apps/imagegen/zxing || die 'unbundle zxing' + sed -E '/dir="[^"]*zxing/d' -i apps/imagegen{/imagegen,}/build.xml && + # hashcash + rm core/java/src/com/nettgryppa/security/HashCash.java || + die 'unbundle hashcash' + # jbcrypt, jsonrpc2-* + rm -r apps/i2pcontrol/java/{com,org} || die 'unbundle jbcrypt & jsonrpc2-*' + # jstl* + sed -E '/"apps\/susidns\/src\/lib\/(jstl|standard).jar"/d' -i build.xml || + die 'unbundle jstl*' + java-pkg_jar-from --into apps/susidns/src/lib jstl jstl-impl.jar standard.jar + java-pkg_jar-from --into apps/susidns/src/lib jstl-api jstl-api.jar jstl.jar + # minidns-core, json-simple + rm -r core/java/src/org || die 'unbundle minidns-core & json-simple' + mkdir core/java/build || die 'create built core dependencies' + java-pkg_jar-from --into core/java/build json-simple-2.3 + + # keep only enabled locales + local lang + for lang in ${LANGS[@]} + do + if ! use "l10n_${lang}" + then + find -regextype egrep \ + -regex ".*[_\\./]${lang/-/_}.(html|po|1)" \ + -delete || die "unbundling ${lang} translations" + fi + done + + # fix some locale names + find -name '*_in.*' -exec rename --no-overwrite _in. _id. {} \; && + find -name '*_iw.*' -exec rename --no-overwrite _iw. _he. {} \; || + die 'fix some locale names' +} + +src_configure() { + # build for our JDK + cat >> override.properties <<-EOF || die 'set JDK infos' + ant.build.javac.source=$(java-pkg_get-source) + ant.build.javac.target=$(java-pkg_get-target) + EOF + + # deamon shouldn't start GUI + sed -i 's|\(clientApp.4.startOnLoad\)=true|\1=false|' \ + installer/resources/clients.config || + die 'avoid auto starting browser' + + # yep, that's us + echo 'build.built-by=Gentoo' >> override.properties || + die 'bragging failed' + + # support no-UTF-8 build systems + echo 'file.encoding=UTF-8' >> override.properties || + die 'set files encoding' +} + +src_compile() { + local libs='bcprov,gettext,hashcash-1,httpcomponents-client-4' + libs+=',java-getopt-1,java-service-wrapper,jbcrypt,jsonrpc2-server-1' + libs+=',minidns-core-1,slf4j-api,tomcat-9,zxing-javase-3' + eant \ + -Dgentoo.classpath=`java-pkg_getjars --with-dependencies "${libs}"` \ + preppkg-base + + local compile_lib + compile_lib() { + local name="${1}" + shift 1 + + "$(tc-getCC)" "${@}" -Iinclude ${CFLAGS} $(java-pkg_get-jni-cflags) \ + ${LDFLAGS} -shared -fPIC "-Wl,-soname,lib${name}.so" \ + "src/${name}.c" -o "lib${name}.so" + } + + cd "${S}/core/c/jbigi/jbigi" || die "unable to cd to jbigi" + compile_lib jbigi -lgmp || die "unable to build jbigi" + + if use amd64 || use x86; then + cd "${S}/core/c/jcpuid" || die "unable to cd to jcpuid" + compile_lib jcpuid || die "unable to build jcpuid" + fi +} + +src_test() { + # avoid rebuilding + sed -e '/<delete dir=".\/build" \/>/d' -i core/java/build.xml || + die 'avoid building twice' + + # halt on error + find -name build.xml \ + -execdir sed -e 's/<junit /\0haltonerror="yes" /' -i {} + || + die 'ensure test failures propagate' + + # redirect to built jbigi + sed -e 's,installer/lib/jbigi,core/c/jbigi/jbigi,' -i build.xml || + die 'redirect to built library' + + local libs='bcprov,gettext,hashcash-1,httpcomponents-client-4' + libs+=',java-getopt-1,java-service-wrapper,jbcrypt,jsonrpc2-server-1' + libs+=',tomcat-9,minidns-core-1,zxing-javase-3' + libs+=',hamcrest,junit-4,mockito-4' + # no scala as depending on antlib.xml not installed by dev-lang/scala + eant \ + -Dgentoo.classpath=`java-pkg_getjars --build-only --with-dependencies "${libs}"` \ + junit.test +} + +src_install() { + # install basic documentation + einstalldocs + doman installer/resources/man/eepget.* + + # install main files + java-pkg_doso core/c/jbigi/jbigi/libjbigi.so + if use amd64 || use x86; then + java-pkg_doso core/c/jcpuid/libjcpuid.so + fi + cd "${S}/pkg-temp" || die 'unable to change dir to built artifacts' + java-pkg_dojar lib/*.jar + java-pkg_dowar webapps/*.war + + # install shared + insinto /usr/share/i2p + doins blocklist.txt hosts.txt {clients,i2p*}.config + doins -r certificates docs eepsite geoip scripts + + # install daemons + newinitd "${FILESDIR}/i2p.init" i2p + systemd_dounit "${FILESDIR}/i2p.service" + + # setup dirs + keepdir /var/log/i2p /var/lib/i2p + fowners i2p:i2p /var/lib/i2p /var/log/i2p + + # create own launchers + java-pkg_dolauncher i2prouter --main net.i2p.router.Router --jar i2p.jar \ + --pwd "${EPREFIX}/usr/share/i2p" \ + --java_args "\ + -Di2p.dir.config=${EPREFIX}/var/lib/i2p \ + -Di2p.dir.log=${EPREFIX}/var/log/i2p \ + -DloggerFilenameOverride=${EPREFIX}/var/log/i2p/router-@" + java-pkg_dolauncher eepget --main net.i2p.util.EepGet --jar i2p.jar +} diff --git a/net-vpn/i2p/i2p-2.12.0.ebuild b/net-vpn/i2p/i2p-2.12.0.ebuild new file mode 100644 index 000000000000..258a1dd12f86 --- /dev/null +++ b/net-vpn/i2p/i2p-2.12.0.ebuild @@ -0,0 +1,276 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="test" + +inherit java-pkg-2 systemd toolchain-funcs verify-sig + +DESCRIPTION="A privacy-centric, anonymous network" +HOMEPAGE="https://i2p.net" +SRC_URI=" + https://files.i2p.net/${PV}/i2psource_${PV}.tar.bz2 + verify-sig? ( https://files.i2p.net/${PV}/i2psource_${PV}.tar.bz2.sig ) +" + +LICENSE="Apache-2.0 Artistic BSD CC-BY-2.5 CC-BY-3.0 CC-BY-SA-3.0 EPL-1.0 GPL-2 GPL-3 LGPL-2.1 LGPL-3 MIT public-domain WTFPL-2" +SLOT="0" + +KEYWORDS="~amd64 ~arm64" +LANGS=( + ar az bg ca cs da de el en es es-AR et fa fi fr gl he hi hr hu id it ja ko ku mg nb nl nn pl pt pt-BR ro ru sk sl sq + sr sv tk tr uk vi zh zh-TW +) +IUSE="${LANGS[@]/#/l10n_}" + +CP_DEPEND=" + dev-java/bcprov:0 + dev-java/hashcash:1 + dev-java/httpcomponents-client:4 + dev-java/java-getopt:1 + dev-java/java-service-wrapper:0 + dev-java/jbcrypt:0 + dev-java/json-simple:2.3 + dev-java/jsonrpc2-server:1 + dev-java/jstl-api:0 + dev-java/jstl:0 + dev-java/minidns-core:1 + dev-java/slf4j-api:0 + dev-java/zxing-core:3 + dev-java/zxing-javase:3 + sys-devel/gettext:0[java] + www-servers/tomcat:9 +" +# jdk-11 for bug #932030 +DEPEND=" + dev-libs/gmp:0= + ${CP_DEPEND} + >=virtual/jdk-17:* + test? ( + dev-java/hamcrest:0 + dev-java/junit:4 + dev-java/mockito:4 + ) +" +BDEPEND=" + dev-java/ant:0 + sys-apps/which + sys-devel/gettext + test? ( dev-java/ant:0[junit,junit4] ) + verify-sig? ( sec-keys/openpgp-keys-i2p ) +" +RDEPEND=" + ${CP_DEPEND} + acct-user/i2p + acct-group/i2p + >=virtual/jre-17:* +" + +PATCHES=( "${FILESDIR}/2.12.0-force-gentoo-classpath.patch" ) + +DOCS=( README.md history.txt ) + +JAVA_PKG_NO_CLEAN=( + # need to package jetty + './apps/jetty/jetty-home-*/start.jar' + './apps/jetty/jetty-home-*/lib/jetty-*.jar' +) + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/i2p.asc" + +src_prepare() { + default # apply PATCHES + + # remove hardcoded javac's source & target + find -name build.xml \ + -exec sed -Ei 's,(source|target)="\$\{javac\.version\}",,g' {} + || + die "remove javac's source & target in build files" + + java-pkg-2_src_prepare + + # remove most bundled, excepted the next ones. + # apps/addressbook/java/src/net/metanotion too much code drift + # apps/i2psnark/java/src/org/klomp/snark too much code drift + # apps/imagegen/identicon too much code drift + # apps/jrobin need rrd4j ebuild + # apps/routerconsole/java/src/{com,edu} too much code drift + # {core,router}/java/src/com/southernstorm/noise use internal symbols + # core/java/src/freenet too much code drift + # core/java/src/gnu/crypto too much code drift + # router/java/src/com/maxmind changed interface + # router/java/src/org/cybergarage unable to find version 3 + # router/java/src/org/freenetproject too big to pull + # router/java/src/org/xlattice changed interface + java-pkg_clean + rm -r installer/lib || die 'unbundle installer libs' + ( cat >> override.properties || die 'set unbundled properties' ) <<- EOF + require.gettext=true + with-gettext-base=true + with-libslf4j2-java=true + with-libbcprov-java=true + with-libgetopt-java=true + with-libjakarta-taglibs-standard-java=true + with-libjson-simple-java=true + with-libtomcat9-java=true + # with-geoip-database=true need std geoip use + # with-libjetty12-java=true needs a jetty ebuild + EOF + + # bcprov + rm -r core/java/src/net/i2p/crypto/elgamal || die 'unbundle bcprov' + sed -e 's,net\.i2p\.crypto\.elgamal\.spec,org.bouncycastle.jce.spec,' \ + -i core/java/src/net/i2p/crypto/CryptoConstants.java || + die 'redirect imports of bcprov' + # getopt, gettext + rm -r core/java/src/gnu/{getopt,gettext} || die 'unbundle GNU code' + # httpcomponents-client + rm -r core/java/src/net/i2p/apache || die 'unbundle httpcomponents-client' + sed -e 's,net\.i2p\.apache,org.apache,' \ + -i core/java/src/net/i2p/util/{Addresses,I2PSSLSocketFactory}.java \ + apps/i2pcontrol/java/net/i2p/i2pcontrol/HostCheckHandler.java || + die 'redirect imports of httpcomponents-client' + # zxing + rm -r apps/imagegen/zxing || die 'unbundle zxing' + sed -E '/dir="[^"]*zxing/d' -i apps/imagegen{/imagegen,}/build.xml && + # hashcash + rm core/java/src/com/nettgryppa/security/HashCash.java || + die 'unbundle hashcash' + # jbcrypt, jsonrpc2-* + rm -r apps/i2pcontrol/java/{com,org} || die 'unbundle jbcrypt & jsonrpc2-*' + # jstl* + sed -E '/"apps\/susidns\/src\/lib\/(jstl|standard).jar"/d' -i build.xml || + die 'unbundle jstl*' + java-pkg_jar-from --into apps/susidns/src/lib jstl jstl-impl.jar standard.jar + java-pkg_jar-from --into apps/susidns/src/lib jstl-api jstl-api.jar jstl.jar + # minidns-core, json-simple + rm -r core/java/src/org || die 'unbundle minidns-core & json-simple' + mkdir core/java/build || die 'create built core dependencies' + java-pkg_jar-from --into core/java/build json-simple-2.3 + + # keep only enabled locales + local lang + for lang in ${LANGS[@]} + do + if ! use "l10n_${lang}" + then + find -regextype egrep \ + -regex ".*[_\\./]${lang/-/_}.(html|po|1)" \ + -delete || die "unbundling ${lang} translations" + fi + done + + # fix some locale names + find -name '*_in.*' -exec rename --no-overwrite _in. _id. {} \; && + find -name '*_iw.*' -exec rename --no-overwrite _iw. _he. {} \; || + die 'fix some locale names' +} + +src_configure() { + # build for our JDK + cat >> override.properties <<-EOF || die 'set JDK infos' + ant.build.javac.source=$(java-pkg_get-source) + ant.build.javac.target=$(java-pkg_get-target) + EOF + + # deamon shouldn't start GUI + sed -i 's|\(clientApp.4.startOnLoad\)=true|\1=false|' \ + installer/resources/clients.config || + die 'avoid auto starting browser' + + # yep, that's us + echo 'build.built-by=Gentoo' >> override.properties || + die 'bragging failed' + + # support no-UTF-8 build systems + echo 'file.encoding=UTF-8' >> override.properties || + die 'set files encoding' +} + +src_compile() { + local libs='bcprov,gettext,hashcash-1,httpcomponents-client-4' + libs+=',java-getopt-1,java-service-wrapper,jbcrypt,jsonrpc2-server-1' + libs+=',minidns-core-1,slf4j-api,tomcat-9,zxing-javase-3' + eant \ + -Dgentoo.classpath=`java-pkg_getjars --with-dependencies "${libs}"` \ + preppkg-base + + local compile_lib + compile_lib() { + local name="${1}" + shift 1 + + "$(tc-getCC)" "${@}" -Iinclude ${CFLAGS} $(java-pkg_get-jni-cflags) \ + ${LDFLAGS} -shared -fPIC "-Wl,-soname,lib${name}.so" \ + "src/${name}.c" -o "lib${name}.so" + } + + cd "${S}/core/c/jbigi/jbigi" || die "unable to cd to jbigi" + compile_lib jbigi -lgmp || die "unable to build jbigi" + + if use amd64 || use x86; then + cd "${S}/core/c/jcpuid" || die "unable to cd to jcpuid" + compile_lib jcpuid || die "unable to build jcpuid" + fi +} + +src_test() { + # avoid rebuilding + sed -e '/<delete dir=".\/build" \/>/d' -i core/java/build.xml || + die 'avoid building twice' + + # halt on error + find -name build.xml \ + -execdir sed -e 's/<junit /\0haltonerror="yes" /' -i {} + || + die 'ensure test failures propagate' + + # redirect to built jbigi + sed -e 's,installer/lib/jbigi,core/c/jbigi/jbigi,' -i build.xml || + die 'redirect to built library' + + local libs='bcprov,gettext,hashcash-1,httpcomponents-client-4' + libs+=',java-getopt-1,java-service-wrapper,jbcrypt,jsonrpc2-server-1' + libs+=',tomcat-9,minidns-core-1,zxing-javase-3' + libs+=',hamcrest,junit-4,mockito-4' + # no scala as depending on antlib.xml not installed by dev-lang/scala + eant \ + -Dgentoo.classpath=`java-pkg_getjars --build-only --with-dependencies "${libs}"` \ + junit.test +} + +src_install() { + # install basic documentation + einstalldocs + doman installer/resources/man/eepget.* + + # install main files + java-pkg_doso core/c/jbigi/jbigi/libjbigi.so + if use amd64 || use x86; then + java-pkg_doso core/c/jcpuid/libjcpuid.so + fi + cd "${S}/pkg-temp" || die 'unable to change dir to built artifacts' + java-pkg_dojar lib/*.jar + java-pkg_dowar webapps/*.war + + # install shared + insinto /usr/share/i2p + doins blocklist.txt hosts.txt {clients,i2p*}.config + doins -r certificates docs eepsite geoip scripts + + # install daemons + newinitd "${FILESDIR}/i2p.init" i2p + systemd_dounit "${FILESDIR}/i2p.service" + + # setup dirs + keepdir /var/log/i2p /var/lib/i2p + fowners i2p:i2p /var/lib/i2p /var/log/i2p + + # create own launchers + java-pkg_dolauncher i2prouter --main net.i2p.router.Router --jar i2p.jar \ + --pwd "${EPREFIX}/usr/share/i2p" \ + --java_args "\ + -Di2p.dir.config=${EPREFIX}/var/lib/i2p \ + -Di2p.dir.log=${EPREFIX}/var/log/i2p \ + -DloggerFilenameOverride=${EPREFIX}/var/log/i2p/router-@" + java-pkg_dolauncher eepget --main net.i2p.util.EepGet --jar i2p.jar +} diff --git a/net-vpn/i2p/metadata.xml b/net-vpn/i2p/metadata.xml new file mode 100644 index 000000000000..c83ec2ad518d --- /dev/null +++ b/net-vpn/i2p/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>tharvik@proton.me</email> + <name>Valérian Rousset</name> + </maintainer> + <maintainer type="project"> + <email>java@gentoo.org</email> + <name>Java</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription>I2P is an anonymous network, exposing a simple layer that applications can use to anonymously and securely send messages to each other.</longdescription> + <upstream> + <remote-id type="github">i2p/i2p.i2p</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/i2pd/Manifest b/net-vpn/i2pd/Manifest new file mode 100644 index 000000000000..cc90faa47a8e --- /dev/null +++ b/net-vpn/i2pd/Manifest @@ -0,0 +1,2 @@ +DIST i2pd-2.58.0.tar.gz 719564 BLAKE2B 16dc842d25dd24dc80b89a127c7b44f37277cf4c12a5af7a5291ceb1fa9deef6d0b4be5bbfd09fae0320050eadb879f3d7bff1b4123ceb2bac8766d74f127ec2 SHA512 d5d87a04ff5f8481516c00b07dd46726dfb3f0de67f4932874a0655b4adfa448a434056a131d727dd79a2f3ee1f6cc9aef5dc176a0b5ab546d8e94b6c0b38ee5 +DIST i2pd-2.59.0.tar.gz 743516 BLAKE2B 4b4497eec4a9b9b1687827e0a069e9abf3884ad8ae3a99b40aa182e327ccec0c5d2aa6d65a5e1f4bc0a3fdae847c16cf856a13fab8d163fdd2db7582f36d8095 SHA512 5fa4365eaa6fbc0e448732d3c96b867e27db21927727aeb9df8241d56fea08561028a7b6d51ba7fa1141d53c95b848108806edb9f420c2ebbed85f627f045af7 diff --git a/net-vpn/i2pd/files/99i2pd b/net-vpn/i2pd/files/99i2pd new file mode 100644 index 000000000000..3cf3b46797c4 --- /dev/null +++ b/net-vpn/i2pd/files/99i2pd @@ -0,0 +1 @@ +CONFIG_PROTECT="/var/lib/i2pd/certificates" diff --git a/net-vpn/i2pd/files/i2pd-2.38.0.service b/net-vpn/i2pd/files/i2pd-2.38.0.service new file mode 100644 index 000000000000..99c1bf202250 --- /dev/null +++ b/net-vpn/i2pd/files/i2pd-2.38.0.service @@ -0,0 +1,37 @@ +[Unit] +Description=C++ daemon for accessing the I2P network +After=network.target + +[Service] +Type=forking +Restart=on-abnormal +User=i2pd +Group=i2pd +LimitNOFILE=4096 + +# restrictions +ProtectSystem=full +ProtectHome=yes +ProtectControlGroups=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectClock=yes +PrivateUsers=yes +PrivateDevices=yes +PrivateTmp=yes +RestrictNamespaces=yes +RestrictSUIDSGID=yes +CapabilityBoundingSet= +NoNewPrivileges=yes + +RuntimeDirectory=i2pd +RuntimeDirectoryMode=0700 +PIDFile=/run/i2pd/i2pd.pid +ExecStartPre=+/bin/touch /var/log/i2pd.log +ExecStartPre=+/bin/chown i2pd:i2pd /var/log/i2pd.log +ExecStartPre=+/bin/chmod 600 /var/log/i2pd.log +ExecStart=/usr/bin/i2pd --daemon --service --pidfile=${RUNTIME_DIRECTORY}/i2pd.pid --log=file --logfile=/var/log/i2pd.log --conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/i2pd/files/i2pd-2.56.0.confd b/net-vpn/i2pd/files/i2pd-2.56.0.confd new file mode 100644 index 000000000000..97cb169f9c45 --- /dev/null +++ b/net-vpn/i2pd/files/i2pd-2.56.0.confd @@ -0,0 +1,16 @@ +# /etc/conf.d/i2pd: config file for /etc/init.d/i2pd + +#I2PD_USER=i2pd +#I2PD_GROUP=i2pd + +# Location of the i2pd log file +#I2PD_LOGFILE=/var/log/i2pd.log + +# Minimal level of log messages (debug, info, warn, error, none) +#I2PD_LOGLEVEL="warn" + +# Additional arguments passed to the daemon +#I2PD_ARGS="--floodfill" + +# Max number of open files (for floodfill) +rc_ulimit="-n 4096" diff --git a/net-vpn/i2pd/files/i2pd-2.56.0.initd b/net-vpn/i2pd/files/i2pd-2.56.0.initd new file mode 100644 index 000000000000..c58dcfcb575b --- /dev/null +++ b/net-vpn/i2pd/files/i2pd-2.56.0.initd @@ -0,0 +1,53 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="Invisible Internet Protocol daemon" +description="C++ daemon for accessing the I2P network" + +command="/usr/bin/i2pd" +pidfile="/run/i2pd/i2pd.pid" + +command_args_background="--daemon --pidfile=${pidfile}" +command_progress=1 +command_user="${I2PD_USER:=i2pd}:${I2PD_GROUP:=i2pd}" +retry="SIGTERM/30/SIGKILL/10" +required_dirs="/var/lib/i2pd" +required_files="/etc/i2pd/i2pd.conf" + +I2PD_LOGFILE="${I2PD_LOGFILE:=/var/log/i2pd.log}" + +command_args="--service --log=file \ + --conf=/etc/i2pd/i2pd.conf \ + --tunconf=/etc/i2pd/tunnels.conf \ + --tunnelsdir=/etc/i2pd/tunnels.conf.d \ + --loglevel='${I2PD_LOGLEVEL:=warn}'\ + --logfile=${I2PD_LOGFILE} ${I2PD_ARGS} \ +" + +depend() { + use dns # for bootstrapping + use logger +} + +start_pre() { + checkpath -o ${command_user} -d $(dirname ${pidfile}) + checkpath -o ${command_user} -f ${I2PD_LOGFILE} +} + +extra_started_commands="reload graceful" + +description_reload="Reload tunnels.conf configuration" +reload() { + start-stop-daemon -s HUP -x ${command} -p ${pidfile} + eend $? "Reloaded tunnels configuration" +} + +description_graceful="Graceful shutdown, takes 10 minutes" +graceful() { + # on SIGINT, i2pd stops accepting tunnels and shuts down in 10 minutes + ebegin "Gracefully stopping i2pd, this takes 10 minutes" + mark_service_stopping + start-stop-daemon -K -x ${command} -p ${pidfile} -R "SIGINT/620/${retry}" + eend $? && mark_service_stopped +} diff --git a/net-vpn/i2pd/files/i2pd-2.57.0.logrotate b/net-vpn/i2pd/files/i2pd-2.57.0.logrotate new file mode 100644 index 000000000000..c1417493c115 --- /dev/null +++ b/net-vpn/i2pd/files/i2pd-2.57.0.logrotate @@ -0,0 +1,13 @@ +/var/log/i2pd.log { + rotate 4 + weekly + missingok + notifempty + create 640 i2pd i2pd + postrotate + if [ -f /run/i2pd/i2pd.pid ]; then + /bin/kill -SIGUSR1 $(/bin/cat /run/i2pd/i2pd.pid) + fi + endscript +} + diff --git a/net-vpn/i2pd/files/i2pd-2.58.0-boost-1.89.patch b/net-vpn/i2pd/files/i2pd-2.58.0-boost-1.89.patch new file mode 100644 index 000000000000..eb666952a2ab --- /dev/null +++ b/net-vpn/i2pd/files/i2pd-2.58.0-boost-1.89.patch @@ -0,0 +1,32 @@ +From: https://github.com/PurpleI2P/i2pd/commit/06a86f31a12815fbd16615cc9fa17199bac1ac17 +Bug: https://bugs.gentoo.org/969018 + +From: orignal <i2porignal@yandex.ru> +Date: Tue, 28 Oct 2025 17:24:48 -0400 +Subject: [PATCH] exclude boost_system + +--- + build/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt +index bc936e18846..c7389d467b3 100644 +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -256,14 +256,14 @@ else() + if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") + endif() +- add_definitions(-DBOOST_ATOMIC_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK) ++ add_definitions(-DBOOST_ATOMIC_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK) + if(WIN32) + set(Boost_USE_STATIC_LIBS OFF) + set(Boost_USE_STATIC_RUNTIME OFF) + endif() + endif() + +-find_package(Boost REQUIRED COMPONENTS system filesystem program_options) ++find_package(Boost REQUIRED COMPONENTS filesystem program_options) + if(NOT DEFINED Boost_FOUND) + message(SEND_ERROR "Boost is not found, or your boost version was below 1.46. Please download Boost!") + endif() diff --git a/net-vpn/i2pd/i2pd-2.58.0.ebuild b/net-vpn/i2pd/i2pd-2.58.0.ebuild new file mode 100644 index 000000000000..ccd8c4ff4c00 --- /dev/null +++ b/net-vpn/i2pd/i2pd-2.58.0.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake systemd + +DESCRIPTION="A C++ daemon for accessing the I2P anonymous network" +HOMEPAGE="https://github.com/PurpleI2P/i2pd" +SRC_URI="https://github.com/PurpleI2P/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="test +upnp" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/boost:= + dev-libs/openssl:0=[-bindist(-)] + virtual/zlib:= + upnp? ( net-libs/miniupnpc:= ) +" +DEPEND=" + ${COMMON_DEPEND} + test? ( dev-libs/check ) +" +RDEPEND=" + ${COMMON_DEPEND} + acct-user/i2pd + acct-group/i2pd +" + +CMAKE_USE_DIR="${WORKDIR}/${P}/build" + +DOCS=( ../README.md ../contrib/i2pd.conf ../contrib/tunnels.conf ) + +PATCHES=( "${FILESDIR}"/i2pd-2.58.0-boost-1.89.patch ) + +src_configure() { + local mycmakeargs=( + -DBUILD_TESTING=$(usex test ON OFF) + -DWITH_HARDENING=OFF # worsens or matches the non-hardened profiles + -DWITH_STATIC=OFF + -DWITH_UPNP=$(usex upnp ON OFF) + -DWITH_LIBRARY=ON + -DWITH_BINARY=ON + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + + # config + insinto /etc/i2pd + doins contrib/i2pd.conf + doins contrib/tunnels.conf + + # working directory + insinto /var/lib/i2pd + doins -r contrib/certificates + + # add /var/lib/i2pd/certificates to CONFIG_PROTECT + doenvd "${FILESDIR}/99i2pd" + + # openrc and systemd daemon routines + newconfd "${FILESDIR}/i2pd-2.56.0.confd" i2pd + newinitd "${FILESDIR}/i2pd-2.56.0.initd" i2pd + systemd_newunit "${FILESDIR}/i2pd-2.38.0.service" i2pd.service + + # logrotate + insinto /etc/logrotate.d + newins "${FILESDIR}/i2pd-2.57.0.logrotate" i2pd +} + +pkg_postinst() { + if [[ -f ${EROOT}/etc/i2pd/subscriptions.txt ]]; then + ewarn + ewarn "Configuration of the subscriptions has been moved from" + ewarn "subscriptions.txt to i2pd.conf. We recommend updating" + ewarn "i2pd.conf accordingly and deleting subscriptions.txt." + fi +} diff --git a/net-vpn/i2pd/i2pd-2.59.0.ebuild b/net-vpn/i2pd/i2pd-2.59.0.ebuild new file mode 100644 index 000000000000..c12a4c8a8866 --- /dev/null +++ b/net-vpn/i2pd/i2pd-2.59.0.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake systemd + +DESCRIPTION="A C++ daemon for accessing the I2P anonymous network" +HOMEPAGE="https://github.com/PurpleI2P/i2pd" +SRC_URI="https://github.com/PurpleI2P/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="test +upnp" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/boost:= + dev-libs/openssl:0=[-bindist(-)] + virtual/zlib:= + upnp? ( net-libs/miniupnpc:= ) +" +DEPEND=" + ${COMMON_DEPEND} + test? ( dev-libs/check ) +" +RDEPEND=" + ${COMMON_DEPEND} + acct-user/i2pd + acct-group/i2pd +" + +CMAKE_USE_DIR="${WORKDIR}/${P}/build" + +DOCS=( ../README.md ../contrib/i2pd.conf ../contrib/tunnels.conf ) + +src_configure() { + local mycmakeargs=( + -DBUILD_TESTING=$(usex test ON OFF) + -DWITH_HARDENING=OFF # worsens or matches the non-hardened profiles + -DWITH_STATIC=OFF + -DWITH_UPNP=$(usex upnp ON OFF) + -DWITH_LIBRARY=ON + -DWITH_BINARY=ON + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + + # config + insinto /etc/i2pd + doins contrib/i2pd.conf + doins contrib/tunnels.conf + + # working directory + insinto /var/lib/i2pd + doins -r contrib/certificates + + # add /var/lib/i2pd/certificates to CONFIG_PROTECT + doenvd "${FILESDIR}/99i2pd" + + # openrc and systemd daemon routines + newconfd "${FILESDIR}/i2pd-2.56.0.confd" i2pd + newinitd "${FILESDIR}/i2pd-2.56.0.initd" i2pd + systemd_newunit "${FILESDIR}/i2pd-2.38.0.service" i2pd.service + + # logrotate + insinto /etc/logrotate.d + newins "${FILESDIR}/i2pd-2.57.0.logrotate" i2pd +} + +pkg_postinst() { + if [[ -f ${EROOT}/etc/i2pd/subscriptions.txt ]]; then + ewarn + ewarn "Configuration of the subscriptions has been moved from" + ewarn "subscriptions.txt to i2pd.conf. We recommend updating" + ewarn "i2pd.conf accordingly and deleting subscriptions.txt." + fi +} diff --git a/net-vpn/i2pd/metadata.xml b/net-vpn/i2pd/metadata.xml new file mode 100644 index 000000000000..397b990d20c4 --- /dev/null +++ b/net-vpn/i2pd/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>kaikaikai@yandex.ru</email> + <name>Alexey Korepanov</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <upstream> + <bugs-to>https://github.com/PurpleI2P/i2pd/issues</bugs-to> + <changelog>https://github.com/PurpleI2P/i2pd/blob/openssl/ChangeLog</changelog> + <doc>https://i2pd.readthedocs.io/</doc> + <remote-id type="github">PurpleI2P/i2pd</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/iodine/Manifest b/net-vpn/iodine/Manifest new file mode 100644 index 000000000000..faef50158b7d --- /dev/null +++ b/net-vpn/iodine/Manifest @@ -0,0 +1 @@ +DIST iodine-0.7.0.tar.gz 96181 BLAKE2B bc7b634f4060d0a3be259f1a0797263de65d6ee6bc2c777c0b74d789c60877aae2895bfda11f5fdd7e064ab137607abfffe689e0a01b2505878e442d08e3555a SHA512 49fe4f0cf614d3400cbfdade84eb4f50430f8f92004f663a08acc1514e8ff342443a8c3f855828bbca1864a3fafe419b5256f8a80fc4024b364d4c8c953fc0ec diff --git a/net-vpn/iodine/files/iodine-0.7.0-TestMessage.patch b/net-vpn/iodine/files/iodine-0.7.0-TestMessage.patch new file mode 100644 index 000000000000..6b814b6f2d74 --- /dev/null +++ b/net-vpn/iodine/files/iodine-0.7.0-TestMessage.patch @@ -0,0 +1,12 @@ +--- iodine-0.7.0/Makefile ++++ iodine-0.7.0/Makefile +@@ -35,8 +35,7 @@ + $(RM) $(RM_FLAGS) $(DESTDIR)$(mandir)/man8/iodine.8 + + test: all +- @echo "!! The check library is required for compiling and running the tests" +- @echo "!! Get it at http://check.sf.net" ++ @echo "Executing tests target" + @(cd tests; $(MAKE) TARGETOS=$(TARGETOS) all) + + clean: diff --git a/net-vpn/iodine/files/iodine-0.7.0-new-systemd.patch b/net-vpn/iodine/files/iodine-0.7.0-new-systemd.patch new file mode 100644 index 000000000000..e18b64a086fe --- /dev/null +++ b/net-vpn/iodine/files/iodine-0.7.0-new-systemd.patch @@ -0,0 +1,16 @@ +diff --git a/src/osflags b/src/osflags +index 9eda8f0..0f8a26c 100755 +--- a/src/osflags ++++ b/src/osflags +@@ -19,7 +19,7 @@ link) + Linux) + FLAGS=""; + [ -e /usr/include/selinux/selinux.h ] && FLAGS="$FLAGS -lselinux"; +- [ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS -lsystemd-daemon"; ++ [ -e /usr/include/systemd/sd-daemon.h ] && FLAGS="$FLAGS $(pkg-config --libs libsystemd)"; + echo $FLAGS; + ;; + esac +-- +1.9.3 + diff --git a/net-vpn/iodine/files/iodined-1.init-r1 b/net-vpn/iodine/files/iodined-1.init-r1 new file mode 100644 index 000000000000..d436acc2896a --- /dev/null +++ b/net-vpn/iodine/files/iodined-1.init-r1 @@ -0,0 +1,64 @@ +#!/sbin/openrc-run +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +PID_FILE="/run/iodined.pid" + +depend() { + need net +} + +start() { + ebegin "Starting iodined" + ARGS="" + if [ "$IODINED_ARGS" ]; then + ARGS="$ARGS $IODINED_ARGS" + fi + if [ "$IODINED_USER" ]; then + ARGS="$ARGS -u $IODINED_USER" + fi + if [ "$IODINED_CHROOT" ]; then + ARGS="$ARGS -t $IODINED_CHROOT" + fi + if [ "$IODINED_MTU" ]; then + ARGS="$ARGS -m $IODINED_MTU" + fi + if [ "$IODINED_LISTENPORT" ]; then + ARGS="$ARGS -p $IODINED_LISTENPORT" + fi + if [ "$IODINED_EXTERN_IP" ]; then + ARGS="$ARGS -n $IODINED_EXTERN_IP" + fi + if [ "$IODINED_LOCAL_DNS_PORT" ]; then + ARGS="$ARGS -b $IODINED_LOCAL_DNS_PORT" + fi + if [ "$IODINED_LISTENIP" ]; then + ARGS="$ARGS -l $IODINED_LISTENIP" + fi + if [ "$IODINED_PASSWD" ]; then + ARGS="$ARGS -P $IODINED_PASSWD" + else + eerror "Please set a password (IODINED_PASSWD) in /etc/conf.d/iodined!" + return 1 + fi + if [ "$IODINED_IP" ]; then + ARGS="$ARGS $IODINED_IP" + else + eerror "Please set an IP (IODINED_IP) in /etc/conf.d/iodined!" + return 1 + fi + if [ "$IODINED_DOMAIN" ]; then + ARGS="$ARGS $IODINED_DOMAIN" + else + eerror "Please set a domain (IODINED_DOMAIN) in /etc/conf.d/iodined!" + return 1 + fi + start-stop-daemon --start --exec /usr/sbin/iodined --pidfile $PID_FILE -- -F $PID_FILE $ARGS + eend $? +} + +stop() { + ebegin "Stopping iodined" + start-stop-daemon --stop --exec /usr/sbin/iodined --pidfile $PID_FILE + eend $? +} diff --git a/net-vpn/iodine/files/iodined.conf-r1 b/net-vpn/iodine/files/iodined.conf-r1 new file mode 100644 index 000000000000..e9a93d12320b --- /dev/null +++ b/net-vpn/iodine/files/iodined.conf-r1 @@ -0,0 +1,46 @@ +# /etc/conf.d/iodined: config file for /etc/init.d/iodined + +# Drop privileges to this user after startup +# This is used by the -u argument. Comment out to keep running as root. +IODINED_USER="nobody" + +# Chroot to this directory after startup +# This is used by the -t argument. Comment out to avoid chroot. +IODINED_CHROOT="/var/empty" + +# This password needs to be used in all clients when they connect +# This is used by the -P argument +IODINED_PASSWD="" + +# This is the MTU (Max Transmit Unit) used in the tunnel. +# You probably dont need this field at all, downstream data will +# now be fragmented. This is used by the -m argument +#IODINED_MTU=1020 + +# The server port to listen on. You should normally not change this. +# See man page. This is used by the -p argument +#IODINED_LISTENPORT=53 + +# The IP address to return as reply to NS queries. If not set, it will +# be the destination address of the query. Used by the -n argument +#IODINED_EXTERN_IP=1.1.1.1 + +# The port used by a "real" DNS server on localhost. Queries for +# domains not handled by iodined will be forwarded to this port, +# and answers will be routed back. Used by the -b argument +#IODINED_LOCAL_DNS_PORT=5353 + +# The IP number to listen on. +# This is used by the -l argument +#IODINED_LISTENIP=127.0.0.1 + +# This IP number will be used by the local tun device. +IODINED_IP="172.28.0.1" + +# Use subdomains to this domain for network tunneling +# If a real domain is used, it should be delegated to this server with +# a NS entry in the domain zone (see man page) +IODINED_DOMAIN="blah.abc" + +# Any extra args not covered above. +#IODINED_ARGS="" diff --git a/net-vpn/iodine/iodine-0.7.0-r5.ebuild b/net-vpn/iodine/iodine-0.7.0-r5.ebuild new file mode 100644 index 000000000000..28210c93b7f0 --- /dev/null +++ b/net-vpn/iodine/iodine-0.7.0-r5.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info toolchain-funcs + +DESCRIPTION="IP over DNS tunnel" +HOMEPAGE="https://code.kryo.se/iodine/" +SRC_URI="https://code.kryo.se/${PN}/${P}.tar.gz" + +CONFIG_CHECK="~TUN" + +LICENSE="ISC GPL-2" #GPL-2 for init script bug #426060 +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="selinux systemd test" +RESTRICT="!test? ( test )" + +RDEPEND=" + virtual/zlib:= + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd:= ) +" +DEPEND=" + ${RDEPEND} + test? ( dev-libs/check ) +" +RDEPEND+=" selinux? ( sec-policy/selinux-iodine )" + +PATCHES=( + "${FILESDIR}"/${P}-TestMessage.patch + "${FILESDIR}"/${P}-new-systemd.patch +) + +src_prepare() { + default + + sed -e '/^\s@echo \(CC\|LD\)/d' \ + -e 's:^\(\s\)@:\1:' \ + -i {,src/}Makefile || die + + if ! use selinux ; then + sed -i -e 's:libselinux:idonotexist&:' src/osflags || die + fi + + if ! use systemd ; then + sed -i -e 's:libsystemd:idonotexist&:' src/osflags || die + fi + + tc-export CC +} + +src_install() { + # Don't re-run submake + sed -e '/^install:/s: all: :' \ + -i Makefile || die + emake prefix="${EPREFIX}"/usr DESTDIR="${D}" install + einstalldocs + + newinitd "${FILESDIR}"/iodined-1.init-r1 iodined + newconfd "${FILESDIR}"/iodined.conf-r1 iodined + keepdir /var/empty + fperms 600 /etc/conf.d/iodined +} diff --git a/net-vpn/iodine/metadata.xml b/net-vpn/iodine/metadata.xml new file mode 100644 index 000000000000..e88e6c4e0dca --- /dev/null +++ b/net-vpn/iodine/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>zx2c4@gentoo.org</email> + <name>Jason A. Donenfeld</name> + </maintainer> + <longdescription>iodine lets you tunnel IPv4 data through a DNS server. This can be usable in different situations where internet access is firewalled, but DNS queries are allowed</longdescription> + <upstream> + <remote-id type="github">yarrick/iodine</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/isatapd/Manifest b/net-vpn/isatapd/Manifest new file mode 100644 index 000000000000..8495713a90e7 --- /dev/null +++ b/net-vpn/isatapd/Manifest @@ -0,0 +1 @@ +DIST isatapd-0.9.7.tar.gz 111524 BLAKE2B eba3a7489c673a0bc44061bb8151f10b3a62b3842c942511f7566212c340188a5fea15a3ac21cfde9009129d63639acfcb08568b5b18a31bacc15905384cf5c1 SHA512 3ddfc8385b666ec8c0552c7b46841f2b5e8ebb5d9aa3119a9a6d4cacea728cb81dced802d51b7c98da4bbb839de6fe68ef1bc5f62914b48638b6f168fc06100a diff --git a/net-vpn/isatapd/files/isatapd-linux-4.8.patch b/net-vpn/isatapd/files/isatapd-linux-4.8.patch new file mode 100644 index 000000000000..a95fe159d6d9 --- /dev/null +++ b/net-vpn/isatapd/files/isatapd-linux-4.8.patch @@ -0,0 +1,25 @@ +From: Bernhard Schmidt <berni@debian.org> +Subject: Fix FTBFS with headers from Linux 4.8+ +Bug-Debian: https://bugs.debian.org/844869 + +Linux 4.8+ adds a few includes to linux/if_tunnel.h, which conflict with +concurrent use of netinet/ip.h. Drop the latter and manually define IP_DF +which is not found anywhere else +--- a/src/tunnel.c ++++ b/src/tunnel.c +@@ -18,10 +18,13 @@ + #include <sys/ioctl.h> + #include <sys/socket.h> + #include <arpa/inet.h> +-#include <netinet/ip.h> + #include <net/if.h> + #include <linux/if_tunnel.h> + ++#ifndef IP_DF ++ #define IP_DF 0x4000 /* dont fragment flag */ ++#endif ++ + #ifdef HAVE_CONFIG_H + #include <config.h> + #endif + diff --git a/net-vpn/isatapd/files/isatapd.service-r2 b/net-vpn/isatapd/files/isatapd.service-r2 new file mode 100644 index 000000000000..8d695eda35ca --- /dev/null +++ b/net-vpn/isatapd/files/isatapd.service-r2 @@ -0,0 +1,15 @@ +[Unit] +Description=ISATAP Client for Linux +After=network.target nss-lookup.target + +[Service] +ExecStart=/usr/sbin/isatapd ${DAEMON_OPTS} \ + --interval ${ISATAP_INTERVAL} \ + --name ${ISATAP_NAME} \ + --link ${ISATAP_LINK} \ + --mtu ${ISATAP_MTU} \ + --check-dns ${ISATAP_CHECK_DNS} \ + ${ISATAP_ROUTERS} + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/isatapd/files/isatapd.service.conf b/net-vpn/isatapd/files/isatapd.service.conf new file mode 100644 index 000000000000..87fe0be4a23d --- /dev/null +++ b/net-vpn/isatapd/files/isatapd.service.conf @@ -0,0 +1,30 @@ +[Service] +# A space separated list of one or more hostnames/IPv4 addresses to use as +# potential routers. +# The default is the unqualified hostname 'isatap' +Environment="ISATAP_ROUTERS=isatap" + +# Interval in seconds to send router solicitations. +# Default (unset): 'auto' +Environment="ISATAP_INTERVAL=auto" + +# Interval in seconds to check for DNS changes. Set to 0 to disable. +# Default: 3600 +Environment="ISATAP_CHECK_DNS=3600" + +# Link tunnel to device +# Default (unset): automatically find outgoing device +Environment="ISATAP_LINK=auto" + +# The name of the ISATAP tunnel device +# Default is 'is0' if ISATAP_LINK is unset and 'is_${ISATAP_LINK}' otherwise. +Environment="ISATAP_NAME=auto" + +# IPv6 MTU of the created ISATAP tunnel interface. The IPv4 path to +# the ISATAP router and all other ISATAP clients should be able to +# handle at least MTU+20 bytes. +# The minimum IPv6 MTU (1280 Bytes) is the safest choice here +Environment="ISATAP_MTU=1280" + +# Additional options, see isatapd(8) for details +Environment="DAEMON_OPTS=" diff --git a/net-vpn/isatapd/isatapd-0.9.7-r2.ebuild b/net-vpn/isatapd/isatapd-0.9.7-r2.ebuild new file mode 100644 index 000000000000..210a012e9532 --- /dev/null +++ b/net-vpn/isatapd/isatapd-0.9.7-r2.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit linux-info systemd + +DESCRIPTION="Creates and maintains an ISATAP tunnel (rfc5214)" +HOMEPAGE="http://www.saschahlusiak.de/linux/isatap.htm" +SRC_URI="http://www.saschahlusiak.de/linux/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +DEPEND="" +RDEPEND="" + +CONFIG_CHECK="~TUN" +ERROR_TUN="CONFIG_TUN is needed for isatapd to work" + +PATCHES=( "${FILESDIR}"/${PN}-linux-4.8.patch ) + +src_prepare() { + default + sed -e '/^opts/s:opts:extra_started_commands:' \ + -i openrc/isatapd.init.d || die + sed -e 's:#!/sbin/runscript:#!/sbin/openrc-run:' \ + -i openrc/isatapd.init.d || die +} + +src_install() { + default + + newinitd openrc/isatapd.init.d isatapd + newconfd openrc/isatapd.conf.d isatapd + systemd_newunit "${FILESDIR}"/${PN}.service-r2 ${PN}.service + systemd_install_serviced "${FILESDIR}"/${PN}.service.conf +} diff --git a/net-vpn/isatapd/metadata.xml b/net-vpn/isatapd/metadata.xml new file mode 100644 index 000000000000..85e4ed814fa2 --- /dev/null +++ b/net-vpn/isatapd/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<!-- maintainer-needed --> +</pkgmetadata> diff --git a/net-vpn/libreswan/Manifest b/net-vpn/libreswan/Manifest new file mode 100644 index 000000000000..15dc7c574d54 --- /dev/null +++ b/net-vpn/libreswan/Manifest @@ -0,0 +1,4 @@ +DIST libreswan-4.15.tar.gz 3728498 BLAKE2B f2fd0955c73fb7278f4b2dbce3c1fa483406502c12340746426c77faa39143252e9b5f0b2c0cb60e238a962789b22b1f5b33a5bf5a42e79bb7e513fb2f12855f SHA512 49a60688bb4a5241dbd791bdde0c71ae80cfb7383bb841ea0788a9d0237569d7ad79e59985c700526e3807817ddae77ebd57521897526fbb8fb93ffbea631efe +DIST libreswan-5.1.tar.gz 4031106 BLAKE2B fa2e4b5ed93bfedd1bbbcc7b2fcd585178f02951aaf719bf5f600258a085e084ea15b60061d3f380e52062be57a5823952ff96297cf4990343413f395e1c9188 SHA512 9ee8b071be414737c61529420af22b789d8968e99e376250afe42e1a5890d864dc2697ecfeb33a6c50de38a361bddf125852a8eb86318e544fc2f162f8ff6522 +DIST libreswan-5.2.tar.gz 4132199 BLAKE2B c726b12ab7bdd5a1de13a33b9afe76b640e18155e231d9a375e9f242cfa313465d70b494151a111343aad23d4d6c07978dc57894e15e4d4be31b934e8c936fb4 SHA512 5c87edc879914158ba9c4c2a0edcd6fac0787b16d3c6a50c268cbd675c51cdec94e509031bc226680c0d40bd3375d73007cae5ee0588c136292e3f34cb759694 +DIST libreswan-5.3.tar.gz 4220520 BLAKE2B 6531572b10394b2dc0ecef3a97f31fd00499c5900f5e2265b24b53cffa9d1d81a73c7ccb5f928ee280842eae5b69e8145e5d52287fd818aa5b686a8c1f70ce4b SHA512 338fb82a9969da8fa78f64ec9eda0e3dcd216d6b8333a6f966ba839e31d3eb5fdd94613f0fff934be16ff8d84f6f4265c8b35f37c642569e042f65a58038ba0d diff --git a/net-vpn/libreswan/files/libreswan-4.2-ip-path.patch b/net-vpn/libreswan/files/libreswan-4.2-ip-path.patch new file mode 100644 index 000000000000..b31071ffcd61 --- /dev/null +++ b/net-vpn/libreswan/files/libreswan-4.2-ip-path.patch @@ -0,0 +1,11 @@ +--- a/initsystems/systemd/ipsec.service.in.~1~ 2021-02-03 02:36:01.000000000 +0100 ++++ b/initsystems/systemd/ipsec.service.in 2021-02-21 07:37:50.841582048 +0100 +@@ -33,7 +33,7 @@ + # ExecStartPost=@FINALLIBEXECDIR@/portexcludes + ExecStop=@FINALLIBEXECDIR@/whack --shutdown + # 12 is the exit code of pluto for shutting down "leaving state" +-ExecStopPost=/bin/bash -c 'if test "$EXIT_STATUS" != "12"; then /sbin/ip xfrm policy flush; /sbin/ip xfrm state flush; fi' ++ExecStopPost=/bin/bash -c 'if test "$EXIT_STATUS" != "12"; then /bin/ip xfrm policy flush; /bin/ip xfrm state flush; fi' + ExecStopPost=@FINALSBINDIR@/ipsec --stopnflog + ExecReload=@FINALLIBEXECDIR@/whack --listen + diff --git a/net-vpn/libreswan/files/libreswan-5.1-without-libcurl.patch b/net-vpn/libreswan/files/libreswan-5.1-without-libcurl.patch new file mode 100644 index 000000000000..e83683324e83 --- /dev/null +++ b/net-vpn/libreswan/files/libreswan-5.1-without-libcurl.patch @@ -0,0 +1,72 @@ +From 9f0336036caa92eb5f82841d200027c95991fd13 Mon Sep 17 00:00:00 2001 +From: Andrew Cagney <cagney@gnu.org> +Date: Mon, 14 Oct 2024 11:09:17 -0400 +Subject: [PATCH] building: fix USE_LIBCURL=false + +close #1845 Libreswan 5.1 no longer compiles without libcurl support +--- + programs/pluto/fetch.c | 13 ++++--------- + programs/pluto/rcv_whack.c | 2 -- + 2 files changed, 4 insertions(+), 11 deletions(-) + +diff --git a/programs/pluto/fetch.c b/programs/pluto/fetch.c +index 299b7ff405..9bc60b9801 100644 +--- a/programs/pluto/fetch.c ++++ b/programs/pluto/fetch.c +@@ -19,8 +19,6 @@ + * + */ + +-#if defined(LIBCURL) || defined(LIBLDAP) /* essentially whole body of file */ +- + #include <pthread.h> /* Must be the first include file */ + #include <stdlib.h> + #include <errno.h> +@@ -30,7 +28,6 @@ + #include <cert.h> + #include <certdb.h> + +- + #include "constants.h" + #include "defs.h" + #include "log.h" +@@ -153,9 +150,11 @@ static err_t fetch_curl(const char *url, chunk_t *blob, struct logger *logger) + + #else /* LIBCURL */ + +-static err_t fetch_curl(const char *url UNUSED, +- chunk_t *blob UNUSED) ++static err_t fetch_curl(const char *url, ++ chunk_t *blob, ++ struct logger *logger) + { ++ ldbg(logger, "%s() ignoring %s %p", __func__, url, blob->ptr); + return "not compiled with libcurl support"; + } + +@@ -578,7 +577,3 @@ void free_crl_fetch(void) + } + #endif + } +- +-#else /* defined(LIBCURL) || defined(LIBLDAP) */ +-/* we'll just ignore for now - this is all going away anyway */ +-#endif +diff --git a/programs/pluto/rcv_whack.c b/programs/pluto/rcv_whack.c +index 7959e9ec1f..a7f811f319 100644 +--- a/programs/pluto/rcv_whack.c ++++ b/programs/pluto/rcv_whack.c +@@ -522,13 +522,11 @@ static void whack_process(const struct whack_message *const m, struct show *s) + dbg_whack(s, "purgeocsp: stop:"); + } + +-#if defined(LIBCURL) || defined(LIBLDAP) + if (m->whack_fetchcrls) { + dbg_whack(s, "fetchcrls: start:"); + whack_fetchcrls(s); + dbg_whack(s, "fetchcrls: stop:"); + } +-#endif + + if (m->whack_rereadcerts) { + dbg_whack(s, "rereadcerts: start:"); diff --git a/net-vpn/libreswan/libreswan-4.15.ebuild b/net-vpn/libreswan/libreswan-4.15.ebuild new file mode 100644 index 000000000000..c06292894782 --- /dev/null +++ b/net-vpn/libreswan/libreswan-4.15.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd flag-o-matic toolchain-funcs tmpfiles + +DESCRIPTION="IPsec implementation for Linux, fork of Openswan" +HOMEPAGE="https://libreswan.org/" +SRC_URI="https://download.libreswan.org/${P}.tar.gz" + +LICENSE="GPL-2 BSD-4 RSA DES" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ppc x86" +IUSE="caps curl dnssec ldap networkmanager pam seccomp selinux systemd test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/gmp:0= + dev-libs/libevent:0= + dev-libs/nspr + >=dev-libs/nss-3.42 + >=sys-kernel/linux-headers-4.19 + virtual/libcrypt:= + caps? ( sys-libs/libcap-ng ) + curl? ( net-misc/curl ) + dnssec? ( >=net-dns/unbound-1.9.1-r1:= net-libs/ldns:= net-dns/dnssec-root ) + ldap? ( net-nds/openldap:= ) + pam? ( sys-libs/pam ) + seccomp? ( sys-libs/libseccomp ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd:0= ) +" +BDEPEND=" + app-text/docbook-xml-dtd:4.1.2 + app-text/xmlto + dev-libs/nss + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + test? ( dev-python/setproctitle ) +" +RDEPEND="${DEPEND} + dev-libs/nss[utils(+)] + sys-apps/iproute2 + !net-vpn/strongswan + selinux? ( sec-policy/selinux-ipsec ) +" +DEPEND+=" elibc_musl? ( sys-libs/queue-standalone )" + +usetf() { + usex "$1" true false +} + +PATCHES=( "${FILESDIR}/${PN}-4.2-ip-path.patch" ) + +src_prepare() { + sed -i -e 's:/sbin/runscript:/sbin/openrc-run:' initsystems/openrc/ipsec.init.in || die + sed -i -e '/^install/ s/postcheck//' -e '/^doinstall/ s/oldinitdcheck//' initsystems/systemd/Makefile || die + default +} + +src_configure() { + tc-export AR CC + + use elibc_musl && append-cflags -DGLIBC_KERN_FLIP_HEADERS + + export PREFIX=/usr + export DEFAULT_DNSSEC_ROOTKEY_FILE=/etc/dnssec/icannbundle.pem + export FINALEXAMPLECONFDIR=/usr/share/doc/${PF} + export FINALDOCDIR=/usr/share/doc/${PF}/html + export INITSYSTEM=$(usex systemd systemd openrc) + export INITDDIRS= + export INITDDIR_DEFAULT=/etc/init.d + export USERCOMPILE=${CFLAGS} + export USERLINK=${LDFLAGS} + export USE_DNSSEC=$(usetf dnssec) + export USE_LABELED_IPSEC=$(usetf selinux) + export USE_LIBCAP_NG=$(usetf caps) + export USE_LIBCURL=$(usetf curl) + export USE_LINUX_AUDIT=$(usetf selinux) + export USE_LDAP=$(usetf ldap) + export USE_NM=$(usetf networkmanager) + export USE_SECCOMP=$(usetf seccomp) + export USE_SYSTEMD_WATCHDOG=$(usetf systemd) + export SD_WATCHDOGSEC=$(usex systemd 200 0) + export USE_AUTHPAM=$(usetf pam) + export DEBUG_CFLAGS= + export OPTIMIZE_CFLAGS= + export WERROR_CFLAGS= +} + +src_compile() { + emake all + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + all +} + +src_test() { + : # integration tests only that require set of kvms to be set up +} + +src_install() { + default + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + DESTDIR="${D}" \ + install + + echo "include /etc/ipsec.d/*.secrets" > "${D}"/etc/ipsec.secrets + fperms 0600 /etc/ipsec.secrets + + keepdir /var/lib/ipsec/nss + fperms 0700 /var/lib/ipsec/nss + + dodoc -r docs + + find "${D}" -type d -empty -delete || die +} + +pkg_postinst() { + tmpfiles_process libreswan.conf + + local IPSEC_CONFDIR=${ROOT}/var/lib/ipsec/nss + if [[ ! -f ${IPSEC_CONFDIR}/cert8.db && ! -f ${IPSEC_CONFDIR}/cert9.db ]] ; then + ebegin "Setting up NSS database in ${IPSEC_CONFDIR} with empty password" + certutil -N -d "${IPSEC_CONFDIR}" --empty-password + eend $? + einfo "To set a password: certutil -W -d sql:${IPSEC_CONFDIR}" + fi +} diff --git a/net-vpn/libreswan/libreswan-5.1-r1.ebuild b/net-vpn/libreswan/libreswan-5.1-r1.ebuild new file mode 100644 index 000000000000..f73fd0f7bee7 --- /dev/null +++ b/net-vpn/libreswan/libreswan-5.1-r1.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd flag-o-matic toolchain-funcs tmpfiles + +DESCRIPTION="IPsec implementation for Linux, fork of Openswan" +HOMEPAGE="https://libreswan.org/" +SRC_URI="https://download.libreswan.org/${P}.tar.gz" + +LICENSE="GPL-2 BSD-4 RSA DES" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ppc x86" +IUSE="caps curl dnssec +ikev1 ldap networkmanager pam seccomp selinux systemd test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/gmp:0= + dev-libs/libevent:0= + dev-libs/nspr + >=dev-libs/nss-3.42 + >=sys-kernel/linux-headers-4.19 + virtual/libcrypt:= + caps? ( sys-libs/libcap-ng ) + curl? ( net-misc/curl ) + dnssec? ( >=net-dns/unbound-1.9.1-r1:= net-libs/ldns:= net-dns/dnssec-root ) + ldap? ( net-nds/openldap:= ) + pam? ( sys-libs/pam ) + seccomp? ( sys-libs/libseccomp ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd:0= ) +" +BDEPEND=" + app-text/docbook-xml-dtd:4.1.2 + app-text/xmlto + dev-libs/nss + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + test? ( dev-python/setproctitle ) +" +RDEPEND="${DEPEND} + dev-libs/nss[utils(+)] + sys-apps/iproute2 + !net-vpn/strongswan + selinux? ( sec-policy/selinux-ipsec ) +" +DEPEND+=" elibc_musl? ( sys-libs/queue-standalone )" + +PATCHES=( "${FILESDIR}/${P}-without-libcurl.patch" ) + +usetf() { + usex "$1" true false +} + +src_prepare() { + sed -i -e 's:/sbin/runscript:/sbin/openrc-run:' initsystems/openrc/ipsec.init.in || die + sed -i -e '/^install/ s/postcheck//' -e '/^doinstall/ s/oldinitdcheck//' initsystems/systemd/Makefile || die + default +} + +src_configure() { + tc-export AR CC + + use elibc_musl && append-cflags -DGLIBC_KERN_FLIP_HEADERS + + export PREFIX=/usr + export DEFAULT_DNSSEC_ROOTKEY_FILE=/etc/dnssec/icannbundle.pem + export EXAMPLE_IPSEC_SYSCONFDIR=/usr/share/doc/${PF} + export FINALEXAMPLECONFDIR=/usr/share/doc/${PF} + export INITSYSTEM=$(usex systemd systemd openrc) + export INITDDIRS= + export INITDDIR_DEFAULT=/etc/init.d + export USERCOMPILE=${CFLAGS} + export USERLINK=${LDFLAGS} + export USE_DNSSEC=$(usetf dnssec) + export USE_IKEV1=$(usetf ikev1) + export USE_LABELED_IPSEC=$(usetf selinux) + export USE_LIBCAP_NG=$(usetf caps) + export USE_LIBCURL=$(usetf curl) + export USE_LINUX_AUDIT=$(usetf selinux) + export USE_LDAP=$(usetf ldap) + export USE_NM=$(usetf networkmanager) + export USE_SECCOMP=$(usetf seccomp) + export USE_SYSTEMD_WATCHDOG=$(usetf systemd) + export SD_WATCHDOGSEC=$(usex systemd 200 0) + export USE_AUTHPAM=$(usetf pam) + export DEBUG_CFLAGS= + export OPTIMIZE_CFLAGS= + export WERROR_CFLAGS= +} + +src_compile() { + emake all + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + all +} + +src_test() { + : # integration tests only that require set of kvms to be set up +} + +src_install() { + default + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + DESTDIR="${D}" \ + install + + echo "include /etc/ipsec.d/*.secrets" > "${D}"/etc/ipsec.secrets + fperms 0600 /etc/ipsec.secrets + + keepdir /var/lib/ipsec/nss + fperms 0700 /var/lib/ipsec/nss + + dodoc -r docs + + find "${D}" -type d -empty -delete || die +} + +pkg_postinst() { + tmpfiles_process libreswan.conf + + local IPSEC_CONFDIR=${ROOT}/var/lib/ipsec/nss + if [[ ! -f ${IPSEC_CONFDIR}/cert8.db && ! -f ${IPSEC_CONFDIR}/cert9.db ]] ; then + ebegin "Setting up NSS database in ${IPSEC_CONFDIR} with empty password" + certutil -N -d "${IPSEC_CONFDIR}" --empty-password + eend $? + einfo "To set a password: certutil -W -d sql:${IPSEC_CONFDIR}" + fi +} diff --git a/net-vpn/libreswan/libreswan-5.2.ebuild b/net-vpn/libreswan/libreswan-5.2.ebuild new file mode 100644 index 000000000000..3a3e9016ef7e --- /dev/null +++ b/net-vpn/libreswan/libreswan-5.2.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd flag-o-matic toolchain-funcs tmpfiles + +DESCRIPTION="IPsec implementation for Linux, fork of Openswan" +HOMEPAGE="https://libreswan.org/" +SRC_URI="https://download.libreswan.org/${P}.tar.gz" + +LICENSE="GPL-2 BSD-4 RSA DES" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc x86" +IUSE="caps curl dnssec +ikev1 ldap networkmanager pam seccomp selinux systemd test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/gmp:0= + dev-libs/libevent:0= + dev-libs/nspr + >=dev-libs/nss-3.42 + >=sys-kernel/linux-headers-4.19 + virtual/libcrypt:= + caps? ( sys-libs/libcap-ng ) + curl? ( net-misc/curl ) + dnssec? ( >=net-dns/unbound-1.9.1-r1:= net-libs/ldns:= net-dns/dnssec-root ) + ldap? ( net-nds/openldap:= ) + pam? ( sys-libs/pam ) + seccomp? ( sys-libs/libseccomp ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd:0= ) +" +BDEPEND=" + app-text/docbook-xml-dtd:4.1.2 + app-text/xmlto + dev-libs/nss + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + test? ( dev-python/setproctitle ) +" +RDEPEND="${DEPEND} + dev-libs/nss[utils(+)] + sys-apps/iproute2 + !net-vpn/strongswan + selinux? ( sec-policy/selinux-ipsec ) +" +DEPEND+=" elibc_musl? ( sys-libs/queue-standalone )" + +usetf() { + usex "$1" true false +} + +src_prepare() { + sed -i -e 's:/sbin/runscript:/sbin/openrc-run:' initsystems/openrc/ipsec.init.in || die + sed -i -e '/^install/ s/postcheck//' -e '/^doinstall/ s/oldinitdcheck//' initsystems/systemd/Makefile || die + default +} + +src_configure() { + tc-export AR CC + + use elibc_musl && append-cflags -DGLIBC_KERN_FLIP_HEADERS + + export PREFIX=/usr + export DEFAULT_DNSSEC_ROOTKEY_FILE=/etc/dnssec/icannbundle.pem + export EXAMPLE_IPSEC_SYSCONFDIR=/usr/share/doc/${PF} + export FINALEXAMPLECONFDIR=/usr/share/doc/${PF} + export INITSYSTEM=$(usex systemd systemd openrc) + export INITDDIRS= + export INITDDIR_DEFAULT=/etc/init.d + export USERCOMPILE=${CFLAGS} + export USERLINK=${LDFLAGS} + export USE_DNSSEC=$(usetf dnssec) + export USE_IKEV1=$(usetf ikev1) + export USE_LABELED_IPSEC=$(usetf selinux) + export USE_LIBCAP_NG=$(usetf caps) + export USE_LIBCURL=$(usetf curl) + export USE_LINUX_AUDIT=$(usetf selinux) + export USE_LDAP=$(usetf ldap) + export USE_NM=$(usetf networkmanager) + export USE_SECCOMP=$(usetf seccomp) + export USE_SYSTEMD_WATCHDOG=$(usetf systemd) + export SD_WATCHDOGSEC=$(usex systemd 200 0) + export USE_AUTHPAM=$(usetf pam) + export DEBUG_CFLAGS= + export OPTIMIZE_CFLAGS= + export WERROR_CFLAGS= +} + +src_compile() { + emake all + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + all +} + +src_test() { + : # integration tests only that require set of kvms to be set up +} + +src_install() { + default + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + DESTDIR="${D}" \ + install + + echo "include /etc/ipsec.d/*.secrets" > "${D}"/etc/ipsec.secrets + fperms 0600 /etc/ipsec.secrets + + keepdir /var/lib/ipsec/nss + fperms 0700 /var/lib/ipsec/nss + + dodoc -r docs + + find "${D}" -type d -empty -delete || die +} + +pkg_postinst() { + tmpfiles_process libreswan.conf + + local IPSEC_CONFDIR=${ROOT}/var/lib/ipsec/nss + if [[ ! -f ${IPSEC_CONFDIR}/cert8.db && ! -f ${IPSEC_CONFDIR}/cert9.db ]] ; then + ebegin "Setting up NSS database in ${IPSEC_CONFDIR} with empty password" + certutil -N -d "${IPSEC_CONFDIR}" --empty-password + eend $? + einfo "To set a password: certutil -W -d sql:${IPSEC_CONFDIR}" + fi +} diff --git a/net-vpn/libreswan/libreswan-5.3.ebuild b/net-vpn/libreswan/libreswan-5.3.ebuild new file mode 100644 index 000000000000..1de7cbc707c2 --- /dev/null +++ b/net-vpn/libreswan/libreswan-5.3.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd flag-o-matic toolchain-funcs tmpfiles + +DESCRIPTION="IPsec implementation for Linux, fork of Openswan" +HOMEPAGE="https://libreswan.org/" +SRC_URI="https://download.libreswan.org/${P}.tar.gz" + +LICENSE="GPL-2 BSD-4 RSA DES" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86" +IUSE="caps curl dnssec +ikev1 ldap networkmanager pam seccomp selinux systemd test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/gmp:0= + dev-libs/libevent:0= + dev-libs/nspr + >=dev-libs/nss-3.42 + >=sys-kernel/linux-headers-4.19 + virtual/libcrypt:= + caps? ( sys-libs/libcap-ng ) + curl? ( net-misc/curl ) + dnssec? ( >=net-dns/unbound-1.9.1-r1:= net-libs/ldns:= net-dns/dnssec-root ) + ldap? ( net-nds/openldap:= ) + pam? ( sys-libs/pam ) + seccomp? ( sys-libs/libseccomp ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd:0= ) +" +BDEPEND=" + app-text/docbook-xml-dtd:4.1.2 + app-text/xmlto + dev-libs/nss + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + test? ( dev-python/setproctitle ) +" +RDEPEND="${DEPEND} + dev-libs/nss[utils(+)] + sys-apps/iproute2 + !net-vpn/strongswan + selinux? ( sec-policy/selinux-ipsec ) +" +DEPEND+=" elibc_musl? ( sys-libs/queue-standalone )" + +usetf() { + usex "$1" true false +} + +src_prepare() { + sed -i -e 's:/sbin/runscript:/sbin/openrc-run:' initsystems/openrc/ipsec.init.in || die + sed -i -e '/^install/ s/postcheck//' -e '/^doinstall/ s/oldinitdcheck//' initsystems/systemd/Makefile || die + default +} + +src_configure() { + tc-export AR CC + + use elibc_musl && append-cflags -DGLIBC_KERN_FLIP_HEADERS + + export PREFIX=/usr + export DEFAULT_DNSSEC_ROOTKEY_FILE=/etc/dnssec/icannbundle.pem + export EXAMPLE_IPSEC_SYSCONFDIR=/usr/share/doc/${PF} + export FINALEXAMPLECONFDIR=/usr/share/doc/${PF} + export INITSYSTEM=$(usex systemd systemd openrc) + export INITDDIRS= + export INITDDIR_DEFAULT=/etc/init.d + export USERCOMPILE=${CFLAGS} + export USERLINK=${LDFLAGS} + export USE_DNSSEC=$(usetf dnssec) + export USE_IKEV1=$(usetf ikev1) + export USE_LABELED_IPSEC=$(usetf selinux) + export USE_LIBCAP_NG=$(usetf caps) + export USE_LIBCURL=$(usetf curl) + export USE_LINUX_AUDIT=$(usetf selinux) + export USE_LDAP=$(usetf ldap) + export USE_NM=$(usetf networkmanager) + export USE_SECCOMP=$(usetf seccomp) + export USE_SYSTEMD_WATCHDOG=$(usetf systemd) + export SD_WATCHDOGSEC=$(usex systemd 200 0) + export USE_AUTHPAM=$(usetf pam) + export DEBUG_CFLAGS= + export OPTIMIZE_CFLAGS= + export WERROR_CFLAGS= +} + +src_compile() { + emake all + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + all +} + +src_test() { + : # integration tests only that require set of kvms to be set up +} + +src_install() { + default + emake -C initsystems \ + INITSYSTEM=systemd \ + SYSTEMUNITDIR="$(systemd_get_systemunitdir)" \ + SYSTEMTMPFILESDIR="/usr/lib/tmpfiles.d" \ + DESTDIR="${D}" \ + install + + echo "include /etc/ipsec.d/*.secrets" > "${D}"/etc/ipsec.secrets + fperms 0600 /etc/ipsec.secrets + + keepdir /var/lib/ipsec/nss + fperms 0700 /var/lib/ipsec/nss + + dodoc -r docs + + find "${D}" -type d -empty -delete || die +} + +pkg_postinst() { + tmpfiles_process libreswan.conf + + local IPSEC_CONFDIR=${ROOT}/var/lib/ipsec/nss + if [[ ! -f ${IPSEC_CONFDIR}/cert8.db && ! -f ${IPSEC_CONFDIR}/cert9.db ]] ; then + ebegin "Setting up NSS database in ${IPSEC_CONFDIR} with empty password" + certutil -N -d "${IPSEC_CONFDIR}" --empty-password + eend $? + einfo "To set a password: certutil -W -d sql:${IPSEC_CONFDIR}" + fi +} diff --git a/net-vpn/libreswan/metadata.xml b/net-vpn/libreswan/metadata.xml new file mode 100644 index 000000000000..d091371c0bf8 --- /dev/null +++ b/net-vpn/libreswan/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <use> + <flag name="dnssec">Use DNSSEC resolver (requires <pkg>net-dns/unbound</pkg>)</flag> + <flag name="ikev1">Enable the IKEv1 protocol</flag> + </use> + <upstream> + <remote-id type="github">libreswan/libreswan</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/logmein-hamachi/Manifest b/net-vpn/logmein-hamachi/Manifest new file mode 100644 index 000000000000..820e6761a2c5 --- /dev/null +++ b/net-vpn/logmein-hamachi/Manifest @@ -0,0 +1,2 @@ +DIST logmein-hamachi-2.1.0.203-x64.tgz 1622719 BLAKE2B 7be3e4a496adaf5a42c1d16fd8a50c9d079da8d729de4cd1c7c203ffd5315423c222f5ccdbd54058a547168f2bae32df80f8f191e2f91e4dd77aa8516eeaaf0a SHA512 f34d65792162003f230d0531faf7c64aeacf6b7014c1266f07657d81c6f9d9bcda78e08c7d2569bc358574017a5f43ff99c247c86439739114b821ad5e40110e +DIST logmein-hamachi-2.1.0.203-x86.tgz 1368703 BLAKE2B 686149ccf57683d1a6ecae5d8f8dd16d793156fd5c3e95556ca4e12e9138f4bbc0eee1f4785ff684138a99e38a95156afa9e48e7587ed02d9fccbae7e8c9043a SHA512 b153dba334cf04abb9662c4c1fc576388bebdf0af303549e25c65536b3601f9c90e2a4c986898979d2abfc9fca2d31943e787d4ff3b59fc7147c2a1a1a1fdad9 diff --git a/net-vpn/logmein-hamachi/files/logmein-hamachi.confd b/net-vpn/logmein-hamachi/files/logmein-hamachi.confd new file mode 100644 index 000000000000..73523ee3e3de --- /dev/null +++ b/net-vpn/logmein-hamachi/files/logmein-hamachi.confd @@ -0,0 +1,15 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# /etc/conf.d/logmein-hamachi +# Config file for logmein-hamachi control script + +# Location of config, identity and log files +CONFDIR="/var/lib/logmein-hamachi" + +# Your nickname +# Set it to enable auto-login when starting the service +NICKNAME="" + +# Seconds to wait before auto-login (if enabled) +WAIT="2" diff --git a/net-vpn/logmein-hamachi/files/logmein-hamachi.initd b/net-vpn/logmein-hamachi/files/logmein-hamachi.initd new file mode 100644 index 000000000000..4bff7452ebcc --- /dev/null +++ b/net-vpn/logmein-hamachi/files/logmein-hamachi.initd @@ -0,0 +1,77 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +DAEMON=/opt/logmein-hamachi/bin/hamachid +PIDFILE=/var/run/logmein-hamachi/hamachid.pid + +depend() { + need net +} + +checktun() { + [ $(uname -s) = "Linux" ] || return 0 + [ -e /dev/net/tun ] && return 0 + modprobe tun && return 0 + + eerror "TUN/TAP support is not available in the running kernel" + return 1 +} + +start_pre() { + checkpath -d /var/run/logmein-hamachi +} + +start() +{ + # returns + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + + checktun || return 2 + + ebegin "Starting hamachi" + + start-stop-daemon --quiet --start --exec "${DAEMON}" \ + --pidfile "${PIDFILE}" -- -c "${CONFDIR}" + result=$? + + if [ ${result} -eq 0 ] && [ -n "${NICKNAME}" ]; then + # it fails logging in immediately + sleep ${WAIT} + /usr/bin/hamachi login + if [ -z "$(/usr/bin/hamachi | grep 'logged in')" ]; then + start-stop-daemon --quiet --stop \ + --exec "${DAEMON}" --pidfile "${PIDFILE}" + result=1 + else + /usr/bin/hamachi set-nick "${NICKNAME}" + fi + fi + + eend ${result} +} + +stop() +{ + # returns + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + + ebegin "Stopping hamachi" + + /usr/bin/hamachi logout + start-stop-daemon --quiet --stop --exec "${DAEMON}" \ + --pidfile "${PIDFILE}" + + eend $? +} + +status() { + service_started "${SVCNAME}" || return 1 + /usr/bin/hamachi + /usr/bin/hamachi list +} diff --git a/net-vpn/logmein-hamachi/files/logmein-hamachi.service b/net-vpn/logmein-hamachi/files/logmein-hamachi.service new file mode 100644 index 000000000000..609447e16373 --- /dev/null +++ b/net-vpn/logmein-hamachi/files/logmein-hamachi.service @@ -0,0 +1,10 @@ +[Unit] +Description=LogMeIn Hamachi daemon +After=local-fs.target network.target + +[Service] +ExecStart=/opt/logmein-hamachi/bin/hamachid +Type=forking + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/logmein-hamachi/logmein-hamachi-2.1.0.203.ebuild b/net-vpn/logmein-hamachi/logmein-hamachi-2.1.0.203.ebuild new file mode 100644 index 000000000000..75c142f46046 --- /dev/null +++ b/net-vpn/logmein-hamachi/logmein-hamachi-2.1.0.203.ebuild @@ -0,0 +1,65 @@ +# Copyright 2020-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit linux-info systemd + +DESCRIPTION="LogMeIn Hamachi VPN tunneling engine" +HOMEPAGE="https://vpn.net/" +SRC_URI="x86? ( https://vpn.net/installers/${P}-x86.tgz ) + amd64? ( https://vpn.net/installers/${P}-x64.tgz )" + +LICENSE="LogMeIn" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="" + +RDEPEND="!net-misc/hamachi" + +RESTRICT="mirror" + +QA_PREBUILT="/opt/${PN}/bin/hamachid" +QA_PRESTRIPPED="/opt/${PN}/bin/hamachid" +QA_WX_LOAD="/opt/${PN}/bin/hamachid" + +pkg_setup() { + einfo "Checking your kernel configuration for TUN/TAP support." + CONFIG_CHECK="~TUN" + check_extra_config +} + +src_unpack() { + unpack ${A} + mv "${P}-$(usex x86 x86 x64)" "${S}" || die +} + +src_install() { + into /opt/${PN} + dobin hamachid dnsup dnsdown + dosym ../../opt/${PN}/bin/hamachid /usr/bin/hamachi + + # Config and log directory + keepdir /var/lib/${PN} + + newconfd "${FILESDIR}"/${PN}.confd ${PN} + newinitd "${FILESDIR}"/${PN}.initd ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service + + dodoc CHANGES README +} + +pkg_postinst() { + elog "LogMeIn Hamachi2 is installed." + elog "Consult the README file on how to configure your client." + elog "You can run the client 'hamachi' as root," + elog "or as a user if you add a newline terminated line:" + elog "Ipc.User <login name>" + elog "to the file '/var/lib/${PN}/h2-engine-override.cfg'" + elog "and restart the daemon with" + elog "/etc/init.d/${PN} restart" + elog "or:" + elog "systemctl restart ${PN}" + elog "To enable auto-login when the service starts set a nickname in" + elog "/etc/conf.d/${PN} (only supported using openRC)" +} diff --git a/net-vpn/logmein-hamachi/metadata.xml b/net-vpn/logmein-hamachi/metadata.xml new file mode 100644 index 000000000000..115e9d64a669 --- /dev/null +++ b/net-vpn/logmein-hamachi/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> +</pkgmetadata> diff --git a/net-vpn/metadata.xml b/net-vpn/metadata.xml new file mode 100644 index 000000000000..5e0e125f26be --- /dev/null +++ b/net-vpn/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<catmetadata> + <longdescription lang="en"> + The net-vpn category contains packages related to virtual private + networks and tunneling utilities. + </longdescription> + <longdescription lang="de"> + Die Kategorie net-vpn enthält Pakete für virtuelle private + Netze und Tunneling-Dienstprogramme. + </longdescription> +</catmetadata> diff --git a/net-vpn/microsoft-azurevpnclient/Manifest b/net-vpn/microsoft-azurevpnclient/Manifest new file mode 100644 index 000000000000..f6f31976f95a --- /dev/null +++ b/net-vpn/microsoft-azurevpnclient/Manifest @@ -0,0 +1 @@ +DIST microsoft-azurevpnclient_3.0.0_amd64.deb 12590862 BLAKE2B c8ef50ba9500ea1d6f576f43b9b3d9cc2127efdc52f9df3b880e198d08c467e2f4f17f659cebc5a0374174e7738756963f6669ad0d175c71ffe932b3b58b5c90 SHA512 742beed521ad0d5ccc58e34005e687b66e878da4b14aa204239c80181bfd6718689da490378e6c5d6c812c16991f3c853f1c1ede1074388c8697d5798a58bb03 diff --git a/net-vpn/microsoft-azurevpnclient/files/microsoft-azurevpnclient-sudo-group.patch b/net-vpn/microsoft-azurevpnclient/files/microsoft-azurevpnclient-sudo-group.patch new file mode 100644 index 000000000000..3dc29657ef5a --- /dev/null +++ b/net-vpn/microsoft-azurevpnclient/files/microsoft-azurevpnclient-sudo-group.patch @@ -0,0 +1,13 @@ +Gentoo does not have a sudo group, so use wheel instead. + +diff -Naur a/var/lib/polkit-1/localauthority/50-local.d/10-microsoft-azurevpnclient.pkla b/var/lib/polkit-1/localauthority/50-local.d/10-microsoft-azurevpnclient.pkla +--- a/var/lib/polkit-1/localauthority/50-local.d/10-microsoft-azurevpnclient.pkla 2023-04-26 12:18:12.000000000 +0100 ++++ b/var/lib/polkit-1/localauthority/50-local.d/10-microsoft-azurevpnclient.pkla 2024-05-03 11:23:22.657251999 +0100 +@@ -1,5 +1,5 @@ +-[Allow sudo group users to set DNS domains and servers without prompt] +-Identity=unix-group:sudo ++[Allow wheel group users to set DNS domains and servers without prompt] ++Identity=unix-group:wheel + Action=org.freedesktop.resolve1.set-domains;org.freedesktop.resolve1.set-dns-servers + ResultAny=yes + ResultInactive=yes diff --git a/net-vpn/microsoft-azurevpnclient/metadata.xml b/net-vpn/microsoft-azurevpnclient/metadata.xml new file mode 100644 index 000000000000..374cd4dedb33 --- /dev/null +++ b/net-vpn/microsoft-azurevpnclient/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>chewi@gentoo.org</email> + <name>James Le Cuirot</name> + </maintainer> +</pkgmetadata> diff --git a/net-vpn/microsoft-azurevpnclient/microsoft-azurevpnclient-3.0.0.ebuild b/net-vpn/microsoft-azurevpnclient/microsoft-azurevpnclient-3.0.0.ebuild new file mode 100644 index 000000000000..8f366b1396db --- /dev/null +++ b/net-vpn/microsoft-azurevpnclient/microsoft-azurevpnclient-3.0.0.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop fcaps prefix unpacker xdg + +DESCRIPTION="Microsoft Azure VPN client for connecting securely to the Azure cloud" +HOMEPAGE="https://learn.microsoft.com/en-us/azure/vpn-gateway/point-to-site-certificate-client-linux-azure-vpn-client" +SRC_URI="https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/${PN:0:1}/${PN}/${PN}_${PV}_amd64.deb" +S="${WORKDIR}" +LICENSE="microsoft-proprietary Apache-2.0 BSD-2 BSD ISC MIT openssl SSLeay" +SLOT="0" +KEYWORDS="-* ~amd64" +RESTRICT="bindist mirror" + +RDEPEND=" + app-accessibility/at-spi2-core:2 + app-crypt/libsecret + dev-db/sqlite:3 + dev-libs/glib:2 + dev-libs/openssl:0/3 + media-libs/fontconfig:1.0 + media-libs/libepoxy + net-misc/curl + sys-apps/systemd[resolvconf] + sys-auth/polkit + sys-auth/polkit-pkla-compat + sys-libs/libcap + virtual/zlib:= + x11-libs/gtk+:3 + x11-libs/pango + prefix? ( dev-util/patchelf ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-sudo-group.patch +) + +QA_PREBUILT="*" +DIR="/opt/microsoft/${PN}" + +src_unpack() { + unpack_deb ${A} +} + +src_configure() { + hprefixify \ + etc/rsyslog.d/*.conf \ + usr/share/applications/*.desktop \ + usr/share/polkit-1/rules.d/*.rules + + if use prefix; then + patchelf --set-rpath "${EPREFIX}${DIR}/lib" "${DIR#/}"/{lib/*,${PN}} || die + fi +} + +src_install() { + insinto "${DIR}" + doins -r "${DIR#/}"/data + + exeinto "${DIR}"/lib + doexe "${DIR#/}"/lib/* + + exeinto "${DIR}" + doexe "${DIR#/}"/${PN} + dosym "../../${DIR#/}/${PN}" /usr/bin/${PN} + + insinto /usr/share/polkit-1 + doins -r usr/share/polkit-1/* + + insinto /var/lib/polkit-1 + doins -r var/lib/polkit-1/* + + insinto /etc + doins -r etc/* + + domenu usr/share/applications/*.desktop + insinto /usr/share/icons + doins usr/share/icons/*.png + + gunzip usr/share/doc/${PN}/changelog.gz || die + dodoc usr/share/doc/${PN}/changelog +} + +pkg_postinst() { + fcaps cap_net_admin+eip "${EROOT}${DIR}/${PN}" + xdg_pkg_postinst +} diff --git a/net-vpn/mullvad-netns/Manifest b/net-vpn/mullvad-netns/Manifest new file mode 100644 index 000000000000..363fced6f0cb --- /dev/null +++ b/net-vpn/mullvad-netns/Manifest @@ -0,0 +1,3 @@ +DIST mullvad-netns-0.2.tar.gz 12087 BLAKE2B 43f578a8a2d7f0317de9c2c0bc19f49a37ad7754dfcb50a5d698313fe6470ec6f2580d2e7629ac95dbeeddd6c1ac6d660b142c5c801830624c14e6c0e781dc6e SHA512 6f0942841fce19b35adb38b73ae7d692f22e551cf6bccd9c67acf6d248fe7d2684a6a20b9b6459429caf333e68c4d6e460632068b5eebd6a29654a46fb2ab64e +DIST mullvad-netns-0.3.tar.gz 12164 BLAKE2B e980e28c4dd734e5dc429354a2ab0fe9b653679af1d75122bd83f807d67fe289bc77471b6d5decc068f540bb321de0882f0daa7cf500d4e7ef85547da0e1b547 SHA512 fedc7e7a0c6aeb10ed00a82652d08b31e80f6c4077a6dc50c18410a20bb7bee4f8c9d74f54add711cff1c037722546c24db697fdecaaeeae91125f57c30ad138 +DIST mullvad-netns-0.4.tar.gz 12231 BLAKE2B a3400231b0c536475e55bb655bf87429ab62c4310af2603ec89151d21b98e1759a5ccd52682788f91e8bd3b60a6b029af89f7a66059a6dc8ef1a4fed40ba72a3 SHA512 3da75efc51ba20d3f1bb2dfc9e906fc7194831540a2dbea5bc1b22f6c7e13a0512c35156146bc92f114e2b6c9e582143d7e3f9f61ad028843ee0962acba4c103 diff --git a/net-vpn/mullvad-netns/metadata.xml b/net-vpn/mullvad-netns/metadata.xml new file mode 100644 index 000000000000..595fbf9565e1 --- /dev/null +++ b/net-vpn/mullvad-netns/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Patrick McLean</name> + <email>chutzpah@gentoo.org</email> + </maintainer> +</pkgmetadata> diff --git a/net-vpn/mullvad-netns/mullvad-netns-0.2-r1.ebuild b/net-vpn/mullvad-netns/mullvad-netns-0.2-r1.ebuild new file mode 100644 index 000000000000..ec59c2d1b21b --- /dev/null +++ b/net-vpn/mullvad-netns/mullvad-netns-0.2-r1.ebuild @@ -0,0 +1,34 @@ +# Copyright 2020-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} =~ [9]{4,} ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/chutz/mullvad-netns.git" +else + SRC_URI="https://github.com/chutz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Script to run a command within a Mullvad network namespace" +HOMEPAGE="https://github.com/chutz/mullvad-netns" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND=" + app-misc/jq + app-shells/bash + net-misc/curl[ipv6(+),ssl] + net-vpn/wireguard-tools + sys-apps/baselayout + sys-apps/coreutils + sys-apps/grep + sys-apps/iproute2[ipv6(+)] + sys-apps/util-linux +" +BDEPEND=" + dev-build/make + sys-apps/coreutils +" diff --git a/net-vpn/mullvad-netns/mullvad-netns-0.3-r1.ebuild b/net-vpn/mullvad-netns/mullvad-netns-0.3-r1.ebuild new file mode 100644 index 000000000000..ec59c2d1b21b --- /dev/null +++ b/net-vpn/mullvad-netns/mullvad-netns-0.3-r1.ebuild @@ -0,0 +1,34 @@ +# Copyright 2020-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} =~ [9]{4,} ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/chutz/mullvad-netns.git" +else + SRC_URI="https://github.com/chutz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Script to run a command within a Mullvad network namespace" +HOMEPAGE="https://github.com/chutz/mullvad-netns" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND=" + app-misc/jq + app-shells/bash + net-misc/curl[ipv6(+),ssl] + net-vpn/wireguard-tools + sys-apps/baselayout + sys-apps/coreutils + sys-apps/grep + sys-apps/iproute2[ipv6(+)] + sys-apps/util-linux +" +BDEPEND=" + dev-build/make + sys-apps/coreutils +" diff --git a/net-vpn/mullvad-netns/mullvad-netns-0.4.ebuild b/net-vpn/mullvad-netns/mullvad-netns-0.4.ebuild new file mode 100644 index 000000000000..62270d1cd223 --- /dev/null +++ b/net-vpn/mullvad-netns/mullvad-netns-0.4.ebuild @@ -0,0 +1,34 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} =~ [9]{4,} ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/chutz/mullvad-netns.git" +else + SRC_URI="https://github.com/chutz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Script to run a command within a Mullvad network namespace" +HOMEPAGE="https://github.com/chutz/mullvad-netns" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND=" + app-misc/jq + app-shells/bash + net-misc/curl[ipv6(+),ssl] + net-vpn/wireguard-tools + sys-apps/baselayout + sys-apps/coreutils + sys-apps/grep + sys-apps/iproute2[ipv6(+)] + sys-apps/util-linux +" +BDEPEND=" + dev-build/make + sys-apps/coreutils +" diff --git a/net-vpn/mullvad-netns/mullvad-netns-9999.ebuild b/net-vpn/mullvad-netns/mullvad-netns-9999.ebuild new file mode 100644 index 000000000000..62270d1cd223 --- /dev/null +++ b/net-vpn/mullvad-netns/mullvad-netns-9999.ebuild @@ -0,0 +1,34 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} =~ [9]{4,} ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/chutz/mullvad-netns.git" +else + SRC_URI="https://github.com/chutz/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +DESCRIPTION="Script to run a command within a Mullvad network namespace" +HOMEPAGE="https://github.com/chutz/mullvad-netns" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND=" + app-misc/jq + app-shells/bash + net-misc/curl[ipv6(+),ssl] + net-vpn/wireguard-tools + sys-apps/baselayout + sys-apps/coreutils + sys-apps/grep + sys-apps/iproute2[ipv6(+)] + sys-apps/util-linux +" +BDEPEND=" + dev-build/make + sys-apps/coreutils +" diff --git a/net-vpn/mullvadvpn-app/Manifest b/net-vpn/mullvadvpn-app/Manifest new file mode 100644 index 000000000000..9e7604cf399d --- /dev/null +++ b/net-vpn/mullvadvpn-app/Manifest @@ -0,0 +1,6 @@ +DIST MullvadVPN-2026.2_aarch64.rpm 86648725 BLAKE2B 444f0c0fbacd152f9b9f8370fb9dc6317bd4145cade6f1de80d2ea80f1296a7c3514f850aefbcef1f6393134b40fdcee316d48662db0bc44ef52ca041ac5faf5 SHA512 11466107e37d8fcf4c0b6dec4d10c4adc45f942b0a88e16fc101d47892ccacd4f641f36393b96c88a356638533ce1b9d29119338f0d31d942ad16671fd62d2b8 +DIST MullvadVPN-2026.2_x86_64.rpm 92476557 BLAKE2B a8f8ef36443c6626339f212653a560ca88faf67f46ff3dcd679a9d96fb9cb08e957e6aec706750a13a003dd405ff89375c7f3ca08f8d78ab28746700722b2edc SHA512 8fc1adc375be15a1ae174064adf141b77e5dc74f86b139515b83df22008e9eb5154cdc47a87cdc4401ff068ecdb340030c9ac082b779feb24cbca21393c650c9 +DIST MullvadVPN-2026.3-beta1_aarch64.rpm 86593117 BLAKE2B 3d2e013c2b1e49119f48271006518f243bf72fb7cff3e1b079a37bb1db630edaf39804387ce8db8b6a98f55f89079b990dc56dfacec695a02319c4acea495d70 SHA512 b6ddecaf79f86d4348d7cf9f1268e391c95edf41b410820fc05ecc5c95fe3f1bbbeb893c3c69ed36ed4d3c01207fcad710ae8331f861672ad443e44225863ef7 +DIST MullvadVPN-2026.3-beta1_x86_64.rpm 92416845 BLAKE2B 45ced52c61d304104b47d81271a562085afcbb91a5ea0b7eca9ec5664373f8414d223bf422ba3442266063988ac89070c31c0b9e0a9c7aab8b1793f8ba512def SHA512 eb0cc822df717bf74191801bf34ad24f21061e5e48e85524b3857945e7dc8a755fb69572d5aa90d67ad19d3c05823f5237100c746fca39dbbf0c95efa550f10c +DIST MullvadVPN-2026.3-beta2_aarch64.rpm 86583585 BLAKE2B a66d87100c8a2e649b9469a22a82a9b605b8fe23ef143d1fad046b08d8559e03d2ece03fd79bc981f24992f69bc796d0ba667c8ca0818f268a9dbf9ee9b6bf45 SHA512 b4c452c94f0b5985f0cef751ecdd51a1d08baa0d192ce0acd916d8702540a938371c7b5dae9beee88c5db4f2783560849354cf67776f58037f13f6ade1791fff +DIST MullvadVPN-2026.3-beta2_x86_64.rpm 92396141 BLAKE2B e9e7ba36229e36e9edaad2eae0e82decfa5837ff6d8f397824f0d76d798cbc39453af83d64eb1bc8dfcfe824be53cf6629ae1632f17a59263a4c7ebaee3bfb7e SHA512 f33f6977a0529b7f37270a55d717c4ff70c8a34f3219f627558903ac0c21b2a30cd263c5a922cfeed8355d3ca47c2e49703f7ac71f2733b264ce58149eb3ba80 diff --git a/net-vpn/mullvadvpn-app/files/mullvad-daemon.initd b/net-vpn/mullvadvpn-app/files/mullvad-daemon.initd new file mode 100644 index 000000000000..6a7c96545986 --- /dev/null +++ b/net-vpn/mullvadvpn-app/files/mullvad-daemon.initd @@ -0,0 +1,7 @@ +#!/sbin/openrc-run +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +command="/usr/bin/mullvad-daemon" +pidfile="/run/${RC_SVCNAME}.pid" +command_background=true diff --git a/net-vpn/mullvadvpn-app/metadata.xml b/net-vpn/mullvadvpn-app/metadata.xml new file mode 100644 index 000000000000..025a73cd32c1 --- /dev/null +++ b/net-vpn/mullvadvpn-app/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>itai@itaiferber.net</email> + <name>Itai Ferber</name> + </maintainer> + <upstream> + <remote-id type="github">mullvad/mullvadvpn-app</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.2.ebuild b/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.2.ebuild new file mode 100644 index 000000000000..3407daab5efc --- /dev/null +++ b/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.2.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RPM_COMPRESS_TYPE="xz" +inherit desktop rpm systemd shell-completion xdg + +MYPV="${PV/_beta/-beta}" +DESCRIPTION="Tool used to manage daemon setup" +HOMEPAGE="https://github.com/mullvad/mullvadvpn-app https://mullvad.net/" +SRC_URI=" + amd64? ( https://github.com/mullvad/mullvadvpn-app/releases/download/${MYPV}/MullvadVPN-${MYPV}_x86_64.rpm ) + arm64? ( https://github.com/mullvad/mullvadvpn-app/releases/download/${MYPV}/MullvadVPN-${MYPV}_aarch64.rpm ) +" + +S="${WORKDIR}" +LICENSE="GPL-3" +SLOT="0" + +# Betas are kept unkeyworded; users can opt in to testing by accepting '**' instead of '~amd64'/ +# '~arm64' keywords. +# +# See https://bugs.gentoo.org/966989 +if [[ "${PV}" != *_beta* ]]; then + KEYWORDS="-* ~amd64 ~arm64" +fi + +RESTRICT="bindist mirror strip" + +RDEPEND=" + app-accessibility/at-spi2-core:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/mesa + net-print/cups + sys-apps/dbus + x11-libs/cairo + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon + x11-libs/libXrandr + x11-libs/pango + || ( + net-firewall/nftables + net-firewall/iptables[nftables] + ) +" + +QA_PREBUILT="*" + +src_install() { + sed -i "s|SCRIPT_DIR=.*|SCRIPT_DIR=\"/opt/Mullvad VPN/\"|g" "${S}/opt/Mullvad VPN/mullvad-vpn" || die + + # Using doins -r would strip executable bits from all binaries + cp -pPR opt "${D}"/ || die "Failed to copy files" + fperms +x "/opt/Mullvad VPN/chrome_crashpad_handler" + fperms 4755 "/opt/Mullvad VPN/chrome-sandbox" + + dobin ./usr/bin/mullvad + dobin ./usr/bin/mullvad-daemon + dobin ./usr/bin/mullvad-exclude + dosym -r "/opt/Mullvad VPN/mullvad-vpn" /usr/bin/mullvad-vpn + dosym -r "/opt/Mullvad VPN/resources/mullvad-problem-report" /usr/bin/mullvad-problem-report + + # mullvad-exclude uses cgroups to manage exclusions, which requires root permissions, but is + # also most often used to exclude graphical applications which can't or shouldn't run as root + # (i.e., can't be run under `sudo/doas /usr/bin/mullvad-exclude ...`, because `sudo`/`doas` + # change user). The setuid bit allows any user to exclude executables under their own UID. + fperms 4755 /usr/bin/mullvad-exclude + + newinitd "${FILESDIR}"/mullvad-daemon.initd mullvad-daemon + + systemd_newunit ./usr/lib/systemd/system/mullvad-daemon.service mullvad-daemon.service + systemd_newunit ./usr/lib/systemd/system/mullvad-early-boot-blocking.service mullvad-early-boot-blocking.service + + newbashcomp ./usr/share/bash-completion/completions/mullvad mullvad + newfishcomp ./usr/share/fish/vendor_completions.d/mullvad.fish mullvad + newzshcomp ./usr/share/zsh/site-functions/_mullvad _mullvad + + domenu ./usr/share/applications/mullvad-vpn.desktop + local x + for x in 16 32 48 64 128 256 512 1024; do + doicon -s "${x}" "./usr/share/icons/hicolor/${x}x${x}/apps/mullvad-vpn.png" + done +} + +pkg_postrm() { + xdg_pkg_postrm + + if [[ -z ${REPLACED_BY_VERSION} ]]; then + if ! command -v pgrep &>/dev/null || pgrep -f "mullvad-(daemon|gui)"; then + elog "Mullvad has been uninstalled. To stop the service," + elog "1. Quit the Mullvad app" + elog " * Manually: 'Disconnect & quit' from the Mullvad menu" + elog " OR" + elog " * Command line: pkill -f mullvad-gui" + elog "2. Stop the daemon" + elog " * OpenRC: rc-service mullvad-daemon stop" + elog " OR" + elog " * systemd: systemctl stop mullvad-daemon" + elog " OR" + elog " * other: pkill -f mullvad-daemon" + fi + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ -n ${REPLACING_VERSIONS} ]]; then + if command -v pgrep &>/dev/null && pgrep -f "mullvad-(daemon|gui)" &>/dev/null; then + elog "Mullvad has been updated. To restart the service," + elog "1. Restart the daemon" + elog " * OpenRC: rc-service mullvad-daemon restart" + elog " OR" + elog " * systemd: systemctl restart mullvad-daemon" + elog "2. Restart the app" + elog " * Manually: 'Disconnect & quit' from the Mullvad menu and relaunch using" + elog " your preferred desktop launcher" + elog " OR" + elog " * Command line: pkill -f mullvad-gui && '/opt/Mullvad VPN/mullvad-vpn' & disown" + else + elog "Mullvad has been updated. To start the service," + elog "1. Start the daemon" + elog " * OpenRC: rc-service mullvad-daemon start" + elog " OR" + elog " * systemd: systemctl start mullvad-daemon" + elog "2. Launch the app" + elog " * Manually: use your preferred desktop launcher" + elog " OR" + elog " * Command line: '/opt/Mullvad VPN/mullvad-vpn' & disown" + fi + else + elog "Mullvad has been installed. To start the service," + elog "1. Enable and start the daemon" + elog " * OpenRC: rc-update add mullvad-daemon default" + elog " rc-service mullvad-daemon start" + elog " OR" + elog " * systemd: systemctl enable mullvad-daemon" + elog " systemctl start mullvad-daemon" + elog "2. Launch the app" + elog " * Manually: use your preferred desktop launcher" + elog " OR" + elog " * Command line: '/opt/Mullvad VPN/mullvad-vpn' & disown" + fi +} diff --git a/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.3_beta1.ebuild b/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.3_beta1.ebuild new file mode 100644 index 000000000000..3407daab5efc --- /dev/null +++ b/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.3_beta1.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RPM_COMPRESS_TYPE="xz" +inherit desktop rpm systemd shell-completion xdg + +MYPV="${PV/_beta/-beta}" +DESCRIPTION="Tool used to manage daemon setup" +HOMEPAGE="https://github.com/mullvad/mullvadvpn-app https://mullvad.net/" +SRC_URI=" + amd64? ( https://github.com/mullvad/mullvadvpn-app/releases/download/${MYPV}/MullvadVPN-${MYPV}_x86_64.rpm ) + arm64? ( https://github.com/mullvad/mullvadvpn-app/releases/download/${MYPV}/MullvadVPN-${MYPV}_aarch64.rpm ) +" + +S="${WORKDIR}" +LICENSE="GPL-3" +SLOT="0" + +# Betas are kept unkeyworded; users can opt in to testing by accepting '**' instead of '~amd64'/ +# '~arm64' keywords. +# +# See https://bugs.gentoo.org/966989 +if [[ "${PV}" != *_beta* ]]; then + KEYWORDS="-* ~amd64 ~arm64" +fi + +RESTRICT="bindist mirror strip" + +RDEPEND=" + app-accessibility/at-spi2-core:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/mesa + net-print/cups + sys-apps/dbus + x11-libs/cairo + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon + x11-libs/libXrandr + x11-libs/pango + || ( + net-firewall/nftables + net-firewall/iptables[nftables] + ) +" + +QA_PREBUILT="*" + +src_install() { + sed -i "s|SCRIPT_DIR=.*|SCRIPT_DIR=\"/opt/Mullvad VPN/\"|g" "${S}/opt/Mullvad VPN/mullvad-vpn" || die + + # Using doins -r would strip executable bits from all binaries + cp -pPR opt "${D}"/ || die "Failed to copy files" + fperms +x "/opt/Mullvad VPN/chrome_crashpad_handler" + fperms 4755 "/opt/Mullvad VPN/chrome-sandbox" + + dobin ./usr/bin/mullvad + dobin ./usr/bin/mullvad-daemon + dobin ./usr/bin/mullvad-exclude + dosym -r "/opt/Mullvad VPN/mullvad-vpn" /usr/bin/mullvad-vpn + dosym -r "/opt/Mullvad VPN/resources/mullvad-problem-report" /usr/bin/mullvad-problem-report + + # mullvad-exclude uses cgroups to manage exclusions, which requires root permissions, but is + # also most often used to exclude graphical applications which can't or shouldn't run as root + # (i.e., can't be run under `sudo/doas /usr/bin/mullvad-exclude ...`, because `sudo`/`doas` + # change user). The setuid bit allows any user to exclude executables under their own UID. + fperms 4755 /usr/bin/mullvad-exclude + + newinitd "${FILESDIR}"/mullvad-daemon.initd mullvad-daemon + + systemd_newunit ./usr/lib/systemd/system/mullvad-daemon.service mullvad-daemon.service + systemd_newunit ./usr/lib/systemd/system/mullvad-early-boot-blocking.service mullvad-early-boot-blocking.service + + newbashcomp ./usr/share/bash-completion/completions/mullvad mullvad + newfishcomp ./usr/share/fish/vendor_completions.d/mullvad.fish mullvad + newzshcomp ./usr/share/zsh/site-functions/_mullvad _mullvad + + domenu ./usr/share/applications/mullvad-vpn.desktop + local x + for x in 16 32 48 64 128 256 512 1024; do + doicon -s "${x}" "./usr/share/icons/hicolor/${x}x${x}/apps/mullvad-vpn.png" + done +} + +pkg_postrm() { + xdg_pkg_postrm + + if [[ -z ${REPLACED_BY_VERSION} ]]; then + if ! command -v pgrep &>/dev/null || pgrep -f "mullvad-(daemon|gui)"; then + elog "Mullvad has been uninstalled. To stop the service," + elog "1. Quit the Mullvad app" + elog " * Manually: 'Disconnect & quit' from the Mullvad menu" + elog " OR" + elog " * Command line: pkill -f mullvad-gui" + elog "2. Stop the daemon" + elog " * OpenRC: rc-service mullvad-daemon stop" + elog " OR" + elog " * systemd: systemctl stop mullvad-daemon" + elog " OR" + elog " * other: pkill -f mullvad-daemon" + fi + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ -n ${REPLACING_VERSIONS} ]]; then + if command -v pgrep &>/dev/null && pgrep -f "mullvad-(daemon|gui)" &>/dev/null; then + elog "Mullvad has been updated. To restart the service," + elog "1. Restart the daemon" + elog " * OpenRC: rc-service mullvad-daemon restart" + elog " OR" + elog " * systemd: systemctl restart mullvad-daemon" + elog "2. Restart the app" + elog " * Manually: 'Disconnect & quit' from the Mullvad menu and relaunch using" + elog " your preferred desktop launcher" + elog " OR" + elog " * Command line: pkill -f mullvad-gui && '/opt/Mullvad VPN/mullvad-vpn' & disown" + else + elog "Mullvad has been updated. To start the service," + elog "1. Start the daemon" + elog " * OpenRC: rc-service mullvad-daemon start" + elog " OR" + elog " * systemd: systemctl start mullvad-daemon" + elog "2. Launch the app" + elog " * Manually: use your preferred desktop launcher" + elog " OR" + elog " * Command line: '/opt/Mullvad VPN/mullvad-vpn' & disown" + fi + else + elog "Mullvad has been installed. To start the service," + elog "1. Enable and start the daemon" + elog " * OpenRC: rc-update add mullvad-daemon default" + elog " rc-service mullvad-daemon start" + elog " OR" + elog " * systemd: systemctl enable mullvad-daemon" + elog " systemctl start mullvad-daemon" + elog "2. Launch the app" + elog " * Manually: use your preferred desktop launcher" + elog " OR" + elog " * Command line: '/opt/Mullvad VPN/mullvad-vpn' & disown" + fi +} diff --git a/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.3_beta2.ebuild b/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.3_beta2.ebuild new file mode 100644 index 000000000000..3407daab5efc --- /dev/null +++ b/net-vpn/mullvadvpn-app/mullvadvpn-app-2026.3_beta2.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RPM_COMPRESS_TYPE="xz" +inherit desktop rpm systemd shell-completion xdg + +MYPV="${PV/_beta/-beta}" +DESCRIPTION="Tool used to manage daemon setup" +HOMEPAGE="https://github.com/mullvad/mullvadvpn-app https://mullvad.net/" +SRC_URI=" + amd64? ( https://github.com/mullvad/mullvadvpn-app/releases/download/${MYPV}/MullvadVPN-${MYPV}_x86_64.rpm ) + arm64? ( https://github.com/mullvad/mullvadvpn-app/releases/download/${MYPV}/MullvadVPN-${MYPV}_aarch64.rpm ) +" + +S="${WORKDIR}" +LICENSE="GPL-3" +SLOT="0" + +# Betas are kept unkeyworded; users can opt in to testing by accepting '**' instead of '~amd64'/ +# '~arm64' keywords. +# +# See https://bugs.gentoo.org/966989 +if [[ "${PV}" != *_beta* ]]; then + KEYWORDS="-* ~amd64 ~arm64" +fi + +RESTRICT="bindist mirror strip" + +RDEPEND=" + app-accessibility/at-spi2-core:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/mesa + net-print/cups + sys-apps/dbus + x11-libs/cairo + x11-libs/gtk+:3 + x11-libs/libdrm + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libxkbcommon + x11-libs/libXrandr + x11-libs/pango + || ( + net-firewall/nftables + net-firewall/iptables[nftables] + ) +" + +QA_PREBUILT="*" + +src_install() { + sed -i "s|SCRIPT_DIR=.*|SCRIPT_DIR=\"/opt/Mullvad VPN/\"|g" "${S}/opt/Mullvad VPN/mullvad-vpn" || die + + # Using doins -r would strip executable bits from all binaries + cp -pPR opt "${D}"/ || die "Failed to copy files" + fperms +x "/opt/Mullvad VPN/chrome_crashpad_handler" + fperms 4755 "/opt/Mullvad VPN/chrome-sandbox" + + dobin ./usr/bin/mullvad + dobin ./usr/bin/mullvad-daemon + dobin ./usr/bin/mullvad-exclude + dosym -r "/opt/Mullvad VPN/mullvad-vpn" /usr/bin/mullvad-vpn + dosym -r "/opt/Mullvad VPN/resources/mullvad-problem-report" /usr/bin/mullvad-problem-report + + # mullvad-exclude uses cgroups to manage exclusions, which requires root permissions, but is + # also most often used to exclude graphical applications which can't or shouldn't run as root + # (i.e., can't be run under `sudo/doas /usr/bin/mullvad-exclude ...`, because `sudo`/`doas` + # change user). The setuid bit allows any user to exclude executables under their own UID. + fperms 4755 /usr/bin/mullvad-exclude + + newinitd "${FILESDIR}"/mullvad-daemon.initd mullvad-daemon + + systemd_newunit ./usr/lib/systemd/system/mullvad-daemon.service mullvad-daemon.service + systemd_newunit ./usr/lib/systemd/system/mullvad-early-boot-blocking.service mullvad-early-boot-blocking.service + + newbashcomp ./usr/share/bash-completion/completions/mullvad mullvad + newfishcomp ./usr/share/fish/vendor_completions.d/mullvad.fish mullvad + newzshcomp ./usr/share/zsh/site-functions/_mullvad _mullvad + + domenu ./usr/share/applications/mullvad-vpn.desktop + local x + for x in 16 32 48 64 128 256 512 1024; do + doicon -s "${x}" "./usr/share/icons/hicolor/${x}x${x}/apps/mullvad-vpn.png" + done +} + +pkg_postrm() { + xdg_pkg_postrm + + if [[ -z ${REPLACED_BY_VERSION} ]]; then + if ! command -v pgrep &>/dev/null || pgrep -f "mullvad-(daemon|gui)"; then + elog "Mullvad has been uninstalled. To stop the service," + elog "1. Quit the Mullvad app" + elog " * Manually: 'Disconnect & quit' from the Mullvad menu" + elog " OR" + elog " * Command line: pkill -f mullvad-gui" + elog "2. Stop the daemon" + elog " * OpenRC: rc-service mullvad-daemon stop" + elog " OR" + elog " * systemd: systemctl stop mullvad-daemon" + elog " OR" + elog " * other: pkill -f mullvad-daemon" + fi + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ -n ${REPLACING_VERSIONS} ]]; then + if command -v pgrep &>/dev/null && pgrep -f "mullvad-(daemon|gui)" &>/dev/null; then + elog "Mullvad has been updated. To restart the service," + elog "1. Restart the daemon" + elog " * OpenRC: rc-service mullvad-daemon restart" + elog " OR" + elog " * systemd: systemctl restart mullvad-daemon" + elog "2. Restart the app" + elog " * Manually: 'Disconnect & quit' from the Mullvad menu and relaunch using" + elog " your preferred desktop launcher" + elog " OR" + elog " * Command line: pkill -f mullvad-gui && '/opt/Mullvad VPN/mullvad-vpn' & disown" + else + elog "Mullvad has been updated. To start the service," + elog "1. Start the daemon" + elog " * OpenRC: rc-service mullvad-daemon start" + elog " OR" + elog " * systemd: systemctl start mullvad-daemon" + elog "2. Launch the app" + elog " * Manually: use your preferred desktop launcher" + elog " OR" + elog " * Command line: '/opt/Mullvad VPN/mullvad-vpn' & disown" + fi + else + elog "Mullvad has been installed. To start the service," + elog "1. Enable and start the daemon" + elog " * OpenRC: rc-update add mullvad-daemon default" + elog " rc-service mullvad-daemon start" + elog " OR" + elog " * systemd: systemctl enable mullvad-daemon" + elog " systemctl start mullvad-daemon" + elog "2. Launch the app" + elog " * Manually: use your preferred desktop launcher" + elog " OR" + elog " * Command line: '/opt/Mullvad VPN/mullvad-vpn' & disown" + fi +} diff --git a/net-vpn/networkmanager-fortisslvpn/Manifest b/net-vpn/networkmanager-fortisslvpn/Manifest new file mode 100644 index 000000000000..b35f7e47af91 --- /dev/null +++ b/net-vpn/networkmanager-fortisslvpn/Manifest @@ -0,0 +1 @@ +DIST NetworkManager-fortisslvpn-1.4.0.tar.xz 381964 BLAKE2B 11cbcd0077a6636feaf04fc191bb78b269f1fcb13ae5ebc3f2d1fe239570e9955406b5f2ff76f6ea0f297e3425e6dac816a0a79f2c2a0723bae51e9fe42fa34d SHA512 94e96f204262825f3d525c96b5f135b31d9a3bb382bd2baf3fafdceb08768321331d4bd4f6af8879a8818e3bad854cdf057c9915e0ac9aee09d17e83b9d12d54 diff --git a/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch new file mode 100644 index 000000000000..15d26822b71c --- /dev/null +++ b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-1.patch @@ -0,0 +1,307 @@ +https://bugs.gentoo.org/904842 +https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/commit/084ef529c5fb816927ca54866f66b340265aa9f6 + +From 084ef529c5fb816927ca54866f66b340265aa9f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com> +Date: Sat, 4 Mar 2023 21:20:43 +0000 +Subject: [PATCH] Adding support for compiling against pppd-2.5.0 (or master + branch) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Eivind Næss <eivnaes@yahoo.com> +--- + Makefile.am | 5 +- + configure.ac | 37 +++++++- + src/nm-fortisslvpn-pppd-compat.h | 93 +++++++++++++++++++ + src/nm-fortisslvpn-pppd-plugin.c | 24 ++--- + ...-status.h => nm-fortisslvpn-pppd-status.h} | 0 + src/nm-fortisslvpn-service.c | 2 +- + 6 files changed, 145 insertions(+), 16 deletions(-) + create mode 100644 src/nm-fortisslvpn-pppd-compat.h + rename src/{nm-ppp-status.h => nm-fortisslvpn-pppd-status.h} (100%) + +diff --git a/Makefile.am b/Makefile.am +index b2e5533..e1e5ec9 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -81,7 +81,7 @@ libexec_PROGRAMS += src/nm-fortisslvpn-service + src_nm_fortisslvpn_service_SOURCES = \ + shared/nm-utils/nm-shared-utils.c \ + shared/nm-utils/nm-shared-utils.h \ +- src/nm-ppp-status.h \ ++ src/nm-fortisslvpn-pppd-status.h \ + src/nm-fortisslvpn-service.h \ + src/nm-fortisslvpn-service.c \ + shared/nm-fortissl-properties.c \ +@@ -106,7 +106,8 @@ src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \ + shared/nm-utils/nm-shared-utils.c \ + shared/nm-utils/nm-shared-utils.h \ + src/nm-fortisslvpn-pppd-plugin.c \ +- src/nm-ppp-status.h ++ src/nm-fortisslvpn-pppd-compat.h \ ++ src/nm-fortisslvpn-pppd-status.h + nodist_src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \ + src/nm-fortisslvpn-pppd-service-dbus.h + src_nm_fortisslvpn_pppd_plugin_la_CPPFLAGS = $(src_cppflags) +diff --git a/configure.ac b/configure.ac +index a998707..877493e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,7 +19,10 @@ AC_PROG_CC + AM_PROG_CC_C_O + AC_PROG_INSTALL + AC_PROG_LIBTOOL ++AC_PROG_CPP ++AC_PROG_EGREP + AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources) ++PKG_PROG_PKG_CONFIG() + + AC_GNU_SOURCE + +@@ -37,20 +40,50 @@ dnl + dnl Required headers + dnl + AC_HEADER_STDC +-AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h) ++AC_CHECK_HEADERS(fcntl.h paths.h stdarg.h stdbool.h sys/ioctl.h sys/time.h syslog.h unistd.h) + + AC_CHECK_HEADERS(pppd/pppd.h,, + AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.)) + ++dnl ++dnl Check the presense of other pppd/*.h files ++AC_CHECK_HEADERS([ ++ pppd/chap.h ++ pppd/chap-new.h ++ pppd/chap_ms.h ++ ]) ++ ++dnl ++dnl Versions >= 2.5.0 will have pkg-config support ++PKG_CHECK_EXISTS([pppd], ++ [AS_VAR_SET([pppd_pkgconfig_support],[yes])]) ++ ++dnl ++dnl Get the version of pppd using pkg-config, assume 2.4.9 if not present ++PPPD_VERSION=2.4.5 ++if test x"$pppd_pkgconfig_support" = xyes; then ++ PPPD_VERSION=`$PKG_CONFIG --modversion pppd` ++fi ++ ++ + AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory])) + + if test -n "$with_pppd_plugin_dir" ; then + PPPD_PLUGIN_DIR="$with_pppd_plugin_dir" + else +- PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5" ++ PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION" + fi + AC_SUBST(PPPD_PLUGIN_DIR) + ++dnl The version of pppd dictates what code can be included, i.e. enable use of ++dnl #if WITH_PPP_VERSION >= PPP_VERSION(2,5,0) in the code ++AC_DEFINE_UNQUOTED([PPP_VERSION(x,y,z)], ++ [((x & 0xFF) << 16 | (y & 0xFF) << 8 | (z & 0xFF) << 0)], ++ [Macro to help determine the particular version of pppd]) ++PPP_VERSION=$(echo $PPPD_VERSION | sed -e "s/\./\,/g") ++AC_DEFINE_UNQUOTED(WITH_PPP_VERSION, PPP_VERSION($PPP_VERSION), ++ [The real version of pppd represented as an int]) ++ + dnl + dnl Checks for typedefs, structures, and compiler characteristics. + dnl +diff --git a/src/nm-fortisslvpn-pppd-compat.h b/src/nm-fortisslvpn-pppd-compat.h +new file mode 100644 +index 0000000..9a02908 +--- /dev/null ++++ b/src/nm-fortisslvpn-pppd-compat.h +@@ -0,0 +1,93 @@ ++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ ++/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager ++ * ++ * Copyright (C) Eivind Næss, eivnaes@yahoo.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#ifndef __NM_FORTISSLVPN_PPPD_COMPAT_H__ ++#define __NM_FORTISSLVPN_PPPD_COMPAT_H__ ++ ++#define INET6 1 ++ ++// PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define. ++// this silly macro magic is to work around that. ++ ++#undef VERSION ++#include <pppd/pppd.h> ++ ++#ifndef PPPD_VERSION ++#define PPPD_VERSION VERSION ++#endif ++ ++#include <pppd/fsm.h> ++#include <pppd/ccp.h> ++#include <pppd/eui64.h> ++#include <pppd/ipcp.h> ++#include <pppd/ipv6cp.h> ++#include <pppd/eap.h> ++#include <pppd/upap.h> ++ ++#ifdef HAVE_PPPD_CHAP_H ++ #include <pppd/chap.h> ++#endif ++ ++#ifdef HAVE_PPPD_CHAP_NEW_H ++ #include <pppd/chap-new.h> ++#endif ++ ++#ifdef HAVE_PPPD_CHAP_MS_H ++ #include <pppd/chap_ms.h> ++#endif ++ ++#ifndef PPP_PROTO_CHAP ++#define PPP_PROTO_CHAP 0xc223 ++#endif ++ ++#ifndef PPP_PROTO_EAP ++#define PPP_PROTO_EAP 0xc227 ++#endif ++ ++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0) ++ ++static inline bool debug_on(void) ++{ ++ return debug; ++} ++ ++static inline const char *ppp_ipparam(void) ++{ ++ return ipparam; ++} ++ ++static inline int ppp_ifunit(void) ++{ ++ return ifunit; ++} ++ ++static inline const char *ppp_ifname(void) ++{ ++ return ifname; ++} ++ ++static inline int ppp_get_mtu(int idx) ++{ ++ return netif_get_mtu(idx); ++} ++ ++#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) ++#endif // #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__ +diff --git a/src/nm-fortisslvpn-pppd-plugin.c b/src/nm-fortisslvpn-pppd-plugin.c +index f2ad262..c2efb9a 100644 +--- a/src/nm-fortisslvpn-pppd-plugin.c ++++ b/src/nm-fortisslvpn-pppd-plugin.c +@@ -23,12 +23,6 @@ + #define ___CONFIG_H__ + #include <config.h> + +-#include <pppd/pppd.h> +-#include <pppd/fsm.h> +-#include <pppd/ipcp.h> +- +-#include "nm-default.h" +- + #include <sys/types.h> + #include <string.h> + #include <sys/socket.h> +@@ -42,10 +36,12 @@ + #include <grp.h> + #include <glib/gstdio.h> + ++#include "nm-fortisslvpn-pppd-status.h" ++#include "nm-fortisslvpn-pppd-compat.h" + #include "nm-fortisslvpn-pppd-service-dbus.h" +-#include "nm-fortisslvpn-service.h" +-#include "nm-ppp-status.h" + ++#include "nm-default.h" ++#include "nm-fortisslvpn-service.h" + #include "nm-utils/nm-shared-utils.h" + #include "nm-utils/nm-vpn-plugin-macros.h" + +@@ -80,7 +76,7 @@ static struct { + + int plugin_init (void); + +-char pppd_version[] = VERSION; ++char pppd_version[] = PPPD_VERSION; + + static void + chroot_sandbox (void) +@@ -296,7 +292,7 @@ get_ip4_routes (in_addr_t ouraddr) + static void + nm_ip_up (void *data, int arg) + { +- guint32 pppd_made_up_address = htonl (0x0a404040 + ifunit); ++ guint32 pppd_made_up_address = htonl (0x0a404040 + ppp_ifunit()); + ipcp_options opts = ipcp_gotoptions[0]; + ipcp_options peer_opts = ipcp_hisoptions[0]; + GVariantBuilder builder; +@@ -317,7 +313,7 @@ nm_ip_up (void *data, int arg) + + g_variant_builder_add (&builder, "{sv}", + NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV, +- g_variant_new_string (ifname)); ++ g_variant_new_string (ppp_ifname())); + + str = g_getenv ("VPN_GATEWAY"); + if (str) { +@@ -442,8 +438,14 @@ plugin_init (void) + return -1; + } + ++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0) + add_notifier (&phasechange, nm_phasechange, NULL); + add_notifier (&ip_up_notifier, nm_ip_up, NULL); + add_notifier (&exitnotify, nm_exit_notify, NULL); ++#else ++ ppp_add_notify (NF_PHASE_CHANGE, nm_phasechange, NULL); ++ ppp_add_notify (NF_IP_UP, nm_ip_up, NULL); ++ ppp_add_notify (NF_EXIT, nm_exit_notify, NULL); ++#endif + return 0; + } +diff --git a/src/nm-ppp-status.h b/src/nm-fortisslvpn-pppd-status.h +similarity index 100% +rename from src/nm-ppp-status.h +rename to src/nm-fortisslvpn-pppd-status.h +diff --git a/src/nm-fortisslvpn-service.c b/src/nm-fortisslvpn-service.c +index 6c340d0..a8483c2 100644 +--- a/src/nm-fortisslvpn-service.c ++++ b/src/nm-fortisslvpn-service.c +@@ -40,7 +40,7 @@ + #include <glib/gstdio.h> + + #include "nm-fortissl-properties.h" +-#include "nm-ppp-status.h" ++#include "nm-fortisslvpn-pppd-status.h" + #include "nm-fortisslvpn-pppd-service-dbus.h" + #include "nm-utils/nm-shared-utils.h" + #include "nm-utils/nm-vpn-plugin-macros.h" +-- +GitLab diff --git a/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch new file mode 100644 index 000000000000..d322ba4bfe9f --- /dev/null +++ b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-2.patch @@ -0,0 +1,35 @@ +https://bugs.gentoo.org/904842 +https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/commit/8773f772d39f8eee6edc1fd2e5437c754ed41e1e + +From 8773f772d39f8eee6edc1fd2e5437c754ed41e1e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com> +Date: Sat, 4 Mar 2023 21:29:54 +0000 +Subject: [PATCH] Fixing configure.ac from previous change +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Eivind Næss <eivnaes@yahoo.com> +--- + configure.ac | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 877493e..a5b4abb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -47,11 +47,7 @@ AC_CHECK_HEADERS(pppd/pppd.h,, + + dnl + dnl Check the presense of other pppd/*.h files +-AC_CHECK_HEADERS([ +- pppd/chap.h +- pppd/chap-new.h +- pppd/chap_ms.h +- ]) ++AC_CHECK_HEADERS(pppd/chap.h pppd/chap-new.h pppd/chap_ms.h) + + dnl + dnl Versions >= 2.5.0 will have pkg-config support +-- +GitLab diff --git a/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch new file mode 100644 index 000000000000..441b8e103398 --- /dev/null +++ b/net-vpn/networkmanager-fortisslvpn/files/networkmanager-fortisslvpn-1.4.0-ppp-2.5.0-3.patch @@ -0,0 +1,200 @@ +https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/merge_requests/27 +https://bugs.gentoo.org/904842 + +From d59819b5d26db44f51bfbb76be3b373c419e408d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com> +Date: Wed, 8 Mar 2023 04:30:13 +0000 +Subject: [PATCH] Improve compatibility with pppd-2.5.0 release + +This allows compiling against the older pppd 2.4 series while still +using the new API in the plugin code. It does so by adding a static +inline function ppp_add_notify(). + +Additional formatting changes to the nm-fortisslvpn-pppd-compat.h based +on review from Lubomir. +--- + src/nm-fortisslvpn-pppd-compat.h | 112 ++++++++++++++++++++----------- + src/nm-fortisslvpn-pppd-plugin.c | 6 -- + 2 files changed, 71 insertions(+), 47 deletions(-) + +diff --git a/src/nm-fortisslvpn-pppd-compat.h b/src/nm-fortisslvpn-pppd-compat.h +index 9a02908..5d2d02a 100644 +--- a/src/nm-fortisslvpn-pppd-compat.h ++++ b/src/nm-fortisslvpn-pppd-compat.h +@@ -1,32 +1,15 @@ +-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +-/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager +- * +- * Copyright (C) Eivind Næss, eivnaes@yahoo.com +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License along +- * with this program; if not, write to the Free Software Foundation, Inc., +- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- */ ++/* Copyright (C) 2023 Eivind Naess, eivnaes@yahoo.com */ ++/* SPDX-License-Identifier: GPL-2.0-or-later */ + + #ifndef __NM_FORTISSLVPN_PPPD_COMPAT_H__ + #define __NM_FORTISSLVPN_PPPD_COMPAT_H__ + +-#define INET6 1 +- +-// PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define. +-// this silly macro magic is to work around that. ++/* Define INET6 to compile with IPv6 support against older pppd headers, ++ * pppd >= 2.5.0 use WITH_PPP_IPV6 and is defined in pppdconf.h */ ++#define INET6 1 + ++/* PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define. ++ * this silly macro magic is to work around that. */ + #undef VERSION + #include <pppd/pppd.h> + +@@ -43,51 +26,98 @@ + #include <pppd/upap.h> + + #ifdef HAVE_PPPD_CHAP_H +- #include <pppd/chap.h> ++#include <pppd/chap.h> + #endif + + #ifdef HAVE_PPPD_CHAP_NEW_H +- #include <pppd/chap-new.h> ++#include <pppd/chap-new.h> + #endif + + #ifdef HAVE_PPPD_CHAP_MS_H +- #include <pppd/chap_ms.h> ++#include <pppd/chap_ms.h> + #endif + + #ifndef PPP_PROTO_CHAP +-#define PPP_PROTO_CHAP 0xc223 ++#define PPP_PROTO_CHAP 0xc223 + #endif + + #ifndef PPP_PROTO_EAP +-#define PPP_PROTO_EAP 0xc227 ++#define PPP_PROTO_EAP 0xc227 + #endif + ++ + #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) + +-static inline bool debug_on(void) ++static inline bool ++debug_on (void) ++{ ++ return debug; ++} ++ ++static inline const char ++*ppp_ipparam (void) + { +- return debug; ++ return ipparam; + } + +-static inline const char *ppp_ipparam(void) ++static inline int ++ppp_ifunit (void) + { +- return ipparam; ++ return ifunit; + } + +-static inline int ppp_ifunit(void) ++static inline const char * ++ppp_ifname (void) + { +- return ifunit; ++ return ifname; + } + +-static inline const char *ppp_ifname(void) ++static inline int ++ppp_get_mtu (int idx) + { +- return ifname; ++ return netif_get_mtu(idx); + } + +-static inline int ppp_get_mtu(int idx) ++typedef enum ppp_notify ++{ ++ NF_PID_CHANGE, ++ NF_PHASE_CHANGE, ++ NF_EXIT, ++ NF_SIGNALED, ++ NF_IP_UP, ++ NF_IP_DOWN, ++ NF_IPV6_UP, ++ NF_IPV6_DOWN, ++ NF_AUTH_UP, ++ NF_LINK_DOWN, ++ NF_FORK, ++ NF_MAX_NOTIFY ++} ppp_notify_t; ++ ++typedef void (ppp_notify_fn) (void *ctx, int arg); ++ ++static inline void ++ppp_add_notify (ppp_notify_t type, ppp_notify_fn *func, void *ctx) + { +- return netif_get_mtu(idx); ++ struct notifier **list[NF_MAX_NOTIFY] = { ++ [NF_PID_CHANGE ] = &pidchange, ++ [NF_PHASE_CHANGE] = &phasechange, ++ [NF_EXIT ] = &exitnotify, ++ [NF_SIGNALED ] = &sigreceived, ++ [NF_IP_UP ] = &ip_up_notifier, ++ [NF_IP_DOWN ] = &ip_down_notifier, ++ [NF_IPV6_UP ] = &ipv6_up_notifier, ++ [NF_IPV6_DOWN ] = &ipv6_down_notifier, ++ [NF_AUTH_UP ] = &auth_up_notifier, ++ [NF_LINK_DOWN ] = &link_down_notifier, ++ [NF_FORK ] = &fork_notifier, ++ }; ++ ++ struct notifier **notify = list[type]; ++ if (notify) { ++ add_notifier(notify, func, ctx); ++ } + } + +-#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) +-#endif // #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__ ++#endif /* #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) */ ++#endif /* #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__ */ +diff --git a/src/nm-fortisslvpn-pppd-plugin.c b/src/nm-fortisslvpn-pppd-plugin.c +index c2efb9a..0f1c687 100644 +--- a/src/nm-fortisslvpn-pppd-plugin.c ++++ b/src/nm-fortisslvpn-pppd-plugin.c +@@ -438,14 +438,8 @@ plugin_init (void) + return -1; + } + +-#if WITH_PPP_VERSION < PPP_VERSION(2,5,0) +- add_notifier (&phasechange, nm_phasechange, NULL); +- add_notifier (&ip_up_notifier, nm_ip_up, NULL); +- add_notifier (&exitnotify, nm_exit_notify, NULL); +-#else + ppp_add_notify (NF_PHASE_CHANGE, nm_phasechange, NULL); + ppp_add_notify (NF_IP_UP, nm_ip_up, NULL); + ppp_add_notify (NF_EXIT, nm_exit_notify, NULL); +-#endif + return 0; + } +-- +GitLab diff --git a/net-vpn/networkmanager-fortisslvpn/metadata.xml b/net-vpn/networkmanager-fortisslvpn/metadata.xml new file mode 100644 index 000000000000..503689e25054 --- /dev/null +++ b/net-vpn/networkmanager-fortisslvpn/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="gnome-gitlab">GNOME/NetworkManager-fortisslvpn</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild b/net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild new file mode 100644 index 000000000000..af2295e033e3 --- /dev/null +++ b/net-vpn/networkmanager-fortisslvpn/networkmanager-fortisslvpn-1.4.0-r2.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" +GNOME2_LA_PUNT="yes" +GNOME2_EAUTORECONF="yes" + +inherit gnome2 + +DESCRIPTION="NetworkManager Fortinet SSLVPN compatible plugin" +HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64" +IUSE="gtk" + +DEPEND=" + >=dev-libs/glib-2.32:2 + >=net-misc/networkmanager-1.2:= + gtk? ( + >=app-crypt/libsecret-0.18 + gui-libs/gtk:4 + media-libs/harfbuzz + >=net-libs/libnma-1.2.0 + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/pango + ) +" +RDEPEND="${RDEPEND} + net-dialup/ppp:= + >=net-vpn/openfortivpn-1.2.0" +BDEPEND=">=dev-util/gdbus-codegen-2.80.5-r1 + >=sys-devel/gettext-0.19 + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.4.0-ppp-2.5.0-{1,2,3}.patch +) + +src_prepare() { + # Fix deprecated location, #709450 + sed -i 's|/appdata|/metainfo|g' Makefile.{in,am} || die + + gnome2_src_prepare +} + +src_configure() { + CONFIG_SHELL="${BROOT}"/bin/bash gnome2_src_configure \ + --disable-static \ + --with-dist-version=Gentoo \ + --localstatedir=/var \ + $(use_with gtk gnome) \ + $(use_with gtk gtk4) \ + --without-libnm-glib +} diff --git a/net-vpn/networkmanager-l2tp/Manifest b/net-vpn/networkmanager-l2tp/Manifest new file mode 100644 index 000000000000..99ecf10aa4a2 --- /dev/null +++ b/net-vpn/networkmanager-l2tp/Manifest @@ -0,0 +1 @@ +DIST NetworkManager-l2tp-1.20.16.tar.xz 498140 BLAKE2B 0990a2b8a99e602302725f81e08a134779df1e0fbccd96cf2b7626c112578bb8ff8a4421d2641ec659a11482d20ade3fee87fc0c32acbf7bc3d598507a4640ef SHA512 d1a8364bae0116d556e1b554846df4efa415c0b84fa667181daae50ea706f7f62fa016290c35985667e9bda7ac237198575083dc816c05f16d6ac997da02aa7d diff --git a/net-vpn/networkmanager-l2tp/metadata.xml b/net-vpn/networkmanager-l2tp/metadata.xml new file mode 100644 index 000000000000..91f2308de55f --- /dev/null +++ b/net-vpn/networkmanager-l2tp/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="github">nm-l2tp/NetworkManager-l2tp</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.16-r1.ebuild b/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.16-r1.ebuild new file mode 100644 index 000000000000..4c42054c7946 --- /dev/null +++ b/net-vpn/networkmanager-l2tp/networkmanager-l2tp-1.20.16-r1.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="NetworkManager-l2tp" +MY_P="${MY_PN}-${PV}" +inherit gnome.org + +DESCRIPTION="NetworkManager L2TP plugin" +HOMEPAGE="https://github.com/nm-l2tp/NetworkManager-l2tp" +SRC_URI="https://github.com/nm-l2tp/${MY_PN}/releases/download/${PV}/${MY_P}.tar.xz" + +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="gtk" + +COMMON_DEPEND="dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + dev-libs/openssl:= + net-dialup/ppp:=[eap-tls(+)] + net-dialup/xl2tpd + >=net-misc/networkmanager-1.20[ppp] + || ( + net-vpn/strongswan + net-vpn/libreswan + ) + gtk? ( + app-crypt/libsecret + gnome-extra/nm-applet + media-libs/harfbuzz:= + net-libs/libnma + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/pango + )" +DEPEND="${COMMON_DEPEND} + x11-base/xorg-proto" +RDEPEND="${COMMON_DEPEND}" +BDEPEND=">=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/intltool + sys-devel/gettext + virtual/pkgconfig" + +src_configure() { + local PPPD_VER=$(best_version net-dialup/ppp) + PPPD_VER=${PPPD_VER#*/*-} # reduce it to ${PV}-${PR} + PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision + + local myeconfargs=( + --localstatedir=/var + --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER} + $(use_with gtk gnome) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} diff --git a/net-vpn/networkmanager-libreswan/Manifest b/net-vpn/networkmanager-libreswan/Manifest new file mode 100644 index 000000000000..1bc3aff1f1f2 --- /dev/null +++ b/net-vpn/networkmanager-libreswan/Manifest @@ -0,0 +1 @@ +DIST NetworkManager-libreswan-1.2.24.tar.xz 432692 BLAKE2B c0f4777c0fbfae58fda3d43321375d76eaa2a56cb63262535f98969f69c1be6456c6fbad5db07346018eeccc0d4364945eb8a19861b809643071aa9f34cfeeaf SHA512 8b7c8d7736b3ffcb27d6e28c9073f0cad5098decc41342643dd7392c361a7d2664bdac17ca895b14c9b224d330637d4f5d095f242b06e3d312b00803993c6e5c diff --git a/net-vpn/networkmanager-libreswan/metadata.xml b/net-vpn/networkmanager-libreswan/metadata.xml new file mode 100644 index 000000000000..115e9d64a669 --- /dev/null +++ b/net-vpn/networkmanager-libreswan/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> +</pkgmetadata> diff --git a/net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.24.ebuild b/net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.24.ebuild new file mode 100644 index 000000000000..a0d7b2c0d812 --- /dev/null +++ b/net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.24.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" + +inherit gnome2 + +DESCRIPTION="NetworkManager libreswan plugin" +HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager/VPN" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="gtk" + +RDEPEND=" + >=dev-libs/glib-2.36:2 + >=dev-libs/libnl-3.2.8:3 + >=net-misc/networkmanager-1.2.0:= + net-vpn/libreswan + gtk? ( + app-crypt/libsecret + + >=x11-libs/gtk+-3.4:3 + + >=gui-libs/gtk-4.0:4 + >=gnome-extra/nm-applet-1.2.0 + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + sys-devel/gettext + dev-util/intltool + virtual/pkgconfig +" + +src_configure() { + local myconf=( + --disable-more-warnings + --disable-static + --with-dist-version=Gentoo + $(use_with gtk gnome) + $(use_with gtk gtk4) + ) + gnome2_src_configure "${myconf[@]}" +} diff --git a/net-vpn/networkmanager-openconnect/Manifest b/net-vpn/networkmanager-openconnect/Manifest new file mode 100644 index 000000000000..0db49170f4c4 --- /dev/null +++ b/net-vpn/networkmanager-openconnect/Manifest @@ -0,0 +1 @@ +DIST NetworkManager-openconnect-1.2.10.tar.xz 920560 BLAKE2B 8e631bacf7ac99bf3abec6eeea9bfda070dfeac4572280b74771746942bf9700f8d943501fc63933052bf07735751f5353fcc6ccd6654b57a893ed87a442650f SHA512 c61f5edee04475b013afbb91ba11e102cf4c925a0b2e16477473e0de9528d793121c1324f2c4d5ae03e0c8fb00dd9de444130c22e681f7a3408bc9a179ad7509 diff --git a/net-vpn/networkmanager-openconnect/files/networkmanager-openconnect-1.2.10-check-webkit-if-gtk.patch b/net-vpn/networkmanager-openconnect/files/networkmanager-openconnect-1.2.10-check-webkit-if-gtk.patch new file mode 100644 index 000000000000..5f9c8578d9d7 --- /dev/null +++ b/net-vpn/networkmanager-openconnect/files/networkmanager-openconnect-1.2.10-check-webkit-if-gtk.patch @@ -0,0 +1,26 @@ +# https://gitlab.gnome.org/GNOME/NetworkManager-openconnect/-/issues/99 +# diff --git a/configure.ac b/configure.ac +--- a/configure.ac 2023-05-21 14:05:26.029361118 -0300 ++++ b/configure.ac 2023-05-21 14:07:12.505617426 -0300 +@@ -145,10 +145,6 @@ + PKG_CHECK_MODULES(LIBNMA_GTK4, libnma-gtk4 >= 1.8.33) + fi + +-PKG_CHECK_MODULES(WEBKIT, webkit2gtk-4.1, [wekbit=4.1], +- [PKG_CHECK_MODULES(WEBKIT, webkit2gtk-4.0, +- [webkit=4.0], AC_MSG_ERROR(Neither webkit2gtk-4.0 nor wekit2gtk-4.1 found))]) +- + PKG_CHECK_MODULES(LIBNM, libnm >= 1.2.0) + LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_2" + LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_4" +@@ -166,6 +162,10 @@ + fi + if test x"$with_authdlg" != xno; then + PKG_CHECK_MODULES(OPENCONNECT, openconnect >= 3.02) ++ PKG_CHECK_MODULES(WEBKIT, webkit2gtk-4.1, [wekbit=4.1], ++ [PKG_CHECK_MODULES(WEBKIT, webkit2gtk-4.0, ++ [webkit=4.0], AC_MSG_ERROR(Neither webkit2gtk-4.0 nor wekit2gtk-4.1 found))]) ++ + fi + AM_CONDITIONAL(WITH_AUTHDLG, test x"$with_authdlg" != xno) + diff --git a/net-vpn/networkmanager-openconnect/metadata.xml b/net-vpn/networkmanager-openconnect/metadata.xml new file mode 100644 index 000000000000..f638ec81412c --- /dev/null +++ b/net-vpn/networkmanager-openconnect/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <upstream> + <remote-id type="gnome-gitlab">GNOME/NetworkManager-openconnect</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-openconnect/networkmanager-openconnect-1.2.10-r3.ebuild b/net-vpn/networkmanager-openconnect/networkmanager-openconnect-1.2.10-r3.ebuild new file mode 100644 index 000000000000..5e64cb94f709 --- /dev/null +++ b/net-vpn/networkmanager-openconnect/networkmanager-openconnect-1.2.10-r3.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME2_EAUTORECONF=yes +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" + +inherit gnome2 + +DESCRIPTION="NetworkManager OpenConnect plugin" +HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager https://gitlab.gnome.org/GNOME/NetworkManager-openconnect" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 arm arm64 ~loong ~ppc64 ~riscv x86" +IUSE="gtk" + +DEPEND=" + >=net-misc/networkmanager-1.2:= + >=dev-libs/glib-2.34:2 + dev-libs/libxml2:2= + dev-libs/glib:2 + >=net-vpn/openconnect-3.02:= + gtk? ( + >=app-crypt/libsecret-0.18 + + >=app-crypt/gcr-3.4:0= + >=x11-libs/gtk+-3.12:3 + + >=gui-libs/gtk-4.0:4 + >=net-libs/libnma-1.8.36 + net-libs/webkit-gtk:4.1 + ) +" + +RDEPEND=" + ${DEPEND} + acct-group/nm-openconnect + acct-user/nm-openconnect +" + +BDEPEND=" + sys-devel/gettext + dev-util/intltool + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${P}-check-webkit-if-gtk.patch +) + +src_configure() { + local myconf=( + --disable-more-warnings + --disable-static + --without-libnm-glib + $(use_with gtk gnome) + $(use_with gtk authdlg) + $(use_with gtk gtk4) + ) + + gnome2_src_configure "${myconf[@]}" +} diff --git a/net-vpn/networkmanager-openvpn/Manifest b/net-vpn/networkmanager-openvpn/Manifest new file mode 100644 index 000000000000..53487a4c3220 --- /dev/null +++ b/net-vpn/networkmanager-openvpn/Manifest @@ -0,0 +1 @@ +DIST NetworkManager-openvpn-1.12.3.tar.xz 724904 BLAKE2B 3dfe1ec8425e9b38b506bac0d55940ca1db8270b2608b74547384cdd62355abd1bbfc3a23996eb851916d80d591a64c3401032249f2040152b32828c18ccbc9a SHA512 6fc22ae2397af9d8edb7210e80f0ee23a838cc3449028d3209dfb8d0f18d7d037329ef621b4a811526931c449fa5d3950fc608037f393f4c8f822874f7791123 diff --git a/net-vpn/networkmanager-openvpn/files/networkmanager-openvpn-1.12.3-locale-h.patch b/net-vpn/networkmanager-openvpn/files/networkmanager-openvpn-1.12.3-locale-h.patch new file mode 100644 index 000000000000..cb3825b8f86c --- /dev/null +++ b/net-vpn/networkmanager-openvpn/files/networkmanager-openvpn-1.12.3-locale-h.patch @@ -0,0 +1,24 @@ +From c6a3c08d458e5119a2c683c6832bf3f5e4e8fa80 Mon Sep 17 00:00:00 2001 +From: Gnarwhal <git.aspect893@passmail.net> +Date: Wed, 27 Aug 2025 15:13:23 +0000 +Subject: [PATCH] auth-dialog: include locale.h header + +--- + auth-dialog/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/auth-dialog/main.c b/auth-dialog/main.c +index c5907ab7..f182a224 100644 +--- a/auth-dialog/main.c ++++ b/auth-dialog/main.c +@@ -24,6 +24,7 @@ + + #include "nm-default.h" + ++#include <locale.h> + #include <errno.h> + #include <string.h> + #include <stdlib.h> +-- +GitLab + diff --git a/net-vpn/networkmanager-openvpn/metadata.xml b/net-vpn/networkmanager-openvpn/metadata.xml new file mode 100644 index 000000000000..2618d49ff24b --- /dev/null +++ b/net-vpn/networkmanager-openvpn/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <upstream> + <remote-id type="gnome-gitlab">GNOME/NetworkManager-openvpn</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-openvpn/networkmanager-openvpn-1.12.3.ebuild b/net-vpn/networkmanager-openvpn/networkmanager-openvpn-1.12.3.ebuild new file mode 100644 index 000000000000..49bbe399e813 --- /dev/null +++ b/net-vpn/networkmanager-openvpn/networkmanager-openvpn-1.12.3.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" + +inherit flag-o-matic gnome2 + +DESCRIPTION="NetworkManager OpenVPN plugin" +HOMEPAGE="https://gitlab.gnome.org/GNOME/NetworkManager-openvpn" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 x86" +IUSE="gtk test" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-libs/glib-2.34:2 + >=net-misc/networkmanager-1.45.11 + >=net-vpn/openvpn-2.1 + gtk? ( + >=app-crypt/libsecret-0.18 + + >=net-libs/libnma-1.8.0 + >=x11-libs/gtk+-3.4:3 + + >=gui-libs/gtk-4.0:4 + >=net-libs/libnma-1.8.36 + ) +" + +RDEPEND=" + ${DEPEND} + acct-group/nm-openvpn + acct-user/nm-openvpn +" + +BDEPEND=" + >=sys-devel/gettext-0.19 + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/${PN}-1.12.3-locale-h.patch" +) + +src_configure() { + # Workaround for LLD on musl systems (bug #947147) + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + # --localstatedir=/var needed per bug #536248 + gnome2_src_configure \ + --localstatedir=/var \ + --disable-more-warnings \ + --disable-static \ + --with-dist-version=Gentoo \ + $(use_with gtk gnome) \ + $(use_with gtk gtk4) +} diff --git a/net-vpn/networkmanager-pptp/Manifest b/net-vpn/networkmanager-pptp/Manifest new file mode 100644 index 000000000000..25914b53d4e4 --- /dev/null +++ b/net-vpn/networkmanager-pptp/Manifest @@ -0,0 +1 @@ +DIST NetworkManager-pptp-1.2.12.tar.xz 452116 BLAKE2B b2453c154ab6d9a027e2585b8439d99e12ea1e0066a59cab257e6c771c96448484e1922fafa6d6a5db0833660ee69cea9bfe632c53c59cb63e7b745669e0c79f SHA512 da6619ba637dd38dda6584c2bd0ed03763ceedcc573f5730517a2c1013a2e0a83d743c1ad332cd42fe658b6bcd601bd4c3bed2d54d5a64bebb16528d73a3f00b diff --git a/net-vpn/networkmanager-pptp/metadata.xml b/net-vpn/networkmanager-pptp/metadata.xml new file mode 100644 index 000000000000..b387b9fcf163 --- /dev/null +++ b/net-vpn/networkmanager-pptp/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <upstream> + <remote-id type="gnome-gitlab">GNOME/NetworkManager-pptp</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-pptp/networkmanager-pptp-1.2.12-r1.ebuild b/net-vpn/networkmanager-pptp/networkmanager-pptp-1.2.12-r1.ebuild new file mode 100644 index 000000000000..fe6f03ba884a --- /dev/null +++ b/net-vpn/networkmanager-pptp/networkmanager-pptp-1.2.12-r1.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" + +inherit gnome2 + +DESCRIPTION="NetworkManager PPTP VPN plugin" +HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager/VPN" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm x86" +IUSE="gtk" + +RDEPEND=" + >=net-misc/networkmanager-1.2.0:= + >=dev-libs/glib-2.34:2 + net-dialup/ppp:= + net-dialup/pptpclient + gtk? ( + >=x11-libs/gtk+-3.4:3 + + >=app-crypt/libsecret-0.18 + + >=gui-libs/gtk-4.0:4 + >=net-libs/libnma-1.8.36 + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-libs/glib + >=dev-util/gdbus-codegen-2.80.5-r1 + sys-devel/gettext + virtual/pkgconfig +" + +src_configure() { + local myconf + # Same hack as net-dialup/pptpd to get proper plugin dir for ppp, bug #519986 + local PPPD_VER=`best_version net-dialup/ppp` + PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR} + PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision + myconf="${myconf} --with-pppd-plugin-dir=/usr/$(get_libdir)/pppd/${PPPD_VER}" + + gnome2_src_configure \ + --disable-more-warnings \ + --disable-static \ + --with-dist-version=Gentoo \ + $(use_with gtk gnome) \ + $(use_with gtk gtk4) \ + ${myconf} +} diff --git a/net-vpn/networkmanager-sstp/Manifest b/net-vpn/networkmanager-sstp/Manifest new file mode 100644 index 000000000000..10723b7045ef --- /dev/null +++ b/net-vpn/networkmanager-sstp/Manifest @@ -0,0 +1,4 @@ +DIST NetworkManager-sstp-1.3.0.tar.bz2 548907 BLAKE2B 97248268a781033bc960f930c5a55102e9fa76efa4be6477ffd277fd334649625b6c88418f00d678afa4412fb088cd201ef6711ef6f48b516daaa38fac02caa9 SHA512 9a26c737601990b913d9506ecaac957c4f6d2a4c64a3a0eb8beaf93eaef797ed134b2ddfe2421006a7ffe0dbd18800d49501836f3671f798132a1df707da138a +DIST NetworkManager-sstp-1.3.1.tar.xz 508392 BLAKE2B 1ead40fa9c8f5bb48b8f7d6d7f6593812849cc26778c531c17a247f60969dbb8d72f477057e4ec7ec838425c3bd21a922b1a65235b72da0bee813f75540a928b SHA512 10247931a2b951b1126a6d7b9bd396fe2eab58d575888c409430f311baeaab85468f23a6c5b6afb7bef90bf73d1e2dbc2f5750cfb126dd365db23b3f79dd7ca6 +DIST NetworkManager-sstp-1.3.2.tar.xz 515756 BLAKE2B 58489e093092b119ca105f78aca7f48f846778baf4245d9cece045404cf2d35b87beb13106363705ef800caae3351f3bdaf7992237b264446c69ddb52268df11 SHA512 3260f5714d90e726190ee831a590b31013ed740a3e626bc63c802b5c3a0a311a3530a7a695a3e440952f0ed218619248752283d5cf6cededf6c17f7ace804795 +DIST networkmanager-sstp-1.3.1-ppp-2.5.0-patches.tar.xz 6792 BLAKE2B 58470f9e04be67029ad57cb2bddb3c80dd503ac5bfc2916683e7d6b4a9332aedb58883bc364a2317c31a8d871888662dbf6431c92753b6fd20b6ae873e45d96e SHA512 ee41eb9aba27e457ba5a8cba9ba27a98991f33750b8202c42ce8be2227bd6c1491bf8861b9e05cc1b3f97ea1bf93d60f5b5f83db3eefbed82ef8aff104ecba95 diff --git a/net-vpn/networkmanager-sstp/files/networkmanager-sstp-1.3.0-fix-configure.ac-bashisms.patch b/net-vpn/networkmanager-sstp/files/networkmanager-sstp-1.3.0-fix-configure.ac-bashisms.patch new file mode 100644 index 000000000000..7f603028e639 --- /dev/null +++ b/net-vpn/networkmanager-sstp/files/networkmanager-sstp-1.3.0-fix-configure.ac-bashisms.patch @@ -0,0 +1,114 @@ +https://gitlab.gnome.org/GNOME/network-manager-sstp/-/merge_requests/44 + +From abe1e3aa7e2cd71e979035168ffa54268bb26b9b Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Tue, 10 May 2022 19:29:26 +0000 +Subject: [PATCH] configure.ac: fix bashism, use x prefix + +configure scripts are expected to work with POSIX compliant shells providing +/bin/sh so use = instead of == to work with both Bash and other shells. + +Also, throw in x"$var" == xvar guards (x) because it's a lot easier to just +have them and avoid pitfalls when a variable ends up not defined and having +a syntax error, even though it's not needed in every context depending +on shell. + +Signed-off-by: Sam James <sam@gentoo.org> +--- a/configure.ac ++++ b/configure.ac +@@ -59,7 +59,7 @@ AC_CACHE_CHECK([if pppd/mppe.h defines mppe_keys_xyz() functions], ac_cv_working + return 0;]])], + [ac_cv_working_mppe_h=yes], + [ac_cv_working_mppe_h=no])]) +-if test $ac_cv_working_mppe_h = yes; then ++if test $ac_cv_working_mppe_h = xyes; then + AC_DEFINE(HAVE_MPPE_KEYS_FUNCTIONS, 1, + [Define to 1 if you have <pppd/mppe.h> and it declares the mppe_keys_xyz() functions]) + fi +@@ -70,11 +70,11 @@ dnl Support for the auth notify callback in pppd >= 2.4.9 + AC_ARG_WITH([pppd-auth-notify-support], + [AS_HELP_STRING([--with-pppd-auth-notify-support], [is the auth-notifier supported by pppd])]) + if test x"$with_pppd_auth_notify_support" != xyes; then +- if test x"$pppd_pkgconfig_support" == xyes; then # pkgconfig implies pppd > 2.4.9 ++ if test x"$pppd_pkgconfig_support" = xyes; then # pkgconfig implies pppd > 2.4.9 + AS_VAR_SET([with_pppd_auth_notify_support],[yes]) + fi + fi +-if test x"$with_pppd_auth_notify_support" == xyes; then ++if test x"$with_pppd_auth_notify_support" = xyes; then + AC_DEFINE(USE_PPPD_AUTH_HOOK,1,[Define if pppd has support for client side authentication complete notification]) + else + AS_VAR_SET([with_pppd_auth_notify_support],[no]) +@@ -85,11 +85,11 @@ dnl Enable support for extended tls settings in pppd > 2.4.9 + AC_ARG_WITH([pppd-ext-tls-settings-suppport], + [AS_HELP_STRING([--with-pppd-ext-tls-settings-support], [is settings such as pkcs12, tls-verify-method, tls-verify-key-usage and max-tls-version supported in by pppd])]) + if test x"$with_pppd_ext_tls_settings_support" != xyes; then +- if test x"$pppd_pkgconfig_support" == xyes; then # pkgconfig implies pppd > 2.4.9 ++ if test x"$pppd_pkgconfig_support" = xyes; then # pkgconfig implies pppd > 2.4.9 + AS_VAR_SET([with_pppd_ext_tls_settings_support],[yes]) + fi + fi +-if test x"$with_pppd_ext_tls_settings_support" == xyes; then ++if test x"$with_pppd_ext_tls_settings_support" = xyes; then + AC_DEFINE(USE_PPP_EXT_TLS_SETTINGS,1,[Define if pppd has support for extended tls-settings like pkcs12, tls-verify-method, tls-verify-key-usage, max-tls-version]) + else + AS_VAR_SET([with_pppd_ext_tls_settings_support],[no]) +@@ -102,7 +102,7 @@ AC_ARG_WITH([pppd-plugin-dir], + if test -n "$with_pppd_plugin_dir" ; then + PPPD_PLUGIN_DIR="$with_pppd_plugin_dir" + else +- if test x"$pppd_pkgconfig_support" == xyes; then ++ if test x"$pppd_pkgconfig_support" = xyes; then + PKG_CHECK_VAR(PPPD_PLUGIN_DIR, [pppd], [plugindir]) + else + PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.7" +@@ -134,29 +134,29 @@ dnl + AC_ARG_WITH(gnome, AS_HELP_STRING([--without-gnome], [Build NetworkManager-sstp without GNOME support, e.g. vpn service only]), [], [with_gnome_specified=no]) + AC_ARG_WITH(gtk4, AS_HELP_STRING([--with-gtk4], [Build NetworkManager-sstp with libnma-gtk4 support]), [], [with_gtk4_specified=no]) + AC_ARG_WITH(libnm-glib, AS_HELP_STRING([--with-libnm-glib], [Build NetworkManager-sstp with libnm-glib comatibility (deprecated)]), [], [with_libnm_glib_specified=no]) +-if test "$with_libnm_glib_specified" != no -a "$with_libnm_glib" != no; then +- if test "$with_gnome_specified" != no -a "$with_gnome" == no; then ++if test x"$with_libnm_glib_specified" != xno -a x"$with_libnm_glib" != xno; then ++ if test x"$with_gnome_specified" != xno -a x"$with_gnome" = xno; then + AC_MSG_ERROR(Building --with-libnm-glib conflicts with --without-gnome) + fi + fi +-if test "$with_gnome" != no; then ++if test x"$with_gnome" != xno; then + with_gnome=yes + fi +-if test "$with_gtk4_specified" == no; then ++if test x"$with_gtk4_specified" = xno; then + with_gtk4=no + fi +-if test "$with_gtk4" != yes; then ++if test x"$with_gtk4" != xyes; then + with_gtk4=no + fi +-if test "$with_libnm_glib_specified" == no; then ++if test x"$with_libnm_glib_specified" = xno; then + with_libnm_glib=no + fi +-if test "$with_libnm_glib" != yes; then ++if test x"$with_libnm_glib" != xyes; then + with_libnm_glib=no + fi +-AM_CONDITIONAL(WITH_GNOME, test "$with_gnome" != no) +-AM_CONDITIONAL(WITH_GTK4, test "$with_gtk4" != no) +-AM_CONDITIONAL(WITH_LIBNM_GLIB, test "$with_libnm_glib" != no) ++AM_CONDITIONAL(WITH_GNOME, test x"$with_gnome" != xno) ++AM_CONDITIONAL(WITH_GTK4, test x"$with_gtk4" != xno) ++AM_CONDITIONAL(WITH_LIBNM_GLIB, test x"$with_libnm_glib" != xno) + AC_ARG_ENABLE(absolute-paths, AS_HELP_STRING([--enable-absolute-paths], [Use absolute paths to in .name files. Useful for development. (default is no)])) + + GETTEXT_PACKAGE=NetworkManager-sstp +@@ -223,7 +223,7 @@ NM_COMPILER_WARNINGS([yes]) + + NM_PLUGIN_DIR="$libdir/NetworkManager" + AC_SUBST(NM_PLUGIN_DIR) +-if test x"$enable_absolute_paths" == x"yes"; then ++if test x"$enable_absolute_paths" = x"yes"; then + NM_PLUGIN_DIR_NAME_FILE="$NM_PLUGIN_DIR/" + else + enable_absolute_paths=no +GitLab diff --git a/net-vpn/networkmanager-sstp/files/networkmanager-sstp-1.3.1-ppp-2.4.9.patch b/net-vpn/networkmanager-sstp/files/networkmanager-sstp-1.3.1-ppp-2.4.9.patch new file mode 100644 index 000000000000..a504b60ce008 --- /dev/null +++ b/net-vpn/networkmanager-sstp/files/networkmanager-sstp-1.3.1-ppp-2.4.9.patch @@ -0,0 +1,30 @@ +https://bugs.gentoo.org/906254 +https://gitlab.gnome.org/GNOME/network-manager-sstp/-/merge_requests/54 + +From f4feed7431b1cf884bd3c1c10df795efaf8d149d Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Sat, 13 May 2023 12:19:44 -0400 +Subject: [PATCH] Compile nm-sstp-pppd-mppe.c when !WITH_PPP_MPPE_KEYS + +Bug: https://bugs.gentoo.org/906254 +Fixes: 4cd0ec66174011925c93aa04edccca92b4d1387f +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 3be01b6..770fc59 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -120,7 +120,7 @@ src_nm_sstp_pppd_plugin_la_SOURCES = \ + src/nm-sstp-pppd-status.h + if !WITH_PPP_MPPE_KEYS + src_nm_sstp_pppd_plugin_la_SOURCES += \ +- src/nm-sstp-pppd-mppe.h ++ src/nm-sstp-pppd-mppe.c + endif + src_nm_sstp_pppd_plugin_la_CPPFLAGS = \ + $(src_cppflags) +-- +GitLab + diff --git a/net-vpn/networkmanager-sstp/metadata.xml b/net-vpn/networkmanager-sstp/metadata.xml new file mode 100644 index 000000000000..b7641d294092 --- /dev/null +++ b/net-vpn/networkmanager-sstp/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!--maintainer-needed--> + <use> + <flag name="gtk4">Use <pkg>gui-libs/gtk</pkg> for GUI support.</flag> + </use> + <upstream> + <remote-id type="sourceforge">sstp-client</remote-id> + <remote-id type="gnome-gitlab">GNOME/network-manager-sstp</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.0.ebuild b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.0.ebuild new file mode 100644 index 000000000000..c3b3f01ec7bf --- /dev/null +++ b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.0.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="NetworkManager-sstp" +MY_P="${MY_PN}-${PV}" + +inherit autotools + +DESCRIPTION="Client for the proprietary Microsoft Secure Socket Tunneling Protocol(SSTP)" +HOMEPAGE="https://gitlab.gnome.org/GNOME/network-manager-sstp https://sourceforge.net/projects/sstp-client/" +SRC_URI="https://downloads.sourceforge.net/project/sstp-client/network-manager-sstp//${MY_P}.tar.bz2" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="gui gtk4" + +# As of 1.3.0, if want GUI support, GTK 3 is always needed, even with GTK 4. +# atk/graphene/harfbuzz/cairo/gdk-pixbuf/pango are all standard "dragged in by gtk/glib" +# deps. +RDEPEND=">=dev-libs/glib-2.32:2 + net-misc/sstp-client + >=net-misc/networkmanager-1.1.0 + net-dialup/ppp:= + net-libs/gnutls:= + gui? ( + >=net-libs/libnma-1.2.0 + >=app-crypt/libsecret-0.18 + >=x11-libs/gtk+-3.4:3 + + gtk4? ( + dev-libs/atk + media-libs/graphene + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + + gui-libs/gtk:4 + ) + )" +DEPEND="${RDEPEND}" +BDEPEND=">=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/intltool + virtual/pkgconfig + sys-apps/file + sys-devel/gettext" + +PATCHES=( + "${FILESDIR}"/${P}-fix-configure.ac-bashisms.patch +) + +src_prepare() { + default + + # Bug #741108 + sed -i 's|/appdata|/metainfo|g' Makefile.{in,am} || die + + eautoreconf +} + +src_configure() { + local PPPD_VER="$(best_version net-dialup/ppp)" + # Reduce it to ${PV}-${PR} + PPPD_VER=${PPPD_VER#*/*-} + # Main version without beta/pre/patch/revision + PPPD_VER=${PPPD_VER%%[_-]*} + + econf \ + --disable-more-warnings \ + --with-dist-version=Gentoo \ + --with-pppd-plugin-dir="${EPREFIX}/usr/$(get_libdir)/pppd/${PPPD_VER}" \ + $(use_with gui gnome) \ + $(use_with gtk4) \ + --without-libnm-glib +} + +src_install() { + default + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r2.ebuild b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r2.ebuild new file mode 100644 index 000000000000..16609398ecf7 --- /dev/null +++ b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.1-r2.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="NetworkManager-sstp" +MY_P="${MY_PN}-${PV}" + +inherit autotools + +DESCRIPTION="Client for the proprietary Microsoft Secure Socket Tunneling Protocol(SSTP)" +HOMEPAGE="https://gitlab.gnome.org/GNOME/network-manager-sstp https://sourceforge.net/projects/sstp-client/" +SRC_URI="https://gitlab.gnome.org/GNOME/network-manager-sstp/-/releases/release-${PV}/downloads/dist/${MY_P}.tar.xz" +SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-ppp-2.5.0-patches.tar.xz" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="gui gtk4" + +# As of 1.3.0, if want GUI support, GTK 3 is always needed, even with GTK 4. +# atk/graphene/harfbuzz/cairo/gdk-pixbuf/pango are all standard "dragged in by gtk/glib" +# deps. +RDEPEND=" + >=dev-libs/glib-2.32:2 + net-misc/sstp-client + >=net-misc/networkmanager-1.1.0 + net-dialup/ppp:= + net-libs/gnutls:= + gui? ( + >=net-libs/libnma-1.2.0 + >=app-crypt/libsecret-0.18 + >=x11-libs/gtk+-3.4:3 + + gtk4? ( + >=app-accessibility/at-spi2-core-2.46.0 + media-libs/graphene + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + + gui-libs/gtk:4 + ) + )" +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-util/gdbus-codegen-2.80.5-r1 + sys-apps/file + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + "${WORKDIR}"/${P}-ppp-2.5.0-patches + "${FILESDIR}"/networkmanager-sstp-1.3.1-ppp-2.4.9.patch +) + +src_prepare() { + default + + # Bug #741108 + sed -i 's|/appdata|/metainfo|g' Makefile.{in,am} || die + + eautoreconf +} + +src_configure() { + local PPPD_VER="$(best_version net-dialup/ppp)" + # Reduce it to ${PV}-${PR} + PPPD_VER=${PPPD_VER#*/*-} + # Main version without beta/pre/patch/revision + PPPD_VER=${PPPD_VER%%[_-]*} + + econf \ + --disable-more-warnings \ + --with-dist-version=Gentoo \ + --with-pppd-plugin-dir="${EPREFIX}/usr/$(get_libdir)/pppd/${PPPD_VER}" \ + $(use_with gui gnome) \ + $(use_with gtk4) \ + --without-libnm-glib +} + +src_install() { + default + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.2.ebuild b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.2.ebuild new file mode 100644 index 000000000000..4e90ed45e9ff --- /dev/null +++ b/net-vpn/networkmanager-sstp/networkmanager-sstp-1.3.2.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="NetworkManager-sstp" +MY_P="${MY_PN}-${PV}" +GNOME_ORG_MODULE="${MY_PN}" + +inherit autotools gnome.org + +DESCRIPTION="Client for the proprietary Microsoft Secure Socket Tunneling Protocol(SSTP)" +HOMEPAGE="https://gitlab.gnome.org/GNOME/network-manager-sstp https://sourceforge.net/projects/sstp-client/" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="gui gtk4" + +# As of 1.3.0, if want GUI support, GTK 3 is always needed, even with GTK 4. +# atk/graphene/harfbuzz/cairo/gdk-pixbuf/pango are all standard "dragged in by gtk/glib" +# deps. +RDEPEND=" + >=dev-libs/glib-2.32:2 + net-misc/sstp-client + >=net-misc/networkmanager-1.1.0 + net-dialup/ppp:= + net-libs/gnutls:= + gui? ( + >=net-libs/libnma-1.8.0 + >=app-crypt/libsecret-0.18 + >=x11-libs/gtk+-3.4:3 + + gtk4? ( + >=app-accessibility/at-spi2-core-2.46.0 + media-libs/graphene + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/pango + + gui-libs/gtk:4 + ) + )" +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-util/gdbus-codegen-2.80.5-r1 + sys-apps/file + sys-devel/gettext + virtual/pkgconfig +" + +src_prepare() { + default + + # Bug #741108 + sed -i 's|/appdata|/metainfo|g' Makefile.{in,am} || die + + eautoreconf +} + +src_configure() { + local PPPD_VER="$(best_version net-dialup/ppp)" + # Reduce it to ${PV}-${PR} + PPPD_VER=${PPPD_VER#*/*-} + # Main version without beta/pre/patch/revision + PPPD_VER=${PPPD_VER%%[_-]*} + + econf \ + --disable-more-warnings \ + --with-dist-version=Gentoo \ + --with-pppd-plugin-dir="${EPREFIX}/usr/$(get_libdir)/pppd/${PPPD_VER}" \ + $(use_with gui gnome) \ + $(use_with gtk4) +} + +src_install() { + default + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/net-vpn/networkmanager-strongswan/Manifest b/net-vpn/networkmanager-strongswan/Manifest new file mode 100644 index 000000000000..1d5f0a0f0808 --- /dev/null +++ b/net-vpn/networkmanager-strongswan/Manifest @@ -0,0 +1,2 @@ +DIST NetworkManager-strongswan-1.6.4.tar.bz2 347849 BLAKE2B 126e07e1a0678ae1e11c0c2e94117a6c448a5110da3e7ec9347b9cef522cbc1c196c9fc2d77599a180b1b0f6e3bd9d12b6ad2f7ced4ac24b2420e17b28b3641f SHA512 7bc8e671eb85f7e9f4e6f7bb440292adee10d5bc150dcf264af30c61edf4f4db664ab3322a787f4dcbd05f2412f67faee01faeb8bd754f8c91785548a5902cca +DIST NetworkManager-strongswan-1.6.4.tar.bz2.sig 833 BLAKE2B f0849ffa89def25df44dd3bfb3c55df6f0faea8b395ba2ae5fb3a783a01d5de6cd32d9f3e9c46e3ef7bd24e46e7bee8b6bfee4bdb9a455cd838f9278235a221e SHA512 ca4db624c036754d5d1429a198374dfe7d0225d05ed4b9f8bb27bd1d8ef01be48658b3ffa1775e4d910cd85cb31f20fca8c1f2d3a823089858a9a1a86187672a diff --git a/net-vpn/networkmanager-strongswan/metadata.xml b/net-vpn/networkmanager-strongswan/metadata.xml new file mode 100644 index 000000000000..fe2e4590e7e8 --- /dev/null +++ b/net-vpn/networkmanager-strongswan/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>conikost@gentoo.org</email> + <name>Conrad Kostecki</name> + </maintainer> + <use> + <flag name="gtk4">Use GTK4 instead of GTK3.</flag> + </use> +</pkgmetadata> diff --git a/net-vpn/networkmanager-strongswan/networkmanager-strongswan-1.6.4.ebuild b/net-vpn/networkmanager-strongswan/networkmanager-strongswan-1.6.4.ebuild new file mode 100644 index 000000000000..363f8b5c744f --- /dev/null +++ b/net-vpn/networkmanager-strongswan/networkmanager-strongswan-1.6.4.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/networkmanager-strongswan.asc +inherit autotools verify-sig + +MY_PN="NetworkManager" +MY_P="${P/networkmanager/"${MY_PN}"}" + +DESCRIPTION="NetworkManager StrongSwan plugin" +HOMEPAGE="https://www.strongswan.org/" +SRC_URI=" + https://download.strongswan.org/${MY_PN}/${MY_P}.tar.bz2 + verify-sig? ( https://download.strongswan.org/${MY_PN}/${MY_P}.tar.bz2.sig ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm64 x86" +IUSE="gtk4" + +RDEPEND=" + app-crypt/libsecret + >=net-libs/libnma-1.1.0 + net-misc/networkmanager + >=net-vpn/strongswan-5.8.3[networkmanager] + !gtk4? ( x11-libs/gtk+:3 ) + gtk4? ( + net-libs/libnma + gui-libs/gtk:4 + ) +" + +DEPEND="${RDEPEND}" + +BDEPEND=" + dev-util/intltool + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-networkmanager-strongswan ) +" + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local myeconfargs=( + # Don't enable all warnings, as some are treated as errors and the compilation will fail + --disable-more-warnings + --disable-static + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + find "${D}" -name '*.la' -delete || die +} diff --git a/net-vpn/networkmanager-vpnc/Manifest b/net-vpn/networkmanager-vpnc/Manifest new file mode 100644 index 000000000000..17fb7fe5becc --- /dev/null +++ b/net-vpn/networkmanager-vpnc/Manifest @@ -0,0 +1,2 @@ +DIST NetworkManager-vpnc-1.2.8.tar.xz 428980 BLAKE2B 637bcd1c9bcc443056629c86c3bce50065a209dee4f20a7cf40d15d1ffd622dac5c9aea664d0903d32c0db1503e6976fc65461d821920f531aefb2f141f95bee SHA512 04ed5d64aad5168b0a3585d62742ff3ed3d084ad2ade7016506cc42e91db598aa3199b40c9b1787c77eca59780784960e1c629e900536267bfed6d878807b1fe +DIST NetworkManager-vpnc-1.4.0.tar.xz 490404 BLAKE2B c90c3864d7dc42c0529d82df0e2d59bca5d110db0e44a9eac878f2087e3445dc31c8df2464b450e8ff48a63c2d1fdbc0bd3b35d559e3c19a51f3849bc6ad7778 SHA512 c802f79bfe5186448c8a3295740df84769d22900c27c8318b3c3c6927f8cb80dd08a45a9e100c8ba9e9b1774f5814b6b1cd668231dcfb89ab7661f9e08f153f9 diff --git a/net-vpn/networkmanager-vpnc/metadata.xml b/net-vpn/networkmanager-vpnc/metadata.xml new file mode 100644 index 000000000000..a615da6a491a --- /dev/null +++ b/net-vpn/networkmanager-vpnc/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <upstream> + <remote-id type="gnome-gitlab">GNOME/NetworkManager-vpnc</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/networkmanager-vpnc/networkmanager-vpnc-1.2.8-r1.ebuild b/net-vpn/networkmanager-vpnc/networkmanager-vpnc-1.2.8-r1.ebuild new file mode 100644 index 000000000000..338e7de68dd0 --- /dev/null +++ b/net-vpn/networkmanager-vpnc/networkmanager-vpnc-1.2.8-r1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" + +inherit gnome2 + +DESCRIPTION="NetworkManager VPNC plugin" +HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm x86" +IUSE="gtk test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=net-misc/networkmanager-1.2.0:= + >=dev-libs/glib-2.32:2 + >=net-vpn/vpnc-0.5.3_p550 + gtk? ( + >=x11-libs/gtk+-3.4:3 + + >=app-crypt/libsecret-0.18 + + >=gui-libs/gtk-4.0:4 + >=net-libs/libnma-1.8.36 + ) +" +DEPEND="${RDEPEND} + sys-devel/gettext + dev-util/intltool + virtual/pkgconfig +" + +src_configure() { + gnome2_src_configure \ + --disable-more-warnings \ + --disable-static \ + --with-dist-version=Gentoo \ + $(use_with gtk gnome) \ + $(use_with gtk gtk4) \ + --without-libnm-glib +} diff --git a/net-vpn/networkmanager-vpnc/networkmanager-vpnc-1.4.0-r1.ebuild b/net-vpn/networkmanager-vpnc/networkmanager-vpnc-1.4.0-r1.ebuild new file mode 100644 index 000000000000..5e29f7764203 --- /dev/null +++ b/net-vpn/networkmanager-vpnc/networkmanager-vpnc-1.4.0-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME_ORG_MODULE="NetworkManager-${PN##*-}" + +inherit gnome2 + +DESCRIPTION="NetworkManager VPNC plugin" +HOMEPAGE="https://wiki.gnome.org/Projects/NetworkManager" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm x86" +IUSE="gtk test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=net-misc/networkmanager-1.2.0:= + >=dev-libs/glib-2.32:2 + >=net-vpn/vpnc-0.5.3_p550 + gtk? ( + >=x11-libs/gtk+-3.4:3 + + >=app-crypt/libsecret-0.18 + + >=gui-libs/gtk-4.0:4 + >=net-libs/libnma-1.8.36 + ) +" +DEPEND="${RDEPEND} + sys-devel/gettext + dev-util/intltool + virtual/pkgconfig +" + +src_configure() { + gnome2_src_configure \ + --disable-more-warnings \ + --disable-static \ + --with-dist-version=Gentoo \ + $(use_with gtk gnome) \ + $(use_with gtk gtk4) +} diff --git a/net-vpn/ocserv/Manifest b/net-vpn/ocserv/Manifest new file mode 100644 index 000000000000..7b112b3d12ef --- /dev/null +++ b/net-vpn/ocserv/Manifest @@ -0,0 +1,4 @@ +DIST ocserv-1.3.0.tar.xz 770596 BLAKE2B b45c528ca0d12602ae05cebf469a4be2efa846a49540375b258901620a9b95135297fdbb6553cec2cf63b506bcfc9355df8b519bcd6d52684b3b7432dbe66380 SHA512 24c3129b389fa767ad14f158580d8abd6830e697162b8fcfe3df6a4d21d543460c1955c3e0c63fecb8b4b01bd2492254d3eea8d5ba60d864cea314325badda7e +DIST ocserv-1.3.0.tar.xz.sig 442 BLAKE2B f73b98c71a0c3fe18bf540e84871a51d28b8993ba9ae719f89fa345412a609d062b2041cd9b0e4b6aae8eecf8a117c68d408153b0ea15c7b1277f3d2ebcec567 SHA512 dd6a2e6f28a512bda19e758b32149cfe7951151edab8c34ac371dbcd17eed4a8b10fdfee306629c1d42c2a3e22bcfe523ee2aafb84d59181d5be719c399cfb7d +DIST ocserv-1.4.1.tar.xz 789364 BLAKE2B dbbcf9cca2d99786ecb7d74ac68942a37759d359c08e5ed46eec82b060d7c8df86beef7ff8f6a2e08354f2322d17e366ea10f9761d07291e91d4ff2eb7215aae SHA512 0f3d512b5aaa33e748bcecd47e1452b1f198c268ce33a90a5af1e872a71c6c8ad4e7943b1a87eaf91400ecbfd1da4d74f32e4bf2c7ff6cb7e4181d8c5442e118 +DIST ocserv-1.4.1.tar.xz.sig 442 BLAKE2B 0e1b040b9021ae0e7edac92e3c3bfeb1ec5adec14a3295732c5726ef7fe83286ab66adffcad1f174426616ad368659c3da51a77f3a9b0fc5700634a85a187caf SHA512 cd92684d9a5f38a63bc6dac792e8a8806d668b6e24d1c6a4630e5864141e6b105ca05bd13acfe2fe9bce1205bf0cb4659e64ab49f2f93dcf826cd1b5b1fdf8fe diff --git a/net-vpn/ocserv/files/ocserv b/net-vpn/ocserv/files/ocserv new file mode 100644 index 000000000000..12fd1d0e20c8 --- /dev/null +++ b/net-vpn/ocserv/files/ocserv @@ -0,0 +1,6 @@ +#!/sbin/openrc-run + +command="${RC_PREFIX}/usr/sbin/ocserv" +pidfile="${RC_PREFIX}/run/${RC_SVCNAME}.pid" +command_args="--pid-file '${pidfile}'" +command_args_foreground="--foreground" diff --git a/net-vpn/ocserv/files/ocserv-1.3.0-seccomp-readlinkat.patch b/net-vpn/ocserv/files/ocserv-1.3.0-seccomp-readlinkat.patch new file mode 100644 index 000000000000..e26e93140ccc --- /dev/null +++ b/net-vpn/ocserv/files/ocserv-1.3.0-seccomp-readlinkat.patch @@ -0,0 +1,31 @@ +https://gitlab.com/openconnect/ocserv/-/merge_requests/444 +https://bugs.gentoo.org/942899 + +From e58139e49752dffb6983b3ccc5455d612912dd66 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Wed, 6 Nov 2024 13:53:51 -0500 +Subject: [PATCH] Allow the readlinkat syscall when socket_wrapper is in use + +On arm64, the realpath function calls readlinkat instead of readlink. + +Fixes: https://gitlab.com/openconnect/ocserv/-/issues/627 +Signed-off-by: Mike Gilbert <floppym@gentoo.org> +--- + src/worker-privs.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/worker-privs.c b/src/worker-privs.c +index 54985999b..6e0762780 100644 +--- a/src/worker-privs.c ++++ b/src/worker-privs.c +@@ -105,6 +105,7 @@ int disable_system_calls(struct worker_st *ws) + * them when socket wrapper is active */ + if (getenv("SOCKET_WRAPPER_DIR") != NULL) { + ADD_SYSCALL(readlink, 0); ++ ADD_SYSCALL(readlinkat, 0); + } + + /* we use quite some system calls here, and in the end +-- +GitLab + diff --git a/net-vpn/ocserv/metadata.xml b/net-vpn/ocserv/metadata.xml new file mode 100644 index 000000000000..097801e105bc --- /dev/null +++ b/net-vpn/ocserv/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>floppym@gentoo.org</email> + <name>Mike Gilbert</name> + </maintainer> + <use> + <flag name="nftables">Use nftables instead of iptables in ocserv-fw</flag> + <flag name="otp">Enable support for one-time passwords</flag> + <flag name="root-tests">Enable tests requiring root/namespaces</flag> + </use> + <upstream> + <remote-id type="gitlab">openconnect/ocserv</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/ocserv/ocserv-1.3.0-r11.ebuild b/net-vpn/ocserv/ocserv-1.3.0-r11.ebuild new file mode 100644 index 000000000000..c4ce932b16ab --- /dev/null +++ b/net-vpn/ocserv/ocserv-1.3.0-r11.ebuild @@ -0,0 +1,116 @@ +# Copyright 2019-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info systemd + +if [[ ${PV} == 9999 ]]; then + inherit autotools git-r3 + EGIT_REPO_URI="https://gitlab.com/openconnect/ocserv.git" +else + inherit verify-sig + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ocserv.asc" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ocserv )" + SRC_URI="https://www.infradead.org/ocserv/download/${P}.tar.xz + verify-sig? ( https://www.infradead.org/ocserv/download/${P}.tar.xz.sig )" + KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86" +fi + +DESCRIPTION="Openconnect SSL VPN server" +HOMEPAGE="https://ocserv.gitlab.io/www/index.html" + +LICENSE="GPL-2" +SLOT="0" +IUSE="geoip kerberos +lz4 otp pam radius +seccomp systemd tcpd test" +RESTRICT="!test? ( test )" + +BDEPEND+=" + net-misc/ipcalc + virtual/pkgconfig + test? ( + net-libs/gnutls[tools(+)] + net-libs/socket_wrapper + net-vpn/openconnect + sys-libs/nss_wrapper + sys-libs/uid_wrapper + pam? ( sys-libs/pam_wrapper ) + ) +" +DEPEND=" + dev-libs/libnl:3= + dev-libs/libev:0= + >=dev-libs/nettle-2.7:0= + dev-libs/pcl:0= + dev-libs/protobuf-c:0= + >=net-libs/gnutls-3.3.0:0= + sys-libs/readline:0= + sys-libs/talloc:0= + virtual/libcrypt:= + geoip? ( dev-libs/geoip:0= ) + kerberos? ( app-crypt/mit-krb5 ) + lz4? ( app-arch/lz4:0= ) + otp? ( sys-auth/oath-toolkit:0= ) + pam? ( sys-libs/pam:0= ) + radius? ( net-libs/radcli:0= ) + seccomp? ( sys-libs/libseccomp:0= ) + systemd? ( sys-apps/systemd:0= ) + tcpd? ( sys-apps/tcp-wrappers:0= ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/ocserv-1.3.0-seccomp-readlinkat.patch +) + +CONFIG_CHECK="~TUN ~UNIX_DIAG" + +src_prepare() { + default + if [[ ${PV} == 9999 ]]; then + eautoreconf + fi +} + +src_configure() { + local myconf=( + --without-root-tests + + $(use_enable seccomp) + $(use_enable systemd) + + $(use_with geoip) + $(use_with kerberos gssapi) + --without-llhttp + $(use_with lz4) + $(use_with otp liboath) + $(use_with radius) + $(use_with tcpd libwrap) + ) + econf "${myconf[@]}" +} + +src_test() { + addwrite /proc + if [[ ${LD_PRELOAD} == *libsandbox* ]]; then + # https://bugs.gentoo.org/961961 + ewarn "Skipping tests: libsandbox in LD_PRELOAD" + return + fi + default +} + +src_install() { + default + + dodoc doc/sample.{config,passwd} + use otp && dodoc doc/sample.otp + + doinitd "${FILESDIR}"/ocserv + + if use systemd; then + systemd_dounit doc/systemd/socket-activated/ocserv.{service,socket} + else + systemd_dounit doc/systemd/standalone/ocserv.service + fi +} diff --git a/net-vpn/ocserv/ocserv-1.4.1.ebuild b/net-vpn/ocserv/ocserv-1.4.1.ebuild new file mode 100644 index 000000000000..4515d9bfbfb7 --- /dev/null +++ b/net-vpn/ocserv/ocserv-1.4.1.ebuild @@ -0,0 +1,107 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info systemd + +if [[ ${PV} == 9999 ]]; then + inherit autotools git-r3 + EGIT_REPO_URI="https://gitlab.com/openconnect/ocserv.git" +else + inherit verify-sig + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ocserv.asc" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ocserv )" + SRC_URI="https://www.infradead.org/ocserv/download/${P}.tar.xz + verify-sig? ( https://www.infradead.org/ocserv/download/${P}.tar.xz.sig )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="Openconnect SSL VPN server" +HOMEPAGE="https://ocserv.gitlab.io/www/index.html" + +LICENSE="GPL-2" +SLOT="0" +IUSE="geoip kerberos +lz4 otp pam radius +seccomp systemd tcpd test" +RESTRICT="!test? ( test )" + +BDEPEND+=" + net-misc/ipcalc-ng + virtual/pkgconfig + test? ( + net-libs/gnutls[tools(+)] + net-libs/socket_wrapper + net-vpn/openconnect + sys-libs/nss_wrapper + sys-libs/uid_wrapper + pam? ( sys-libs/pam_wrapper ) + ) +" +DEPEND=" + dev-libs/libnl:3= + dev-libs/libev:0= + >=dev-libs/nettle-2.7:0= + dev-libs/pcl:0= + dev-libs/protobuf-c:0= + >=net-libs/gnutls-3.3.0:0= + sys-libs/readline:0= + sys-libs/talloc:0= + virtual/libcrypt:= + geoip? ( dev-libs/geoip:0= ) + kerberos? ( app-crypt/mit-krb5 ) + lz4? ( app-arch/lz4:0= ) + otp? ( sys-auth/oath-toolkit:0= ) + pam? ( sys-libs/pam:0= ) + radius? ( net-libs/radcli:0= ) + seccomp? ( sys-libs/libseccomp:0= ) + systemd? ( sys-apps/systemd:0= ) + tcpd? ( sys-apps/tcp-wrappers:0= ) +" +RDEPEND="${DEPEND}" + +CONFIG_CHECK="~TUN ~UNIX_DIAG" + +src_prepare() { + default + if [[ ${PV} == 9999 ]]; then + eautoreconf + fi +} + +src_configure() { + local myconf=( + --without-root-tests + + $(use_enable seccomp) + $(use_enable systemd) + + $(use_with geoip) + $(use_with kerberos gssapi) + --without-llhttp + $(use_with lz4) + $(use_with otp liboath) + $(use_with radius) + $(use_with tcpd libwrap) + ) + econf "${myconf[@]}" +} + +src_test() { + addwrite /proc + default +} + +src_install() { + default + + dodoc doc/sample.{config,passwd} + use otp && dodoc doc/sample.otp + + doinitd "${FILESDIR}"/ocserv + + if use systemd; then + systemd_dounit doc/systemd/socket-activated/ocserv.{service,socket} + else + systemd_dounit doc/systemd/standalone/ocserv.service + fi +} diff --git a/net-vpn/ocserv/ocserv-9999.ebuild b/net-vpn/ocserv/ocserv-9999.ebuild new file mode 100644 index 000000000000..ab74fab3f11d --- /dev/null +++ b/net-vpn/ocserv/ocserv-9999.ebuild @@ -0,0 +1,107 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info meson systemd + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/openconnect/ocserv.git" +else + inherit verify-sig + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ocserv.asc" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-ocserv )" + SRC_URI="https://www.infradead.org/ocserv/download/${P}.tar.xz + verify-sig? ( https://www.infradead.org/ocserv/download/${P}.tar.xz.sig )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="Openconnect SSL VPN server" +HOMEPAGE="https://ocserv.gitlab.io/www/index.html" + +LICENSE="GPL-2" +SLOT="0" +IUSE="geoip kerberos +lz4 +nftables otp pam radius +seccomp systemd tcpd root-tests test" +RESTRICT="!test? ( test ) root-tests? ( test )" +PROPERTIES="root-tests? ( test_privileged )" + +DEPEND=" + dev-libs/libnl:3= + dev-libs/libev:0= + >=dev-libs/nettle-2.7:0= + dev-libs/pcl:0= + dev-libs/protobuf-c:0= + >=net-libs/gnutls-3.3.0:0= + sys-libs/readline:0= + sys-libs/talloc:0= + virtual/libcrypt:= + geoip? ( dev-libs/geoip:0= ) + kerberos? ( app-crypt/mit-krb5 ) + lz4? ( app-arch/lz4:0= ) + otp? ( sys-auth/oath-toolkit:0= ) + pam? ( sys-libs/pam:0= ) + radius? ( net-libs/radcli:0= ) + seccomp? ( sys-libs/libseccomp:0= ) + systemd? ( sys-apps/systemd:0= ) + tcpd? ( sys-apps/tcp-wrappers:0= ) +" +RDEPEND="${DEPEND} + sys-apps/which + nftables? ( net-firewall/nftables ) + !nftables? ( net-firewall/iptables ) +" +BDEPEND+=" + net-misc/ipcalc-ng + virtual/pkgconfig + test? ( + ${RDEPEND} + net-libs/gnutls[tools(+)] + net-libs/socket_wrapper + net-vpn/openconnect + sys-libs/nss_wrapper + sys-libs/uid_wrapper + pam? ( sys-libs/pam_wrapper ) + root-tests? ( + net-analyzer/nmap[ncat(+)] + net-misc/iperf + ) + ) +" + +CONFIG_CHECK="~TUN ~UNIX_DIAG" + +src_configure() { + local emesonargs=( + --auto-features=disabled + $(meson_feature pam) + $(meson_feature radius) + $(meson_feature kerberos gssapi) + $(meson_feature otp liboath) + -Dlibnl=enabled + $(meson_feature geoip) + $(meson_feature lz4) + $(meson_feature seccomp) + $(meson_feature systemd) + $(meson_feature tcpd libwrap) + -Dlocal-pcl=false + $(meson_use root-tests) + -Dfirewall-script=$(usex nftables nftables iptables) + ) + meson_src_configure +} + +src_install() { + meson_src_install + + dodoc doc/sample.{config,passwd} + use otp && dodoc doc/sample.otp + + doinitd "${FILESDIR}"/ocserv + + if use systemd; then + systemd_dounit doc/systemd/socket-activated/ocserv.{service,socket} + else + systemd_dounit doc/systemd/standalone/ocserv.service + fi +} diff --git a/net-vpn/openconnect/Manifest b/net-vpn/openconnect/Manifest new file mode 100644 index 000000000000..24ba24e5dd3f --- /dev/null +++ b/net-vpn/openconnect/Manifest @@ -0,0 +1,2 @@ +DIST openconnect-9.12.tar.gz 2843115 BLAKE2B cd5f65ae0d67bece3e5aacdfb4c5c73c893d45d756554a1b6e39e66af5c6a171735d535ca7b16ed94244d02798d3c43a45b252ba05ddb0f3505f1fafc2ec0de9 SHA512 5c622e8bdfac3d21b5881660444e5d2b84e9463a99493d42cbfb480c3aa3972076bdeeb618aca02abed68e31dbeadcb66fb1c370e62a20f20cd544753c7ac48e +DIST openconnect-9.12.tar.gz.asc 833 BLAKE2B c974439cef74eea9698a0b565c0d49c6026a0afe322739d5adfee2d484279d7366c6c3c703019ff2492eb3d5725de8e0fe4505d9e3a0e5b6d36201974d20a223 SHA512 ade33209a4c17bbdfd0bea7490588b248c36c4da56a9aec60818ed6c96bc8c3570b1f2ac2685003122a1e52dd9d24e4b678d77e001c752461649114167a7304c diff --git a/net-vpn/openconnect/files/README.OpenRC b/net-vpn/openconnect/files/README.OpenRC new file mode 100644 index 000000000000..488533e87e31 --- /dev/null +++ b/net-vpn/openconnect/files/README.OpenRC @@ -0,0 +1,13 @@ +The service script for openconnect supports multiple VPN tunnels. + +To enable this, create a symbolic link to /etc/init.d/openconnect in +/etc/init.d for each tunnel instead of calling it directly: + +ln -s /etc/init.d/openconnect /etc/init.d/openconnect.vpn0 + +To define per-VPN settings, copy /etc/conf.d/openconnect to +openconnect.vpn0. + +You can then start the vpn tunnel like this: + +rc-service openconnect.vpn0 start diff --git a/net-vpn/openconnect/files/openconnect-9.12-stdlib.patch b/net-vpn/openconnect/files/openconnect-9.12-stdlib.patch new file mode 100644 index 000000000000..6e8ce06a8bef --- /dev/null +++ b/net-vpn/openconnect/files/openconnect-9.12-stdlib.patch @@ -0,0 +1,37 @@ +https://gitlab.com/openconnect/openconnect/-/merge_requests/533 + +From 5f59c2efa27295d6b3675a8b750357a6e883c45d Mon Sep 17 00:00:00 2001 +From: Brahmajit Das <brahmajit.xyz@gmail.com> +Date: Mon, 29 Jan 2024 23:28:53 +0530 +Subject: [PATCH] Fix implicit declaration of function 'malloc' + +First observed on Gentoo Linux with GCC 14. This is due to GCC 14 +enabling -Werror=implicit-function-declaration by default. +Thus resulting in errors such as: + +openconnect-internal.h: In function 'alloc_pkt': +openconnect-internal.h:911:27: error: implicit declaration of function 'malloc' [-Werror=implicit-function-declaration] + 911 | struct pkt *pkt = malloc(alloc_len); + | ^~~~~~ + +Plese refer gentoo bug: https://bugs.gentoo.org/923173 +Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com> +--- + openconnect-internal.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/openconnect-internal.h b/openconnect-internal.h +index 21460adf..5abfe98d 100644 +--- a/openconnect-internal.h ++++ b/openconnect-internal.h +@@ -119,6 +119,7 @@ + #include <sys/types.h> + + #include <stdint.h> ++#include <stdlib.h> + #include <string.h> + #include <errno.h> + +-- +2.43.0 + diff --git a/net-vpn/openconnect/files/openconnect-9.12-strap-rfc9266.patch b/net-vpn/openconnect/files/openconnect-9.12-strap-rfc9266.patch new file mode 100644 index 000000000000..2e81568b5b63 --- /dev/null +++ b/net-vpn/openconnect/files/openconnect-9.12-strap-rfc9266.patch @@ -0,0 +1,111 @@ +https://bugs.gentoo.org/965061 +https://gitlab.com/openconnect/openconnect/-/merge_requests/574 + +From 94868eef754f88569f690f8440010b331a3a67fb Mon Sep 17 00:00:00 2001 +From: David Woodhouse <dwmw2@infradead.org> +Date: Fri, 15 Nov 2024 15:46:05 +0000 +Subject: [PATCH] Use RFC9266 'tls-exporter' channel bindings for Cisco STRAP + with TLSv1.3 + +Fixes #659 + +Signed-off-by: David Woodhouse <dwmw2@infradead.org> +(cherry picked from commit 94e0b16c011b7b88708b8a8505fac6bfbe2e3cca) +--- + gnutls.c | 20 +++++++++++++++++++- + openconnect-internal.h | 5 +++++ + openssl.c | 30 +++++++++++++++++++++++------- + 3 files changed, 47 insertions(+), 8 deletions(-) + +diff --git a/gnutls.c b/gnutls.c +index 9fc010b9..6c2e3aec 100644 +--- a/gnutls.c ++++ b/gnutls.c +@@ -3176,7 +3176,25 @@ void append_strap_verify(struct openconnect_info *vpninfo, + + /* Concatenate our Finished message with our pubkey to be signed */ + struct oc_text_buf *nonce = buf_alloc(); +- buf_append_bytes(nonce, vpninfo->finished, vpninfo->finished_len); ++ if (gnutls_protocol_get_version(vpninfo->https_sess) <= GNUTLS_TLS1_2) { ++ /* For TLSv1.2 and earlier, use RFC5929 'tls-unique' channel binding */ ++ buf_append_bytes(nonce, vpninfo->finished, vpninfo->finished_len); ++ } else { ++ /* For TLSv1.3 use RFC9266 'tls-exporter' channel binding */ ++ char channel_binding_buf[TLS_EXPORTER_KEY_SIZE]; ++ err = gnutls_prf(vpninfo->https_sess, TLS_EXPORTER_LABEL_SIZE, TLS_EXPORTER_LABEL, ++ 0, 0, 0, TLS_EXPORTER_KEY_SIZE, channel_binding_buf); ++ if (err) { ++ vpn_progress(vpninfo, PRG_ERR, ++ _("Failed to generate channel bindings for STRAP key: %s\n"), ++ gnutls_strerror(err)); ++ if (!buf_error(buf)) ++ buf->error = -EIO; ++ buf_free(nonce); ++ return; ++ } ++ buf_append_bytes(nonce, channel_binding_buf, TLS_EXPORTER_KEY_SIZE); ++ } + + if (rekey) { + /* We have a copy and we don't want it freed just yet */ +diff --git a/openconnect-internal.h b/openconnect-internal.h +index f19b4d81..541d5594 100644 +--- a/openconnect-internal.h ++++ b/openconnect-internal.h +@@ -1058,6 +1058,11 @@ static inline void __monitor_fd_new(struct openconnect_info *vpninfo, + #define PSK_LABEL_SIZE (sizeof(PSK_LABEL) - 1) + #define PSK_KEY_SIZE 32 + ++/* Key material for RFC9266 tls-exporter channel binding */ ++#define TLS_EXPORTER_LABEL "EXPORTER-Channel-Binding" ++#define TLS_EXPORTER_LABEL_SIZE (sizeof(TLS_EXPORTER_LABEL) - 1) ++#define TLS_EXPORTER_KEY_SIZE 32 ++ + /* Packet types */ + + #define AC_PKT_DATA 0 /* Uncompressed data */ +diff --git a/openssl.c b/openssl.c +index 12a08692..4177e3f9 100644 +--- a/openssl.c ++++ b/openssl.c +@@ -2510,14 +2510,30 @@ void append_strap_verify(struct openconnect_info *vpninfo, + struct oc_text_buf *buf, int rekey) + { + unsigned char finished[64]; +- size_t flen = SSL_get_finished(vpninfo->https_ssl, finished, sizeof(finished)); ++ size_t flen; + +- if (flen > sizeof(finished)) { +- vpn_progress(vpninfo, PRG_ERR, +- _("SSL Finished message too large (%zd bytes)\n"), flen); +- if (!buf_error(buf)) +- buf->error = -EIO; +- return; ++ if (SSL_SESSION_get_protocol_version(SSL_get_session(vpninfo->https_ssl)) <= TLS1_2_VERSION) { ++ /* For TLSv1.2 and earlier, use RFC5929 'tls-unique' channel binding */ ++ flen = SSL_get_finished(vpninfo->https_ssl, finished, sizeof(finished)); ++ if (flen > sizeof(finished)) { ++ vpn_progress(vpninfo, PRG_ERR, ++ _("SSL Finished message too large (%zu bytes)\n"), flen); ++ if (!buf_error(buf)) ++ buf->error = -EIO; ++ return; ++ } ++ } else { ++ /* For TLSv1.3 use RFC9266 'tls-exporter' channel binding */ ++ if (!SSL_export_keying_material(vpninfo->https_ssl, ++ finished, TLS_EXPORTER_KEY_SIZE, ++ TLS_EXPORTER_LABEL, TLS_EXPORTER_LABEL_SIZE, ++ NULL, 0, 0)) { ++ vpn_progress(vpninfo, PRG_ERR, ++ _("Failed to generate channel bindings for STRAP key\n")); ++ openconnect_report_ssl_errors(vpninfo); ++ return; ++ } ++ flen = TLS_EXPORTER_KEY_SIZE; + } + + /* If we're rekeying, we need to sign the Verify header with the *old* key. */ +-- +2.51.1 + diff --git a/net-vpn/openconnect/files/openconnect.confd b/net-vpn/openconnect/files/openconnect.confd new file mode 100644 index 000000000000..5c00518a6937 --- /dev/null +++ b/net-vpn/openconnect/files/openconnect.confd @@ -0,0 +1,6 @@ +# Arguments to pass to openconnect +#command_args="--authgroup AUTHGROUP --user USER SERVERNAME" + +# For non-interactive use, set either password or password_file +#password="PASSWORD" +#password_file="/etc/openconnect/vpn0.password" diff --git a/net-vpn/openconnect/files/openconnect.initd b/net-vpn/openconnect/files/openconnect.initd new file mode 100644 index 000000000000..69f9999f6ad9 --- /dev/null +++ b/net-vpn/openconnect/files/openconnect.initd @@ -0,0 +1,28 @@ +#!/sbin/openrc-run +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +vpn=${RC_SVCNAME#*.} +command="/usr/sbin/openconnect" +pidfile="/run/openconnect/${vpn}.pid" +command_args="--syslog ${command_args}" +command_args_background="--background --pid-file \"${pidfile}\"" +stopsig="SIGINT" + +start_pre() { + checkpath -d /run/openconnect +} + +start() { + if [ -n "${password}" ]; then + command_args="${command_args} --passwd-on-stdin" + default_start <<EOF +${password} +EOF + elif [ -n "${password_file}" ]; then + command_args="${command_args} --passwd-on-stdin" + default_start <"${password_file}" + else + default_start + fi +} diff --git a/net-vpn/openconnect/files/openconnect.logrotate b/net-vpn/openconnect/files/openconnect.logrotate new file mode 100644 index 000000000000..0455e6845b28 --- /dev/null +++ b/net-vpn/openconnect/files/openconnect.logrotate @@ -0,0 +1,8 @@ +# openconnect logrotate snipet for Gentoo Linux +# +/var/log/openconnect/*/* { + missingok + size 5M + notifempty +} + diff --git a/net-vpn/openconnect/metadata.xml b/net-vpn/openconnect/metadata.xml new file mode 100644 index 000000000000..0660a620fe5b --- /dev/null +++ b/net-vpn/openconnect/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>floppym@gentoo.org</email> + <name>Mike Gilbert</name> + </maintainer> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <use> + <flag name="gssapi">Build GSSAPI support</flag> + <flag name="libproxy">Enable proxy support</flag> + <flag name="pskc">Enable PSKC file storage of HOTP/TOTP keys</flag> + <flag name="stoken">Enable stoken support</flag> + </use> +</pkgmetadata> diff --git a/net-vpn/openconnect/openconnect-9.12-r1.ebuild b/net-vpn/openconnect/openconnect-9.12-r1.ebuild new file mode 100644 index 000000000000..8a1f07dcda3c --- /dev/null +++ b/net-vpn/openconnect/openconnect-9.12-r1.ebuild @@ -0,0 +1,157 @@ +# Copyright 2011-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="xml(+)" + +inherit linux-info python-any-r1 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.com/openconnect/openconnect.git" + inherit git-r3 autotools +else + inherit verify-sig + SRC_URI="https://www.infradead.org/openconnect/download/${P}.tar.gz + verify-sig? ( https://www.infradead.org/openconnect/download/${P}.tar.gz.asc )" + KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86" +fi + +DESCRIPTION="Free client for Cisco AnyConnect SSL VPN software" +HOMEPAGE="https://www.infradead.org/openconnect/" + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0/5" +IUSE="doc +gnutls gssapi libproxy lz4 nls pskc selinux smartcard stoken test" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/json-parser:0= + dev-libs/libxml2:= + virtual/zlib:= + app-crypt/p11-kit + !gnutls? ( + >=dev-libs/openssl-1.0.1h:0= + dev-libs/libp11 + ) + gnutls? ( + app-crypt/trousers + app-misc/ca-certificates + dev-libs/nettle + >=net-libs/gnutls-3.6.13:0= + dev-libs/libtasn1:0= + app-crypt/tpm2-tss:= + ) + gssapi? ( virtual/krb5 ) + libproxy? ( net-libs/libproxy ) + lz4? ( app-arch/lz4:= ) + nls? ( virtual/libintl ) + pskc? ( sys-auth/oath-toolkit[pskc(+)] ) + smartcard? ( sys-apps/pcsc-lite:0= ) + stoken? ( app-crypt/stoken ) +" +DEPEND="${COMMON_DEPEND} + test? ( + net-libs/socket_wrapper + sys-libs/uid_wrapper + !gnutls? ( dev-libs/openssl:0[weak-ssl-ciphers(-)] ) + ) +" +RDEPEND="${COMMON_DEPEND} + sys-apps/iproute2 + >=net-vpn/vpnc-scripts-20210402-r1 + selinux? ( sec-policy/selinux-vpn ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( ${PYTHON_DEPS} sys-apps/groff ) + nls? ( sys-devel/gettext ) + test? ( net-vpn/ocserv ) +" + +if [[ ${PV} != 9999 ]]; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-dwmw2 )" + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/dwmw2@kernel.org.key" +fi + +QA_CONFIG_IMPL_DECL_SKIP=( memset_s ) + +CONFIG_CHECK="~TUN" + +pkg_pretend() { + check_extra_config +} + +pkg_setup() { + : +} + +src_prepare() { + local PATCHES=( + "${FILESDIR}/openconnect-9.12-stdlib.patch" + ) + default + if [[ ${PV} == 9999 ]]; then + eautoreconf + fi +} + +src_configure() { + if use doc; then + python_setup + else + export ac_cv_path_PYTHON= + fi + + # Used by tests if userpriv is disabled + addwrite /run/netns + + local myconf=( + --disable-dsa-tests + $(use_enable nls) + --disable-static + $(use_with !gnutls openssl) + $(use_with gnutls) + $(use_with libproxy) + $(use_with lz4) + $(use_with gssapi) + $(use_with pskc libpskc) + $(use_with smartcard libpcsclite) + $(use_with stoken) + --with-vpnc-script="${EPREFIX}/etc/vpnc/vpnc-script" + --without-builtin-json + --without-java + ) + + econf "${myconf[@]}" +} + +src_test() { + local charset + for charset in UTF-8 ISO-8859-2; do + if [[ $(LC_ALL=cs_CZ.${charset} locale charmap 2>/dev/null) != ${charset} ]]; then + # If we don't have valid cs_CZ locale data, auth-nonascii will fail. + # Force a test skip by exiting with status 77. + sed -i -e '2i exit 77' tests/auth-nonascii || die + break + fi + done + addwrite /proc + default +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die + + dodoc "${FILESDIR}"/README.OpenRC + + newconfd "${FILESDIR}"/openconnect.confd openconnect + newinitd "${FILESDIR}"/openconnect.initd openconnect + + insinto /etc/logrotate.d + newins "${FILESDIR}"/openconnect.logrotate openconnect + + keepdir /var/log/openconnect +} diff --git a/net-vpn/openconnect/openconnect-9.12-r2.ebuild b/net-vpn/openconnect/openconnect-9.12-r2.ebuild new file mode 100644 index 000000000000..f70313a0515e --- /dev/null +++ b/net-vpn/openconnect/openconnect-9.12-r2.ebuild @@ -0,0 +1,158 @@ +# Copyright 2011-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="xml(+)" + +inherit linux-info python-any-r1 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.com/openconnect/openconnect.git" + inherit git-r3 autotools +else + inherit verify-sig + SRC_URI="https://www.infradead.org/openconnect/download/${P}.tar.gz + verify-sig? ( https://www.infradead.org/openconnect/download/${P}.tar.gz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="Free client for Cisco AnyConnect SSL VPN software" +HOMEPAGE="https://www.infradead.org/openconnect/" + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0/5" +IUSE="doc +gnutls gssapi libproxy lz4 nls pskc selinux smartcard stoken test" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/json-parser:0= + dev-libs/libxml2:= + virtual/zlib:= + app-crypt/p11-kit + !gnutls? ( + >=dev-libs/openssl-1.0.1h:0= + dev-libs/libp11 + ) + gnutls? ( + app-crypt/trousers + app-misc/ca-certificates + dev-libs/nettle + >=net-libs/gnutls-3.6.13:0= + dev-libs/libtasn1:0= + app-crypt/tpm2-tss:= + ) + gssapi? ( virtual/krb5 ) + libproxy? ( net-libs/libproxy ) + lz4? ( app-arch/lz4:= ) + nls? ( virtual/libintl ) + pskc? ( sys-auth/oath-toolkit[pskc(+)] ) + smartcard? ( sys-apps/pcsc-lite:0= ) + stoken? ( app-crypt/stoken ) +" +DEPEND="${COMMON_DEPEND} + test? ( + net-libs/socket_wrapper + sys-libs/uid_wrapper + !gnutls? ( dev-libs/openssl:0[weak-ssl-ciphers(-)] ) + ) +" +RDEPEND="${COMMON_DEPEND} + sys-apps/iproute2 + >=net-vpn/vpnc-scripts-20210402-r1 + selinux? ( sec-policy/selinux-vpn ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( ${PYTHON_DEPS} sys-apps/groff ) + nls? ( sys-devel/gettext ) + test? ( net-vpn/ocserv ) +" + +if [[ ${PV} != 9999 ]]; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-dwmw2 )" + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/dwmw2@kernel.org.key" +fi + +QA_CONFIG_IMPL_DECL_SKIP=( memset_s ) + +CONFIG_CHECK="~TUN" + +pkg_pretend() { + check_extra_config +} + +pkg_setup() { + : +} + +src_prepare() { + local PATCHES=( + "${FILESDIR}/openconnect-9.12-stdlib.patch" + "${FILESDIR}/openconnect-9.12-strap-rfc9266.patch" + ) + default + if [[ ${PV} == 9999 ]]; then + eautoreconf + fi +} + +src_configure() { + if use doc; then + python_setup + else + export ac_cv_path_PYTHON= + fi + + # Used by tests if userpriv is disabled + addwrite /run/netns + + local myconf=( + --disable-dsa-tests + $(use_enable nls) + --disable-static + $(use_with !gnutls openssl) + $(use_with gnutls) + $(use_with libproxy) + $(use_with lz4) + $(use_with gssapi) + $(use_with pskc libpskc) + $(use_with smartcard libpcsclite) + $(use_with stoken) + --with-vpnc-script="${EPREFIX}/etc/vpnc/vpnc-script" + --without-builtin-json + --without-java + ) + + econf "${myconf[@]}" +} + +src_test() { + local charset + for charset in UTF-8 ISO-8859-2; do + if [[ $(LC_ALL=cs_CZ.${charset} locale charmap 2>/dev/null) != ${charset} ]]; then + # If we don't have valid cs_CZ locale data, auth-nonascii will fail. + # Force a test skip by exiting with status 77. + sed -i -e '2i exit 77' tests/auth-nonascii || die + break + fi + done + addwrite /proc + default +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die + + dodoc "${FILESDIR}"/README.OpenRC + + newconfd "${FILESDIR}"/openconnect.confd openconnect + newinitd "${FILESDIR}"/openconnect.initd openconnect + + insinto /etc/logrotate.d + newins "${FILESDIR}"/openconnect.logrotate openconnect + + keepdir /var/log/openconnect +} diff --git a/net-vpn/openconnect/openconnect-9999.ebuild b/net-vpn/openconnect/openconnect-9999.ebuild new file mode 100644 index 000000000000..d331ad23cc8c --- /dev/null +++ b/net-vpn/openconnect/openconnect-9999.ebuild @@ -0,0 +1,154 @@ +# Copyright 2011-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="xml(+)" + +inherit linux-info python-any-r1 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.com/openconnect/openconnect.git" + inherit git-r3 autotools +else + inherit verify-sig + SRC_URI="https://www.infradead.org/openconnect/download/${P}.tar.gz + verify-sig? ( https://www.infradead.org/openconnect/download/${P}.tar.gz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="Free client for Cisco AnyConnect SSL VPN software" +HOMEPAGE="https://www.infradead.org/openconnect/" + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0/5" +IUSE="doc +gnutls gssapi libproxy lz4 nls pskc selinux smartcard stoken test" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + dev-libs/json-parser:0= + dev-libs/libxml2:= + virtual/zlib:= + app-crypt/p11-kit + !gnutls? ( + >=dev-libs/openssl-1.0.1h:0= + dev-libs/libp11 + ) + gnutls? ( + app-crypt/trousers + app-misc/ca-certificates + dev-libs/nettle + >=net-libs/gnutls-3.6.13:0= + dev-libs/libtasn1:0= + app-crypt/tpm2-tss:= + ) + gssapi? ( virtual/krb5 ) + libproxy? ( net-libs/libproxy ) + lz4? ( app-arch/lz4:= ) + nls? ( virtual/libintl ) + pskc? ( sys-auth/oath-toolkit[pskc(+)] ) + smartcard? ( sys-apps/pcsc-lite:0= ) + stoken? ( app-crypt/stoken ) +" +DEPEND="${COMMON_DEPEND} + test? ( + net-libs/socket_wrapper + sys-libs/uid_wrapper + !gnutls? ( dev-libs/openssl:0[weak-ssl-ciphers(-)] ) + ) +" +RDEPEND="${COMMON_DEPEND} + sys-apps/iproute2 + >=net-vpn/vpnc-scripts-20210402-r1 + selinux? ( sec-policy/selinux-vpn ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( ${PYTHON_DEPS} sys-apps/groff ) + nls? ( sys-devel/gettext ) + test? ( net-vpn/ocserv ) +" + +if [[ ${PV} != 9999 ]]; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-dwmw2 )" + VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/dwmw2@kernel.org.key" +fi + +QA_CONFIG_IMPL_DECL_SKIP=( memset_s ) + +CONFIG_CHECK="~TUN" + +pkg_pretend() { + check_extra_config +} + +pkg_setup() { + : +} + +src_prepare() { + default + if [[ ${PV} == 9999 ]]; then + eautoreconf + fi +} + +src_configure() { + if use doc; then + python_setup + else + export ac_cv_path_PYTHON= + fi + + # Used by tests if userpriv is disabled + addwrite /run/netns + + local myconf=( + --disable-dsa-tests + $(use_enable nls) + --disable-static + $(use_with !gnutls openssl) + $(use_with gnutls) + $(use_with libproxy) + $(use_with lz4) + $(use_with gssapi) + $(use_with pskc libpskc) + $(use_with smartcard libpcsclite) + $(use_with stoken) + --with-vpnc-script="${EPREFIX}/etc/vpnc/vpnc-script" + --without-builtin-json + --without-java + ) + + econf "${myconf[@]}" +} + +src_test() { + local charset + for charset in UTF-8 ISO-8859-2; do + if [[ $(LC_ALL=cs_CZ.${charset} locale charmap 2>/dev/null) != ${charset} ]]; then + # If we don't have valid cs_CZ locale data, auth-nonascii will fail. + # Force a test skip by exiting with status 77. + sed -i -e '2i exit 77' tests/auth-nonascii || die + break + fi + done + addwrite /proc + default +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die + + dodoc "${FILESDIR}"/README.OpenRC + + newconfd "${FILESDIR}"/openconnect.confd openconnect + newinitd "${FILESDIR}"/openconnect.initd openconnect + + insinto /etc/logrotate.d + newins "${FILESDIR}"/openconnect.logrotate openconnect + + keepdir /var/log/openconnect +} diff --git a/net-vpn/openfortivpn/Manifest b/net-vpn/openfortivpn/Manifest new file mode 100644 index 000000000000..c8dfb30eadda --- /dev/null +++ b/net-vpn/openfortivpn/Manifest @@ -0,0 +1,2 @@ +DIST openfortivpn-1.23.1.tar.gz 175670 BLAKE2B f1fb1d0a93bb1f123bc1198bb3940a2527e6bfa90e9993238de71c9348a3e4d534cbe5bcd40007befaead0c0537d9b5c1ba3809f1738dc98a294f287cd3bb7b2 SHA512 68870ccf9922e0d53df26aad3510066de32edc25089067e5e5deb928518f64eba22f49c870212c0abbd6e0d80cd7516c43c8829ec56a72470f95b75296641c70 +DIST openfortivpn-1.24.1.tar.gz 177124 BLAKE2B 9f7f2c8c7fa80503cd1a05ddc0057560a6e79aa6e2516f63ad269ac290b9b22be90b5951c68c0f61a70330406dd4b64d2f3fe9d58964d76ec0f5b9ae9280fa24 SHA512 a51cdcc93dea3009be28c0dd964ef019d9f9adc47d6f85119ac074db386ae7a0edf9ffbed0341bab11855727764335686437afe6e2cae659159408c0039cd17a diff --git a/net-vpn/openfortivpn/files/openfortivpn-1.02.3-systemd_substitute_bin_and_sysconfig_dirs.patch b/net-vpn/openfortivpn/files/openfortivpn-1.02.3-systemd_substitute_bin_and_sysconfig_dirs.patch new file mode 100644 index 000000000000..e9435f3054ed --- /dev/null +++ b/net-vpn/openfortivpn/files/openfortivpn-1.02.3-systemd_substitute_bin_and_sysconfig_dirs.patch @@ -0,0 +1,11 @@ +--- a/lib/systemd/system/openfortivpn@.service.in ++++ b/lib/systemd/system/openfortivpn@.service.in +@@ -9,7 +9,7 @@ Documentation=https://github.com/adrienverge/openfortivpn/wiki + [Service] + Type=notify + PrivateTmp=true +-ExecStart=@BINDIR@/openfortivpn -c @SYSCONFDIR@/openfortivpn/%I.conf ++ExecStart=/usr/bin/openfortivpn -c /etc/openfortivpn/%I.conf + Restart=on-failure + OOMScoreAdjust=-100 + diff --git a/net-vpn/openfortivpn/files/openfortivpn-1.20.3-pppd-ipcp-accept-remote.patch b/net-vpn/openfortivpn/files/openfortivpn-1.20.3-pppd-ipcp-accept-remote.patch new file mode 100644 index 000000000000..d7bffeb28971 --- /dev/null +++ b/net-vpn/openfortivpn/files/openfortivpn-1.20.3-pppd-ipcp-accept-remote.patch @@ -0,0 +1,33 @@ +https://github.com/adrienverge/openfortivpn/pull/1111 +https://bugs.gentoo.org/907404 + +From 3b54df0a84b755fc8d35e8081b2fc6152b006a5b Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Tue, 30 May 2023 16:28:52 -0400 +Subject: [PATCH] Pass ipcp-accept-remote to pppd + +Since https://github.com/ppp-project/ppp/commit/9fe8923419a954fedf8b6d1a6cc07b45f165c1ab, +pppd refuses to accept a different remote IP if we explictly pass one on +the command line. This results in an error like: + +pppd: Peer refused to agree to his IP address + +Passing ipcp-accept-remote disables this behavior. + +Bug: https://bugs.gentoo.org/907404 +--- + src/tunnel.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/tunnel.c b/src/tunnel.c +index 2b063edd..30a09597 100644 +--- a/src/tunnel.c ++++ b/src/tunnel.c +@@ -236,6 +236,7 @@ static int pppd_run(struct tunnel *tunnel) + ":169.254.2.1", // <local_IP_address>:<remote_IP_address> + "noipdefault", + "ipcp-accept-local", ++ "ipcp-accept-remote", + "noaccomp", + "noauth", + "default-asyncmap", diff --git a/net-vpn/openfortivpn/files/openfortivpn-1.23.1-automagic.patch b/net-vpn/openfortivpn/files/openfortivpn-1.23.1-automagic.patch new file mode 100644 index 000000000000..ca7c0147e153 --- /dev/null +++ b/net-vpn/openfortivpn/files/openfortivpn-1.23.1-automagic.patch @@ -0,0 +1,25 @@ +commit e6d4329aeb2b96da8b56c6a2dd0dd64a9090f8c7 +Author: Johannes Huber <johu@gmx.de> +Date: Tue May 20 16:52:26 2025 +0200 + + fix automagic build against systemd + +diff --git a/configure.ac b/configure.ac +index 8701d23..2a182fe 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -34,7 +34,13 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + PKG_CHECK_MODULES(OPENSSL, [libssl >= 1.0.2 libcrypto >= 1.0.2], [], [AC_MSG_ERROR([Cannot find OpenSSL 1.0.2 or higher.])]) + AC_CHECK_LIB([pthread], [pthread_create], [], [AC_MSG_ERROR([Cannot find libpthread.])]) + AC_CHECK_LIB([util], [forkpty], [], [AC_MSG_ERROR([Cannot find libutil.])]) +-PKG_CHECK_MODULES(LIBSYSTEMD, [libsystemd], [AC_DEFINE(HAVE_SYSTEMD)], [AC_MSG_RESULT([libsystemd not present])]) ++ ++AC_ARG_ENABLE([systemd], ++ AS_HELP_STRING([--enable-systemd], [build with systemd support])) ++ ++AS_IF([test "x$enable_systemd" = "xyes"], [ ++ PKG_CHECK_MODULES(LIBSYSTEMD, [libsystemd], [AC_DEFINE(HAVE_SYSTEMD)], [AC_MSG_RESULT([libsystemd not present])]) ++]) + + # we assume presence of the following C standard headers + # and omit them in the following header checks diff --git a/net-vpn/openfortivpn/metadata.xml b/net-vpn/openfortivpn/metadata.xml new file mode 100644 index 000000000000..47efe6811431 --- /dev/null +++ b/net-vpn/openfortivpn/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>dilfridge@gentoo.org</email> + <name>Andreas K. Huettel</name> + </maintainer> + <maintainer type="person"> + <email>floppym@gentoo.org</email> + <name>Mike Gilbert</name> + </maintainer> + <upstream> + <remote-id type="github">adrienverge/openfortivpn</remote-id> + </upstream> + <use> + <flag name="resolvconf">Use resolvconf to handle /etc/resolv.conf updates</flag> + </use> +</pkgmetadata> diff --git a/net-vpn/openfortivpn/openfortivpn-1.23.1.ebuild b/net-vpn/openfortivpn/openfortivpn-1.23.1.ebuild new file mode 100644 index 000000000000..f1e144e9c74b --- /dev/null +++ b/net-vpn/openfortivpn/openfortivpn-1.23.1.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools linux-info systemd + +DESCRIPTION="Fortinet compatible VPN client" +HOMEPAGE="https://github.com/adrienverge/openfortivpn" +SRC_URI="https://github.com/adrienverge/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3-with-openssl-exception openssl" +SLOT="0" +KEYWORDS="amd64" +IUSE="resolvconf systemd" + +DEPEND=" + dev-libs/openssl:= + net-dialup/ppp + resolvconf? ( virtual/resolvconf ) + systemd? ( sys-apps/systemd ) +" +RDEPEND="${DEPEND}" + +BDEPEND=" + virtual/pkgconfig +" + +CONFIG_CHECK="~PPP ~PPP_ASYNC" + +PATCHES=( + "${FILESDIR}"/${PN}-1.02.3-systemd_substitute_bin_and_sysconfig_dirs.patch + "${FILESDIR}"/${PN}-1.20.3-pppd-ipcp-accept-remote.patch + "${FILESDIR}"/${P}-automagic.patch +) + +src_prepare() { + default + + sed -i 's/-Werror//g' Makefile.am || die "Failed to remove -Werror from Makefile.am" + + eautoreconf +} + +src_configure() { + local myconf=( + $(use_enable systemd) + ) + + use systemd && myconf+=( + --with-systemdsystemunitdir=$(systemd_get_systemunitdir) + ) + + use resolvconf || myconf+=( + --with-resolvconf=DISABLED + ) + + econf "${myconf[@]}" +} + +src_install() { + default + + keepdir /etc/openfortivpn +} + +pkg_postinst() { + if has_version "net-misc/networkmanager"; then + ewarn "It is known that openfortivpn does not work in NetworkManager, but only" + ewarn "as a terminal application. You can install net-vpn/networkmanager-openconnect" + ewarn "to establish a connection to a Forti VPN in NetworkManager." + fi +} diff --git a/net-vpn/openfortivpn/openfortivpn-1.24.1.ebuild b/net-vpn/openfortivpn/openfortivpn-1.24.1.ebuild new file mode 100644 index 000000000000..1dcdab7db2dc --- /dev/null +++ b/net-vpn/openfortivpn/openfortivpn-1.24.1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools linux-info systemd + +DESCRIPTION="Fortinet compatible VPN client" +HOMEPAGE="https://github.com/adrienverge/openfortivpn" +SRC_URI="https://github.com/adrienverge/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3-with-openssl-exception openssl" +SLOT="0" +KEYWORDS="amd64" +IUSE="resolvconf systemd" + +DEPEND=" + dev-libs/openssl:= + net-dialup/ppp + resolvconf? ( virtual/resolvconf ) + systemd? ( sys-apps/systemd ) +" +RDEPEND="${DEPEND}" + +BDEPEND=" + virtual/pkgconfig +" + +CONFIG_CHECK="~PPP ~PPP_ASYNC" + +PATCHES=( + "${FILESDIR}"/openfortivpn-1.23.1-automagic.patch +) + +src_prepare() { + default + + sed -i 's/-Werror//g' Makefile.am || die "Failed to remove -Werror from Makefile.am" + + eautoreconf +} + +src_configure() { + local myconf=( + $(use_enable systemd) + ) + + use systemd && myconf+=( + --with-systemdsystemunitdir=$(systemd_get_systemunitdir) + ) + + use resolvconf || myconf+=( + --with-resolvconf=DISABLED + ) + + econf "${myconf[@]}" +} + +src_install() { + default + + keepdir /etc/openfortivpn +} + +pkg_postinst() { + if has_version "net-misc/networkmanager"; then + ewarn "It is known that openfortivpn does not work in NetworkManager, but only" + ewarn "as a terminal application. You can install net-vpn/networkmanager-openconnect" + ewarn "to establish a connection to a Forti VPN in NetworkManager." + fi +} diff --git a/net-vpn/openvpn/Manifest b/net-vpn/openvpn/Manifest new file mode 100644 index 000000000000..38ebf775ef94 --- /dev/null +++ b/net-vpn/openvpn/Manifest @@ -0,0 +1,4 @@ +DIST openvpn-2.6.20.tar.gz 1942940 BLAKE2B df56b689331eab4a94fd232f3a8c2bace2fc5b1f5af09a9c3bcf65cfdd81646c56f7e0d2af8f0123759e6ca8af5942130bdf95daf93fa9cb55ebdf10d57f6284 SHA512 4c17b6f55a415a0afbdfc701f1f0f9dfa0026548a0fea47259b66b8216468d97db20819ea8cf5685e8bd0e96cea8eab97812476153e6964e420b7ace4c46e9f7 +DIST openvpn-2.6.20.tar.gz.asc 833 BLAKE2B 3db478e5289e50bf7786922a09982c61f25b894da06caa4c8028b037ff924e67e2363546222281bacf6c210ac499bd9ba78c1738be1a6885760ead63ad1e1a87 SHA512 f13d5e61015047e176eeac63e5b0ae03872c1cb2914a285b311dd92b578265280fb8724248b83edcd4deefe3c6beca1b15fe25fa1d7276803c0141f64c313ff2 +DIST openvpn-2.7.4.tar.gz 2092050 BLAKE2B 8957cde4fbf04a8108e9cb19720ed089275055a96a1accf7a466786606e2b9dc93a0151eb50a8fcfa982b66efc3e699ebd1bd0fdd1fb0b6d810b1f8e6815c190 SHA512 815897f2db1665b2682d05acbc9cbdfe161a55aaf5c714f44fdeb0b8b84edff235eb37572d2419e1211fb5f03f9888cad6bae62180760da35b4114c3db844fd1 +DIST openvpn-2.7.4.tar.gz.asc 833 BLAKE2B 4f0f700a065eef8cd0f11c0935f032d65bd3ad17fe5829239dcc7ce4d209955b8e4782ed89d5dfd74574e13dd3a983087a65786a4ea8626bc57670148a86fed4 SHA512 8a8bde1b6e72dae040cf7ccf546be29d20d298825ce0c4156b3548a3e4a40b830af49600ef785e534c569fdab2362dd64809d1d52bd6d0acb69364905fbcf254 diff --git a/net-vpn/openvpn/files/down.sh b/net-vpn/openvpn/files/down.sh new file mode 100644 index 000000000000..1c70db0ec653 --- /dev/null +++ b/net-vpn/openvpn/files/down.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# Copyright (c) 2006-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# Contributed by Roy Marples (uberlord@gentoo.org) + +# If we have a service specific script, run this now +if [ -x /etc/openvpn/"${SVCNAME}"-down.sh ] ; then + /etc/openvpn/"${SVCNAME}"-down.sh "$@" +fi + +# Restore resolv.conf to how it was +if [ "${PEER_DNS}" != "no" ]; then + if [ -x /sbin/resolvconf ] ; then + /sbin/resolvconf -d "${dev}" + elif [ -e /etc/resolv.conf-"${dev}".sv ] ; then + # Important that we copy instead of move incase resolv.conf is + # a symlink and not an actual file + cp /etc/resolv.conf-"${dev}".sv /etc/resolv.conf + rm -f /etc/resolv.conf-"${dev}".sv + fi +fi + +if [ -n "${SVCNAME}" ]; then + # Re-enter the init script to start any dependant services + if /etc/init.d/"${SVCNAME}" --quiet status ; then + export IN_BACKGROUND=true + /etc/init.d/"${SVCNAME}" --quiet stop + fi +fi + +exit 0 + +# vim: ts=4 : diff --git a/net-vpn/openvpn/files/openvpn-2.1.conf b/net-vpn/openvpn/files/openvpn-2.1.conf new file mode 100644 index 000000000000..72510c34aed3 --- /dev/null +++ b/net-vpn/openvpn/files/openvpn-2.1.conf @@ -0,0 +1,18 @@ +# OpenVPN automatically creates an /etc/resolv.conf (or sends it to +# resolvconf) if given DNS information by the OpenVPN server. +# Set PEER_DNS="no" to stop this. +PEER_DNS="yes" + +# OpenVPN can run in many modes. Most people will want the init script +# to automatically detect the mode and try and apply a good default +# configuration and setup scripts. However, there are cases where the +# OpenVPN configuration looks like a client, but it's really a peer or +# something else. DETECT_CLIENT controls this behaviour. +DETECT_CLIENT="yes" + +# If DETECT_CLIENT is no and you have your own scripts to re-enter the openvpn +# init script (ie, it first becomes "inactive" and the script then starts the +# script again to make it "started") then you can state this below. +# In other words, unless you understand service dependencies and are a +# competent shell scripter, don't set this. +RE_ENTER="no" diff --git a/net-vpn/openvpn/files/openvpn-2.1.init b/net-vpn/openvpn/files/openvpn-2.1.init new file mode 100644 index 000000000000..3af33f5e6392 --- /dev/null +++ b/net-vpn/openvpn/files/openvpn-2.1.init @@ -0,0 +1,134 @@ +#!/sbin/openrc-run +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +VPNDIR=${VPNDIR:-/etc/openvpn} +VPN=${SVCNAME#*.} +if [ -n "${VPN}" ] && [ ${SVCNAME} != "openvpn" ]; then + VPNPID="/run/openvpn.${VPN}.pid" +else + VPNPID="/run/openvpn.pid" +fi +VPNCONF="${VPNDIR}/${VPN}.conf" + +depend() { + need localmount net + use dns + after bootmisc +} + +checkconfig() { + # Linux has good dynamic tun/tap creation + if [ $(uname -s) = "Linux" ] ; then + if [ ! -e /dev/net/tun ]; then + if ! modprobe tun ; then + eerror "TUN/TAP support is not available" \ + "in this kernel" + return 1 + fi + fi + if [ -h /dev/net/tun ] && [ -c /dev/misc/net/tun ]; then + ebegin "Detected broken /dev/net/tun symlink, fixing..." + rm -f /dev/net/tun + ln -s /dev/misc/net/tun /dev/net/tun + eend $? + fi + return 0 + fi + + # Other OS's don't, so we rely on a pre-configured interface + # per vpn instance + local ifname=$(sed -n -e 's/[[:space:]]*dev[[:space:]][[:space:]]*\([^[:space:]]*\).*/\1/p' "${VPNCONF}") + if [ -z ${ifname} ] ; then + eerror "You need to specify the interface that this openvpn" \ + "instance should use" \ + "by using the dev option in ${VPNCONF}" + return 1 + fi + + if ! ifconfig "${ifname}" >/dev/null 2>/dev/null ; then + # Try and create it + echo > /dev/"${ifname}" >/dev/null + fi + if ! ifconfig "${ifname}" >/dev/null 2>/dev/null ; then + eerror "${VPNCONF} requires interface ${ifname}" \ + "but that does not exist" + return 1 + fi +} + +start() { + # If we are re-called by the openvpn gentoo-up.sh script + # then we don't actually want to start openvpn + [ "${IN_BACKGROUND}" = "true" ] && return 0 + + ebegin "Starting ${SVCNAME}" + + checkconfig || return 1 + + local args="" reenter=${RE_ENTER:-no} + # If the config file does not specify the cd option, we do + # But if we specify it, we override the config option which we do not want + if ! grep -q "^[ ]*cd[ ].*" "${VPNCONF}" ; then + args="${args} --cd ${VPNDIR}" + fi + + # We mark the service as inactive and then start it. + # When we get an authenticated packet from the peer then we run our script + # which configures our DNS if any and marks us as up. + if [ "${DETECT_CLIENT:-yes}" = "yes" ] && \ + grep -q "^[ ]*remote[ ].*" "${VPNCONF}" ; then + reenter="yes" + args="${args} --up-delay --up-restart" + args="${args} --script-security 2" + args="${args} --up /etc/openvpn/up.sh" + args="${args} --down-pre --down /etc/openvpn/down.sh" + + # Warn about setting scripts as we override them + if grep -Eq "^[ ]*(up|down)[ ].*" "${VPNCONF}" ; then + ewarn "WARNING: You have defined your own up/down scripts" + ewarn "As you're running as a client, we now force Gentoo specific" + ewarn "scripts to be run for up and down events." + ewarn "These scripts will call /etc/openvpn/${SVCNAME}-{up,down}.sh" + ewarn "where you can put your own code." + fi + + # Warn about the inability to change ip/route/dns information when + # dropping privs + if grep -q "^[ ]*user[ ].*" "${VPNCONF}" ; then + ewarn "WARNING: You are dropping root privileges!" + ewarn "As such openvpn may not be able to change ip, routing" + ewarn "or DNS configuration." + fi + else + # So we're a server. Run as openvpn unless otherwise specified + grep -q "^[ ]*user[ ].*" "${VPNCONF}" || args="${args} --user openvpn" + grep -q "^[ ]*group[ ].*" "${VPNCONF}" || args="${args} --group openvpn" + fi + + # Ensure that our scripts get the PEER_DNS variable + [ -n "${PEER_DNS}" ] && args="${args} --setenv PEER_DNS ${PEER_DNS}" + + [ "${reenter}" = "yes" ] && mark_service_inactive "${SVCNAME}" + start-stop-daemon --start --exec /usr/sbin/openvpn --pidfile "${VPNPID}" \ + -- --config "${VPNCONF}" --writepid "${VPNPID}" --daemon \ + --setenv SVCNAME "${SVCNAME}" ${args} + eend $? "Check your logs to see why startup failed" +} + +stop() { + # If we are re-called by the openvpn gentoo-down.sh script + # then we don't actually want to stop openvpn + if [ "${IN_BACKGROUND}" = "true" ] ; then + mark_service_inactive "${SVCNAME}" + return 0 + fi + + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --quiet \ + --exec /usr/sbin/openvpn --pidfile "${VPNPID}" \ + -- --config "${VPNCONF}" + eend $? +} + +# vim: set ts=4 : diff --git a/net-vpn/openvpn/files/openvpn-2.6.17-tests-no-lto.patch b/net-vpn/openvpn/files/openvpn-2.6.17-tests-no-lto.patch new file mode 100644 index 000000000000..8f10d3bc37a1 --- /dev/null +++ b/net-vpn/openvpn/files/openvpn-2.6.17-tests-no-lto.patch @@ -0,0 +1,17 @@ +Avoid building one test with LTO because it doesn't play well with -Wl,--wrap. To +do this, we also have to build with -ffat-lto-objects in the ebuild. + +See https://bugs.gentoo.org/877741#c9 specifically. +--- a/tests/unit_tests/openvpn/Makefile.am ++++ b/tests/unit_tests/openvpn/Makefile.am +@@ -97,8 +97,9 @@ pkt_testdriver_SOURCES = test_pkt.c mock_msg.c mock_msg.h mock_win32_execve.c \ + + if !WIN32 + tls_crypt_testdriver_CFLAGS = @TEST_CFLAGS@ \ +- -I$(top_srcdir)/include -I$(top_srcdir)/src/compat -I$(top_srcdir)/src/openvpn ++ -I$(top_srcdir)/include -I$(top_srcdir)/src/compat -I$(top_srcdir)/src/openvpn -fno-lto + tls_crypt_testdriver_LDFLAGS = @TEST_LDFLAGS@ \ ++ -fno-lto \ + -Wl,--wrap=buffer_read_from_file \ + -Wl,--wrap=buffer_write_file \ + -Wl,--wrap=parse_line \ diff --git a/net-vpn/openvpn/files/up.sh b/net-vpn/openvpn/files/up.sh new file mode 100644 index 000000000000..6ce82d6113cd --- /dev/null +++ b/net-vpn/openvpn/files/up.sh @@ -0,0 +1,100 @@ +#!/bin/sh +# Copyright (c) 2006-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# Contributed by Roy Marples (uberlord@gentoo.org) + +# Setup our resolv.conf +# Vitally important that we use the domain entry in resolv.conf so we +# can setup the nameservers are for the domain ONLY in resolvconf if +# we're using a decent dns cache/forwarder like dnsmasq and NOT nscd/libc. +# nscd/libc users will get the VPN nameservers before their other ones +# and will use the first one that responds - maybe the LAN ones? +# non resolvconf users just the the VPN resolv.conf + +# FIXME:- if we have >1 domain, then we have to use search :/ +# We need to add a flag to resolvconf to say +# "these nameservers should only be used for the listed search domains +# if other global nameservers are present on other interfaces" +# This however, will break compatibility with Debians resolvconf +# A possible workaround would be to just list multiple domain lines +# and try and let resolvconf handle it + +min_route() { + local n=1 + local m + local r + + eval m="\$route_metric_$n" + while [ -n "${m}" ]; do + if [ -z "$r" ] || [ "$r" -gt "$m" ]; then + r="$m" + fi + n="$(($n+1))" + eval m="\$route_metric_$n" + done + + echo "$r" +} + +if [ "${PEER_DNS}" != "no" ]; then + NS= + DOMAIN= + SEARCH= + i=1 + while true ; do + eval opt=\$foreign_option_${i} + [ -z "${opt}" ] && break + if [ "${opt}" != "${opt#dhcp-option DOMAIN *}" ] ; then + if [ -z "${DOMAIN}" ] ; then + DOMAIN="${opt#dhcp-option DOMAIN *}" + else + SEARCH="${SEARCH}${SEARCH:+ }${opt#dhcp-option DOMAIN *}" + fi + elif [ "${opt}" != "${opt#dhcp-option DNS *}" ] ; then + NS="${NS}nameserver ${opt#dhcp-option DNS *}\n" + fi + i=$((${i} + 1)) + done + + if [ -n "${NS}" ] ; then + DNS="# Generated by openvpn for interface ${dev}\n" + if [ -n "${SEARCH}" ] ; then + DNS="${DNS}search ${DOMAIN} ${SEARCH}\n" + elif [ -n "${DOMAIN}" ]; then + DNS="${DNS}domain ${DOMAIN}\n" + fi + DNS="${DNS}${NS}" + if [ -x /sbin/resolvconf ] ; then + metric="$(min_route)" + printf "${DNS}" | /sbin/resolvconf -a "${dev}" ${metric:+-m ${metric}} + else + # Preserve the existing resolv.conf + if [ -e /etc/resolv.conf ] ; then + cp /etc/resolv.conf /etc/resolv.conf-"${dev}".sv + fi + printf "${DNS}" > /etc/resolv.conf + chmod 644 /etc/resolv.conf + fi + fi +fi + +# Below section is Gentoo specific +# Quick summary - our init scripts are re-entrant and set the SVCNAME env var +# as we could have >1 openvpn service + +if [ -n "${SVCNAME}" ]; then + # If we have a service specific script, run this now + if [ -x /etc/openvpn/"${SVCNAME}"-up.sh ] ; then + /etc/openvpn/"${SVCNAME}"-up.sh "$@" + fi + + # Re-enter the init script to start any dependant services + if ! /etc/init.d/"${SVCNAME}" --quiet status ; then + export IN_BACKGROUND=true + /etc/init.d/${SVCNAME} --quiet start + fi +fi + +exit 0 + +# vim: ts=4 : diff --git a/net-vpn/openvpn/metadata.xml b/net-vpn/openvpn/metadata.xml new file mode 100644 index 000000000000..c3b0e71716c3 --- /dev/null +++ b/net-vpn/openvpn/metadata.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <longdescription>OpenVPN is an easy-to-use, robust and highly +configurable VPN daemon which can be used to securely link two or more +networks using an encrypted tunnel.</longdescription> + <use> + <flag name="dco">Enable support for kernel data channel offload</flag> + <flag name="down-root">Enable the down-root plugin</flag> + <flag name="iproute2">Enabled iproute2 support instead of net-tools</flag> + <flag name="kernel-ovpn"> + Transitional flag to support OVPN mainline module + </flag> + <flag name="mbedtls">Use mbed TLS as the backend crypto library</flag> + <flag name="openssl">Use OpenSSL as the backend crypto library</flag> + <flag name="pkcs11">Enable PKCS#11 smartcard support</flag> + <flag name="plugins">Enable the OpenVPN plugin system</flag> + </use> + <upstream> + <remote-id type="cpe">cpe:/a:openvpn:openvpn</remote-id> + <remote-id type="github">OpenVPN/openvpn</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/openvpn/openvpn-2.6.20-r1.ebuild b/net-vpn/openvpn/openvpn-2.6.20-r1.ebuild new file mode 100644 index 000000000000..d9922d04b17d --- /dev/null +++ b/net-vpn/openvpn/openvpn-2.6.20-r1.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a systemd linux-info tmpfiles toolchain-funcs + +DESCRIPTION="Robust and highly flexible tunneling application compatible with many OSes" +HOMEPAGE="https://community.openvpn.net/ https://openvpn.net" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openvpn.asc + inherit verify-sig + + SRC_URI=" + https://build.openvpn.net/downloads/releases/${P}.tar.gz + verify-sig? ( https://build.openvpn.net/downloads/releases/${P}.tar.gz.asc ) + " + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +fi + +LICENSE="GPL-2" +SLOT="0" + +IUSE="dco down-root examples inotify iproute2 +lz4 +lzo mbedtls +openssl" +IUSE+=" pam pkcs11 +plugins selinux systemd test" + +RESTRICT="!test? ( test )" +REQUIRED_USE=" + ^^ ( openssl mbedtls ) + pkcs11? ( !mbedtls ) + !plugins? ( !pam !down-root ) + inotify? ( plugins ) + dco? ( !iproute2 ) +" + +COMMON_DEPEND=" + kernel_linux? ( + iproute2? ( sys-apps/iproute2[-minimal] ) + ) + lz4? ( app-arch/lz4 ) + lzo? ( >=dev-libs/lzo-1.07 ) + mbedtls? ( net-libs/mbedtls:3= ) + openssl? ( >=dev-libs/openssl-1.0.2:0= ) + pam? ( sys-libs/pam ) + pkcs11? ( >=dev-libs/pkcs11-helper-1.11 ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd ) + dco? ( >=net-vpn/ovpn-dco-0.2 >=dev-libs/libnl-3.2.29:= ) + sys-libs/libcap-ng:= +" + +BDEPEND=" + virtual/pkgconfig +" + +DEPEND=" + ${COMMON_DEPEND} + test? ( dev-util/cmocka ) +" +RDEPEND=" + ${COMMON_DEPEND} + acct-group/openvpn + acct-user/openvpn + selinux? ( sec-policy/selinux-openvpn ) +" + +if [[ ${PV} = "9999" ]]; then + BDEPEND+=" dev-python/docutils" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openvpn )" +fi + +PATCHES=( + "${FILESDIR}"/${PN}-2.6.17-tests-no-lto.patch +) + +pkg_setup() { + local CONFIG_CHECK="~TUN" + linux-info_pkg_setup +} + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local -a myeconfargs + + # See tests-no-lto.patch (done unconditionally to not have the build + # vary with and without tests) + lto-guarantee-fat + + local MBEDTLS_CFLAGS + local MBEDTLS_LIBS + if ! use mbedtls; then + myeconfargs+=( + $(use_enable pkcs11) + ) + else + MBEDTLS_CFLAGS="$($(tc-getPKG_CONFIG) --cflags mbedtls-3 mbedcrypto-3 mbedx509-3)" + MBEDTLS_LIBS="$($(tc-getPKG_CONFIG) --libs mbedtls-3 mbedcrypto-3 mbedx509-3)" + fi + + myeconfargs+=( + $(use_enable inotify async-push) + --with-crypto-library=$(usex mbedtls mbedtls openssl) + $(use_enable lz4) + $(use_enable lzo) + $(use_enable plugins) + $(use_enable iproute2) + $(use_enable pam plugin-auth-pam) + $(use_enable down-root plugin-down-root) + $(use_enable selinux) + $(use_enable systemd) + $(use_enable dco) + ) + + SYSTEMD_UNIT_DIR=$(systemd_get_systemunitdir) \ + TMPFILES_DIR="/usr/lib/tmpfiles.d" \ + IPROUTE=$(usex iproute2 '/bin/ip' '') \ + MBEDTLS_CFLAGS="${MBEDTLS_CFLAGS}" \ + MBEDTLS_LIBS="${MBEDTLS_LIBS}" \ + econf "${myeconfargs[@]}" +} + +src_test() { + local -x RUN_SUDO=false + + elog "Running top-level tests" + emake check + + pushd tests/unit_tests &>/dev/null || die + elog "Running unit tests" + emake check + popd &>/dev/null || die +} + +src_install() { + default + + find "${ED}/usr" -name '*.la' -delete || die + + # install documentation + dodoc AUTHORS ChangeLog PORTS README + + # Install some helper scripts + keepdir /etc/openvpn + exeinto /etc/openvpn + doexe "${FILESDIR}/up.sh" + doexe "${FILESDIR}/down.sh" + + # Install the init script and config file + newinitd "${FILESDIR}/${PN}-2.1.init" openvpn + newconfd "${FILESDIR}/${PN}-2.1.conf" openvpn + + # install examples, controlled by the respective useflag + if use examples ; then + # (is the below comment relevant anymore?) + ## dodoc does not supportly support directory traversal, #15193 + docinto examples + dodoc -r sample contrib + fi + + # https://bugs.gentoo.org/755680#c3 + doman doc/openvpn.8 + + # https://github.com/OpenVPN/openvpn/issues/482 (bug #857648) + newtmpfiles distro/systemd/tmpfiles-openvpn.conf openvpn.conf +} + +pkg_postinst() { + tmpfiles_process openvpn.conf + + if systemd_is_booted || has_version sys-apps/systemd ; then + elog "In order to use OpenVPN with systemd please use the correct systemd service file." + elog + elog "server:" + elog + elog "- Place your server configuration file in /etc/openvpn/server" + elog "- Use the openvpn-server@.service like so" + elog "systemctl start openvpn-server@{Server-config}" + elog + elog "client:" + elog + elog "- Place your client configuration file in /etc/openvpn/client" + elog "- Use the openvpn-client@.service like so:" + elog "systemctl start openvpn-client@{Client-config}" + else + elog "The openvpn init script expects to find the configuration file" + elog "openvpn.conf in /etc/openvpn along with any extra files it may need." + elog + elog "To create more VPNs, simply create a new .conf file for it and" + elog "then create a symlink to the openvpn init script from a link called" + elog "openvpn.newconfname - like so" + elog " cd /etc/openvpn" + elog " ${EDITOR##*/} foo.conf" + elog " cd /etc/init.d" + elog " ln -s openvpn openvpn.foo" + elog + elog "You can then treat openvpn.foo as any other service, so you can" + elog "stop one vpn and start another if you need to." + fi + + if grep -Eq "^[ \t]*(up|down)[ \t].*" "${ROOT}/etc/openvpn"/*.conf 2>/dev/null ; then + ewarn + ewarn "WARNING: If you use the remote keyword then you are deemed to be" + ewarn "a client by our init script and as such we force up,down scripts." + ewarn "These scripts call /etc/openvpn/\$SVCNAME-{up,down}.sh where you" + ewarn "can move your scripts to." + fi + + if use plugins ; then + einfo + einfo "plugins have been installed into /usr/$(get_libdir)/${PN}/plugins" + fi +} diff --git a/net-vpn/openvpn/openvpn-2.7.4.ebuild b/net-vpn/openvpn/openvpn-2.7.4.ebuild new file mode 100644 index 000000000000..6fc7d9019f4e --- /dev/null +++ b/net-vpn/openvpn/openvpn-2.7.4.ebuild @@ -0,0 +1,224 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a systemd linux-info tmpfiles toolchain-funcs + +DESCRIPTION="Robust and highly flexible tunneling application compatible with many OSes" +HOMEPAGE="https://community.openvpn.net/ https://openvpn.net" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openvpn.asc + inherit verify-sig + + SRC_URI=" + https://build.openvpn.net/downloads/releases/${P}.tar.gz + verify-sig? ( https://build.openvpn.net/downloads/releases/${P}.tar.gz.asc ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" + +IUSE="dco down-root examples inotify iproute2 kernel-ovpn +lz4 +lzo mbedtls" +IUSE+=" +openssl pam pkcs11 +plugins selinux systemd test" + +RESTRICT="!test? ( test )" +REQUIRED_USE=" + ^^ ( openssl mbedtls ) + pkcs11? ( !mbedtls ) + !plugins? ( !pam !down-root ) + inotify? ( plugins ) + dco? ( !iproute2 ) +" + +COMMON_DEPEND=" + kernel_linux? ( + iproute2? ( sys-apps/iproute2[-minimal] ) + ) + lz4? ( app-arch/lz4 ) + lzo? ( >=dev-libs/lzo-1.07 ) + mbedtls? ( net-libs/mbedtls:3= ) + openssl? ( >=dev-libs/openssl-1.0.2:0= ) + pam? ( sys-libs/pam ) + pkcs11? ( >=dev-libs/pkcs11-helper-1.11 ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd ) + dco? ( + !kernel-ovpn? ( >=net-vpn/ovpn-dco-0.2 ) + >=dev-libs/libnl-3.2.29:= + ) + sys-libs/libcap-ng:= +" + +BDEPEND=" + virtual/pkgconfig +" + +DEPEND=" + ${COMMON_DEPEND} + test? ( dev-util/cmocka ) +" +RDEPEND=" + ${COMMON_DEPEND} + acct-group/openvpn + acct-user/openvpn + selinux? ( sec-policy/selinux-openvpn ) +" + +if [[ ${PV} = "9999" ]]; then + BDEPEND+=" dev-python/docutils" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openvpn )" +fi + +pkg_setup() { + local CONFIG_CHECK="~TUN" + if use kernel-ovpn; then + local CONFIG_CHECK+=" ~OVPN" + fi + linux-info_pkg_setup +} + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local -a myeconfargs + + # See tests-no-lto.patch (done unconditionally to not have the build + # vary with and without tests) + lto-guarantee-fat + + local MBEDTLS_CFLAGS + local MBEDTLS_LIBS + if ! use mbedtls; then + myeconfargs+=( + $(use_enable pkcs11) + ) + else + MBEDTLS_CFLAGS="$($(tc-getPKG_CONFIG) --cflags mbedtls-3 mbedcrypto-3 mbedx509-3)" + MBEDTLS_LIBS="$($(tc-getPKG_CONFIG) --libs mbedtls-3 mbedcrypto-3 mbedx509-3)" + fi + + myeconfargs+=( + $(use_enable inotify async-push) + --with-crypto-library=$(usex mbedtls mbedtls openssl) + $(use_enable lz4) + $(use_enable lzo) + $(use_enable plugins) + $(use_enable iproute2) + $(use_enable pam plugin-auth-pam) + $(use_enable down-root plugin-down-root) + $(use_enable selinux) + $(use_enable systemd) + $(use_enable dco) + ) + + SYSTEMD_UNIT_DIR=$(systemd_get_systemunitdir) \ + TMPFILES_DIR="/usr/lib/tmpfiles.d" \ + IPROUTE=$(usex iproute2 '/bin/ip' '') \ + MBEDTLS_CFLAGS="${MBEDTLS_CFLAGS}" \ + MBEDTLS_LIBS="${MBEDTLS_LIBS}" \ + econf "${myeconfargs[@]}" +} + +src_test() { + local -x RUN_SUDO=false + + elog "Running top-level tests" + emake check + + pushd tests/unit_tests &>/dev/null || die + elog "Running unit tests" + emake check + popd &>/dev/null || die +} + +src_install() { + default + + find "${ED}/usr" -name '*.la' -delete || die + + # install documentation + dodoc AUTHORS ChangeLog PORTS README + + # Install some helper scripts + keepdir /etc/openvpn + exeinto /etc/openvpn + doexe "${FILESDIR}/up.sh" + doexe "${FILESDIR}/down.sh" + + # Install the init script and config file + newinitd "${FILESDIR}/${PN}-2.1.init" openvpn + newconfd "${FILESDIR}/${PN}-2.1.conf" openvpn + + # install examples, controlled by the respective useflag + if use examples ; then + # (is the below comment relevant anymore?) + ## dodoc does not supportly support directory traversal, #15193 + docinto examples + dodoc -r sample contrib + fi + + # https://bugs.gentoo.org/755680#c3 + doman doc/openvpn.8 + + # https://github.com/OpenVPN/openvpn/issues/482 (bug #857648) + newtmpfiles distro/systemd/tmpfiles-openvpn.conf openvpn.conf +} + +pkg_postinst() { + tmpfiles_process openvpn.conf + + if systemd_is_booted || has_version sys-apps/systemd ; then + elog "In order to use OpenVPN with systemd please use the correct systemd service file." + elog + elog "server:" + elog + elog "- Place your server configuration file in /etc/openvpn/server" + elog "- Use the openvpn-server@.service like so" + elog "systemctl start openvpn-server@{Server-config}" + elog + elog "client:" + elog + elog "- Place your client configuration file in /etc/openvpn/client" + elog "- Use the openvpn-client@.service like so:" + elog "systemctl start openvpn-client@{Client-config}" + else + elog "The openvpn init script expects to find the configuration file" + elog "openvpn.conf in /etc/openvpn along with any extra files it may need." + elog + elog "To create more VPNs, simply create a new .conf file for it and" + elog "then create a symlink to the openvpn init script from a link called" + elog "openvpn.newconfname - like so" + elog " cd /etc/openvpn" + elog " ${EDITOR##*/} foo.conf" + elog " cd /etc/init.d" + elog " ln -s openvpn openvpn.foo" + elog + elog "You can then treat openvpn.foo as any other service, so you can" + elog "stop one vpn and start another if you need to." + fi + + if grep -Eq "^[ \t]*(up|down)[ \t].*" "${ROOT}/etc/openvpn"/*.conf 2>/dev/null ; then + ewarn + ewarn "WARNING: If you use the remote keyword then you are deemed to be" + ewarn "a client by our init script and as such we force up,down scripts." + ewarn "These scripts call /etc/openvpn/\$SVCNAME-{up,down}.sh where you" + ewarn "can move your scripts to." + fi + + if use plugins ; then + einfo + einfo "plugins have been installed into /usr/$(get_libdir)/${PN}/plugins" + fi +} diff --git a/net-vpn/openvpn/openvpn-9999.ebuild b/net-vpn/openvpn/openvpn-9999.ebuild new file mode 100644 index 000000000000..f2c292ff62f7 --- /dev/null +++ b/net-vpn/openvpn/openvpn-9999.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a systemd linux-info tmpfiles toolchain-funcs + +DESCRIPTION="Robust and highly flexible tunneling application compatible with many OSes" +HOMEPAGE="https://community.openvpn.net/ https://openvpn.net" + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openvpn.asc + inherit verify-sig + + SRC_URI=" + https://build.openvpn.net/downloads/releases/${P}.tar.gz + verify-sig? ( https://build.openvpn.net/downloads/releases/${P}.tar.gz.asc ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" + +IUSE="dco down-root examples inotify iproute2 +lz4 +lzo mbedtls +openssl" +IUSE+=" pam pkcs11 +plugins selinux systemd test" + +RESTRICT="!test? ( test )" +REQUIRED_USE=" + ^^ ( openssl mbedtls ) + pkcs11? ( !mbedtls ) + !plugins? ( !pam !down-root ) + inotify? ( plugins ) + dco? ( !iproute2 ) +" + +COMMON_DEPEND=" + kernel_linux? ( + iproute2? ( sys-apps/iproute2[-minimal] ) + ) + lz4? ( app-arch/lz4 ) + lzo? ( >=dev-libs/lzo-1.07 ) + mbedtls? ( net-libs/mbedtls:3= ) + openssl? ( >=dev-libs/openssl-1.0.2:0= ) + pam? ( sys-libs/pam ) + pkcs11? ( >=dev-libs/pkcs11-helper-1.11 ) + selinux? ( sys-libs/libselinux ) + systemd? ( sys-apps/systemd ) + dco? ( >=net-vpn/ovpn-dco-0.2 >=dev-libs/libnl-3.2.29:= ) + sys-libs/libcap-ng:= +" + +BDEPEND=" + virtual/pkgconfig +" + +DEPEND=" + ${COMMON_DEPEND} + test? ( dev-util/cmocka ) +" +RDEPEND=" + ${COMMON_DEPEND} + acct-group/openvpn + acct-user/openvpn + selinux? ( sec-policy/selinux-openvpn ) +" + +if [[ ${PV} = "9999" ]]; then + BDEPEND+=" dev-python/docutils" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openvpn )" +fi + +PATCHES=( + "${FILESDIR}"/${PN}-2.6.17-tests-no-lto.patch +) + +pkg_setup() { + local CONFIG_CHECK="~TUN" + linux-info_pkg_setup +} + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local -a myeconfargs + + # See tests-no-lto.patch (done unconditionally to not have the build + # vary with and without tests) + lto-guarantee-fat + + local MBEDTLS_CFLAGS + local MBEDTLS_LIBS + if ! use mbedtls; then + myeconfargs+=( + $(use_enable pkcs11) + ) + else + MBEDTLS_CFLAGS="$($(tc-getPKG_CONFIG) --cflags mbedtls-3 mbedcrypto-3 mbedx509-3)" + MBEDTLS_LIBS="$($(tc-getPKG_CONFIG) --libs mbedtls-3 mbedcrypto-3 mbedx509-3)" + fi + + myeconfargs+=( + $(use_enable inotify async-push) + --with-crypto-library=$(usex mbedtls mbedtls openssl) + $(use_enable lz4) + $(use_enable lzo) + $(use_enable plugins) + $(use_enable iproute2) + $(use_enable pam plugin-auth-pam) + $(use_enable down-root plugin-down-root) + $(use_enable selinux) + $(use_enable systemd) + $(use_enable dco) + ) + + SYSTEMD_UNIT_DIR=$(systemd_get_systemunitdir) \ + TMPFILES_DIR="/usr/lib/tmpfiles.d" \ + IPROUTE=$(usex iproute2 '/bin/ip' '') \ + MBEDTLS_CFLAGS="${MBEDTLS_CFLAGS}" \ + MBEDTLS_LIBS="${MBEDTLS_LIBS}" \ + econf "${myeconfargs[@]}" +} + +src_test() { + local -x RUN_SUDO=false + + elog "Running top-level tests" + emake check + + pushd tests/unit_tests &>/dev/null || die + elog "Running unit tests" + emake check + popd &>/dev/null || die +} + +src_install() { + default + + find "${ED}/usr" -name '*.la' -delete || die + + # install documentation + dodoc AUTHORS ChangeLog PORTS README + + # Install some helper scripts + keepdir /etc/openvpn + exeinto /etc/openvpn + doexe "${FILESDIR}/up.sh" + doexe "${FILESDIR}/down.sh" + + # Install the init script and config file + newinitd "${FILESDIR}/${PN}-2.1.init" openvpn + newconfd "${FILESDIR}/${PN}-2.1.conf" openvpn + + # install examples, controlled by the respective useflag + if use examples ; then + # (is the below comment relevant anymore?) + ## dodoc does not supportly support directory traversal, #15193 + docinto examples + dodoc -r sample contrib + fi + + # https://bugs.gentoo.org/755680#c3 + doman doc/openvpn.8 + + # https://github.com/OpenVPN/openvpn/issues/482 (bug #857648) + newtmpfiles distro/systemd/tmpfiles-openvpn.conf openvpn.conf +} + +pkg_postinst() { + tmpfiles_process openvpn.conf + + if systemd_is_booted || has_version sys-apps/systemd ; then + elog "In order to use OpenVPN with systemd please use the correct systemd service file." + elog + elog "server:" + elog + elog "- Place your server configuration file in /etc/openvpn/server" + elog "- Use the openvpn-server@.service like so" + elog "systemctl start openvpn-server@{Server-config}" + elog + elog "client:" + elog + elog "- Place your client configuration file in /etc/openvpn/client" + elog "- Use the openvpn-client@.service like so:" + elog "systemctl start openvpn-client@{Client-config}" + else + elog "The openvpn init script expects to find the configuration file" + elog "openvpn.conf in /etc/openvpn along with any extra files it may need." + elog + elog "To create more VPNs, simply create a new .conf file for it and" + elog "then create a symlink to the openvpn init script from a link called" + elog "openvpn.newconfname - like so" + elog " cd /etc/openvpn" + elog " ${EDITOR##*/} foo.conf" + elog " cd /etc/init.d" + elog " ln -s openvpn openvpn.foo" + elog + elog "You can then treat openvpn.foo as any other service, so you can" + elog "stop one vpn and start another if you need to." + fi + + if grep -Eq "^[ \t]*(up|down)[ \t].*" "${ROOT}/etc/openvpn"/*.conf 2>/dev/null ; then + ewarn + ewarn "WARNING: If you use the remote keyword then you are deemed to be" + ewarn "a client by our init script and as such we force up,down scripts." + ewarn "These scripts call /etc/openvpn/\$SVCNAME-{up,down}.sh where you" + ewarn "can move your scripts to." + fi + + if use plugins ; then + einfo + einfo "plugins have been installed into /usr/$(get_libdir)/${PN}/plugins" + fi +} diff --git a/net-vpn/ovpn-dco/Manifest b/net-vpn/ovpn-dco/Manifest new file mode 100644 index 000000000000..225e068d6ef0 --- /dev/null +++ b/net-vpn/ovpn-dco/Manifest @@ -0,0 +1,4 @@ +DIST ovpn-dco-0.2.20230426.tar.gz 70341 BLAKE2B 95d468212a161f13659185d7e96b11afac63a8dd40aaf42a41463927a7f75b1d1ab2388bab5749c0127a07a8bf5d4a5a97626c0d782595f3d0561be4063d931c SHA512 929333fd0668008be77b57b3a0955c260770d91402e02d93a460569b8b17763ebe23eb6159bfefe04fa16fad2672d6a6c76e2f3c2e6b864593bef59ef3cfa29f +DIST ovpn-dco-0.2.20231117.tar.gz 70818 BLAKE2B c9524bb2d05d661e4b1b49c63d9ee26d8d45a331da99d45151b7bf7147b4d9a699e157a93c0bd79a3ee58bd7916a672e756a6d4541603a056cef507a2bbb8924 SHA512 07ed4e2eefda8ab86ce72fd8c95370c89d5d40929e39425f622d2ec945dcc8f6c2f92dbe8a3ddb2868c3ca0a93bd21f077cad4788149a13dae2a0a3df43d2d85 +DIST ovpn-dco-0.2.20241216.tar.gz 70783 BLAKE2B 832aaa48f9a968b3c6294f3752b2c6a08fec52b311eb60c5e3c9770a1049feb2587323eef12f86fe1447fa4c058b311d8ddde1d040ed9c02e630258ecfaf4d51 SHA512 773682182af4a2669e5e49e80e349f280ff58cedff8060f2b01a1a9d82fe9dbe272942e3da606ebded54bbb8f26524695f402389dc02c4d8ea59a20d19d54ea1 +DIST ovpn-dco-0.2.20251017.tar.gz 71038 BLAKE2B 489edffffa23f2bae6e27934a26803c25ed34489ee8b245a6356e9772936d492baa0c45e67c982bc89b1ae64ad98e47f989e06e4fb149ae5bc538fb316da1042 SHA512 4323fa5c708ac0783fc541820eedb5b661fc4f2b3af4712f205a6ba06f2dd1cf7ed189a8ad03b4f5b591a5f9d255ff1d1bb3828729f7f81e0d61e1f11a899b8a diff --git a/net-vpn/ovpn-dco/files/0001-ovpn-dco-include-new-GSO-header-file.patch b/net-vpn/ovpn-dco/files/0001-ovpn-dco-include-new-GSO-header-file.patch new file mode 100644 index 000000000000..50e748cb5f0d --- /dev/null +++ b/net-vpn/ovpn-dco/files/0001-ovpn-dco-include-new-GSO-header-file.patch @@ -0,0 +1,76 @@ +From dba96d203f960356b477291d6a58d30fc096fbe4 Mon Sep 17 00:00:00 2001 +From: Antonio Quartulli <antonio@openvpn.net> +Date: Wed, 16 Aug 2023 22:15:01 +0200 +Subject: [PATCH] ovpn-dco: include new GSO header file + +GSO code has ben moved to its own files, therefore a new header +needs to be included accordingly. + +This patch also provides some compat files so that ovpn-dco can +continue to compile also on older kernels. + +Fixes: https://github.com/OpenVPN/ovpn-dco/issues/42 +Signed-off-by: Antonio Quartulli <antonio@openvpn.net> +--- + Makefile | 4 ++-- + compat-include/net/gso.h | 20 ++++++++++++++++++++ + drivers/net/ovpn-dco/ovpn.c | 1 + + 3 files changed, 23 insertions(+), 2 deletions(-) + create mode 100644 compat-include/net/gso.h + +diff --git a/Makefile b/Makefile +index a36a4d2..fe535e2 100644 +--- a/Makefile ++++ b/Makefile +@@ -34,8 +34,8 @@ ELFLAG := $(EL8FLAG) $(EL9FLAG) + NOSTDINC_FLAGS += \ + -I$(PWD)/include/ \ + $(CFLAGS) $(ELFLAG) \ +- -include $(PWD)/linux-compat.h +-# -I$(PWD)/compat-include/ ++ -include $(PWD)/linux-compat.h \ ++ -I$(PWD)/compat-include/ + + ifneq ($(REVISION),) + NOSTDINC_FLAGS += -DOVPN_DCO_VERSION=\"$(REVISION)\" +diff --git a/compat-include/net/gso.h b/compat-include/net/gso.h +new file mode 100644 +index 0000000..2e41c8b +--- /dev/null ++++ b/compat-include/net/gso.h +@@ -0,0 +1,20 @@ ++/* SPDX-License-Identifier: GPL-2.0-only */ ++/* OpenVPN data channel accelerator ++ * ++ * Copyright (C) 2023 OpenVPN, Inc. ++ * ++ * Author: Antonio Quartulli <antonio@openvpn.net> ++ */ ++ ++#ifndef _NET_OVPN_COMPAT_NET_GSO_H ++#define _NET_OVPN_COMPAT_NET_GSO_H ++ ++#include <linux/version.h> ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 10) ++#include_next <net/gso.h> ++#else ++#include <linux/netdevice.h> ++#endif ++ ++#endif /* _NET_OVPN_COMPAT_NET_GSO_H */ +diff --git a/drivers/net/ovpn-dco/ovpn.c b/drivers/net/ovpn-dco/ovpn.c +index 772a34b..82e9f94 100644 +--- a/drivers/net/ovpn-dco/ovpn.c ++++ b/drivers/net/ovpn-dco/ovpn.c +@@ -22,6 +22,7 @@ + #include "udp.h" + + #include <linux/workqueue.h> ++#include <net/gso.h> + #include <uapi/linux/if_ether.h> + + static const unsigned char ovpn_keepalive_message[] = { +-- +2.41.0 + diff --git a/net-vpn/ovpn-dco/metadata.xml b/net-vpn/ovpn-dco/metadata.xml new file mode 100644 index 000000000000..747c7bc21234 --- /dev/null +++ b/net-vpn/ovpn-dco/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <longdescription>This kernel module allows OpenVPN to offload any data plane management to the +linux kernel, thus allowing it to exploit any Linux low level API, while avoiding +expensive and slow payload transfer between kernel space and user space.</longdescription> + <use> + <flag name="debug">Enable debug output in dmesg</flag> + </use> + <upstream> + <remote-id type="github">OpenVPN/ovpn-dco</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/ovpn-dco/ovpn-dco-0.2.20230426.ebuild b/net-vpn/ovpn-dco/ovpn-dco-0.2.20230426.ebuild new file mode 100644 index 000000000000..1537662149ad --- /dev/null +++ b/net-vpn/ovpn-dco/ovpn-dco-0.2.20230426.ebuild @@ -0,0 +1,62 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic linux-mod-r1 + +DESCRIPTION="OpenVPN Data Channel Offload in the linux kernel" +HOMEPAGE="https://github.com/OpenVPN/ovpn-dco" + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/OpenVPN/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug" + +PATCHES=( + "${FILESDIR}"/0001-ovpn-dco-include-new-GSO-header-file.patch +) + +pkg_setup() { + CONFIG_CHECK=" + INET + NET + NET_UDP_TUNNEL + DST_CACHE + CRYPTO + CRYPTO_AES + CRYPTO_GCM + CRYPTO_CHACHA20POLY1305" + + linux-mod-r1_pkg_setup +} + +src_configure() { + # Causes build failures because it builds with -pg, + # bug #907744 + filter-flags -fomit-frame-pointer + default +} + +src_compile() { + local modlist=( "ovpn-dco-v2=updates:.:drivers/net/ovpn-dco" ) + local modargs=( KERNEL_SRC="${KERNEL_DIR}" ) + [[ ${PV} != 9999 ]] && modargs+=( REVISION="${PV}" ) + use debug && modargs+=( DEBUG=1 ) + + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /usr/share/${PN} + doins -r include +} diff --git a/net-vpn/ovpn-dco/ovpn-dco-0.2.20231117.ebuild b/net-vpn/ovpn-dco/ovpn-dco-0.2.20231117.ebuild new file mode 100644 index 000000000000..3c7701593930 --- /dev/null +++ b/net-vpn/ovpn-dco/ovpn-dco-0.2.20231117.ebuild @@ -0,0 +1,58 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic linux-mod-r1 + +DESCRIPTION="OpenVPN Data Channel Offload in the linux kernel" +HOMEPAGE="https://github.com/OpenVPN/ovpn-dco" + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/OpenVPN/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug" + +pkg_setup() { + CONFIG_CHECK=" + INET + NET + NET_UDP_TUNNEL + DST_CACHE + CRYPTO + CRYPTO_AES + CRYPTO_GCM + CRYPTO_CHACHA20POLY1305" + + linux-mod-r1_pkg_setup +} + +src_configure() { + # Causes build failures because it builds with -pg, + # bug #907744 + filter-flags -fomit-frame-pointer + default +} + +src_compile() { + local modlist=( "ovpn-dco-v2=updates:.:drivers/net/ovpn-dco" ) + local modargs=( KERNEL_SRC="${KERNEL_DIR}" ) + [[ ${PV} != 9999 ]] && modargs+=( REVISION="${PV}" ) + use debug && modargs+=( DEBUG=1 ) + + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /usr/share/${PN} + doins -r include +} diff --git a/net-vpn/ovpn-dco/ovpn-dco-0.2.20241216.ebuild b/net-vpn/ovpn-dco/ovpn-dco-0.2.20241216.ebuild new file mode 100644 index 000000000000..3c7701593930 --- /dev/null +++ b/net-vpn/ovpn-dco/ovpn-dco-0.2.20241216.ebuild @@ -0,0 +1,58 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic linux-mod-r1 + +DESCRIPTION="OpenVPN Data Channel Offload in the linux kernel" +HOMEPAGE="https://github.com/OpenVPN/ovpn-dco" + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/OpenVPN/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug" + +pkg_setup() { + CONFIG_CHECK=" + INET + NET + NET_UDP_TUNNEL + DST_CACHE + CRYPTO + CRYPTO_AES + CRYPTO_GCM + CRYPTO_CHACHA20POLY1305" + + linux-mod-r1_pkg_setup +} + +src_configure() { + # Causes build failures because it builds with -pg, + # bug #907744 + filter-flags -fomit-frame-pointer + default +} + +src_compile() { + local modlist=( "ovpn-dco-v2=updates:.:drivers/net/ovpn-dco" ) + local modargs=( KERNEL_SRC="${KERNEL_DIR}" ) + [[ ${PV} != 9999 ]] && modargs+=( REVISION="${PV}" ) + use debug && modargs+=( DEBUG=1 ) + + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /usr/share/${PN} + doins -r include +} diff --git a/net-vpn/ovpn-dco/ovpn-dco-0.2.20251017.ebuild b/net-vpn/ovpn-dco/ovpn-dco-0.2.20251017.ebuild new file mode 100644 index 000000000000..3c7701593930 --- /dev/null +++ b/net-vpn/ovpn-dco/ovpn-dco-0.2.20251017.ebuild @@ -0,0 +1,58 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic linux-mod-r1 + +DESCRIPTION="OpenVPN Data Channel Offload in the linux kernel" +HOMEPAGE="https://github.com/OpenVPN/ovpn-dco" + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/OpenVPN/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug" + +pkg_setup() { + CONFIG_CHECK=" + INET + NET + NET_UDP_TUNNEL + DST_CACHE + CRYPTO + CRYPTO_AES + CRYPTO_GCM + CRYPTO_CHACHA20POLY1305" + + linux-mod-r1_pkg_setup +} + +src_configure() { + # Causes build failures because it builds with -pg, + # bug #907744 + filter-flags -fomit-frame-pointer + default +} + +src_compile() { + local modlist=( "ovpn-dco-v2=updates:.:drivers/net/ovpn-dco" ) + local modargs=( KERNEL_SRC="${KERNEL_DIR}" ) + [[ ${PV} != 9999 ]] && modargs+=( REVISION="${PV}" ) + use debug && modargs+=( DEBUG=1 ) + + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /usr/share/${PN} + doins -r include +} diff --git a/net-vpn/ovpn-dco/ovpn-dco-9999.ebuild b/net-vpn/ovpn-dco/ovpn-dco-9999.ebuild new file mode 100644 index 000000000000..46cd7f9d9e26 --- /dev/null +++ b/net-vpn/ovpn-dco/ovpn-dco-9999.ebuild @@ -0,0 +1,58 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic linux-mod-r1 + +DESCRIPTION="OpenVPN Data Channel Offload in the linux kernel" +HOMEPAGE="https://github.com/OpenVPN/ovpn-dco" + +if [[ ${PV} != 9999 ]]; then + SRC_URI="https://github.com/OpenVPN/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +else + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenVPN/${PN}.git" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug" + +pkg_setup() { + CONFIG_CHECK=" + INET + NET + NET_UDP_TUNNEL + DST_CACHE + CRYPTO + CRYPTO_AES + CRYPTO_GCM + CRYPTO_CHACHA20POLY1305" + + linux-mod-r1_pkg_setup +} + +src_configure() { + # Causes build failures because it builds with -pg, + # bug #907744 + filter-flags -fomit-frame-pointer + default +} + +src_compile() { + local modlist=( "ovpn-dco-v2=updates:.:drivers/net/ovpn-dco" ) + local modargs=( KERNEL_SRC="${KERNEL_DIR}" ) + [[ ${PV} != 9999 ]] && modargs+=( REVISION="${PV}" ) + use debug && modargs+=( DEBUG=1 ) + + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /usr/share/${PN} + doins -r include +} diff --git a/net-vpn/pptpd/Manifest b/net-vpn/pptpd/Manifest new file mode 100644 index 000000000000..24946a100c28 --- /dev/null +++ b/net-vpn/pptpd/Manifest @@ -0,0 +1 @@ +DIST pptpd-1.4.0.tar.gz 252167 BLAKE2B c7fa9397c0a1b7c1ae5f22f9d7f85ba1bb60966984506f7b7c7b4f5dce69efa717f41e8d9a717e4c6f482d2d3e4052611709e0b825a2fcc63fabf19a53a550f0 SHA512 cfb4caef3025c0721e7fabf8b7bf595739f2d3048555b30616cdadc37e70ba9e1c50561c25091dd617b5448da2816aeaf83aea0fc2ef6b0dd5e3fe35d9591484 diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-c99.patch b/net-vpn/pptpd/files/pptpd-1.4.0-c99.patch new file mode 100644 index 000000000000..fd14963b50e2 --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-c99.patch @@ -0,0 +1,16 @@ +https://bugs.gentoo.org/920775 +https://bugs.gentoo.org/927333 +https://sourceforge.net/p/poptop/bugs/54/ +--- a/compat.c ++++ b/compat.c +@@ -10,9 +10,9 @@ + + #include "compat.h" + #include "our_syslog.h" ++#include <string.h> + + #ifndef HAVE_STRLCPY +-#include <string.h> + #include <stdio.h> + + void strlcpy(char *dst, const char *src, size_t size) diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-gentoo.patch b/net-vpn/pptpd/files/pptpd-1.4.0-gentoo.patch new file mode 100644 index 000000000000..9e7db7ea3454 --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-gentoo.patch @@ -0,0 +1,59 @@ +diff -Naur pptpd-1.3.4.orig/Makefile.am pptpd-1.3.4/Makefile.am +--- pptpd-1.3.4.orig/Makefile.am 2007-04-16 04:53:53.000000000 +0400 ++++ pptpd-1.3.4/Makefile.am 2007-05-01 21:29:15.000000000 +0400 +@@ -11,7 +11,7 @@ + ## warning with -Wmissing-prototypes). + ## -Wmissing-prototypes removed (eg, Linux 2.2.6 headers + ## aren't up to it). +-CFLAGS = -O2 -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' ++CFLAGS += -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' + #CFLAGS = -O2 -fno-builtin -Wall -ansi -DSBINDIR='"$(sbindir)"' + #CFLAGS = -O2 -fno-builtin -Wall -ansi -pedantic -Wmissing-prototypes -Werror -DSBINDIR='"$(sbindir)"' + +diff -Naur pptpd-1.3.4.orig/plugins/Makefile pptpd-1.3.4/plugins/Makefile +--- pptpd-1.3.4.orig/plugins/Makefile 2006-08-03 06:02:01.000000000 +0400 ++++ pptpd-1.3.4/plugins/Makefile 2007-05-01 21:29:15.000000000 +0400 +@@ -1,6 +1,5 @@ +-CC = gcc ++CC ?= gcc +-COPTS = -O2 -g +-CFLAGS = $(COPTS) -I.. -I../../include -fPIC ++CFLAGS += -I.. -I../../include -fPIC +-LDFLAGS = -shared ++LDFLAGS += -shared + LDADD = -lutil + INSTALL = install -o root +diff -Naur pptpd-1.3.4.orig/pptpgre.c pptpd-1.3.4/pptpgre.c +--- pptpd-1.3.4.orig/pptpgre.c 2007-04-16 04:21:02.000000000 +0400 ++++ pptpd-1.3.4/pptpgre.c 2007-05-01 21:29:50.000000000 +0400 +@@ -326,9 +326,11 @@ + "GRE: timeout waiting for %d packets", + head->seq - gre.seq_recv - 1); + } ++#ifdef LOG_DEBUG_GRE_ACCEPTING_PACKET + if (pptpctrl_debug) + syslog(LOG_DEBUG, "GRE: accepting #%d from queue", + head->seq); ++#endif + gre.seq_recv = head->seq; + status = callback(cl, head->packet, head->packlen); + pqueue_del(head); +diff -Naur pptpd-1.3.4.orig/pqueue.c pptpd-1.3.4/pqueue.c +--- pptpd-1.3.4.orig/pqueue.c 2005-08-03 12:53:22.000000000 +0400 ++++ pptpd-1.3.4/pqueue.c 2007-05-01 21:29:15.000000000 +0400 +@@ -7,13 +7,11 @@ + #include "pqueue.h" + + #ifdef DEBUG_PQUEUE +-#define DEBUG_ON 1 ++# define DEBUG_CMD(_a) { _a } + #else +-#define DEBUG_ON 0 ++# define DEBUG_CMD(_a) + #endif + +-#define DEBUG_CMD(_a) if (DEBUG_ON) { _a } +- + #define MIN_CAPACITY 128 /* min allocated buffer for a packet */ + + static int pqueue_alloc (int seq, unsigned char *packet, int packlen, pqueue_t **new); diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-libdir.patch b/net-vpn/pptpd/files/pptpd-1.4.0-libdir.patch new file mode 100644 index 000000000000..898c3aea89dc --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-libdir.patch @@ -0,0 +1,24 @@ +diff -r -U 3 pptpd-1.4.0.orig/Makefile.am pptpd-1.4.0/Makefile.am +--- pptpd-1.4.0.orig/Makefile.am 2020-06-29 00:24:23.301857353 +0300 ++++ pptpd-1.4.0/Makefile.am 2020-06-29 00:25:16.072686760 +0300 +@@ -11,7 +11,7 @@ + ## warning with -Wmissing-prototypes). + ## -Wmissing-prototypes removed (eg, Linux 2.2.6 headers + ## aren't up to it). +-CFLAGS += -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' ++CFLAGS += -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' -DLIBDIR='"$(libdir)"' + #CFLAGS = -O2 -fno-builtin -Wall -ansi -DSBINDIR='"$(sbindir)"' + #CFLAGS = -O2 -fno-builtin -Wall -ansi -pedantic -Wmissing-prototypes -Werror -DSBINDIR='"$(sbindir)"' + +diff -r -U 3 pptpd-1.4.0.orig/pptpctrl.c pptpd-1.4.0/pptpctrl.c +--- pptpd-1.4.0.orig/pptpctrl.c 2013-10-23 08:53:19.000000000 +0400 ++++ pptpd-1.4.0/pptpctrl.c 2020-06-29 00:25:23.356525131 +0300 +@@ -786,7 +786,7 @@ + + if (pptp_logwtmp) { + pppd_argv[an++] = "plugin"; +- pppd_argv[an++] = "/usr/lib/pptpd/pptpd-logwtmp.so"; ++ pppd_argv[an++] = LIBDIR "/pptpd/pptpd-logwtmp.so"; + pppd_argv[an++] = "pptpd-original-ip"; + pppd_argv[an++] = inet_ntoa(inetaddrs[1]); + } diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-logwtmp.patch b/net-vpn/pptpd/files/pptpd-1.4.0-logwtmp.patch new file mode 100644 index 000000000000..529802aac19d --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-logwtmp.patch @@ -0,0 +1,25 @@ +diff '--color=auto' -ru a/Makefile.am b/Makefile.am +--- a/Makefile.am 2025-01-05 09:10:10.847711246 +0000 ++++ b/Makefile.am 2025-01-05 09:11:31.846314376 +0000 +@@ -51,7 +51,9 @@ + + bcrelay_SOURCES = bcrelay.c defaults.h our_syslog.h our_getopt.h + ++if HAVE_LOGWTMP + subdirs = plugins ++endif + + all-local: + for d in $(subdirs); do $(MAKE) $(MFLAGS) -C $$d all; done +diff '--color=auto' -ru a/configure.ac b/configure.ac +--- a/configure.ac 2025-01-05 09:10:10.855711207 +0000 ++++ b/configure.ac 2025-01-05 09:11:01.901461097 +0000 +@@ -187,6 +187,8 @@ + AC_CHECK_LIB(socket, accept) + AC_CHECK_LIB(nsl, gethostbyname) + AC_CHECK_LIB(util, openpty) ++AC_CHECK_LIB(util, logwtmp, [has_logwtmp=true]) ++AM_CONDITIONAL([HAVE_LOGWTMP], [test "x$has_logwtmp" = "xtrue"]) + AC_CHECK_LIB(intl, gettext) + LIBS="$XYZZY_LIBS" + if test "$ac_cv_lib_c_accept" = no; then diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-musl.patch b/net-vpn/pptpd/files/pptpd-1.4.0-musl.patch new file mode 100644 index 000000000000..998a07acf7e9 --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-musl.patch @@ -0,0 +1,16 @@ +Modified patch from Alpine Linux +https://git.alpinelinux.org/aports/plain/main/pptpd/fix_MSG_TRYHARD.patch + +--- a/bcrelay.c ++++ b/bcrelay.c +@@ -103,6 +103,10 @@ + #include "our_syslog.h" + #include "our_getopt.h" + ++#ifndef MSG_TRYHARD ++ #define MSG_TRYHARD MSG_DONTROUTE ++#endif ++ + //#define VERSION "1.0" + + /* uncomment if you compile this without poptop's configure script */ diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-pidfile.patch b/net-vpn/pptpd/files/pptpd-1.4.0-pidfile.patch new file mode 100644 index 000000000000..59bc4a43ecd9 --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-pidfile.patch @@ -0,0 +1,33 @@ +--- a/pptpd.c 2016-08-16 15:35:51.660000000 +0300 ++++ b/pptpd.c 2016-08-16 15:36:01.010000000 +0300 +@@ -115,7 +115,7 @@ + printf(" (default is /etc/ppp/options).\n"); + #endif + printf(" [-p] [--pidfile file] Specifies the file to write the process ID to\n"); +- printf(" (default is /var/run/pptpd.pid).\n"); ++ printf(" (default is /run/pptpd.pid).\n"); + #if !defined(BSDUSER_PPP) + printf(" [-s] [--speed baud] Specifies the baud speed for the PPP daemon\n"); + printf(" (default is 115200).\n"); +--- a/pptpd.8 2016-08-16 15:34:53.480000000 +0300 ++++ b/pptpd.8 2016-08-16 15:35:11.650000000 +0300 +@@ -72,7 +72,7 @@ + .TP + \fB-p\fR|\fB--pidfile \fIpid-file + specifies an alternate location to store the process ID file (default +-.IR /var/run/pptpd.pid ). ++.IR /run/pptpd.pid ). + + .TP + \fB-s\fR|\fB--speed \fIbaud +--- a/defaults.h 2016-08-16 15:35:01.050000000 +0300 ++++ b/defaults.h 2016-08-16 15:35:20.190000000 +0300 +@@ -43,7 +43,7 @@ + #else + #define PPTPD_CONFIG_FILE_DEFAULT "/etc/pptpd.conf" + #endif +-#define PIDFILE_DEFAULT "/var/run/pptpd.pid" ++#define PIDFILE_DEFAULT "/run/pptpd.pid" + + #define STIMEOUT_DEFAULT 10 /* seconds */ + diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-ppp-2.5.0.patch b/net-vpn/pptpd/files/pptpd-1.4.0-ppp-2.5.0.patch new file mode 100644 index 000000000000..b3525052a873 --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-ppp-2.5.0.patch @@ -0,0 +1,83 @@ +https://bugs.gentoo.org/904877 + +From ea207b89c61e3a201155b973307ee45413f0d058 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Fri, 28 Apr 2023 16:37:44 -0400 +Subject: [PATCH] pptp-logwtmp: update for ppp-2.5.0 + +Signed-off-by: Mike Gilbert <floppym@gentoo.org> +--- + plugins/pptpd-logwtmp.c | 25 +++++++++++++++---------- + 1 file changed, 15 insertions(+), 10 deletions(-) + +diff --git a/plugins/pptpd-logwtmp.c b/plugins/pptpd-logwtmp.c +index ac5ecc2..457bbce 100644 +--- a/plugins/pptpd-logwtmp.c ++++ b/plugins/pptpd-logwtmp.c +@@ -12,14 +12,16 @@ + #include <unistd.h> + #include <utmp.h> + #include <string.h> ++#include <limits.h> + #include <pppd/pppd.h> ++#include <pppd/options.h> + +-char pppd_version[] = VERSION; ++char pppd_version[] = PPPD_VERSION; + + static char pptpd_original_ip[PATH_MAX+1]; + static bool pptpd_logwtmp_strip_domain = 0; + +-static option_t options[] = { ++static struct option options[] = { + { "pptpd-original-ip", o_string, pptpd_original_ip, + "Original IP address of the PPTP connection", + OPT_STATIC, NULL, PATH_MAX }, +@@ -28,7 +30,7 @@ static option_t options[] = { + { NULL } + }; + +-static char *reduce(char *user) ++static const char *reduce(const char *user) + { + char *sep; + if (!pptpd_logwtmp_strip_domain) return user; +@@ -42,8 +44,10 @@ static char *reduce(char *user) + + static void ip_up(void *opaque, int arg) + { +- char *user = reduce(peer_authname); +- if (debug) ++ const char *peer_authname = ppp_peer_authname(NULL, 0); ++ const char *user = reduce(peer_authname); ++ const char *ifname = ppp_ifname(); ++ if (debug_on()) + notice("pptpd-logwtmp.so ip-up %s %s %s", ifname, user, + pptpd_original_ip); + logwtmp(ifname, user, pptpd_original_ip); +@@ -51,16 +55,17 @@ static void ip_up(void *opaque, int arg) + + static void ip_down(void *opaque, int arg) + { +- if (debug) ++ const char *ifname = ppp_ifname(); ++ if (debug_on()) + notice("pptpd-logwtmp.so ip-down %s", ifname); + logwtmp(ifname, "", ""); + } + + void plugin_init(void) + { +- add_options(options); +- add_notifier(&ip_up_notifier, ip_up, NULL); +- add_notifier(&ip_down_notifier, ip_down, NULL); +- if (debug) ++ ppp_add_options(options); ++ ppp_add_notify(NF_IP_UP, ip_up, NULL); ++ ppp_add_notify(NF_IP_DOWN, ip_down, NULL); ++ if (debug_on()) + notice("pptpd-logwtmp: $Version$"); + } +-- +2.40.1 + diff --git a/net-vpn/pptpd/files/pptpd-1.4.0-sandbox-fix.patch b/net-vpn/pptpd/files/pptpd-1.4.0-sandbox-fix.patch new file mode 100644 index 000000000000..2162509d7d48 --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-1.4.0-sandbox-fix.patch @@ -0,0 +1,21 @@ +--- a/plugins/Makefile 2013-05-15 14:36:33.994231829 +0400 ++++ b/plugins/Makefile 2013-05-15 14:37:06.686234429 +0400 +@@ -17,14 +17,14 @@ + %.so: %.c + $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^ $(LDADD) + +-LIBDIR ?= $(DESTDIR)$(prefix)/lib/pptpd ++LIBDIR ?= $(prefix)/lib/pptpd + + install: $(PLUGINS) +- $(INSTALL) -d $(LIBDIR) +- $(INSTALL) $? $(LIBDIR) ++ $(INSTALL) -d $(DESTDIR)$(LIBDIR) ++ $(INSTALL) $? $(DESTDIR)$(LIBDIR) + + uninstall: +- rm -f $(LIBDIR)$(PLUGINS) ++ rm -f $(DESTDIR)$(LIBDIR)$(PLUGINS) + + clean: + rm -f *.o *.so *.a diff --git a/net-vpn/pptpd/files/pptpd-confd b/net-vpn/pptpd/files/pptpd-confd new file mode 100644 index 000000000000..1169e57f1c7c --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-confd @@ -0,0 +1,5 @@ +# Config file for /etc/init.d/pptpd + +# Any extra options you want to pass to pptpd +# on start-up should be put here. +PPTPD_OPTS="" diff --git a/net-vpn/pptpd/files/pptpd-init-r2 b/net-vpn/pptpd/files/pptpd-init-r2 new file mode 100644 index 000000000000..6bbf9d68143e --- /dev/null +++ b/net-vpn/pptpd/files/pptpd-init-r2 @@ -0,0 +1,19 @@ +#!/sbin/openrc-run + +depend() { + need net +} + +start() { + ebegin "Starting pptpd" + start-stop-daemon --start --quiet --exec /usr/sbin/pptpd -- ${PPTPD_OPTS} + eend $? +} + +stop() { + ebegin "Stopping pptpd" + start-stop-daemon --stop --quiet --pidfile /run/pptpd.pid + result=$? + killall -SIGTERM pptpctrl &>/dev/null + eend $result +} diff --git a/net-vpn/pptpd/metadata.xml b/net-vpn/pptpd/metadata.xml new file mode 100644 index 000000000000..655ccf466886 --- /dev/null +++ b/net-vpn/pptpd/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <use> + <flag name="gre-extreme-debug">Log all GRE accepted packets when in + debug mode (required if you want upstream support)</flag> + </use> + <upstream> + <remote-id type="sourceforge">poptop</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/pptpd/pptpd-1.4.0-r5.ebuild b/net-vpn/pptpd/pptpd-1.4.0-r5.ebuild new file mode 100644 index 000000000000..b2386c1f14c5 --- /dev/null +++ b/net-vpn/pptpd/pptpd-1.4.0-r5.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic toolchain-funcs + +DESCRIPTION="Linux Point-to-Point Tunnelling Protocol Server" +HOMEPAGE="https://poptop.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/poptop/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc x86" +IUSE="gre-extreme-debug tcpd" + +RDEPEND="net-dialup/ppp:= + tcpd? ( sys-apps/tcp-wrappers )" +DEPEND="${RDEPEND} + elibc_musl? ( net-libs/ppp-defs )" + +DOCS=( AUTHORS ChangeLog NEWS README TODO ) + +src_prepare() { + # configure.in is actually configure.ac + mv configure.in configure.ac || die + + # Automake 1.13 compatibility, bug #469476 + sed -i -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADER/' configure.ac || die 'sed on configure.ac failed' + + # remove 'missing' script to prevent warnings + rm missing || die 'remove missing script failed' + + # respect compiler, bug #461722 + tc-export CC + + local PATCHES=( + "${FILESDIR}/${P}-gentoo.patch" + "${FILESDIR}/${P}-sandbox-fix.patch" + "${FILESDIR}/${P}-pidfile.patch" + "${FILESDIR}/${P}-libdir.patch" + "${FILESDIR}/${P}-musl.patch" + "${FILESDIR}/${P}-c99.patch" + "${FILESDIR}/${P}-logwtmp.patch" + ) + + if has_version -d ">=net-dialup/ppp-2.5.0"; then + # https://bugs.gentoo.org/904877 + PATCHES+=( "${FILESDIR}/${P}-ppp-2.5.0.patch" ) + fi + + # Call to default src_prepare to apply patches + default + + eautoreconf +} + +src_configure() { + use gre-extreme-debug && append-cppflags "-DLOG_DEBUG_GRE_ACCEPTING_PACKET" + econf \ + --enable-bcrelay \ + $(use tcpd && echo "--with-libwrap") +} + +src_compile() { + emake COPTS="${CFLAGS}" +} + +src_install() { + default + + insinto /etc + doins samples/pptpd.conf + + insinto /etc/ppp + doins samples/options.pptpd + + newinitd "${FILESDIR}/pptpd-init-r2" pptpd + newconfd "${FILESDIR}/pptpd-confd" pptpd + + dodoc README.* + dodoc -r samples +} diff --git a/net-vpn/proton-vpn-gtk-app/Manifest b/net-vpn/proton-vpn-gtk-app/Manifest new file mode 100644 index 000000000000..20f15c7fb963 --- /dev/null +++ b/net-vpn/proton-vpn-gtk-app/Manifest @@ -0,0 +1 @@ +DIST proton-vpn-gtk-app-4.15.2.tar.gz 304585 BLAKE2B 9a302eea00233b30e208abd7ed39082c1cf5793e8fc095ad232221166504bdc444284fc1a9b47f8c60204c5ea0b06491497ca59cb5a84ca9287387392905d45a SHA512 54f10b697592f19e47d6ced143748d3d685397ee2d5069a6df2302cf83026d148be4945ed2eb7a418c39eb7c4b2ac6968338c6df7a55b269e22734d6d6fa007a diff --git a/net-vpn/proton-vpn-gtk-app/files/proton-vpn-gtk-app-4.11.0-remove-anonymous-bug-report.patch b/net-vpn/proton-vpn-gtk-app/files/proton-vpn-gtk-app-4.11.0-remove-anonymous-bug-report.patch new file mode 100644 index 000000000000..fc724b6d6d56 --- /dev/null +++ b/net-vpn/proton-vpn-gtk-app/files/proton-vpn-gtk-app-4.11.0-remove-anonymous-bug-report.patch @@ -0,0 +1,154 @@ +From 67ee6693075f1d65ecaf0a9d76493fbbc84f8022 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Matt=C3=A9o=20Rossillol=E2=80=91=E2=80=91Laruelle?= + <beatussum@protonmail.com> +Date: Sat, 4 Oct 2025 17:01:29 +0200 +Subject: [PATCH] remove anonymous bug report +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This feature depends on dev-python/sentry-sdk, a package that was removed from +the main tree due to its difficulty in being packaged correctly. + +Signed-off-by: Mattéo Rossillol‑‑Laruelle <beatussum@protonmail.com> +--- + proton/vpn/app/gtk/controller.py | 13 ------- + proton/vpn/app/gtk/utils/exception_handler.py | 4 -- + .../menu/settings/general_settings.py | 14 ------- + tests/unit/utils/test_exception_handler.py | 37 +------------------ + 4 files changed, 1 insertion(+), 67 deletions(-) + +diff --git a/proton/vpn/app/gtk/controller.py b/proton/vpn/app/gtk/controller.py +index 450db35..2a51c6a 100644 +--- a/proton/vpn/app/gtk/controller.py ++++ b/proton/vpn/app/gtk/controller.py +@@ -499,19 +499,6 @@ class Controller: # pylint: disable=too-many-public-methods, too-many-instance- + key=lambda protocol: protocol.cls.ui_protocol + ) + +- def send_error_to_proton( +- self, +- error: Union[ +- BaseException, +- tuple[ +- Optional[Type[BaseException]], +- Optional[BaseException], +- Optional[TracebackType]] +- ] +- ): +- """Sends the error to Sentry.""" +- self._api.usage_reporting.report_error(error) +- + def run_subprocess(self, commands: list, shell: bool = False) -> Future: + """Run asynchronously subprocess command so it does not block UI.""" + return self.executor.submit( +diff --git a/proton/vpn/app/gtk/utils/exception_handler.py b/proton/vpn/app/gtk/utils/exception_handler.py +index 55bf536..18ae4c6 100644 +--- a/proton/vpn/app/gtk/utils/exception_handler.py ++++ b/proton/vpn/app/gtk/utils/exception_handler.py +@@ -260,10 +260,6 @@ class ExceptionHandler: + exc_info=(exc_type, exc_value, exc_traceback) + ) + +- if self.controller: +- self.controller.send_error_to_proton( +- (exc_type, exc_value, exc_traceback)) +- + def __enter__(self): + self.enable() + return self +diff --git a/proton/vpn/app/gtk/widgets/headerbar/menu/settings/general_settings.py b/proton/vpn/app/gtk/widgets/headerbar/menu/settings/general_settings.py +index f690767..39ee722 100644 +--- a/proton/vpn/app/gtk/widgets/headerbar/menu/settings/general_settings.py ++++ b/proton/vpn/app/gtk/widgets/headerbar/menu/settings/general_settings.py +@@ -87,10 +87,6 @@ class GeneralSettings(BaseCategoryContainer): # pylint: disable=too-many-instan + START_APP_MINIMIZED_LABEL = "Start app minimized" + START_APP_MINIMIZED_DESCRIPTION = "When enabled, the app starts minimized "\ + "to the tray." +- ANONYMOUS_CRASH_REPORTS_LABEL = "Share anonymous crash reports" +- ANONYMOUS_CRASH_REPORTS_DESCRIPTION = "Crash reports help us fix bugs, detect firewalls, "\ +- "and avoid VPN blocks.\n\nThese statistics do not contain your IP address, and they "\ +- "cannot be used to identify you. We'll never share them with third parties." + + def __init__( + self, controller: Controller, +@@ -109,7 +105,6 @@ class GeneralSettings(BaseCategoryContainer): # pylint: disable=too-many-instan + self.build_start_app_minimized() + self.build_tray_pinned_servers() + +- self.build_anonymous_crash_reports() + self.build_beta_upgrade() + + def build_connect_at_app_startup(self): +@@ -144,15 +139,6 @@ class GeneralSettings(BaseCategoryContainer): # pylint: disable=too-many-instan + controller=self._controller, tray_indicator=self._tray_indicator + ), False, False, 0) + +- def build_anonymous_crash_reports(self): +- """Builds and adds the `anonymous_crash_reports` setting to the widget.""" +- self.pack_start(ToggleWidget( +- controller=self._controller, +- title=self.ANONYMOUS_CRASH_REPORTS_LABEL, +- description=self.ANONYMOUS_CRASH_REPORTS_DESCRIPTION, +- setting_name="settings.anonymous_crash_reports" +- ), False, False, 0) +- + def build_beta_upgrade(self): + """Builds and adds the `Early Access` setting to the widget.""" + early_access = EarlyAccessWidget(self._controller) +diff --git a/tests/unit/utils/test_exception_handler.py b/tests/unit/utils/test_exception_handler.py +index d925d86..74d35ec 100644 +--- a/tests/unit/utils/test_exception_handler.py ++++ b/tests/unit/utils/test_exception_handler.py +@@ -150,41 +150,6 @@ def test_handle_exceptions_that_should_be_raised_again(exception_type): + exc_traceback=None + ) + +-@pytest.mark.parametrize( +- "exception,error_title,error_message", [ +- (Exception("Unexpected error"), ExceptionHandler.GENERIC_ERROR_TITLE, ExceptionHandler.GENERIC_ERROR_MESSAGE), +- ] +-) +-def test_handle_exceptions_reporting_remotely( +- exception, error_title, error_message +-): +- send_error = SimpleNamespace(invoked=False) +- +- def send_error_to_proton(error): +- exc_type, exc_value, exc_traceback = error +- +- # Make sure we're sent the correct information +- assert exc_type is Exception +- assert isinstance(exc_value, Exception) +- +- # Make sure we were actually invoked +- send_error.invoked = True +- +- controller = Mock() +- controller.send_error_to_proton = send_error_to_proton +- +- main_widget_mock = Mock() +- exception_handler = ExceptionHandler(main_widget=main_widget_mock, +- controller=controller) +- +- exception_handler.handle_exception( +- exc_type=type(exception), +- exc_value=exception, +- exc_traceback=None +- ) +- +- assert send_error.invoked, "send_error_to_proton not invoked" +- + def test_handle_exception_logs_user_out_and_shows_missing_scope_dialog_on_proton_api_missing_scope_error(): + main_widget_mock = Mock(MainWidget) + exception_handler = ExceptionHandler(main_widget=main_widget_mock) +@@ -214,4 +179,4 @@ def test_handle_exception_logs_user_out_and_shows_missing_scope_dialog_on_proton + ) + + main_widget_mock.logout.assert_called_once() +- main_widget_mock.notifications.show_error_dialog.assert_called_once() +\ No newline at end of file ++ main_widget_mock.notifications.show_error_dialog.assert_called_once() +-- +2.49.1 + diff --git a/net-vpn/proton-vpn-gtk-app/metadata.xml b/net-vpn/proton-vpn-gtk-app/metadata.xml new file mode 100644 index 000000000000..7266843cea47 --- /dev/null +++ b/net-vpn/proton-vpn-gtk-app/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>beatussum@protonmail.com</email> + <name>Mattéo Rossillol‑‑Laruelle</name> + </maintainer> + + <stabilize-allarches/> + + <upstream> + <maintainer status="active"> + <name>Proton AG</name> + <email>opensource@proton.me</email> + </maintainer> + + <bugs-to>https://github.com/ProtonVPN/proton-vpn-gtk-app/issues</bugs-to> + <remote-id type="github">ProtonVPN/proton-vpn-gtk-app</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/proton-vpn-gtk-app/proton-vpn-gtk-app-4.15.2.ebuild b/net-vpn/proton-vpn-gtk-app/proton-vpn-gtk-app-4.15.2.ebuild new file mode 100644 index 000000000000..acf7d154fcaa --- /dev/null +++ b/net-vpn/proton-vpn-gtk-app/proton-vpn-gtk-app-4.15.2.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_SINGLE_IMPL=true +DISTUTILS_USE_PEP517=setuptools + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit desktop distutils-r1 + +DESCRIPTION="Proton VPN GTK app" +HOMEPAGE="https://github.com/ProtonVPN/proton-vpn-gtk-app" +SRC_URI="https://github.com/ProtonVPN/proton-vpn-gtk-app/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +RESTRICT="test" + +RDEPEND=" + $(python_gen_cond_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + dev-python/distro[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/proton-core[${PYTHON_USEDEP}] + dev-python/proton-keyring-linux[${PYTHON_USEDEP}] + >=dev-python/proton-vpn-api-core-0.46.0[${PYTHON_USEDEP}] + dev-python/proton-vpn-local-agent[${PYTHON_USEDEP}] + dev-python/proton-vpn-network-manager[${PYTHON_USEDEP}] + dev-python/pycairo[${PYTHON_USEDEP}] + dev-python/pygobject[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ') +" + +src_install() { + distutils-r1_src_install + + doicon rpmbuild/SOURCES/proton-vpn-logo.svg + domenu rpmbuild/SOURCES/proton.vpn.app.gtk.desktop +} diff --git a/net-vpn/riseup-vpn/Manifest b/net-vpn/riseup-vpn/Manifest new file mode 100644 index 000000000000..4b7f029a47d5 --- /dev/null +++ b/net-vpn/riseup-vpn/Manifest @@ -0,0 +1,7 @@ +DIST riseup-vpn-0.24.10-deps.tar.xz 169679804 BLAKE2B cfbd543f1267c8356662b0ea580e2bffbee078e2eb15c59b96ab4225e406675bea507d385fbc735332344821c244e29967ceff1693af7b48263d720cece73295 SHA512 d7f4892d4ff1a778d3f61b98bcf01ec426682ff1d67d618767b97ede75c6a7e3b4e65cb6d86ca42d64e23888c2cc2923a155df9248cc1e64be949d8a45a6fcaa +DIST riseup-vpn-0.24.10.tar.gz 16338950 BLAKE2B 3315aa847f2473b5b896a72e755705613890971f03a2752edd3c0041175f6697167e4583b8c3e971cf23e847e894423a7d5c3d705af8aca642a83ba4d88f0942 SHA512 0765bdc41ad1c59421079a7c804d56f55456c20d8d63f1913a7691633c3f53b96f44b413f9f628e4cd9bcc940f5ebbce2c46e1caa8023e4ac2bd24af11579835 +DIST riseup-vpn-0.24.5-deps.tar.xz 33109948 BLAKE2B 2149f395c5f29ef63044b6e968a835d359522f013b78d167cb6a441e27728daf104c77037d6d3acc51794ded4d7224e12af84ec33cfca9911bdd236e70080e14 SHA512 1ea3b50ab742fb5fdb1d1a91469815be2c00b01760dbfed29de985ee3dab91be8a596b7694ff8da4bea6e6c707d5c03f5a4fdb03826ad1c9e2e36a55f757af88 +DIST riseup-vpn-0.24.5.tar.gz 9415881 BLAKE2B 9cf9c0db485de2c6cb3c09d0cda5f1cb1ce31d0c4686e0721cdac04d51e882c3b65fd282430c53da84242c2bfd6bbd20b58dfc9ee7d2844aa512656a28d439b9 SHA512 d3295ca6dd78dd761eafbd24fcaaec7970fbd5ef272e7d0f02502652a7c4a6bcf385c3ccbf29907aa28665f437824aff50a804853c9e6e979fd924c0407c6e25 +DIST riseup-vpn-0.24.8-deps.tar.xz 151811720 BLAKE2B 502191486805abae6e19e0bde0ac534e2d1ce5d2c62476342079f8682b2a1be05f2777459f28c46e594a385326897e1fa7b25cf2ef3abf9510767dd9257707ea SHA512 cae8af599de8aeec4a266ebf3293e9b4cef792bbe671489eead66a32cd750b3930965247919b10f49c8d21b84c197d8355a0a0d879752d192ffbccb49d14c75c +DIST riseup-vpn-0.24.8.tar.gz 15767766 BLAKE2B 39937b631eed3ebfff2800988fce9db0ac4b04c9e53a3d6a855f6098c38204f8f916e41a60631065e8335a73bd113c28e61eeeae996c5eaf90607850c4687e78 SHA512 9afcd3d4d4516d37f82b733d56ea6310d3d18c391821eeb80f486f9673d50948024fb67717ed9f25d4fb328e465733ed9c00e26b43ca0a181659c0a330b38567 +DIST riseup-vpn-0.25.8.tar.gz 16400115 BLAKE2B 4bb61ce5bbadda95c4f16c9a41b9b10165f7b432b7011ff10beceb5bf9a217f42dfa90bf7a56ed0a2874e7efcbc3e8980dc237c7795e704e622d08928e7cf5a7 SHA512 24ce6b5dd488bd4e5cdc89a3fbedc150b1af0da49b4f7fbf4dc9bc1515724b2530b442b878a310b9f5e5e968073ad354d8df7740538364d4044fc5c3cf55747b diff --git a/net-vpn/riseup-vpn/metadata.xml b/net-vpn/riseup-vpn/metadata.xml new file mode 100644 index 000000000000..5d042b6dc16e --- /dev/null +++ b/net-vpn/riseup-vpn/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> + +<pkgmetadata> + <maintainer type="person"> + <email>nowa@gentoo.org</email> + <name>Nowa Ammerlaan</name> + </maintainer> + <upstream> + <bugs-to>https://0xacab.org/leap/bitmask-vpn/-/issues/new</bugs-to> + </upstream> + <longdescription> + Riseup offers Personal VPN service for censorship circumvention, location anonymization and traffic encryption. To make this possible, it sends all your internet traffic through an encrypted connection to riseup.net, where it then goes out onto the public internet. + + Unlike most other VPN providers, Riseup does not log your IP address. + + Riseup has a VPN client called RiseupVPN. This VPN client is super easy to use! You just install it and run it—no configuration, no account registration. + + This is an experiment to see if we can create a VPN service that is easy enough for everyone to use and that people will donate enough to sustain. + </longdescription> +</pkgmetadata> diff --git a/net-vpn/riseup-vpn/riseup-vpn-0.24.10.ebuild b/net-vpn/riseup-vpn/riseup-vpn-0.24.10.ebuild new file mode 100644 index 000000000000..c8a534010755 --- /dev/null +++ b/net-vpn/riseup-vpn/riseup-vpn-0.24.10.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit desktop python-single-r1 go-module qmake-utils virtualx xdg + +DESCRIPTION="Anonymous encrypted VPN client powered by Bitmask" +HOMEPAGE="https://riseup.net/en/vpn https://0xacab.org/leap/bitmask-vpn https://bitmask.net" +SRC_URI=" + https://0xacab.org/leap/bitmask-vpn/-/archive/${PV}/bitmask-vpn-${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~nowa/${P}-deps.tar.xz +" +S="${WORKDIR}/bitmask-vpn-${PV}" + +# Generated with dev-go/golicense +LICENSE="GPL-3 BSD-2 CC0-1.0 MIT BSD" +SLOT="0" +KEYWORDS="~amd64" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +IUSE="test" + +PROPERTIES="test_network" +RESTRICT="test" +# The tests require internet access to connect to Riseup Networks + +BDEPEND=" + virtual/pkgconfig + dev-qt/qttools[linguist] +" + +DEPEND=" + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtdeclarative:6[widgets] + dev-qt/qtsvg:6 + media-libs/libglvnd +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + net-vpn/openvpn + sys-auth/polkit +" + +src_prepare() { + default + + # do not pre-strip + sed -i -e '/strip $RELEASE\/$TARGET/d' gui/build.sh || die + + # We need qmake and lrelease from qt6 bin dir + export PATH="${PATH}:$(qt6_get_bindir)" || die + + export PROVIDER=riseup +} + +src_compile() { + emake gen_providers_json + emake build +} + +src_test() { + emake test + virtx emake test_ui +} + +src_install() { + einstalldocs + + dobin build/qt/release/riseup-vpn + + python_scriptinto /usr/sbin + python_doscript pkg/pickle/helpers/bitmask-root + + insinto /usr/share/polkit-1/actions + newins pkg/pickle/helpers/se.leap.bitmask.policy se.leap.bitmask.riseupvpn.policy + + newicon -s scalable providers/riseup/assets/icon.svg riseup.svg + make_desktop_entry ${PN} RiseupVPN riseup Network + + dodoc -r docs/* +} diff --git a/net-vpn/riseup-vpn/riseup-vpn-0.24.5.ebuild b/net-vpn/riseup-vpn/riseup-vpn-0.24.5.ebuild new file mode 100644 index 000000000000..84413d7cf418 --- /dev/null +++ b/net-vpn/riseup-vpn/riseup-vpn-0.24.5.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit desktop python-single-r1 go-module qmake-utils virtualx xdg + +DESCRIPTION="Anonymous encrypted VPN client powered by Bitmask" +HOMEPAGE="https://riseup.net/en/vpn https://0xacab.org/leap/bitmask-vpn https://bitmask.net" +SRC_URI=" + https://0xacab.org/leap/bitmask-vpn/-/archive/${PV}/bitmask-vpn-${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~nowa/${P}-deps.tar.xz +" +S="${WORKDIR}/bitmask-vpn-${PV}" + +# Generated with dev-go/golicense +LICENSE="GPL-3 BSD-2 CC0-1.0 MIT BSD" +SLOT="0" +KEYWORDS="~amd64" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +IUSE="test" + +PROPERTIES="test_network" +RESTRICT="test" +# The tests require internet access to connect to Riseup Networks + +BDEPEND=" + virtual/pkgconfig + dev-qt/qttools[linguist] +" + +DEPEND=" + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtdeclarative:6[widgets] + dev-qt/qtsvg:6 + media-libs/libglvnd +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + net-vpn/openvpn + sys-auth/polkit +" + +src_prepare() { + default + + # do not pre-strip + sed -i -e '/strip $RELEASE\/$TARGET/d' gui/build.sh || die + + # We need qmake and lrelease from qt6 bin dir + export PATH="${PATH}:$(qt6_get_bindir)" || die +} + +src_compile() { + emake build +} + +src_test() { + emake test + virtx emake test_ui +} + +src_install() { + einstalldocs + + newbin "build/qt/release/bitmask-vpn" riseup-vpn + + python_scriptinto /usr/sbin + python_doscript "pkg/pickle/helpers/bitmask-root" + + insinto /usr/share/polkit-1/actions + newins "pkg/pickle/helpers/se.leap.bitmask.policy" se.leap.bitmask.riseupvpn.policy + + newicon -s scalable "providers/riseup/assets/icon.svg" riseup.svg + make_desktop_entry "${PN}" RiseupVPN riseup Network + + dodoc -r docs/* +} diff --git a/net-vpn/riseup-vpn/riseup-vpn-0.24.8.ebuild b/net-vpn/riseup-vpn/riseup-vpn-0.24.8.ebuild new file mode 100644 index 000000000000..fdb7ce81c467 --- /dev/null +++ b/net-vpn/riseup-vpn/riseup-vpn-0.24.8.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit desktop python-single-r1 go-module qmake-utils virtualx xdg + +DESCRIPTION="Anonymous encrypted VPN client powered by Bitmask" +HOMEPAGE="https://riseup.net/en/vpn https://0xacab.org/leap/bitmask-vpn https://bitmask.net" +SRC_URI=" + https://0xacab.org/leap/bitmask-vpn/-/archive/${PV}/bitmask-vpn-${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~nowa/${P}-deps.tar.xz +" +S="${WORKDIR}/bitmask-vpn-${PV}" + +# Generated with dev-go/golicense +LICENSE="GPL-3 BSD-2 CC0-1.0 MIT BSD" +SLOT="0" +KEYWORDS="~amd64" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +IUSE="test" + +PROPERTIES="test_network" +RESTRICT="test" +# The tests require internet access to connect to Riseup Networks + +BDEPEND=" + virtual/pkgconfig + dev-qt/qttools[linguist] +" + +DEPEND=" + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtdeclarative:6[widgets] + dev-qt/qtsvg:6 + media-libs/libglvnd +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + net-vpn/openvpn + sys-auth/polkit +" + +src_prepare() { + default + + # do not pre-strip + sed -i -e '/strip $RELEASE\/$TARGET/d' gui/build.sh || die + + # We need qmake and lrelease from qt6 bin dir + export PATH="${PATH}:$(qt6_get_bindir)" || die +} + +src_compile() { + emake build +} + +src_test() { + emake test + virtx emake test_ui +} + +src_install() { + einstalldocs + + newbin "build/qt/release/bitmask-vpn" riseup-vpn + + python_scriptinto /usr/sbin + python_doscript "pkg/pickle/helpers/bitmask-root" + + insinto /usr/share/polkit-1/actions + newins "pkg/pickle/helpers/se.leap.bitmask.policy" se.leap.bitmask.riseupvpn.policy + + newicon -s scalable "providers/riseup/assets/icon.svg" riseup.svg + make_desktop_entry "${PN}" RiseupVPN riseup Network + + dodoc -r docs/* +} diff --git a/net-vpn/riseup-vpn/riseup-vpn-0.25.8.ebuild b/net-vpn/riseup-vpn/riseup-vpn-0.25.8.ebuild new file mode 100644 index 000000000000..dd1ab8862d11 --- /dev/null +++ b/net-vpn/riseup-vpn/riseup-vpn-0.25.8.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit desktop python-single-r1 go-module qmake-utils virtualx xdg + +DESCRIPTION="Anonymous encrypted VPN client powered by Bitmask" +HOMEPAGE="https://riseup.net/en/vpn https://0xacab.org/leap/bitmask-vpn https://bitmask.net" +SRC_URI=" + https://0xacab.org/leap/bitmask-vpn/-/archive/${PV}/bitmask-vpn-${PV}.tar.gz -> ${P}.tar.gz +" +S="${WORKDIR}/bitmask-vpn-${PV}" + +# Generated with dev-go/golicense +LICENSE="GPL-3 BSD-2 CC0-1.0 MIT BSD" +SLOT="0" +KEYWORDS="~amd64" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +IUSE="test" + +PROPERTIES="test_network" +RESTRICT="test" +# The tests require internet access to connect to Riseup Networks + +BDEPEND=" + virtual/pkgconfig + dev-qt/qttools[linguist] +" + +DEPEND=" + dev-qt/qtbase:6[gui,widgets] + dev-qt/qtdeclarative:6[widgets] + dev-qt/qtsvg:6 + media-libs/libglvnd +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + net-vpn/openvpn + sys-auth/polkit +" + +src_prepare() { + default + + # do not pre-strip + sed -i -e '/strip $RELEASE\/$TARGET/d' gui/build.sh || die + + # We need qmake and lrelease from qt6 bin dir + export PATH="${PATH}:$(qt6_get_bindir)" || die + + export PROVIDER=riseup +} + +src_compile() { + emake gen_providers_json + emake build +} + +src_test() { + emake test + virtx emake test_ui +} + +src_install() { + einstalldocs + + dobin build/qt/release/riseup-vpn + + python_scriptinto /usr/sbin + python_doscript pkg/pickle/helpers/bitmask-root + + insinto /usr/share/polkit-1/actions + newins pkg/pickle/helpers/se.leap.bitmask.policy se.leap.bitmask.riseupvpn.policy + + newicon -s scalable providers/riseup/assets/icon.svg riseup.svg + make_desktop_entry ${PN} RiseupVPN riseup Network + + dodoc -r docs/* +} diff --git a/net-vpn/strongswan/Manifest b/net-vpn/strongswan/Manifest new file mode 100644 index 000000000000..77cba12dc101 --- /dev/null +++ b/net-vpn/strongswan/Manifest @@ -0,0 +1,5 @@ +DIST strongswan-6.0.3.tar.bz2 4877482 BLAKE2B 355dff5de259e545b1bb5e24853dc91148c3d400b1977a2de35271e019dfc236c838ccac4552974a4999e2768900150c432753fc0d422444d4cc34486566e192 SHA512 d085add33b04c908b0dfb9fdcab5c39c68b499e266cd0d5599f9bebf5974a12f0c6197f2e8a4013bf579735a648dfaa20d28dfe4fae32f5bae713d8bb8aa7dab +DIST strongswan-6.0.4.tar.bz2 4915290 BLAKE2B 2291900bda3e679cb68f35e44fe20011d82b44e7a9ed3fd0ae7c40ed57154c5ecded1ab5bffc9ab30c93de667ef9b103a7da1a2b31d8e2eae97b268f0be11f01 SHA512 e8e3b6c2f0a24ec4cf8a173c496f6591a86a89395690d54edfa8db025ad52d6e7479f81371071fd847a84ee8fa5dcb627afb74f4be2607863d1604115d8987ec +DIST strongswan-6.0.4.tar.bz2.sig 659 BLAKE2B 9f52de2eaa6e72841df39e51c118ab932bf134aef5de3691933891e3878e12f80508b036e6f075a9ff2f3bb42d4c37431cbbad96c9db7c7ba82b744c5bbea94f SHA512 a78cc6d7630aee51c0bd0268c5ceb1723a90275a6466a9f4e0b0e6cc1a3ad25ea0ea075cf09f3db0495e3e1a792ff483c16ffe9101839bb4a9fa261b3e38696f +DIST strongswan-6.0.6.tar.bz2 4936540 BLAKE2B 0d98b9230029c6a02f56a7ce7393b2d241dc77880bcae8affb0280a75c190ce96a8727fa079ae46540115f0dbfc3228799742faddccab0e2cbe86f4934e8e23a SHA512 4f8abadeaa750589b2352260726e74e70dd6ec789e8a218d339fe83223d6427e13ebbae279b97e96a96787ccdc38ac1a6cec684ff544fa0b4f8fb16159afad84 +DIST strongswan-6.0.6.tar.bz2.sig 659 BLAKE2B a439888aa38833c1bb1dfe82a122f0b5b80c2e20bf766c1f8819e01bdee724490f658b9cacee83e420402d153bc94b9e9d9f7061979612ea6907d690434ad0de SHA512 bd487c7e141d9d8cb8ee9f01e8531254848a9640bbe41631d27f8d13c99328d9ed4830f9696d2a4f096da32d7dc0af3e9229a27d17d44ab022fb2e8e55c27f3b diff --git a/net-vpn/strongswan/files/ipsec b/net-vpn/strongswan/files/ipsec new file mode 100644 index 000000000000..ac942a926366 --- /dev/null +++ b/net-vpn/strongswan/files/ipsec @@ -0,0 +1,34 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net + use logger +} + +start() { + ebegin "Starting ${IPSECD}" + ipsec start + eend $? +} + +stop() { + ebegin "Stopping ${IPSECD}" + ipsec stop + eend $? +} + +restart() { + ebegin "Restarting ${IPSECD}" + svc_stop + sleep 2 + svc_start + eend $? +} + +status() { + ebegin "${IPSECD} Status (verbose):" + ipsec statusall + eend $? +} diff --git a/net-vpn/strongswan/metadata.xml b/net-vpn/strongswan/metadata.xml new file mode 100644 index 000000000000..e887bae78198 --- /dev/null +++ b/net-vpn/strongswan/metadata.xml @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>kernlpanic@dennis-eisele.de</email> + <name>Dennis Eisele</name> + </maintainer> + <maintainer type="person" proxied="yes"> + <email>rndxelement@protonmail.com</email> + <name>Philipp Rösner</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription lang="en"> + StrongSwan is direct descendant of the discontinued FreeS/WAN project. + As an IPsec based VPN solution which is focused on security and ease of + use, it fully implements the IKEv1/IKEv2 protocols, MOBIKE, NAT-Traversal + via UDP encapsulation (incl. port floating) and Dead Peer Detection. It + also fully supports the Linux 2.6 IPsec stack, IPv6, certificates/keys on + Smartcards and virtual IP address pools. + </longdescription> + <use> + <flag name="constraints">Enable advanced X.509 constraint checking plugin</flag> + <flag name="dhcp">Enable server support for querying virtual IP addresses for clients from a DHCP server. (IKEv2 only)</flag> + <flag name="eap">Enable support for the different EAP modules that are supported</flag> + <flag name="farp">Enable faking of ARP responses for virtual IP addresses assigned to clients (IKEv2 only)</flag> + <flag name="gcrypt">Enable <pkg>dev-libs/libgcrypt</pkg> plugin which provides 3DES, AES, Blowfish, Camellia, CAST, DES, Serpent and Twofish ciphers along with MD4, MD5 and SHA1/2 hash algorithms, RSA and DH groups 1,2,5,14-18 and 22-24(4.4+). Also includes a software random number generator.</flag> + <flag name="non-root">Force IKEv1/IKEv2 daemons to normal user privileges. This might impose some restrictions mainly to the IKEv1 daemon. Disable only if you really require superuser privileges.</flag> + <flag name="openssl">Enable <pkg>dev-libs/openssl</pkg> plugin which is required for Elliptic Curve Cryptography (DH groups 19-21,25,26) and ECDSA. Also provides 3DES, AES, Blowfish, Camellia, CAST, DES, IDEA and RC5 ciphers along with MD2, MD4, MD5 and SHA1/2 hash algorithms, RSA and DH groups 1,2,5,14-18 and 22-24(4.4+) <pkg>dev-libs/openssl</pkg> has to be compiled with USE="-bindist".</flag> + <flag name="pkcs11">Enable pkcs11 support</flag> + <flag name="strongswan_plugins_acert">Enable support for X.509 attribute certificates</flag> + <flag name="strongswan_plugins_addrblock">Enable support for the addrblock crypto plugin</flag> + <flag name="strongswan_plugins_aes">Enable support for the aes plugin</flag> + <flag name="strongswan_plugins_aesni">Enable support for Intel AES-NI crypto plugin</flag> + <flag name="strongswan_plugins_af-alg">Enable support for the AF_ALG Linux kernel crypto API</flag> + <flag name="strongswan_plugins_agent">Enable support for RSA/ECDSA private keys</flag> + <flag name="strongswan_plugins_blowfish">Enable support for the blowfish plugin</flag> + <flag name="strongswan_plugins_botan">Enable support for the botan library plugin</flag> + <flag name="strongswan_plugins_bypass-lan">Enable support for the bypass-lan plugin</flag> + <flag name="strongswan_plugins_ccm">Enable support for the ccm plugin</flag> + <flag name="strongswan_plugins_chapoly">Enable ChaCha20/Poly1305 AEAD implementation and ChaCha20 XOF plugin</flag> + <flag name="strongswan_plugins_cmac">Enable support for the cmac plugin</flag> + <flag name="strongswan_plugins_connmark">Enable connmark plugin using conntrack based marks to select return path SA</flag> + <flag name="strongswan_plugins_ctr">Enable support for the ctr plugin</flag> + <flag name="strongswan_plugins_curve25519">Enable support for X25519 DH group and Ed25519 public key uthentication</flag> + <flag name="strongswan_plugins_des">Enable DES/3DES cipher implementation</flag> + <flag name="strongswan_plugins_dnskey">Enable support for parsing DNS public keys</flag> + <flag name="strongswan_plugins_drbg">Enable support for the drgb plugin</flag> + <flag name="strongswan_plugins_eap-radius">Enable EAP Radius plugin</flag> + <flag name="strongswan_plugins_error-notify">Enable support for the error-notify plugin</flag> + <flag name="strongswan_plugins_files">Enable support for local file:// URIs</flag> + <flag name="strongswan_plugins_fips-prf">Enable support for the fips-prf plugin</flag> + <flag name="strongswan_plugins_forecast">Enable multicast and broadcast forwarding plugin</flag> + <flag name="strongswan_plugins_gcm">Enable support for the gcm plugin</flag> + <flag name="strongswan_plugins_ha">Enable support for the ha plugin</flag> + <flag name="strongswan_plugins_hmac">Enable support for the hmac plugin</flag> + <flag name="strongswan_plugins_ipseckey">Enable support for the ipseckey plugin</flag> + <flag name="strongswan_plugins_kdf">Enable support for the kdf plugin</flag> + <flag name="strongswan_plugins_led">Enable support for the led plugin</flag> + <flag name="strongswan_plugins_lookip">Enable support for the lookip plugin</flag> + <flag name="strongswan_plugins_md4">Enable support for the md4 plugin</flag> + <flag name="strongswan_plugins_md5">Enable support for the md5 plugin</flag> + <flag name="strongswan_plugins_mgf1">Enable support for the mgf1 plugin</flag> + <flag name="strongswan_plugins_nonce">Enable support the nonce plugin</flag> + <flag name="strongswan_plugins_openxpki">Enable OCSP responder accessing OpenXPKI MySQL/MariaDB certificate database</flag> + <flag name="strongswan_plugins_padlock">Enable support for the padlock plugin</flag> + <flag name="strongswan_plugins_pem">Enable support for the pem plugin</flag> + <flag name="strongswan_plugins_pgp">Enable support for the pgp plugin</flag> + <flag name="strongswan_plugins_pkcs1">Enable pkcs1 support</flag> + <flag name="strongswan_plugins_pkcs12">Enable pkcs12 support</flag> + <flag name="strongswan_plugins_pkcs7">Enable pkcs7 support</flag> + <flag name="strongswan_plugins_pkcs8">Enable pkcs8 support</flag> + <flag name="strongswan_plugins_pubkey">Enable wrapper to handle raw public keys</flag> + <flag name="strongswan_plugins_random">Enable RNG support with /dev/[u]random</flag> + <flag name="strongswan_plugins_rc2">Enable plugin for RC2 support</flag> + <flag name="strongswan_plugins_rdrand">Enable support for the rdrand plugin</flag> + <flag name="strongswan_plugins_revocation">Enable X.509 CRL/OCSP revocation checking</flag> + <flag name="strongswan_plugins_save-keys">Enable plugin that saves IKE and/or ESP keys to files compatible with Wireshark (for debugging)</flag> + <flag name="strongswan_plugins_sha1">Enable plugin for SHA1 support</flag> + <flag name="strongswan_plugins_sha2">Enable plugin for SHA2 support</flag> + <flag name="strongswan_plugins_sha3">Enable plugin for SHA3 support</flag> + <flag name="strongswan_plugins_stroke">Deprecated stroke configuration/control backend, to use with ipsec script and starter</flag> + <flag name="strongswan_plugins_soup">Enable libsoup based HTTP fetcher</flag> + <flag name="strongswan_plugins_sshkey">Enable SSH key decoding routines</flag> + <flag name="strongswan_plugins_systime-fix">Enable support for the systime-fix plugin</flag> + <flag name="strongswan_plugins_test-vectors">Enable set of test vectors for various algorithms</flag> + <flag name="strongswan_plugins_unbound">Enable support for the unbound plugin</flag> + <flag name="strongswan_plugins_unity">Enable support for the unity plugin</flag> + <flag name="strongswan_plugins_vici">Enable support for the vici plugin</flag> + <flag name="strongswan_plugins_whitelist">Enable support for the whitelist plugin</flag> + <flag name="strongswan_plugins_x509">Enable plugin for advanced X.509 functionality</flag> + <flag name="strongswan_plugins_xauth-noauth">Enable support for the xauth-noauth plugin</flag> + <flag name="strongswan_plugins_xcbc">Enable support for XCBC plugin</flag> + </use> + <upstream> + <remote-id type="cpe">cpe:/a:strongswan:strongswan</remote-id> + <remote-id type="github">strongswan/strongswan</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/strongswan/strongswan-6.0.3.ebuild b/net-vpn/strongswan/strongswan-6.0.3.ebuild new file mode 100644 index 000000000000..ca34e52a69e3 --- /dev/null +++ b/net-vpn/strongswan/strongswan-6.0.3.ebuild @@ -0,0 +1,253 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +inherit systemd + +DESCRIPTION="IPsec-based VPN solution, supporting IKEv1/IKEv2 and MOBIKE" +HOMEPAGE="https://www.strongswan.org/" +SRC_URI="https://download.strongswan.org/${P}.tar.bz2" + +LICENSE="GPL-2 RSA DES" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv x86" +IUSE="+caps curl +constraints debug dhcp eap farp gcrypt +gmp ldap mysql networkmanager +non-root +openssl selinux sqlite systemd pam pkcs11" + +STRONGSWAN_PLUGINS_STD="aes cmac curve25519 des dnskey drbg eap-radius fips-prf gcm hmac led lookip md5 nonce pem pgp +pkcs1 pkcs7 pkcs8 pkcs12 pubkey random rc2 revocation sha1 sha2 sshkey systime-fix stroke unity vici x509 xcbc" +STRONGSWAN_PLUGINS_OPT_DISABLE="kdf" +STRONGSWAN_PLUGINS_OPT="acert af-alg agent addrblock aesni botan blowfish bypass-lan +ccm chapoly connmark ctr error-notify forecast files gcm ha ipseckey md4 mgf1 +openxpki padlock rdrand save-keys sha3 soup test-vectors unbound whitelist xauth-noauth" + +for mod in $STRONGSWAN_PLUGINS_STD; do + IUSE="${IUSE} +strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +COMMON_DEPEND=" + non-root? ( + acct-user/ipsec + acct-group/ipsec + ) + dev-libs/glib:2 + gmp? ( >=dev-libs/gmp-4.1.5:= ) + gcrypt? ( + dev-libs/libgcrypt:= + dev-libs/libgpg-error + ) + caps? ( sys-libs/libcap ) + curl? ( net-misc/curl ) + ldap? ( net-nds/openldap:= ) + openssl? ( >=dev-libs/openssl-0.9.8:=[-bindist(-)] ) + mysql? ( dev-db/mysql-connector-c:= ) + sqlite? ( >=dev-db/sqlite-3.3.1:3 ) + systemd? ( sys-apps/systemd ) + networkmanager? ( net-misc/networkmanager ) + pam? ( sys-libs/pam ) + strongswan_plugins_botan? ( dev-libs/botan:3= ) + strongswan_plugins_connmark? ( net-firewall/iptables:= ) + strongswan_plugins_forecast? ( net-firewall/iptables:= ) + strongswan_plugins_soup? ( net-libs/libsoup:3.0 ) + strongswan_plugins_unbound? ( net-dns/unbound:= net-libs/ldns:= ) +" +DEPEND=" + ${COMMON_DEPEND} + virtual/linux-sources + sys-kernel/linux-headers +" +RDEPEND=" + ${COMMON_DEPEND} + virtual/logger + sys-apps/iproute2 + !net-vpn/libreswan + selinux? ( sec-policy/selinux-ipsec ) +" + +UGID="ipsec" + +src_configure() { + local myeconfargs=( + --disable-static + --enable-ikev1 + --enable-ikev2 + --enable-swanctl + --enable-socket-dynamic + --enable-cmd + $(use_enable curl) + $(use_enable constraints) + $(use_enable ldap) + $(use_enable debug leak-detective) + $(use_enable dhcp) + $(use_enable eap eap-sim) + $(use_enable eap eap-sim-file) + $(use_enable eap eap-simaka-sql) + $(use_enable eap eap-simaka-pseudonym) + $(use_enable eap eap-simaka-reauth) + $(use_enable eap eap-identity) + $(use_enable eap eap-md5) + $(use_enable eap eap-aka) + $(use_enable eap eap-aka-3gpp2) + $(use_enable eap md4) + $(use_enable eap eap-mschapv2) + $(use_enable eap eap-radius) + $(use_enable eap eap-tls) + $(use_enable eap eap-ttls) + $(use_enable eap xauth-eap) + $(use_enable eap eap-dynamic) + $(use_enable farp) + $(use_enable gmp) + $(use_enable gcrypt) + $(use_enable mysql) + $(use_enable networkmanager nm) + $(use_enable openssl) + $(use_enable pam xauth-pam) + $(use_enable pkcs11) + $(use_enable sqlite) + $(use_enable systemd) + $(use_with caps capabilities libcap) + --with-piddir=/run + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + if use non-root; then + myeconfargs+=( + --with-user=${UGID} + --with-group=${UGID} + ) + fi + + # If a user has already enabled db support, those plugins will + # most likely be desired as well. Besides they don't impose new + # dependencies and come at no cost (except for space). + if use mysql || use sqlite; then + myeconfargs+=( + --enable-attr-sql + --enable-sql + ) + fi + + # strongSwan builds and installs static libs by default which are + # useless to the user (and to strongSwan for that matter) because no + # header files or alike get installed... so disabling them is safe. + if use pam && use eap; then + myeconfargs+=( --enable-eap-gtc ) + else + myeconfargs+=( --disable-eap-gtc ) + fi + + for mod in $STRONGSWAN_PLUGINS_STD; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + ! use strongswan_plugins_${mod} && myeconfargs+=( --disable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + if ! use systemd; then + rm -rf "${ED}"/lib/systemd || die "Failed removing systemd lib." + fi + + doinitd "${FILESDIR}"/ipsec + + local dir_ugid + if use non-root && use strongswan_plugins_stroke; then + if [ -f /etc/ipsec.conf ]; then + fowners ${UGID}:${UGID} \ + /etc/ipsec.conf + fi + + fowners ${UGID}:${UGID} \ + /etc/strongswan.conf + + dir_ugid="${UGID}" + else + dir_ugid="root" + fi + + diropts -m 0750 -o ${dir_ugid} -g ${dir_ugid} + dodir /etc/ipsec.d \ + /etc/ipsec.d/aacerts \ + /etc/ipsec.d/acerts \ + /etc/ipsec.d/cacerts \ + /etc/ipsec.d/certs \ + /etc/ipsec.d/crls \ + /etc/ipsec.d/ocspcerts \ + /etc/ipsec.d/private \ + /etc/ipsec.d/reqs + + dodoc NEWS README TODO + + # shared libs are used only internally and there are no static libs, + # so it's safe to get rid of the .la files + find "${D}" -name '*.la' -delete || die "Failed to remove .la files." +} + +pkg_postinst() { + if ! use openssl && ! use gcrypt; then + elog + elog "${PN} has been compiled without both OpenSSL and libgcrypt support." + elog "Please note that this might effect availability and speed of some" + elog "cryptographic features. You are advised to enable the OpenSSL plugin." + elif ! use openssl; then + elog + elog "${PN} has been compiled without the OpenSSL plugin. This might effect" + elog "availability and speed of some cryptographic features. There will be" + elog "no support for Elliptic Curve Cryptography (Diffie-Hellman groups 19-21," + elog "25, 26) and ECDSA." + fi + if ! use caps && ! use non-root; then + ewarn + ewarn "You have decided to run ${PN} with root privileges and built it" + ewarn "without support for POSIX capability dropping. It is generally" + ewarn "strongly suggested that you reconsider- especially if you intend" + ewarn "to run ${PN} as server with a public ip address." + ewarn + ewarn "You should re-emerge ${PN} with at least the 'caps' USE flag enabled." + ewarn + fi + if use non-root; then + elog + elog "${PN} has been installed without superuser privileges (USE=non-root)." + elog "This imposes a few limitations mainly to the daemon 'charon' in" + elog "regards of the use of iptables." + elog + elog "Please carefully read: http://wiki.strongswan.org/projects/strongswan/wiki/ReducedPrivileges" + elog + elog "Thus if you require to specify a custom updown" + elog "script to charon which requires superuser privileges, you" + elog "can work around this limitation by using sudo to grant the" + elog "user \"ipsec\" the appropriate rights." + elog "For example (the default case):" + elog "/etc/sudoers:" + elog " ipsec ALL=(ALL) NOPASSWD: SETENV: /usr/sbin/ipsec" + elog "Under the specific connection block in /etc/ipsec.conf:" + elog " leftupdown=\"sudo -E ipsec _updown iptables\"" + elog + fi + elog + elog "Make sure you have _all_ required kernel modules available including" + elog "the appropriate cryptographic algorithms. A list is available at:" + elog " https://wiki.strongswan.org/projects/strongswan/wiki/KernelModules" + elog + elog "The up-to-date manual is available online at:" + elog " https://wiki.strongswan.org/" + elog +} diff --git a/net-vpn/strongswan/strongswan-6.0.4-r1.ebuild b/net-vpn/strongswan/strongswan-6.0.4-r1.ebuild new file mode 100644 index 000000000000..0b71348c19f3 --- /dev/null +++ b/net-vpn/strongswan/strongswan-6.0.4-r1.ebuild @@ -0,0 +1,263 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strongswan.asc +inherit systemd verify-sig + +DESCRIPTION="IPsec-based VPN solution, supporting IKEv1/IKEv2 and MOBIKE" +HOMEPAGE="https://www.strongswan.org/" +SRC_URI=" + https://download.strongswan.org/${P}.tar.bz2 + verify-sig? ( https://download.strongswan.org/${P}.tar.bz2.sig ) +" + +LICENSE="GPL-2 RSA DES" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="+caps curl +constraints debug dhcp eap farp gcrypt +gmp ldap mysql networkmanager +non-root +openssl selinux sqlite systemd pam pkcs11" + +STRONGSWAN_PLUGINS_STD="aes cmac curve25519 des dnskey drbg eap-radius fips-prf gcm hmac led lookip md5 nonce pem pgp +pkcs1 pkcs7 pkcs8 pkcs12 pubkey random rc2 revocation sha1 sha2 sshkey systime-fix stroke unity vici x509 xcbc" +STRONGSWAN_PLUGINS_OPT_DISABLE="kdf" +STRONGSWAN_PLUGINS_OPT="acert af-alg agent addrblock aesni botan blowfish bypass-lan +ccm chapoly connmark ctr error-notify forecast files gcm ha ipseckey md4 mgf1 +openxpki padlock rdrand save-keys sha3 soup test-vectors unbound whitelist xauth-noauth" + +for mod in $STRONGSWAN_PLUGINS_STD; do + IUSE="${IUSE} +strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +COMMON_DEPEND=" + non-root? ( + acct-user/ipsec + acct-group/ipsec + ) + dev-libs/glib:2 + gmp? ( >=dev-libs/gmp-4.1.5:= ) + gcrypt? ( + dev-libs/libgcrypt:= + dev-libs/libgpg-error + ) + caps? ( sys-libs/libcap ) + curl? ( net-misc/curl ) + ldap? ( net-nds/openldap:= ) + openssl? ( >=dev-libs/openssl-0.9.8:=[-bindist(-)] ) + mysql? ( dev-db/mysql-connector-c:= ) + selinux? ( sys-libs/libselinux ) + sqlite? ( >=dev-db/sqlite-3.3.1:3 ) + systemd? ( sys-apps/systemd ) + networkmanager? ( net-misc/networkmanager ) + pam? ( sys-libs/pam ) + strongswan_plugins_botan? ( dev-libs/botan:3= ) + strongswan_plugins_connmark? ( net-firewall/iptables:= ) + strongswan_plugins_forecast? ( net-firewall/iptables:= ) + strongswan_plugins_soup? ( net-libs/libsoup:3.0 ) + strongswan_plugins_unbound? ( net-dns/unbound:= net-libs/ldns:= ) +" +DEPEND=" + ${COMMON_DEPEND} + virtual/linux-sources + sys-kernel/linux-headers +" +RDEPEND=" + ${COMMON_DEPEND} + virtual/logger + sys-apps/iproute2 + !net-vpn/libreswan + selinux? ( sec-policy/selinux-ipsec ) +" +BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-strongswan ) +" + +UGID="ipsec" + +src_configure() { + local myeconfargs=( + --disable-static + --enable-ikev1 + --enable-ikev2 + --enable-swanctl + --enable-socket-dynamic + --enable-cmd + $(use_enable curl) + $(use_enable constraints) + $(use_enable ldap) + $(use_enable debug leak-detective) + $(use_enable dhcp) + $(use_enable eap eap-sim) + $(use_enable eap eap-sim-file) + $(use_enable eap eap-simaka-sql) + $(use_enable eap eap-simaka-pseudonym) + $(use_enable eap eap-simaka-reauth) + $(use_enable eap eap-identity) + $(use_enable eap eap-md5) + $(use_enable eap eap-aka) + $(use_enable eap eap-aka-3gpp2) + $(use_enable eap md4) + $(use_enable eap eap-mschapv2) + $(use_enable eap eap-radius) + $(use_enable eap eap-tls) + $(use_enable eap eap-ttls) + $(use_enable eap xauth-eap) + $(use_enable eap eap-dynamic) + $(use_enable farp) + $(use_enable gmp) + $(use_enable gcrypt) + $(use_enable mysql) + $(use_enable networkmanager nm) + $(use_enable openssl) + $(use_enable pam xauth-pam) + $(use_enable pkcs11) + $(use_enable selinux) + $(use_enable sqlite) + $(use_enable systemd) + $(use_with caps capabilities libcap) + --with-piddir=/run + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + if use non-root; then + myeconfargs+=( + --with-user=${UGID} + --with-group=${UGID} + ) + fi + + # If a user has already enabled db support, those plugins will + # most likely be desired as well. Besides they don't impose new + # dependencies and come at no cost (except for space). + if use mysql || use sqlite; then + myeconfargs+=( + --enable-attr-sql + --enable-sql + ) + fi + + # strongSwan builds and installs static libs by default which are + # useless to the user (and to strongSwan for that matter) because no + # header files or alike get installed... so disabling them is safe. + if use pam && use eap; then + myeconfargs+=( --enable-eap-gtc ) + else + myeconfargs+=( --disable-eap-gtc ) + fi + + for mod in $STRONGSWAN_PLUGINS_STD; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + ! use strongswan_plugins_${mod} && myeconfargs+=( --disable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + if ! use systemd; then + rm -rf "${ED}"/lib/systemd || die "Failed removing systemd lib." + fi + + doinitd "${FILESDIR}"/ipsec + + local dir_ugid + if use non-root && use strongswan_plugins_stroke; then + if [ -f /etc/ipsec.conf ]; then + fowners ${UGID}:${UGID} \ + /etc/ipsec.conf + fi + + fowners ${UGID}:${UGID} \ + /etc/strongswan.conf + + dir_ugid="${UGID}" + else + dir_ugid="root" + fi + + diropts -m 0750 -o ${dir_ugid} -g ${dir_ugid} + dodir /etc/ipsec.d \ + /etc/ipsec.d/aacerts \ + /etc/ipsec.d/acerts \ + /etc/ipsec.d/cacerts \ + /etc/ipsec.d/certs \ + /etc/ipsec.d/crls \ + /etc/ipsec.d/ocspcerts \ + /etc/ipsec.d/private \ + /etc/ipsec.d/reqs + + dodoc NEWS README TODO + + # shared libs are used only internally and there are no static libs, + # so it's safe to get rid of the .la files + find "${D}" -name '*.la' -delete || die "Failed to remove .la files." +} + +pkg_postinst() { + if ! use openssl && ! use gcrypt; then + elog + elog "${PN} has been compiled without both OpenSSL and libgcrypt support." + elog "Please note that this might effect availability and speed of some" + elog "cryptographic features. You are advised to enable the OpenSSL plugin." + elif ! use openssl; then + elog + elog "${PN} has been compiled without the OpenSSL plugin. This might effect" + elog "availability and speed of some cryptographic features. There will be" + elog "no support for Elliptic Curve Cryptography (Diffie-Hellman groups 19-21," + elog "25, 26) and ECDSA." + fi + if ! use caps && ! use non-root; then + ewarn + ewarn "You have decided to run ${PN} with root privileges and built it" + ewarn "without support for POSIX capability dropping. It is generally" + ewarn "strongly suggested that you reconsider- especially if you intend" + ewarn "to run ${PN} as server with a public ip address." + ewarn + ewarn "You should re-emerge ${PN} with at least the 'caps' USE flag enabled." + ewarn + fi + if use non-root; then + elog + elog "${PN} has been installed without superuser privileges (USE=non-root)." + elog "This imposes a few limitations mainly to the daemon 'charon' in" + elog "regards of the use of iptables." + elog + elog "Please carefully read: http://wiki.strongswan.org/projects/strongswan/wiki/ReducedPrivileges" + elog + elog "Thus if you require to specify a custom updown" + elog "script to charon which requires superuser privileges, you" + elog "can work around this limitation by using sudo to grant the" + elog "user \"ipsec\" the appropriate rights." + elog "For example (the default case):" + elog "/etc/sudoers:" + elog " ipsec ALL=(ALL) NOPASSWD: SETENV: /usr/sbin/ipsec" + elog "Under the specific connection block in /etc/ipsec.conf:" + elog " leftupdown=\"sudo -E ipsec _updown iptables\"" + elog + fi + elog + elog "Make sure you have _all_ required kernel modules available including" + elog "the appropriate cryptographic algorithms. A list is available at:" + elog " https://wiki.strongswan.org/projects/strongswan/wiki/KernelModules" + elog + elog "The up-to-date manual is available online at:" + elog " https://wiki.strongswan.org/" + elog +} diff --git a/net-vpn/strongswan/strongswan-6.0.4.ebuild b/net-vpn/strongswan/strongswan-6.0.4.ebuild new file mode 100644 index 000000000000..18b7bd3a8616 --- /dev/null +++ b/net-vpn/strongswan/strongswan-6.0.4.ebuild @@ -0,0 +1,261 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strongswan.asc +inherit systemd verify-sig + +DESCRIPTION="IPsec-based VPN solution, supporting IKEv1/IKEv2 and MOBIKE" +HOMEPAGE="https://www.strongswan.org/" +SRC_URI=" + https://download.strongswan.org/${P}.tar.bz2 + verify-sig? ( https://download.strongswan.org/${P}.tar.bz2.sig ) +" + +LICENSE="GPL-2 RSA DES" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="+caps curl +constraints debug dhcp eap farp gcrypt +gmp ldap mysql networkmanager +non-root +openssl selinux sqlite systemd pam pkcs11" + +STRONGSWAN_PLUGINS_STD="aes cmac curve25519 des dnskey drbg eap-radius fips-prf gcm hmac led lookip md5 nonce pem pgp +pkcs1 pkcs7 pkcs8 pkcs12 pubkey random rc2 revocation sha1 sha2 sshkey systime-fix stroke unity vici x509 xcbc" +STRONGSWAN_PLUGINS_OPT_DISABLE="kdf" +STRONGSWAN_PLUGINS_OPT="acert af-alg agent addrblock aesni botan blowfish bypass-lan +ccm chapoly connmark ctr error-notify forecast files gcm ha ipseckey md4 mgf1 +openxpki padlock rdrand save-keys sha3 soup test-vectors unbound whitelist xauth-noauth" + +for mod in $STRONGSWAN_PLUGINS_STD; do + IUSE="${IUSE} +strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +COMMON_DEPEND=" + non-root? ( + acct-user/ipsec + acct-group/ipsec + ) + dev-libs/glib:2 + gmp? ( >=dev-libs/gmp-4.1.5:= ) + gcrypt? ( + dev-libs/libgcrypt:= + dev-libs/libgpg-error + ) + caps? ( sys-libs/libcap ) + curl? ( net-misc/curl ) + ldap? ( net-nds/openldap:= ) + openssl? ( >=dev-libs/openssl-0.9.8:=[-bindist(-)] ) + mysql? ( dev-db/mysql-connector-c:= ) + sqlite? ( >=dev-db/sqlite-3.3.1:3 ) + systemd? ( sys-apps/systemd ) + networkmanager? ( net-misc/networkmanager ) + pam? ( sys-libs/pam ) + strongswan_plugins_botan? ( dev-libs/botan:3= ) + strongswan_plugins_connmark? ( net-firewall/iptables:= ) + strongswan_plugins_forecast? ( net-firewall/iptables:= ) + strongswan_plugins_soup? ( net-libs/libsoup:3.0 ) + strongswan_plugins_unbound? ( net-dns/unbound:= net-libs/ldns:= ) +" +DEPEND=" + ${COMMON_DEPEND} + virtual/linux-sources + sys-kernel/linux-headers +" +RDEPEND=" + ${COMMON_DEPEND} + virtual/logger + sys-apps/iproute2 + !net-vpn/libreswan + selinux? ( sec-policy/selinux-ipsec ) +" +BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-strongswan ) +" + +UGID="ipsec" + +src_configure() { + local myeconfargs=( + --disable-static + --enable-ikev1 + --enable-ikev2 + --enable-swanctl + --enable-socket-dynamic + --enable-cmd + $(use_enable curl) + $(use_enable constraints) + $(use_enable ldap) + $(use_enable debug leak-detective) + $(use_enable dhcp) + $(use_enable eap eap-sim) + $(use_enable eap eap-sim-file) + $(use_enable eap eap-simaka-sql) + $(use_enable eap eap-simaka-pseudonym) + $(use_enable eap eap-simaka-reauth) + $(use_enable eap eap-identity) + $(use_enable eap eap-md5) + $(use_enable eap eap-aka) + $(use_enable eap eap-aka-3gpp2) + $(use_enable eap md4) + $(use_enable eap eap-mschapv2) + $(use_enable eap eap-radius) + $(use_enable eap eap-tls) + $(use_enable eap eap-ttls) + $(use_enable eap xauth-eap) + $(use_enable eap eap-dynamic) + $(use_enable farp) + $(use_enable gmp) + $(use_enable gcrypt) + $(use_enable mysql) + $(use_enable networkmanager nm) + $(use_enable openssl) + $(use_enable pam xauth-pam) + $(use_enable pkcs11) + $(use_enable sqlite) + $(use_enable systemd) + $(use_with caps capabilities libcap) + --with-piddir=/run + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + if use non-root; then + myeconfargs+=( + --with-user=${UGID} + --with-group=${UGID} + ) + fi + + # If a user has already enabled db support, those plugins will + # most likely be desired as well. Besides they don't impose new + # dependencies and come at no cost (except for space). + if use mysql || use sqlite; then + myeconfargs+=( + --enable-attr-sql + --enable-sql + ) + fi + + # strongSwan builds and installs static libs by default which are + # useless to the user (and to strongSwan for that matter) because no + # header files or alike get installed... so disabling them is safe. + if use pam && use eap; then + myeconfargs+=( --enable-eap-gtc ) + else + myeconfargs+=( --disable-eap-gtc ) + fi + + for mod in $STRONGSWAN_PLUGINS_STD; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + ! use strongswan_plugins_${mod} && myeconfargs+=( --disable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + if ! use systemd; then + rm -rf "${ED}"/lib/systemd || die "Failed removing systemd lib." + fi + + doinitd "${FILESDIR}"/ipsec + + local dir_ugid + if use non-root && use strongswan_plugins_stroke; then + if [ -f /etc/ipsec.conf ]; then + fowners ${UGID}:${UGID} \ + /etc/ipsec.conf + fi + + fowners ${UGID}:${UGID} \ + /etc/strongswan.conf + + dir_ugid="${UGID}" + else + dir_ugid="root" + fi + + diropts -m 0750 -o ${dir_ugid} -g ${dir_ugid} + dodir /etc/ipsec.d \ + /etc/ipsec.d/aacerts \ + /etc/ipsec.d/acerts \ + /etc/ipsec.d/cacerts \ + /etc/ipsec.d/certs \ + /etc/ipsec.d/crls \ + /etc/ipsec.d/ocspcerts \ + /etc/ipsec.d/private \ + /etc/ipsec.d/reqs + + dodoc NEWS README TODO + + # shared libs are used only internally and there are no static libs, + # so it's safe to get rid of the .la files + find "${D}" -name '*.la' -delete || die "Failed to remove .la files." +} + +pkg_postinst() { + if ! use openssl && ! use gcrypt; then + elog + elog "${PN} has been compiled without both OpenSSL and libgcrypt support." + elog "Please note that this might effect availability and speed of some" + elog "cryptographic features. You are advised to enable the OpenSSL plugin." + elif ! use openssl; then + elog + elog "${PN} has been compiled without the OpenSSL plugin. This might effect" + elog "availability and speed of some cryptographic features. There will be" + elog "no support for Elliptic Curve Cryptography (Diffie-Hellman groups 19-21," + elog "25, 26) and ECDSA." + fi + if ! use caps && ! use non-root; then + ewarn + ewarn "You have decided to run ${PN} with root privileges and built it" + ewarn "without support for POSIX capability dropping. It is generally" + ewarn "strongly suggested that you reconsider- especially if you intend" + ewarn "to run ${PN} as server with a public ip address." + ewarn + ewarn "You should re-emerge ${PN} with at least the 'caps' USE flag enabled." + ewarn + fi + if use non-root; then + elog + elog "${PN} has been installed without superuser privileges (USE=non-root)." + elog "This imposes a few limitations mainly to the daemon 'charon' in" + elog "regards of the use of iptables." + elog + elog "Please carefully read: http://wiki.strongswan.org/projects/strongswan/wiki/ReducedPrivileges" + elog + elog "Thus if you require to specify a custom updown" + elog "script to charon which requires superuser privileges, you" + elog "can work around this limitation by using sudo to grant the" + elog "user \"ipsec\" the appropriate rights." + elog "For example (the default case):" + elog "/etc/sudoers:" + elog " ipsec ALL=(ALL) NOPASSWD: SETENV: /usr/sbin/ipsec" + elog "Under the specific connection block in /etc/ipsec.conf:" + elog " leftupdown=\"sudo -E ipsec _updown iptables\"" + elog + fi + elog + elog "Make sure you have _all_ required kernel modules available including" + elog "the appropriate cryptographic algorithms. A list is available at:" + elog " https://wiki.strongswan.org/projects/strongswan/wiki/KernelModules" + elog + elog "The up-to-date manual is available online at:" + elog " https://wiki.strongswan.org/" + elog +} diff --git a/net-vpn/strongswan/strongswan-6.0.6.ebuild b/net-vpn/strongswan/strongswan-6.0.6.ebuild new file mode 100644 index 000000000000..18b7bd3a8616 --- /dev/null +++ b/net-vpn/strongswan/strongswan-6.0.6.ebuild @@ -0,0 +1,261 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strongswan.asc +inherit systemd verify-sig + +DESCRIPTION="IPsec-based VPN solution, supporting IKEv1/IKEv2 and MOBIKE" +HOMEPAGE="https://www.strongswan.org/" +SRC_URI=" + https://download.strongswan.org/${P}.tar.bz2 + verify-sig? ( https://download.strongswan.org/${P}.tar.bz2.sig ) +" + +LICENSE="GPL-2 RSA DES" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="+caps curl +constraints debug dhcp eap farp gcrypt +gmp ldap mysql networkmanager +non-root +openssl selinux sqlite systemd pam pkcs11" + +STRONGSWAN_PLUGINS_STD="aes cmac curve25519 des dnskey drbg eap-radius fips-prf gcm hmac led lookip md5 nonce pem pgp +pkcs1 pkcs7 pkcs8 pkcs12 pubkey random rc2 revocation sha1 sha2 sshkey systime-fix stroke unity vici x509 xcbc" +STRONGSWAN_PLUGINS_OPT_DISABLE="kdf" +STRONGSWAN_PLUGINS_OPT="acert af-alg agent addrblock aesni botan blowfish bypass-lan +ccm chapoly connmark ctr error-notify forecast files gcm ha ipseckey md4 mgf1 +openxpki padlock rdrand save-keys sha3 soup test-vectors unbound whitelist xauth-noauth" + +for mod in $STRONGSWAN_PLUGINS_STD; do + IUSE="${IUSE} +strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +for mod in $STRONGSWAN_PLUGINS_OPT; do + IUSE="${IUSE} strongswan_plugins_${mod}" +done + +COMMON_DEPEND=" + non-root? ( + acct-user/ipsec + acct-group/ipsec + ) + dev-libs/glib:2 + gmp? ( >=dev-libs/gmp-4.1.5:= ) + gcrypt? ( + dev-libs/libgcrypt:= + dev-libs/libgpg-error + ) + caps? ( sys-libs/libcap ) + curl? ( net-misc/curl ) + ldap? ( net-nds/openldap:= ) + openssl? ( >=dev-libs/openssl-0.9.8:=[-bindist(-)] ) + mysql? ( dev-db/mysql-connector-c:= ) + sqlite? ( >=dev-db/sqlite-3.3.1:3 ) + systemd? ( sys-apps/systemd ) + networkmanager? ( net-misc/networkmanager ) + pam? ( sys-libs/pam ) + strongswan_plugins_botan? ( dev-libs/botan:3= ) + strongswan_plugins_connmark? ( net-firewall/iptables:= ) + strongswan_plugins_forecast? ( net-firewall/iptables:= ) + strongswan_plugins_soup? ( net-libs/libsoup:3.0 ) + strongswan_plugins_unbound? ( net-dns/unbound:= net-libs/ldns:= ) +" +DEPEND=" + ${COMMON_DEPEND} + virtual/linux-sources + sys-kernel/linux-headers +" +RDEPEND=" + ${COMMON_DEPEND} + virtual/logger + sys-apps/iproute2 + !net-vpn/libreswan + selinux? ( sec-policy/selinux-ipsec ) +" +BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-strongswan ) +" + +UGID="ipsec" + +src_configure() { + local myeconfargs=( + --disable-static + --enable-ikev1 + --enable-ikev2 + --enable-swanctl + --enable-socket-dynamic + --enable-cmd + $(use_enable curl) + $(use_enable constraints) + $(use_enable ldap) + $(use_enable debug leak-detective) + $(use_enable dhcp) + $(use_enable eap eap-sim) + $(use_enable eap eap-sim-file) + $(use_enable eap eap-simaka-sql) + $(use_enable eap eap-simaka-pseudonym) + $(use_enable eap eap-simaka-reauth) + $(use_enable eap eap-identity) + $(use_enable eap eap-md5) + $(use_enable eap eap-aka) + $(use_enable eap eap-aka-3gpp2) + $(use_enable eap md4) + $(use_enable eap eap-mschapv2) + $(use_enable eap eap-radius) + $(use_enable eap eap-tls) + $(use_enable eap eap-ttls) + $(use_enable eap xauth-eap) + $(use_enable eap eap-dynamic) + $(use_enable farp) + $(use_enable gmp) + $(use_enable gcrypt) + $(use_enable mysql) + $(use_enable networkmanager nm) + $(use_enable openssl) + $(use_enable pam xauth-pam) + $(use_enable pkcs11) + $(use_enable sqlite) + $(use_enable systemd) + $(use_with caps capabilities libcap) + --with-piddir=/run + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + + if use non-root; then + myeconfargs+=( + --with-user=${UGID} + --with-group=${UGID} + ) + fi + + # If a user has already enabled db support, those plugins will + # most likely be desired as well. Besides they don't impose new + # dependencies and come at no cost (except for space). + if use mysql || use sqlite; then + myeconfargs+=( + --enable-attr-sql + --enable-sql + ) + fi + + # strongSwan builds and installs static libs by default which are + # useless to the user (and to strongSwan for that matter) because no + # header files or alike get installed... so disabling them is safe. + if use pam && use eap; then + myeconfargs+=( --enable-eap-gtc ) + else + myeconfargs+=( --disable-eap-gtc ) + fi + + for mod in $STRONGSWAN_PLUGINS_STD; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT_DISABLE; do + ! use strongswan_plugins_${mod} && myeconfargs+=( --disable-${mod} ) + done + + for mod in $STRONGSWAN_PLUGINS_OPT; do + use strongswan_plugins_${mod} && myeconfargs+=( --enable-${mod} ) + done + + econf "${myeconfargs[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + + if ! use systemd; then + rm -rf "${ED}"/lib/systemd || die "Failed removing systemd lib." + fi + + doinitd "${FILESDIR}"/ipsec + + local dir_ugid + if use non-root && use strongswan_plugins_stroke; then + if [ -f /etc/ipsec.conf ]; then + fowners ${UGID}:${UGID} \ + /etc/ipsec.conf + fi + + fowners ${UGID}:${UGID} \ + /etc/strongswan.conf + + dir_ugid="${UGID}" + else + dir_ugid="root" + fi + + diropts -m 0750 -o ${dir_ugid} -g ${dir_ugid} + dodir /etc/ipsec.d \ + /etc/ipsec.d/aacerts \ + /etc/ipsec.d/acerts \ + /etc/ipsec.d/cacerts \ + /etc/ipsec.d/certs \ + /etc/ipsec.d/crls \ + /etc/ipsec.d/ocspcerts \ + /etc/ipsec.d/private \ + /etc/ipsec.d/reqs + + dodoc NEWS README TODO + + # shared libs are used only internally and there are no static libs, + # so it's safe to get rid of the .la files + find "${D}" -name '*.la' -delete || die "Failed to remove .la files." +} + +pkg_postinst() { + if ! use openssl && ! use gcrypt; then + elog + elog "${PN} has been compiled without both OpenSSL and libgcrypt support." + elog "Please note that this might effect availability and speed of some" + elog "cryptographic features. You are advised to enable the OpenSSL plugin." + elif ! use openssl; then + elog + elog "${PN} has been compiled without the OpenSSL plugin. This might effect" + elog "availability and speed of some cryptographic features. There will be" + elog "no support for Elliptic Curve Cryptography (Diffie-Hellman groups 19-21," + elog "25, 26) and ECDSA." + fi + if ! use caps && ! use non-root; then + ewarn + ewarn "You have decided to run ${PN} with root privileges and built it" + ewarn "without support for POSIX capability dropping. It is generally" + ewarn "strongly suggested that you reconsider- especially if you intend" + ewarn "to run ${PN} as server with a public ip address." + ewarn + ewarn "You should re-emerge ${PN} with at least the 'caps' USE flag enabled." + ewarn + fi + if use non-root; then + elog + elog "${PN} has been installed without superuser privileges (USE=non-root)." + elog "This imposes a few limitations mainly to the daemon 'charon' in" + elog "regards of the use of iptables." + elog + elog "Please carefully read: http://wiki.strongswan.org/projects/strongswan/wiki/ReducedPrivileges" + elog + elog "Thus if you require to specify a custom updown" + elog "script to charon which requires superuser privileges, you" + elog "can work around this limitation by using sudo to grant the" + elog "user \"ipsec\" the appropriate rights." + elog "For example (the default case):" + elog "/etc/sudoers:" + elog " ipsec ALL=(ALL) NOPASSWD: SETENV: /usr/sbin/ipsec" + elog "Under the specific connection block in /etc/ipsec.conf:" + elog " leftupdown=\"sudo -E ipsec _updown iptables\"" + elog + fi + elog + elog "Make sure you have _all_ required kernel modules available including" + elog "the appropriate cryptographic algorithms. A list is available at:" + elog " https://wiki.strongswan.org/projects/strongswan/wiki/KernelModules" + elog + elog "The up-to-date manual is available online at:" + elog " https://wiki.strongswan.org/" + elog +} diff --git a/net-vpn/tailscale/Manifest b/net-vpn/tailscale/Manifest new file mode 100644 index 000000000000..ef883ca2d3db --- /dev/null +++ b/net-vpn/tailscale/Manifest @@ -0,0 +1,20 @@ +DIST tailscale-1.82.5-deps.tar.xz 265161016 BLAKE2B eb50d34ecda207f623efe213c81f38d39953c8c984a0d35ede0b052ae9cc021404d3f596c5e4c74cd60b68c31d9873b60ac98ca600216fd157f42c9d27eb103d SHA512 877fedabdac139dfb73395ff27d915139c250f6308920cb57974b1d0d32c47ef14d9cc4dc47e89ce32adea36d7c558ee42caddac317f145f62ecfd59af493c22 +DIST tailscale-1.82.5.tar.gz 3793962 BLAKE2B 49ea1f878ce2ff6198d6ced1e4f49e557e7b1b9e2a2dd65079d5343aa46e57eee23b9d24561771c06af28d28cde4139d445e05e5d5c24f715ffc54b07c905050 SHA512 bed02f09c4905cba13fd3de3d45e027511420d76ece211312e153b6e50d8a10d2fb968a09ec1121f2150d414a74ca128430740173c16c0bef2696d141496849a +DIST tailscale-1.84.3-deps.tar.xz 265133640 BLAKE2B 4c041513f2c9c86f58e1ec449a67eaed6bff1cba0ee5d615eae45a65b751caf5c0a65843d6547d62c34b7bd766d871db78e9eb688159e6324ec93783f073fec1 SHA512 cc61248ebd49cba634bde39278f4eb9574d2e958a6751b0b956cb4f453cb2506895f3b9f70c6795f1aaf13401794edd1800611b7487de9f5dd219c7992b4adac +DIST tailscale-1.84.3.tar.gz 3963497 BLAKE2B 2dadfffa203883a0aaa7e0148d9925be93954eda8bb0638224cefe4bf24a50112ee08fd71e5d0d5caf19bd2fe963e8bb796a3033796e576b63a954a6ae26f057 SHA512 23e185ae2b7ced0d93632b891f3150d31a5b053d69a30c8cdc361fc9fab0d4bab54b730caa4cdd04cd5d82fef48a46ee509a1b4b590e6beae29ab1da6660cbc0 +DIST tailscale-1.86.5-deps.tar.xz 264951596 BLAKE2B 23e02afb1602b988bc3258c740f5740a0f97124e58e307ba9936f7e2b56c86f88860ea08bbf3211b518b85bac06014b9b365f9dd0beff9d2932e7611c25f13cb SHA512 1b2407b5830a768da4a1c4cb330b31edd236798cdcd2a66b786e7efdf844caa875c6cb859f80fa641cf0f03fea3528826f08ce21ea3d9c9c3ee5db1bea58b34a +DIST tailscale-1.86.5.tar.gz 4143149 BLAKE2B 16b961f04397544102b71a7cb11596d2b6770c6fd88e11252018a2d7160b22585b50fa878b6a9923779ce8bff92e315b33553289d3648cbeb0a8ae017aeeb0b4 SHA512 aece289dd7c0ac1ddc866dcb08234bddbe0611bf7e539cfdd2244d4ac87e8f578462b3765bae8c48025eaef0b880b204e5bcced1db20166af0dc50b836eacf08 +DIST tailscale-1.90.6-deps.tar.xz 261853716 BLAKE2B 0ed8c38bd7c6e6b7960475764cae0d61e057f472067c0113f00fcf22a31fb175ff2ab761301e8da2f23a3bdacb489b8f0a9229d7325426dfd7f4c41f2cd74c8b SHA512 2ea79c29d559855537115a8d1cea1956cb4a34e785c366ea932318398b0e6a280496f5876345923cf8ce4a5e554cd61e659d8462ca82aec723c0b7393c5219e6 +DIST tailscale-1.90.6.tar.gz 4310216 BLAKE2B 265579794c9115f82b896c9cea379159f416597c8c0ee5d681d022279c0e7ead2c4d81f260e011f1414416411001094156dc9a21b9655f0c403611bd1c750df8 SHA512 74078b5fe2ecc06528b1ec54496d49ff701c97f792f7c8dbd08203646e88819ef65260357d0fac09e3319ce17749f8b7b5da95ed02f2b2e9a6e2b6196b483e47 +DIST tailscale-1.92.1-deps.tar.xz 261683924 BLAKE2B 328d6fbe8e5d0fd5fb7df1f661474b4357ea4e1e9f811fdf1d847303d607fd6b8dde3489f6e1089be9d54c44cfd4700ee40b6aa09e797330bafe438184a39efd SHA512 82d187419719bb7d60dc6c4c92abc97c8d4cc278fec017c1eb7ba18819b924395a027f5e3cb0a982ea1e3903abd16ec10df226b05a4b2f50d75f15a1c3838de4 +DIST tailscale-1.92.1.tar.gz 4376520 BLAKE2B 3df1d1ba988480e68546f043012863201ff4f36f0d14c5b67dcfab6efbfc35b838e9589a0beb006272ac804e82b60c421b719da54621ff9b45b7c5ba80781a98 SHA512 e8d064a952c3a11b0ece52a99f974fce6a83615cfb06f92445b88f42c885edf1259cf1eadfdd8a363cb8560517292701ec5f8a8c7df668b8014ec1cff32b3729 +DIST tailscale-1.92.4-deps.tar.xz 261683816 BLAKE2B e20589b62558cc756f85f7528997dd865fed3b60aa325b20beb69225e3dac94837a6c15a2c2dec79fe0ff1daabfc514217ef9fbb1efb6a5909321aeb1bc28b5c SHA512 b2566315ccca62b25cddd6249f9c6d68b46362cd4eb413374767d3404fd8952c6241c2fe5520756eea5e781a27051be30d04df728cf924f2fb5ce58231f610c9 +DIST tailscale-1.92.4.tar.gz 4376455 BLAKE2B fd526abf0d73019c4db48ce05cbe964184430c1f94e027344bffe3161379447c4cf776bd7205177357a6ed119187120d0536485c03f58b90e5a6765cc6824521 SHA512 8a9884800982041fa3ee9e955617e71d346f8f2365b24bd7a5673a810a887e57dd901d1b0ca1d7649ab84f2e2831222387e5258ef2d9abfcffa56535d618d586 +DIST tailscale-1.96.5-vendor.tar.xz 28208044 BLAKE2B 04b41a6c192b66dbdfb9765afa736c233539a5eb8fbdc6d9000157ca2cd85b322477553e0ce1312104a19079e886dd87bcebfbf08348b8694ed6a4666c55babe SHA512 40f3c12f89856a0f91b8da986d7fc0e0a955a2fc28a33cb1c4cb86427ad17d5a7a47adb6614047fd60eb12faaff740b38f2fc90c8f2bbbb142c1abfe1a4d5e04 +DIST tailscale-1.96.5.tar.gz 4527087 BLAKE2B 9c07399c0d020bed47e2b88f43139b4e3c8600f6236d07137e17e1306261b4c88946099c64994be6a4218578370a7ae5685b6159161e9c709091c03409ba2f38 SHA512 b48966dbf3d8d10ec2a94cb948c5998140b2562aafc4539456e652fc6224145631e770982b9d1866657ed897777ffd4cd5ac7692a5123ebfd93ab4e94b37d7e6 +DIST tailscale-1.98.0-vendor.tar.xz 41420620 BLAKE2B 658c13bbbf0ee56def08b2e63fe67001d1724aa75c06e51636bda6f1cf31f993f573c00596c00e1adab0b75d6c315e4f6ba566602f13f2b8541a27d2fe66fb21 SHA512 25fb854ee73aebada0c86eb1f7ca1cd0d0bed792bb9ade99dc09a8224b8ec326dd45b812a97be935f346cd8a083725698c6eec1bd854d4852034268a9e303cc3 +DIST tailscale-1.98.0.tar.gz 4756618 BLAKE2B 96976f3f1b3acddd0453559fbed2d7bec971a19ed2834dd9219855c6d3a65d7788a312ab76d7caae5aa43cacfe4761fe0ac3bda1631cc957e69c1a4c6432d60c SHA512 47a1ff3bded30c687ba96b260621f036bf7a52ddc368ac2e47471aeb9dc5edf9615f93c0cfa26cb9d5a56a367c3e02f51096fdec21636c840327b6d899044911 +DIST tailscale-1.98.1-vendor.tar.xz 41416640 BLAKE2B 414bdf12b152e77492e91032770ab35f98ca9c4435f14696810413fc25b779f860389524f1f14cc143ece51d4ed3f1022ab4dfe4577d5091660b6b575fcf5b88 SHA512 d666ee9069545d6393721a99865b0701f360676900be97b6d7a122c9d5f3609767908752ed10b8ac5e1bac0bcebd28825f19b5b46edbd4ca203c89858d718f2a +DIST tailscale-1.98.1.tar.gz 4755446 BLAKE2B 3e93004ff4378aa5987f492f52908a5af1c4bff030ce91fbf680421d6641ac669c70a4b7624f9fadbfb4ed732afd8648d871a186f1fa80931dec485f5ecc36af SHA512 9cfd255676809ee95fc1587f40647c6bab39b8a010b11eb55327d99b2dd943184d434020feaa2d04f3d3e980ea3d8cf1f33aa35e635a62d93671b389d492e1a5 +DIST tailscale-1.98.4-vendor.tar.xz 41414920 BLAKE2B 80a662393099aebf9c8f50311ffdb8482577a516e52b87ab99f8715fc58805312b7a0917fcd3781c233f2785ac08a24af68f06298dc085e9a1e7cc167b19bc43 SHA512 ab1c72595d305ce6441d67f03340ca35f56d7e2c556f7753e2c9703200caae3f620e329c280c4e312291be61659ff0647684c91f3c2995290dd7afdd702fe044 +DIST tailscale-1.98.4.tar.gz 4756434 BLAKE2B 9cbabdf77f2cb355963c5f6d0588d0ea309cfc92d921166310a787a579141c331bce586da3da1a2e28dff7a15f30647368cef5fb512a72897a306a27d2e54f78 SHA512 60639d3f4bc6a5382c0a562a58cbf1d520c54d405c25c0192dd237b7d5e10c1144f9154e9960621dfff0e25aad952a47663d3e2224be22c23e94e4eee2eb8a30 diff --git a/net-vpn/tailscale/files/tailscale.tmpfiles b/net-vpn/tailscale/files/tailscale.tmpfiles new file mode 100644 index 000000000000..f27c77835201 --- /dev/null +++ b/net-vpn/tailscale/files/tailscale.tmpfiles @@ -0,0 +1,2 @@ +#type path mode user group age argument +d /run/tailscale 0755 - - - - diff --git a/net-vpn/tailscale/files/tailscaled.confd b/net-vpn/tailscale/files/tailscaled.confd new file mode 100644 index 000000000000..d65c42925ecf --- /dev/null +++ b/net-vpn/tailscale/files/tailscaled.confd @@ -0,0 +1,6 @@ +# /etc/conf.d/tailscaled +# the port for tailscaled to listen on +#tailscaled_port=41641 + +# extra arguments passed to the daemon +#tailscaled_args="" diff --git a/net-vpn/tailscale/files/tailscaled.initd b/net-vpn/tailscale/files/tailscaled.initd new file mode 100644 index 000000000000..c7edf4a19f09 --- /dev/null +++ b/net-vpn/tailscale/files/tailscaled.initd @@ -0,0 +1,14 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="tailscaled" +description="Tailscale node agent" +command=/usr/sbin/tailscaled +command_args="--state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port ${tailscaled_port:-41641} ${tailscaled_args}" +supervisor=supervise-daemon + +depend() { + need net + use logger +} diff --git a/net-vpn/tailscale/metadata.xml b/net-vpn/tailscale/metadata.xml new file mode 100644 index 000000000000..c22f46fc25e5 --- /dev/null +++ b/net-vpn/tailscale/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>William Hubbs</name> + <email>williamh@gentoo.org</email> + </maintainer> + <upstream> + <remote-id type="github">tailscale/tailscale</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/tailscale/tailscale-1.82.5.ebuild b/net-vpn/tailscale/tailscale-1.82.5.ebuild new file mode 100644 index 000000000000..70517a545de7 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.82.5.ebuild @@ -0,0 +1,63 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd tmpfiles + +# These settings are obtained by running ./build_dist.sh shellvars` in +# the upstream repo. +# They should be updated on every bump. +VERSION_MINOR="82" +VERSION_SHORT="1.82.5" +VERSION_LONG="1.82.5-te4d64c6fa" +VERSION_GIT_HASH="e4d64c6faf827a308ec20b39651225178e6743c0" + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.24" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/tailscale + build_dist ./cmd/tailscaled +} + +src_install() { + dosbin tailscaled + dobin tailscale + + systemd_dounit cmd/tailscaled/tailscaled.service + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.84.3.ebuild b/net-vpn/tailscale/tailscale-1.84.3.ebuild new file mode 100644 index 000000000000..2b1f85b01a37 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.84.3.ebuild @@ -0,0 +1,63 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd tmpfiles + +# These settings are obtained by running ./build_dist.sh shellvars` in +# the upstream repo. +# They should be updated on every bump. +VERSION_MINOR="84" +VERSION_SHORT="1.84.3" +VERSION_LONG="1.84.3-t7648989bc" +VERSION_GIT_HASH="7648989bc54738b1e40dde74fa822984a63cbc05" + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.24" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/tailscale + build_dist ./cmd/tailscaled +} + +src_install() { + dosbin tailscaled + dobin tailscale + + systemd_dounit cmd/tailscaled/tailscaled.service + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.86.5.ebuild b/net-vpn/tailscale/tailscale-1.86.5.ebuild new file mode 100644 index 000000000000..8f05c0951212 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.86.5.ebuild @@ -0,0 +1,63 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd tmpfiles + +# These settings are obtained by running ./build_dist.sh shellvars` in +# the upstream repo. +# They should be updated on every bump. +VERSION_MINOR="86" +VERSION_SHORT="1.86.5" +VERSION_LONG="1.86.5-tdb392aed3" +VERSION_GIT_HASH="db392aed39630023f969e1961fcbced785d09358" + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.24" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/tailscale + build_dist ./cmd/tailscaled +} + +src_install() { + dosbin tailscaled + dobin tailscale + + systemd_dounit cmd/tailscaled/tailscaled.service + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.90.6.ebuild b/net-vpn/tailscale/tailscale-1.90.6.ebuild new file mode 100644 index 000000000000..fedcdf669ca4 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.90.6.ebuild @@ -0,0 +1,63 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd tmpfiles + +# These settings are obtained by running ./build_dist.sh shellvars` in +# the upstream repo. +# They should be updated on every bump. +VERSION_MINOR="90" +VERSION_SHORT="1.90.6" +VERSION_LONG="1.90.6-t28f6c2dbf" +VERSION_GIT_HASH="28f6c2dbfc5d3f7dde8d566a9214f6e0f55a9d17" + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.25.3" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/tailscale + build_dist ./cmd/tailscaled +} + +src_install() { + dosbin tailscaled + dobin tailscale + + systemd_dounit cmd/tailscaled/tailscaled.service + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.92.1.ebuild b/net-vpn/tailscale/tailscale-1.92.1.ebuild new file mode 100644 index 000000000000..28c83b88b922 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.92.1.ebuild @@ -0,0 +1,63 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd tmpfiles + +# These settings are obtained by running ./build_dist.sh shellvars` in +# the upstream repo. +# They should be updated on every bump. +VERSION_MINOR="92" +VERSION_SHORT="1.92.1" +VERSION_LONG="1.92.1-t2078eb56f" +VERSION_GIT_HASH="2078eb56f3ca310821aae3fa140aa3b0d3bda2dc" + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.25.5" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/tailscale + build_dist ./cmd/tailscaled +} + +src_install() { + dosbin tailscaled + dobin tailscale + + systemd_dounit cmd/tailscaled/tailscaled.service + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.92.4.ebuild b/net-vpn/tailscale/tailscale-1.92.4.ebuild new file mode 100644 index 000000000000..1b898bae9d6b --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.92.4.ebuild @@ -0,0 +1,63 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd tmpfiles + +# These settings are obtained by running ./build_dist.sh shellvars` in +# the upstream repo. +# They should be updated on every bump. +VERSION_MINOR="92" +VERSION_SHORT="1.92.4" +VERSION_LONG="1.92.4-t5065307fb" +VERSION_GIT_HASH="5065307fb87479c975d513a49a7faf1cf4d4c38d" + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~x86" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.25.5" + +RESTRICT="test" + +# This translates the build command from upstream's build_dist.sh to an +# ebuild equivalent. +build_dist() { + ego build -tags xversion -ldflags " + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" "$@" +} + +src_compile() { + build_dist ./cmd/tailscale + build_dist ./cmd/tailscaled +} + +src_install() { + dosbin tailscaled + dobin tailscale + + systemd_dounit cmd/tailscaled/tailscaled.service + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.96.5.ebuild b/net-vpn/tailscale/tailscale-1.96.5.ebuild new file mode 100644 index 000000000000..29ef650c427d --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.96.5.ebuild @@ -0,0 +1,67 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info shell-completion systemd sysroot tmpfiles + +# They should be updated on every bump. +VERSION_GIT_HASH="41cb72f27119f95b859335f3ffc3434d6ca55e23" +VERSION_MINOR=$(ver_cut 2) +VERSION_SHORT=${PV} +VERSION_LONG=${PV}-t${VERSION_GIT_HASH::9} + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~x86" +RESTRICT="test" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.26.1" + +src_compile() { + # This translates the build command from upstream's build_dist.sh to an + # ebuild equivalent. + local go_ldflags=( + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH} + ) + ego build -tags xversion -ldflags "${go_ldflags[*]}" -o bin/ ./cmd/tailscale ./cmd/tailscaled + + einfo "generating shell completion files" + sysroot_try_run_prefixed ./bin/tailscale completion bash > ${PN}.bash || die + sysroot_try_run_prefixed ./bin/tailscale completion zsh > ${PN}.zsh || die + sysroot_try_run_prefixed ./bin/tailscale completion fish > ${PN}.fish || die +} + +src_install() { + dosbin bin/tailscaled + dobin bin/tailscale + + systemd_dounit cmd/tailscaled/{tailscaled.service,tailscale-online.target,tailscale-wait-online.service} + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} + + [[ -s ${PN}.bash ]] && newbashcomp ${PN}.bash ${PN} + [[ -s ${PN}.zsh ]] && newzshcomp ${PN}.zsh _${PN} + [[ -s ${PN}.fish ]] && dofishcomp ${PN}.fish +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.98.0.ebuild b/net-vpn/tailscale/tailscale-1.98.0.ebuild new file mode 100644 index 000000000000..0a345d0b15f5 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.98.0.ebuild @@ -0,0 +1,69 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info shell-completion systemd sysroot tmpfiles + +# They should be updated on every bump. +VERSION_GIT_HASH="f2d5ef72bd2fc32db115550646a58076b7898853" +VERSION_MINOR=$(ver_cut 2) +VERSION_SHORT=${PV} +VERSION_LONG=${PV}-t${VERSION_GIT_HASH::9} + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz" + +LICENSE="MIT" +# Dependent licenses +LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +RESTRICT="test" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.26.2" + +src_compile() { + # This translates the build command from upstream's build_dist.sh to an + # ebuild equivalent. + local go_ldflags=( + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH} + ) + ego build -tags xversion -ldflags "${go_ldflags[*]}" -o bin/ ./cmd/tailscale ./cmd/tailscaled + + einfo "generating shell completion files" + sysroot_try_run_prefixed ./bin/tailscale completion bash > ${PN}.bash || die + sysroot_try_run_prefixed ./bin/tailscale completion zsh > ${PN}.zsh || die + sysroot_try_run_prefixed ./bin/tailscale completion fish > ${PN}.fish || die +} + +src_install() { + dosbin bin/tailscaled + dobin bin/tailscale + + systemd_dounit cmd/tailscaled/{tailscaled.service,tailscale-online.target,tailscale-wait-online.service} + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} + + [[ -s ${PN}.bash ]] && newbashcomp ${PN}.bash ${PN} + [[ -s ${PN}.zsh ]] && newzshcomp ${PN}.zsh _${PN} + [[ -s ${PN}.fish ]] && dofishcomp ${PN}.fish +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.98.1.ebuild b/net-vpn/tailscale/tailscale-1.98.1.ebuild new file mode 100644 index 000000000000..46e583f6d7c5 --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.98.1.ebuild @@ -0,0 +1,69 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info shell-completion systemd sysroot tmpfiles + +# They should be updated on every bump. +VERSION_GIT_HASH="87ab41993e0aba0965ef887af38c2543572bef3a" +VERSION_MINOR=$(ver_cut 2) +VERSION_SHORT=${PV} +VERSION_LONG=${PV}-t${VERSION_GIT_HASH::9} + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz" + +LICENSE="MIT" +# Dependent licenses +LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +RESTRICT="test" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.26.2" + +src_compile() { + # This translates the build command from upstream's build_dist.sh to an + # ebuild equivalent. + local go_ldflags=( + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH} + ) + ego build -tags xversion -ldflags "${go_ldflags[*]}" -o bin/ ./cmd/tailscale ./cmd/tailscaled + + einfo "generating shell completion files" + sysroot_try_run_prefixed ./bin/tailscale completion bash > ${PN}.bash || die + sysroot_try_run_prefixed ./bin/tailscale completion zsh > ${PN}.zsh || die + sysroot_try_run_prefixed ./bin/tailscale completion fish > ${PN}.fish || die +} + +src_install() { + dosbin bin/tailscaled + dobin bin/tailscale + + systemd_dounit cmd/tailscaled/{tailscaled.service,tailscale-online.target,tailscale-wait-online.service} + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} + + [[ -s ${PN}.bash ]] && newbashcomp ${PN}.bash ${PN} + [[ -s ${PN}.zsh ]] && newzshcomp ${PN}.zsh _${PN} + [[ -s ${PN}.fish ]] && dofishcomp ${PN}.fish +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tailscale/tailscale-1.98.4.ebuild b/net-vpn/tailscale/tailscale-1.98.4.ebuild new file mode 100644 index 000000000000..8e218588401c --- /dev/null +++ b/net-vpn/tailscale/tailscale-1.98.4.ebuild @@ -0,0 +1,69 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info shell-completion systemd sysroot tmpfiles + +# They should be updated on every bump. +VERSION_GIT_HASH="01c6b9661c9e001674c650fa655e56ee1fda4d90" +VERSION_MINOR=$(ver_cut 2) +VERSION_SHORT=${PV} +VERSION_LONG=${PV}-t${VERSION_GIT_HASH::9} + +DESCRIPTION="Tailscale vpn client" +HOMEPAGE="https://tailscale.com" +SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-vendor.tar.xz" + +LICENSE="MIT" +# Dependent licenses +LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +RESTRICT="test" + +CONFIG_CHECK="~TUN" + +RDEPEND="|| ( net-firewall/iptables net-firewall/nftables )" +BDEPEND=">=dev-lang/go-1.26.3" + +src_compile() { + # This translates the build command from upstream's build_dist.sh to an + # ebuild equivalent. + local go_ldflags=( + -X tailscale.com/version.longStamp=${VERSION_LONG} + -X tailscale.com/version.shortStamp=${VERSION_SHORT} + -X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH} + ) + ego build -tags xversion -ldflags "${go_ldflags[*]}" -o bin/ ./cmd/tailscale ./cmd/tailscaled + + einfo "generating shell completion files" + sysroot_try_run_prefixed ./bin/tailscale completion bash > ${PN}.bash || die + sysroot_try_run_prefixed ./bin/tailscale completion zsh > ${PN}.zsh || die + sysroot_try_run_prefixed ./bin/tailscale completion fish > ${PN}.fish || die +} + +src_install() { + dosbin bin/tailscaled + dobin bin/tailscale + + systemd_dounit cmd/tailscaled/{tailscaled.service,tailscale-online.target,tailscale-wait-online.service} + insinto /etc/default + newins cmd/tailscaled/tailscaled.defaults tailscaled + keepdir /var/lib/${PN} + fperms 0750 /var/lib/${PN} + + newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf + + newinitd "${FILESDIR}/${PN}d.initd" ${PN} + newconfd "${FILESDIR}/${PN}d.confd" ${PN} + + [[ -s ${PN}.bash ]] && newbashcomp ${PN}.bash ${PN} + [[ -s ${PN}.zsh ]] && newzshcomp ${PN}.zsh _${PN} + [[ -s ${PN}.fish ]] && dofishcomp ${PN}.fish +} + +pkg_postinst() { + tmpfiles_process ${PN}.conf +} diff --git a/net-vpn/tinc/Manifest b/net-vpn/tinc/Manifest new file mode 100644 index 000000000000..d810e6689171 --- /dev/null +++ b/net-vpn/tinc/Manifest @@ -0,0 +1,3 @@ +DIST tinc-1.0.36.tar.gz 500320 BLAKE2B 6f799ab04f9553fa389baf9d60121540b1fc7d5b5c2b62b2ebe0bf7478f5f69e8638a9c1b15f8ab84268d813ac1b1978c73b12a478b682cd808747fd2eed951c SHA512 23af9162f7ae700bad01e1f59f23f32d1b183b185ec35f4a69a987c52c53cfebfa9e852203b399f035988078e9131e5d59b018554a52a30044f34df6e64b5289 +DIST tinc-1.0.37.tar.gz 514854 BLAKE2B f5ff48799aa18de24fd96ed31489017d500d4ffb3d8fa006bdce38bfeea1cfcd915ef829437b899bc931071384c5fdf8739b71f9dfdd4c2ecdfb60f20e44eefb SHA512 916706d32278a4659f1d7da8c58bc5764c1ab5d8f31214dad51e45aae6cf765436f2e9ad55647980b5ba7726d6cfaa1fcf25fbeaffdd95436e77ec3153278237 +DIST tinc-1.1pre18.tar.gz 732111 BLAKE2B b236a8a0b7f8b755d71f2e2564af6bd13f5d87aec512b7db388ac1e23110cfdac80d8b642644a4b35fa81d37765e9ced65cc535d48e34b79190c2eddb107a9e2 SHA512 d8b03c78fd579df58d4c8a03f5d2241d2c95edb660ce9aa34441f6e75df09e3fff7524215c7c4b3622311e80f5bb452a6ac1205f3fd13424d56135f70b973183 diff --git a/net-vpn/tinc/files/tinc-1.1-tinfo.patch b/net-vpn/tinc/files/tinc-1.1-tinfo.patch new file mode 100644 index 000000000000..5a9ec01473df --- /dev/null +++ b/net-vpn/tinc/files/tinc-1.1-tinfo.patch @@ -0,0 +1,10 @@ +--- a/m4/curses.m4 ++++ b/m4/curses.m4 +@@ -39,6 +39,7 @@ + )] + ) + ]) ++ AC_SEARCH_LIBS(stdscr, tinfo) + + AC_SUBST(CURSES_LIBS) + ]) diff --git a/net-vpn/tinc/files/tinc-1.1_pre16-r1-fix-paths.patch b/net-vpn/tinc/files/tinc-1.1_pre16-r1-fix-paths.patch new file mode 100644 index 000000000000..30cafee87878 --- /dev/null +++ b/net-vpn/tinc/files/tinc-1.1_pre16-r1-fix-paths.patch @@ -0,0 +1,55 @@ +diff -Naur tinc-1.1pre16.orig/src/names.c tinc-1.1pre16/src/names.c +--- tinc-1.1pre16.ori/src/names.c 2018-04-02 10:41:12.000000000 -0400 ++++ tinc-1.1pre16/src/names.c 2018-07-06 15:11:35.970680875 -0400 +@@ -103,47 +103,13 @@ + } + + #else +- bool fallback = false; +- +- if(daemon) { +- if(access(LOCALSTATEDIR, R_OK | W_OK | X_OK)) { +- fallback = true; +- } +- } else { +- char fname[PATH_MAX]; +- snprintf(fname, sizeof(fname), LOCALSTATEDIR SLASH "run" SLASH "%s.pid", identname); +- +- if(access(fname, R_OK)) { +- snprintf(fname, sizeof(fname), "%s" SLASH "pid", confbase); +- +- if(!access(fname, R_OK)) { +- fallback = true; +- } +- } ++ if(!logfilename) { ++ xasprintf(&logfilename, "/var/log" SLASH "%s.log", identname); + } + +- if(!fallback) { +- if(!logfilename) { +- xasprintf(&logfilename, LOCALSTATEDIR SLASH "log" SLASH "%s.log", identname); +- } +- +- if(!pidfilename) { +- xasprintf(&pidfilename, LOCALSTATEDIR SLASH "run" SLASH "%s.pid", identname); +- } +- } else { +- if(!logfilename) { +- xasprintf(&logfilename, "%s" SLASH "log", confbase); +- } +- +- if(!pidfilename) { +- if(daemon) { +- logger(DEBUG_ALWAYS, LOG_WARNING, "Could not access " LOCALSTATEDIR SLASH " (%s), storing pid and socket files in %s" SLASH, strerror(errno), confbase); +- } +- +- xasprintf(&pidfilename, "%s" SLASH "pid", confbase); +- } ++ if(!pidfilename) { ++ xasprintf(&pidfilename, "/run" SLASH "%s.pid", identname); + } +- + #endif + + if(!unixsocketname) { diff --git a/net-vpn/tinc/files/tinc.networks b/net-vpn/tinc/files/tinc.networks new file mode 100644 index 000000000000..e1844ce2ba24 --- /dev/null +++ b/net-vpn/tinc/files/tinc.networks @@ -0,0 +1,13 @@ +# file: /etc/conf.d/tinc.networks for /etc/init.d/tincd + +# In this file you define the tinc networks you want to connect to + +# USAGE: +# you add a network to the init script by defining: +# NETWORK: your_network_name +# +# if you want to connect to multiple VPN's just set them behind each other. e.g. +# NETWORK: foo +# NETWORK: bar +# +# this would join the network foo and the network bar. diff --git a/net-vpn/tinc/files/tincd-r1 b/net-vpn/tinc/files/tincd-r1 new file mode 100644 index 000000000000..ecfb24a6a64f --- /dev/null +++ b/net-vpn/tinc/files/tincd-r1 @@ -0,0 +1,78 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +NETS="/etc/conf.d/tinc.networks" +DAEMON="/usr/sbin/tincd" + +depend() { + use logger dns + need net +} + +checkconfig() { + if [ "${RC_SVCNAME}" = "tincd" ] ; then + ALL_NETNAME="$(awk '/^ *NETWORK:/ { print $2 }' "${NETS}")" + else + ALL_NETNAME="${RC_SVCNAME#*.}" + fi + # warn this if still not found + if [ -z "${ALL_NETNAME}" ] ; then + eerror "No VPN networks configured in ${NETS}" + return 1 + fi + return 0 +} + +start() { + ebegin "Starting tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + CONFIG="/etc/tinc/${NETNAME}/tinc.conf" + PIDFILE="/var/run/tinc.${NETNAME}.pid" + if [ ! -f "${CONFIG}" ]; then + eerror "Cannot start network ${NETNAME}." + eerror "Please set up ${CONFIG} !" + else + ebegin "Starting tinc network ${NETNAME}" + if [ "${SYSLOG}" = "yes" ]; then + LOG="" + else + LOG="--logfile=/var/log/tinc.${NETNAME}.log" + fi + start-stop-daemon --start --exec "${DAEMON}" --pidfile "${PIDFILE}" -- --net="${NETNAME}" ${LOG} --pidfile "${PIDFILE}" --debug="${DEBUG_LEVEL}" ${EXTRA_OPTS} + eend $? + fi + done +} + +stop() { + ebegin "Stopping tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + PIDFILE="/var/run/tinc.${NETNAME}.pid" + if [ -f "${PIDFILE}" ]; then + ebegin "Stopping tinc network ${NETNAME}" + start-stop-daemon --stop --pidfile "${PIDFILE}" + eend $? + fi + done +} + +reload() { + ebegin "Reloading configuration for tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + PIDFILE="/var/run/tinc.${NETNAME}.pid" + if [ -f "${PIDFILE}" ]; then + ebegin "Reloading tinc network ${NETNAME}" + start-stop-daemon --signal HUP --pidfile ${PIDFILE} + eend $? + fi + done +} diff --git a/net-vpn/tinc/files/tincd-r2 b/net-vpn/tinc/files/tincd-r2 new file mode 100644 index 000000000000..55728bec2c78 --- /dev/null +++ b/net-vpn/tinc/files/tincd-r2 @@ -0,0 +1,78 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +NETS="/etc/conf.d/tinc.networks" +DAEMON="/usr/sbin/tincd" + +depend() { + use logger dns + need net +} + +checkconfig() { + if [ "${RC_SVCNAME}" = "tincd" ] ; then + ALL_NETNAME="$(awk '/^ *NETWORK:/ { print $2 }' "${NETS}")" + else + ALL_NETNAME="${RC_SVCNAME#*.}" + fi + # warn this if still not found + if [ -z "${ALL_NETNAME}" ] ; then + eerror "No VPN networks configured in ${NETS}" + return 1 + fi + return 0 +} + +start() { + ebegin "Starting tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + CONFIG="/etc/tinc/${NETNAME}/tinc.conf" + PIDFILE="/run/tinc.${NETNAME}.pid" + if [ ! -f "${CONFIG}" ]; then + eerror "Cannot start network ${NETNAME}." + eerror "Please set up ${CONFIG} !" + else + ebegin "Starting tinc network ${NETNAME}" + if [ "${SYSLOG}" = "yes" ]; then + LOG="" + else + LOG="--logfile=/var/log/tinc.${NETNAME}.log" + fi + start-stop-daemon --start --exec "${DAEMON}" --pidfile "${PIDFILE}" -- --net="${NETNAME}" ${LOG} --pidfile "${PIDFILE}" --debug="${DEBUG_LEVEL}" ${EXTRA_OPTS} + eend $? + fi + done +} + +stop() { + ebegin "Stopping tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + PIDFILE="/run/tinc.${NETNAME}.pid" + if [ -f "${PIDFILE}" ]; then + ebegin "Stopping tinc network ${NETNAME}" + start-stop-daemon --stop --pidfile "${PIDFILE}" + eend $? + fi + done +} + +reload() { + ebegin "Reloading configuration for tinc VPN networks" + checkconfig || return 1 + for NETNAME in ${ALL_NETNAME} + do + PIDFILE="/run/tinc.${NETNAME}.pid" + if [ -f "${PIDFILE}" ]; then + ebegin "Reloading tinc network ${NETNAME}" + start-stop-daemon --signal HUP --pidfile ${PIDFILE} + eend $? + fi + done +} diff --git a/net-vpn/tinc/files/tincd.conf b/net-vpn/tinc/files/tincd.conf new file mode 100644 index 000000000000..cedca60c42ad --- /dev/null +++ b/net-vpn/tinc/files/tincd.conf @@ -0,0 +1,20 @@ +#rc_need="net.net" + +#If you want tincd to log to syslog, then set this to "yes" +#Anything else and tincd will log to /var/log/tinc.NETNAME.log. +SYSLOG="yes" + +#Set debug level, useful for error probe +# 0 Quiet mode, only show starting/stopping of the daemon +# 1 Show (dis)connects of other tinc daemons via TCP +# 2 Show error messages received from other hosts +# 2 Show status messages received from other hosts +# 3 Show the requests that are sent/received +# 4 Show contents of every request that is sent/received +# 5 Show network traffic information +# 6 Show contents of each packet that is being sent/received +# 10 You have been warned +DEBUG_LEVEL="0" + +#Extra Options, if you want addtional customization +EXTRA_OPTS="" diff --git a/net-vpn/tinc/files/tincd_at.service b/net-vpn/tinc/files/tincd_at.service new file mode 100644 index 000000000000..71f358a39d95 --- /dev/null +++ b/net-vpn/tinc/files/tincd_at.service @@ -0,0 +1,10 @@ +[Unit] +Description=Tinc daemon for network %i +After=network.target + +[Service] +ExecStart=/usr/sbin/tincd -D --pidfile /run/tinc.%i.pid -n %i +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/tinc/metadata.xml b/net-vpn/tinc/metadata.xml new file mode 100644 index 000000000000..22e90999c2e6 --- /dev/null +++ b/net-vpn/tinc/metadata.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="person"> + <email>blueness@gentoo.org</email> + <name>Anthony G. Basile</name> + </maintainer> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <upstream> + <remote-id type="cpe">cpe:/a:tinc-vpn:tinc</remote-id> + </upstream> + <use> + <flag name="uml"> Enable support for User Mode Linux Sockets</flag> + <flag name="vde"> Enable Virtual Distributed Ethernet (VDE) based networking</flag> + </use> + <origin>ports</origin> +</pkgmetadata>
\ No newline at end of file diff --git a/net-vpn/tinc/tinc-1.0.36.ebuild b/net-vpn/tinc/tinc-1.0.36.ebuild new file mode 100644 index 000000000000..6a586821f7cd --- /dev/null +++ b/net-vpn/tinc/tinc-1.0.36.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit systemd + +DESCRIPTION="tinc is an easy to configure VPN implementation" +HOMEPAGE="http://www.tinc-vpn.org/" + +SRC_URI="http://www.tinc-vpn.org/packages/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE=" +lzo uml vde +zlib" + +DEPEND=" + dev-libs/openssl:0= + + lzo? ( dev-libs/lzo:2 ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND} + vde? ( net-misc/vde )" + +src_configure() { + econf \ + --enable-jumbograms \ + --disable-tunemu \ + $(use_enable lzo) \ + $(use_enable uml) \ + $(use_enable vde) \ + $(use_enable zlib) +} + +src_install() { + emake DESTDIR="${D}" install + dodir /etc/tinc + dodoc AUTHORS NEWS README THANKS + doconfd "${FILESDIR}"/tinc.networks + newconfd "${FILESDIR}"/tincd.conf tincd + newinitd "${FILESDIR}"/tincd-r1 tincd + systemd_newunit "${FILESDIR}"/tincd_at.service "tincd@.service" +} diff --git a/net-vpn/tinc/tinc-1.0.37.ebuild b/net-vpn/tinc/tinc-1.0.37.ebuild new file mode 100644 index 000000000000..eee3226a2415 --- /dev/null +++ b/net-vpn/tinc/tinc-1.0.37.ebuild @@ -0,0 +1,42 @@ +# Copyright 2021-2026 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 +inherit systemd + +DESCRIPTION="tinc is an easy to configure VPN implementation" +HOMEPAGE="http://www.tinc-vpn.org/" + +SRC_URI="http://www.tinc-vpn.org/packages/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE=" +lzo uml vde +zlib" + +DEPEND=" + dev-libs/openssl:0= + + lzo? ( dev-libs/lzo:2 ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND} + vde? ( net-misc/vde )" + +src_configure() { + econf \ + --enable-jumbograms \ + --disable-tunemu \ + $(use_enable lzo) \ + $(use_enable uml) \ + $(use_enable vde) \ + $(use_enable zlib) +} + +src_install() { + emake DESTDIR="${D}" install + dodir /etc/tinc + dodoc AUTHORS NEWS README THANKS + doconfd "${FILESDIR}"/tinc.networks + newconfd "${FILESDIR}"/tincd.conf tincd + newinitd "${FILESDIR}"/tincd-r1 tincd + systemd_newunit "${FILESDIR}"/tincd_at.service "tincd@.service" +} diff --git a/net-vpn/tinc/tinc-1.1_pre18.ebuild b/net-vpn/tinc/tinc-1.1_pre18.ebuild new file mode 100644 index 000000000000..891d2f9b36ed --- /dev/null +++ b/net-vpn/tinc/tinc-1.1_pre18.ebuild @@ -0,0 +1,76 @@ +# Copyright 2021 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=7 + +MY_PV=${PV/_/} +MY_P=${PN}-${MY_PV} + +inherit autotools systemd + +DESCRIPTION="tinc is an easy to configure VPN implementation" +HOMEPAGE="http://www.tinc-vpn.org/" +SRC_URI="http://www.tinc-vpn.org/packages/${MY_P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="+lzo +ncurses +readline +ssl uml vde upnp +zlib" + +DEPEND=" + ssl? ( + dev-libs/openssl:0= + + ) + lzo? ( dev-libs/lzo:2 ) + ncurses? ( sys-libs/ncurses:= ) + readline? ( sys-libs/readline:= ) + upnp? ( net-libs/miniupnpc ) + zlib? ( sys-libs/zlib )" +RDEPEND="${DEPEND} + vde? ( net-misc/vde )" +S="${WORKDIR}/${MY_P}" + +PATCHES+=( + "${FILESDIR}"/tinc-1.1_pre16-r1-fix-paths.patch #560528 + "${FILESDIR}"/${PN}-1.1-tinfo.patch #621868 +) + +src_prepare() { + default + eautoreconf + + # Fix the static (failing UNKNOWN) version in the autoconf + # NOTE: When updating the ebuild, make sure to check that this + # line number hasn't changed in the upstream sources. + sed -i "6d" configure.ac + sed -i "6iAC_INIT([tinc], ${PVR})" configure.ac +} + +src_configure() { + econf \ + --enable-jumbograms \ + --enable-legacy-protocol \ + --disable-tunemu \ + --with-systemd="$(systemd_get_systemunitdir)" \ + $(use_enable lzo) \ + $(use_enable ncurses curses) \ + $(use_enable readline) \ + $(use_enable uml) \ + $(use_enable vde) \ + $(use_enable zlib) \ + $(use_enable upnp miniupnpc) \ + $(use_with ssl openssl) +} + +src_install() { + emake DESTDIR="${D}" install + dodir /etc/tinc + dodoc AUTHORS NEWS README THANKS + doconfd "${FILESDIR}"/tinc.networks + newconfd "${FILESDIR}"/tincd.conf tincd + newinitd "${FILESDIR}"/tincd-r2 tincd +} + +pkg_postinst() { + elog "This package requires the tun/tap kernel device." + elog "Look at http://www.tinc-vpn.org/ for how to configure tinc" +} diff --git a/net-vpn/tor/Manifest b/net-vpn/tor/Manifest new file mode 100644 index 000000000000..b84874a7f41a --- /dev/null +++ b/net-vpn/tor/Manifest @@ -0,0 +1,2 @@ +DIST tor-0.4.9.6.tar.gz 10759319 BLAKE2B 93c4a338e892fdc451826fc5be2fa193aec582257b33b5cbb100f3f2ea2ecec182f56fa80e071e0a64fc81fb3a673d27521807071be85917a6490932659d8ebf SHA512 506ea2de742f1ab0580aa0e1b71d0e1180e8efdbb6c5f77ede273b8ccd2238b7a6ee3d78af1740ff507f14a25e75dccaa4f0deccc9fbee4ff68a162665cb8c23 +DIST tor-0.4.9.8.tar.gz 10934822 BLAKE2B d9f2ea4231161a39ed02e832afaa224ebdf6d16ae210fac4b8e7bacc47ad8876cff4cb93f6376954b38fe1a030d88bd2accf784f89d08f0fc4b2b0940b5a1c91 SHA512 310cf2989dc1202971780ea299818db8a1a63ad9be35fabb6d9b60714c48b83988224a2d78ed046c2f713b8f967c3b9ee875857a1bbac9d2099f59bb5d44da45 diff --git a/net-vpn/tor/files/README.gentoo b/net-vpn/tor/files/README.gentoo new file mode 100644 index 000000000000..35214ac6fbb5 --- /dev/null +++ b/net-vpn/tor/files/README.gentoo @@ -0,0 +1,8 @@ +We created a configuration file for tor, /etc/tor/torrc, but you can +change it according to your needs. Use the torrc.sample that is in +that directory as a guide. Also, to have privoxy work with tor +just add the following line + +forward-socks4a / localhost:9050 . + +to /etc/privoxy/config. Notice the . at the end! diff --git a/net-vpn/tor/files/tor-0.2.7.4-torrc.sample.patch b/net-vpn/tor/files/tor-0.2.7.4-torrc.sample.patch new file mode 100644 index 000000000000..5f9e258de031 --- /dev/null +++ b/net-vpn/tor/files/tor-0.2.7.4-torrc.sample.patch @@ -0,0 +1,31 @@ +diff -Nuar tor-0.2.7.4-rc.orig/src/config/torrc.sample.in tor-0.2.7.4-rc/src/config/torrc.sample.in +--- tor-0.2.7.4-rc.orig/src/config/torrc.sample.in 2015-10-19 11:12:53.000000000 -0400 ++++ tor-0.2.7.4-rc/src/config/torrc.sample.in 2015-10-21 21:18:49.151973113 -0400 +@@ -12,6 +12,11 @@ + ## Tor will look for this file in various places based on your platform: + ## https://www.torproject.org/docs/faq#torrc + ++## Default username and group the server will run as ++User tor ++ ++PIDFile /run/tor/tor.pid ++ + ## Tor opens a SOCKS proxy on port 9050 by default -- even if you don't + ## configure one below. Set "SOCKSPort 0" if you plan to run Tor only + ## as a relay, and not make any local application connections yourself. +@@ -42,6 +47,7 @@ + #Log notice syslog + ## To send all messages to stderr: + #Log debug stderr ++Log warn syslog + + ## Uncomment this to start the process in the background... or use + ## --runasdaemon 1 on the command line. This is ignored on Windows; +@@ -51,6 +57,7 @@ + ## The directory for keeping all the keys/etc. By default, we store + ## things in $HOME/.tor on Unix, and in Application Data\tor on Windows. + #DataDirectory @LOCALSTATEDIR@/lib/tor ++DataDirectory /var/lib/tor/data + + ## The port on which Tor will listen for local connections from Tor + ## controller applications, as documented in control-spec.txt. diff --git a/net-vpn/tor/files/tor.confd b/net-vpn/tor/files/tor.confd new file mode 100644 index 000000000000..4195bf3237b2 --- /dev/null +++ b/net-vpn/tor/files/tor.confd @@ -0,0 +1,3 @@ +# +# Set the file limit +rc_ulimit="-n 30000" diff --git a/net-vpn/tor/files/tor.initd-r9 b/net-vpn/tor/files/tor.initd-r9 new file mode 100644 index 000000000000..c1639c2af95a --- /dev/null +++ b/net-vpn/tor/files/tor.initd-r9 @@ -0,0 +1,37 @@ +#!/sbin/openrc-run +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +command=/usr/bin/tor +pidfile=/run/tor/tor.pid +command_args="--hush --runasdaemon 1 --pidfile \"${pidfile}\"" +retry=${GRACEFUL_TIMEOUT:-60} +stopsig=INT +command_progress=yes + +extra_commands="checkconfig" +extra_started_commands="reload" +description="Anonymizing overlay network for TCP" +description_checkconfig="Check for valid config file" +description_reload="Reload the configuration" + +checkconfig() { + ${command} --verify-config --hush > /dev/null 2>&1 + if [ $? -ne 0 ] ; then + eerror "Tor configuration (/etc/tor/torrc) is not valid." + eerror "Example is in /etc/tor/torrc.sample" + return 1 + fi +} + +start_pre() { + checkconfig || return 1 + checkpath -d -m 0755 -o tor:tor /run/tor +} + +reload() { + checkconfig || return 1 + ebegin "Reloading Tor configuration" + start-stop-daemon -s HUP --pidfile ${pidfile} + eend $? +} diff --git a/net-vpn/tor/files/tor.service b/net-vpn/tor/files/tor.service new file mode 100644 index 000000000000..16638240c544 --- /dev/null +++ b/net-vpn/tor/files/tor.service @@ -0,0 +1,38 @@ +# tor.service -- this systemd configuration file for Tor sets up a +# relatively conservative, hardened Tor service. You may need to +# edit it if you are making changes to your Tor configuration that it +# does not allow. Package maintainers: this should be a starting point +# for your tor.service; it is not the last point. + +[Unit] +Description=Anonymizing overlay network for TCP +After=syslog.target network.target nss-lookup.target + +[Service] +Type=notify +NotifyAccess=all +ExecStartPre=/usr/bin/tor -f /etc/tor/torrc --verify-config +ExecStart=/usr/bin/tor -f /etc/tor/torrc +ExecReload=/bin/kill -HUP ${MAINPID} +KillSignal=SIGINT +TimeoutSec=60 +Restart=on-failure +WatchdogSec=1m +LimitNOFILE=32768 + +# Hardening +Group=tor +RuntimeDirectory=tor +RuntimeDirectoryMode=0770 +PrivateTmp=yes +PrivateDevices=yes +ProtectHome=yes +ProtectSystem=full +ReadOnlyDirectories=/ +ReadWriteDirectories=-/var/lib/tor +ReadWriteDirectories=-/var/log/tor +NoNewPrivileges=yes +CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE + +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/tor/files/torrc-r2 b/net-vpn/tor/files/torrc-r2 new file mode 100644 index 000000000000..b308104c7031 --- /dev/null +++ b/net-vpn/tor/files/torrc-r2 @@ -0,0 +1,7 @@ +# +# Minimal torrc so tor will work out of the box +# +User tor +PIDFile /run/tor/tor.pid +Log notice syslog +DataDirectory /var/lib/tor/data diff --git a/net-vpn/tor/metadata.xml b/net-vpn/tor/metadata.xml new file mode 100644 index 000000000000..bcfa267d447c --- /dev/null +++ b/net-vpn/tor/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>dev@liguros.net</email> + <name>Development</name> + </maintainer> + <maintainer type="person"> + <email>blueness@gentoo.org</email> + <name>Anthony G. Basile</name> + </maintainer> + <upstream> + <remote-id type="cpe">cpe:/a:tor:tor</remote-id> + </upstream> + <use> + <flag name="scrypt">Use <pkg>app-crypt/libscrypt</pkg> for the scrypt algorithm</flag> + <flag name="server">Enable tor's relay module so it can operate as a relay/bridge/authority</flag> + <flag name="tor-hardening">Compile tor with hardening on vanilla compilers/linkers</flag> + </use> + <origin>ports</origin> +</pkgmetadata>
\ No newline at end of file diff --git a/net-vpn/tor/tor-0.4.9.6.ebuild b/net-vpn/tor/tor-0.4.9.6.ebuild new file mode 100644 index 000000000000..3e11709c2570 --- /dev/null +++ b/net-vpn/tor/tor-0.4.9.6.ebuild @@ -0,0 +1,149 @@ +# Copyright 2021-2026 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +inherit edo python-any-r1 flag-o-matic readme.gentoo-r1 systemd + +MY_PV="$(ver_rs 4 -)" +MY_PF="${PN}-${MY_PV}" +DESCRIPTION="Anonymizing overlay network for TCP" +HOMEPAGE="https://www.torproject.org/ https://gitlab.torproject.org/tpo/core/tor/" +SRC_URI=" + https://www.torproject.org/dist/${MY_PF}.tar.gz + https://archive.torproject.org/tor-package-archive/${MY_PF}.tar.gz +" +S="${WORKDIR}/${MY_PF}" + +LICENSE="BSD GPL-2 GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~ppc-macos" +IUSE="caps doc lzma +man scrypt seccomp selinux +server systemd tor-hardening test zstd" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-libs/libevent-2.1.12-r1:=[ssl] + sys-libs/zlib + caps? ( sys-libs/libcap ) + man? ( app-text/asciidoc ) + dev-libs/openssl:0= + + lzma? ( app-arch/xz-utils ) + scrypt? ( app-crypt/libscrypt ) + seccomp? ( >=sys-libs/libseccomp-2.4.1 ) + systemd? ( sys-apps/systemd:= ) + zstd? ( app-arch/zstd:= ) +" +RDEPEND=" + acct-user/tor + acct-group/tor + ${DEPEND} + selinux? ( sec-policy/selinux-tor ) +" +DEPEND+=" + test? ( + ${DEPEND} + ${PYTHON_DEPS} + ) +" + +DOCS=() + +PATCHES=( + "${FILESDIR}"/${PN}-0.2.7.4-torrc.sample.patch +) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # Running shellcheck automagically isn't useful for ebuild testing. + echo "exit 0" > scripts/maint/checkShellScripts.sh || die +} + +src_configure() { + use doc && DOCS+=( README.md ChangeLog ReleaseNotes doc/HACKING ) + + export ac_cv_lib_cap_cap_init=$(usex caps) + export tor_cv_PYTHON="${EPYTHON}" + + local myeconfargs=( + --localstatedir="${EPREFIX}/var" + --disable-all-bugs-are-fatal + --enable-system-torrc + --disable-android + --disable-coverage + --disable-html-manual + --disable-libfuzzer + --enable-missing-doc-warnings + --disable-module-dirauth + --enable-pic + --disable-restart-debugging + + # Unless someone asks & has a compelling reason, just always + # build in GPL mode for pow, given we don't want yet another USE + # flag combination to have to test just for the sake of it. + # (PoW requires GPL.) + --enable-gpl + --enable-module-pow + + $(use_enable man asciidoc) + $(use_enable man manpage) + $(use_enable lzma) + $(use_enable scrypt libscrypt) + $(use_enable seccomp) + $(use_enable server module-relay) + $(use_enable systemd) + $(use_enable tor-hardening gcc-hardening) + $(use_enable tor-hardening linker-hardening) + $(use_enable test unittests) + $(use_enable zstd) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + local skip_tests=( + # Fails in sandbox + :sandbox/open_filename + :sandbox/openat_filename + ) + + if use arm ; then + skip_tests+=( + # bug #920905 + # https://gitlab.torproject.org/tpo/core/tor/-/issues/40912 + :sandbox/opendir_dirname + :sandbox/openat_filename + :sandbox/chmod_filename + :sandbox/chown_filename + :sandbox/rename_filename + ) + fi + + # The makefile runs these by parallel by chunking them with a script + # but that means we lose verbosity and can't skip individual tests easily + # either. + edo ./src/test/test --verbose "${skip_tests[@]}" +} + +src_install() { + default + readme.gentoo_create_doc + + newconfd "${FILESDIR}"/tor.confd tor + newinitd "${FILESDIR}"/tor.initd-r9 tor + systemd_dounit "${FILESDIR}"/tor.service + + keepdir /var/lib/tor + + fperms 750 /var/lib/tor + fowners tor:tor /var/lib/tor + + insinto /etc/tor/ + newins "${FILESDIR}"/torrc-r2 torrc +} diff --git a/net-vpn/tor/tor-0.4.9.8.ebuild b/net-vpn/tor/tor-0.4.9.8.ebuild new file mode 100644 index 000000000000..3e11709c2570 --- /dev/null +++ b/net-vpn/tor/tor-0.4.9.8.ebuild @@ -0,0 +1,149 @@ +# Copyright 2021-2026 Liguros Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +inherit edo python-any-r1 flag-o-matic readme.gentoo-r1 systemd + +MY_PV="$(ver_rs 4 -)" +MY_PF="${PN}-${MY_PV}" +DESCRIPTION="Anonymizing overlay network for TCP" +HOMEPAGE="https://www.torproject.org/ https://gitlab.torproject.org/tpo/core/tor/" +SRC_URI=" + https://www.torproject.org/dist/${MY_PF}.tar.gz + https://archive.torproject.org/tor-package-archive/${MY_PF}.tar.gz +" +S="${WORKDIR}/${MY_PF}" + +LICENSE="BSD GPL-2 GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~ppc-macos" +IUSE="caps doc lzma +man scrypt seccomp selinux +server systemd tor-hardening test zstd" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-libs/libevent-2.1.12-r1:=[ssl] + sys-libs/zlib + caps? ( sys-libs/libcap ) + man? ( app-text/asciidoc ) + dev-libs/openssl:0= + + lzma? ( app-arch/xz-utils ) + scrypt? ( app-crypt/libscrypt ) + seccomp? ( >=sys-libs/libseccomp-2.4.1 ) + systemd? ( sys-apps/systemd:= ) + zstd? ( app-arch/zstd:= ) +" +RDEPEND=" + acct-user/tor + acct-group/tor + ${DEPEND} + selinux? ( sec-policy/selinux-tor ) +" +DEPEND+=" + test? ( + ${DEPEND} + ${PYTHON_DEPS} + ) +" + +DOCS=() + +PATCHES=( + "${FILESDIR}"/${PN}-0.2.7.4-torrc.sample.patch +) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # Running shellcheck automagically isn't useful for ebuild testing. + echo "exit 0" > scripts/maint/checkShellScripts.sh || die +} + +src_configure() { + use doc && DOCS+=( README.md ChangeLog ReleaseNotes doc/HACKING ) + + export ac_cv_lib_cap_cap_init=$(usex caps) + export tor_cv_PYTHON="${EPYTHON}" + + local myeconfargs=( + --localstatedir="${EPREFIX}/var" + --disable-all-bugs-are-fatal + --enable-system-torrc + --disable-android + --disable-coverage + --disable-html-manual + --disable-libfuzzer + --enable-missing-doc-warnings + --disable-module-dirauth + --enable-pic + --disable-restart-debugging + + # Unless someone asks & has a compelling reason, just always + # build in GPL mode for pow, given we don't want yet another USE + # flag combination to have to test just for the sake of it. + # (PoW requires GPL.) + --enable-gpl + --enable-module-pow + + $(use_enable man asciidoc) + $(use_enable man manpage) + $(use_enable lzma) + $(use_enable scrypt libscrypt) + $(use_enable seccomp) + $(use_enable server module-relay) + $(use_enable systemd) + $(use_enable tor-hardening gcc-hardening) + $(use_enable tor-hardening linker-hardening) + $(use_enable test unittests) + $(use_enable zstd) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + local skip_tests=( + # Fails in sandbox + :sandbox/open_filename + :sandbox/openat_filename + ) + + if use arm ; then + skip_tests+=( + # bug #920905 + # https://gitlab.torproject.org/tpo/core/tor/-/issues/40912 + :sandbox/opendir_dirname + :sandbox/openat_filename + :sandbox/chmod_filename + :sandbox/chown_filename + :sandbox/rename_filename + ) + fi + + # The makefile runs these by parallel by chunking them with a script + # but that means we lose verbosity and can't skip individual tests easily + # either. + edo ./src/test/test --verbose "${skip_tests[@]}" +} + +src_install() { + default + readme.gentoo_create_doc + + newconfd "${FILESDIR}"/tor.confd tor + newinitd "${FILESDIR}"/tor.initd-r9 tor + systemd_dounit "${FILESDIR}"/tor.service + + keepdir /var/lib/tor + + fperms 750 /var/lib/tor + fowners tor:tor /var/lib/tor + + insinto /etc/tor/ + newins "${FILESDIR}"/torrc-r2 torrc +} diff --git a/net-vpn/vopono/Manifest b/net-vpn/vopono/Manifest new file mode 100644 index 000000000000..7102e064accb --- /dev/null +++ b/net-vpn/vopono/Manifest @@ -0,0 +1,4 @@ +DIST vopono-0.10.15-crates.tar.xz 32410040 BLAKE2B 1b972be674a89777677a42e1114cdb1625e621cf07fdc398c07d83c92a77d99fda36d26fe4f987778c0287c6ced964f5e2d16242fe14985f1428f70ed7f60d8e SHA512 d6bd81f9438bdc27337c074b44309894ea548f7c800e357dcd7cb3bce4b00817f2266a3ce04d9b9d7d3843c453aaee17f7a758ef62a6a415011c31f31007f337 +DIST vopono-0.10.15.tar.gz 2167410 BLAKE2B 1950f12203e4c2cec17b2e66c14830affd29852b27a4eaf7586c6af02f6aef1695e80e235b2751bb2d45b657732b4aff313f4de102f4ff79f089862fdd280c17 SHA512 38c9e2a47273f81f5fc7f512a2c83818dc398ad54a650ecb426fa1ec219d3407694f3d1cd74b5743f8f76f31a242ded4dc425d53d8f87e5143add44159f378f0 +DIST vopono-0.10.16-crates.tar.xz 37850028 BLAKE2B df1a40774fea61ff7588f817e1543e79b4cce213a4ee00f76ac94d85c72ccf838f8771f99c5ed177a3e21ef685a816c221b389a5f594192ecc3fce3437152ed5 SHA512 58d77d64c21408672e8cb9b3987d6edd928a08e8d07a19ebeb95e4f55dda6d65b410ea4ec2306b11c6ee4f8c79f179e65a0cc65e70cba91e4eb6874d984d2816 +DIST vopono-0.10.16.tar.gz 2171020 BLAKE2B da2e26030bb12b26ee8feaab21e98335de618b88dce79a5278fe503fa0cb709f2541b4dc60dd2c32ce53e297f53bfd5c7f4260c34142d6517272fdd5710c23ee SHA512 f69a8d837b9bed88ff97b7f1a3b8743e6693a51c2bf25ae0c3b8a1288703e6defb5ebc5294625627d9089c0ea516caaa0733c51b54bab42f3529c420aa921a14 diff --git a/net-vpn/vopono/files/vopono-daemon.service b/net-vpn/vopono/files/vopono-daemon.service new file mode 100644 index 000000000000..22158127581e --- /dev/null +++ b/net-vpn/vopono/files/vopono-daemon.service @@ -0,0 +1,13 @@ +[Unit] +Description=Vopono root daemon +After=network.target +Requires=network.target +[Service] +Type=simple +ExecStart=/usr/bin/vopono daemon +Restart=on-failure +RestartSec=2s +# Optional: enable structured logs +Environment=RUST_LOG=info +[Install] +WantedBy=multi-user.target diff --git a/net-vpn/vopono/metadata.xml b/net-vpn/vopono/metadata.xml new file mode 100644 index 000000000000..af5d9361ef89 --- /dev/null +++ b/net-vpn/vopono/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>juippis@gentoo.org</email> + </maintainer> + <longdescription> + vopono is a tool to run applications through VPN tunnels via temporary network namespaces. This + allows you to run only a handful of applications through different VPNs simultaneously, whilst + keeping your main connection as normal. + + vopono includes built-in killswitches for both Wireguard and OpenVPN. + </longdescription> + <upstream> + <remote-id type="github">jamesmcm/vopono</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vopono/vopono-0.10.15.ebuild b/net-vpn/vopono/vopono-0.10.15.ebuild new file mode 100644 index 000000000000..f894694fb2df --- /dev/null +++ b/net-vpn/vopono/vopono-0.10.15.ebuild @@ -0,0 +1,38 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RUST_MIN_VER="1.88.0" + +inherit cargo optfeature systemd + +DESCRIPTION="Launch applications via VPN tunnels using temporary network namespaces" +HOMEPAGE="https://github.com/jamesmcm/vopono" +SRC_URI="https://github.com/jamesmcm/vopono/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-crate-dist/vopono/releases/download/${PV}/${P}-crates.tar.xz" + +LICENSE="GPL-3+" +# Dependent crate licenses +LICENSE+=" Apache-2.0 BSD Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-3.0" +SLOT="0" +KEYWORDS="~amd64" + +# VPN backends sorted by preference. +RDEPEND="|| ( + net-vpn/openvpn + net-vpn/wireguard-tools + net-vpn/openfortivpn + ) + app-arch/xz-utils" + +src_install() { + cargo_src_install + einstalldocs + dodoc USERGUIDE.md + systemd_dounit "${FILESDIR}"/vopono-daemon.service +} + +pkg_postinst() { + optfeature "using vopono without daemon mode" app-admin/sudo +} diff --git a/net-vpn/vopono/vopono-0.10.16.ebuild b/net-vpn/vopono/vopono-0.10.16.ebuild new file mode 100644 index 000000000000..267531b3c851 --- /dev/null +++ b/net-vpn/vopono/vopono-0.10.16.ebuild @@ -0,0 +1,38 @@ +# Copyright 2025-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +RUST_MIN_VER="1.89.0" + +inherit cargo optfeature systemd + +DESCRIPTION="Launch applications via VPN tunnels using temporary network namespaces" +HOMEPAGE="https://github.com/jamesmcm/vopono" +SRC_URI="https://github.com/jamesmcm/vopono/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI+=" https://github.com/gentoo-crate-dist/vopono/releases/download/${PV}/${P}-crates.tar.xz" + +LICENSE="GPL-3+" +# Dependent crate licenses +LICENSE+=" Apache-2.0 BSD Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-3.0" +SLOT="0" +KEYWORDS="~amd64" + +# VPN backends sorted by preference. +RDEPEND="|| ( + net-vpn/openvpn + net-vpn/wireguard-tools + net-vpn/openfortivpn + ) + app-arch/xz-utils" + +src_install() { + cargo_src_install + einstalldocs + dodoc USERGUIDE.md + systemd_dounit "${FILESDIR}"/vopono-daemon.service +} + +pkg_postinst() { + optfeature "using vopono without daemon mode" app-admin/sudo +} diff --git a/net-vpn/vpnc-scripts/Manifest b/net-vpn/vpnc-scripts/Manifest new file mode 100644 index 000000000000..d7ee2cdfca79 --- /dev/null +++ b/net-vpn/vpnc-scripts/Manifest @@ -0,0 +1 @@ +DIST vpnc-scripts-20220510.tar.gz 44155 BLAKE2B c52a1680d25882776c76fc52d8df7f482fe157c7f52ab1c6b14ef6291801a94d5655e6284d55af9d09871e57003e4b434a5453a986ea0e28cd7764c348614bc8 SHA512 c391048b60e739e21954b22b9c4bb764a55c71f8fe6d4e263293efae1bd8d1229ca6b841c2cdd4352c36641d5143c2bca023bff65fa5b8ae8ea151d77b5231cf diff --git a/net-vpn/vpnc-scripts/metadata.xml b/net-vpn/vpnc-scripts/metadata.xml new file mode 100644 index 000000000000..81420ec2657a --- /dev/null +++ b/net-vpn/vpnc-scripts/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>floppym@gentoo.org</email> + <name>Mike Gilbert</name> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="gitlab">openconnect/vpnc-scripts</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vpnc-scripts/vpnc-scripts-20220510.ebuild b/net-vpn/vpnc-scripts/vpnc-scripts-20220510.ebuild new file mode 100644 index 000000000000..09042012b11b --- /dev/null +++ b/net-vpn/vpnc-scripts/vpnc-scripts-20220510.ebuild @@ -0,0 +1,25 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 99999999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/openconnect/vpnc-scripts.git" +else + SRC_URI="ftp://ftp.infradead.org/pub/vpnc-scripts/${P}.tar.gz" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" +fi + +DESCRIPTION="Connect scripts for use with vpnc and openconnect (and similar clients)" +HOMEPAGE="https://gitlab.com/openconnect/vpnc-scripts" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND="!<net-vpn/vpnc-0.5.3_p550-r3" + +src_install() { + exeinto /etc/vpnc + doexe vpnc-script{,-{ptrtd,sshd}} +} diff --git a/net-vpn/vpnc-scripts/vpnc-scripts-99999999.ebuild b/net-vpn/vpnc-scripts/vpnc-scripts-99999999.ebuild new file mode 100644 index 000000000000..99aefb4e0087 --- /dev/null +++ b/net-vpn/vpnc-scripts/vpnc-scripts-99999999.ebuild @@ -0,0 +1,25 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 99999999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/openconnect/vpnc-scripts.git" +else + SRC_URI="ftp://ftp.infradead.org/pub/vpnc-scripts/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Connect scripts for use with vpnc and openconnect (and similar clients)" +HOMEPAGE="https://gitlab.com/openconnect/vpnc-scripts" + +LICENSE="GPL-2+" +SLOT="0" + +RDEPEND="!<net-vpn/vpnc-0.5.3_p550-r3" + +src_install() { + exeinto /etc/vpnc + doexe vpnc-script{,-{ptrtd,sshd}} +} diff --git a/net-vpn/vpnc/Manifest b/net-vpn/vpnc/Manifest new file mode 100644 index 000000000000..94ce1968c425 --- /dev/null +++ b/net-vpn/vpnc/Manifest @@ -0,0 +1 @@ +DIST vpnc-0.5.3_p20240129.tar.gz 116840 BLAKE2B 3705bfe85cf5d7f0a9e07d58c71a305f951e5b1eabd8eb585e40732e867d06456f3f09d896679974f09a3eda019c9d449bde85f4976642db9c1a69e0efc9d476 SHA512 28fb6009e0efa38f19336ab95ae318906e9040c30120473acb8f1514fc9d2e3dc6aff58d7fc8af7e85a3ab5431f8234cb0afd3b1a2db84520fb6997b16221fff diff --git a/net-vpn/vpnc/files/vpnc-3.init b/net-vpn/vpnc/files/vpnc-3.init new file mode 100644 index 000000000000..f76538f1630e --- /dev/null +++ b/net-vpn/vpnc/files/vpnc-3.init @@ -0,0 +1,102 @@ +#!/sbin/openrc-run + +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +VPNDIR="/etc/vpnc" +VPN="${SVCNAME#*.}" +if [ -n ${VPN} ] && [ ${SVCNAME} != "vpnc" ]; then + mkdir -p /var/run/vpnc + VPNPID="/var/run/vpnc/${VPN}.pid" +else + VPNPID="/var/run/vpnc.pid" +fi +VPNCONF="${VPNDIR}/${VPN}.conf" +VPNSCRIPTDIR="${VPNDIR}/scripts.d" +PREUPSCRIPT="${VPNSCRIPTDIR}/${VPN}-preup.sh" +PREDOWNSCRIPT="${VPNSCRIPTDIR}/${VPN}-predown.sh" +POSTUPSCRIPT="${VPNSCRIPTDIR}/${VPN}-postup.sh" +POSTDOWNSCRIPT="${VPNSCRIPTDIR}/${VPN}-postdown.sh" +# We should source this file to avoid problems when init script +# name differs from the default name +. /etc/conf.d/vpnc + +depend() { + need net + before netmount +} + +checktundevice() { + if [ ! -e /dev/net/tun ]; then + if ! modprobe tun ; then + eerror "TUN/TAP support is not available in this kernel" + return 1 + fi + fi + if [ -h /dev/net/tun ] && [ -c /dev/misc/net/tun ]; then + ebegin "Detected broken /dev/net/tun symlink, fixing..." + rm -f /dev/net/tun + ln -s /dev/misc/net/tun /dev/net/tun + eend $? + fi +} + +screenoutput() { + if [ "${VPNCOUTPUT}" = "yes" ]; then + export SCREEN_OUTPUT="/dev/stdout" + else + export SCREEN_OUTPUT="/dev/null" + fi +} + +start() { + ebegin "Starting VPNC: ${VPN}" + + checktundevice || return 1 + screenoutput + + if [ ! -e "${VPNCONF}" ]; then + eend 1 "${VPNCONF} does not exist" + return 1 + fi + + local args="" + + if [ -x "${PREUPSCRIPT}" ] ; then + "${PREUPSCRIPT}" > ${SCREEN_OUTPUT} + fi + + start-stop-daemon --start --pidfile "${VPNPID}" --exec /usr/sbin/vpnc \ + -- --pid-file "${VPNPID}" "${VPNCONF}" > ${SCREEN_OUTPUT} + local retval=$? + if [ ! ${retval} -eq 0 ]; then + eend ${retval} + return ${retval} + fi + + if [ -x "${POSTUPSCRIPT}" ] ; then + "${POSTUPSCRIPT}" > ${SCREEN_OUTPUT} + fi + eend $? +} + +stop() { + ebegin "Stopping VPNC: ${VPN}" + screenoutput + if [ -x "${PREDOWNSCRIPT}" ] ; then + "${PREDOWNSCRIPT}" > ${SCREEN_OUTPUT} + fi + + start-stop-daemon --stop --pidfile "${VPNPID}" + local retval=$? + if [ ! ${retval} -eq 0 ]; then + eend ${retval} + return ${retval} + fi + + + if [ -x "${POSTDOWNSCRIPT}" ] ; then + "${POSTDOWNSCRIPT}" > ${SCREEN_OUTPUT} + fi + eend $? +} diff --git a/net-vpn/vpnc/files/vpnc.confd b/net-vpn/vpnc/files/vpnc.confd new file mode 100644 index 000000000000..62789bd407ec --- /dev/null +++ b/net-vpn/vpnc/files/vpnc.confd @@ -0,0 +1,4 @@ +# If you wish to see the output made by vpnc, for example the password +# prompt, set this variable to yes + +VPNCOUTPUT="no" diff --git a/net-vpn/vpnc/metadata.xml b/net-vpn/vpnc/metadata.xml new file mode 100644 index 000000000000..9655b1c4dda3 --- /dev/null +++ b/net-vpn/vpnc/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>soap@gentoo.org</email> + <name>David Seifert</name> + </maintainer> + <use> + <flag name="resolvconf">Enable support for DNS managing framework <pkg>net-dns/openresolv</pkg></flag> + </use> + <upstream> + <remote-id type="github">streambinder/vpnc</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vpnc/vpnc-0.5.3_p20240129.ebuild b/net-vpn/vpnc/vpnc-0.5.3_p20240129.ebuild new file mode 100644 index 000000000000..b028a36619e0 --- /dev/null +++ b/net-vpn/vpnc/vpnc-0.5.3_p20240129.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info systemd toolchain-funcs + +DESCRIPTION="IPsec (Cisco/Juniper) VPN concentrator client" +HOMEPAGE="https://github.com/streambinder/vpnc" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/streambinder/vpnc.git" +else + inherit vcs-snapshot + SRC_URI="https://api.github.com/repos/streambinder/vpnc/tarball/64468ff -> ${P}.tar.gz" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="resolvconf gnutls selinux" + +DEPEND=" + dev-libs/libgcrypt:= + sys-apps/iproute2[-minimal] + gnutls? ( net-libs/gnutls:= ) + !gnutls? ( dev-libs/openssl:= )" +RDEPEND="${DEPEND} + >=net-vpn/vpnc-scripts-20210402-r1 + resolvconf? ( virtual/resolvconf ) + selinux? ( sec-policy/selinux-vpn )" +BDEPEND=" + dev-lang/perl + virtual/pkgconfig" + +CONFIG_CHECK="~TUN" + +src_unpack() { + if [[ ${PV} == *9999 ]]; then + git-r3_src_unpack + else + vcs-snapshot_src_unpack + fi +} + +src_configure() { + tc-export CC PKG_CONFIG + export OPENSSL_GPL_VIOLATION=$(usex !gnutls) +} + +src_install() { + local args=( + PREFIX="${EPREFIX}"/usr + DOCDIR='$(PREFIX)'/share/doc/${PF} + SYSTEMDDIR="$(systemd_get_systemunitdir)" + DESTDIR="${D}" + ) + + emake "${args[@]}" install + + keepdir /etc/vpnc/scripts.d + newinitd "${FILESDIR}"/vpnc-3.init vpnc + newconfd "${FILESDIR}"/vpnc.confd vpnc + + # LICENSE file resides here, should not be installed + rm -r "${ED}"/usr/share/licenses || die +} + +pkg_postinst() { + elog "You can generate a configuration file from the original Cisco profiles of your" + elog "connection by using /usr/bin/pcf2vpnc to convert the .pcf file" + elog "A guide is available at https://wiki.gentoo.org/wiki/Vpnc" +} diff --git a/net-vpn/vpnc/vpnc-9999.ebuild b/net-vpn/vpnc/vpnc-9999.ebuild new file mode 100644 index 000000000000..52f4f1156ae1 --- /dev/null +++ b/net-vpn/vpnc/vpnc-9999.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info systemd toolchain-funcs + +DESCRIPTION="IPsec (Cisco/Juniper) VPN concentrator client" +HOMEPAGE="https://github.com/streambinder/vpnc" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/streambinder/vpnc.git" +else + inherit vcs-snapshot + SRC_URI=" + https://api.github.com/repos/streambinder/vpnc/tarball/fdd0de7 -> ${P}.tar.gz + https://dev.gentoo.org/~soap/distfiles/${PN}-0.5.3-docs.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="GPL-3" +SLOT="0" +IUSE="resolvconf gnutls selinux" + +DEPEND=" + dev-libs/libgcrypt:= + sys-apps/iproute2[-minimal] + gnutls? ( net-libs/gnutls:= ) + !gnutls? ( dev-libs/openssl:= )" +RDEPEND="${DEPEND} + >=net-vpn/vpnc-scripts-20210402-r1 + resolvconf? ( virtual/resolvconf ) + selinux? ( sec-policy/selinux-vpn )" +BDEPEND=" + dev-lang/perl + virtual/pkgconfig" + +CONFIG_CHECK="~TUN" + +src_unpack() { + if [[ ${PV} == *9999 ]]; then + git-r3_src_unpack + else + vcs-snapshot_src_unpack + mv vpnc-0.5.3-docs/src/doc/*.md "${S}"/src/doc/ || die + fi +} + +src_configure() { + tc-export CC PKG_CONFIG + export OPENSSL_GPL_VIOLATION=$(usex !gnutls) +} + +src_install() { + local args=( + PREFIX="${EPREFIX}"/usr + DOCDIR='$(PREFIX)'/share/doc/${PF} + SYSTEMDDIR="$(systemd_get_systemunitdir)" + DESTDIR="${D}" + ) + + emake "${args[@]}" install + + keepdir /etc/vpnc/scripts.d + newinitd "${FILESDIR}"/vpnc-3.init vpnc + newconfd "${FILESDIR}"/vpnc.confd vpnc + + # LICENSE file resides here, should not be installed + rm -r "${ED}"/usr/share/licenses || die +} + +pkg_postinst() { + elog "You can generate a configuration file from the original Cisco profiles of your" + elog "connection by using /usr/bin/pcf2vpnc to convert the .pcf file" + elog "A guide is available at https://wiki.gentoo.org/wiki/Vpnc" +} diff --git a/net-vpn/vpncloud/Manifest b/net-vpn/vpncloud/Manifest new file mode 100644 index 000000000000..a1242d6c245e --- /dev/null +++ b/net-vpn/vpncloud/Manifest @@ -0,0 +1,145 @@ +DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671 +DIST attohttpc-0.16.3.crate 60620 BLAKE2B b2d170e9ef964045018cfaf6790a00c9392f9fbce0b90732bb47d4d228bcdada530ec074c071834a4130be9ce97d8a38305a36d1625ae8f508eb933398500441 SHA512 3da2e63f07871fb79583c672447dc471e44863269343e568d6b11a4659afbd7bd588bc22417350cb8bdc32d107b36519db1e3873695bc35e9099a806bd826491 +DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9 +DIST autocfg-1.0.1.crate 12908 BLAKE2B 40c53cab298e4f26634c3acff3ece6a3371188d91dbf377ed664eabedcde20536edaa93daf406618f37edde019f049a6e7b9a47f627344587dbd126bee2b5e3a SHA512 630b348acb98b012e97804e6325d03c89abc22f2157762c59144c04e6c733daf550bdc7f0fe0b9f3b50e15dae8c1c3c4bdfce3d805b02f0fc987311f5332419b +DIST base64-0.13.0.crate 62070 BLAKE2B b957f65cdb1e28baeca0cefc92fa98be797409b7dabd15e0e88db6cdfb89779b662cba9f2270fbf3b7b66948fdc46c118b8040a78ab72049c48a928fa802bee0 SHA512 991a72999839daa232f508c5b24e7d3225e8a26db8d1d0e747881b115af9e408b92374e163b31e0b0d324c1c2e57e8e38d66861b61eb0a1dba87bb5871940151 +DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 +DIST block-buffer-0.9.0.crate 7108 BLAKE2B 42e99ec46c6e43d5f85e8d6d0a8fcef7175c97828758c93e55505c0e18e2646ae77bf264076041bf682532e28268a4978dd9c822c0475347ee3d29c5df2601fb SHA512 2d0f8908f59d4b1cccd1fbca0c1fa3cc4b224f09549669b28a16af5acfd4369b66851e9be8d65e1df71be998fbc42fc130ad32b71e035d6055724e8fa31fbf98 +DIST boxfnonce-0.1.1.crate 9698 BLAKE2B 678cd597d002850a2ed7ae430b23fb71f7218cda3a874339f98e698c570fb1be466862db1365e80f62d0b5d9c0561cf65fed004ed460896f1f9dbb704c4c3cff SHA512 e027de23cb7c58fcf47dcdf1dc2adf7477408f2b4e6303b51a72e2b87de232d4898dcc064f43d7bd86e337f7e1b0c1f6324daa1cb8e9ba0e530674fb358eecc6 +DIST bstr-0.2.17.crate 330350 BLAKE2B 90c3a48d78b73d7e36a3da9fda0beae6e91ce534d17198ea8ceee0b613d03297f9dd8bca30e1ec5da01d1da359a1da72b2c2771b77c82bebab5006cafd665192 SHA512 883eac8210d14f89517b4dd5e25d02c97cf31602ec74498b5e186112ba0f154d47de8d1c41a8f4e5503f3b53c064e2c976b60bbfd63fc28b186bc006e00f20c2 +DIST bumpalo-3.8.0.crate 79835 BLAKE2B 3937c4ca9d7c5e2ffee229c8f5503c6a59f2fabfa3b7c81fefbf5df816efc5f601aaca4b606a62e647262acafa34146aa0906eedc09368e16eb76b3c6722e8e1 SHA512 c9825e7638bd54f97877adee8ac8f6a2cee308050c3f446f9da3996688ec3d779cb6eb935a440329794fb534958a6e89749b44a9bb27dfd219a963f64a6bcac1 +DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa +DIST bytes-1.1.0.crate 49640 BLAKE2B b3140dd49dc222cd0405e405da9629038eb7d71dd4c22c8d6419ade041dc1118aa46df38f3426a36a44d8e5591c368ae32a89e71850dca7e810bbfff4441c37d SHA512 d34441ea146ccaf55da4d5c645f8ffbd008eeb3204dafd5961771abc85df52751dfd1af3975fb5c91eb83d9a43da4f3589bc3aa07c8d715906d8158f3092af2d +DIST cast-0.2.7.crate 11222 BLAKE2B 8a09b6493d68b08539b38fef39ac3abae829c8b899d5243bda3c3d8acada44f4c57416e3247c82a9a4b82180d7f96c96f048b8cdbf21a8fc184ca6957b237ad9 SHA512 24d204acf21366e088f721714c48bb6431895882263ef3a08f6644abbca5c06f430729fa8bbb4c9f37c95a6baa1b824d3fad95c5f0889e92587490d51bebb4d6 +DIST cc-1.0.72.crate 57495 BLAKE2B b2057ca53aacafa063a4eaa907bfb65aa32ce01a74a90b9085c8243a87723cee8ce79e4904f9d205f9d451598ee34495f8879d27c189477ca43bd39b88b5ea2e SHA512 e9a5b283b2a1fee1030009068c1f87291ec1dab7584a0892f27cc7e523c8fdfd5d986281d9aec1a00af706af1e61d7e64c245c74be7b39c8c022ae2d4f87de8d +DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST chrono-0.4.19.crate 155663 BLAKE2B c92c273fb6475bbb2546dfb75eaa23321bc8f9a5fa8a7c652f527649b96ff8718fa932f52b500b02a4acae7837df5bdb14f69cb821d4962be2790dbd1d023a54 SHA512 a119349bfc2243a249f1d18b1ae548a04b30fecb75913a56f26d1ff8c0eb53097a2674d9141e2094018191cbbc1620843fbddaf52999824e077c1157f0907980 +DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8 +DIST console-0.15.0.crate 23507 BLAKE2B 49694683baddb53e0f35584403aa93616164c2d3b94b39e0e35ebc4f915c37c8e794619d57b44ac0ea460ddbf7ec43323adecf657cc6f2869f313b3cdbf3a46a SHA512 70bd6abfafa533903f273ec3b34da6783856bd1abedaf139fddafac0dbb03fa9154f8e1e1bef01fd8de3c53100bbaa93313518c42f8ce51217c23ef34d3f9d62 +DIST cpufeatures-0.2.1.crate 10500 BLAKE2B 92e676cd9a8901cdb344340dc7cd7b6d66114a15bd72cdaf600283c79c2339fc8f89b57ac38808141037ea45ae32628e9485cb825c7bcc25abd94c41b6549407 SHA512 0db2486beb0f287b2b4f8543f0f02c4e6d00f66e65c9785a1ecd2868c460553f016b33426c24d0b0ade1417906f5853cfbdeed98ad85cfb73b4f7ad3af85a613 +DIST criterion-0.3.5.crate 110662 BLAKE2B deac65befe648cabfca827b8c37a57a0c48ba1edf34b6e32799117dba9147eceee91b652244b2eb5523c88d8521ae3800d05fbec13b3b3548eabdb13a56f2763 SHA512 ad5d0cf9270c3be5d76c87ada41198d0fbdcdd9831f092ae7179b57e16df153d2aebc0bb70ad7b6fc98966240a902ed5f6fc7adf044be0420bbaa95b951e5be1 +DIST criterion-plot-0.4.4.crate 22546 BLAKE2B ab1326f804cbfbedcb415baadfee2d11b4a67544856fd94dae0f3f3a9bfe46550d23a29a0c8a3a84da6e18565dfb330580aaddfd69a42284499a36b2ae596fef SHA512 4f8fdfdf4ed5e1c410b8e133b36bf9add3d86d56bb23d75d37d92b1095b81850915209c7e4d19fd6aec7cf1b1270a9b968b8e37adc491cfc76b6df71c4619943 +DIST crossbeam-channel-0.5.1.crate 86919 BLAKE2B b223d0dcacbb09850d457825cb2a018494d798d0000a20eed3f54b1152e41ebca4698e7d50e81f467b86543779155ad08566da9496eee36aa06644b69cf5d7eb SHA512 f15aff67e9105584f5fe41e1ee650ae4fdd0d0ca0fa9202ee83c6f6025398a300decaa50d1b4682e8afb9bd6e11e95b69bcf23f68ae117419aa84df14ee7747b +DIST crossbeam-deque-0.8.1.crate 20852 BLAKE2B 0e7a2616b82c5e501c0f74935adfea3ee09db5475408be83db8f1b6faab4cd5509de2e029bdf6df90435e474ef91f3fc8d482ce3a72966b2a3bec5967666bdc4 SHA512 44a4fe1d4ab7457e2b0950be787b76b15e1bb0b1c108d032381ce3fe99bf7bf76f3d1718085660083d813e2639e66fdd3635d9186e85a9eb7267063b117eaca4 +DIST crossbeam-epoch-0.9.5.crate 43883 BLAKE2B c0ee0879c583bd1051b63d29eccac37ceb9f9446ee8cb64756b2e3d95a30c5c11bc79d9d460be4ef4b62513049e28900a96085031f805d064e81b5eae4bc297a SHA512 ad822e967e5ef45fa0c4a939f057f44146f1f051032fd032355a75c0f45ae4e0a55e1d31c80bc67c01ff8d9c87a51aba7ccfe9a440f061fd8225c879aa663064 +DIST crossbeam-utils-0.8.5.crate 38414 BLAKE2B 8a10162cbc54f77737602b6f8574b65a02765577f0e2f59d71e1d87662180fe24a781df542f3e765c4d64b7a0666575157e000766dac138bd4fc0356944092ad SHA512 fd4d2ae10340bb96c22b31190b300aab54e96b8089fd62489e102c76a944e6a16c582a90bc40f5e188f13f841293a4b9becf30830c2ece04f3ce78c29066532f +DIST csv-1.1.6.crate 886999 BLAKE2B b178d0419af671df570f37a4d054391bc883085b0cd3949de5e967aa4ca323fdadfd8c5d91eef1e8882ec112a1111cf255756eace3c7421e455ea2b6e01cb600 SHA512 81dd826f0ee85e7d335d844e9f9b4d2b66f7076c517d8050ee2e35721bfa4ecb8a906dcd9671b1c5381a968dcce0949202f1afe8eea535b6d215363d4f5be6fc +DIST csv-core-0.1.10.crate 25668 BLAKE2B 8e9a56c26e75f4c4c9e90a21cc30c60cc3fff17515ac93bc858e8ec45e130df2ecabafa7c513b2d2815269fbbd98c418269dfb1bf1425d2fd32fe46823cee6c8 SHA512 2a269d050fbe5d9e0f5dcda2de1e84bfeb69538dde86040ad1ec7307a214eed813a1482acb5029a51f18126d384d5238355e021964e47811db971a0821bcc328 +DIST daemonize-0.4.1.crate 14494 BLAKE2B 807b6270122b78cbd19792101d9be258b87b316d5bea4a25b4c600debe0a89f43ff69f4f9eb1366f905fc9d1adf4b1cfcb140a725769b1e04930d1eb6e906bd0 SHA512 acde0f361ad152e523877ebc714f4e5706b3c506914612ea8b2cace473df58c6153b327011acdfe039379d1bf13f45173092cf6ead3190fb77b5c27bd91e74de +DIST dialoguer-0.9.0.crate 23539 BLAKE2B d7fb00405377db6ba3e951000e0feb8866d452495d505f223560b8ef589ee8a231812d8510cf242582a732d2eb6850d459f1a7aef334ba7fbe1e528b21b9086e SHA512 8636a89cb05e54f36799576a0431b969a359682221b07cb68e59cd83adb22936daaa7bb2b38a31d1a8fcf8043838437c543787401d628cd87892df17d1d485dd +DIST digest-0.9.0.crate 13247 BLAKE2B c5f2fa8a5bc12021d99ea63f08fa8c8b5b3353d90cf9d58ba84252b3f81b88b52f28c15c24c61fcee44f7d547a0bad11def7fa8f4616d070db163e48f89ab64b SHA512 8637a322c429f51ecb0fa4c3b58fabef01368c1a093492fad65f48eeeec2366fd1b7876e6e47723e089ec5ce11f881bfe4dcebdc605811252b797db027746a45 +DIST either-1.6.1.crate 13641 BLAKE2B e5f40c40a5edb6dcb07a10bf79183cbe42438f1f70f3932dce72f6f6e91f75f24d17d82bc447507def4dad4345ffc9dd9162dde778afb253bdb1218e91887949 SHA512 4bfe56920e30cbc8eb4f90162db618f7dca653b42db35ab6a7045d3fd9a24ceb1778b1f79613850bdb1a87ad3794fa0d73015e46c48d513f368d8c3776fc9ddf +DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77 +DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 +DIST form_urlencoded-1.0.1.crate 8773 BLAKE2B e2d2224dbd85d053343aea29ef1bd540fb8be12fd600289e9c048e3b74bfb009d0770f8296556309ef756086f22feec4713dfed1006e1101075c8897be5471cc SHA512 3ab371c223561a27ffbd35cf648ef4a9145d47bba9d71900a7c54cfc2f089175e9361f6352331a9a7fa018923b15e7a3553c8f9ff9fae80e1626e641a5faff68 +DIST generic-array-0.14.4.crate 28916 BLAKE2B 41adcb738bb316d17967e029a829dcf7377427977309b010c2f2e365f16306b44991eb5f65698782497f614b129b14cad11bfeba2ae19b45efd117114492517e SHA512 34ac71fee2cd50ff786d39b4abacd9e090a8598baf4dc36ba5fecfb7171cd8e4f58e5360cbb0baf02a87eea26b7dca85b35555b82bbefe06635d2fd38f7b8b40 +DIST getrandom-0.2.3.crate 26261 BLAKE2B 3e52a87b9355f850e07e5080c20e1ab3acfa927bae28c63bb8bfd6a773ad77be96d3ba770c344631cc0f2d9a95aac920790173168b102e25f50480ee96663569 SHA512 e6da64ed529cb0fc000b613f75187ed6b20f716e721d8a02ac2ae39c507fb9f6189ebb66b522d28584eff1e7e9efc274cad6bfe43f464f58053701e1d51c603d +DIST half-1.8.2.crate 41874 BLAKE2B c3c5c01771f05b7af652abb8e5490dde7afd04de130537e67845fe7ed58904e7ad66c7286a4e7deca3641876a6d12c5b6e95883fee2809c8e685d2f79cf96610 SHA512 5eb128e41b8b7f9769a669834b2f8380b115395bf2a2a181732bf6c71234d978dbc4c527fddadaa7bd7fae9add77958b27616bfa1767fd123d3cfb887663292e +DIST hashbrown-0.11.2.crate 85713 BLAKE2B 402f9f1bdcb92631206f9b72923ee35e28db8623e87469c0f1496664bc7185077013ab3c8aea68268241e5b2504f10cddc613a350abd4291050deda6c112e559 SHA512 c21ca68fd49bbb741901f59fed04cc124b8da99e2a4dfc26e2e5e1140637872b344612a01691bd30cc771575c571be15f756c84dde225441699cd2322af2ad6c +DIST heck-0.3.3.crate 10260 BLAKE2B dc756738081d855583f239908f671e9b5dde72ebfb577f6387b1a169817a03332464cf67071708a4c4f06b1ecb222118e8c719073ccdec1c0f938e5ef378b13f SHA512 b3498e033f44e03206421e565efec5b21d13107b60d35e4476331c44e6effd75c81f7678f2452c822eefd581209a2ffefd2034779cca2d8b4fac4583bbbf777f +DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a +DIST http-0.2.5.crate 106297 BLAKE2B 02917ea704475510cf9d71739b4cf3cf8f87a013fdd7b9ebbc21c702642bbfc9e33d7c7ba47e084c86cbae4d95a72a51b7f7d3c00ed5652931c9286d83f5b980 SHA512 ec56bea9a6329c82053a757b6d537834985284f22dd677f9bdd335785e8ae71acefce0e07a7fff57c6648d0fae54a8039d71d74936f10a9b5547fd90d2fdf7d0 +DIST httparse-1.5.1.crate 26758 BLAKE2B c2f17a601b54032c1898b88feb836ec380465b5305e240d9466760aea85bc709ed873d1677714acba0d493d27fa5f5288931cb7d62f240e50e2d6b84d4e72046 SHA512 70eec6bec5927e272d7cbd09472a14b0f33d153498d5e1894c0853bfd35981c0d249a799c3f4acc01b8499c29519a49d81efb755bdbce124e55f73eb75cf8592 +DIST iai-0.1.1.crate 13693 BLAKE2B a9e6e5afaf4812cd614630dd48888793d6f985f55b31379fd1b75584cd41c03bc51e71b95a07df3add39e9021cfb8549d4ab0a1530db977e8bfdbf40dac8c858 SHA512 f057bc7da7141541faeab7dab5410cf7b621a622f84ee5da38cc0559bc551baec0694dba01b7280f6744f91f8ed0aa6838b5e7a3d65def2f20768c4f4f15f56d +DIST idna-0.2.3.crate 271023 BLAKE2B 157ece18825fd3f8055581ccbd14191a6923da4c806ce51b3d6376682878db000a1b873f744c8e9e1966e4c1f8393643bcb603deae299ed0bd87847b0bd2c591 SHA512 1278bd561ce329e1dc7a6f24a10f83d9a068af5d15a088414f3921c6728b0d54f4d60d6f4d0d5a786596ad226263e1e50c3842f192d5758aa4665ba4ed5c269f +DIST igd-0.12.0.crate 25350 BLAKE2B 65551a69c202623a20906fa3eb9d75a41080b60889b65ecb0ea81a48ff3c412d7ce112eb0d70b7b9b5794f801fb64b3d5ceaf150ac19e705467a55399f835397 SHA512 ea3f95203b56430db7614337d7055f2af35a29b68e4609e833a7dee695d54c9adf3fd5ee0847da3b5326514b203d2ce134a253c38041271f7b5a48e6d0315d5f +DIST indexmap-1.7.0.crate 50363 BLAKE2B b45318ae2a6e1f008494db77a3159eea3fed4f77eb04ae65599be9392d6ef78d4677b65d04fefab8f917f6808fee821a33bcf53a50b88785fae5ef6848e3a08a SHA512 9b882b4a7068a686acaee0a08bd4f3b35b58d36e786358cf14a3436eb61339649e64f1757331cc7833a2fa364c76eb6b75cf0c732afaeb202113de1e66b72ab9 +DIST itertools-0.10.3.crate 118661 BLAKE2B 0095d6e7f14ddda69605d09f74e8cc881eec1a1d234f705e667d7f9e738ef157b7ddee066855cbcad7f134bf79b99a4a4c77bff3371397a567cd34d98b68bf97 SHA512 9d17357eb68159edf4f4ccd2eb9895672c7fb633803166d5e24ee12350639eaf66f1c822910518185cd1f1ca5d9c3e228dd37525e6c337ba3fc7ce967f9bfc85 +DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e +DIST itoa-1.0.1.crate 11059 BLAKE2B 5a2e22ab891ec883a90f652c88f924113252765579c03c783e43210fb2604e9e3ccbd4c1571087791be07bb99c4e85c7f85253be831b3ea883bc0ac18a927980 SHA512 8e7bc1e9bf4fc06871b9fe20caad4e0af965477d724f4c8d0e2a3a4d87aedf99f92e4e583a6440ce574d0fb43fc9d6a2e80add52a2f64210c6aa3b402e424295 +DIST js-sys-0.3.55.crate 70499 BLAKE2B 6108d6bf4be72dc93db5c2f45d59dcbd7b94edc02ccb368a05bdc0e259768be4708e449647b254bc3c542a366492a02f0569d08e69c00249f58b07a566cdf97a SHA512 bd51d61684b3683d5b80df42eb80cb2e4688096bf14fcbd30234503709b1730ab25c7b58112516aeb5d7f44ae20e0ba08bdfddb0518a20603bbb4ca74544d4ac +DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8 +DIST libc-0.2.112.crate 571445 BLAKE2B 3936f4fd08cda0ad5be7b1ff417b6dfc9abad14ea5cf647425d8a2e7306275e958fb5cab4de9eeaab95065176bc295065bafec3846ebadb6e15cba20de495280 SHA512 6c1a027eff21d3ef8078ad19b90b06d90790919a848e95a4c878e8c8b850d2e9be3fca36d8db39b24e472f15e5352ead1182d5491a0b382e06f8c3ead379c45f +DIST linked-hash-map-0.5.4.crate 16166 BLAKE2B d6bfa091265355ae124885f76212c968f2a87af80f3d306c13223ab7fa1d6a449ffda8d042bdb887501d2ffd8adbc638f18cdfeefc16c39a1eb9f57b7c658bf0 SHA512 2938883357ec0e7d9c9fc5746063ae419c97250ddceeb8de3480c89e97e0a29d175cc9199bdb3ddf81cd5d6a2a1e319ee1644a7309eea96058221074cf87c0b6 +DIST log-0.4.14.crate 34582 BLAKE2B ddfba35947ae1f5905cd9ecb9eb862a78af6f00ee8b8fe6258b369b140928fe677a02b1b3ca5bdec36ff2b16abd85a9f49688fd5f3d1ba2b2905e7f96b8a84c1 SHA512 796100167663d85a7bc4244cd305e9b3f0a1b1520764b63464698eb136318d0928c40c16f5d19d9f602a5bf769851275bbd48d66b088b0c37be7a6fb62def7cc +DIST matches-0.1.9.crate 2246 BLAKE2B de155202636c6a03ed68cdb21e8ef96e19b45be040a82943d2d7e5192c0ab5c253ab6d65f0b30b2689e21da79cba684af5be6e63c48266681aceba356f6eea41 SHA512 6a2809687d30ff04ea97bf9d1610d746e097699a4c3625ffd1b7b1e4a9673ece9d559058c9f760b99d6ab509024f7b338e7cfa6fe767499c983efa98bfb98305 +DIST memchr-2.4.1.crate 64977 BLAKE2B 31479718c118093b684bed946eae0706d77d9d275bd49f5aeff4de490f479abd60c7dc462150eafffc6d6fc1da0853123b78be038826b775d2a41a4c39d93ab5 SHA512 d8912e3902a2126f86159bdc998532a2890b882cbb7d59b5a470fffcad4c32281e045f2fff48a235aa4189f1928866bf3d33b699d50866ad6b6c272bba7adb11 +DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f +DIST nix-0.14.1.crate 185227 BLAKE2B ecd12ae7580879c960cd828a22109e5a7f209a24c4208bc04d4392f36726886b66b147dbd3a1f3705edd35e53187553c125dfd47589a326c032aab0a3d3c9ba2 SHA512 c6393f47cdff2134cd51ca3d6becf0309697a11ac9956e3979a2d6cd00a86545d1af4efd63f6d5e417a80b2d9b247a7416b7182156d9966e00c6da25a3bfdcb3 +DIST nix-0.23.1.crate 240531 BLAKE2B 8e03f4edbad39a467c1557083cfbbd6eff4b78d5ec4e0f1ba06eb043f853352f5154f115ce75556e0d672f0499a9d4c03650bc5a1f57ba1b920cd1595cc50ea9 SHA512 23431030b094ebb027200d8cdc05d0ac1730fbb86ee088795a2314f1ba19b76ed5f24373c1aba8125575bf69f8e7d4d9c08344b9cb49a4ae3d8f7987b5f4e6b6 +DIST num-integer-0.1.44.crate 22216 BLAKE2B e1c08427e006cde6f2084adadb6086e87e6d6f8bb8dfa757a8228aa671e862a366e4bd8ca5e0500008c18bab128aead9bd5b1e53568a4f40afadcaf3882ee98f SHA512 d07e27ede02a1d007373935fd91e57a26e0e84ae14bbe24be66763baae6850788bd64ad2598d2bde4f4fad6c8a4675c40bfe0927164b16b9b69de5e9a83d9771 +DIST num-traits-0.2.14.crate 45476 BLAKE2B ae310d9d5640acc3e45e1e5d1d2f519539795922c0058ee940c94c94b6654b39358b7c18dd23a276f2c1b16a30dd4de4cbc8575bcda6a5c11e70665d670e6439 SHA512 c3028eca9f7b718de0db3a36cf3e462bdba43562d52c9b809ed4cc0aa6af403aea542d6d4da743cd1dd541397815a3c5a84cef4d6e40122994e4be6a62319b2e +DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459353a9316ffaa0245ce499df4424e39c25a81be59cd0f9a19c3214c78bdc7a84b632059282be476d8f918c44d6 SHA512 91ffe0ec792228621d6c2d5cc544ef4744203d19fc9c86e0aad2610038c43aca0448b6c27d82979417a0f6c939ea73523303a44c28df0d1c1b8d09814d5306d9 +DIST once_cell-1.9.0.crate 30702 BLAKE2B 3d492e64db120d8a23c08490a34d376a006e46b28bb5f0f44c3a955896e6e597c67ced35daeb4ccc7f7748f142d3bf2cb1d81ee61a99dc6526c48730c86a2fdc SHA512 cfdb6aa4bcc0f50d4c37eb69867d2deefa70323a7b607e55180b7d417b7188c4f2889417fd04fc51671c65eac75c7d9e7eda06a87dedb846056def66d14eaa46 +DIST oorandom-11.1.3.crate 10068 BLAKE2B 443ced49f63015823866257a36a88e566f75adaa79511c1c73f1190ec8855ca590d2b6ece07c2ad5e9e47a89f7891af6e9e43b7d74d9ac57cb3551e60b50aca1 SHA512 51ae60ef51da56d7673f36a6c5b99b743580c5f5be54fdcb54b69e5e2f6bbba3267f96b74e7cd6dee6962dfa6696fd9ed073f22726a2861b8f2601946a8efab9 +DIST opaque-debug-0.3.0.crate 5767 BLAKE2B fb5d32c876a271b41582563f5d6978d75bc1cba2cc34167f491bc198e6eded45b9dea65effa3aa972ede20978808b37ad1aadb6837f926fa3378ffd382076d41 SHA512 9909b06668a4f97b4d0e916de3e1d0a922a5a0b911a7ce190de786f62ceaccd382cbd0dbe01ab0f15e5472c10848482da2307a6d897928b6b7d5365bc0321cae +DIST percent-encoding-2.1.0.crate 9748 BLAKE2B f3ff35ac683724b15e40c85e0fb8ececb07b61beeea82b7020f02d27df05a8a3535f157b3cd688533e414d6541de7de8640ef4756706d8061af0fec94ba04ab3 SHA512 98af4dfa7c6a3cf0d5aa929c436f9eb1ba1b576a944513f1284e6df2ad06be7cab9eba145d888d50af88f8c970bacc702b323041bec6d4fa1dc34095186c628a +DIST plotters-0.3.1.crate 8595577 BLAKE2B 7c500c43c2b2875d9dc17e4eab57cbd8a470c6064deadf4e78c429abe2f1e97511f64bc67782b4e03e7cc47c8ac54aadfa5f7cc8c27d3b4453d2ee8252896c99 SHA512 c7bcdf9da56c2d1c03053f61256d44d2384fac1a9a7e0db058090c13b359bce76a2a96bbcbfde04fdcde0a9dd3db8a1a22bc57508b0b6e4a374c8b35ec6c9707 +DIST plotters-backend-0.3.2.crate 13524 BLAKE2B cfd42df0fcea4e5ee944a6b8c48e3b7fcecefd6d97f07e1c333067193c211da9eba29fb56e9fc8b861cfa2d1baa3c042fddb494bb66b9109656b26bde7901f7d SHA512 116bc6866094a2ec40a9ab9363378566ff37eeb4a4e3805562dd3e95f1d5e8664b54d3dc858a2c9974b125e308e46b77c294de2a655f836d342712c32f0242a3 +DIST plotters-svg-0.3.1.crate 7596 BLAKE2B ac8dffc5dea833c0506c472567056be0804e5519828b68f7b3bec9ee63dd59f9aa828c10732a50e004214512df06c7eaf164eb9613cda75b2753270fa358c0d6 SHA512 4d3cd02534440dc26f5eaa3b4966081901626c61d9fabe0092fed87c48929cb9be070d9c34486fc7c7bef308337ff4890d30f9581a613549e507db60dd9d8876 +DIST ppv-lite86-0.2.15.crate 22002 BLAKE2B 3f967f112ba799f18a3f897c944ea656994abdc7c912868023de90d3885a87d9544159c44b6aeeffd83c1fe0172e326bed4044c2d199ca899da4f8420629736c SHA512 6dac73153d244cca97ea00e429f783a7d03b48f10ee450cf6f8d77581010b28be5048f53322b0c888b425b5085f440b6ea90599ea00c55c641de6e29da42f0b3 +DIST privdrop-0.5.1.crate 3722 BLAKE2B a68aad3d5c32a1bbac08998e097fc5f5a760d602a560fd462c32a8dbc53f3fedd5b3349a4e947210e15a4ff3b864bae098487556a00612f0b80b00953773d80c SHA512 36aebb60f32aa311410eab4b9ee4110175b2b4e48b2e7f4bd5a17ec7fad298cea10201c968682003bfa0f94ab2cfb43279ad3571b12466d3a12b6715de90187e +DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db +DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495 +DIST proc-macro2-1.0.34.crate 41072 BLAKE2B 6b507e95802fd8dfca422deace25e328b1e4c5a9515c83ae55f8a34b1c1d34ce427afea7d7a748f582abf903245ed8c2b3f4175d78c8c9dc9f467c9805329d47 SHA512 960036a077c3869386ecb5c2019816adc70e9a9b32ceeacd4b14b39a91dbffe0b21764ead7237ab3aa553b26cb6732bbeccacbaf83c8dca9069b11b9a85dd1f8 +DIST quote-1.0.10.crate 29960 BLAKE2B fbd4e3e0e0f452e64b30399fdfaef318cead505d05f0c61db61a7aa3cd5a3300220b4ba2656603f88bc0b535390ab4d0ec101a919ace1d442a3e979f08e8d48f SHA512 08613679b564ea7d750117d3a2907ba957d5d595bdfa8016344f99a232c72c6b08acb882dff45c34c9e4c8f93f879fb308b36125572722aac04fbc6bb0c666f0 +DIST rand-0.8.4.crate 87406 BLAKE2B c09358416d2425a8243b623346fe71bf6f03fddab1a23fc752f4303ba7c241b3606629e4edf0ea720785bda0bca534acd675c2de079b78eac3df24a1ad6ba654 SHA512 77ae0e988e31e12f7d3f2c40814f930eecbc94c4aced827c337be78eeeabf39fde2dc5c4fda059afdc01285ff4afe30393c32694377de004feff16207606558e +DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075 +DIST rand_core-0.6.3.crate 21938 BLAKE2B 7c73e2da6d423c68dbbca31f6528bdb3f42fa39b30d0951ca7058e05ce16ef09ef5e047697b33ec17720314f934512c0907aeb892df93d63abd8b63eda2b50a7 SHA512 0fc31f96ca8ebba8c179367de01458e909265e1d627ec0c5620be7c8e83d2f9570471d6ec2cb2bc4bc531505b02fc31f1165708cc1357906791c87123b06ee87 +DIST rand_hc-0.3.1.crate 11891 BLAKE2B b3aa810638390eea4245ebb711de88ccdc2a64350a5c6e14064fea7685d49746b4b77215dbb8374fa7a6cbc2cfd79fb553513d6e551acf64586d8303f7d4f3a0 SHA512 582bb44b81c27e698eb57c6f06444b8a7c9d3f7ee73f4e14be8004c4bfd3bbfd9795c69f7294b5e87107e86b90fa3e91ad080964474af81c92705d356e43fbb5 +DIST rayon-1.5.1.crate 160424 BLAKE2B 1c31c8e3290f76d02347271cb020e50e8f915b7a064f133a196c12e07ae1551c0e7c31883a31ec419a05198d6c71f0057be1b8ddb21f451db9ba40da511a0e1a SHA512 a68e65aae7040a6f6b0cc33b53b4c22929c15504ed4fdf54f5eb5fcaeab137c220b00c716aed96246b6a762c4f1e8be920356231d6c4a0b3e01132b9ab96ffc9 +DIST rayon-core-1.9.1.crate 64961 BLAKE2B 7201024124324d2cf2d5785b7e79d2195adc7de576b826a9c28603dc44f1b5de46d277b791a741413c85facb4f4a552bfd55989a190f6f5ea3df4bbd32042f66 SHA512 c24c34dc488171ce476df145e8c6953d35fea93412805f6c411ba8b8e9dbbd733610b291203ee91bd265b766b78e14ba15a7b587e8f0ae8bde53f60e0644ef78 +DIST redox_syscall-0.2.10.crate 23582 BLAKE2B 7253dd96415e7b70df488c208d86c250c670b1245ac6573a59085faabbde9e33fabfacd233e7d737e365493db14008c180274b41ea0a4af5f6f98eec666a873f SHA512 ef012eb4bffe32119e50ecdbef4cc31f6e84a344e94f026484fe4e2c904f94053a8b6249fb6bd8ada31b3ecfbf0096085283bb68aeb62b1b01b57f35794aee92 +DIST regex-1.5.4.crate 236581 BLAKE2B 6efaf69d1a99dc3a2e04b2d1a96b036f631e9a0ad0d3aa57263febd47f7ec12765526f06f9c52a5497bf0d9b455f1d1b39e011adc4c28530c44b65c8a453efc0 SHA512 1a9208358c4ab87c19ec91bcf5c1e35dede46f3a0c0097061b7b53fa77a1e5ad38090d243aab274956f09c491e5fbe3b3b35a91db079b82a2dde2fd9fbad4c19 +DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f +DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5 +DIST remove_dir_all-0.5.3.crate 9184 BLAKE2B ab7ef94e0230ddc9b363f038254a180881bbc20eb04a254f97e6f71ed491c99ba1c88f5e85632d450243882a4a0df63f3b8b183bc1fbca9caf30ec23d577b1d7 SHA512 50417d6d8a33912193a1ed37eb72b47431b12ae65d2780cdb7080c3d141e63819da13751c3fb737685cea322f70b36d413389c3dc01aa12b4dce615aefed0e2c +DIST ring-0.16.20.crate 5082615 BLAKE2B 6011eb7148c2d2ab410e564a06604f4350e07ea030e4d7dcb30574b977f0b0c7e53e09f6e6dbb2d068cdf110262876c48dfaeeef1b691932a056fe149916d934 SHA512 d97d1b08eb796d4c107426ff2c015ab1f221612500c8a57fca8e3f064e8c0f5ae2a5e6071d013313cd9f4be8fed4ba03beae84bd446f56b2b2ca5d483c328191 +DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db +DIST ryu-1.0.9.crate 48391 BLAKE2B d5c1035ffd6340d846009953cb4303fb8c250a3a6ac60b51a2fec77a6cb3648524420064b7380fe31af33c57011f950f6f739a1f0114196675b3b5de4b54efc6 SHA512 4e7c2c7ec73da1ddb32e18d36b8159cb4047b9f4feeb975361e7ba68135e671e11419bb7786df789f5d08e5895231d2c98e36035b515f2c64ac40474d08905cb +DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c +DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d +DIST semver-1.0.4.crate 29375 BLAKE2B 534a89125c4483fc99c44f7b104870be1471d478ba4f709819ae700767f4d6d0bdc98955897e33566651cbecadb4d4dc223204e4504ba4820c2d3919ef4fa775 SHA512 82ef2b4a3533360de1c645dba02b57a2670fdc51709a07be4a63b94055335225764d42d70f9617ed3aeb4c4de121da24e73b0e2c5c781501e9ee32dff756ebd9 +DIST serde-1.0.132.crate 75364 BLAKE2B 7485bcf0ae578f02f7c7dcdb284fcd6d8ccb4022b7d487e19593f3b3c9bd03a369410307dbe5ecde8071ca3ab6c7e45a5ddfe332e43076b84d67444d1f105b7b SHA512 8dac512547074a6934315ebae3e7540ef8baa225cdd58f11416b4565a1335ab317e659901fd626beffd6514c5dc6ec9fc705cc1d15e9cdd2051bd28649cca555 +DIST serde_cbor-0.11.2.crate 44570 BLAKE2B facc8d16886dde89125b7d69e9e77ff586c61993c3493fe4089ff03c53e6c0808c6da45a83337d3be7414dd82f3d6a7f3d43167473e49e586a7e817d47ef3014 SHA512 12ddcbd5de0d85f2da6e078e3ccfdf2115125084d57eb93d7e9b45bca6a86daf79dcc79c8e54260c56240c3b5e814b1481ac28c3aa1d1b4b982ef5956b5cc3cd +DIST serde_derive-1.0.132.crate 54725 BLAKE2B 10ba0e55a498cfb469f1a36368f66515ab3e331f337b9441b08aba857dd6c824ccb718fdc33ab467413bd755db31370d4eb52039bb28e4a6c0775e2be87db896 SHA512 04f1a738b133de752fd1f4d70ffa35bbc144208bc3495ead56cda8ce65a72c501ea9c8e5e6d088cee94a878bf62509fc9f75dfadb320eb942042ee5ea80dc76a +DIST serde_json-1.0.73.crate 115922 BLAKE2B 5f304d127c3cee17d06cf30ace0fa8c75374293b64751e45938a283a9451e3809ccc0a1cc1b64b33f526585744073b4b35a366a404772fd37856e4fdc128d786 SHA512 0d7bcf06eb2d78f768c4bf54429439a1f6e8b7097fda6e7547b4edee1933a69307ba9b758fabb6ac918cda216c7744a0b906d7a38fd13c51e16e6e25881df748 +DIST serde_yaml-0.8.23.crate 42140 BLAKE2B 49d28913954173d1c062fe4668c2228286adde3d3e210befd09e04f8e43dcde469c6aeb86349a7a604188343d0c211078c9520c079249780923a4d70e3132d9b SHA512 7831299cedf0fa9155a76b61436ec1cbc06adfe672a102973e8cffc8b277d99b4104d70951ed16b18283f3291c8047d6af413e0438da3e6bc6745bfb6816628a +DIST sha-1-0.9.8.crate 14029 BLAKE2B 80fa6903880ee36841375345d1763672ae8c3b790965b0bfc7cec7ecc69744be3a35a890a6f52b2a25f9ed1b91ce6986dd04b00ee455563b00218f8acd4b6ce5 SHA512 d4708a762d5f3dfd902ed335f0383cf63b442f95b1aebbaca3643606ed2480060d2ed04f123d0c44496147ecbb06a093980b435f9d3ff9e0f5c908389736aa9f +DIST signal-0.7.0.crate 11974 BLAKE2B b716d4353bd8febee9e167a6a73c6cb41771bc107a7325242cf9d33c64c9e13955c1c0387a41f077f7013ea00882642d610e00c0957cf82078fcdfb9de8f245d SHA512 8127545f78ebc0eac5d08952a5e81405103bfc0e92de9d7932e9e960d9bd3b05cf4e956b2bd76318d77696d08776aad033e95f17b62c2199a87d32cca4669ada +DIST smallvec-1.7.0.crate 27459 BLAKE2B a740a4b7448a4c8d1bef59cfb6dc9a52145e40eeb38028c64c880f31800cd3a4cb8be17394742239dfa7fb692c749f9edf70e6df02abd7a1bff288eec38ba24e SHA512 d061e0059cd6bd1636424374848aa1d4edd21f75605844a7855ff5d343dbdb71e6eb14bd70de7947ae7ab58f04ff096a5e77aa9a1ac14cef59f657685c846156 +DIST spin-0.5.2.crate 12004 BLAKE2B d67d9156ca6dbcf4022711cce797cd423a4977115abac4cafaa507aa2e1071b637275637a20934d4d0d6d2bf82c98c74a4506720326d1804952aa0fd5fc4895c SHA512 fc57f7906da2b7a298c5f89215e881e8827b4d9f934dbf138338e0ee30122d8459483be566268fa374b41d63d8dbf65d42e0b322535ba35c827d7edb2176f267 +DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34 +DIST structopt-0.3.25.crate 52296 BLAKE2B 07fb1f601ff0233c5ccc15fdc45ccc6bc06636c261c96c7554c516c4cfd1f38a9541cca67c670985bfe7984da04a0cfcbdf37a83479ce1aeea9b795c7d323889 SHA512 f07c505fbabfd880ee5f931e8a3ed8a1d01fc0a66a78c0cc04a2600d2f5cb2d699ac41719062c5c4d2cb06a64ce1433641837bb7d9fb755018ce95844216811d +DIST structopt-derive-0.4.18.crate 20996 BLAKE2B 2ae17e0d365a7ce7a4d0e007513623ee0d5acf45afdc3844114e02975b855fd1a9f7df404a24044cf33a3a4cc4142eccc34d1e97925646d54d460a89baa28275 SHA512 68a7f9c2ed987993fdd8bb7e81c31969a1fdf5351c58cba9de61a2f5957aba1626be4b0742f31d4de502301675ba24b0d91dd3acb24f5607bdeec83070626a57 +DIST syn-1.0.83.crate 234750 BLAKE2B bd4162b01c8f2a1a46b60f4b380fbc1d83292c4c5400e9ecf59bf86ea35f6eda1c3e868ded25c86d6dafe973103c89aaca6dcd67a45a5bcfb111508e60e6ea08 SHA512 83bfe34f52bf20dd5c1465840652066ca8d99b10113048e753a323d7f20fa28fa1977156dd6b420a4e34ee3f674aa1c36da4e84cb8175e9c0281f0bb460b7c11 +DIST tempfile-3.2.0.crate 25892 BLAKE2B ea6870c642c5712c7c96072a5d3dc04d75c19cf1413081e3bf53c1ae6c75e05ab537446071cadb5460b34f7fb7715a03005a1335a64139458db938c3415f7c0d SHA512 56d1c5af7cb6863f9eac990354126979534aae7bf298bc8b1c918c7317ce2ba31f53089aaa1ecf8baa4a39d4111d74f4450be82b509b3c2aa0428880029e663a +DIST terminal_size-0.1.17.crate 9141 BLAKE2B 048d8e8e9dad08aecde12323681d428b9182afb737136cd6699e13d231f7882091c9167cb10a08e5151df912421a6f89132645627e42ccc73d07553cadb1c8cd SHA512 96ec1bc8abd597f01ae59da567036d5d40b422764a4da662e2030c3ef4ce80a983c8b6a4ef1f34d88e649e0b1ea27b206d56a31924bcd2d31ff7e5a2e96d4201 +DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a +DIST thiserror-1.0.30.crate 17748 BLAKE2B b9d8a8f824de03c57af43d0ef8f2e157321e7e6a220660581299a38988e7bd43733126fc9b8d8b8ae38ac1d788ef08fbcb2352beb5ddc014113e0058c2bf60d0 SHA512 0e6cbc160ee1b6236a9073dec225a4290e7a82632ee7cec00bf02797b04851adb2d3071fa268b54f7fa9fe22eeada55a83d44fbddf824520023608eda8ea2e99 +DIST thiserror-impl-1.0.30.crate 15230 BLAKE2B bdfd4451304a2ef4ddbecb48eb1a1307e6eeadab0860c785a2b6a5e7de270ac42ac4f11e46eb9dba77ec5a86b203d9baf8e4fd5c83cdaa10e2af34a95d29d2e5 SHA512 465b1d4eb79075d8abb11f5c260d68847ea52806a2f519515705b03da376fffb3686bebb23c11462b1c59e1ae5b3ee96d834c62cac69862c491001b1ff7cbb46 +DIST tinytemplate-1.2.1.crate 26490 BLAKE2B af39d96f33f63238e455a4e38fde1d1730fd9661ae68be7b05df6ef9d2ab1a04db1332cc4ec9deb6da3a8e22b124df81b0fa8916d8491b808742bb733c8e48be SHA512 0cc080057e096f0796e72004343e1a8332c2e8a12e43f6ade150ebf632e9c29c7ad04de0b940cd57df81efdc4d07a6607da9b86a30d8383e39ac3d7be185edb9 +DIST tinyvec-1.5.1.crate 44942 BLAKE2B d02f610dfb599ae4957d81140bb8945f4cae49c1b7ec5de4bd4a7d07a1334cd00557993dfae2516d506f362305025bd1a6617d55efdad8ebb549fe573e9e6f21 SHA512 80b68058e3264b3fbc537debf01b6b60d438bf5cba6ad366083cb440ed6b45587f367d3a134ec6fab769495b94413d0eca47544b26959a2c35b1a997423eb849 +DIST tinyvec_macros-0.1.0.crate 1817 BLAKE2B a3d1966bf57c11afcd026269135a6189f149f905bb70b47537c0a7bcaef0bfc6c89bdcbdb0f6cb8e5255632855134631c683fc90606a254ec8ba818fd5ef0794 SHA512 d6afc83a3c70cde916a6ff599e2772588e4bbfa7a5b1c7e5c8aa0f4a8a5c9426182497a644e4a88194ece986d38fa64b6c8eda9eb1630441c8e65a8741a45873 +DIST tungstenite-0.16.0.crate 51389 BLAKE2B fcae57ecdd55ca9f9833a77c2a3941f46fa82ed84cf344bfe111637f4823ab450af769d92f9fb5a85499d7736bd88863b3e575e366325aa4a664887a6f9e3f84 SHA512 c7a11feb3777465aac544f687982613bd06b13442b6adf5b449ccd2c33ca2caee77ae7991034becfdc1e19a20b9ed5f9087faac94029cc2b4489f502d25cc1dc +DIST typenum-1.14.0.crate 40518 BLAKE2B ff6d77c28e41cddc1956619bca522f4ae5680cedf313d4a12a4d40f191f85ed10d673a32bdd811d7774a01a1b9b5adf9990269ae230737237249faad16ba7070 SHA512 e9739a24936563e9471213060d53d970f8cbbdd163892a22e98f1972d10861009ca1eb568c3bb5d1d78299482372fbe7e6bf42ec8f4f5f30df0a7446933a312c +DIST unicode-bidi-0.3.7.crate 33759 BLAKE2B 4d5224062c829b5e48d26ca727bb60d10d7c663cfca24762331b36a2819a70e7d43d2b6b64ba64751d9b686949142b53346a52027d400acf8cb1e1b1895b2796 SHA512 6eeafec87a504ac968b59dd3168714e555b5b374cfbb5a6a9c962445c423f82b68ee54d1b732c5939eb17fdbb804f9b3affe828745bf4ff34e8a1587df2bc8bf +DIST unicode-normalization-0.1.19.crate 107353 BLAKE2B 4c69d50efcae131eb4b91d385a64b49412a11ba913b3c0364cd04ad107d59e31adbda74d34ed13a065d9a7825d79fb740e82a4dc66b7813a9837af4352ac9e16 SHA512 7459e9d2867308cac80a98d8dd0b0cce797e2830ea5ff55b878f7a37a6f5e1f0bc14340e1a29955298d660ba2be57754a1478d74851b1b90576dd5bc4231729f +DIST unicode-segmentation-1.8.0.crate 94011 BLAKE2B 33440cedd5b51bd6075c9c75541bb8dcc16037b1c937ca72962f6c46be71a30850ab8e8a144d8b7548e5a91c78d551e7bbab5f26a713f1df0311d15f11299af9 SHA512 f0779ec42907b665df53f38ea370e661f10e7c72a75917f4cbd055868428c0eac1c7fc194d4bbf048e00f0f3d3e2b3602ae88d7820ad0c73e94a5228b61f6495 +DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4 +DIST unicode-xid-0.2.2.crate 14955 BLAKE2B 6c6da49ac08dbd8b3248272224d6bff96b9cd1f36029b1937a58a0b929c3a48326053305ed49e73edd70f572f5abbc4817cedc899c69e3457805ad056669f6af SHA512 92ffd0dd34e3ca235ecf110b38c447d3ec1faa23d76c112457f28d432f92fa6b5f428bc5e1bfd278f361f55426dd96e19ecb0d3eff6cf250892f069c52bd89a8 +DIST untrusted-0.7.1.crate 7924 BLAKE2B e0152791e781a4805120e3437b7e0219db3aa0282af4faaf2cfb15718421ff26abc56021c546f6aebb411f5abd27020273ba0f785e012a4b0089e96c2db4faa6 SHA512 5ebe3266912e4e78fdfdd13f9fcc07e9cf489d19d5e9ff346486f47aa58a0aca35278d561612c49eb3cab5a6759ac974d3b92bfabc399e1bc0808428dc347be0 +DIST url-2.2.2.crate 68555 BLAKE2B f8e59f784b6c2e16bacfba36ad68670a6af17c16ea3b0866b5aa98e5bf4686cf1b1aac9b1f0a0ea3b89a01e044a2ca37830416f42d147158ea8e88f23fd28ac2 SHA512 f9b6ad99d69ff303283b3fd9e98945fbd6cb411a3d141badcbb3a0566723a451375e6dd5d5357e3eb7a1b5b1ee5756a2347c43817db2de6fe35b9004b090e077 +DIST utf-8-0.7.6.crate 10422 BLAKE2B 296690040895ba9da9e69d527aea415f4bd6bd3c010e67a08f9cffd2f4cd92a99f9ddde77512f9ef5a0db069ac9ac3cd6fd91aa18f0bcadf870ed212fdd76f2b SHA512 6bf0787cc297a1ac4e47389464d05ef6850602f549621687e776618bec96c1f7bacbb1ac8faaa63e5d28d975b850db8d6c784eb66e2466128f0521b91c14015b +DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9 +DIST version_check-0.9.3.crate 12547 BLAKE2B 85761c300a8d755e0b376191ef0604728ae641261fdb10682a3134a828eadc4a33216426d286bcdbd8d0c5fcfe6ca8ba20ed078c4f53066b959739a0e73daec0 SHA512 4b3b428214a0322af536a18e6f050438398766af6589389f20a804121a6721962ba411e2dcfded60aaa74313128fb0e831bea31378e2695c29b29bdc24d7cbfd +DIST void-1.0.2.crate 2356 BLAKE2B 41578fb5507f94e7d135f9595cec107ed00a926f4968df8b59792d1676ba5b6980cd67310f820fc37a9c14ebe43a171833fa8dfc09eac5dd42f2ebe808632a83 SHA512 1cc7d282600dc0164d7e410aa895d5dc99de1174991549c6733c94cc2027026517f66797751d737869eae58c560fa26edbf43f36b3015eb2fd99828fe40e0aa1 +DIST vpncloud-2.3.0.tar.gz 131195 BLAKE2B d65481a802d4e21f167015046a7ea830fed765673c6dc383bdaa4ada953f7ad9b3fa344cd323f2ff20e054220a796f32dcab12417c957bf5af2a0aa43ffe507a SHA512 26edbce48a10b159c479f967b61c1bc81e5b025ab62540b76a79abeec0667db0592ca8e1e22e420f16ea545c284e527181511aafd464f90096d027afcd0f7f77 +DIST walkdir-2.3.2.crate 23516 BLAKE2B 473f2b51aafd6ac17e5c3da8d545d179b31486b3a65ab39fbd8bd7fbb2ebcc24bebf01781200a26a68f0b1cb464f5763a919aead3b03eba5a7e1be6efec5500b SHA512 6c44071354faf37720ec4117ded34c8d530489542ee107ac26a7a56ef4a882b9003e22e84f1d61f6078643521343e35aa1f7b57c838779e78e5937a667bf82da +DIST wasi-0.10.2+wasi-snapshot-preview1.crate 27505 BLAKE2B 4eb8644b945633d6e856ad80dd74990be19eb6af99823b147163384f61d471e2d9ec054d78a7064072344be53783e57073e8fffc6d5555c149b4834a9bf31dba SHA512 06977a294d76369a3867c45abdd8a87ea5c84e5a3681075ba0d14af1aee3114ff24495c7e7f7fe1e6e42230e65fba0e062898e69bc89e0209af62c2d14094ec7 +DIST wasm-bindgen-0.2.78.crate 162111 BLAKE2B a3311e67900961b35a59ead7a8972dcee37671921c0f524895c821658a7b1246403d4674bee1735f1b2b94aa789d5376edd02afe4c8ebda110f4344ef58c9225 SHA512 bedeb2828d1e74b1e373bdf34dc2eaec70dd523e9ed96a341da1ab3729a7cf8470a828ddb9cfd4cf15af6e2fff75b4368553ab4f6f02c8dec9419dcdd7578de9 +DIST wasm-bindgen-backend-0.2.78.crate 25576 BLAKE2B 03dc6b255ab9e30f9eb54f81638eb02a05a0b994ddd51f47852bca376a02080fcce596453d688f5e8e7b5a814fd081b9709c1215f7e9f9fec0e4a7a6cba1000c SHA512 00a0ec9afb65c084b64cf9d25f778ab03bf2368a1e0ff213e07b8fe742a125ddae00c7b4d693225d6d798618b0441d4dea3c175cacdb37fdd75b0a46ba3a287b +DIST wasm-bindgen-macro-0.2.78.crate 11700 BLAKE2B 9f1538d79a39555f643b9ac6bfe026c259dfd129c45fdcc33cfbeeba2acb2a26ff4c9df83a3d11674c5ef8e9393af7a4d0cd7e3bd08b7eca0fa55986c893c5e3 SHA512 3389922198b0d5c19163f4de345e0cd7a3c0609d48ff933bd5af0cfb205463632878b5d60bfeeb8dd8f8a98f28f23c5185dd6d8389f599f31176297c944b595d +DIST wasm-bindgen-macro-support-0.2.78.crate 17858 BLAKE2B 8378f639a94797d2d149f2cd836f56143a498d3be5fc30eced6fe4fc2e1bfe14a70f3165cdc5cc1c88f0162efec75b64e56aa9819596984afa97003601b933ce SHA512 84d9867407a7caa942ab11f0ad1c343839bf51793930cdc3ebc5279ca370062eda006540448cc401f6afa078dbb1523b348ae69f4c6d7ccc9a7b8fa1ff895236 +DIST wasm-bindgen-shared-0.2.78.crate 7206 BLAKE2B ee60946d3a90a2760d8cb045657de659c6367aed2d98efd60074cb57f6b06aedf9ac44fed3d41c20299c5edc095cac5537a365fdb01183f3e60b6323da581935 SHA512 a808b7a7909e4a287ccced1b251ad4c1230399c84c05e246127b6a91fa4ed328d6a24316dbdc1843db71a5bd78cfd80113424f9984e0777323d74e3125607134 +DIST web-sys-0.3.55.crate 664827 BLAKE2B 1864f320e6c9b80c6b4b4fd8941d66cf9368a9b0cebcb86d3486b99f65456748b46c507a1bb761611c4825d412986f5bd8c8fc38c3bda3dad2e9de213467ee51 SHA512 ddf191f009d49388bf60ee31650eff1ff884f01822989a226c559b9560aebd90681fadd34e7437f555d627a0a3139ebe267375618eadac8c17ace5fd47650764 +DIST wildmatch-1.1.0.crate 6151 BLAKE2B ddb5870c2c0bde81a624c0a58779cb5d2092300480304f036f2d5ea2944041d59eb0dd022a1b3fa738478a62cd4764789bfd5c5d9bb0944c6e422dd982d670d2 SHA512 c388c5d7c298c53bc7bc6925f95efd071101848dabd4f22e686d62392c7bd8e73747ae6db39cfc22e633afd355df40e61b314e6e9064e594b87872504dfafbf6 +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST xml-rs-0.8.4.crate 52690 BLAKE2B 140d4e725ae0e82c949838c1f6d82e1fbb00e2df4d51b74486597302d4a434ccb46bbd6f5e97636b4947c0092793928c29837a3290bb525344e8a27c0951a42b SHA512 b21b0db9ee7cdfddae7c110e4fec714d719e75ba139744c290692d660caa425aa8b1ece644deb5f1879f21c0561b9b412b9ba8931f7f5b4e220ef08f8a7fc5e6 +DIST xmltree-0.10.3.crate 9219 BLAKE2B 82f888788e7001caa39dc32f5233b41e52fc247e0dc59f9297fb4e104d45de9ffcc5859cf3f7d8ef81562b16e88275ec14d245abad95f6d2bdb019850eff9f21 SHA512 e5a1f349fddb13fdfb56c65ea7a77cf28108cddfca0164a858b314942949309a0cc95d824d4c535339f75f7a16a744fb7679739d4fa64fe6c2dc64e71604cdd7 +DIST yaml-rust-0.4.5.crate 47783 BLAKE2B 3e888c5cc7afb43eaf3aaab2b6f47b86df164a66eb54d4e166b965cc84b1e06cd17bd992a0d6ee175d9a73a76e2b44a13167246383ed054afcf3cc1710b309cb SHA512 7621dc8dfd5e7d4a7a8805b2a7e8319b63b852367655f2359d4e3e8fec6c4fad52d75c46ce1161e4c674eac0780b757ce9d34e664e304d8d2beec7afa0363ea0 +DIST zeroize-1.4.3.crate 15573 BLAKE2B 0ebab6e501bcf32c19ea88fdf038c97468b504c5035b2f2477372326e114231e5c959203b2bc897228a05b19ee510f1264d4fad5e33c5539b5c8bdaaff28889e SHA512 c4f3f10790176925fb90ee6325a50c710ff220bb9d37d424e28e8d8de5f801f2ef5fd687f0b720c471ac9e99e02e26011afcc4ecdd10a8229f70bc71a3815002 diff --git a/net-vpn/vpncloud/metadata.xml b/net-vpn/vpncloud/metadata.xml new file mode 100644 index 000000000000..bf47afa3e1e8 --- /dev/null +++ b/net-vpn/vpncloud/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <upstream> + <remote-id type="github">dswd/vpncloud</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vpncloud/vpncloud-2.3.0-r2.ebuild b/net-vpn/vpncloud/vpncloud-2.3.0-r2.ebuild new file mode 100644 index 000000000000..63d0bc271fcb --- /dev/null +++ b/net-vpn/vpncloud/vpncloud-2.3.0-r2.ebuild @@ -0,0 +1,183 @@ +# Copyright 2017-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Auto-Generated by cargo-ebuild 0.3.1 + +EAPI=8 + +CRATES=" + ansi_term@0.12.1 + attohttpc@0.16.3 + atty@0.2.14 + autocfg@1.0.1 + base64@0.13.0 + bitflags@1.3.2 + block-buffer@0.9.0 + boxfnonce@0.1.1 + bstr@0.2.17 + bumpalo@3.8.0 + byteorder@1.4.3 + bytes@1.1.0 + cast@0.2.7 + cc@1.0.72 + cfg-if@0.1.10 + cfg-if@1.0.0 + chrono@0.4.19 + clap@2.34.0 + console@0.15.0 + cpufeatures@0.2.1 + criterion@0.3.5 + criterion-plot@0.4.4 + crossbeam-channel@0.5.1 + crossbeam-deque@0.8.1 + crossbeam-epoch@0.9.5 + crossbeam-utils@0.8.5 + csv@1.1.6 + csv-core@0.1.10 + daemonize@0.4.1 + dialoguer@0.9.0 + digest@0.9.0 + either@1.6.1 + encode_unicode@0.3.6 + fnv@1.0.7 + form_urlencoded@1.0.1 + generic-array@0.14.4 + getrandom@0.2.3 + half@1.8.2 + hashbrown@0.11.2 + heck@0.3.3 + hermit-abi@0.1.19 + http@0.2.5 + httparse@1.5.1 + iai@0.1.1 + idna@0.2.3 + igd@0.12.0 + indexmap@1.7.0 + itertools@0.10.3 + itoa@0.4.8 + itoa@1.0.1 + js-sys@0.3.55 + lazy_static@1.4.0 + libc@0.2.112 + linked-hash-map@0.5.4 + log@0.4.14 + matches@0.1.9 + memchr@2.4.1 + memoffset@0.6.5 + nix@0.14.1 + nix@0.23.1 + num-integer@0.1.44 + num-traits@0.2.14 + num_cpus@1.13.1 + once_cell@1.9.0 + oorandom@11.1.3 + opaque-debug@0.3.0 + percent-encoding@2.1.0 + plotters@0.3.1 + plotters-backend@0.3.2 + plotters-svg@0.3.1 + ppv-lite86@0.2.15 + privdrop@0.5.1 + proc-macro-error@1.0.4 + proc-macro-error-attr@1.0.4 + proc-macro2@1.0.34 + quote@1.0.10 + rand@0.8.4 + rand_chacha@0.3.1 + rand_core@0.6.3 + rand_hc@0.3.1 + rayon@1.5.1 + rayon-core@1.9.1 + redox_syscall@0.2.10 + regex@1.5.4 + regex-automata@0.1.10 + regex-syntax@0.6.25 + remove_dir_all@0.5.3 + ring@0.16.20 + rustc_version@0.4.0 + ryu@1.0.9 + same-file@1.0.6 + scopeguard@1.1.0 + semver@1.0.4 + serde@1.0.132 + serde_cbor@0.11.2 + serde_derive@1.0.132 + serde_json@1.0.73 + serde_yaml@0.8.23 + sha-1@0.9.8 + signal@0.7.0 + smallvec@1.7.0 + spin@0.5.2 + strsim@0.8.0 + structopt@0.3.25 + structopt-derive@0.4.18 + syn@1.0.83 + tempfile@3.2.0 + terminal_size@0.1.17 + textwrap@0.11.0 + thiserror@1.0.30 + thiserror-impl@1.0.30 + tinytemplate@1.2.1 + tinyvec@1.5.1 + tinyvec_macros@0.1.0 + tungstenite@0.16.0 + typenum@1.14.0 + unicode-bidi@0.3.7 + unicode-normalization@0.1.19 + unicode-segmentation@1.8.0 + unicode-width@0.1.9 + unicode-xid@0.2.2 + untrusted@0.7.1 + url@2.2.2 + utf-8@0.7.6 + vec_map@0.8.2 + version_check@0.9.3 + void@1.0.2 + walkdir@2.3.2 + wasi@0.10.2+wasi-snapshot-preview1 + wasm-bindgen@0.2.78 + wasm-bindgen-backend@0.2.78 + wasm-bindgen-macro@0.2.78 + wasm-bindgen-macro-support@0.2.78 + wasm-bindgen-shared@0.2.78 + web-sys@0.3.55 + wildmatch@1.1.0 + winapi@0.3.9 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.5 + winapi-x86_64-pc-windows-gnu@0.4.0 + xml-rs@0.8.4 + xmltree@0.10.3 + yaml-rust@0.4.5 + zeroize@1.4.3 +" + +inherit cargo systemd + +DESCRIPTION="High performance peer-to-peer mesh VPN" +HOMEPAGE="https://vpncloud.ddswd.de/" +SRC_URI="https://github.com/dswd/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + ${CARGO_CRATE_URIS}" +LICENSE="GPL-3+ ISC MIT MPL-2.0 openssl || ( Apache-2.0 Boost-1.0 ) || ( Apache-2.0 MIT ) || ( Apache-2.0 MIT ZLIB ) || ( MIT Unlicense )" +SLOT="0" +KEYWORDS="~amd64" +IUSE="man" +RESTRICT="mirror" + +DEPEND="man? ( dev-ruby/asciidoctor )" + +QA_FLAGS_IGNORED="usr/bin/${PN}" + +src_install() { + cargo_src_install + keepdir /etc/vpncloud + insinto /etc/vpncloud + doins assets/example.net.disabled + systemd_dounit assets/${PN}{-wsproxy,@}.service assets/${PN}.target + + einstalldocs + if use man; then + gunzip target/vpncloud.1.gz || die + doman target/vpncloud.1 + fi +} diff --git a/net-vpn/vpncwatch/Manifest b/net-vpn/vpncwatch/Manifest new file mode 100644 index 000000000000..3d402cafbf2a --- /dev/null +++ b/net-vpn/vpncwatch/Manifest @@ -0,0 +1 @@ +DIST vpncwatch-1.8.1.gh.tar.gz 14870 BLAKE2B 4a822ce784a059aaf3e5c267385547b98db579750c533b91d32063758e5a8d606ec1773a856ced961d3e3b0fc16d40e40522cee466bc68572a394c06b71872a9 SHA512 1f5b151c158061cc5879c2e3b6efa6b7a239f590d47e553bb349f842f0b7daf79a1719b912a7e239d9323ba98686ad4e095dd1bee90dd379ba0bdbd75b6bb6c6 diff --git a/net-vpn/vpncwatch/files/vpncwatch-1.8.1-Makefile.patch b/net-vpn/vpncwatch/files/vpncwatch-1.8.1-Makefile.patch new file mode 100644 index 000000000000..19f5266a0189 --- /dev/null +++ b/net-vpn/vpncwatch/files/vpncwatch-1.8.1-Makefile.patch @@ -0,0 +1,18 @@ +--- a/Makefile ++++ b/Makefile +@@ -10,13 +10,13 @@ OBJS = vpncwatch.o proc.o net.o + DISTFILES = AUTHORS COPYING README Makefile $(SRCS) $(HDRS) vpnc-watch.py + + CC ?= gcc +-CFLAGS = -D_GNU_SOURCE -O2 -Wall -Werror ++CFLAGS += -D_GNU_SOURCE -Wall + + # Update version in vpncwatch.h as well + TAG = vpncwatch-1.8.1 + + vpncwatch: $(OBJS) +- $(CC) $(CFLAGS) -o $@ $(OBJS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) + + .c.o: + $(CC) $(CFLAGS) -c -o $@ $< diff --git a/net-vpn/vpncwatch/metadata.xml b/net-vpn/vpncwatch/metadata.xml new file mode 100644 index 000000000000..3b461e20292d --- /dev/null +++ b/net-vpn/vpncwatch/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> + <upstream> + <remote-id type="github">dcantrell/vpncwatch</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vpncwatch/vpncwatch-1.8.1-r1.ebuild b/net-vpn/vpncwatch/vpncwatch-1.8.1-r1.ebuild new file mode 100644 index 000000000000..cac70876627e --- /dev/null +++ b/net-vpn/vpncwatch/vpncwatch-1.8.1-r1.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Keepalive daemon for vpnc on Linux systems" +HOMEPAGE="https://github.com/dcantrell/vpncwatch/" +SRC_URI="https://github.com/dcantrell/vpncwatch/archive/refs/tags/${P}.tar.gz -> ${P}.gh.tar.gz" +S="${WORKDIR}"/${PN}-${P} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND="net-vpn/vpnc" + +PATCHES=( + "${FILESDIR}"/${P}-Makefile.patch +) + +src_configure() { + tc-export CC +} + +src_install() { + dobin ${PN} + einstalldocs +} diff --git a/net-vpn/vtun-embedded/Manifest b/net-vpn/vtun-embedded/Manifest new file mode 100644 index 000000000000..1b0ea88a0f17 --- /dev/null +++ b/net-vpn/vtun-embedded/Manifest @@ -0,0 +1 @@ +DIST vtun-embedded-3.1.0.tar.gz 188342 BLAKE2B fe266c7bea748a997c69df6390fb19da052e55ff4f7273415b5dce7d417dfe5f84bc98ad4c2f5726dc014b11bb0a2e7225287343a8f60338c83bd064f4dc742d SHA512 e51ce55bf7ac187ff4814f1a5e60a7d35d1171a049851c45020836b029ed078c196986a05940390751632c8e2121a95bdf5aaaa16743cde01d9daa013713f809 diff --git a/net-vpn/vtun-embedded/files/vtun-embedded.rc b/net-vpn/vtun-embedded/files/vtun-embedded.rc new file mode 100644 index 000000000000..b6aa17d046c5 --- /dev/null +++ b/net-vpn/vtun-embedded/files/vtun-embedded.rc @@ -0,0 +1,33 @@ +#!/sbin/openrc-run +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net +} + +start() { + IFS=$(printf '\n.'); # Set separator (IFS) to <newline><dot> + IFS=${IFS%.}; # Remove <dot> - The <dot> was because shells remove trailing newlines with $(..) + for line in `grep -v '^[[:space:]]*#' /etc/vtunemd-start.conf | grep -v '^[[:space:]]*$'` + do + echo $line | + (IFS=" " + read host server args + if [ "$host" = "--server--" ]; then + ebegin "Starting vtunemd server" + /usr/sbin/vtunemd -s -P $server $args + eend $? + else + ebegin "Starting vtund client $host to $server" + /usr/sbin/vtunemd $args -- $host $server + eend $? + fi) + done +} + +stop() { + ebegin "Stopping all vtunemd servers and clients" + killall vtunemd + eend $? +} diff --git a/net-vpn/vtun-embedded/files/vtunemd-start.conf b/net-vpn/vtun-embedded/files/vtunemd-start.conf new file mode 100644 index 000000000000..01de38322f48 --- /dev/null +++ b/net-vpn/vtun-embedded/files/vtunemd-start.conf @@ -0,0 +1,33 @@ +### this file defines whether vtund is run as a client or a server +### +### format is "[host] [server] <args>" or "--server-- [portnumber] <args>". +### +### [host] is the hostname to use as a client +### +### [server] is the server to connect to +### +### [args] is optional for both server and client and contains any additional +### command line args for that instance of vtund. not needed by most people. +### +### --server-- is the literal string '--server--'. nothing more, nothing less. +### +### [portnumber] is the port number to run the server on. +### +### +### you can have more than one client "host server" line if required, +### and in theory, it should be possible to run as both a client and a +### server simultaneously, but i haven't tested that. + + +### examples: + +### to run as a client using hostname 'viper'. +#viper vtun-server.somewhere.com.au + +### to run a persistent client connection using hostname 'viper' +### connecting to a server on port 6000 and using /etc/vtun.viper.conf +### as the config file. +#viper vtun-server.somewhere.com.au -f /etc/vtun.viper.conf -s -P 6000 + +### to run vtund as a server on port 5000, uncomment the following line: +#--server-- 5000 diff --git a/net-vpn/vtun-embedded/metadata.xml b/net-vpn/vtun-embedded/metadata.xml new file mode 100644 index 000000000000..8ad110caef2d --- /dev/null +++ b/net-vpn/vtun-embedded/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sigsegv@radiotube.org</email> + <name>Jan-Espen Oversand</name> + </maintainer> + <upstream> + <remote-id type="github">leakingmemory/vtun-embedded</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vtun-embedded/vtun-embedded-3.1.0-r1.ebuild b/net-vpn/vtun-embedded/vtun-embedded-3.1.0-r1.ebuild new file mode 100644 index 000000000000..87ea0d015f47 --- /dev/null +++ b/net-vpn/vtun-embedded/vtun-embedded-3.1.0-r1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info autotools systemd + +DESCRIPTION="Create tunnels over TCP/IP networks with shaping, encryption, and compression" +HOMEPAGE="https://github.com/leakingmemory/vtun-embedded" +SRC_URI="https://github.com/leakingmemory/vtun-embedded/releases/download/v${PV}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~sparc ~x86" +IUSE="systemd lzo socks5 ssl test zlib" +RESTRICT="!test? ( test )" + +RDEPEND=" + lzo? ( dev-libs/lzo:2 ) + socks5? ( net-proxy/dante ) + ssl? ( dev-libs/openssl:0= ) + zlib? ( virtual/zlib:= ) + dev-libs/libbsd" +DEPEND="${RDEPEND}" +BDEPEND=" + test? ( dev-libs/check ) + sys-devel/bison +" + +DOCS=( ChangeLog Credits FAQ README README.Setup README.Shaper TODO ) +CONFIG_CHECK="~TUN" + +src_prepare() { + default + eautoreconf + sed -i -e '/^LDFLAGS/s|=|+=|g' Makefile.in || die + sed -i 's:$(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtunemd::' Makefile.in || die +} + +src_configure() { + econf \ + $(use_enable ssl) \ + $(use_enable zlib) \ + $(use_enable lzo) \ + $(use_enable socks5 socks) \ + --enable-shaper +} + +src_install() { + default + newinitd "${FILESDIR}"/vtun-embedded.rc vtun-embedded + insinto /etc + doins "${FILESDIR}"/vtunemd-start.conf + rm -r "${ED}"/var || die + if use systemd; then + insinto /etc/vtunemd + newins "${S}"/scripts/sample-client.env.systemd sample-client.env + fi + systemd_newunit "${S}"/scripts/vtunemd.service.systemd vtunemd.service + systemd_newunit "${S}"/scripts/vtunemd-client.service.systemd vtunemd@.service +} diff --git a/net-vpn/vtun-ng/Manifest b/net-vpn/vtun-ng/Manifest new file mode 100644 index 000000000000..28b3bfac2f30 --- /dev/null +++ b/net-vpn/vtun-ng/Manifest @@ -0,0 +1,126 @@ +DIST adler2-2.0.1.crate 13366 BLAKE2B 3b28bbd7f89424567ff1bb36b984bf4fd767370459f5548545218cbe1c9f082fedd932fccc7e6acd83a1dfa06a371124801a772e5555ede7d6c2cd1ac57930a4 SHA512 555b2b7ba6f8116acccd0bcd16ed34cc78162c81023cff31a8566ffcd456c03832089fca2d5b668ceaac4fe8f922d31aa9c487f226a36cace294ff4a219bd91d +DIST aead-0.5.2.crate 15509 BLAKE2B 0214f3e8ee85a7e18c7d20f9a3fcbdbb9e5af6fdfdcb427e915279b505556dbd2df6d09d5c90561417c56796236a56ab24b2b11389745bc03a0a6da45c0e8636 SHA512 61926a615618e64efd0e9342d729a89f80d6e092dda50e018252a06147e2ca0dc2a989136416f57ae02019695757dfa3d3f3cf3799f138e440662744ecab4a44 +DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79 +DIST aes-gcm-0.10.3.crate 148991 BLAKE2B e1376b741386577277a8cb9535c1ad3e15ea383c0f324bc5cedff09a76b11f2c9e29226535688f9431e904bf2800b8e140c4b1cab333e572208eefd19ca897f1 SHA512 f9aec1e2609262c30921bf83cdd82117d147905d4ca311f9fef4b9f1734d3a57893ba2586f0ccfd39cf9264d347ba2c2d2c52b4726495eda8fec7fbec42d6db3 +DIST aes-gcm-siv-0.11.1.crate 26633 BLAKE2B 85bd16c8857e382ec7e49d07aa89bf3ff1f58851bb995c51034c2d5dae54e87a1a3c06ddbeea870bf0f424d05f99c54e979f620a95221a8493983f358ee37fff SHA512 fd1976cf80476eb631392a0446e1351157969bd37c99cbca52336a6a0e1095ce3fe577e84c0128f67b6c2dbe51e52a1f8f2f899948ad1b389f1e0aa3fe5922aa +DIST beef-0.5.2.crate 15275 BLAKE2B 95d60fb1840ca26581841ad65a4e8f3f99d5f8d44c569219f4d06ce441bb3a4ba558e231e73a51cd1c6b4d9e4cc6a07942115c134289fb1982dace03049d3a1e SHA512 755fc588acbf730bc9c80dbfc20cd0ef81f792a94da0dd28379ad83a7359ddd4c7b136ba8048dd460bb8652475db3d12814fcbd04eff4ebe8ec8a1bcd024c2aa +DIST bitflags-2.9.1.crate 47913 BLAKE2B b14ee41348336981ab86459417b9feab90879a11a6524a8b43f2b89c09c844b4441c31e315c471be00ad21fa88b5dcc7671b56567fdcd72bb0790ceeaa25813b SHA512 6baeac42e4227e58030e317125a3c23997beceb44f9262f029e59c6dc36dd1733f2e88b3c3c8ad22f806245ef404512a880b16f3c8c52fa5c4aab287bb3cfe27 +DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb +DIST block-padding-0.3.3.crate 8504 BLAKE2B d62481c25fd8680cdf0ad0bc259bd3777c3985ee91d5bb4995f484a15d4a9bde21c5d20f8c2efd0eb340aa0b8c7faac0f3fd817202ef4350d17994f478715eae SHA512 0849c99f2027f4e1a12872d2210310e9669f98929c99690febfeec90c0199b2274e20a5f83824f200f75f2553be2029ca85b0c5d0db4d9d477ffee9a71dd3b7c +DIST blowfish-0.9.1.crate 16734 BLAKE2B edb9ef86b168259d37ae74ca5f961d4a2f79f0bd83c64a157b1605655001a8e82a1b40b0e03a24719dd9cc273fd50d1ad6a406b47b1925a9c2c687c119bcae0c SHA512 e005212e2cd0233321f1e84170829c6e05b4f4e47b81342e0fef7e12ac05f09dc6db288b6b28ea2826e9d19afa49366b74b186f2f20db6da77b57f09e124e3a8 +DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f +DIST cbc-0.1.2.crate 23501 BLAKE2B c0d537af0323a92cd01a9ec197bbe46507835348e16dcec7360072226647abe2eaa4823023930da93885347fe1429acc2f9c079b7bcac686c1293ef73b91bf0a SHA512 d3b33deff64d839ad25141f1c3b5fbeaa21f71aee7b58dbed91e7d257f93e68073c8d4a63d4c4eb9775c20f00bb0ceeee714a8218e85a231f30cd7423022f820 +DIST cfb-mode-0.8.2.crate 25334 BLAKE2B e004871204d40258a052b7771f6d770f710857fd7355dd87ceaacff49ad0be2b3bbcbc8b439bff054432f336792e11e312b8bd472eca53e58036dcc4bd2f3286 SHA512 14bf9367317b2652cd070572f2a7d5f98884064a2d42c8841fe4a966e9944c8e5df3e14244c16a78a32ba8e2fa3df9348427d2f0ca6632df07fd24b75cfd7099 +DIST cfg-if-1.0.1.crate 8683 BLAKE2B 7d7f98e46b98e0f6fe069fff5dede72390adb7522f13be35c37f99713641e98dff87bd58e594908565a6f42ec898f11597e8a82a01ca2e8e65b38563e09956a8 SHA512 56af0d562fe60022e8df9c5b4e9b2eed6d7ca1874c4d3bbb52148d6f3c6f7d30e0b63d4b1e652ccfc8881a663fb6f450a48447d5a8cce0c2e5a2ac12c6ac655f +DIST chacha20-0.9.1.crate 23424 BLAKE2B d460d8f3e6424278fcebd90c987c5290abbb798a5a9915ad3355ed92d8ebd0058e3308eb914c8f7d3c277b2c310728f2f10b56d34f27305688f0ced2d65f8880 SHA512 3813d6f3c3d9dbd2f18aa660f32567378a79a994520c83d0b09795e4e4b161e2a5bf205e454021a6e33028e9f9f61e9b14f79f2c935c2df95d32eb1d732cbf83 +DIST chacha20poly1305-0.10.1.crate 68485 BLAKE2B 580cdcb819afaf514e920e7c86686cb397355fea531c5642c419eecfa131cf30118913bb0cae542f50bcdca775f8d5db1bab967d6d833e8012b4c2ba41e87b4a SHA512 8c2ff7100eff5ea953baf559b0984c5b5ac0dd231d8ff179688d87ca7812966d4cd64aaa0c56778f7a83c8138ebed4f2b87a2d4a005251f51e1fc8e74914d629 +DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846 +DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2 +DIST crc32fast-1.5.0.crate 40723 BLAKE2B 6e91ee57a1915c9a9f7305db24337f03cbe48fc60ef01c65ea55dfb4f1f60c9c93736d9b69efce3759d5504a1988bae7a2581a494edaaf27ee030e25e97c853f SHA512 80d473960f004148e14e5fe2f23aa0d1b8c36e96237f49a6765ef713030e8326dbc0250a561afcfc49d8733f5a6d4f9f4677451cc13e2426ffed61f8c00cd81e +DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f +DIST ctr-0.9.2.crate 18344 BLAKE2B 195dce5872a0f59b90bedc268c5a5796f3076d12868f29f887294301b3576047ea82098e73ae996f564e400ce316cf1cdd9016ffb714559aaa0465dc826f0cbf SHA512 6a027f4e3881e51e3dbcb89348c961a2086bb63e70652c49107f49b7d021e31f74ec8c6ae91fd1605928f93f5ffa27889f257c166669e18508995168f17b46a5 +DIST deranged-0.4.0.crate 23235 BLAKE2B 98179347407a033268eb90d18c75f555fd5fac273512bd08d55fd5e111e6160f23194073ac196bb47f27fea270e1c4ec67c26d38f189e58171d20ea808ab887b SHA512 212c6cc296846425e8b11aaec98666015ccd7fb0e2d0818a8708509ef51ab029ca6bfe4673b168ab0174e41e92b24e2c0e4da939c09b26059aa9e8d396284985 +DIST deranged-0.5.5.crate 24438 BLAKE2B e0e825fdae479fbfb057fa084882eb58836490b5158205d55b4adb593882fe70f10f9b1b6c2ebd3ab6a61673dbb3a56e4f5af32b154c645fff3b53a814e5e648 SHA512 c19b716727b904f1c3dcf4e0b5489ca3a7540925f2c633f827ce6fff7a2649bc22835b433fc06376dfd0fed48b232f70aa23b24fd0e834692f96f1d6a319f266 +DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c +DIST dns-lookup-2.0.4.crate 13733 BLAKE2B c28840a97de70192d337d078d0e04db5da0b0c01781bc245036dbd2931092c3e381a3792086fc0e84c6a1a0f92d0adf0366f41d4f48479a331a6de1e69af267c SHA512 4b2be29b927a8bc83e983b7caf24f3391dd1046b1d6b255e11edcc69338cec9d04fe5935bd01bed30fe2b551ed7f93585e92fac066e67479fe597acc6bdd87eb +DIST ecb-0.1.2.crate 6210 BLAKE2B 6e8ea36849f3deaf685c689823f2c276431d84353c8fc5ca02d5256aa36488a7da29e7b6d98cf9d402814581a507c306671b2d4b8ab34884b87858125276f812 SHA512 104c1631de32cee02291c3902a8e28c704d843cc12d3765f53c892d67e3a9429b340bee36e763e1bc929f18e1180a04ffce30d3f15407decae7a834da1ffb408 +DIST errno-0.3.13.crate 12449 BLAKE2B 5eef631f0f0fa672d415a7b3702bb5af52597169d9ad830ed5ac5e3592bfb2fcf315e2eb1c894fa69233c6228e9a614b9e5d741b943d03b70c86395fa0dbef78 SHA512 605cae4f6ea34072850be76733bdb376eaeef230f816090fddf83c9205bf7f99bbabee141ed628ee891f63f9ebb303633db3913f6fe4fe259fbc4bcf9789c339 +DIST flate2-1.1.2.crate 76495 BLAKE2B 0266329bcd766be392e09ab75a135bea7cb44e9d9f1eebcabbd4aa3615d66688add24628326dad8e0e03182f0a4d65a3e23db9e7ea8c71b1775d575cef3f1e8c SHA512 467f7d6680510cf3c960e4e466876a97e5416e3605e0d4b52781547295e52f2b0e778fc06a6636ff43d9f6e47734e5835172178c4d6b85bbff597f8748d0d87d +DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 +DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d +DIST getopts-0.2.23.crate 21409 BLAKE2B fbe2c229f7aff2bdaac17ff5c670363c135e69651cb924af1950d79c7eace1616a30425a181cd0116004ca8167bcb1364e208d92ad16a2280f1e77798d680657 SHA512 8d4c08e88a8532d107052c34305b6381e8759958a12eafe8791816fbed85e405fe901aa11c8a8e0110a6d44f87cd1f55a332d2c76c7c12d13a86e00731842e43 +DIST getrandom-0.2.16.crate 40163 BLAKE2B cf95b380a610313eaf068fa210bdb4a9e0b9211321d708f9877cd9e1901df0f6b7f57462a4937da3419c7547ef300291deb5367f4dce4ff776e7f0d9d36dcd8d SHA512 6391d5322f8ce2ea7d14062d378ae2ffad66622afd58b9f1732e5314b27d3a554c8a008f6d0d133640f11d769ac51ea4acd24e40259e14e2ffce93d5c3c1eb1e +DIST getrandom-0.3.3.crate 49493 BLAKE2B 17bf881c1ec8e70b263dad11fbb307484d7ff6a7bb6c0ed217730c0a766adb3a19e6633b28cff9eb7c1f9deea55a647ad53636533c392a5c39ac82e26623a18c SHA512 8188d8fab05e8bdb3918eea6fc6f89aaf3767f8350fa953aeadfcdf24a513bb4e0d464853a264939bf2fa17f95ebd4077b74d813d587a7368072c5d7748c4c5b +DIST ghash-0.5.1.crate 9482 BLAKE2B 77510c9a42ebc486e35cda6893e7f9f464628d6e4ef2f2f1adfe5d6371dc2f7e2d0578665d02dc5647651a96f3f06ed9cd3825caf462d70a740c9e937ac8cb50 SHA512 00041605bb458305f0fc54d2c8dde2cae672451646fc41a94dacf83950ee44f75464a926439e7e6d1ca3ded05a9b697138f62fba6f4e86ea3df034ad7240af06 +DIST inout-0.1.4.crate 11280 BLAKE2B 557fb7818cd5e5b8a921fb456028b1d41b42ece0e9824976e83b577981e5c5dec30ed0acab903ad85b059ac40cc8b0f117c1810221dbf2362ffddebc85537373 SHA512 683ef612191d19a867afb1a622a30ceee8ae720df432132293c7e967ad1782190ad973e84ece7fa52a5d1ec7f4d8f078f56d818ac07fe7268547deb5b2399370 +DIST itoa-1.0.15.crate 11231 BLAKE2B 17c261baf95bff2f6cf0dbc33ab78ebbab0cf5dc56aeb7f8977377af868deb5957918f1763c2fe8c080e931489ea89ebcc16b3ebd976eeeb7663ff74989a1071 SHA512 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42 +DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f +DIST libc-0.2.174.crate 779933 BLAKE2B 20ffcbbcad6961e732521940f0595039dc0576d85b2d3b2ad3f1decd37571132a4cd7505b2e108078a4379fc4cec46290b5633bcbcc6e7009c3b474c1a852628 SHA512 243f2ffd5741ef859e4dc5b7ee0396071943b1d10429efcaecb322957e256c4be88a7a649029dfd47e6456acc73ee257893fb6c4e8b4d0fe66a12bc5d1c13c73 +DIST log-0.4.28.crate 51131 BLAKE2B 2911509cabe6a69b60945e798f2afee934d865d21efa22d150288de6a27a797fe00ee4f249fc6f6d7a02e2efb7377d2a7188a8ed8cb692f76b94a0df56d74d83 SHA512 cea74c92c80f291360a7cdf022e3ce2f509b9051b415840ab2a159585384f3fe606289da00a6def0c3d666416c5fcda865e2ae4ad48df07618818e8486cd0209 +DIST logos-0.15.0.crate 1542531 BLAKE2B 823e6e6486071bcfd0a9d6e7be4ad11d0fcd207aa566d008cde974e8de7081d86943279b2aaa43e2f45c0650af18b38520035f8a971c40c7bf05a013800ad7ae SHA512 1563c17df813825948d068cc806d06cc0dfb4ab026ac2b697af8f127d25103da9e17e7938002f67422f2267dd3bb02e836898a8576a5f019911568c0f99a12aa +DIST logos-codegen-0.15.0.crate 43103 BLAKE2B 6c6f5c7d01932b16e59805cd042b67edff5a4f3235316a59d18c02f90fa978dda0673ebe0e70a7bae1e02105dcc710e3681b8e10204499737ee8184607c9fc7d SHA512 64147154e34f35bb3e173ca6c284fa3a680c211c71fcda3321e179b422992e98034f6d2aa0baab295efea91814083994536d9c800f559ca910c1a3d5ae5fd375 +DIST logos-derive-0.15.0.crate 7187 BLAKE2B ceb7e32d43f2f9fab7c3dec5b5210edfdb33460331aa4f897827f26d520931242246fbcaf887be2a05cd8f396d43254b32cb2d834f4fdc3b25f60d30d33c4b0a SHA512 a7eb92c595521f838816fac14b67f15167d1d876f96149b6123ad711c7910df8a7f984fd5560ffacbc56287aca19297f6bbefe407708ebdaee2bea4a8e21ee45 +DIST md5-0.8.0.crate 6984 BLAKE2B 8b5c3b0dcb7eda50ecbe75572e5487d8331d7c3fbfbcb1239993e00131b7d05aaf9d0c9f6cfcc52f0473d94a4c3ea8b98b4f8ad3dd37c6e4348c398b0bd98017 SHA512 c06dd35a9b484b9d7062cb45af9e779c949657c85bf6b785d2bbe423982c83c471fe98e33e0feac39db44ba30666de30ca0e030fa6f6e7fccf83e6d918b8a817 +DIST miniz_oxide-0.8.9.crate 67132 BLAKE2B 1a11c5aeef43ac93635942e0c4f17538150f8307fb280b0d66436e4b6697638f0b1bafbdebb377a5dba14a75f213024201e325747419623e5f7d57060bba4445 SHA512 3f6fd786c5fa5b4abafaf21244dd4830d26688d5b6975522bda595206517f354d92d13fb95235667cbc39c0275371c737164d9c7a58e32e09da86eed2f239242 +DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100 +DIST num-conv-0.2.0.crate 7034 BLAKE2B 903495ef172da73d40e6f3f2480b7c6ec4f1a45f05151e2c6ac5676159485270cfae0f48a6326de700fa02b00dc3dcc746681c2a16b072ccd129f2a1cf8e3ded SHA512 5d17b59e4c76ac7732d7d218da18d83dc99fd1f5c396c054d7e40a583a2fc3d15dd9e545d968fea61cdc8a4f7eb2592fd5c02ba734e3361b6ee2686eb9a57fd1 +DIST ofb-0.6.1.crate 24116 BLAKE2B e31bba2cdb73948715cfbac889539ae81a77893ab7510bb1b240c4468fcf82ce40e2540c60dca2b64941596681e89b3cadaf6475257cb864b9502946812d8aa2 SHA512 5bb582e2f3fc13dfebd9e4921b3b561eac83cc15b810fac108ee6426ce3c7dc7cbcd80be1a5838c2fc50632bbf9fb82faaedd8016bd81d65f440a980c3e09a5e +DIST opaque-debug-0.3.1.crate 7066 BLAKE2B dc1dcadbb5654a5f69c59b84faeb3095f008a6eb4f63e3cff95bd4e97f803201e2f16f59a65f8ea21b662e77e3fed0d0870eb1db7f5a4f95cc02422907732951 SHA512 f325214d604e74197ddd9209a596851c5bf0c0f3299b79b6267c35e0ff6351205b628fb5086279684fbb29fd07746c91ede4f45019657e761d8400fef2b3d8bf +DIST poly1305-0.8.0.crate 32633 BLAKE2B 80dd7526a31112de4ebb9ec800456c1118b588e7aaeb879ef4b1b93bc34ec9f9f8a1451259ff5da7a1c97a5d94ecf6be648e86aedd7e55ea501a94f314aa863f SHA512 0081afdfb9ae16b24ca9cd78c17d72b2bde865dd58f8e66008934cd2e4b49dc96b57a612b9c53e466f3f896d10ba9f61956ddc225cee7f128fd9f84a27ea6966 +DIST polyval-0.6.2.crate 18425 BLAKE2B 59ae2ec631060ee8e2e1d4bc250abbb4762c97ca7ba5c543c0292f561bb967e059410ad7e79d8dfd7912cb30a6284169ecc2f4c94bdb165037acf8c3eaf1209c SHA512 113646edef3a7f60d59db3cf06c1796bf81305b66835c71bbce0fdc07345f41e23f2bbd7d5cebc50c72eac11c98f351bc793e2f568b5fc0bbf9fb2597eb44f0d +DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029 +DIST ppv-lite86-0.2.21.crate 22522 BLAKE2B 150b2ae019f296dc0a15090bcabcf4981bc58159d592b07da729565ef8976e3d1b4416381c6ecaac77874d8e259995254255c8831861ac20922b810753128cd4 SHA512 94710d5b25b67539cfa828476367849e1ecaca744f2e0429b48c05b47ec48cd57f950fb9845a361fbfd96f361ac00fd2d47cc27c584b79ce3d9d8fc133f5b7bc +DIST proc-macro2-1.0.95.crate 51820 BLAKE2B 93229d80556ec03bce4031607d13c7902cacc2d7e2586a692ffe8543d52e3f3ba253c9c311ddedf6d9348ce8758ae8ff64577675cda2dac557f936a328de47e3 SHA512 f78e4d47ecd29c1b2315554705e445507bbfb9449afd0bf1b74df28f266ac6382ca8c3ce135ddc55c989eaee64d1794a0933a941c8ff55f543fa21c400016547 +DIST proctitle-0.1.1.crate 4783 BLAKE2B 93f68eefec31a72e7e9b3e323dc5587b47f1f72cbe52d721f3cad79a26dde505036cddec2fd82811fbbc3d2720148d10dfb28729cdbf325bdc0a91101884fadc SHA512 fb3e226e473f733f4e43d6639033cf5d9bd1108fc571ff5ee021246d4bda3f7eda856854e34fd3368cf822b76bdb6829c089c056518d246cabfac4e82002d4f2 +DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99 +DIST r-efi-5.3.0.crate 64532 BLAKE2B 54bc882e333f7ba52b6dd6ac92b8a282581c10b47de91a4c4b71b15a27b2df885ab52ae2fcc8a546367ee1ce98300dcaec3c33cbd7393b134383528540bb7d14 SHA512 e748db9729dbddf215d5c37630fa272197dd2921297800209ca7bfcd6ffd8530b598b944d95547ad9723655cafdfb69b1c1fade9ba5f8c2ac5c55ec38258fdad +DIST rand-0.9.2.crate 99930 BLAKE2B 4440c21211e3c09daf8797de5ae1c7c461ead207456ad0a0405c6da266de51427dbd68090c461f1a349a04064e4bdba8151656e2e9f7c17be1f4aaeec1e26f3a SHA512 91faee823d9a3b109135182b9566e6327881736359c9d68358ad7dc78eac1e845c553820e2450ca481cae1e0969ec6566e72f7f9233251b1f9133449306f2965 +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 regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8 +DIST rust-lzo-0.6.2.crate 16769 BLAKE2B a92965a981c3ee269f191b3d8604c723db2a5caec639e3e312e570ad5886d8ff4efa0a28403e70717c1a2657583751d3fb37970f92c71f9976fe88e0a4552b50 SHA512 c4d1ac9badc8b237ff2608334fb4a248ebdd04b5e425cc983c1f261d29085ec8bf1b1883123d99c04b76504758e6a9957d51ce975325b8dc89280f6373b2b811 +DIST rustc_version-0.4.1.crate 12245 BLAKE2B 0ed627c560d88e5ade830cc5f72c62f6ba88be3e30d0f8db34761fcd0b284e5b2fc063c240149aabdfb12c8410ecdbe50cb10a3544500b5a020f95a31cd6709c SHA512 7aa8a487ca7411b6d23cae62f7568fa3474a7b1fd1589621071be3428a550ed3b7c4ad68277a8f86849e5900397d7d0e9d678f5d423742a045dc7c660fa6c598 +DIST semver-1.0.26.crate 31303 BLAKE2B f99e282e2bc7844a451a4f600308840c4a96dfe032fad6e897e9ce66c8b5ee44ace8f94f93dc50a53792c8c485fa81dfa5477255c211017f06937212d9473dca SHA512 2d2c5edd771b67a9e32664255cc4c4eea8c9a6a4ab08a8ed968a493db70774b393ae98e20be0a87ff60149b7c142a01acc0ace28205b41b39320d63fd5dc6155 +DIST serde-1.0.219.crate 78983 BLAKE2B 7e9542a04c7f1aeff95b821245034368ff1721d98d7138bb1e0a99cdd6436dc37d69606308834fd33daaea3a1792409b3b2305b802433fa1d155816c55ca2a7d SHA512 0d3fe9a47af027d0d79499e60d940661dba6e29e8f0ce47d0db2ab722030d255aff637248af6f893a9c4224239733db09ffcdc6e1923a7177bfae55c98ebe769 +DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171bf337ec16bb1223075cbf81b6b85cd1c8d19abadf42460d0fbea323e2f351eeb6ef823389d519121b74e68edb215 SHA512 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4 +DIST serde_derive-1.0.219.crate 57798 BLAKE2B 071f02019f829a2753769ce915d11df8f0d202ca67314fe83b42e1f1f3d07bc91b7e7c38fe498a0513714f80d3a3dbf2b447b1f85762de06dd021119801afa89 SHA512 1676bbf09e11273705a35c540d52d35d1bba7cdf1f347d40a364d7ae9269167f9f0f62ff4fa384aaa613c83e432a8eb3c016587ea643bb11434c00664a5c116b +DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003 +DIST sha2-0.10.9.crate 29271 BLAKE2B 1d614e0efe085cdb40e05726578a9b4ca6bce93f6d3324f5dc0444cb37054912cdaf5d28d468eac2c0046030d920fced2ccd006953b80865ce8a2d43ef3daa81 SHA512 963adeeb4ed8b0e7fc19085e8721ea13e9b3aea5d115ca1b3dbca495ad14810c6450991dd3753807c293c415aaeb1054b8b4124c72e7090cd9e86f09fcbb4f80 +DIST signal-hook-0.3.18.crate 50862 BLAKE2B a0ae80afc2de0e3eb8b3c10241617cda08dcf2a6c06da3b385dfaf098ea4fb6c14f5d1aa6720325cff15d8ab195bf4d05966dc5a9e7155a1e43fcaf238ffb654 SHA512 1955288d7f47738007252ac2aed0fd05d1c16f1726ae2a97ac35b0ba5a6a82620b26ecc03c4760b12d86d4b83c7484a3830aa84530dc010d398fff436fda3137 +DIST signal-hook-registry-1.4.5.crate 19004 BLAKE2B 6537f8523aa03e3941bdd115b35716c62ea523a67f99662e28a2d384a5917c43c68a3a26ee9af82ca44f07494ddf39a5ddf2cbff22b0e0a9fc917cf72bf57b5f SHA512 8e7c41c4b57bc5ecd6cc16e6ea8206af0005ba1e7640e2eaabe84c81312c400c74efc229b563f4627fb7d167cd7bb43e0d2d75ae5b8c545ec9ef43f967ba838a +DIST socket2-0.5.10.crate 58169 BLAKE2B b3e6c1c4e20fea2951f07f74cc75fc46b81a6a94a02a3aeef27f2be0bd6ef996ef911c421d84f660bae4f2565dd74b8a0e708da965a4c1deaa273d9972974362 SHA512 901ad0549e2702a0062040fb5c9e5664f4456c9f065f8f8ab7ea16342d83c2ff69b087633642e08e2f51a63e2ce186c45428936118a78fd4f15378910bfa9d1f +DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd +DIST syn-2.0.104.crate 299699 BLAKE2B f64d2267abe9140456dd31d52ada0c75bfa3e4e0112ca77491245e9e84a0530f6c7cdc7428b73cf567a65ef6e7727f814fb9cb34db0ecc9cc3afd05b69fd36f7 SHA512 da532fa362266161b5604c821c913f8f990eb32c18e18c0a360b7147b9f71ae008e208f377cb203e85818bd5db926951122a971fa97563a10678f0ba4671e64f +DIST time-0.3.41.crate 138369 BLAKE2B 1e6e22c973dc33c950886e9628864dfc07e52dd05fb6880ff233ee4815f41172374af9672c44d53c56c6ba1ca38c53315ae1b4999f1fea3706562880481ddecf SHA512 be43d521ed6bfff6331d614112877b0b68d99ee7bad8533dc0d49193bb130f25c933bd7c9b6af873de252f9aba59becb47ef72774ee2e57de106b6f34b646170 +DIST time-0.3.47.crate 225161 BLAKE2B 11b19cedab54f06763fdd710c273d0cc3bc4de1a7e39dba9657c860448e93d22d83552f858699be3a5f4aee4cd888b959c05f90d5c24208610dc4d0dcfcf3df5 SHA512 c43decfab65f62b7719f9b2b4bf6eb80fe3ed80f670e1b47aa0879baea403aa19557506ec9433df31ae9fe9cd92cfebfa237c9b2f5dec8d5eb093c54bb815f76 +DIST time-core-0.1.4.crate 8422 BLAKE2B 3c9fd96b77b2d405ef696d62d18639945b81d1c8d84f1613f440a4d61a373f767aa204cf557f82d41a990cb74e952b5ae51e467f9ad0eca0175bf3cc4385dee2 SHA512 677e6b67081901b2f0bf2856a2cc29ffbb0ec3a4363e6deaa3082890f4972669f30cb55863462d8510462faa6dd698b013e04921a0657005633506b51dbef531 +DIST time-core-0.1.8.crate 9634 BLAKE2B 6fd5acc286636de923ea527874c02acbc31577ffe0f15e2d89de5d1d2a9c1551c68ebe392667cc8d34434223484da792c0bf967f5b362d1784818b016ddce0ee SHA512 cf9f2d5da0fc1b61ff53c11476d9a73e76740dc166ac0b4c4953e25d63971c5471f6e3bcd6d1287394fac44fbbaf6d855a09ee694d845bedf693e6b8a517c9fa +DIST time-macros-0.2.22.crate 24604 BLAKE2B a511923e4c8d790ed422e4635244796154b6893a3dfdd32e9b960fe0a12749a23656335573b42c1245984988382e6991e242830c770378580a61e9f451bd06a5 SHA512 7633ea40338364add29e7cf6beb7f2e9c441a8fd6079fba9b9fd13dcda6537c2ccbc3091cb6551715649d13080567fa26ed6db4e4b3402736105f526da2f45bc +DIST time-macros-0.2.27.crate 25144 BLAKE2B a308949ecf582451a01669ac0468b74231e6b466da44c4dff864baa22cccf33ad64ba3c80a75afd4c19bf983dee11b157fc973d9e4fa78a614bc98951506b4bd SHA512 5caaacc82e9b73bd3891e55aece04ca3800884f9e52c01d5f9a62fc9e554940454df713d903854c68b85b5a43c7fd8dc8e7047f596be72f86952cfdf9323a818 +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-width-0.2.1.crate 279344 BLAKE2B d4128c165016a76196e0eda9cc4a0edccf326cc3c7ecf0e1b43848446e758c703e9a9e843dbd256a523e1654ae3faaf6c172e21b0b6324757610fc5333c56e8e SHA512 705ce2ca2964761d9fcf014ef5ad9af2973b5f7c0c3561fece10378d817135afc5f24b9ac16290b98edecab77a01ddee9ec8dca5bd2b4eaec1f3124065ab8708 +DIST universal-hash-0.5.1.crate 9146 BLAKE2B 9095f95faa8ed4128c3787226f3899acec4278d36799ae30a7ca71ade7179c274a1807f62605e687e60ee97e6bebfe818100ed0441db455bdee0f8e5dd451809 SHA512 83b3ddb1f0d7ff621ca2b3d426c2e682d8339a2adedbbbb3a4584977e2e996549d665578729bff65b5693059460e9e04b9df2181c404980d3b3d946c80e0b589 +DIST uzers-0.12.1.crate 29272 BLAKE2B 1a79446814c636702a8845291c8f0add0a0a6b468de8e07a7d8fc5bc3098490e48125abc809c0f44a9e47c9becb4806e29dcf390a6311f952de35a886b85d721 SHA512 93c4160bfcbdca57a3c945b73a94d1ba8612e0258950f7c10307dd57c838a0664890cbe34a98649c18fb783744423a7fd240da8b5eabe1e660a533e9b32f6260 +DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db +DIST vtun-ng-3.0.22.tar.gz 106935 BLAKE2B e301c63c386dd0f1dc791e643092edff2dbc2b05b6224a67df98640a86d524c64e70bcfd42ac18ea4b0ff89b411183f7bc9ca42a5d379d355a68fddf153628f0 SHA512 1ab90287205d44410b67b4d5bb752781d6fdcddb7d082e4d1ac4e0ee4b6221b033325c1b115e9a5106d7cbfc74eca35e544c196cd68f1cabe41c566ebd5ad7af +DIST vtun-ng-3.1.0.tar.gz 106055 BLAKE2B cb884be79d67c6fb49312ae2fd0c4d7bfdcf5861bbcfb9eb489cec06b9e0c90e3e3b188d0bc481f8ecbe774b915b393d9a1c2f8e82dd8cecdfc7756d90060bbf SHA512 adf38736d2a3e5229d48c9ec8896e1b07e3baa86847001b9893a62be7b1226d146d1ac00bb1209eb1db799e8ffc1315d4c17560ace5457af2de2b46a8f178339 +DIST wasi-0.11.1+wasi-snapshot-preview1.crate 28477 BLAKE2B bcc773ba28cbe8d820e9e9fbb275fb4451bc7f39b3bd88bcd93850bf2bdb5300489bd8eca27489ccc5f6269b00f4e1b505ae3a33a35d708cd5a414ad307be149 SHA512 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49 +DIST wasi-0.14.2+wasi-0.2.4.crate 140921 BLAKE2B 6b3ce7cb8ed888ad65053352b02b827bced3b59118d546ba593ffa9de48305bef62419751036e22b0f95c22fe34ea1d7bdf7fee0f6981181026d1eedfacf73d9 SHA512 57e47ba27fb2b66b34f017c85743b99687eb8bcdc1312fb36e30d0c501e670f00dc7d6113730d819364abef5e8ec04d95f0d1150ec2b6049e605fa8bbdaa2cb3 +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed +DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03 +DIST windows-sys-0.60.2.crate 2518479 BLAKE2B c2e2f614066e5a9d7ec461d9d25bd441188797ad85e1e923baeb0193e82f5c138ae7fb4ad0255d483f60f7a94e3f5cd8373d01b7485c052c9498937bc40da992 SHA512 a48aa1b66479451e431032737b63dc62eac6f63c251534e258de75bbee4858829faf5e641756566f00e153b08548ba32beb437b5ea42e9531e3fcbd8eb25209d +DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709 +DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f +DIST windows-targets-0.53.2.crate 7046 BLAKE2B b4b856f2d1f5b3eb4dd02efb4a3394a4ae11349b809ba2d231e71b005ffc4f801cc275248d998d3bd47cc2f6a9161f7f59cc11cd019ac2180cb1f531a5da60e3 SHA512 9a1f236aabf0b1f2a649f926825e1dba54b1257ed4eb494a8c01a21114d945f57ca4371230693b90e0fd3e1bf48be7c31abc7818b3ec65ce1553e6cdf97b9963 +DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996 +DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5 +DIST windows_aarch64_gnullvm-0.53.0.crate 782443 BLAKE2B 64a74d4f10a60cfbd6cc02dfbb41ca9709abf56f49f74a6dfb4f4686bdc3d847d27eb92553c553c4ccbd39dd4f967bad1cba3c42a33a0e86fd8500284f260cd0 SHA512 185d1a63f3c00a4acd1a14701fd12ebcd715d6e709d6e40e6423e832fda0336463a8746f8eb5e3f81c9fbf26ed0de2332c04bd4d057c57ff67dd43e6a07fa9ac +DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff +DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b +DIST windows_aarch64_msvc-0.53.0.crate 834446 BLAKE2B cc3df33489a282fcce6d693dd14d4bd5a284279794fed9e717a37c9367e4b3b40c47981e70adbcf8b15cc9cc01aebb63cf90f4564bd4289c8ef8daf59fd6bb50 SHA512 32d56f60b2327e334552f7554e67adc042b3c8e79f6b69237d83fa28f768cbee232b1e783430dad1b437dbaf2d7e1f1ae5c53e2cacf3021b99498148ac964cb3 +DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a +DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822 +DIST windows_i686_gnu-0.53.0.crate 936973 BLAKE2B c64b15193a5263e871e1919ecdb49fbf5a94b3e5b8d96c547a9212733f3bd07096511cd6f6b129dd3566bfc263c17e909daf04925916cb4f6789c797926ea793 SHA512 676ec6ed73672e418913078d8bae9b74679db02a3b5bee9cc72c62452fb70d87f7dd1e2b2a7e4e6058f4bc536c15075f929c38c7261d7f47872099a397fb5ca3 +DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f +DIST windows_i686_gnullvm-0.53.0.crate 854056 BLAKE2B db81a346b516db01e7977137e11f79c0cf1df0763a5415b75c9f49972436c22ab77084f958b92a7cda3fa11bf2a764ee7bb6b2e6592889a895c278793a806ff6 SHA512 ec830a4c7b5d3be4948d788971f034c53e4bda7351ceb9aeb5a0af24868fe8c8383f96b1736de27832b113d2a679d5fa8764db2fe2db5942e25bccd036e96232 +DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e +DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96 +DIST windows_i686_msvc-0.53.0.crate 903450 BLAKE2B 0cb567d1b54ff979ad6549f1a17919510eecd62e028bc01ee3448ade18d08e684746023881f713e078ae5ca9d9e799cc4e6d15bea12f926463d291f46d6b3c85 SHA512 9f7f6df98e47895e0824dd70af7b6dd5017b65a6904f0b0c6cba8df59f8162489754c6437f87b281fc8c34da2557e21eb33c89ef505f1b3fbcf60f5152191342 +DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74 +DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb +DIST windows_x86_64_gnu-0.53.0.crate 902585 BLAKE2B f376f4ed30c1f82f567713f2fa03dd5fe5f8e78ea876d4d29e4b3a0fc52400d64cd6b971e06fb4607e5da15d6c4aba6a7a83841e2f178ffec73e70996f1ce052 SHA512 9856a67c32c9969100ff4f730047f92ecdf8a19e003553b3d9cbfd847f376a20c72a1202071a36f3640afbb6ff45f95c83579ce4a45a2b64485c980fc06b65ab +DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa +DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd +DIST windows_x86_64_gnullvm-0.53.0.crate 782434 BLAKE2B b82d7a41c771db81f2dbc6500616fec8f019f89cc0f3c43b45332ff8275dd0f7919cf0b6e0fd2d50aaa1cd7e381e7d20211414f619ca92b60a21fa2137c7f9b0 SHA512 bd3777209b4cee092134c21298859d5974b29b70fd0d2882ae704b58a34413022de944f6254d8948fc87b4dbe1044b08ddc6a82b9d1a48b33d33509454318e7f +DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0 +DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7 +DIST windows_x86_64_msvc-0.53.0.crate 834400 BLAKE2B b5a06459571c6ac31fdb94d64f66f83ad71fa039ba04e07b62259ca66211662e703dc9afde205cb0489a2213a937ba1d8d6bc212262e8140a1629d2273d4bf43 SHA512 47265ca5d43c39c9470c9ff7caa8ad0962bf81cfedb207d3307895cc7e4885512a4895d3447906349e1261dbef531c0c3326cd82cecf6d645d42039997134707 +DIST wit-bindgen-rt-0.39.0.crate 12241 BLAKE2B c8cda3c7a513dca58e2ad52b03692714750870801af37a235bfe1f217afe880f36df56d8e54b52ee1cb9f4e30f5580b8a28519b44084d2191146977f237e406f SHA512 24b559688991083057b7fc0b6fa9f84445ae11cf53fca20887f55da93c24d97c9a3ed6488b3a845fe88243530b46442d3c2de70da4dc1c64f3ac632a440ea2c7 +DIST zerocopy-0.8.26.crate 249223 BLAKE2B 793b5579fc9120026d2dd7b1a6e7fc2505476288c1f6dc06746c3d65a8655551ba7232ddebb54cb2abd1284d8103369820445cd11b31d86501871c69513e7e1a SHA512 dac6018003092ff65396c93de65a432edea42a28870af4e779f391c7be19a06b6df429493f433532613a8fa18998367714e89abd06324586f5f91f20fd5dc592 +DIST zerocopy-derive-0.8.26.crate 88080 BLAKE2B ca9b8ee1970b75d0119a520ab4f2a44b88d28b2b3c48acd2fb81f3fe1b1081efcb52c50bbe21045cc8b16d15305f87ea3c8032d40298af1ecf024e8ff8cf0c2a SHA512 344469950a97cd691849792a6a1bc875c04797c8e7950ef4bbce22a467f527cf28209f802ee8d74db71973355d1350fcd33b161000a92670fbf30e89e3e32526 +DIST zeroize-1.8.2.crate 20907 BLAKE2B f9233758bde107e2409b56e936e02f51442ff29dfb2589c0b194edb38645421b4b8e6064208f7548a93836149c425de90c08792288e5cea1ae117911406bcdd5 SHA512 ce1fb97ac69cb0792f2f5820919aaa0a9f71c4b410bd0d0c2343d8415d39e3eec3f948cc2769eaf639c14695a3961fb6cd96ba7a77a15a77924d1a8c16497b81 diff --git a/net-vpn/vtun-ng/files/vtunng.rc b/net-vpn/vtun-ng/files/vtunng.rc new file mode 100644 index 000000000000..3c44f4c5f1a3 --- /dev/null +++ b/net-vpn/vtun-ng/files/vtunng.rc @@ -0,0 +1,33 @@ +#!/sbin/openrc-run +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net +} + +start() { + IFS=$(printf '\n.'); # Set separator (IFS) to <newline><dot> + IFS=${IFS%.}; # Remove <dot> - The <dot> was because shells remove trailing newlines with $(..) + for line in `grep -v '^[[:space:]]*#' /etc/vtunngd-start.conf | grep -v '^[[:space:]]*$'` + do + echo $line | + (IFS=" " + read host server args + if [ "$host" = "--server--" ]; then + ebegin "Starting vtunngd server" + /usr/sbin/vtunngd -s -P $server $args + eend $? + else + ebegin "Starting vtunngd client $host to $server" + /usr/sbin/vtunngd $args -- $host $server + eend $? + fi) + done +} + +stop() { + ebegin "Stopping all vtunngd servers and clients" + killall vtunngd + eend $? +} diff --git a/net-vpn/vtun-ng/files/vtunngd-start.conf b/net-vpn/vtun-ng/files/vtunngd-start.conf new file mode 100644 index 000000000000..01de38322f48 --- /dev/null +++ b/net-vpn/vtun-ng/files/vtunngd-start.conf @@ -0,0 +1,33 @@ +### this file defines whether vtund is run as a client or a server +### +### format is "[host] [server] <args>" or "--server-- [portnumber] <args>". +### +### [host] is the hostname to use as a client +### +### [server] is the server to connect to +### +### [args] is optional for both server and client and contains any additional +### command line args for that instance of vtund. not needed by most people. +### +### --server-- is the literal string '--server--'. nothing more, nothing less. +### +### [portnumber] is the port number to run the server on. +### +### +### you can have more than one client "host server" line if required, +### and in theory, it should be possible to run as both a client and a +### server simultaneously, but i haven't tested that. + + +### examples: + +### to run as a client using hostname 'viper'. +#viper vtun-server.somewhere.com.au + +### to run a persistent client connection using hostname 'viper' +### connecting to a server on port 6000 and using /etc/vtun.viper.conf +### as the config file. +#viper vtun-server.somewhere.com.au -f /etc/vtun.viper.conf -s -P 6000 + +### to run vtund as a server on port 5000, uncomment the following line: +#--server-- 5000 diff --git a/net-vpn/vtun-ng/metadata.xml b/net-vpn/vtun-ng/metadata.xml new file mode 100644 index 000000000000..b4042be88a44 --- /dev/null +++ b/net-vpn/vtun-ng/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sigsegv@radiotube.org</email> + <name>Jan-Espen Oversand</name> + </maintainer> + <upstream> + <remote-id type="github">leakingmemory/vtun-ng</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vtun-ng/vtun-ng-3.0.22.ebuild b/net-vpn/vtun-ng/vtun-ng-3.0.22.ebuild new file mode 100644 index 000000000000..65c7b46f6aac --- /dev/null +++ b/net-vpn/vtun-ng/vtun-ng-3.0.22.ebuild @@ -0,0 +1,182 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + adler2@2.0.1 + aead@0.5.2 + aes@0.8.4 + aes-gcm@0.10.3 + aes-gcm-siv@0.11.1 + beef@0.5.2 + bitflags@2.9.1 + block-buffer@0.10.4 + block-padding@0.3.3 + blowfish@0.9.1 + byteorder@1.5.0 + cbc@0.1.2 + cfb-mode@0.8.2 + cfg-if@1.0.1 + chacha20@0.9.1 + chacha20poly1305@0.10.1 + cipher@0.4.4 + cpufeatures@0.2.17 + crc32fast@1.5.0 + crypto-common@0.1.6 + ctr@0.9.2 + deranged@0.4.0 + digest@0.10.7 + dns-lookup@2.0.4 + ecb@0.1.2 + errno@0.3.13 + flate2@1.1.2 + fnv@1.0.7 + generic-array@0.14.7 + getopts@0.2.23 + getrandom@0.2.16 + getrandom@0.3.3 + ghash@0.5.1 + inout@0.1.4 + itoa@1.0.15 + lazy_static@1.5.0 + libc@0.2.174 + log@0.4.28 + logos@0.15.0 + logos-codegen@0.15.0 + logos-derive@0.15.0 + md5@0.8.0 + miniz_oxide@0.8.9 + num-conv@0.1.0 + ofb@0.6.1 + opaque-debug@0.3.1 + poly1305@0.8.0 + polyval@0.6.2 + powerfmt@0.2.0 + ppv-lite86@0.2.21 + proc-macro2@1.0.95 + proctitle@0.1.1 + quote@1.0.40 + r-efi@5.3.0 + rand@0.9.2 + rand_chacha@0.9.0 + rand_core@0.6.4 + rand_core@0.9.3 + regex-syntax@0.8.5 + rust-lzo@0.6.2 + rustc_version@0.4.1 + semver@1.0.26 + serde@1.0.219 + serde_derive@1.0.219 + sha2@0.10.9 + signal-hook@0.3.18 + signal-hook-registry@1.4.5 + socket2@0.5.10 + subtle@2.6.1 + syn@2.0.104 + time@0.3.41 + time-core@0.1.4 + time-macros@0.2.22 + typenum@1.18.0 + unicode-ident@1.0.18 + unicode-width@0.2.1 + universal-hash@0.5.1 + uzers@0.12.1 + version_check@0.9.5 + wasi@0.11.1+wasi-snapshot-preview1 + wasi@0.14.2+wasi-0.2.4 + winapi@0.3.9 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-x86_64-pc-windows-gnu@0.4.0 + windows-sys@0.48.0 + windows-sys@0.52.0 + windows-sys@0.60.2 + windows-targets@0.48.5 + windows-targets@0.52.6 + windows-targets@0.53.2 + windows_aarch64_gnullvm@0.48.5 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_gnullvm@0.53.0 + windows_aarch64_msvc@0.48.5 + windows_aarch64_msvc@0.52.6 + windows_aarch64_msvc@0.53.0 + windows_i686_gnu@0.48.5 + windows_i686_gnu@0.52.6 + windows_i686_gnu@0.53.0 + windows_i686_gnullvm@0.52.6 + windows_i686_gnullvm@0.53.0 + windows_i686_msvc@0.48.5 + windows_i686_msvc@0.52.6 + windows_i686_msvc@0.53.0 + windows_x86_64_gnu@0.48.5 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnu@0.53.0 + windows_x86_64_gnullvm@0.48.5 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_gnullvm@0.53.0 + windows_x86_64_msvc@0.48.5 + windows_x86_64_msvc@0.52.6 + windows_x86_64_msvc@0.53.0 + wit-bindgen-rt@0.39.0 + zerocopy@0.8.26 + zerocopy-derive@0.8.26 + zeroize@1.8.2 +" + +inherit cargo systemd + +DESCRIPTION="Create tunnels over TCP/IP networks with shaping, encryption, and compression" +HOMEPAGE="https://github.com/leakingmemory/vtun-ng" +SRC_URI="${CARGO_CRATE_URIS} + https://github.com/leakingmemory/vtun-ng/releases/download/v${PV}/${P}.tar.gz + " + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc" +IUSE="systemd +lzo +zlib" + +DOCS=( ChangeLog Credits FAQ README README.Setup README.Shaper TODO ) +CONFIG_CHECK="~TUN" + +src_unpack() { + cargo_src_unpack + + pushd "${S}" >/dev/null || die + cargo_gen_config + popd >/dev/null || die +} + +src_configure() { + local myfeatures=( + $(usev lzo) + $(usev zlib) + ) + cargo_src_configure +} + +src_compile() { + export VTUN_STAT_DIR=/var/log/vtunngd + export VTUN_LOCK_DIR=/var/lock/vtunngd + export ENABLE_NAT_HACK=1 + export VTUN_CONFIG_FILE=/etc/vtunngd.conf + export VTUN_PID_FILE=/var/run/vtunngd.pid + cargo_src_compile +} + +src_install() { + export INSTALL_PREFIX="${D}" + export DESTDIR=/ + ./install.sh + newinitd "${FILESDIR}"/vtunng.rc vtunng + insinto /etc + doins "${FILESDIR}"/vtunngd-start.conf + if use systemd; then + insinto /etc/vtunngd + newins "${S}"/scripts/sample-client.env.systemd sample-client.env + fi + systemd_newunit "${S}"/scripts/vtunngd.service.systemd vtunngd.service + systemd_newunit "${S}"/scripts/vtunngd-client.service.systemd vtunngd@.service +} + +src_test() { :; } diff --git a/net-vpn/vtun-ng/vtun-ng-3.1.0.ebuild b/net-vpn/vtun-ng/vtun-ng-3.1.0.ebuild new file mode 100644 index 000000000000..cd235f2ec532 --- /dev/null +++ b/net-vpn/vtun-ng/vtun-ng-3.1.0.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + adler2@2.0.1 + aead@0.5.2 + aes@0.8.4 + aes-gcm@0.10.3 + aes-gcm-siv@0.11.1 + beef@0.5.2 + bitflags@2.9.1 + block-buffer@0.10.4 + block-padding@0.3.3 + blowfish@0.9.1 + byteorder@1.5.0 + cbc@0.1.2 + cfb-mode@0.8.2 + cfg-if@1.0.1 + chacha20@0.9.1 + chacha20poly1305@0.10.1 + cipher@0.4.4 + cpufeatures@0.2.17 + crc32fast@1.5.0 + crypto-common@0.1.6 + ctr@0.9.2 + deranged@0.5.5 + digest@0.10.7 + dns-lookup@2.0.4 + ecb@0.1.2 + errno@0.3.13 + flate2@1.1.2 + fnv@1.0.7 + generic-array@0.14.7 + getopts@0.2.23 + getrandom@0.2.16 + getrandom@0.3.3 + ghash@0.5.1 + inout@0.1.4 + itoa@1.0.15 + lazy_static@1.5.0 + libc@0.2.174 + log@0.4.28 + logos@0.15.0 + logos-codegen@0.15.0 + logos-derive@0.15.0 + md5@0.8.0 + miniz_oxide@0.8.9 + num-conv@0.2.0 + ofb@0.6.1 + opaque-debug@0.3.1 + poly1305@0.8.0 + polyval@0.6.2 + powerfmt@0.2.0 + ppv-lite86@0.2.21 + proc-macro2@1.0.95 + proctitle@0.1.1 + quote@1.0.40 + r-efi@5.3.0 + rand@0.9.2 + rand_chacha@0.9.0 + rand_core@0.6.4 + rand_core@0.9.3 + regex-syntax@0.8.5 + rust-lzo@0.6.2 + rustc_version@0.4.1 + semver@1.0.26 + serde_core@1.0.228 + serde_derive@1.0.228 + sha2@0.10.9 + signal-hook@0.3.18 + signal-hook-registry@1.4.5 + socket2@0.5.10 + subtle@2.6.1 + syn@2.0.104 + time@0.3.47 + time-core@0.1.8 + time-macros@0.2.27 + typenum@1.18.0 + unicode-ident@1.0.18 + unicode-width@0.2.1 + universal-hash@0.5.1 + uzers@0.12.1 + version_check@0.9.5 + wasi@0.11.1+wasi-snapshot-preview1 + wasi@0.14.2+wasi-0.2.4 + winapi@0.3.9 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-x86_64-pc-windows-gnu@0.4.0 + windows-sys@0.48.0 + windows-sys@0.52.0 + windows-sys@0.60.2 + windows-targets@0.48.5 + windows-targets@0.52.6 + windows-targets@0.53.2 + windows_aarch64_gnullvm@0.48.5 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_gnullvm@0.53.0 + windows_aarch64_msvc@0.48.5 + windows_aarch64_msvc@0.52.6 + windows_aarch64_msvc@0.53.0 + windows_i686_gnu@0.48.5 + windows_i686_gnu@0.52.6 + windows_i686_gnu@0.53.0 + windows_i686_gnullvm@0.52.6 + windows_i686_gnullvm@0.53.0 + windows_i686_msvc@0.48.5 + windows_i686_msvc@0.52.6 + windows_i686_msvc@0.53.0 + windows_x86_64_gnu@0.48.5 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnu@0.53.0 + windows_x86_64_gnullvm@0.48.5 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_gnullvm@0.53.0 + windows_x86_64_msvc@0.48.5 + windows_x86_64_msvc@0.52.6 + windows_x86_64_msvc@0.53.0 + wit-bindgen-rt@0.39.0 + zerocopy@0.8.26 + zerocopy-derive@0.8.26 + zeroize@1.8.2 +" + +inherit cargo systemd + +DESCRIPTION="Create tunnels over TCP/IP networks with shaping, encryption, and compression" +HOMEPAGE="https://github.com/leakingmemory/vtun-ng" +SRC_URI="${CARGO_CRATE_URIS} + https://github.com/leakingmemory/vtun-ng/releases/download/v${PV}/${P}.tar.gz + " + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc" +IUSE="systemd +lzo +zlib" + +RUST_MIN_VER="1.88.0" + +DOCS=( ChangeLog Credits FAQ README README.Setup README.Shaper TODO ) +CONFIG_CHECK="~TUN" + +src_unpack() { + cargo_src_unpack + + pushd "${S}" >/dev/null || die + cargo_gen_config + popd >/dev/null || die +} + +src_configure() { + local myfeatures=( + $(usev lzo) + $(usev zlib) + ) + cargo_src_configure +} + +src_compile() { + export VTUN_STAT_DIR=/var/log/vtunngd + export VTUN_LOCK_DIR=/var/lock/vtunngd + export ENABLE_NAT_HACK=1 + export VTUN_CONFIG_FILE=/etc/vtunngd.conf + export VTUN_PID_FILE=/var/run/vtunngd.pid + cargo_src_compile +} + +src_install() { + export INSTALL_PREFIX="${D}" + export DESTDIR=/ + ./install.sh + newinitd "${FILESDIR}"/vtunng.rc vtunng + insinto /etc + doins "${FILESDIR}"/vtunngd-start.conf + if use systemd; then + insinto /etc/vtunngd + newins "${S}"/scripts/sample-client.env.systemd sample-client.env + fi + systemd_newunit "${S}"/scripts/vtunngd.service.systemd vtunngd.service + systemd_newunit "${S}"/scripts/vtunngd-client.service.systemd vtunngd@.service +} + +src_test() { :; } diff --git a/net-vpn/vtun/Manifest b/net-vpn/vtun/Manifest new file mode 100644 index 000000000000..92748306cddb --- /dev/null +++ b/net-vpn/vtun/Manifest @@ -0,0 +1 @@ +DIST vtun-3.0.4.tar.gz 132691 BLAKE2B 040c3c66074a1ebdd8a2f32c988b7f4d9423d248ad1259456cd8cdbe0b9adbbaca4cd1e1a4e8c4e6a936a221a9443c099d5d8a219f830925f220bc09e5e7feae SHA512 b1bb7294bd745c2ca888704e2b0f8e05447b5e01bec0f921648afe363d61a19508dea9e26663993cd69c506aa92621e76f36045bddf7c3723d13a72741ca6781 diff --git a/net-vpn/vtun/files/vtun-3.0.4-autoconf-fork-not-working.patch b/net-vpn/vtun/files/vtun-3.0.4-autoconf-fork-not-working.patch new file mode 100644 index 000000000000..258e4d736ccd --- /dev/null +++ b/net-vpn/vtun/files/vtun-3.0.4-autoconf-fork-not-working.patch @@ -0,0 +1,11 @@ +--- a/config.h.in 2022-11-28 07:10:54.564387362 +0100 ++++ b/config.h.in 2022-11-28 07:12:15.435007668 +0100 +@@ -156,3 +156,8 @@ + + /* Define as `fork' if `vfork' does not work. */ + #undef vfork ++ ++#if !defined(HAVE_WORKING_FORK) && !defined(HAVE_WORKING_VFORK) ++#define HAVE_WORKING_FORK 1 ++#endif ++ diff --git a/net-vpn/vtun/files/vtun-3.0.4-includes.patch b/net-vpn/vtun/files/vtun-3.0.4-includes.patch new file mode 100644 index 000000000000..06546c6bd815 --- /dev/null +++ b/net-vpn/vtun/files/vtun-3.0.4-includes.patch @@ -0,0 +1,72 @@ +--- a/lfd_encrypt.c ++++ b/lfd_encrypt.c +@@ -44,6 +44,7 @@ + #include <strings.h> + #include <string.h> + #include <time.h> ++#include <arpa/inet.h> /* htonl() */ + + #include "vtun.h" + #include "linkfd.h" +--- a/lib.c ++++ b/lib.c +@@ -34,6 +34,7 @@ + #include <sys/wait.h> + #include <syslog.h> + #include <errno.h> ++#include <time.h> /* nanosleep() */ + + #include "vtun.h" + #include "linkfd.h" +--- a/lib.h ++++ b/lib.h +@@ -26,6 +26,8 @@ + #include <sys/types.h> + #include <signal.h> + #include <errno.h> ++#include <unistd.h> /* read(), write() */ ++#include <bsd/unistd.h> /* setproctitle(), see man libbsd(7) */ + + #ifdef HAVE_LIBUTIL_H + #include <libutil.h> +@@ -35,7 +37,7 @@ + void init_title(int argc,char *argv[],char *env[], char *name); + void set_title(const char *ftm, ...); + #else +- #define init_title( a... ) ++ #define init_title(argc, argv, env, name) setproctitle_init(argc, argv, env) + #define set_title setproctitle + #endif /* HAVE_SETPROC_TITLE */ + +--- a/lock.c ++++ b/lock.c +@@ -32,6 +32,7 @@ + #include <sys/types.h> + #include <signal.h> + #include <errno.h> ++#include <time.h> /* nanosleep() */ + + #include "vtun.h" + #include "linkfd.h" +--- a/lfd_shaper.c ++++ b/lfd_shaper.c +@@ -27,6 +27,7 @@ + #include <stdlib.h> + #include <sys/time.h> + #include <syslog.h> ++#include <time.h> /* nanosleep() */ + + #include "vtun.h" + #include "linkfd.h" +--- a/generic/pty_dev.c ++++ b/generic/pty_dev.c +@@ -22,6 +22,8 @@ + + #include "config.h" + ++#define _GNU_SOURCE // getpt, grantpt ++#define _XOPEN_SOURCE // unlockpt + #include <unistd.h> + #include <fcntl.h> + #include <stdlib.h> + diff --git a/net-vpn/vtun/files/vtun-3.0.4-libssl-ctx.patch b/net-vpn/vtun/files/vtun-3.0.4-libssl-ctx.patch new file mode 100644 index 000000000000..6df2ca344e1f --- /dev/null +++ b/net-vpn/vtun/files/vtun-3.0.4-libssl-ctx.patch @@ -0,0 +1,253 @@ +--- a/lfd_encrypt.c 2016-10-01 23:27:51.000000000 +0200 ++++ b/lfd_encrypt.c 2022-11-27 19:30:55.119047677 +0100 +@@ -95,11 +95,11 @@ + static char * pkey; + static char * iv_buf; + +-static EVP_CIPHER_CTX ctx_enc; /* encrypt */ +-static EVP_CIPHER_CTX ctx_dec; /* decrypt */ ++static EVP_CIPHER_CTX *ctx_enc = NULL; /* encrypt */ ++static EVP_CIPHER_CTX *ctx_dec = NULL; /* decrypt */ + +-static EVP_CIPHER_CTX ctx_enc_ecb; /* sideband ecb encrypt */ +-static EVP_CIPHER_CTX ctx_dec_ecb; /* sideband ecb decrypt */ ++static EVP_CIPHER_CTX *ctx_enc_ecb = NULL; /* sideband ecb encrypt */ ++static EVP_CIPHER_CTX *ctx_dec_ecb = NULL; /* sideband ecb decrypt */ + + static int send_msg(int len, char *in, char **out); + static int recv_msg(int len, char *in, char **out); +@@ -146,6 +146,22 @@ + free(key); + } + ++static void setup_ctx_ptrs() ++{ ++ if (ctx_enc_ecb == NULL) { ++ ctx_enc_ecb = EVP_CIPHER_CTX_new(); ++ } ++ if (ctx_dec_ecb == NULL) { ++ ctx_dec_ecb = EVP_CIPHER_CTX_new(); ++ } ++ if (ctx_enc == NULL) { ++ ctx_enc = EVP_CIPHER_CTX_new(); ++ } ++ if (ctx_dec == NULL) { ++ ctx_dec = EVP_CIPHER_CTX_new(); ++ } ++} ++ + static int alloc_encrypt(struct vtun_host *host) + { + int sb_init = 0; +@@ -168,6 +184,8 @@ + return -1; + } + ++ setup_ctx_ptrs(); ++ + RAND_bytes((char *)&sequence_num, 4); + gibberish = 0; + gib_time_start = 0; +@@ -182,15 +200,15 @@ + keysize = 32; + sb_init = 1; + cipher_type = EVP_aes_256_ecb(); +- pctx_enc = &ctx_enc_ecb; +- pctx_dec = &ctx_dec_ecb; ++ pctx_enc = ctx_enc_ecb; ++ pctx_dec = ctx_dec_ecb; + break; + + case VTUN_ENC_AES256ECB: + blocksize = 16; + keysize = 32; +- pctx_enc = &ctx_enc; +- pctx_dec = &ctx_dec; ++ pctx_enc = ctx_enc; ++ pctx_dec = ctx_dec; + cipher_type = EVP_aes_256_ecb(); + strcpy(cipher_name,"AES-256-ECB"); + break; +@@ -201,14 +219,14 @@ + keysize = 16; + sb_init=1; + cipher_type = EVP_aes_128_ecb(); +- pctx_enc = &ctx_enc_ecb; +- pctx_dec = &ctx_dec_ecb; ++ pctx_enc = ctx_enc_ecb; ++ pctx_dec = ctx_dec_ecb; + break; + case VTUN_ENC_AES128ECB: + blocksize = 16; + keysize = 16; +- pctx_enc = &ctx_enc; +- pctx_dec = &ctx_dec; ++ pctx_enc = ctx_enc; ++ pctx_dec = ctx_dec; + cipher_type = EVP_aes_128_ecb(); + strcpy(cipher_name,"AES-128-ECB"); + break; +@@ -221,16 +239,16 @@ + var_key = 1; + sb_init = 1; + cipher_type = EVP_bf_ecb(); +- pctx_enc = &ctx_enc_ecb; +- pctx_dec = &ctx_dec_ecb; ++ pctx_enc = ctx_enc_ecb; ++ pctx_dec = ctx_dec_ecb; + break; + + case VTUN_ENC_BF256ECB: + blocksize = 8; + keysize = 32; + var_key = 1; +- pctx_enc = &ctx_enc; +- pctx_dec = &ctx_dec; ++ pctx_enc = ctx_enc; ++ pctx_dec = ctx_dec; + cipher_type = EVP_bf_ecb(); + strcpy(cipher_name,"Blowfish-256-ECB"); + break; +@@ -243,16 +261,16 @@ + var_key = 1; + sb_init = 1; + cipher_type = EVP_bf_ecb(); +- pctx_enc = &ctx_enc_ecb; +- pctx_dec = &ctx_dec_ecb; ++ pctx_enc = ctx_enc_ecb; ++ pctx_dec = ctx_dec_ecb; + break; + case VTUN_ENC_BF128ECB: /* blowfish 128 ecb is the default */ + default: + blocksize = 8; + keysize = 16; + var_key = 1; +- pctx_enc = &ctx_enc; +- pctx_dec = &ctx_dec; ++ pctx_enc = ctx_enc; ++ pctx_dec = ctx_dec; + cipher_type = EVP_bf_ecb(); + strcpy(cipher_name,"Blowfish-128-ECB"); + break; +@@ -294,10 +312,10 @@ + lfd_free(enc_buf); enc_buf = NULL; + lfd_free(dec_buf); dec_buf = NULL; + +- EVP_CIPHER_CTX_cleanup(&ctx_enc); +- EVP_CIPHER_CTX_cleanup(&ctx_dec); +- EVP_CIPHER_CTX_cleanup(&ctx_enc_ecb); +- EVP_CIPHER_CTX_cleanup(&ctx_dec_ecb); ++ EVP_CIPHER_CTX_cleanup(ctx_enc); ++ EVP_CIPHER_CTX_cleanup(ctx_dec); ++ EVP_CIPHER_CTX_cleanup(ctx_enc_ecb); ++ EVP_CIPHER_CTX_cleanup(ctx_dec_ecb); + + return 0; + } +@@ -323,7 +341,7 @@ + outlen=len+pad; + if (pad == blocksize) + RAND_bytes(in_ptr+len, blocksize-1); +- EVP_EncryptUpdate(&ctx_enc, out_ptr, &outlen, in_ptr, len+pad); ++ EVP_EncryptUpdate(ctx_enc, out_ptr, &outlen, in_ptr, len+pad); + *out = enc_buf; + + sequence_num++; +@@ -343,7 +361,7 @@ + + outlen=len; + if (!len) return 0; +- EVP_DecryptUpdate(&ctx_dec, out_ptr, &outlen, in_ptr, len); ++ EVP_DecryptUpdate(ctx_dec, out_ptr, &outlen, in_ptr, len); + recv_ib_mesg(&outlen, &out_ptr); + if (!outlen) return 0; + tmp_ptr = out_ptr + outlen; tmp_ptr--; +@@ -431,13 +449,15 @@ + break; + } /* switch(cipher) */ + +- EVP_CIPHER_CTX_init(&ctx_enc); +- EVP_EncryptInit_ex(&ctx_enc, cipher_type, NULL, NULL, NULL); ++ setup_ctx_ptrs(); ++ ++ EVP_CIPHER_CTX_init(ctx_enc); ++ EVP_EncryptInit_ex(ctx_enc, cipher_type, NULL, NULL, NULL); + if (var_key) +- EVP_CIPHER_CTX_set_key_length(&ctx_enc, keysize); +- EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, pkey, NULL); +- EVP_EncryptInit_ex(&ctx_enc, NULL, NULL, NULL, iv); +- EVP_CIPHER_CTX_set_padding(&ctx_enc, 0); ++ EVP_CIPHER_CTX_set_key_length(ctx_enc, keysize); ++ EVP_EncryptInit_ex(ctx_enc, NULL, NULL, pkey, NULL); ++ EVP_EncryptInit_ex(ctx_enc, NULL, NULL, NULL, iv); ++ EVP_CIPHER_CTX_set_padding(ctx_enc, 0); + if (enc_init_first_time) + { + sprintf(tmpstr,"%s encryption initialized", cipher_name); +@@ -521,13 +541,15 @@ + break; + } /* switch(cipher) */ + +- EVP_CIPHER_CTX_init(&ctx_dec); +- EVP_DecryptInit_ex(&ctx_dec, cipher_type, NULL, NULL, NULL); ++ setup_ctx_ptrs(); ++ ++ EVP_CIPHER_CTX_init(ctx_dec); ++ EVP_DecryptInit_ex(ctx_dec, cipher_type, NULL, NULL, NULL); + if (var_key) +- EVP_CIPHER_CTX_set_key_length(&ctx_dec, keysize); +- EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, pkey, NULL); +- EVP_DecryptInit_ex(&ctx_dec, NULL, NULL, NULL, iv); +- EVP_CIPHER_CTX_set_padding(&ctx_dec, 0); ++ EVP_CIPHER_CTX_set_key_length(ctx_dec, keysize); ++ EVP_DecryptInit_ex(ctx_dec, NULL, NULL, pkey, NULL); ++ EVP_DecryptInit_ex(ctx_dec, NULL, NULL, NULL, iv); ++ EVP_CIPHER_CTX_set_padding(ctx_dec, 0); + if (dec_init_first_time) + { + sprintf(tmpstr,"%s decryption initialized", cipher_name); +@@ -559,7 +581,7 @@ + + in_ptr = in - blocksize*2; + outlen = blocksize*2; +- EVP_EncryptUpdate(&ctx_enc_ecb, in_ptr, ++ EVP_EncryptUpdate(ctx_enc_ecb, in_ptr, + &outlen, in_ptr, blocksize*2); + *out = in_ptr; + len = outlen; +@@ -586,7 +608,7 @@ + in_ptr = in; + iv = malloc(blocksize); + outlen = blocksize*2; +- EVP_DecryptUpdate(&ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2); ++ EVP_DecryptUpdate(ctx_dec_ecb, in_ptr, &outlen, in_ptr, blocksize*2); + + if ( !strncmp(in_ptr, "ivec", 4) ) + { +@@ -629,7 +651,7 @@ + if (cipher_enc_state != CIPHER_INIT) + { + cipher_enc_state = CIPHER_INIT; +- EVP_CIPHER_CTX_cleanup(&ctx_enc); ++ EVP_CIPHER_CTX_cleanup(ctx_enc); + #ifdef LFD_ENCRYPT_DEBUG + vtun_syslog(LOG_INFO, + "Forcing local encryptor re-init"); +@@ -710,7 +732,7 @@ + if (cipher_enc_state != CIPHER_INIT) + { + cipher_enc_state = CIPHER_INIT; +- EVP_CIPHER_CTX_cleanup(&ctx_enc); ++ EVP_CIPHER_CTX_cleanup(ctx_enc); + } + #ifdef LFD_ENCRYPT_DEBUG + vtun_syslog(LOG_INFO, "Remote requests encryptor re-init"); +@@ -724,7 +746,7 @@ + cipher_enc_state != CIPHER_REQ_INIT && + cipher_enc_state != CIPHER_INIT) + { +- EVP_CIPHER_CTX_cleanup (&ctx_dec); ++ EVP_CIPHER_CTX_cleanup (ctx_dec); + cipher_dec_state = CIPHER_INIT; + cipher_enc_state = CIPHER_REQ_INIT; + } diff --git a/net-vpn/vtun/files/vtun-3.0.4-naughty-inlines.patch b/net-vpn/vtun/files/vtun-3.0.4-naughty-inlines.patch new file mode 100644 index 000000000000..d36d95d7c6e2 --- /dev/null +++ b/net-vpn/vtun/files/vtun-3.0.4-naughty-inlines.patch @@ -0,0 +1,21 @@ +--- a/vtun.h 2016-10-01 23:27:51.000000000 +0200 ++++ b/vtun.h 2022-11-27 19:08:02.609754913 +0100 +@@ -232,6 +232,6 @@ + int tunnel(struct vtun_host *host); + int read_config(char *file); + struct vtun_host * find_host(char *host); +-inline void clear_nat_hack_flags(int svr); ++void clear_nat_hack_flags(int svr); + + #endif +--- a/cfg_file.y 2022-11-27 19:09:33.380433928 +0100 ++++ b/cfg_file.y 2022-11-27 19:09:57.340613164 +0100 +@@ -610,7 +610,7 @@ + } + + /* Clear the VTUN_NAT_HACK flag which are not relevant to the current operation mode */ +-inline void clear_nat_hack_flags(int svr) ++void clear_nat_hack_flags(int svr) + { + if (svr) + llist_trav(&host_list,clear_nat_hack_server,NULL); diff --git a/net-vpn/vtun/files/vtun-3.0.4-use-bison-for-yacc.patch b/net-vpn/vtun/files/vtun-3.0.4-use-bison-for-yacc.patch new file mode 100644 index 000000000000..70a28befe486 --- /dev/null +++ b/net-vpn/vtun/files/vtun-3.0.4-use-bison-for-yacc.patch @@ -0,0 +1,41 @@ +https://bugs.gentoo.org/907988 +--- a/configure.in 2016-10-01 23:46:01.000000000 +0200 ++++ b/configure.in 2023-06-10 22:44:20.873592074 +0200 +@@ -82,11 +82,14 @@ + AC_CANONICAL_SYSTEM + + dnl Check for programs. +-AC_PROG_YACC + AC_PROG_LEX + AC_PROG_CC + AC_PROG_INSTALL + ++AC_ARG_VAR([BISON], [bison command for yacc parsing]) ++AC_CHECK_PROG([BISON], [bison -y], [bison -y], [no]) ++AS_IF([test "x$BISON" = "xno"], [AC_MSG_ERROR([bison not found])]) ++ + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST + AC_C_INLINE +--- a/Makefile.in 2016-10-01 23:46:00.000000000 +0200 ++++ b/Makefile.in 2023-06-10 23:00:25.278904190 +0200 +@@ -21,8 +21,8 @@ + CFLAGS = @CFLAGS@ @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ @LIBS@ + +-YACC = @YACC@ +-YACCFLAGS = -d ++BISON = @BISON@ ++BISONFLAGS = -d + + LEX = @LEX@ + LEXFLAGS = -t +@@ -62,7 +62,7 @@ + $(CC) $(CFLAGS) -o vtund $(OBJS) $(LFD_OBJS) $(LDFLAGS) + + cfg_file.tab.h: +- $(YACC) $(YACCFLAGS) -b cfg_file cfg_file.y ++ $(BISON) $(BISONFLAGS) -b cfg_file cfg_file.y + + cfg_file.tab.c: cfg_file.y cfg_kwords.h config.h cfg_file.tab.h + diff --git a/net-vpn/vtun/files/vtun.rc b/net-vpn/vtun/files/vtun.rc new file mode 100644 index 000000000000..9d081eeb4f06 --- /dev/null +++ b/net-vpn/vtun/files/vtun.rc @@ -0,0 +1,33 @@ +#!/sbin/openrc-run +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net +} + +start() { + IFS=$(printf '\n.'); # Set separator (IFS) to <newline><dot> + IFS=${IFS%.}; # Remove <dot> - The <dot> was because shells remove trailing newlines with $(..) + for line in `grep -v '^[[:space:]]*#' /etc/vtund-start.conf | grep -v '^[[:space:]]*$'` + do + echo $line | + (IFS=" " + read host server args + if [ "$host" = "--server--" ]; then + ebegin "Starting vtund server" + /usr/sbin/vtund -s -P $server $args + eend $? + else + ebegin "Starting vtund client $host to $server" + /usr/sbin/vtund $args -- $host $server + eend $? + fi) + done +} + +stop() { + ebegin "Stopping all vtund servers and clients" + killall vtund + eend $? +} diff --git a/net-vpn/vtun/files/vtund-start.conf b/net-vpn/vtun/files/vtund-start.conf new file mode 100644 index 000000000000..01de38322f48 --- /dev/null +++ b/net-vpn/vtun/files/vtund-start.conf @@ -0,0 +1,33 @@ +### this file defines whether vtund is run as a client or a server +### +### format is "[host] [server] <args>" or "--server-- [portnumber] <args>". +### +### [host] is the hostname to use as a client +### +### [server] is the server to connect to +### +### [args] is optional for both server and client and contains any additional +### command line args for that instance of vtund. not needed by most people. +### +### --server-- is the literal string '--server--'. nothing more, nothing less. +### +### [portnumber] is the port number to run the server on. +### +### +### you can have more than one client "host server" line if required, +### and in theory, it should be possible to run as both a client and a +### server simultaneously, but i haven't tested that. + + +### examples: + +### to run as a client using hostname 'viper'. +#viper vtun-server.somewhere.com.au + +### to run a persistent client connection using hostname 'viper' +### connecting to a server on port 6000 and using /etc/vtun.viper.conf +### as the config file. +#viper vtun-server.somewhere.com.au -f /etc/vtun.viper.conf -s -P 6000 + +### to run vtund as a server on port 5000, uncomment the following line: +#--server-- 5000 diff --git a/net-vpn/vtun/metadata.xml b/net-vpn/vtun/metadata.xml new file mode 100644 index 000000000000..ddf7a62b90b1 --- /dev/null +++ b/net-vpn/vtun/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>sigsegv@radiotube.org</email> + <name>Jan-Espen Oversand</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <upstream> + <remote-id type="sourceforge">vtun</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-vpn/vtun/vtun-3.0.4-r3.ebuild b/net-vpn/vtun/vtun-3.0.4-r3.ebuild new file mode 100644 index 000000000000..a03c1943368e --- /dev/null +++ b/net-vpn/vtun/vtun-3.0.4-r3.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info autotools + +DESCRIPTION="Create tunnels over TCP/IP networks with shaping, encryption, and compression" +SRC_URI="https://sourceforge.net/projects/vtun/files/${PN}/${PV}/${P}.tar.gz" +HOMEPAGE="https://vtun.sourceforge.net/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ~sparc x86" +IUSE="lzo socks5 ssl zlib" + +RDEPEND=" + lzo? ( dev-libs/lzo:2 ) + socks5? ( net-proxy/dante ) + ssl? ( dev-libs/openssl:0= ) + zlib? ( virtual/zlib:= ) + dev-libs/libbsd" +DEPEND="${RDEPEND}" +BDEPEND=" + app-alternatives/lex + app-alternatives/yacc +" + +DOCS=( ChangeLog Credits FAQ README README.Setup README.Shaper TODO ) +CONFIG_CHECK="~TUN" + +PATCHES=( + "${FILESDIR}"/${P}-libssl-ctx.patch + "${FILESDIR}"/${P}-includes.patch + "${FILESDIR}"/${P}-naughty-inlines.patch + "${FILESDIR}"/${P}-autoconf-fork-not-working.patch +) + +src_prepare() { + default + eautoreconf + sed -i -e '/^LDFLAGS/s|=|+=|g' Makefile.in || die + sed -i 's:$(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund::' Makefile.in || die +} + +src_configure() { + econf \ + $(use_enable ssl) \ + $(use_enable zlib) \ + $(use_enable lzo) \ + $(use_enable socks5 socks) \ + --enable-shaper +} + +src_install() { + default + newinitd "${FILESDIR}"/vtun.rc vtun + insinto /etc + doins "${FILESDIR}"/vtund-start.conf + rm -r "${ED}"/var || die +} diff --git a/net-vpn/vtun/vtun-3.0.4-r4.ebuild b/net-vpn/vtun/vtun-3.0.4-r4.ebuild new file mode 100644 index 000000000000..07bf79b5fa0d --- /dev/null +++ b/net-vpn/vtun/vtun-3.0.4-r4.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info autotools + +DESCRIPTION="Create tunnels over TCP/IP networks with shaping, encryption, and compression" +SRC_URI="https://sourceforge.net/projects/vtun/files/${PN}/${PV}/${P}.tar.gz" +HOMEPAGE="https://vtun.sourceforge.net/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm64 ppc ~sparc x86" +IUSE="lzo socks5 ssl zlib" + +RDEPEND=" + lzo? ( dev-libs/lzo:2 ) + socks5? ( net-proxy/dante ) + ssl? ( dev-libs/openssl:0= ) + zlib? ( virtual/zlib:= ) + dev-libs/libbsd" +DEPEND="${RDEPEND}" +BDEPEND=" + app-alternatives/lex + app-alternatives/yacc +" + +DOCS=( ChangeLog Credits FAQ README README.Setup README.Shaper TODO ) +CONFIG_CHECK="~TUN" + +PATCHES=( + "${FILESDIR}"/${P}-libssl-ctx.patch + "${FILESDIR}"/${P}-includes.patch + "${FILESDIR}"/${P}-naughty-inlines.patch + "${FILESDIR}"/${P}-autoconf-fork-not-working.patch + "${FILESDIR}"/${P}-use-bison-for-yacc.patch +) + +src_prepare() { + default + eautoreconf + sed -i -e '/^LDFLAGS/s|=|+=|g' Makefile.in || die + sed -i 's:$(BIN_DIR)/strip $(DESTDIR)$(SBIN_DIR)/vtund::' Makefile.in || die +} + +src_configure() { + econf \ + $(use_enable ssl) \ + $(use_enable zlib) \ + $(use_enable lzo) \ + $(use_enable socks5 socks) \ + --enable-shaper +} + +src_install() { + default + newinitd "${FILESDIR}"/vtun.rc vtun + insinto /etc + doins "${FILESDIR}"/vtund-start.conf + rm -r "${ED}"/var || die +} diff --git a/net-vpn/wireguard-modules/Manifest b/net-vpn/wireguard-modules/Manifest new file mode 100644 index 000000000000..eee39d506292 --- /dev/null +++ b/net-vpn/wireguard-modules/Manifest @@ -0,0 +1 @@ +DIST wireguard-linux-compat-1.0.20220627.tar.xz 264016 BLAKE2B d75f5f36b23a17c1d62a22b8d62f3ab5b46c286f1c6b731d3c17d7efba28e5bcd6b8fccdbd8a1ee0d954e7ff81fbaa5c29b8fcc1f96d6e9d1c8351031cbfb8e3 SHA512 dc3d434517a348c8025274c9a139e0fe0563a8e235a8ef666263892c8d27865297ce185dbf0dfdf94178fa1516bea978d2cb817609cbfdb0f91f6491abd2e975 diff --git a/net-vpn/wireguard-modules/metadata.xml b/net-vpn/wireguard-modules/metadata.xml new file mode 100644 index 000000000000..05ec4521180a --- /dev/null +++ b/net-vpn/wireguard-modules/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>zx2c4@gentoo.org</email> + <name>Jason A. Donenfeld</name> + </maintainer> + <use> + <flag name="module">Compile the actual WireGuard kernel module. Most certainly you want this enabled, unless you're doing something strange.</flag> + <flag name="module-src">Install the module source code to /usr/src, in case you like building kernel modules yourself.</flag> + <flag name="debug">Enable verbose debug reporting in dmesg of various WireGuard peer and device information.</flag> + </use> +</pkgmetadata> diff --git a/net-vpn/wireguard-modules/wireguard-modules-1.0.20220627-r1.ebuild b/net-vpn/wireguard-modules/wireguard-modules-1.0.20220627-r1.ebuild new file mode 100644 index 000000000000..a3ecc32bb244 --- /dev/null +++ b/net-vpn/wireguard-modules/wireguard-modules-1.0.20220627-r1.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE="module" +inherit linux-mod-r1 + +DESCRIPTION="Simple yet fast and modern VPN that utilizes state-of-the-art cryptography" +HOMEPAGE="https://www.wireguard.com/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.zx2c4.com/wireguard-linux-compat" +else + SRC_URI="https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${PV}.tar.xz" + S="${WORKDIR}/wireguard-linux-compat-${PV}" + # Please don't stabilize this package. Stable users should use gentoo-sources 5.4 or 5.10. + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug +module module-src" + +CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI" + +pkg_setup() { + if use module; then + linux-mod-r1_pkg_setup + if [[ -f $KERNEL_DIR/include/uapi/linux/wireguard.h ]]; then + eerror + eerror "WireGuard has been merged upstream into this kernel. Therefore," + eerror "you no longer need this compatibility ebuild. Instead, simply" + eerror "enable CONFIG_WIREGUARD=y in your kernel configuration." + eerror + die "Use CONFIG_WIREGUARD=y for this kernel, and do not use this package." + elif kernel_is -lt 3 10 0 || kernel_is -ge 5 6 0; then + die "This version of ${PN} requires Linux >= 3.10 and < 5.6." + fi + fi +} + +src_compile() { + local modlist=( wireguard=net:src::module ) + local modargs=( + KERNELDIR=${KV_OUT_DIR} + ) + use debug && modargs+=( CONFIG_WIREGUARD_DEBUG=y ) + use module && linux-mod-r1_src_compile +} + +src_install() { + use module && linux-mod-r1_src_install + use module-src && emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -C src dkms-install +} + +pkg_postinst() { + if use module-src && ! use module; then + einfo + einfo "You have enabled the module-src USE flag without the module USE" + einfo "flag. This means that sources are installed to" + einfo "${ROOT}/usr/src/wireguard instead of having the" + einfo "kernel module compiled. You will need to compile the module" + einfo "yourself. Most likely, you don't want this USE flag, and should" + einfo "rather use USE=module" + einfo + fi + + if use module; then + linux-mod-r1_pkg_postinst + local old new + if [[ $(uname -r) != "${KV_FULL}" ]]; then + ewarn + ewarn "You have just built WireGuard for kernel ${KV_FULL}, yet the currently running" + ewarn "kernel is $(uname -r). If you intend to use this WireGuard module on the currently" + ewarn "running machine, you will first need to reboot it into the kernel ${KV_FULL}, for" + ewarn "which this module was built." + ewarn + elif [[ -f /sys/module/wireguard/version ]] && \ + old="$(< /sys/module/wireguard/version)" && \ + new="$(modinfo -F version "${ROOT}/lib/modules/${KV_FULL}/net/wireguard.ko" 2>/dev/null)" && \ + [[ $old != "$new" ]]; then + ewarn + ewarn "You appear to have just upgraded WireGuard from version v$old to v$new." + ewarn "However, the old version is still running on your system. In order to use the" + ewarn "new version, you will need to remove the old module and load the new one. As" + ewarn "root, you can accomplish this with the following commands:" + ewarn + ewarn " # rmmod wireguard" + ewarn " # modprobe wireguard" + ewarn + ewarn "Do note that doing this will remove current WireGuard interfaces, so you may want" + ewarn "to gracefully remove them yourself prior." + ewarn + fi + fi +} diff --git a/net-vpn/wireguard-tools/Manifest b/net-vpn/wireguard-tools/Manifest new file mode 100644 index 000000000000..3eda9d518e3c --- /dev/null +++ b/net-vpn/wireguard-tools/Manifest @@ -0,0 +1,2 @@ +DIST wireguard-tools-1.0.20250521.tar.xz 100340 BLAKE2B a476720a14e6c547f985d74a9924767d63ce30f09608170858a25cfd98c4762b78cdb9784aa0cee92545424955d4de5bfa932dff7cd852f563656bf6f8d0ad19 SHA512 93a9ef1caaf8494f7f43fd2557c6499414481bcc7006e10ee9ad7cc520a0d0751e5fb65f6d554424ed9f2ef7a3ad510413d7aa021d829e6a631e81d24d7f47eb +DIST wireguard-tools-1.0.20260223.tar.xz 100472 BLAKE2B c6352dff6462fd902f545328b66aa7d6f34909b6bd602e80c4186a3234595578132d6c888aa19cb073c7ae8a2d4d213108f7ec0e5a87cc35ed148623bde4decd SHA512 ab56199345fdc385e62e414ec200c10777c985fb2bde767f9c76e049f47bc6d2ae83ed12d60dc1ebe0e66f22f7a7e554c13ab13837fb8cb2fbd5481149b07654 diff --git a/net-vpn/wireguard-tools/files/wg-quick.init b/net-vpn/wireguard-tools/files/wg-quick.init new file mode 100644 index 000000000000..780472782031 --- /dev/null +++ b/net-vpn/wireguard-tools/files/wg-quick.init @@ -0,0 +1,38 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="WireGuard" +description="WireGuard via wg-quick(8)" + +depend() { + need net + use dns +} + +CONF="${SVCNAME#*.}" + +checkconfig() { + if [ "$CONF" = "$SVCNAME" ]; then + eerror "You cannot call this init script directly. You must create a symbolic link to it with the configuration name:" + eerror " ln -s /etc/init.d/wg-quick /etc/init.d/wg-quick.vpn0" + eerror "And then call it instead:" + eerror " /etc/init.d/wg-quick.vpn0 start" + return 1 + fi + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting $description for $CONF" + wg-quick up "$CONF" + eend $? "Failed to start $description for $CONF" +} + +stop() { + checkconfig || return 1 + ebegin "Stopping $description for $CONF" + wg-quick down "$CONF" + eend $? "Failed to stop $description for $CONF" +} diff --git a/net-vpn/wireguard-tools/metadata.xml b/net-vpn/wireguard-tools/metadata.xml new file mode 100644 index 000000000000..11d301e58734 --- /dev/null +++ b/net-vpn/wireguard-tools/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>zx2c4@gentoo.org</email> + <name>Jason A. Donenfeld</name> + </maintainer> + <use> + <flag name="wg-quick">Install the wg-quick(8) helper tool. Most users want to use this.</flag> + </use> +</pkgmetadata> diff --git a/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521-r1.ebuild b/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521-r1.ebuild new file mode 100644 index 000000000000..f29537eae821 --- /dev/null +++ b/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521-r1.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit linux-info bash-completion-r1 systemd toolchain-funcs + +DESCRIPTION="Required tools for WireGuard, such as wg(8) and wg-quick(8)" +HOMEPAGE="https://www.wireguard.com/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.zx2c4.com/wireguard-tools" +else + SRC_URI="https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${PV}.tar.xz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="+wg-quick selinux" + +BDEPEND="virtual/pkgconfig" +DEPEND="" +RDEPEND="${DEPEND} + wg-quick? ( + || ( net-firewall/nftables net-firewall/iptables ) + virtual/resolvconf + ) + selinux? ( sec-policy/selinux-wireguard ) +" + +wg_quick_optional_config_nob() { + CONFIG_CHECK="$CONFIG_CHECK ~$1" + declare -g ERROR_$1="CONFIG_$1: This option is required for automatic routing of default routes inside of wg-quick(8), though it is not required for general WireGuard usage." +} + +pkg_setup() { + if use wg-quick; then + wg_quick_optional_config_nob IP_ADVANCED_ROUTER + wg_quick_optional_config_nob IP_MULTIPLE_TABLES + wg_quick_optional_config_nob IPV6_MULTIPLE_TABLES + if has_version net-firewall/nftables; then + wg_quick_optional_config_nob NF_TABLES + wg_quick_optional_config_nob NF_TABLES_IPV4 + wg_quick_optional_config_nob NF_TABLES_IPV6 + wg_quick_optional_config_nob NFT_CT + wg_quick_optional_config_nob NFT_FIB + wg_quick_optional_config_nob NFT_FIB_IPV4 + wg_quick_optional_config_nob NFT_FIB_IPV6 + wg_quick_optional_config_nob NF_CONNTRACK_MARK + elif has_version net-firewall/iptables; then + wg_quick_optional_config_nob NETFILTER_XTABLES + wg_quick_optional_config_nob NETFILTER_XT_MARK + wg_quick_optional_config_nob NETFILTER_XT_CONNMARK + wg_quick_optional_config_nob NETFILTER_XT_MATCH_COMMENT + wg_quick_optional_config_nob NETFILTER_XT_MATCH_ADDRTYPE + wg_quick_optional_config_nob IP6_NF_RAW + wg_quick_optional_config_nob IP_NF_RAW + wg_quick_optional_config_nob IP6_NF_FILTER + wg_quick_optional_config_nob IP_NF_FILTER + wg_quick_optional_config_nob IP_NF_MANGLE + fi + fi + get_version + if [[ -f $KERNEL_DIR/include/uapi/linux/wireguard.h ]]; then + CONFIG_CHECK="~WIREGUARD $CONFIG_CHECK" + declare -g ERROR_WIREGUARD="CONFIG_WIREGUARD: This option is required for using WireGuard." + elif kernel_is -ge 3 10 0 && kernel_is -lt 5 6 0 && ! has_version net-vpn/wireguard-modules; then + ewarn + ewarn "Your kernel does not appear to have upstream support for WireGuard" + ewarn "via CONFIG_WIREGUARD. However, the net-vpn/wireguard-modules ebuild" + ewarn "contains a compatibility module that should work for your kernel." + ewarn "It is highly recommended to install it:" + ewarn + ewarn " emerge -av net-vpn/wireguard-modules" + ewarn + fi + linux-info_pkg_setup +} + +src_compile() { + emake RUNSTATEDIR="${EPREFIX}/run" -C src CC="$(tc-getCC)" LD="$(tc-getLD)" +} + +src_install() { + dodoc README.md + dodoc -r contrib + emake \ + WITH_BASHCOMPLETION=yes \ + WITH_SYSTEMDUNITS=yes \ + WITH_WGQUICK=$(usex wg-quick) \ + DESTDIR="${D}" \ + BASHCOMPDIR="$(get_bashcompdir)" \ + SYSTEMDUNITDIR="$(systemd_get_systemunitdir)" \ + PREFIX="${EPREFIX}/usr" \ + -C src install + use wg-quick && newinitd "${FILESDIR}/wg-quick.init" wg-quick +} + +pkg_postinst() { + einfo + einfo "After installing WireGuard, if you'd like to try sending some packets through" + einfo "WireGuard, you may use, for testing purposes only, the insecure client.sh" + einfo "test example script:" + einfo + einfo " \$ bzcat ${ROOT}/usr/share/doc/${PF}/contrib/ncat-client-server/client.sh.bz2 | sudo bash -" + einfo + einfo "This will automatically setup interface wg0, through a very insecure transport" + einfo "that is only suitable for demonstration purposes. You can then try loading the" + einfo "hidden website or sending pings:" + einfo + einfo " \$ chromium http://192.168.4.1" + einfo " \$ ping 192.168.4.1" + einfo + einfo "More info on getting started can be found at: https://www.wireguard.com/quickstart/" + einfo +} diff --git a/net-vpn/wireguard-tools/wireguard-tools-1.0.20260223.ebuild b/net-vpn/wireguard-tools/wireguard-tools-1.0.20260223.ebuild new file mode 100644 index 000000000000..42d11e55f7a9 --- /dev/null +++ b/net-vpn/wireguard-tools/wireguard-tools-1.0.20260223.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit linux-info bash-completion-r1 systemd toolchain-funcs + +DESCRIPTION="Required tools for WireGuard, such as wg(8) and wg-quick(8)" +HOMEPAGE="https://www.wireguard.com/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.zx2c4.com/wireguard-tools" +else + SRC_URI="https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${PV}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="+wg-quick selinux" + +BDEPEND="virtual/pkgconfig" +DEPEND="" +RDEPEND="${DEPEND} + wg-quick? ( + || ( net-firewall/nftables net-firewall/iptables ) + virtual/resolvconf + ) + selinux? ( sec-policy/selinux-wireguard ) +" + +wg_quick_optional_config_nob() { + CONFIG_CHECK="$CONFIG_CHECK ~$1" + declare -g ERROR_$1="CONFIG_$1: This option is required for automatic routing of default routes inside of wg-quick(8), though it is not required for general WireGuard usage." +} + +pkg_setup() { + if use wg-quick; then + wg_quick_optional_config_nob IP_ADVANCED_ROUTER + wg_quick_optional_config_nob IP_MULTIPLE_TABLES + wg_quick_optional_config_nob IPV6_MULTIPLE_TABLES + if has_version net-firewall/nftables; then + wg_quick_optional_config_nob NF_TABLES + wg_quick_optional_config_nob NF_TABLES_IPV4 + wg_quick_optional_config_nob NF_TABLES_IPV6 + wg_quick_optional_config_nob NFT_CT + wg_quick_optional_config_nob NFT_FIB + wg_quick_optional_config_nob NFT_FIB_IPV4 + wg_quick_optional_config_nob NFT_FIB_IPV6 + wg_quick_optional_config_nob NF_CONNTRACK_MARK + elif has_version net-firewall/iptables; then + wg_quick_optional_config_nob NETFILTER_XTABLES + wg_quick_optional_config_nob NETFILTER_XT_MARK + wg_quick_optional_config_nob NETFILTER_XT_CONNMARK + wg_quick_optional_config_nob NETFILTER_XT_MATCH_COMMENT + wg_quick_optional_config_nob NETFILTER_XT_MATCH_ADDRTYPE + wg_quick_optional_config_nob IP6_NF_RAW + wg_quick_optional_config_nob IP_NF_RAW + wg_quick_optional_config_nob IP6_NF_FILTER + wg_quick_optional_config_nob IP_NF_FILTER + wg_quick_optional_config_nob IP_NF_MANGLE + fi + fi + get_version + if [[ -f $KERNEL_DIR/include/uapi/linux/wireguard.h ]]; then + CONFIG_CHECK="~WIREGUARD $CONFIG_CHECK" + declare -g ERROR_WIREGUARD="CONFIG_WIREGUARD: This option is required for using WireGuard." + elif kernel_is -ge 3 10 0 && kernel_is -lt 5 6 0 && ! has_version net-vpn/wireguard-modules; then + ewarn + ewarn "Your kernel does not appear to have upstream support for WireGuard" + ewarn "via CONFIG_WIREGUARD. However, the net-vpn/wireguard-modules ebuild" + ewarn "contains a compatibility module that should work for your kernel." + ewarn "It is highly recommended to install it:" + ewarn + ewarn " emerge -av net-vpn/wireguard-modules" + ewarn + fi + linux-info_pkg_setup +} + +src_compile() { + emake RUNSTATEDIR="${EPREFIX}/run" -C src CC="$(tc-getCC)" LD="$(tc-getLD)" +} + +src_install() { + dodoc README.md + dodoc -r contrib + emake \ + WITH_BASHCOMPLETION=yes \ + WITH_SYSTEMDUNITS=yes \ + WITH_WGQUICK=$(usex wg-quick) \ + DESTDIR="${D}" \ + BASHCOMPDIR="$(get_bashcompdir)" \ + SYSTEMDUNITDIR="$(systemd_get_systemunitdir)" \ + PREFIX="${EPREFIX}/usr" \ + -C src install + use wg-quick && newinitd "${FILESDIR}/wg-quick.init" wg-quick +} + +pkg_postinst() { + einfo + einfo "After installing WireGuard, if you'd like to try sending some packets through" + einfo "WireGuard, you may use, for testing purposes only, the insecure client.sh" + einfo "test example script:" + einfo + einfo " \$ bzcat ${ROOT}/usr/share/doc/${PF}/contrib/ncat-client-server/client.sh.bz2 | sudo bash -" + einfo + einfo "This will automatically setup interface wg0, through a very insecure transport" + einfo "that is only suitable for demonstration purposes. You can then try loading the" + einfo "hidden website or sending pings:" + einfo + einfo " \$ chromium http://192.168.4.1" + einfo " \$ ping 192.168.4.1" + einfo + einfo "More info on getting started can be found at: https://www.wireguard.com/quickstart/" + einfo +} |
