Bug 1097089 - Re-Review Request: libeio - Event-based fully asynchronous I/O library
Summary: Re-Review Request: libeio - Event-based fully asynchronous I/O library
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jaroslav Škarvada
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1097098
Blocks: 1074515
TreeView+ depends on / blocked
 
Reported: 2014-05-13 06:49 UTC by Jan Kaluža
Modified: 2015-03-15 15:58 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-09-24 08:41:14 UTC
Type: ---
Embargoed:
jskarvad: fedora-review+


Attachments (Terms of Use)

Description Jan Kaluža 2014-05-13 06:49:29 UTC
Spec URL: http://jkaluza.fedorapeople.org/libeio.spec
SRPM URL: http://jkaluza.fedorapeople.org/libeio-4.19-1.fc19.src.rpm
Description: Libeio is a full-featured asynchronous I/O library for C, modeled in similar style and spirit as libev. Features include: asynchronous read,
write, open, close, stat, unlink, fdatasync, mknod, readdir etc. (basically
the full POSIX API). sendfile (native on solaris, linux, hp-ux, freebsd,
emulated everywhere else), readahead (emulated where not available).

It is fully event-library agnostic and can easily be integrated into any
event-library (or used standalone, even in polling mode). It is very portable
and relies only on POSIX threads.

Fedora Account System Username: jkaluza

libeio has been deprecated in Fedora because of its shared library conflicting with Englightenment Eio library. For more information about this case, read <https://fedorahosted.org/fpc/ticket/403>.

This conflict has been fixed by renaming "libeio.so" to "libev-eio.so". Other possibilities such as upstream discussion about renaming the library have been tried without any success (read the FPC ticket for more info).

This library is needed for Phusion Passenger, because this package currently bundles it (which is bad). See Bug 1074515 for more info.

All rpmlint warning should be OK:

$ rpmlint *
libeio.src: W: spelling-error %description -l en_US libev -> libel, believe
libeio.src: W: spelling-error %description -l en_US unlink -> link
libeio.src: W: spelling-error %description -l en_US fdatasync -> fantasy
libeio.src: W: spelling-error %description -l en_US mknod -> monody
libeio.src: W: spelling-error %description -l en_US readdir -> reread
libeio.src: W: spelling-error %description -l en_US sendfile -> send file, send-file, senile
libeio.src: W: spelling-error %description -l en_US solaris -> solaria, Polaris, solar is
libeio.src: W: spelling-error %description -l en_US linux -> Linux
libeio.src: W: spelling-error %description -l en_US ux -> ix, u, x
libeio.src: W: spelling-error %description -l en_US freebsd -> freebased
libeio.src: W: spelling-error %description -l en_US readahead -> read ahead, read-ahead, redhead
libeio.src: W: invalid-url Source0: libeio-4.19.tar.gz
libeio.x86_64: W: spelling-error %description -l en_US libev -> libel, believe
libeio.x86_64: W: spelling-error %description -l en_US unlink -> link
libeio.x86_64: W: spelling-error %description -l en_US fdatasync -> fantasy
libeio.x86_64: W: spelling-error %description -l en_US mknod -> monody
libeio.x86_64: W: spelling-error %description -l en_US readdir -> reread
libeio.x86_64: W: spelling-error %description -l en_US sendfile -> send file, send-file, senile
libeio.x86_64: W: spelling-error %description -l en_US solaris -> solaria, Polaris, solar is
libeio.x86_64: W: spelling-error %description -l en_US linux -> Linux
libeio.x86_64: W: spelling-error %description -l en_US ux -> ix, u, x
libeio.x86_64: W: spelling-error %description -l en_US freebsd -> freebased
libeio.x86_64: W: spelling-error %description -l en_US readahead -> read ahead, read-ahead, redhead
libeio-devel.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 24 warnings.

Comment 1 Jaroslav Škarvada 2014-05-15 16:17:09 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses.
See defects bellow.
[!]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
See defects bellow.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[!]: Each %files section contains %defattr if rpm < 4.4
     Note: %defattr present but not needed
See defects bellow.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
Probably OK, for details see FPC ticket 403. 
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
Probably not needed. Package was originally retired and nothing currently depends on it. This would probably create new conflict with the Englightenment eio.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 2 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: 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 is included in %doc.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[!]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: %clean present but not required
See defect bellow.
[!]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
See defects bellow.
[x]: Final provides and requires are sane (see attachments).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libeio-
     devel
See defects bellow.
[?]: Package functions as described.
Not tested.
[x]: Latest version is packaged.
CVS, it seems to be latest.
[x]: Package does not include license text files separate from upstream.
[!]: Patches link to upstream bugs/comments/lists or are otherwise justified.
See defects bellow.
[x]: Scriptlets must be sane, if used.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[-]: Packages should try to preserve timestamps of original installed files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Package should not use obsolete m4 macros
     Note: Some obsoleted macros found, see the attachment.
     See: https://fedorahosted.org/FedoraReview/wiki/AutoTools
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: libeio-4.19-1.fc20.x86_64.rpm
          libeio-devel-4.19-1.fc20.x86_64.rpm
          libeio-4.19-1.fc20.src.rpm
libeio.x86_64: W: spelling-error %description -l en_US libev -> libel, believe
libeio.x86_64: W: spelling-error %description -l en_US unlink -> link
libeio.x86_64: W: spelling-error %description -l en_US fdatasync -> fantasy
libeio.x86_64: W: spelling-error %description -l en_US mknod -> monody
libeio.x86_64: W: spelling-error %description -l en_US readdir -> reread
libeio.x86_64: W: spelling-error %description -l en_US sendfile -> send file, send-file, senile
libeio.x86_64: W: spelling-error %description -l en_US solaris -> solaria, Polaris, solar is
libeio.x86_64: W: spelling-error %description -l en_US linux -> Linux
libeio.x86_64: W: spelling-error %description -l en_US ux -> ix, u, x
libeio.x86_64: W: spelling-error %description -l en_US freebsd -> freebased
libeio.x86_64: W: spelling-error %description -l en_US readahead -> read ahead, read-ahead, redhead
libeio-devel.x86_64: W: no-documentation
libeio.src: W: spelling-error %description -l en_US libev -> libel, believe
libeio.src: W: spelling-error %description -l en_US unlink -> link
libeio.src: W: spelling-error %description -l en_US fdatasync -> fantasy
libeio.src: W: spelling-error %description -l en_US mknod -> monody
libeio.src: W: spelling-error %description -l en_US readdir -> reread
libeio.src: W: spelling-error %description -l en_US sendfile -> send file, send-file, senile
libeio.src: W: spelling-error %description -l en_US solaris -> solaria, Polaris, solar is
libeio.src: W: spelling-error %description -l en_US linux -> Linux
libeio.src: W: spelling-error %description -l en_US ux -> ix, u, x
libeio.src: W: spelling-error %description -l en_US freebsd -> freebased
libeio.src: W: spelling-error %description -l en_US readahead -> read ahead, read-ahead, redhead
libeio.src: W: invalid-url Source0: libeio-4.19.tar.gz
3 packages and 0 specfiles checked; 0 errors, 24 warnings.

*** Most of them seems to be false positives, maybe you could write "solaris, linux, hp-ux, freebsd" with proper cases.


Rpmlint (installed packages)
----------------------------
# rpmlint libeio libeio-devel
libeio.x86_64: W: spelling-error %description -l en_US libev -> libel, believe
libeio.x86_64: W: spelling-error %description -l en_US unlink -> link
libeio.x86_64: W: spelling-error %description -l en_US fdatasync -> fantasy
libeio.x86_64: W: spelling-error %description -l en_US mknod -> monody
libeio.x86_64: W: spelling-error %description -l en_US readdir -> reread
libeio.x86_64: W: spelling-error %description -l en_US sendfile -> send file, send-file, senile
libeio.x86_64: W: spelling-error %description -l en_US solaris -> solaria, Polaris, solar is
libeio.x86_64: W: spelling-error %description -l en_US linux -> Linux
libeio.x86_64: W: spelling-error %description -l en_US ux -> ix, u, x
libeio.x86_64: W: spelling-error %description -l en_US freebsd -> freebased
libeio.x86_64: W: spelling-error %description -l en_US readahead -> read ahead, read-ahead, redhead
libeio-devel.x86_64: W: no-documentation
2 packages and 0 specfiles checked; 0 errors, 12 warnings.
# echo 'rpmlint-done:'

*** Most of them seems to be false positives, maybe you could write "solaris, linux, hp-ux, freebsd" with proper cases.


Requires
--------
libeio (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)

libeio-devel (rpmlib, GLIBC filtered):
    libeio
    libev-eio.so.1()(64bit)



Provides
--------
libeio:
    libeio
    libeio(x86-64)
    libev-eio.so.1()(64bit)

libeio-devel:
    libeio-devel
    libeio-devel(x86-64)


*** Provides and requires seems sane.

AutoTools: Obsoleted m4s found
------------------------------
  AC_PROG_LIBTOOL found in: libeio-4.19/configure.ac:11


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review -b 1097089
Buildroot used: fedora-20-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG


*Defects*
--------
- Are you sure the package is licensed under MIT? Looks like BSD-like license to me.
- ecb.h doesn't explictly allow alternative licensing. Maybe the author forgot to add the paragraph about GPL. Even if this is not the case, I think the current state is probably OK as the used license seems to be GPL compatible. But I recommend contacting upstream regarding addition of the GPL paragraph to ecb.h.
- As there is dual licensing possibility in the spec, I think the copy of GPL license should be also attached (but not sure about it :).
- There is %defattr present for base package files but not for devel subpackage files. Please be consistent, use it for all files or drop it entirely (preferred). 
- I guess there should be %{name}%{?_isa} = %{version}-%{release} requirement for devel.
- Please link the FPC ticket with the rename patch.
- You can drop 'rm -rf $RPM_BUILD_ROOT' and %clean section.

*Notes*
-------
- It would be nice to have pkgconfig. In such case the real name of the library wouldn't be issue, because it would be hidden behind the pkgconfig.

Comment 2 Jan Kaluža 2014-05-16 06:39:32 UTC
Thanks, everything should be fixed now.

Spec URL: http://jkaluza.fedorapeople.org/libeio.spec
SRPM URL: http://jkaluza.fedorapeople.org/libeio-4.19-2.fc19.src.rpm

Comment 3 Jan Kaluža 2014-05-16 06:56:34 UTC
I've asked upstream about ecb.h on mailing list: http://lists.schmorp.de/pipermail/libev/2014q2/002411.html

Comment 4 Jaroslav Škarvada 2014-05-16 12:04:09 UTC
(In reply to Jan Kaluža from comment #2)
> Thanks, everything should be fixed now.
> 
> Spec URL: http://jkaluza.fedorapeople.org/libeio.spec
> SRPM URL: http://jkaluza.fedorapeople.org/libeio-4.19-2.fc19.src.rpm

Thanks,

please note that spec and spec from SRPM differs. SRPM adds support for SCL. Are you going to add this version to Fedora or was it intentional?

Comment 5 Jaroslav Škarvada 2014-05-16 12:05:05 UTC
(In reply to Jaroslav Škarvada from comment #4)
> (In reply to Jan Kaluža from comment #2)
> > Thanks, everything should be fixed now.
> > 
> > Spec URL: http://jkaluza.fedorapeople.org/libeio.spec
> > SRPM URL: http://jkaluza.fedorapeople.org/libeio-4.19-2.fc19.src.rpm
> 
> Thanks,
> 
> please note that spec and spec from SRPM differs. SRPM adds support for SCL.
> Are you going to add this version to Fedora or was it intentional?

s/intentional/unintentional

Comment 6 Jan Kaluža 2014-05-16 12:08:48 UTC
Sorry, I've uploaded the right libeio right now. I don't plan to commit SCL into Fedora, but I'm working also on SCL version of that package and uploaded wrong srpm by mistake.

Comment 7 Jan Kaluža 2014-05-19 05:20:37 UTC
Package Change Request
======================
Package Name: libeio
New Branches: f20
Owners: jkaluza

This is request to unretire libeio in rawhide and f20 and move the ownership to me (jkaluza).

Comment 8 Gwyn Ciesla 2014-05-19 12:11:52 UTC
Appears to be unretired and simply needs devel and f20 taken ownership of in
pkgdb.

Comment 9 Jan Kaluža 2014-05-22 07:37:36 UTC
(In reply to Jon Ciesla from comment #8)
> Appears to be unretired and simply needs devel and f20 taken ownership of in
> pkgdb.

I've tried to build the package in rawhide, but the build failed with following error:

"BuildError: package libeio is blocked for tag f21"

http://koji.fedoraproject.org/koji/taskinfo?taskID=6873963

I think it's not in consistent state currently, could you please check it?

Comment 10 Till Maas 2014-05-25 08:07:51 UTC
(In reply to Jan Kaluža from comment #9)

> I've tried to build the package in rawhide, but the build failed with
> following error:
> 
> "BuildError: package libeio is blocked for tag f21"
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6873963
> 
> I think it's not in consistent state currently, could you please check it?

Step 6 from "Claimin Ownership of a Retired Package" was missing:
https://fedoraproject.org/wiki/Orphaned_package_that_need_new_maintainers#Claiming_Ownership_of_a_Retired_Package

I did what was necessary, so you do not need to open a releng ticket now, but keep it in mind for the next time.

Comment 11 Jan Kaluža 2014-09-24 08:41:14 UTC
I'm closing this one, since it's fixed for long time now. Thanks again for your help.

Comment 12 Orion Poplawski 2015-03-15 15:58:14 UTC
Jan - Would you be willing to maintain this in EPEL7?


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