Bug 987204

Summary: Review Request: libevdev - Kernel Evdev Device Wrapper Library
Product: [Fedora] Fedora Reporter: Peter Hutterer <peter.hutterer>
Component: Package ReviewAssignee: Christopher Meng <i>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bugs.michael, i, notting, package-review
Target Milestone: ---Flags: i: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libevdev-0.3-1.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-10 00:00:14 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 Peter Hutterer 2013-07-23 00:24:29 UTC
Spec URL: http://people.freedesktop.org/~whot/libevdev.spec
SRPM URL: http://people.freedesktop.org/~whot/libevdev-0.2-1.fc19.src.rpm
Description: libevdev is a library to wrap kernel evdev devices and provide a proper API to interact with those devices.
Fedora Account System Username: whot

Comment 1 Christopher Meng 2013-07-23 03:56:59 UTC
Mock failed:

checking for i686-redhat-linux-gnu-pkg-config... /usr/bin/i686-redhat-linux-gnu-pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for CHECK... no
configure: error: Package requirements (check) were not met:
No package 'check' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables CHECK_CFLAGS
and CHECK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
error: Bad exit status from /var/tmp/rpm-tmp.2bU8cH (%build)
    Bad exit status from /var/tmp/rpm-tmp.2bU8cH (%build)
RPM build errors:
Child return code was: 1
EXCEPTION: Command failed. See logs for output.

Comment 2 Peter Hutterer 2013-07-23 05:54:55 UTC
oops. can't believe I forgot the scratch build. Sorry about that.

spec and rpm updated, same URL as before. Changes are BuildRequires for check-devel an python.

Comment 3 Christopher Meng 2013-07-23 08:32:43 UTC
Package is fine.

APPROVED.

Comment 4 Michael Schwendt 2013-07-23 09:24:25 UTC
> %package devel
> Requires:       %{name} = %{version}-%{release}

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


> Requires:       pkgconfig

For EL5? Else there are automatic Requires/Provides.


> %files devel
> %doc COPYING

It's not necessary to duplicate the file here.
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing


> libevdev-0.2/doc/*

Documentation that could be generated with Doxygen.


> BuildRequires:  check-devel

If one executes "make check", in GNOME Shell the "Oh no! Something has gone wrong" screen appears" briefly.


> /usr/lib64/pkgconfig/libevdev.pc

There's an undefined Version in that file, which makes pkgconfig version checks impossible. The defined Name doesn't match the file name, btw.

Comment 5 Peter Hutterer 2013-07-23 21:42:38 UTC
(In reply to Michael Schwendt from comment #4)
> > %package devel
> > Requires:       %{name} = %{version}-%{release}
> 
> https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package

thanks, will be fixed.

> > Requires:       pkgconfig
> 
> For EL5? Else there are automatic Requires/Provides.

Do you have a reference there? I can find sources that say I'd have to change this to BuildRequires: pkgconfig instead and (one from 2006) that states I need the above line. I'd be interested to find what the official stance is atm, I've got quite a few packages with this line (this spec file was copied from another one, which was copied from another, which...)

> > %files devel
> > %doc COPYING
> 
> It's not necessary to duplicate the file here.
> https://fedoraproject.org/wiki/Packaging:
> LicensingGuidelines#Subpackage_Licensing

ACK

> > libevdev-0.2/doc/*
> 
> Documentation that could be generated with Doxygen.

I've intentionally not packaged this as a -doc packge. the source is available online which I think is a better approach here.
http://www.freedesktop.org/software/libevdev/doc/

> > BuildRequires:  check-devel
> 
> If one executes "make check", in GNOME Shell the "Oh no! Something has gone
> wrong" screen appears" briefly.

that's a bug in mutter and gnome-shell that I haven't fixed yet. the tests create a lot of test devices very quickly, mutter simply can't handle that. unrelated to this package though, you'd get the same issue if you're really fast at unplugging USB devices :)

> > /usr/lib64/pkgconfig/libevdev.pc
> 
> There's an undefined Version in that file, which makes pkgconfig version
> checks impossible. The defined Name doesn't match the file name, btw.

whoah, good catch. fixed locally, will upload the new versions asap once upstream is released with those fixes.

Comment 6 Michael Schwendt 2013-07-24 07:19:22 UTC
Automatic pkg-config deps have been enabled several years ago (2008):
https://bugzilla.redhat.com/465377

For a package that includes a .pc file, you get an automatic "Requires: /usr/bin/pkg-config" as well as versioned "pkgconfig(…)" Provides/Requires for the .pc file inter-dependencies:

  $ repoquery --whatrequires /usr/bin/pkg-config|wc -l
  3694
  $ repoquery --whatrequires 'pkgconfig(glib-2.0)'|wc -l
  466
  $ repoquery --whatprovides 'pkgconfig(glib-2.0)'
  glib2-devel-0:2.36.3-2.fc19.i686
  glib2-devel-0:2.36.3-2.fc19.x86_64

There are packagers, who rely on these automatic pkgconfig(…) Provides even for their BuildRequires tags (instead of -devel package names).

> I can find sources that say I'd have to change this to
> BuildRequires: pkgconfig instead

"BuildRequires: pkgconfig" is what you would add, if your src.rpm uses pkg-config directly. (or if a build requirement uses it and is missing such a dep for reasons to examine)


> the official stance

When I posted the comment, I've searched a bit, but I'm at a loss why this has not been added to the guidelines by the FPC.

Comment 7 Peter Hutterer 2013-07-24 23:29:21 UTC
Spec URL: http://people.freedesktop.org/~whot/libevdev.spec
SRPM URL: http://people.freedesktop.org/~whot/libevdev-0.2.1-1.fc19.src.rpm

Note that the second URL changed (new version for the pkgconfig changes), the first remains the same.


Changes to previous version:
- pkg-config changes are now fixed upstream
- Requires: pkgconfig is now gone, I'm trusting rpm to handle that now :)
- devel package has {?_isa} added to Requires
- devel package dropped COPYING


remaining:
- no doc package, this is intentional
- make check crashes mutter - external fix
- rpmlint complains about "evdev". No, I did not mean "evade" :)

Comment 8 Peter Hutterer 2013-08-08 03:23:11 UTC
Michael, do you have any other comments here? Otherwise I'll take Christopher's review+ as final.

Comment 9 Michael Schwendt 2013-08-08 11:08:24 UTC
Package should be fine now.

Comment 10 Peter Hutterer 2013-08-09 01:34:26 UTC
New Package SCM Request
=======================
Package Name: libevdev
Short Description: Kernel Evdev Device Wrapper Library 
Owners: whot
Branches: f19

Comment 11 Gwyn Ciesla 2013-08-09 12:38:06 UTC
Git done (by process-git-requests).

Comment 12 Peter Hutterer 2013-08-10 00:00:14 UTC
libevdev-0.2.1-1.fc20 is available in koji. Thanks.

Comment 13 Fedora Update System 2013-08-10 00:01:44 UTC
libevdev-0.2.1-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/libevdev-0.2.1-1.fc19

Comment 14 Fedora Update System 2013-08-12 21:24:09 UTC
libevdev-0.3-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/libevdev-0.3-1.fc19

Comment 15 Fedora Update System 2013-08-24 00:01:15 UTC
libevdev-0.3-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.