[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#47392] [PATCH 1/2] gnu: Add laminar.
From: |
Christopher Baines |
Subject: |
[bug#47392] [PATCH 1/2] gnu: Add laminar. |
Date: |
Thu, 25 Mar 2021 15:26:11 +0000 |
* gnu/packages/ci.scm (laminar): New variable.
---
gnu/packages/ci.scm | 104 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index bafe997c82..4e13d01715 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -25,10 +25,13 @@
#:use-module ((guix licenses) #:prefix l:)
#:use-module (gnu packages)
#:use-module (guix packages)
+ #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages check)
#:use-module (gnu packages docbook)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
@@ -40,11 +43,14 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
(define-public cuirass
@@ -170,3 +176,101 @@
intended as a replacement for Hydra.")
(home-page "https://www.gnu.org/software/guix/")
(license l:gpl3+))))
+
+(define-public laminar
+ (package
+ (name "laminar")
+ (version "1.0")
+ (source
+ (origin (method url-fetch)
+ (uri (string-append "https://github.com/ohwgiles/laminar/archive/"
+ version
+ ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11m6h3rdmj2rsmsryy7r40gqccj4gg1cnqwy6blscs87gx4s423g"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; TODO Can't build tests
+ #:configure-flags
+ (list "-DCMAKE_CXX_STANDARD=17"
+ ;; "-DBUILD_TESTS=true" TODO: objcopy: js/stPskyUS: can't add
+ ;; section '.note.GNU-stack': file format not recognized
+ (string-append "-DLAMINAR_VERSION=" ,version))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-CMakeLists.txt
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("file\\(DOWNLOAD.*\n$")
+ "# file download removed by Guix --")
+ (("install\\(FILES etc/laminar.service DESTINATION
\\$\\{SYSTEMD\\_UNITDIR\\}\\)")
+ "")
+ (("install\\(FILES
\\$\\{CMAKE\\_CURRENT\\_BINARY\\_DIR\\}\\/laminar\\.service DESTINATION
\\$\\{SYSTEMD\\_UNITDIR\\}\\)")
+ "")
+ (("install\\(FILES etc/laminar\\.conf DESTINATION \\/etc\\)")
"")
+ (("\\/usr\\/") ""))
+ #t))
+ (add-after 'configure 'copy-in-javascript-and-css
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (mkdir-p "../build/js")
+ (for-each (lambda (file)
+ (copy-file
+ file
+ (string-append
+ "../build/js/" (strip-store-file-name file))))
+ (map (lambda (input)
+ (assoc-ref inputs input))
+ '("vue.min.js"
+ "vue-router.min.js"
+ "ansi_up.js"
+ "Chart.min.js")))
+ #t)))))
+ (inputs
+ `(("capnproto" ,capnproto)
+ ("rapidjson" ,rapidjson)
+ ("sqlite" ,sqlite)
+ ("boost" ,boost)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("googletest" ,googletest)
+
+ ("vue.min.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://cdnjs.cloudflare.com/ajax/libs/"
+ "vue/2.6.12/vue.min.js"))
+ (sha256
+ (base32
+ "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7pq"))))
+ ("vue-router.min.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://cdnjs.cloudflare.com/ajax/libs/"
+ "vue-router/3.4.8/vue-router.min.js"))
+ (sha256
+ (base32
+ "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as"))))
+ ("ansi_up.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/"
+ "drudru/ansi_up/v1.3.0/ansi_up.js"))
+ (sha256
+ (base32
+ "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r"))))
+ ("Chart.min.js"
+ ,(origin (method url-fetch)
+ (uri (string-append "https://cdnjs.cloudflare.com/ajax/libs/"
+ "Chart.js/2.7.2/Chart.min.js"))
+ (sha256
+ (base32
+ "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9"))))))
+ (synopsis "Lightweight Continuous Integration service")
+ (description
+ "Laminar is a lightweight and modular Continuous Integration service. It
+doesn't have a configuration web UI instead uses version-controllable
+configuration files and scripts.
+
+Laminar encourages the use of existing GNU/Linux tools such as bash and cron
+instead of reinventing them.")
+ (home-page "https://laminar.ohwg.net/")
+ (license l:gpl3+)))
--
2.30.1