Bug 447745

Summary: Review Request: libusb1 - A library which allows userspace access to USB devices
Product: [Fedora] Fedora Reporter: Jindrich Novy <jnovy>
Component: Package ReviewAssignee: Bastien Nocera <bnocera>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bnocera, fedora-package-review, notting, pingoufc4, pknirsch
Target Milestone: ---Flags: bnocera: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-05-26 19:02:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jindrich Novy 2008-05-21 15:16:52 UTC
Spec URL: http://people.redhat.com/jnovy/files/libusb1.spec
SRPM URL: http://people.redhat.com/jnovy/files/libusb1-0.9.0-0.1.fc10.src.rpm
Description:
This package provides a way for applications to access USB devices. The difference between libusb and libusb1 is that libusb1 is a better designed rewrite of libusb.

Comment 1 Bastien Nocera 2008-05-21 15:29:51 UTC
Let's start with the easy one. As the package is a git snapshot, it needs to use
the git snapshot "release", as well as include precise instructions on how to
reproduce the tarball (as present in my original src rpm). See:
http://fedoraproject.org/wiki/Packaging/NamingGuidelines#head-cfd71146dbb6f00cec9fe3623ea619f843394837

Comment 2 Jindrich Novy 2008-05-21 17:48:41 UTC
Ok updated, hope that the first 7 letters from the git SHA1 hash is enough :)

Spec URL: http://people.redhat.com/jnovy/files/libusb1.spec
SRPM URL:
http://people.redhat.com/jnovy/files/libusb1-0.9.0-0.1.gitbef33bb.fc10.src.rpm

Comment 3 Bastien Nocera 2008-05-22 07:57:13 UTC
You're still not explaining how to recreate the tarball. It should be explained
just above the Source line itself, in comments.

Comment 5 Bastien Nocera 2008-05-22 13:07:15 UTC
See this example, in my own version of the package:

%define gitsha ded0a249322571a075e3ed3528021864247dfa55
%define gitshortsha ded0a24932

<snip>
Release: 1.20070506git%{gitshortsha}%{?dist}
# git clone --no-checkout git://projects.reactivated.net/~dsd/libusb.git
# cd libusb/
# git checkout -b %{gitsha}
# ./autogen.sh && make dist && mv libusb-0.9.0.tar.bz2
libusb-0.9.0-%{gitsha}.tar.bz2
Source0: libusb-%{version}-%{gitsha}.tar.bz2

The release is a bit too complicated, but you need to be able to replicate the
source package with the instructions. Your checkout instructions wouldn't work
if there was any commits done.

Comment 6 Bastien Nocera 2008-05-22 14:16:33 UTC
Source rpmlint is clean. But:
$ rpmlint libusb1-*
libusb1.i386: W: no-documentation
libusb1-static.i386: W: no-documentation

You need to move the documentation from the -devel package to the main package.

package name: ok
spec file name: ok
packaging guidelines: nak

Just the release/source tarball problem mentioned above.

license: ok
license field: ok
license file: ok
spec file language: ok

You should add a line mentioning that libsub1 isn't compatible with the original
libusb-0.1.

spec file legibility: ok
upstream sources: nak

As mentioned above.

buildable: yes, runs fine in mock
excludearch: n/a
build deps: ok
locale handling: ok
ldconfig: ok
relocatable: n/a
directory ownership: ok
duplicate files: ok
file permissions: ok
%clean: ok
content: permissible
documentation: ok, apart from the above
headers: ok
static libs: ok
pkgconfig files: ok
shared libraries: ok
devel package: ok
libtool archives: ok
gui apps: n/a
file ownership: ok
%install: ok
utf8 filenames: ok

Would be an approval, once the problems mentioned above are fixed.

Comment 7 Jindrich Novy 2008-05-23 10:21:59 UTC
(In reply to comment #5)
> # git clone --no-checkout git://projects.reactivated.net/~dsd/libusb.git
> # cd libusb/
> # git checkout -b %{gitsha}
> # ./autogen.sh && make dist && mv libusb-0.9.0.tar.bz2
> libusb-0.9.0-%{gitsha}.tar.bz2
> Source0: libusb-%{version}-%{gitsha}.tar.bz2

Ok, I added the ./autogen.sh to the comment and git hash to the tarball name.
Indeed it is good to have a possibility to avoid tarball conflicts as soon as
new snapshot is needed but tarball name is same. I use only abbreviated git hash
to make it less ugly. It is good enough to avoid the conflicts and for git repo
reference IMO.

Comment 8 Jindrich Novy 2008-05-23 10:27:31 UTC
(In reply to comment #6)
> Source rpmlint is clean. But:
> $ rpmlint libusb1-*
> libusb1.i386: W: no-documentation
> libusb1-static.i386: W: no-documentation
> 
> You need to move the documentation from the -devel package to the main package.

Hmmm, I don't agree here. The situation is the same as in case of libusb. One
needs the sole libusb1 package just to run apps that link against it and the
documentation is put to -devel because it contains exmaples, etc. which a
Bob-libusb-app-user doesn't need.

> 
> You should add a line mentioning that libsub1 isn't compatible with the original
> libusb-0.1.

Added.


Comment 10 Bastien Nocera 2008-05-23 11:07:51 UTC
(In reply to comment #8)
> (In reply to comment #6)
> > Source rpmlint is clean. But:
> > $ rpmlint libusb1-*
> > libusb1.i386: W: no-documentation
> > libusb1-static.i386: W: no-documentation
> > 
> > You need to move the documentation from the -devel package to the main package.
> 
> Hmmm, I don't agree here. The situation is the same as in case of libusb. One
> needs the sole libusb1 package just to run apps that link against it and the
> documentation is put to -devel because it contains exmaples, etc. which a
> Bob-libusb-app-user doesn't need.

Fair enough, but you should at least package the COPYING and AUTHORS file, and
probably the ChangeLog as well in the main package. The first two because they
give copyright/authorship information, and the second because it helps debugging
(ie. if you encounter a new problem, you'd look for the changes version to version).

> > You should add a line mentioning that libsub1 isn't compatible with the original
> > libusb-0.1.
> 
> Added.

OK. I'd change the wording slightly:
"Note that it is incompatible with libusb-0.1 series."
better read:
"Note that this library is not compatible with the original libusb-0.1 series".


Your code to replicate the tarball still isn't correct:
# acquired by:
# git clone git://projects.reactivated.net/~dsd/libusb.git
# and ./autogen.sh; make dist

git clone will just get the tip of the HEAD branch, where you actually want to
be getting an _exact_ commit.



Comment 11 Bastien Nocera 2008-05-25 23:31:33 UTC
I guess you can drop all the git/snapshot business, as there's now a release:
http://www.reactivated.net/weblog/archives/2008/05/libusb-10-enters-beta/

Comment 12 Jindrich Novy 2008-05-26 05:02:12 UTC
Good news :) Here we go with the almost-final(TM) package:

Spec URL: http://people.redhat.com/jnovy/files/libusb1.spec
SRPM URL:
http://people.redhat.com/jnovy/files/libusb1-0.9.0-0.4.fc10.src.rpm

Comment 13 Bastien Nocera 2008-05-26 06:16:23 UTC
Looks good.

Comment 14 Jindrich Novy 2008-05-26 06:42:10 UTC
New Package CVS Request
=======================
Package Name: libusb1
Short Description: A library which allows userspace access to USB devices
Owners: jnovy
Branches: 
InitialCC: 
Cvsextras Commits: yes

Comment 15 Kevin Fenzi 2008-05-26 17:17:46 UTC
cvs done.

Comment 16 Jindrich Novy 2008-05-26 19:02:01 UTC
Imported & built!