This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

2configs.retiolum: swap tinc_pre for Mic92/tincr

tincr is wire-compatible with tinc 1.1pre18 (ExperimentalProtocol=yes,
Ed25519 only). Wrap the package with a /sbin -> bin symlink so
krebs.tinc's ${tincPackage}/sbin/tincd path resolves, and override
tincPackage. Existing peers all have Ed25519 keys; RSA keys in host
files are warned about and ignored.

+121 -6
+19 -6
2configs/retiolum.nix
··· 1 - { config, pkgs, ... }: 1 + { 2 + self, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + let 9 + tincr = self.packages.${pkgs.system}.tincr; 10 + # krebs.tinc invokes ${tincPackage}/sbin/{tinc,tincd}; tincr ships in /bin. 11 + tincrPkg = pkgs.runCommand "tincr-sbin-${tincr.version}" { } '' 12 + mkdir -p $out 13 + cp -r ${tincr}/* $out/ 14 + chmod -R u+w $out 15 + ln -s bin $out/sbin 16 + ''; 17 + in 2 18 3 19 { 4 20 ··· 7 23 8 24 krebs.tinc.retiolum = { 9 25 enable = true; 26 + tincPackage = tincrPkg; 10 27 connectTo = [ 11 28 "neoprism" 12 29 "prism" ··· 55 72 }; 56 73 }; 57 74 58 - nixpkgs.config.packageOverrides = pkgs: { 59 - tinc = pkgs.tinc_pre; 60 - }; 61 - 62 75 environment.systemPackages = [ 63 - pkgs.tinc 76 + tincrPkg 64 77 ]; 65 78 }
+47
5pkgs/tincr/package.nix
··· 1 + { 2 + lib, 3 + rustPlatform, 4 + fetchFromGitHub, 5 + installShellFiles, 6 + }: 7 + 8 + rustPlatform.buildRustPackage { 9 + pname = "tincr"; 10 + version = "0-unstable-2026-04-29"; 11 + 12 + src = fetchFromGitHub { 13 + owner = "Mic92"; 14 + repo = "tincr"; 15 + rev = "acb15fc2e203652f70d2a8c24d2c35d73c396572"; 16 + hash = "sha256-qQ35osywm1Z8zfN+GYy7wxhG9bQ7U7X1Y+ETmZ6p2nw="; 17 + }; 18 + 19 + cargoHash = "sha256-3zq9SoOiBRqwXWr7N0NRW+oM2OLu8/IY3B3WCCZ0Chw="; 20 + 21 + # Just the deployable bin crates; --workspace would pull tinc-ffi's cc. 22 + cargoBuildFlags = [ 23 + "-p" 24 + "tincd" 25 + "-p" 26 + "tinc-tools" 27 + ]; 28 + 29 + # netns tests need bwrap+userns the build sandbox lacks. 30 + doCheck = false; 31 + 32 + nativeBuildInputs = [ installShellFiles ]; 33 + 34 + postInstall = '' 35 + installManPage man/*.[0-9] 36 + ''; 37 + 38 + passthru.updateScript = ./update.sh; 39 + 40 + meta = { 41 + description = "Drop-in Rust rewrite of tinc 1.1 VPN (SPTPS-only, Ed25519)"; 42 + homepage = "https://github.com/Mic92/tincr"; 43 + license = lib.licenses.gpl2Plus; 44 + mainProgram = "tincd"; 45 + platforms = lib.platforms.linux; 46 + }; 47 + }
+55
5pkgs/tincr/update.sh
··· 1 + #!/usr/bin/env bash 2 + set -euo pipefail 3 + 4 + owner=Mic92 5 + repo=tincr 6 + branch=main 7 + attr=tincr 8 + 9 + pkg="$(dirname "$(realpath "$0")")/package.nix" 10 + 11 + cd "$(dirname "$(realpath "$0")")" 12 + while [ ! -e flake.nix ] && [ "$PWD" != / ]; do cd ..; done 13 + system=$(nix eval --raw --impure --expr 'builtins.currentSystem') 14 + 15 + new_rev=$(curl -fsSL "https://api.github.com/repos/$owner/$repo/commits/$branch" | jq -r .sha) 16 + old_rev=$(grep -oP '^\s*rev = "\K[^"]+' "$pkg") 17 + if [ "$old_rev" = "$new_rev" ]; then 18 + echo "$attr: already up to date ($new_rev)" 19 + exit 0 20 + fi 21 + 22 + new_date=$(curl -fsSL "https://api.github.com/repos/$owner/$repo/commits/$new_rev" | jq -r .commit.author.date | cut -d T -f1) 23 + new_version="0-unstable-$new_date" 24 + 25 + # Bump rev + version, leave hashes for nix to complain about. 26 + sed -i \ 27 + -e "s|^\(\s*\)rev = \".*\"|\1rev = \"$new_rev\"|" \ 28 + -e "s|^\(\s*\)version = \".*\"|\1version = \"$new_version\"|" \ 29 + "$pkg" 30 + 31 + # Each FOD reports its own hash on first miss; build twice (src, then vendor). 32 + extract_got() { 33 + awk '/got:/{print $2; exit}' 34 + } 35 + update_hash() { 36 + local field=$1 new=$2 37 + sed -i "s|^\(\s*\)$field = \"[^\"]*\"|\1$field = \"$new\"|" "$pkg" 38 + } 39 + 40 + build_attr=".#packages.$system.$attr" 41 + 42 + if got=$(nix build --no-link "$build_attr" 2>&1 | tee /dev/stderr | extract_got) \ 43 + && [ -n "$got" ]; then 44 + update_hash hash "$got" 45 + echo "$attr: src hash → $got" 46 + fi 47 + 48 + if got=$(nix build --no-link "$build_attr" 2>&1 | tee /dev/stderr | extract_got) \ 49 + && [ -n "$got" ]; then 50 + update_hash cargoHash "$got" 51 + echo "$attr: cargoHash → $got" 52 + fi 53 + 54 + echo "$attr: updated to $new_rev ($new_version)" 55 + nix build --no-link "$build_attr"