Bug 846212

Summary: Review Request: libumberlog - CEE-enhanced syslog API library
Product: [Fedora] Fedora Reporter: Milan Bartos <mbartos>
Component: Package ReviewAssignee: Miloslav Trmač <mitr>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: linuxed_fedora, mitr, notting, package-review, pingou, pvrabec
Target Milestone: ---Flags: mitr: fedora‑review+
limburgher: 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: 2012-09-04 18:57:21 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Milan Bartos 2012-08-07 03:33:00 EDT
Spec URL: http://146.255.30.135/fedora/libumberlog.spec
SRPM URL: http://146.255.30.135/fedora/libumberlog-0.2.1-1.src.rpm
Description: The libumberlog library serves two purposes: it's either a drop-in
replacement for the syslog() system call, in which case it turns
the default syslog messages into CEE-enhanced messages, with a CEE-JSON
payload, and some automatically discovered fields. Or, it can be used
as a stand-alone library, that provides a syslog()-like API, with
the ability to add arbitrary key-value pairs to the resulting JSON payload.
Fedora Account System Username: mbartos


Hi,
here is a package of libumberlog, cee-enhanced syslog api library and i would appreciate a review.

rpmlint output:
$ rpmlint libumberlog.spec ../RPMS/x86_64/libumberlog-* ../SRPMS/libumberlog-0.2.1-1.src.rpm 
4 packages and 1 specfiles checked; 0 errors, 0 warnings.
$ 


Thanks,
Milan Bartos
Comment 1 Christophe Burgun 2012-08-07 05:55:56 EDT
Hi Milan,

I post you an informative review :

1) You can delete the %clean
rm -rf %{buildroot}
it is only used for EPEL
See: http://fedoraproject.org/wiki/Packaging/Guidelines#.25clean

2)For manpages you could put 
%{_mandir}/man3/umberlog.3.* 
instead of force gz format.


Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



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


==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[ ]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.
[!]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean is needed only if supporting EPEL
[ ]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[ ]: MUST Package contains desktop file if it is a GUI application.
[ ]: MUST Development files must be in a -devel package
[ ]: MUST Package requires other packages for directories it uses.
[ ]: MUST Package uses nothing in %doc for runtime.
[ ]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[ ]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[ ]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: 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 is included in %doc.
[ ]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "*No copyright* GENERATED FILE", "*No copyright* UNKNOWN", "BSD (2
     clause)", "GPL (v2 or later)" For detailed output of licensecheck see
     file: /home/builder/rpmbuild/libumberlog/licensecheck.txt
[ ]: MUST License file installed when any subpackage combination is installed.
[ ]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[ ]: MUST Package is named according to the Package Naming Guidelines.
[ ]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[ ]: MUST Package obeys FHS, except libexecdir and /usr/target.
[ ]: MUST Package must own all directories that it creates.
[ ]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[ ]: MUST Package is not relocatable.
[!]: MUST Package requires pkgconfig, if .pc files are present. (EPEL5)
     Note: Only applicable for EL-5
[ ]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[ ]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[ ]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[ ]: 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.
[!]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.
[ ]: SHOULD Latest version is packaged.
[ ]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD The placement of pkgconfig(.pc) files are correct.
[ ]: SHOULD Scriptlets must be sane, if used.
[x]: SHOULD SourceX / PatchY prefixed with %{name}.
[x]: SHOULD SourceX is a working URL.
[ ]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[ ]: SHOULD %check is present and all tests pass.
[ ]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean is needed only if supporting EPEL
See: http://fedoraproject.org/wiki/Packaging/Guidelines#.25clean
[!]: MUST Package requires pkgconfig, if .pc files are present. (EPEL5)
     Note: Only applicable for EL-5
See: http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#EL5

Rpmlint
-------
Checking: libumberlog-devel-0.2.1-1.x86_64.rpm
          libumberlog-debuginfo-0.2.1-1.x86_64.rpm
          libumberlog-0.2.1-1.x86_64.rpm
          libumberlog-0.2.1-1.src.rpm
libumberlog.x86_64: W: spelling-error Summary(en_US) syslog -> slog
libumberlog.x86_64: W: spelling-error %description -l en_US syslog -> slog
libumberlog.src: W: spelling-error Summary(en_US) syslog -> slog
libumberlog.src: W: spelling-error %description -l en_US syslog -> slog
4 packages and 0 specfiles checked; 0 errors, 4 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint libumberlog-debuginfo
libumberlog-debuginfo.x86_64: I: enchant-dictionary-not-found en_US
libumberlog-debuginfo.x86_64: W: invalid-url URL: https://github.com/algernon/libumberlog <urlopen error timed out>
1 packages and 0 specfiles checked; 0 errors, 1 warnings.
# echo 'rpmlint-done:'

Requires
--------
libumberlog-devel-0.2.1-1.x86_64.rpm (rpmlib, GLIBC filtered):

    /usr/bin/pkg-config
    libumberlog(x86-64) = 0.2.1-1
    libumberlog.so.1()(64bit)

libumberlog-debuginfo-0.2.1-1.x86_64.rpm (rpmlib, GLIBC filtered):


libumberlog-0.2.1-1.x86_64.rpm (rpmlib, GLIBC filtered):

    /sbin/ldconfig
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    librt.so.1()(64bit)
    rtld(GNU_HASH)

Provides
--------
libumberlog-devel-0.2.1-1.x86_64.rpm:

    libumberlog-devel = 0.2.1-1
    libumberlog-devel(x86-64) = 0.2.1-1
    pkgconfig(libumberlog) = 0.2.1

libumberlog-debuginfo-0.2.1-1.x86_64.rpm:

    libumberlog-debuginfo = 0.2.1-1
    libumberlog-debuginfo(x86-64) = 0.2.1-1

libumberlog-0.2.1-1.x86_64.rpm:

    libumberlog = 0.2.1-1
    libumberlog(x86-64) = 0.2.1-1
    libumberlog.so.1()(64bit)
    libumberlog.so.1(LIBUMBERLOG_0.1.0)(64bit)
    libumberlog.so.1(LIBUMBERLOG_0.2.1)(64bit)

MD5-sum check
-------------
https://github.com/downloads/algernon/libumberlog/libumberlog-0.2.1.tar.gz :
  MD5SUM this package     : e24d7c3d385cd244420bd8f6c80b4bcc
  MD5SUM upstream package : e24d7c3d385cd244420bd8f6c80b4bcc


Generated by fedora-review 0.2.0 (53cc903) last change: 2012-07-09
Command line :/bin/fedora-review -n libumberlog
External plugins:
Comment 2 Milan Bartos 2012-08-07 07:10:56 EDT
Thank you for informative review,

i've fixed %clean and manpage, new spec file and src.rpm are at
http://146.255.30.135/fedora/libumberlog_1/libumberlog.spec
http://146.255.30.135/fedora/libumberlog_1/libumberlog-0.2.1-1.src.rpm

Milan
Comment 3 Christophe Burgun 2012-08-07 08:18:37 EDT
Hi,

1)[!]: SHOULD Dist tag is present.
Could you please add in the release tag :

1%{?dist}

2)When you do changes on the spec you need to update the release and %changelog :

release: 2

%changelog
* Tue Aug  7 2012 Milan Bartos <mbartos@redhat.com> - 0.2.1-2
- Remove clean tag
- Add Dist tag to release

* Wed Aug  1 2012 Milan Bartos <mbartos@redhat.com> - 0.2.1-1
- initial port



Otherwise mock build without errors
Comment 4 Milan Bartos 2012-08-07 08:30:57 EDT
Hi,

thanks for the useful informations.
I've fixed these two problems:

http://146.255.30.135/fedora/libumberlog_2/libumberlog.spec
http://146.255.30.135/fedora/libumberlog_2/libumberlog-0.2.1-2.fc17.src.rpm

Thanks,
Milan
Comment 5 Miloslav Trmač 2012-08-07 08:39:01 EDT
Christophe, thanks a lot for the review work, I have nothing to add.
ACCEPTED.

To formally comply with review guidelines, rpmlint output:
> libumberlog.src: W: spelling-error Summary(en_US) syslog -> slog
> libumberlog.src: W: spelling-error %description -l en_US syslog -> slog
> libumberlog.x86_64: W: spelling-error Summary(en_US) syslog -> slog
> libumberlog.x86_64: W: spelling-error %description -l en_US syslog -> slog
Comment 6 Pierre-YvesChibon 2012-08-07 08:57:09 EDT
@Miloslav, please beware that Christoph is learning the review process and copy/paste the output of fedora-review with some missing information.
Comment 7 Christophe Burgun 2012-08-07 09:08:54 EDT
(In reply to comment #5)
> Christophe, thanks a lot for the review work, I have nothing to add.
> ACCEPTED.
> 
> To formally comply with review guidelines, rpmlint output:
> > libumberlog.src: W: spelling-error Summary(en_US) syslog -> slog
> > libumberlog.src: W: spelling-error %description -l en_US syslog -> slog
> > libumberlog.x86_64: W: spelling-error Summary(en_US) syslog -> slog
> > libumberlog.x86_64: W: spelling-error %description -l en_US syslog -> slog

I just have a problem with License 
in spec file you write BSD

in the BUILD files there are 2 License

- BSD
- CCPL (for the logo under data directory)
Comment 8 Christophe Burgun 2012-08-07 09:36:16 EDT
Hi Milan,

In the spec you can put away the :

Requires:	/sbin/ldconfig

It is do automatically
Comment 9 Christophe Burgun 2012-08-07 11:08:39 EDT
Hi Milan,

Do you know how to test your lib ?

I have install it but don't know how to test it 

Thanks in advance
Comment 10 Miloslav Trmač 2012-08-07 11:54:51 EDT
(In reply to comment #9)
> Do you know how to test your lib ?
> 
> I have install it but don't know how to test it 

The package includes a test suite run during %check; you can look in the "t" subdirectory for example uses if you wanted to write your own tests.

Alternatively, run (LD_PRELOAD=/path/to/libumberlog.so some_program_that_creates_syslog_records) and see that the records have been converted to the CEE format, but we want to discourage this usage.
Comment 11 Christophe Burgun 2012-08-08 05:25:26 EDT
(In reply to comment #10)
> (In reply to comment #9)
> > Do you know how to test your lib ?
> > 
> > I have install it but don't know how to test it 
> 
> The package includes a test suite run during %check; you can look in the "t"
> subdirectory for example uses if you wanted to write your own tests.
> 
> Alternatively, run (LD_PRELOAD=/path/to/libumberlog.so
> some_program_that_creates_syslog_records) and see that the records have been
> converted to the CEE format, but we want to discourage this usage.

Hi Milan,

The library works fine 

tail -f /var/log/secure
Aug  8 11:21:02 taygeta sshd[16741]: @cee:{"msg":"fatal: Cannot bind any address.","pid":"16741","facility":"authpriv","priority":"crit","program":"sshd","uid":"0","gid":"0","host":"taygeta.fr117.corpintra.net","timestamp":"2012-08-08T11:21:02.936744010+0200"}

But you need :

1) Fix License in spec file (BSD and CCPL licence)

2)Delete in spec Requires:	/sbin/ldconfig
because it is do automatically
Comment 12 Milan Bartos 2012-08-13 03:26:24 EDT
Hi Christophe,

2) i've removed /sbin/ldconfig, new spec file and src.rpm are at http://146.255.30.135/fedora/libumberlog_3/

ad 1) according to https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License:_field, "The License: field refers to the licenses of the contents of the binary rpm."
And because picture in data/ (which is only file under Creative Commons Attribution-ShareAlike 3.0 license) is _not_ packaged in any of the libumberlog binary rpms, i'm not going to change License tag as it would (imho) break Guidelines.

Regards,
Milan
Comment 13 Milan Bartos 2012-08-14 05:50:40 EDT
New Package SCM Request
=======================
Package Name: libumberlog
Short Description: CEE-enhanced syslog API library
Owners: mbartos
Branches: f17 f18
Comment 14 Gwyn Ciesla 2012-08-14 06:59:30 EDT
Git done (by process-git-requests).
Comment 15 Fedora Update System 2012-08-27 03:31:29 EDT
libumberlog-0.3.0-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/libumberlog-0.3.0-1.fc17
Comment 16 Fedora Update System 2012-08-27 03:40:26 EDT
libumberlog-0.3.0-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/libumberlog-0.3.0-1.fc18
Comment 17 Fedora Update System 2012-08-27 12:32:32 EDT
libumberlog-0.3.0-1.fc18 has been pushed to the Fedora 18 testing repository.
Comment 18 Fedora Update System 2012-09-03 02:29:53 EDT
libumberlog-0.3.0-2.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/libumberlog-0.3.0-2.fc18
Comment 19 Fedora Update System 2012-09-04 18:57:21 EDT
libumberlog-0.3.0-1.fc17 has been pushed to the Fedora 17 stable repository.
Comment 20 Fedora Update System 2012-09-20 16:39:20 EDT
libumberlog-0.3.0-2.fc18 has been pushed to the Fedora 18 stable repository.