diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm index 0ce8238f0e..6ab0b73c7f 100644 --- a/gnu/packages/rust-crates.scm +++ b/gnu/packages/rust-crates.scm @@ -34900,6 +34900,15 @@ rust-zerofrom-derive-0.1.6 rust-zerovec-0.10.4 rust-zerovec-derive-0.10.3)) + (git-remote-tor => + (list rust-indoc-0.3.6 + rust-indoc-impl-0.3.6 + rust-proc-macro-hack-0.5.20+deprecated + rust-proc-macro2-1.0.106 + rust-quote-1.0.44 + rust-syn-1.0.109 + rust-unicode-ident-1.0.22 + rust-unindent-0.1.11)) (gitoxide => (list rust-addr2line-0.24.2 rust-adler2-2.0.0 diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 1fb3b1f5fd..98196bec3a 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -66,6 +66,7 @@ ;;; Copyright © 2025 Dariqq ;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz> ;;; Copyright © 2025 Matthew Elwin +;;; Copyright © 2026 Ingar ;;; ;;; This file is part of GNU Guix. ;;; @@ -178,6 +179,7 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages time) #:use-module (gnu packages tls) + #:use-module (gnu packages tor) #:use-module (gnu packages) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -1598,6 +1600,41 @@ The aim is to provide confidential, authenticated Git storage and collaboration using typical untrusted file hosts or services.") (license license:gpl3+))) +(define-public git-remote-tor + (package + (name "git-remote-tor") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "git-remote-tor" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "146nyd5ww073iim48r71knfwnldq635xv732h3kl4ycsh2ki3ycx")))) + (build-system cargo-build-system) + (arguments + (list + #:install-source? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-torify + (lambda* (#:key inputs #:allow-other-keys) + (let ((torsocks (search-input-file inputs "/bin/torsocks"))) + (substitute* '("src/main.rs" "git-remote-tor.sh") + (("Command::new\\(\"torsocks\"\\)") + (string-append "Command::new(\"" torsocks "\")")) + (("exec torsocks") + (string-append "exec " torsocks)) + ((" and torsocks installed") + "")))))))) + (inputs (cons torsocks + (cargo-inputs 'git-remote-tor))) + (home-page "https://agentofuser.com/git-remote-tor/") + (synopsis "Seamless .onion and tor-ified git remotes") + (description + "This package provides Seamless .onion and tor-ified git remotes.") + (license (list license:expat license:asl2.0)))) + (define-public git-repo-go (package (name "git-repo-go")