me
/
guix
Archived
1
0
Fork 0

gnu: bioperl-minimal: Avoid top-level cross-module references.

This could lead to circular reference breakage.

* gnu/packages/bioinformatics.scm (bioperl-minimal): Move top-level
references to perl-* variables and their transitive inputs to
'arguments' and 'inputs'.
master
Ludovic Courtès 2021-07-01 17:11:16 +02:00
parent b17ee44212
commit ebb8e44a4a
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 55 additions and 54 deletions

View File

@ -1147,62 +1147,63 @@ alignments and perform the following operations:
(license license:expat))) (license license:expat)))
(define-public bioperl-minimal (define-public bioperl-minimal
(let* ((inputs `(("perl-module-build" ,perl-module-build) (package
("perl-data-stag" ,perl-data-stag) (name "bioperl-minimal")
("perl-libwww" ,perl-libwww) (version "1.7.0")
("perl-uri" ,perl-uri))) (source
(transitive-inputs (origin
(map (compose package-name cadr) (method git-fetch)
(delete-duplicates (uri (git-reference
(concatenate (url "https://github.com/bioperl/bioperl-live")
(map (compose package-transitive-target-inputs cadr) inputs)))))) (commit (string-append "release-"
(package (string-map (lambda (c)
(name "bioperl-minimal") (if (char=? c #\.)
(version "1.7.0") #\- c)) version)))))
(source (file-name (git-file-name name version))
(origin (sha256
(method git-fetch) (base32
(uri (git-reference "0wl8yvzcls59pwwk6m8ahy87pwg6nnibzy5cldbvmcwg2x2w7783"))))
(url "https://github.com/bioperl/bioperl-live") (build-system perl-build-system)
(commit (string-append "release-" (arguments
(string-map (lambda (c) (let ((transitive-inputs
(if (char=? c #\.) (map (compose package-name cadr)
#\- c)) version))))) (delete-duplicates
(file-name (git-file-name name version)) (concatenate
(sha256 (map (compose package-transitive-target-inputs cadr)
(base32 (package-inputs this-package)))))))
"0wl8yvzcls59pwwk6m8ahy87pwg6nnibzy5cldbvmcwg2x2w7783"))))
(build-system perl-build-system)
(arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after (add-after
'install 'wrap-programs 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Make sure all executables in "bin" find the required Perl ;; Make sure all executables in "bin" find the required Perl
;; modules at runtime. As the PERL5LIB variable contains also ;; modules at runtime. As the PERL5LIB variable contains also
;; the paths of native inputs, we pick the transitive target ;; the paths of native inputs, we pick the transitive target
;; inputs from %build-inputs. ;; inputs from %build-inputs.
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin/")) (bin (string-append out "/bin/"))
(path (string-join (path (string-join
(cons (string-append out "/lib/perl5/site_perl") (cons (string-append out "/lib/perl5/site_perl")
(map (lambda (name) (map (lambda (name)
(assoc-ref %build-inputs name)) (assoc-ref %build-inputs name))
',transitive-inputs)) ',transitive-inputs))
":"))) ":")))
(for-each (lambda (file) (for-each (lambda (file)
(wrap-program file (wrap-program file
`("PERL5LIB" ":" prefix (,path)))) `("PERL5LIB" ":" prefix (,path))))
(find-files bin "\\.pl$")) (find-files bin "\\.pl$"))
#t)))))) #t)))))))
(inputs inputs) (inputs
(native-inputs `(("perl-module-build" ,perl-module-build)
`(("perl-test-most" ,perl-test-most))) ("perl-data-stag" ,perl-data-stag)
(home-page "https://metacpan.org/release/BioPerl") ("perl-libwww" ,perl-libwww)
(synopsis "Bioinformatics toolkit") ("perl-uri" ,perl-uri)))
(description (native-inputs
"BioPerl is the product of a community effort to produce Perl code which `(("perl-test-most" ,perl-test-most)))
(home-page "https://metacpan.org/release/BioPerl")
(synopsis "Bioinformatics toolkit")
(description
"BioPerl is the product of a community effort to produce Perl code which
is useful in biology. Examples include Sequence objects, Alignment objects is useful in biology. Examples include Sequence objects, Alignment objects
and database searching objects. These objects not only do what they are and database searching objects. These objects not only do what they are
advertised to do in the documentation, but they also interact - Alignment advertised to do in the documentation, but they also interact - Alignment
@ -1210,7 +1211,7 @@ objects are made from the Sequence objects, Sequence objects have access to
Annotation and SeqFeature objects and databases, Blast objects can be Annotation and SeqFeature objects and databases, Blast objects can be
converted to Alignment objects, and so on. This means that the objects converted to Alignment objects, and so on. This means that the objects
provide a coordinated and extensible framework to do computational biology.") provide a coordinated and extensible framework to do computational biology.")
(license license:perl-license)))) (license license:perl-license)))
(define-public perl-bio-db-hts (define-public perl-bio-db-hts
(package (package