summaryrefslogtreecommitdiff
path: root/src/guix/packages.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guix/packages.scm')
-rw-r--r--src/guix/packages.scm131
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)