gnu: syncthing: Split into two outputs.
* gnu/packages/syncthing.scm (syncthing)[outputs]: New field. [arguments]: Change the 'install' and 'install-docs' phases to install to the two outputs.
This commit is contained in:
parent
1899ef0b83
commit
c330c27f7f
|
@ -38,6 +38,10 @@
|
||||||
(base32
|
(base32
|
||||||
"07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f"))))
|
"07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f"))))
|
||||||
(build-system go-build-system)
|
(build-system go-build-system)
|
||||||
|
;; The primary Syncthing executable goes to "out", while the auxiliary
|
||||||
|
;; server programs and utility tools go to "utils". This reduces the size
|
||||||
|
;; of "out" by ~80 MiB.
|
||||||
|
(outputs '("out" "utils"))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:import-path "github.com/syncthing/syncthing"
|
`(#:import-path "github.com/syncthing/syncthing"
|
||||||
#:unpack-path "github.com/syncthing"
|
#:unpack-path "github.com/syncthing"
|
||||||
|
@ -74,21 +78,39 @@
|
||||||
(zero? (system* "go" "run" "build.go" "test")))))
|
(zero? (system* "go" "run" "build.go" "test")))))
|
||||||
|
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda _
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out"))
|
||||||
|
(utils (assoc-ref outputs "utils"))
|
||||||
|
(src "src/github.com/syncthing/syncthing/bin/"))
|
||||||
|
(install-file (string-append src "/syncthing")
|
||||||
|
(string-append out "/bin"))
|
||||||
|
(delete-file (string-append src "/syncthing"))
|
||||||
(copy-recursively "src/github.com/syncthing/syncthing/bin/"
|
(copy-recursively "src/github.com/syncthing/syncthing/bin/"
|
||||||
(string-append (assoc-ref %outputs "out") "/bin"))
|
(string-append utils "/bin"))
|
||||||
#t))
|
#t)))
|
||||||
|
|
||||||
(add-after 'install 'install-docs
|
(add-after 'install 'install-docs
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(man (string-append out "/share/man/man"))
|
(utils (assoc-ref outputs "utils"))
|
||||||
|
(man "/share/man")
|
||||||
|
(man-section (string-append man "/man"))
|
||||||
(src "src/github.com/syncthing/syncthing/man/"))
|
(src "src/github.com/syncthing/syncthing/man/"))
|
||||||
|
;; Install all the man pages to "out".
|
||||||
(for-each
|
(for-each
|
||||||
(lambda (file)
|
(lambda (file)
|
||||||
(install-file file
|
(install-file file
|
||||||
(string-append man (string-take-right file 1))))
|
(string-append out man-section
|
||||||
|
(string-take-right file 1))))
|
||||||
(find-files src "\\.[1-9]"))
|
(find-files src "\\.[1-9]"))
|
||||||
|
;; Copy all the man pages to "utils"
|
||||||
|
(copy-recursively (string-append out man)
|
||||||
|
(string-append utils man))
|
||||||
|
;; Delete extraneous man pages from "out" and "utils",
|
||||||
|
;; respectively.
|
||||||
|
(delete-file (string-append out man "/man1/stdiscosrv.1"))
|
||||||
|
(delete-file (string-append out man "/man1/strelaysrv.1"))
|
||||||
|
(delete-file (string-append utils man "/man1/syncthing.1"))
|
||||||
#t))))))
|
#t))))))
|
||||||
;; When updating Syncthing, check 'vendor/manifest' in the source
|
;; When updating Syncthing, check 'vendor/manifest' in the source
|
||||||
;; distribution to ensure we are using the correct versions of these
|
;; distribution to ensure we are using the correct versions of these
|
||||||
|
|
Loading…
Reference in New Issue