Bug 1165620 - Review Request: biber - Command-line bibliographic manager, BibTeX replacement
Summary: Review Request: biber - Command-line bibliographic manager, BibTeX replacement
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Petr Šabata
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1161126 1165625 1165627 1165628 1165629 1165631 1165634 1165637 1165639 1165641
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-11-19 11:28 UTC by Colin Macdonald
Modified: 2015-06-05 23:59 UTC (History)
5 users (show)

Fixed In Version: biber-1.8-8.fc22
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-06-05 23:59:50 UTC
psabata: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Colin Macdonald 2014-11-19 11:28:55 UTC
Spec URL: http://people.maths.ox.ac.uk/macdonald/fedora/biber.spec
SRPM URL: http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-3.fc21.src.rpm

Description:
Biber is a command-line tool for dealing with bibliographic databases.
Biber offers a large superset of legacy BibTeX (texlive-bibtex)
functionality.  It is often used with the popular BibLaTeX package
(texlive-biblatex), where it is required for some features.

Fedora Account System Username: cbm

I maintain copr's for this, e.g., at https://copr.fedoraproject.org/coprs/cbm/f21-biber-1.8/ and https://copr.fedoraproject.org/coprs/cbm/biber-1.8.

I will also submit a set of perl dependencies too.

I would like to co-maintain with Mary Ellen Foster (usename: mef), who wrote the first version of this spec file.

Comment 1 Colin Macdonald 2014-11-19 12:32:22 UTC
Question: am I specifying the dependency on texlive-bibtex correctly?  The current version in F21 is "4:svn32245.2.8a".  I want to specify that biber should not be used with versions less than 2.8.  So I put:

Requires:       texlive-biblatex >= 4:svn32245.2.8

Is that right?  What if it compares based on the epoch or svn numbers intead?  Presumably the svn number would not increase while the version number went down :)  But still, is there a "proper" way to specify its the 2.8 I care about?

Comment 2 Petr Šabata 2014-11-19 13:24:11 UTC
Hmm, well, there's no way to guarantee you will always end up with 2.8+, no matter what you put there.  If we suddenly ship texlive-biblatex-5:1.0, it will be considered a newer version because that's just how epoch works.  That svn part is also more significant than "2.8", so 4:svn32246.1.0 would also be considered newer.

The good thing is it's very unlikely something like that would happen so I would suggest picking the oldest "2.8" release we've had and require that or newer.  Which is probably what you're doing :)

Also, check out rpmdev-vercmp.  It's a helpful tool when you're not sure how rpm would compare certain version string.

Comment 3 Colin Macdonald 2014-11-25 01:36:29 UTC
Updated:

https://raw.githubusercontent.com/cbm755/fedora-spec/master/biber.spec

http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-4.fc21.src.rpm

1.  @psabata: What should I do about this?

> + perl Build.PL
> Checking prerequisites...
>   requires:
>    !  Unicode::Collate (0.97) is installed, but we need version >= 0.98

It seems to work without.  And AFAICT, Unicode::Collate is baked-in to our perl (?)  The META.json file also says this.

2.  I may need to fix-up Source0.  IIRC (months ago) I followed some guide on packaging from git and re-zipped it as "plk-biber-v1.8-0-g848ca84.zip".  But surely I can just use "biber-848ca84face08bdba8a6e8d95447b0ec71e56804.zip", as served by
"https://github.com/plk/biber/archive/848ca84face08bdba8a6e8d95447b0ec71e56804.zip"?

3.  Actually, on re-reading that, I should probably just take "http://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/1.8/biblatex-biber.tar.gz" instead.  Although this filename is not versioned...

Comment 4 Colin Macdonald 2014-11-26 00:00:54 UTC
Another update, using the upstream tar.gz instead of a git commit

https://raw.githubusercontent.com/cbm755/fedora-spec/master/biber.spec

http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-5.fc21.src.rpm

This still has the Unicode::Collate issue from Comment #3.

Comment 5 Petr Šabata 2014-11-28 14:14:13 UTC
(In reply to Colin Macdonald from comment #3)
> 1.  @psabata: What should I do about this?
> 
> > + perl Build.PL
> > Checking prerequisites...
> >   requires:
> >    !  Unicode::Collate (0.97) is installed, but we need version >= 0.98
> 
> It seems to work without.  And AFAICT, Unicode::Collate is baked-in to our
> perl (?)  The META.json file also says this.

Unicode::Collate is indeed bundled with perl but also lives on on CPAN as a separate distribution ("dual-lives").  What we can do is to subpackage the module from the perl package and then package the standalone Unicode::Collate module which will update and replace the perl subpackage.

We do this for many modules already and plan to subpackage most or all of them at some point.  It's an ongoing work.  If you really need the new Unicode::Collate, I can do that for you.

> 2.  I may need to fix-up Source0.  IIRC (months ago) I followed some guide
> on packaging from git and re-zipped it as "plk-biber-v1.8-0-g848ca84.zip". 
> But surely I can just use
> "biber-848ca84face08bdba8a6e8d95447b0ec71e56804.zip", as served by
> "https://github.com/plk/biber/archive/
> 848ca84face08bdba8a6e8d95447b0ec71e56804.zip"?

Github generates tarballs from tags, you can use these:
https://github.com/plk/biber/releases

Also, v1.9 has been available for a while.  Any reason to stick with 1.8?

> 3.  Actually, on re-reading that, I should probably just take
> "http://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/1.8/
> biblatex-biber.tar.gz" instead.  Although this filename is not versioned...

I would use the abovementioned tarballs.

Comment 6 Colin Macdonald 2014-11-28 15:18:12 UTC
> Also, v1.9 has been available for a while.  Any reason to stick with 1.8?

Fedora would need a newer texlive-biblatex, I documented this in the spec file.  See also bug #1165437.

Comment 7 Colin Macdonald 2014-11-28 15:27:30 UTC
I guess (but don't know) that it really needed the a newer Unicode::Collate.  Here is a commit for biber 1.9 which increments it to 1.04:

https://github.com/plk/biber/commit/4a49c1a679de30a8834bb79844b08e49ced50058

I could ask upstream?  Or ask you to do the subpackage :)  If latter, I'll file a bug for that.

Comment 8 Colin Macdonald 2014-11-28 15:29:50 UTC
BTW, I've noticed I don't have the BR and Requires quite right here.  I will take another pass at it.

But first: if I need something at both build-time and run-time, do I need to list it on both?  I.e., does build-time inherit the run-time deps?

Comment 9 Petr Šabata 2014-11-28 15:59:26 UTC
(In reply to Colin Macdonald from comment #6)
> > Also, v1.9 has been available for a while.  Any reason to stick with 1.8?
> 
> Fedora would need a newer texlive-biblatex, I documented this in the spec
> file.  See also bug #1165437.

Aha, I see.  I haven't looked at the package yet :)

(In reply to Colin Macdonald from comment #7)
> I guess (but don't know) that it really needed the a newer Unicode::Collate.
> Here is a commit for biber 1.9 which increments it to 1.04:
> 
> https://github.com/plk/biber/commit/4a49c1a679de30a8834bb79844b08e49ced50058
> 
> I could ask upstream?  Or ask you to do the subpackage :)  If latter, I'll
> file a bug for that.

It could be just that the author had that specific version of Unicode::Collate installed.  Maybe it's not really required.

Or maybe it is.  Maybe biber breaks in some situations if Unicode::Collate is too old :)

You can ask upstream, sure.  I'll subpackage it (next week) anyway.

(In reply to Colin Macdonald from comment #8)
> BTW, I've noticed I don't have the BR and Requires quite right here.  I will
> take another pass at it.
> 
> But first: if I need something at both build-time and run-time, do I need to
> list it on both?  I.e., does build-time inherit the run-time deps?

There's no inheritence.  These can differ and they often do (e.g. when not everything is tested).  You need to list that twice.

Comment 10 Colin Macdonald 2014-12-03 22:31:10 UTC
Update deps:

https://raw.githubusercontent.com/cbm755/fedora-spec/master/biber.spec

http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-6.fc21.src.rpm

Other than the Unicode::Collate version, I think this is ready for review.

I have asked upstream about Unicode::Collate (https://github.com/plk/biber/issues/54)

Comment 11 Colin Macdonald 2014-12-05 01:08:14 UTC
Upstream thinks we can relax the Unicode::Collate requirement so I'll do that and leave a comment in the spec file on my next revision.

Comment 12 Colin Macdonald 2015-03-19 15:39:14 UTC
Sorry for ignoring this for a long time.

I've made the Unicode::Collate change.  Can you review this?

https://raw.githubusercontent.com/cbm755/fedora-spec/master/biber.spec

http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-7.fc21.src.rpm

Comment 13 Petr Šabata 2015-05-12 14:47:07 UTC
So, after checking your long dep list:

Missing build-time dependencies:
- perl itself
  - it is called in the spec file
- Log::Log4perl::Appender::File
- Log::Log4perl::Appender::Screen
- Log::Log4perl::Layout::PatternLayout
- Log::Log4perl::Layout::SimpleLayout
  - these are via tests -> Biber -> Biber::Config
- re
  - this is via tests -> Biber -> Biber::Utils
- Text::BibTeX::Name
- Text::BibTeX::NameFormat
  - these are via tests -> Biber::Input::file::bibtex

I think you can safely drop the following build-time deps:
- Business::ISBN
- Business::ISSN
- Business::ISMN
  - this code isn't tested
- Config::AutoConf
- Encode::EUCJPASCII
- Encode::HanExtra
- Encode::JIS2K
- ExtUtils::LibBuilder
  - these aren't actually used anywhere
- Getopt::Long
  - only used by the script and it's not tested
- List::MoreUtils
  - again, not used anywhere
- LWP::Simple
- LWP::Protocol::https
- Mozila::CA
  - this code isn't tested
- Pod::Usage
  - only used by the script, not tested
- Readonly
- Readonly::XS
  - not tested; furthermore, the XS variant is only recommended
    for improved performance
- Unicode::Collate
  - amusing, isn't it? It's not actually used anywhere; some of its
    submodules are but not this one -- and with the dependency
    constraint removed, you can just drop this completely
- XML::LibXSLT
  - this code isn't tested
- XML::Writer::String
  - this isn't used anywhere, not even mentioned in META;
    where did you find it?...

Now, for the runtime dependencies.  These can be dropped from the
list because rpmbuild's generators will automagically find them for you:
- autovivification
- Data::Dump
- Data::Compare
- Data::Simple
- File::Slurp
- IPC::Cmd
- IPC::Run3
- List::AllUtils
- Log::Log4perl
- Regexp::Common
- Unicode::GCString
- URI
- XML::Writer

And these just aren't needed at all:
- Encode::EUCJPASCII
- Encode::HanExtra
- Encode::JIS2K
- List::MoreUtils
- Unicode::Collate
- XML::Writer::String

Note Text::BibTeX gets autodetected too, however, it's missing the version constraint.  Therefore keep your explicit runtime dependency and filter out the autogenerated one, like this, on one line:

%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Text::BibTeX\\)$

You also need to add this to your runtime dep list, the generators won't
pick it up:
- Unicode::Collate::Locale


That should be all for the deps, next...

The license tag is incorrect.  The README file states the distribution is licensed under GPL+ or Artistic 2.0, however, all the code mentions Artistic 2.0 only.  I would suggest using `(GPL+ or Artistic 2.0) and Artistic 2.0' here.

And perhaps package TODO.org as %doc, too.


Hopefully that's all there is to this review :)

Comment 14 Colin Macdonald 2015-05-20 00:06:25 UTC
Thank you Petr!

1.  Regarding this:

> - XML::Writer::String
>   - this isn't used anywhere, not even mentioned in META;
>     where did you find it?...

I'm not sure.  I suspect it was in the original work of @mef and I just
kept it.  So perhaps a previous biber depended on it.

2.  I added that package to Fedora a few months: but no need to retire it over this I assume?

3.  Some of the deps we've just dropped are explicitly mentioned in
the various meta files: if I get a chance I'll look into fixing those upstream.

4.  New version:

https://raw.githubusercontent.com/cbm755/fedora-spec/master/biber.spec

http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-8.fc22.src.rpm

Thanks again.

Comment 15 Colin Macdonald 2015-05-20 00:08:03 UTC
Oh and here is a the diff of my latest change in case that helps:

https://github.com/cbm755/fedora-spec/commit/1197bb3b39655e315a57f9d124594a29ade2a458.patch

Comment 16 Petr Šabata 2015-05-20 12:27:21 UTC
(In reply to Colin Macdonald from comment #14)
> Thank you Petr!
> 
> 1.  Regarding this:
> 
> > - XML::Writer::String
> >   - this isn't used anywhere, not even mentioned in META;
> >     where did you find it?...
> 
> I'm not sure.  I suspect it was in the original work of @mef and I just
> kept it.  So perhaps a previous biber depended on it.
> 
> 2.  I added that package to Fedora a few months: but no need to retire it
> over this I assume?

Of course not.

> 3.  Some of the deps we've just dropped are explicitly mentioned in
> the various meta files: if I get a chance I'll look into fixing those
> upstream.

Upstreams rarely care about this but sure, do try.

> 4.  New version:
> 
> https://raw.githubusercontent.com/cbm755/fedora-spec/master/biber.spec
> 
> http://people.maths.ox.ac.uk/macdonald/fedora/biber-1.8-8.fc22.src.rpm
> 
> Thanks again.

I confirm you've done everything I asked and I hereby approve this package :)

Comment 17 Colin Macdonald 2015-05-20 16:35:48 UTC
New Package SCM Request
=======================
Package Name: biber
Short Description: Command-line bibliographic manager, BibTeX replacement
Upstream URL: http://biblatex-biber.sourceforge.net/
Owners: cbm mef jnovy
Branches: f22
InitialCC: perl-sig

Comment 18 Gwyn Ciesla 2015-05-20 17:50:53 UTC
Git done (by process-git-requests).

Comment 19 Fedora Update System 2015-05-21 22:23:35 UTC
biber-1.8-8.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/biber-1.8-8.fc22

Comment 20 Fedora Update System 2015-05-26 03:39:12 UTC
biber-1.8-8.fc22 has been pushed to the Fedora 22 testing repository.

Comment 21 Fedora Update System 2015-06-05 23:59:50 UTC
biber-1.8-8.fc22 has been pushed to the Fedora 22 stable repository.


Note You need to log in before you can comment on or make changes to this bug.