summaryrefslogtreecommitdiff
path: root/mitch/tailscale.scm
diff options
context:
space:
mode:
Diffstat (limited to 'mitch/tailscale.scm')
-rw-r--r--mitch/tailscale.scm87
1 files changed, 0 insertions, 87 deletions
diff --git a/mitch/tailscale.scm b/mitch/tailscale.scm
deleted file mode 100644
index b6a5265..0000000
--- a/mitch/tailscale.scm
+++ /dev/null
@@ -1,87 +0,0 @@
-(define-module (mitch tailscale)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix utils)
- #:use-module (guix gexp)
- #:use-module (guix download)
- #:use-module (guix packages)
- #:use-module (guix build-system copy)
- #:use-module (guix records)
- #:use-module (ice-9 match)
- #:use-module (guix git-download)
- #:use-module (gnu packages nss)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages base)
- #:use-module (gnu)
- #:use-module (gnu services shepherd)
- #:use-module (gnu packages linux))
-
-(define-public tailscale
- (let ((version "1.96.2"))
- (package
- (name "tailscale")
- (version version)
- (source (origin
- (method url-fetch/tarbomb)
- (uri (string-append "https://pkgs.tailscale.com/stable/tailscale_" version
- "_amd64.tgz"))
- (sha256
- (base32
- "00blgy5j5x0zp45xvy421mpkg5bdvzf2gnbywil3rnspxhysz8na"))))
- (build-system copy-build-system)
- (arguments
- (list
- #:install-plan
- #~`((,(string-append "tailscale_" #$version "_amd64/") "/bin/"))))
- (propagated-inputs ; iptables is required for setting up routing
- (list iptables))
- (home-page "https://tailscale.com")
- (synopsis "Tailscale client")
- (description "Tailscale client")
- (license license:bsd-3))))
-
-(define-public tailscaled
- (let ((import-path "tailscale.com/cmd/tailscaled"))
- (package
- (inherit tailscale)
- (name "tailscaled")
- (arguments
- (substitute-keyword-arguments (package-arguments tailscale)
- ((#:import-path _ #f)
- import-path)
- ((#:phases phases #~%standard-phases)
- #~(modify-phases #$phases
- (replace 'build
- (lambda _
- ;; idk why but we have to unset GO111MODULE in order for the build to work
- ;; [btv] maybe vendor stuff is not getting picked up in go path?
- (unsetenv "GO111MODULE")
- (chdir "./src/tailscale.com")
- (invoke "go" "build" "-o" "tailscaled"
- #$import-path)
- (chdir "../..")))
- (replace 'install
- (lambda _
- (install-file "src/tailscale.com/tailscaled" (string-append #$output "/bin"))))))))
- (synopsis "Tailscale daemon")
- (description "Tailscale daemon"))))
-
-(define-public (tailscale-configuration) '())
-
-(define (tailscale-shepherd-service config)
- (list (shepherd-service
- (documentation "Run the tailscale daemon")
- (provision '(tailscaled tailscale))
- (requirement '(user-processes))
- (actions '())
- (start
- #~(lambda _
- (fork+exec-command (list #$(file-append tailscaled "/bin/tailscaled")))))
- (stop #~(make-kill-destructor)))))
-
-(define-public tailscale-service-type
- (service-type
- (name 'tailscale)
- (extensions
- (list (service-extension shepherd-root-service-type tailscale-shepherd-service)))
- (default-value (tailscale-configuration))
- (description "Run and connect to tailscale")))