Bug 608013

Summary: Review Request: libtevent - talloc based event library
Product: Red Hat Enterprise Linux 5 Reporter: Stephen Gallagher <sgallagh>
Component: Package ReviewAssignee: Nobody <nobody>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 5.0CC: nalin, notting, pm-rhel
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libtevent-0.9.8-10.el5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-10-31 12:25:46 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:
Bug Depends On:    
Bug Blocks: 188273, 579844    

Description Stephen Gallagher 2010-06-25 12:09:02 UTC
Spec URL: http://cvs.fedoraproject.org/viewvc/EL-5/libtevent/libtevent.spec?revision=1.7&view=co
SRPM URL: http://kojipkgs.fedoraproject.org/packages/libtevent/0.9.8/7.el5/src/libtevent-0.9.8-7.el5.src.rpm
Description:
Tevent is an event system based on the talloc memory management library. It is the core event system used in Samba and SSSD.

The low level tevent has support for many event types, including timers, signals, and the classic file descriptor events.

Tevent also provide helpers to deal with asynchronous code providing the tevent_req (tevent request) functions.

Comment 1 Nalin Dahyabhai 2010-08-10 23:20:57 UTC
MUST: rpmlint must be run on every package. The output should be posted in the
review:
* libtevent.src: W: spelling-error Summary(en_US) tevent -> event, t event, Tevet
* libtevent.src: W: spelling-error %description -l en_US Tevent -> Tevet, Event, T event
* libtevent.src: W: spelling-error %description -l en_US talloc -> tallow, Tlaloc
* libtevent.src: W: spelling-error %description -l en_US tevent -> event, t event, Tevet
- These are fine.
* libtevent.x86_64: W: spelling-error Summary(en_US) tevent -> event, t event, Tevet
* libtevent.x86_64: W: spelling-error %description -l en_US Tevent -> Tevet, Event, T event
* libtevent.x86_64: W: spelling-error %description -l en_US talloc -> tallow, Tlaloc
* libtevent.x86_64: W: spelling-error %description -l en_US tevent -> event, t event, Tevet
- These are fine.
* libtevent.x86_64: W: shared-lib-calls-exit /usr/lib64/libtevent.so.0.9.8 exit.5
- This doesn't seem to be either necessary or used.
* libtevent.x86_64: W: no-documentation
* libtevent-devel.x86_64: W: no-documentation
- These get a pass.

MUST: The package must be named according to the Package Naming Guidelines.
- Generally, the package name should match the tarball name (in this case,
  tevent).  The package showed up during the F12 development cycle named as
  "libtevent", however, so I guess we're stuck with it.

MUST: The spec file name must match the base package %{name}, in the format
%{name}.spec unless your package has an exemption.
- OK

MUST: The package must meet the Packaging Guidelines.
- Name/Version/Release look reasonable. OK
- Summary is currently "The tevent library", which doesn't really tell me
anything I couldn't have figured out from the package name.
- License is LGPLv3+. OK
- No pre-built binaries. OK
- Spec is legible. OK
- Filesystem layout looks normal for a shared library. OK
- Changelogs match one of the prescribed examples. OK
- Tags look reasonable. OK
  - Suggest adding the detached signature as shorthand for indicating that the
packager has verified it.
  - Buildroot is still required. OK
- Buildroot is cleaned up in %clean. OK
- No explicit Requires:. OK
- BuildRequires: rather than BuildPrereq:. OK
- Package builds in mock. OK
- Spec file is valid UTF-8. OK
- Build process heeds $RPM_OPT_FLAGS. OK
- Binaries get debuginfo. OK
- Headers and .so links go in a -devel subpackage. OK
- Devel subpackage requires main package, same version/release. OK
- ldconfig is run when shared libraries are installed or removed. OK
- No static libraries. OK
- No RPATHs present. OK
- Macros used in preference to hard-coded path names. OK
- Macros or environment variables used consistently. OK
- %makeinstall not used. OK
- Parallel make. OK
- Symlinks are relative. OK

MUST: The package must be licensed with a Fedora approved license and meet the 
Licensing Guidelines. OK
- OK

MUST: The License field in the package spec file must match the actual license.
- OK

MUST: If (and only if) the source package includes the text of the license(s)
in its own file, then that file, containing the text of the license(s) for the
package must be included in %doc.
- OK

MUST: The spec file must be written in American English.
- OK

MUST: The spec file for the package MUST be legible.
- OK

MUST: The sources used to build the package must match the upstream source, as
provided in the spec URL.
- OK

MUST: The package MUST successfully compile and build into binary rpms on at
least one primary architecture.
- OK

MUST: If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch:.
- N/A

MUST: All build dependencies must be listed in BuildRequires:, except for any
that are listed in the exceptions section of the Packaging Guidelines...
- OK

MUST: The spec file MUST handle locales properly.
- OK

MUST: Every binary library needs to be ldconfig'd.
- OK

MUST: Packages must NOT bundle copies of system libraries.
- OK

MUST: If the package is designed to be relocatable, ...
- N/A

MUST: A package must own all directories that it creates.
- OK

MUST: A Fedora package must not list a file more than once in the .spec file's
%files listings.
- OK

MUST: Permissions on files must be set properly.
- OK

MUST: Each package must consistently use macros.
- OK

MUST: The package must contain code, or permissible content.
- OK

MUST: Large documentation files must go in a -doc subpackage.
- N/A

MUST: If a package includes something as %doc, it must not affect the runtime
of the application.
- N/A

MUST: Header files must be in a -devel package.
- OK

MUST: Static libraries must be in a -static package.
- N/A

MUST: Shared library .so links go in the -devel package.
- OK

MUST: In the vast majority of cases, devel packages must require the base
package using a fully versioned dependency.
- OK

MUST: Packages must NOT contain any .la libtool archives.
- N/A

MUST: Packages containing GUI applications...
- N/A

MUST: Packages must not own files or directories already owned by other
packages.
- OK

MUST: All filenames in rpm packages must be valid UTF-8.
- OK

SHOULD: If the source package does not include license text(s) as a separate
file from upstream, the packager SHOULD query upstream to include it.
- More for development than 5.x, but still.

SHOULD: The description and summary sections in the package spec file should
contain translations for supported Non-English languages, if available.


SHOULD: The reviewer should test that the package builds in mock.
- OK

SHOULD: The reviewer should test that the package functions as described.
- OK

SHOULD: If scriptlets are used, those scriptlets must be sane.
- OK

SHOULD: Usually, subpackages other than devel should require the base package
using a fully versioned dependency.
- N/A

SHOULD: The placement of pkgconfig(.pc) files depends on their usecase.
- OK

SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin,
/usr/bin, or /usr/sbin consider requiring the package which provides the file
instead of the file itself.

SHOULD: your package should contain man pages for binaries.
- N/A

Overall, looks good.  Fix the summary, check on that exit thing, and I think we'll call this accepted.

Comment 2 Stephen Gallagher 2010-08-11 13:10:39 UTC
Spec:
http://sgallagh.fedorapeople.org/packagereview/sssd-rhel5/libtevent.spec

SRPM:
http://sgallagh.fedorapeople.org/packagereview/sssd-rhel5/libtevent-0.9.8-10.el5.src.rpm

Brew scratch build:
http://brewweb.devel.redhat.com/brew/taskinfo?taskID=2675413

Updated the summary to read:
"Talloc-based, event-driven mainloop"

The exit is a false-positive. It's included in the libreplace functions, but it is never compiled into the tevent binaries. It's a legacy from the samba project.

Comment 3 Nalin Dahyabhai 2010-08-11 15:18:56 UTC
(In reply to comment #2)
> Spec:
> http://sgallagh.fedorapeople.org/packagereview/sssd-rhel5/libtevent.spec

Looks good.

> SRPM:
> http://sgallagh.fedorapeople.org/packagereview/sssd-rhel5/libtevent-0.9.8-10.el5.src.rpm
> 
> Brew scratch build:
> http://brewweb.devel.redhat.com/brew/taskinfo?taskID=2675413
> 
> Updated the summary to read:
> "Talloc-based, event-driven mainloop"

Thank you!
 
> The exit is a false-positive. It's included in the libreplace functions, but it
> is never compiled into the tevent binaries. It's a legacy from the samba
> project.    

IIRC, the rpmlint check is parsing the symbol of the shared library, so while it's probably dead code, it's in there.  But that may be something to be fixed elsewhere.  Accepting the current revision and changing the bug this blocks to reflect that.