[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 7/7] gnu: Add r-bioccheck.
From: |
Roel Janssen |
Subject: |
Re: [PATCH 7/7] gnu: Add r-bioccheck. |
Date: |
Thu, 20 Oct 2016 09:59:53 +0200 |
User-agent: |
mu4e 0.9.17; emacs 25.1.1 |
Ricardo Wurmus writes:
> Roel Janssen <address@hidden> writes:
>
>>>> +(define-public r-bioccheck
>>>> + (package
>>>> + (name "r-bioccheck")
>>>> + (version "1.10.0")
>>>> + (source (origin
>>>> + (method url-fetch)
>>>> + (uri (bioconductor-uri "BiocCheck" version))
>>>> + (sha256
>>>> + (base32
>>>> + "1rfy37xg1nc2cmgbclvzsi7sgmdcdjiahsx9crgx3yaw7kxgiack"))))
>>>> + (properties
>>>> + `((upstream-name . "BiocCheck")))
>>>> + (build-system r-build-system)
>>>> + (arguments
>>>> + '(#:phases
>>>> + (modify-phases %standard-phases
>>>> + ;; This package can be used by calling BiocCheck(<package>) from
>>>> + ;; within R, or by running R CMD BiocCheck <package>. This phase
>>>> + ;; makes sure the latter works. For this to work, the BiocCheck
>>>> + ;; script must be somewhere on the PATH (not the R bin
>>>> directory).
>>>> + (add-after 'install 'install-bioccheck-subcommand
>>>> + (lambda _
>>>> + (let ((dest-dir (string-append %output "/bin"))
>>>> + (script-dir
>>>> + (string-append %output
>>>> "/site-library/BiocCheck/script/")))
>>>
>>> We usually prefer to do this
>>>
>>> (lambda* (#:key outputs #:allow-other-keys)
>>> (let* ((out (assoc-ref outputs "out"))
>>> … out …)))
>>>
>>> instead of using the magical “%output”.
>>
>> Ofcourse! Sorry, I should've known this.
>>
>>
>>>> + (mkdir-p dest-dir)
>>>> + (zero? (system* "ln" "--symbolic"
>>>> + (string-append script-dir
>>>> "/checkBadDeps.R")
>>>> + (string-append dest-dir
>>>> "/checkBadDeps.R")))
>>>> + (zero? (system* "ln" "--symbolic"
>>>> + (string-append script-dir "/BiocCheck")
>>>> + (string-append dest-dir
>>>> "/BiocCheck")))))))))
>>>
>>> Would it work to use “install-file” here (or to use Guile’s “symlink
>>> oldpath newpath”) instead of shelling out?
>>
>> I prefer symlinking. Sorry for being a shell-out. I updated the patch
>> to use Guile's @code{symlink} instead (I wasn't aware of this function!).
>>
>> Here's the new patch:
>>
>>>From cce8a9580645011cf8f6b259296a4779633aa2af Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <address@hidden>
>> Date: Thu, 20 Oct 2016 00:00:33 +0200
>> Subject: [PATCH] gnu: Add r-bioccheck.
>>
>> * gnu/packages/bioinformatics.scm (r-bioccheck): New variable.
>> ---
>> gnu/packages/bioinformatics.scm | 46
>> +++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 46 insertions(+)
>>
>> diff --git a/gnu/packages/bioinformatics.scm
>> b/gnu/packages/bioinformatics.scm
>> index 3fe7b5f..8e426d0 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -5936,6 +5936,52 @@ Bioconductor PDF and HTML documents. Package
>> vignettes illustrate use and
>> functionality.")
>> (license license:artistic2.0)))
>>
>> +(define-public r-bioccheck
>> + (package
>> + (name "r-bioccheck")
>> + (version "1.10.0")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (bioconductor-uri "BiocCheck" version))
>> + (sha256
>> + (base32
>> + "1rfy37xg1nc2cmgbclvzsi7sgmdcdjiahsx9crgx3yaw7kxgiack"))))
>> + (properties
>> + `((upstream-name . "BiocCheck")))
>> + (build-system r-build-system)
>> + (arguments
>> + '(#:phases
>> + (modify-phases %standard-phases
>> + ;; This package can be used by calling BiocCheck(<package>) from
>> + ;; within R, or by running R CMD BiocCheck <package>. This phase
>> + ;; makes sure the latter works. For this to work, the BiocCheck
>> + ;; script must be somewhere on the PATH (not the R bin directory).
>> + (add-after 'install 'install-bioccheck-subcommand
>> + (lambda* (#:key outputs #:allow-other-keys)
>> + (let ((dest-dir (string-append (assoc-ref outputs "out")
>> "/bin"))
>> + (script-dir
>> + (string-append %output
>> "/site-library/BiocCheck/script/")))
>
> You missed one “%output” :)
> I’d bind “out” it in the “let*” so that you don’t need to “assoc-ref” twice.
Aha! That's why you suggested binding "out" in the "let*".. I applied
your suggestion.
>> + (mkdir-p dest-dir)
>> + (symlink (string-append script-dir "/checkBadDeps.R")
>> + (string-append dest-dir "/checkBadDeps.R"))
>> + (symlink (string-append script-dir "/BiocCheck")
>> + (string-append dest-dir "/BiocCheck"))))))))
>
> One last thing: please let the lambda end with #t.
> Other than that it’s all good.
Right. The return value of @code{symlink} is unspecified, so I just
added #t to the end of the lambda.
I pushed the patch with these changes.
Thanks a lot for your time!
Kind regards,
Roel Janssen