From: Roel Janssen <roel@gnu.org>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH 7/7] gnu: Add r-bioccheck.
Date: Thu, 20 Oct 2016 09:59:53 +0200 [thread overview]
Message-ID: <87oa2fpi12.fsf@gnu.org> (raw)
In-Reply-To: <87funrwnn5.fsf@elephly.net>
Ricardo Wurmus writes:
> Roel Janssen <roel@gnu.org> 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 <roel@gnu.org>
>> 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
prev parent reply other threads:[~2016-10-20 7:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-15 11:39 [PATCH 7/7] gnu: Add r-bioccheck Roel Janssen
2016-09-19 12:37 ` Ricardo Wurmus
2016-10-19 14:46 ` Roel Janssen
2016-10-19 17:09 ` Ricardo Wurmus
2016-10-19 22:06 ` Roel Janssen
2016-10-20 6:16 ` Ricardo Wurmus
2016-10-20 7:59 ` Roel Janssen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87oa2fpi12.fsf@gnu.org \
--to=roel@gnu.org \
--cc=guix-devel@gnu.org \
--cc=rekado@elephly.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.