diff options
Diffstat (limited to 'src/guix/packages.scm')
-rw-r--r-- | src/guix/packages.scm | 131 |
1 files changed, 60 insertions, 71 deletions
diff --git a/src/guix/packages.scm b/src/guix/packages.scm index 2f48ec9..2fd97bd 100644 --- a/src/guix/packages.scm +++ b/src/guix/packages.scm @@ -2,6 +2,7 @@ #:use-module ((ice-9 textual-ports) #:prefix textual-ports:) #:use-module ((guix licenses) #:prefix licenses:) #:use-module ((org euandre packages) #:prefix packages:) + #:use-module ((org euandre queue) #:prefix queue:) #:use-module (gnu) #:use-module (guix build-system gnu) #:use-module (guix download) @@ -16,13 +17,29 @@ +(define (format-inputs l) + (map (lambda (p) + (list (package-name p) + p + "out")) + l)) + +(define (normalize-inputs l) + (map (compose (lambda (l) + (cons (package-name (car l)) + l)) + list + specification->package+output + symbol->string) + l)) + (define (slurp f) (string-trim-both (call-with-input-file f textual-ports:get-string-all))) -(define (go-package-0 name) +(define (go-package name inputs) (package (name name) (version (slurp (string-append "src/versions/" name "/version"))) @@ -42,91 +59,63 @@ (build-system gnu-build-system) (arguments (list + #:strip-binaries? #f #:make-flags #~(list - (string-append "PREFIX=" %output)) + (string-append "PREFIX=" #$output) + (string-append "CC=" #$(cc-for-target))) #:phases #~(modify-phases %standard-phases (delete 'configure) (add-before 'build 'setenv-golang (lambda _ - (setenv "CGO_ENABLED" "0") - (setenv "GOCACHE" - (string-append (getenv "TMPDIR") "/GOCACHE"))))))) + (define (path->flags option) + (let ((search-path (getenv "GOLIBPACKPATH"))) + (string-join + (map (lambda (path) + (string-append option " " path)) + (if search-path + (string-split search-path #\:) + '())) + " "))) + (setenv "GOCFLAGS" (path->flags "-I")) + (setenv "GOLDFLAGS" (path->flags "-L"))))))) (native-inputs + (append + (format-inputs + (list queue:go-full)) + inputs)) + (native-search-paths (list - go-1.22)) - (synopsis #f) - (description #f) - (home-page #f) + (search-path-specification + (variable "GOLIBPACKPATH") + (files + (list "lib/go"))))) + (synopsis #f) ;; FIXME: get + (description #f) ;; from + (home-page #f) ;; tarball! (license licenses:agpl3+))) -(define (go-package-1 name extra-inputs) - (let ((base (go-package-0 name))) - (package (inherit base) - (arguments - (substitute-keyword-arguments (package-arguments base) - ((#:phases phases) - #~(modify-phases #$phases - (add-before 'build 'add-gobang-vendored-dependency - (lambda _ - (mkdir-p "vendor/euandre.org/gobang/src") - (copy-file - (string-append #$(this-package-native-input "gobang") - "/src/gobang/lib.go") - "vendor/euandre.org/gobang/src/lib.go") - (call-with-output-file - "vendor/modules.txt" - (lambda (port) - (format port - "~a~%~a~%~a~%~a~%" - "# euandre.org/gobang v0.1.0 => ../gobang" - "## explicit; go 1.21.5" - "euandre.org/gobang/src" - "# euandre.org/gobang => ../gobang"))))))))) - (native-inputs - (append - (package-native-inputs base) - `(("gobang" ,gobang "out")) - (map (lambda (p) - `(,(package-name p) ,p "out")) - extra-inputs)))))) - -(define (go-package-2 name) - (let ((base (go-package-1 name '()))) - (package (inherit base) - (arguments - (substitute-keyword-arguments (package-arguments base) - ((#:phases phases) - #~(modify-phases #$phases - (add-before 'build 'add-gosqlite3-vendored-dependency - (lambda _ - (copy-recursively - (string-append #$(this-package-native-input - "go-github-com-mattn-go-sqlite3") - "/src") - "vendor") - (call-with-output-file - "vendor/modules.txt" - (lambda (port) - (format port - "~a~%~a~%~a~%" - "# github.com/mattn/go-sqlite3 v1.14.22" - "## explicit; go 1.19" - "github.com/mattn/go-sqlite3"))))))))) - (native-inputs - (modify-inputs (package-native-inputs base) - (append - go-github-com-mattn-go-sqlite3 - `(,sqlite "out") - `(,sqlite "static"))))))) +(define gobang (go-package "gobang" '())) +(define golite (go-package "golite" (normalize-inputs '(sqlite)))) +(define binder (go-package "binder" (append (format-inputs (list gobang)) + (normalize-inputs '(eut socat lsof))))) +(define wscat (go-package "wscat" (append (format-inputs (list gobang)) + (normalize-inputs '(eut))))) +(define glaze (go-package "glaze" (append (format-inputs (list gobang)) + (normalize-inputs '(eut))))) +(define untls (go-package "untls" (append (format-inputs (list gobang)) + (normalize-inputs '(eut))))) +(define papod (go-package "papod" (append (format-inputs (list gobang golite)) + (normalize-inputs '(sqlite sqlite:static))))) -(define-public gobang (go-package-0 "gobang")) -(define-public binder (go-package-1 "binder" (list packages:eut socat lsof))) -(define-public papod (go-package-2 "papod")) (list gobang + golite binder + wscat + glaze + untls papod) |