;; SPDX-FileCopyrightText: 2022-2024 Hilton Chain ;; ;; SPDX-License-Identifier: GPL-3.0-or-later (define-module (rosenthal packages networking) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system go) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build)) (define-public cloudflared (package (name "cloudflared") (version "2024.9.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/cloudflare/cloudflared") (commit version))) (file-name (git-file-name name version)) ;; TODO: Unbundle vendored dependencies. ;; (modules '((guix build utils))) ;; (snippet '(delete-file-recursively "vendor")) (sha256 (base32 "0391nrvxi1hlqgd20p0jh0c8smgqfazviijs5ins8wsbszrbjmrw")))) (build-system go-build-system) (arguments (list #:go go-1.23 #:install-source? #f #:import-path "github.com/cloudflare/cloudflared/cmd/cloudflared" #:unpack-path "github.com/cloudflare/cloudflared" #:build-flags #~(list (string-append "-ldflags=" " -X main.Version=" #$(package-version this-package) " -X github.com/cloudflare/cloudflared/cmd/cloudflared/updater.BuiltForPackageManager=Guix")) #:phases #~(modify-phases %standard-phases (add-before 'build 'disable-cgo (lambda _ (setenv "CGO_ENABLED" "0"))) (add-after 'install 'install-documentation (lambda _ (let ((src "src/github.com/cloudflare/cloudflared/cloudflared_man_template") (dst (string-append #$output "/share/man/man1/cloudflared.1"))) (substitute* src (("\\$\\{VERSION\\}") #$(package-version this-package))) (mkdir-p (dirname dst)) (copy-file src dst))))))) (home-page "https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/") (synopsis "Cloudflare Tunnel client") (description "This package provides the command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins. This daemon sits between Cloudflare network and your origin (e.g. a webserver). Cloudflare attracts client requests and sends them to you via this daemon, without requiring you to poke holes on your firewall --- your origin can remain as closed as possible.") (license license:asl2.0))) (define-public socks2http (package (name "socks2http") (version "0.0.0-20160712034938-bafa2cde8eb4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/zenhack/socks2http") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 (base32 "0c388rir9d0cy5vxqxj7m72nra0w5cya4mmgqdcvqmnk2vawdyb9")))) (build-system go-build-system) (arguments (list #:install-source? #f #:import-path "github.com/zenhack/socks2http")) (inputs (list go-golang-org-x-net)) (home-page "https://github.com/zenhack/socks2http") (synopsis "SOCKS5 to HTTP proxy") (description "This package provides a simple tool to plumb HTTP proxy requests through a SOCKS5 proxy.") (license license:expat)))