From ba17af84c889e98e4460022b720f118f76dbf5b9 Mon Sep 17 00:00:00 2001 From: Ryan Prior Date: Mon, 12 Oct 2020 03:50:26 +0000 Subject: [PATCH] gnu: Add go-github-com-bep-golibsass. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/golang.scm: (go-github-com-bep-golibsass): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/golang.scm | 59 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b824ef83b6..d2ca7c44f2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -58,6 +58,7 @@ #:use-module (gnu packages mp3) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) + #:use-module (gnu packages web) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -5874,3 +5875,61 @@ additions.") "Package quicktest provides a collection of Go helpers for writing tests.") (license license:expat))) + +(define-public go-github-com-bep-golibsass + (package + (name "go-github-com-bep-golibsass") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bep/golibsass") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "libsass_src") + #t)))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/bep/golibsass/libsass" + #:unpack-path "github.com/bep/golibsass" + ;; The dev build tag modifies the build to link to system libsass + ;; instead of including the bundled one (which we remove.) + ;; https://github.com/bep/golibsass/blob/v0.7.0/internal/libsass/a__cgo_dev.go + #:build-flags '("-tags" "dev") + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-bindings + ;; Generate bindings for system libsass, replacing the + ;; pre-generated bindings. + (lambda* (#:key inputs unpack-path #:allow-other-keys) + (mkdir-p (string-append "src/" unpack-path "/internal/libsass")) + (let ((libsass-src (string-append (assoc-ref inputs "libsass-src") "/src"))) + (substitute* (string-append "src/" unpack-path "/gen/main.go") + (("filepath.Join\\(rootDir, \"libsass_src\", \"src\"\\)") + (string-append "\"" libsass-src "\"")) + (("../../libsass_src/src/") + libsass-src))) + (invoke "go" "generate" (string-append unpack-path "/gen")) + #t)) + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (if tests? + (invoke "go" "test" import-path "-tags" "dev")) + #t))))) + (propagated-inputs + `(("libsass" ,libsass))) + (native-inputs + `(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest) + ("libsass-src" ,(package-source libsass)))) + (home-page "https://github.com/bep/golibsass") + (synopsis "Easy to use Go bindings for LibSass") + (description + "This package provides SCSS compiler support for Go applications.") + (license license:expat)))