From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: [PATCH] gnu: Add biber Date: Wed, 16 Mar 2016 03:52:21 -0400 Message-ID: <20160316075221.GB30457@jasmine> References: <87h9g84ss0.fsf@chartreuse.clemnt.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39517) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ag6Fo-0003wK-7K for guix-devel@gnu.org; Wed, 16 Mar 2016 03:52:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ag6Fj-0003kA-55 for guix-devel@gnu.org; Wed, 16 Mar 2016 03:52:28 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:42500) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ag6Fj-0003k4-0V for guix-devel@gnu.org; Wed, 16 Mar 2016 03:52:23 -0400 Content-Disposition: inline In-Reply-To: <87h9g84ss0.fsf@chartreuse.clemnt.net> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: =?iso-8859-1?Q?Cl=E9ment_Barth=E9lemy?= Cc: guix-devel@gnu.org On Mon, Mar 14, 2016 at 11:08:15PM +0100, Clément Barthélemy wrote: > Hi everyone, > > Attached is a series of patches (my first!) to package biber (a > BibTeX replacement written in Perl). It's kind of a work in > progress, I still have some problems : > > 1. The build process spits out permission errors for several > packages during the strip phase. It doesn't result in a failure, > so I am not sure what to do. File permission errors? If so, it's possible to change the permissions of files in the package definition — grep in 'gnu/packages' for 'chmod' for examples. > 2. The perl-text-bibtex package cannot validate its runpath > because it doesn't look for a shared library in the right > directory. I disabled the validate-runpath phase, but surely there > is a better way. If that fails, then mostly likely perl-text-bibtex won't work, since it won't be able to find the library. If it seems to work for you, could it be finding a compatible library elsewhere on your system? I don't know the canonical way to provide these paths for Perl packages. Anyone? > 3. I didn't use the git-fetch method for the biber package > because it always pulls an old (1.8) version from github. Weird — did you give v2.4 as the value of the commit? But, do you want to build from the Git repo, or from the tarball? > 4. Finally, I am not sure the executable works, I still need to > test it. Okay, then I will not try to build the patches yet. But I will give some comments below. Thanks for all the patches! > * gnu/packages/perl.scm (perl-autovivification): New variable. Okay > * gnu/packages/perl.scm (perl-business-isbn): New variable. [...] > + (native-inputs > + `(("perl-extutils-makemaker" ,perl-extutils-makemaker) > + ("perl-business-isbn-data" ,perl-business-isbn-data))) Typically, native-inputs are build-time dependencies — is that desired for these? They are "native" to the architecture of the builder and not referenced by the final package, if I understand correctly. I have the same question about some of the later packages in the series, but I won't bring it up again. > * gnu/packages/perl.scm (perl-business-isbn-data): New variable. Okay > * gnu/packages/perl.scm (perl-business-ismn): New variable. Okay. > * gnu/packages/perl.scm (perl-business-issn): New variable. Okay. > * gnu/packages/perl.scm (perl-data-compare): New variable. > + (synopsis "Comparition of data structures") Spelling: s/Comparition/Comparison > + (description "This module compares arbitrary data structures.") How about giving the full sentence from the README? "This module compares arbitrary data structures to see if they are copies of each other." > * gnu/packages/perl.scm (perl-data-uniqid): New variable. Okay. > * gnu/packages/perl.scm (perl-date-simple): New variable. > + (synopsis "Simple date object for Perl") > + (description "This modules provides a simple date object for use in Perl > +program.") "This module provides a simple date object for use in a Perl program." Also, I don't know Perl, so "simple date object" doesn't explain much to me. Would this make sense to a Perl programmer? If so, okay. > * gnu/packages/perl.scm (perl-encode-eucjpascii): New variable. > + (description "This module provides an eucJP-open mapping.") Can you add another sentence to the description that translates the jargon? > +(define-public perl-encode-hanextra This one got mixed up in the commit of perl-encode-eucjpascii. Anyways, it looks good as its own commit. > * gnu/packages/perl.scm (perl-encode-jis2k): New variable. > + (description "This module implements encodings that covers JIS X 0213 > +charset (AKA JIS 2000, hence the module name).") Again, can you try to clarify the jargon in another sentence or two? > * gnu/packages/perl.scm (perl-extutils-libbuilder): New variable. Okay > * gnu/packages/perl.scm (perl-extutils-makemaker): New variable. Okay > * gnu/packages/perl.scm (perl-log-log4perl): New variable. Okay > * gnu/packages/perl.scm (perl-readonly-xs): New variable. Okay > * gnu/packages/perl.scm (perl-text-bibtex): New variable. > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + ;; phase validate-runpath fails because it doesn't look for the > + ;; shared libraries in the %output dir. There may be a better way to > + ;; fix that. > + (delete 'validate-runpath)))) > + (native-inputs > + `(("perl-config-autoconf" ,perl-config-autoconf) > + ("perl-extutils-libbuilder" ,perl-extutils-libbuilder) > + ("perl-module-build" ,perl-module-build))) We need to fix the runpath issue, and decide whether or not the inputs should be native-inputs. > + (home-page "https://github.com/ambs/Text-BibTeX") > + (synopsis "Perl library to deal with BibTeX data") > + (description "Text::BibTeX is a Perl library for reading, parsing, and > +processing BibTeX files.") > + (license gpl1+))) Some of the files are under the Perl license, others GPL2 or later. I didn't check everything. Can you research this and list all of the licenses? > * gnu/packages/perl.scm (perl-text-roman): New variable. Okay > * gnu/packages/perl.scm (perl-tie-cycle): New variable. Okay > * gnu/packages/perl.scm (perl-unicode-collate): New variable. Okay > * gnu/packages/perl.scm (perl-unicode-normalize): New variable. Okay > * gnu/packages/xml.scm (perl-xml-libxslt): New variable. Okay > * gnu/packages/xml.scm (perl-xml-writer): New variable. Okay > * gnu/packages/web.scm (perl-mozilla-ca): New variable. > + (home-page "https://github.com/gisle/mozilla-ca") > + (synopsis "Mozilla's CA cert bundle in PEM format for Perl") > + (description "This module provides a copy of Mozilla's bundle of > +Certificate Authority certificates in a form that can be consumed by modules > +and libraries based on OpenSSL.") How does this work? Do you think it's safe to use? > * gnu/packages/texlive.scm (biber): New variable. [...] > + #:use-module (guix git-download) This can be removed if you decide to use url-fetch instead of git-fetch. > +(define-public biber > + (package > + (name "biber") > + (version "2.4") > + (source > + (origin > + ;; (method git-fetch) always pulls version 1.8 As discussed above... > + (native-inputs > + `(("perl-business-isbn-data" ,perl-business-isbn-data) > + ("perl-class-accessor" ,perl-class-accessor) > + ("perl-config-autoconf" ,perl-config-autoconf) > + ("perl-extutils-libbuilder" ,perl-extutils-libbuilder) > + ("perl-file-find-rule" ,perl-file-find-rule) > + ("perl-file-which" ,perl-file-which) > + ("perl-module-build" ,perl-module-build) > + ("perl-test-differences" ,perl-test-differences) > + ("perl-test-pod" ,perl-test-pod) > + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) > + (inputs ... as above ... > + `(#:phases > + (modify-phases %standard-phases > + (add-before 'check 'set-ld-library-path-and-remove-failing-test Are these changes "atomic"? Or should they be separate phases? > + (lambda* (#:key inputs #:allow-other-keys) > + ;; libttparse.so is in lib64 of perl-text-bibtex > + (let ((path > + (string-append > + (assoc-ref inputs "perl-text-bibtex") "/lib64"))) > + (format #t "setting LD_LIBRARY_PATH to ~s~%" path) Is this debug tracing? > + (setenv "LD_LIBRARY_PATH" path)) Should the package be built with this variable set? > + ;; the sortcase test fails for some reason related to the locale > + ;; (see https://github.com/plk/biber/issues/107) > + (format #t "removing test in t/sort-order.t") > + (substitute* "t/sort-order.t" > + (("use Test::More tests => 15;") "use Test::More tests => 14;")) > + (substitute* "t/sort-order.t" > + ;; l. 504 > + (("^is_deeply\\(.*location - sortcase=1.*$") ""))))))) > + (home-page "https://github.com/plk/biber") > + (synopsis "BibTeX replacement for users of biblatex") > + (description "Biber is a Perl program aiming at providing a customized and > +sophisticated data preparation backend for biblatex.") > + (license license:gpl1+))) ;GPLv1+ | Artistic As above, please provide a list of licenses if there is more than one. I also found the file 'biber/etc/bibtex.g', which bears the GPL2+.