[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: Add sassc.
From: |
Mark H Weaver |
Subject: |
Re: [PATCH] gnu: Add sassc. |
Date: |
Sat, 22 Aug 2015 00:57:27 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
David Thompson <address@hidden> writes:
> From 4a6d1a798a0625d8bc104b86db56f5d2594a5d80 Mon Sep 17 00:00:00 2001
> From: David Thompson <address@hidden>
> Date: Wed, 19 Aug 2015 21:54:57 -0400
> Subject: [PATCH] gnu: Add sassc.
>
> * gnu/packages/web.scm (sassc): New variable.
> ---
> gnu/packages/web.scm | 53
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 53 insertions(+)
>
> diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
> index 48bfbc7..ce4cfeb 100644
> --- a/gnu/packages/web.scm
> +++ b/gnu/packages/web.scm
> @@ -642,6 +642,59 @@ minimum to provide high performance operation.")
> ;; bundled CuTest framework uses a different non-copyleft license.
> (license (list l:asl2.0 (l:non-copyleft
> "file://test/CuTest-README.txt")))))
>
> +(define-public sassc
> + ;; libsass must be statically linked and it isn't included in source the
> + ;; sassc release tarballs, hence this odd package recipe.
> + (let* ((version "3.2.5")
> + (libsass
> + (origin
> + (method url-fetch)
> + (uri (string-append
> + "https://github.com/sass/libsass/archive/"
> + version ".tar.gz"))
> + (file-name (string-append "libsass-" version ".tar.gz"))
> + (sha256
> + (base32
> + "1x25k6p1s1yzsdpzb7bzh8japilmi1mk3z96q66pycbinj9z9is4")))))
> + (package
> + (name "sassc")
> + (version version)
> + (source (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/sass/sassc/archive/"
> + version ".tar.gz"))
Please add a 'file-name' field here.
> + (sha256
> + (base32
> + "1xf3w75w840rj0nx375rxi7mcv1ngqqq8p3zrzjlyx8jfpnldmv5"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:make-flags '("CC=gcc")
> + #:test-target "test"
> + #:phases
> + (modify-phases %standard-phases
> + (delete 'configure)
> + (add-before 'build 'set-libsass-path
> + (lambda* (#:key inputs #:allow-other-keys)
> + (system* "tar" "xvf" (assoc-ref inputs "libsass"))
I think this phase should be renamed, since it is doing much more than
just setting the path. How about 'unpack-libsass-and-set-path'?
The return value of 'system*' should be checked.
Also, I think this pass should go after 'unpack' instead of before
'build', so that the other passes between 'unpack' and 'build' can do
their jobs. It's possible that it doesn't make a difference in this
case, but that might change in a future version of libsass, and anyway
since copy+paste from existing packages is a common method, we should
encourage best practices.
> + (setenv "SASS_LIBSASS_PATH"
> + (string-append (getcwd) "/libsass-" ,version))
> +
> + #t))
I'd probably remove that blank line here.
> + (replace 'install ; no install target
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> + (mkdir-p bin)
> + (copy-file "bin/sassc"
> + (string-append bin "/sassc"))
> + #t))))))
> + (inputs
> + `(("libsass" ,libsass)))
> + (synopsis "CSS pre-processor")
> + (description "SassC is a compiler written in C for the CSS
> pre-processor
> +language known as SASS.")
> + (home-page "http://sass-lang.com/libsass")
> + (license l:expat))))
Otherwise it looks good to me. Thanks!
Mark