Subject: [bug#49408] [PATCH 2/2] gnu: biber: Update to 2.16

From: Nathan Benedetto Proença <[email-masked]>
Date: Tue, 13 Jul 2021 10:19:56 -0300

Thiago Jung Bauermann <[email-masked]> writes:

> Hi Nathan,
>
> Em sexta-feira, 9 de julho de 2021, às 10:45:16 -03,
> Nathan Benedetto Proença escreveu:
>> Add perl-unicode-collate as biber input
>> 
>> Upstream appears to have fixed this: recent issue was closed after
>
> It took me a while to understand that “this” referred to being able to add
> perl-unicode-collate as input. I suggest joining the two phrases above or
> otherwise rewording them to make it clearer.
>
>> telling user to use perl-unicode-collate 1.29, which is the one
>> available.
>> 
>> https://github.com/plk/biber/issues/378
>
> I also suggest mentioning that the resolution of the issue above is why you 
> are able to drop ‘biber-sortinithash.patch’.
>
> Similarly, I suggest mentioning that issue 239 is also fixed and thus you 
> can drop ‘biber-fix-encoding-write.patch’.
>
> On the other hand, I’m new to the Guix community myself and I noticed that 
> most patches don’t have any description beyond the changelog entry, so an 
> alternate course of action is to remove the description and just using the 
> changelog entry. I have the impression that I’m more attached to commit 
> descriptions than most here.  :-)
>
> Either way, this patch is also missing a changelog entry.

What would be the appropriate course of action? Should I simply send new
patches with changelogs like I have sent these ones?

>> ---
>>  gnu/packages/tex.scm | 15 +++++----------
>>  1 file changed, 5 insertions(+), 10 deletions(-)
>> 
>> diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
>> index b8059b7b73..d86435e1bd 100644
>> --- a/gnu/packages/tex.scm
>> +++ b/gnu/packages/tex.scm
>> @@ -6927,20 +6927,16 @@ values (strings, macros, or numbers) pasted
>> together.") ;; checking the Biber/BibLaTeX compatibility matrix in the
>> BibLaTeX manual ;; at <https://ctan.org/pkg/biblatex>.
>>      (name "biber")
>> -    (version "2.12")
>> +    (version "2.16")
>>      (source (origin
>>                (method git-fetch)
>>                (uri (git-reference
>>                      (url "https://github.com/plk/biber/")
>>                      (commit (string-append "v" version))))
>>                (file-name (git-file-name name version))
>> -              ;; TODO: Patch awaiting inclusion upstream (see:
>> -              ;; https://github.com/plk/biber/issues/239).
>> -              (patches (search-patches "biber-fix-encoding-write.patch"
>> -                                       "biber-sortinithash.patch"))
>
> Since these patches aren’t used anymore, you should also `git rm` them and
> remove them from `gnu/local.mk`.
>
>>                (sha256
>>                 (base32
>> -               
> "1g1hi6zvf2hmrjly1sidjaxy5440gfqm4p7p3n7kayshnjsmlskx"))))
>> +               
> "0586q8y1f2k23mvb02ccm3qsb35cwskafksixsjaih7a7xcf5gxx"))))
>>      (build-system perl-build-system)
>>      (arguments
>>       `(#:phases
>> @@ -6963,6 +6959,7 @@ values (strings, macros, or numbers) pasted 
> together.")
>>         ("perl-datetime-format-builder" ,perl-datetime-format-builder)
>>         ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian)
>>         ("perl-file-slurper" ,perl-file-slurper)
>> +       ("perl-io-string" ,perl-io-string)
>>         ("perl-ipc-cmd" ,perl-ipc-cmd)
>>         ("perl-ipc-run3" ,perl-ipc-run3)
>>         ("perl-list-allutils" ,perl-list-allutils)
>
> I removed perl-io-string from the inputs and I was still able to build the 
> package. If it is needed, can you add a comment somewhere (not sure if it’s 
> better to mention it in the commit message or put it as a comment in the 
> code) explaining why it’s necessary?

When some of the builds failed, biber listed packages they required, and
perl-io-string was one of them, so this is why I added it.
I believe that if you look into the build log you may find some
complaint about IO::String missing, or that you are using an older
version.

>> @@ -6970,10 +6967,8 @@ values (strings, macros, or numbers) pasted
>> together.") ("perl-mozilla-ca" ,perl-mozilla-ca)
>>         ("perl-regexp-common" ,perl-regexp-common)
>>         ("perl-log-log4perl" ,perl-log-log4perl)
>> -       ;; We cannot use perl-unicode-collate here, because otherwise the
>> -       ;; hardcoded hashes in the tests would differ.  See
>> -       ;; https://mail-archive.com/[email-masked]/
> msg1469249.html
>> -       ;;("perl-unicode-collate" ,perl-unicode-collate)
>> +       ("perl-parse-recdescent" ,perl-parse-recdescent)
>> +       ("perl-unicode-collate" ,perl-unicode-collate)
>>         ("perl-unicode-normalize" ,perl-unicode-normalize)
>>         ("perl-unicode-linebreak" ,perl-unicode-linebreak)
>>         ("perl-encode-eucjpascii" ,perl-encode-eucjpascii)
>
> I applied the patch and verified that perl-text-bibtex builds. You 
> mentioned in my GitLab repo that you use biber for your dissertation.
> With these patches applied, is it working well for you?

Yes, I have been using biber and latex from this sequence of patches for
a couple of days now.

I believe I have identified another problem: texdoc is not working.
Perhaps this is by choice (maybe Guix separates it into another package)
or because we missed something, but I did not have time to look into it.

If texlive does not "ship" texdoc, we may want to play around with some
flags to be sure that we are not packaging documentation files we are
not using.
There are 3.1gb of files in the folder /share/texmf-dist/doc inside of
the store folder generated by this package.

> -- 
> Thanks,
> Thiago