Bug 833573 - Review Request: nettle - Low level crytopgraphic library
Summary: Review Request: nettle - Low level crytopgraphic library
Keywords:
Status: CLOSED DUPLICATE of bug 837331
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 432228
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-06-19 19:42 UTC by Michael Cronenworth
Modified: 2012-07-06 06:55 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-07-05 15:03:29 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Michael Cronenworth 2012-06-19 19:42:47 UTC
Spec URL: http://michael.cronenworth.com/RPMS/libnettle.spec
SRPM URL: http://michael.cronenworth.com/RPMS/libnettle-2.5-0.1pre.fc17.src.rpm
Description: Nettle is a cryptographic library that is designed to fit easily in
more or less any context: In crypto toolkits for object-oriented
languages (C++, Python, Pike, ...), in applications like LSH or GNUPG,
or even in kernel space.
Fedora Account System Username: mooninite

Comment 1 Michael Cronenworth 2012-06-19 21:06:13 UTC
It was pointed out to me that "libnettle" probably not going to work. Renamed.

Spec URL: http://michael.cronenworth.com/RPMS/nettle.spec
SRPM URL: http://michael.cronenworth.com/RPMS/nettle-2.5-0.1pre.fc17.src.rpm

Comment 2 Richard Shaw 2012-06-21 14:15:10 UTC
Ok, quick spec review:

1. Although I find it strange as well, LGPLv2.1 or later should be referenced as just "LGPLv2+"

From http://fedoraproject.org/wiki/Licensing:Main
GNU Lesser General Public License v2 (or 2.1) or later	 LGPLv2+

2. I know hogweed is a library and on some other distros library packages are always prefixed with lib, but as we don't have that convention in Fedora, would it not be better to call the hogweed package just "hogweed" to be consistent with "nettle"?

3. Missed one arch specific Requires: in the devel subpackage.

Comment 3 Michael Cronenworth 2012-06-21 16:14:39 UTC
(In reply to comment #2)
> 2. I know hogweed is a library and on some other distros library packages
> are always prefixed with lib, but as we don't have that convention in
> Fedora, would it not be better to call the hogweed package just "hogweed" to
> be consistent with "nettle"?

The nettle documentation refers to it as "libhogweed". An alternative name I could give this package is to make it a sub-package called "nettle-gmp" or "nettle-bignum". Another alternative is to leave libhogweed.so* in the nettle package, but I'd like to keep dependencies (gmp) to a minimum.

Comment 4 Richard Shaw 2012-06-21 16:29:04 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > 2. I know hogweed is a library and on some other distros library packages
> > are always prefixed with lib, but as we don't have that convention in
> > Fedora, would it not be better to call the hogweed package just "hogweed" to
> > be consistent with "nettle"?
> 
> The nettle documentation refers to it as "libhogweed". An alternative name I
> could give this package is to make it a sub-package called "nettle-gmp" or
> "nettle-bignum". Another alternative is to leave libhogweed.so* in the
> nettle package, but I'd like to keep dependencies (gmp) to a minimum.

Either way I wouldn't call it a blocker but I did have a crazy idea I'd like your opinion on.

What about not even creating a "nettle" binary package? Instead create 5 sub-packages exclusively.

libnettle
libhogweed
nettle-tools
libnettle-devel
libhogweed-devel

I like separating the devel packages so if you install one you don't automatically pull in the other library.

I don't see anywhere where this isn't allowed...

Thoughts?

Comment 5 Michael Cronenworth 2012-06-21 21:48:02 UTC
(In reply to comment #4)
> I like separating the devel packages so if you install one you don't
> automatically pull in the other library.

The only problem with splitting -devel packages is that the include files are stored in the same, single directory so I would need to create a package to own the include directory so that I can seperate the headers into their respective -devel package.

Debian packages it the way I wanted to originally so I think we're best off keeping to one -devel package.

Comment 6 Michael Schwendt 2012-06-22 11:09:13 UTC
Just a brief look:


* https://fedoraproject.org/wiki/Packaging:NamingGuidelines#General_Naming

As a precedent, Debian and openSUSE called it libnettle.


* https://fedoraproject.org/wiki/Packaging:ReviewGuidelines

| MUST: rpmlint must be run on the source rpm and all binary rpms
| the build produces. The output should be posted in the review.[1] 

That doesn't imply it's only the reviewer who must do this. rpmlint is also a tool for packagers.


> Version: 2.5
> Release: 0.1pre%{?dist}

https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Pre-Release_packages

A little bit pedantic, but Fedora adds another dot after the X.Y number:
Release: 0.1.pre%{?dist}


> License: LGPLv2.1+

https://fedoraproject.org/wiki/Licensing#Good_Licenses


> %package tools
> Group: System Environment/Libraries

As tools are not libraries, the package could fit into groups "System Environment/Base" or "Development/Tools". The package description doesn't expand on what these utility programs do, however.


> %package devel
> Summary: Development files for libnettle
> License: GPLv2+ and LGPLv2.1+

This will require a closer look. Why does the licensing here differ from the base library packages?


> Requires: %{name} = %{version}-%{release}
> Requires: libhogweed = %{version}-%{release}

https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package


> %preun -p /sbin/ldconfig
> 
> %preun -n libhogweed -p /sbin/ldconfig

%postun would be the correct place to execute this.


> %files tools
> %doc COPYING.LIB

https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing


> testsuite

Please investigate whether this is suitable for running "make check" in the %check section of the spec file.

Comment 7 Michael Cronenworth 2012-06-22 13:20:41 UTC
Michael, thanks for the comments, but I have not posted a new spec yet due to the indecision on the package name. Fedora previously had this library as "nettle":

https://admin.fedoraproject.org/pkgdb/acls/name/nettle

If someone could give me a straight answer on the package name I can finish fixing the spec file. I do not have a preference of "nettle" or "libnettle". I just need to know which to put up for review.

Comment 8 Michael Schwendt 2012-06-23 19:51:04 UTC
Sorry, it's beyond my time and interest to dig into this much.


For Debian there are tickets from 2009 such as:

  libnettle-dev is gone, replaced (and not provided) by nettle-dev
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542133

The current naming can be found here:

  http://packages.debian.org/source/wheezy/nettle

  nettle (source)
  libnettle4
  libhogweed2
  nettle-dev
  nettle-bin
  nettle-dbg


The old Fedora review is in bug 432228. It passed the "naming and versioning guidelines" requirements there with

  nettle  src.rpm
  nettle
  nettle-devel

One could try to find out whether
https://fedoraproject.org/wiki/Packaging:NamingGuidelines#General_Naming
has been considered in 2008 and what package names other dists used around that time.

Btw, the old review also mentioned a few of the item's I have pointed out, such as the test-suite.


The old package has been included in F12 for the last time, so whatever the new naming will be, I don't think it would be necessary to add Obsoletes/Provides for the ancient stuff in F12.

Comment 9 David Woodhouse 2012-07-05 15:03:29 UTC
I've just noticed this review request; sorry. I have revived the nettle package and it has been reviewed in bug #837331.

Would you like to be a co-maintainer?

*** This bug has been marked as a duplicate of bug 837331 ***

Comment 10 David Woodhouse 2012-07-06 06:55:57 UTC
I don't think I'd get too worked up about package naming. When the library is pulled in as a runtime dependency, it's referenced by the library name(s):
libhogweed.so.2()(64bit)
libnettle.so.4()(64bit)  

And when it's seen in BuildRequires:, it should be referred to as
pkgconfig(hogweed)
pkgconfig(nettle)

In neither case should anyone really care about the *name* of the package. We could call it anything we like, and it wouldn't matter. And likewise in this context it shouldn't matter whether we split it into separate nettle/hogweed packages. If a dependent package has correct BuildRequires on the pkgconfig() objects it needs, it'll be fine.

On the topic of splitting nettle/hogweed.... we also need to ship GnuTLS v3, since we're currently shipping a hopelessly out of date GnuTLS v2.12 (bug #726886). And GnuTLS uses hogweed, so I'm not sure how often you'd manage to *avoid* having hogweed installed; it might not be worth splitting them at. But if you feel strongly that it's useful, feel free to make changes to the package (I'll grant you permissions if you aren't a provenpackager).


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