diff mbox series

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

Message ID 87k0lza9eb.fsf@archlinux.i-did-not-set--mail-host-address--so-tickle-me
State Accepted
Headers show
Series None | expand

Commit Message

Nathan Benedetto Proença July 9, 2021, 1:45 p.m. UTC
Add perl-unicode-collate as biber input

Upstream appears to have fixed this: recent issue was closed after
telling user to use perl-unicode-collate 1.29, which is the one
available.

https://github.com/plk/biber/issues/378
---
 gnu/packages/tex.scm | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

Comments

Thiago Jung Bauermann July 12, 2021, 1:42 a.m. UTC | #1
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.

> ---
>  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?

> @@ -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/debian-bugs-dist@lists.debian.org/
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?
Nathan Benedetto Proença July 13, 2021, 1:19 p.m. UTC | #2
Thiago Jung Bauermann <bauermann@kolabnow.com> 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/debian-bugs-dist@lists.debian.org/
> 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
Thiago Jung Bauermann July 13, 2021, 9:22 p.m. UTC | #3
Em terça-feira, 13 de julho de 2021, às 10:19:56 -03, Nathan Benedetto 
Proença escreveu:
> Thiago Jung Bauermann <bauermann@kolabnow.com> writes:
> > Hi Nathan,
> > 
> > Em sexta-feira, 9 de julho de 2021, às 10:45:16 -03,
> > Nathan Benedetto Proença escreveu:
> > 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?

Yes, and also mark them as v2.

> >> @@ -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.

You are right, it shows:

```
Checking prerequisites...
  requires:
    !  IO::String is not installed

ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the 
versions of the modules indicated above before proceeding with this 
installation

Run 'Build installdeps' to install missing prerequisites.
```

I should have checked the build log to see if everything was ok.

> >> @@ -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/debian-bugs-dist@lists.debian.org/
> > 
> > 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.

Nice! Thanks for doing these tests.

> 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.

That’s true. It doesn’t seem to work even with TeX Live 2019. I’m not 
familiar with texdoc, so I don’t know what could be wrong (or whether it’s 
deliberate).

> 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.

I agree. If files in /share/texmf-dist/doc are only useful with texdoc, 
then either it should be fixed or these files shouldn’t be shipped.

Though since this is a pre-existing problem (as far as I can tell, at 
least) I think it’s better to track it in a separate issue and not 
condition the TeX Live update on it.
Ludovic Courtès July 19, 2021, 2:55 p.m. UTC | #4
Hello Thiago,

I haven’t actually built it yet but the patch series LGTM.

Do you want to resend the whole series, incorporating the changes that
Nathan posted, or is it OK to apply the two Biber patches after yours?

Let me know and I’ll happily push to ‘core-updates’.

Thanks!

Ludo’.
Thiago Jung Bauermann July 19, 2021, 3:23 p.m. UTC | #5
Hi Ludo’,

Em segunda-feira, 19 de julho de 2021, às 11:55:47 -03, Ludovic Courtès 
escreveu:
> Hello Thiago,
> 
> I haven’t actually built it yet but the patch series LGTM.
> 
> Do you want to resend the whole series, incorporating the changes that
> Nathan posted, or is it OK to apply the two Biber patches after yours?

Great! It’s fine to apply the two Biber patches after mine.

> Let me know and I’ll happily push to ‘core-updates’.

Thank you!
Nathan Benedetto Proença July 19, 2021, 3:24 p.m. UTC | #6
I completely understand if you both decide to leave my patch out, and I may
submit it again.

It is my first submission, and I want to sit down and do it calmly (read
about change log and similar things) as it is one my first contributions.

Unfortunately I was unable to look into it so far, but I understand that
that's on me, and I would happily send a new patch later if you both find
it more appropriate.

Ludovic Courtès <ludo@gnu.org> schrieb am Mo., 19. Juli 2021, 11:55:

> Hello Thiago,
>
> I haven’t actually built it yet but the patch series LGTM.
>
> Do you want to resend the whole series, incorporating the changes that
> Nathan posted, or is it OK to apply the two Biber patches after yours?
>
> Let me know and I’ll happily push to ‘core-updates’.
>
> Thanks!
>
> Ludo’.
>
Ludovic Courtès July 21, 2021, 2:06 p.m. UTC | #7
Hi Nathan & Thiago,

Nathan Proença <nathan@vieiraproenca.com> skribis:

> I completely understand if you both decide to leave my patch out, and I may
> submit it again.

No no, it’s a much welcome contribution, don’t worry.  :-)

I pushed the whole series as c3e33474b965ac1b7d91b69b026630e7c707e289:

  c3e33474b9 gnu: biber: Update to 2.16.
  313c69a100 gnu: perl-text-bibtex: Update to 0.88.
  4b11d85655 gnu: TeX Live: Update texlive-latex-pdftexcmds
  35aed80bb6 gnu: TeX Live: Add new dependency to texlive-latex-xkeyval
  8f35bac4cc gnu: TeX Live: Add texlive-latex-l3backend
  ee25e3fcab gnu: TeX Live: Update to TeX Live 2021
  04e80290bf gnu: TeX Live: Use IniTeX to build a couple of packages

I adjusted the Biber patch to remove the patches that are no longer
used, and I also tweaked commit logs.

Currently <https://ci.guix.gnu.org/jobset/core-updates> is only building
core packages so we won’t immediately see if something broke, but
hopefully we’ll turn it on Real Soon Now!

Thank you!

Ludo’.
Thiago Jung Bauermann July 21, 2021, 7:43 p.m. UTC | #8
Hello Ludo’,

Em quarta-feira, 21 de julho de 2021, às 11:06:47 -03, Ludovic Courtès 
escreveu:
> Hi Nathan & Thiago,
> 
> Nathan Proença <nathan@vieiraproenca.com> skribis:
> > I completely understand if you both decide to leave my patch out, and I
> > may submit it again.
> 
> No no, it’s a much welcome contribution, don’t worry.  :-)
> 
> I pushed the whole series as c3e33474b965ac1b7d91b69b026630e7c707e289:
> 
>   c3e33474b9 gnu: biber: Update to 2.16.
>   313c69a100 gnu: perl-text-bibtex: Update to 0.88.
>   4b11d85655 gnu: TeX Live: Update texlive-latex-pdftexcmds
>   35aed80bb6 gnu: TeX Live: Add new dependency to texlive-latex-xkeyval
>   8f35bac4cc gnu: TeX Live: Add texlive-latex-l3backend
>   ee25e3fcab gnu: TeX Live: Update to TeX Live 2021
>   04e80290bf gnu: TeX Live: Use IniTeX to build a couple of packages
> 
> I adjusted the Biber patch to remove the patches that are no longer
> used, and I also tweaked commit logs.

Thank you!

> Currently <https://ci.guix.gnu.org/jobset/core-updates> is only building
> core packages so we won’t immediately see if something broke, but
> hopefully we’ll turn it on Real Soon Now!

Awesome, thanks!

I updated core-updates and built the ‘texlive*’ packages using my shell 
script and they all built successfuly to at least the most basic stuff 
should build.

I even got the texlive-bin package as a substitute. :-)
diff mbox series

Patch

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"))
               (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)
@@ -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/debian-bugs-dist@lists.debian.org/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)