Bug 871203 (console-bridge) - Review Request: console-bridge - Lightweight set of macros used for reporting information in libraries
Summary: Review Request: console-bridge - Lightweight set of macros used for reporting...
Keywords:
Status: CLOSED ERRATA
Alias: console-bridge
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 871205
TreeView+ depends on / blocked
 
Reported: 2012-10-29 22:13 UTC by Rich Mattes
Modified: 2013-05-05 03:23 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-05-05 03:23:52 UTC
Type: ---
Embargoed:
sanjay.ankur: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Rich Mattes 2012-10-29 22:13:39 UTC
Spec URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge-0.1.2-1.fc17.src.rpm

Description: 
A very lightweight set of macros that can be used for reporting information
in libraries. The logged information can be forwarded to other systems.

Fedora Account System Username: rmattes

Comment 1 Ivan Romanov 2012-10-31 15:11:18 UTC
weird path in console_bridge-config.cmake 
PATHS /usr//usr/lib

Comment 2 Ivan Romanov 2012-10-31 15:14:42 UTC
I wonder. What for is need this file? If it is cmake module it should be places in /usr/share/cmake/Modules

Comment 3 Rich Mattes 2012-12-02 21:46:22 UTC
Whoops, that was an oversight in a patch I added.  I've fixed the error.  New files at:

Spec URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge-0.1.2-2.fc18.src.rpm

rpmlint:
$ rpmlint console-bridge.spec ../RPMS/x86_64/console-bridge*
console-bridge.spec: W: invalid-url Source0: console-bridge-0.1.2.tar.bz2
console-bridge.x86_64: E: invalid-soname /usr/lib64/libconsole_bridge.so libconsole_bridge.so
console-bridge.x86_64: W: no-documentation
console-bridge-devel.x86_64: W: no-documentation
3 packages and 1 specfiles checked; 1 errors, 3 warnings.


The project configuration files for CMake based projects don't seem to have any standard location.  I've seen libraries put them in libdir/cmake, libdir/name, libdir/name/cmake, datadir/name, etc.  The CMake wiki seems to think they should go in libdir[1], but I don't think Fedora has any policies regarding specific location of these files.

[1] http://www.cmake.org/Wiki/CMake/Tutorials/Packaging#Package_Configuration_Files

Comment 4 Rich Mattes 2013-03-21 02:30:07 UTC
Updated to latest upstream version:
Spec URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge-0.1.4-1.fc18.src.rpm

rpmlint:
$ rpmlint ./console-bridge.spec ../RPMS/x86_64/console-bridge-*
./console-bridge.spec: W: invalid-url Source0: ros-console_bridge-0.1.4-0-g96c8951.tar.gz
console-bridge.x86_64: E: invalid-soname /usr/lib64/libconsole_bridge.so libconsole_bridge.so
console-bridge.x86_64: W: no-documentation
console-bridge-devel.x86_64: W: no-documentation
3 packages and 1 specfiles checked; 1 errors, 3 warnings.

Comment 5 Ankur Sinha (FranciscoD) 2013-04-09 13:24:25 UTC
Hi Rich:

Here's the review:

[+] OK
[-] NA
[?] Issue

** Mandatory review guidelines: **
 [+] rpmlint output:
[ankur@localhost  SRPMS]$ rpmlint  ../SPECS/console-bridge.spec ./console-bridge-0.1.4-1.fc18.src.rpm /var/lib/mock/fedora-rawhide-x86_64/result/console-bridge-*rpm
../SPECS/console-bridge.spec: W: invalid-url Source0: ros-console_bridge-0.1.4-0-g96c8951.tar.gz
console-bridge.src: W: invalid-url Source0: ros-console_bridge-0.1.4-0-g96c8951.tar.gz
console-bridge.src: W: invalid-url Source0: ros-console_bridge-0.1.4-0-g96c8951.tar.gz
console-bridge.x86_64: E: invalid-soname /usr/lib64/libconsole_bridge.so libconsole_bridge.so
console-bridge.x86_64: W: no-documentation
console-bridge-devel.x86_64: W: no-documentation
5 packages and 1 specfiles checked; 1 errors, 5 warnings.
[ankur@localhost  SRPMS]$
^
The soname error is because the soname in the main package should have a
version extension:

libfoo.so.1 

as rpmlint -i describes:
console-bridge.x86_64: E: invalid-soname /usr/lib64/libconsole_bridge.so
libconsole_bridge.so
The soname of the library is neither of the form lib<libname>.so.<major> or
lib<libname>-<major>.so.

As a random example:
[ankur@localhost  lib64]$ lash libkrb5*
   0 lrwxrwxrwx. 1 root root   14 Mar 24 14:30 libkrb5.so -> libkrb5.so.3.3
   0 lrwxrwxrwx. 1 root root   14 Mar  7 20:45 libkrb5.so.3 -> libkrb5.so.3.3
932K -rwxr-xr-x. 1 root root 930K Mar  6 05:29 libkrb5.so.3.3
   0 lrwxrwxrwx. 1 root root   21 Mar 24 14:30 libkrb5support.so -> libkrb5support.so.0.1
   0 lrwxrwxrwx. 1 root root   21 Mar  7 20:45 libkrb5support.so.0 -> libkrb5support.so.0.1
 48K -rwxr-xr-x. 1 root root  47K Mar  6 05:29 libkrb5support.so.0.1
[ankur@localhost  lib64]$

The build system files (cmake here) will have to be modified to generate a versioned
soname. A symlink can then go into the devel package. There isn't a shared
object in the devel package at the moment.

 [+] License is acceptable (...)
 [+] License field in spec is correct
 [?] License files included in package %docs if included in source package
^^
Ros packages generally don't contain the BSD license text in them. Not a
blocker

 [-] License files installed when any subpackage combination is installed
 [-] Spec written in American English
 [-] Spec is legible
 [-] Sources match upstream unless altered to fix permissibility issues
   Upstream SHA256: ...
   Your SHA256:     ...
^ 
From git checkout using wget

 [+] Build succeeds on at least one primary arch
 [+] Build succeeds on all primary arches or has ExcludeArch + bugs filed
 [+] BuildRequires correct, justified where necessary
 [-] Locales handled with %find_lang, not %_datadir/locale/*
 [ ] %post, %postun call ldconfig if package contains shared .so files
 [+] No bundled libs
 [-] Relocatability is justified
 [+] Package owns all directories it creates
 [-] Package requires others for directories it uses but does not own
 [+] No duplication in %files unless necessary for license files
 [+] File permissions are sane
 [+] Package contains permissible code or content
 [-] Large docs go in -doc subpackage
 [-] %doc files not required at runtime
 [-] Static libs go in -static package/virtual Provides
 [+] Development files go in -devel package
 [+] -devel packages Require base with fully-versioned dependency, %_isa
 [+] No .la files
 [-] GUI app uses .desktop file, installs it with desktop-file-install
 [-] File list does not conflict with other packages' without justification
 [+] File names are valid UTF-8

** Optional review guidelines: **
 [?] Query upstream about including license files
^ ROS, so I don't expect anything, but you can query them when you have the
time.

 [-] Translations of description, summary
 [+] Builds in mock
 [+] Builds on all arches
 [-] Functions as described (e.g. no crashes)
 [?] Scriptlets are sane
^^
Missing scriptlets for shared libraries. BLOCKER
http://fedoraproject.org/wiki/Packaging:Guidelines#Shared_Libraries

 [+] Subpackages require base with fully-versioned dependency if sensible
 [+] .pc file subpackage placement is sensible
 [+] No file deps outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin
 [-] Include man pages if available

Naming guidelines:
 [+] Package names use only a-zA-Z0-9-._+ subject to restrictions on -._+
 [+] Package names are sane
 [+] No naming conflicts
 [+] Spec file name matches base package name
 [+] Version is sane
 [+] Version does not contain ~
 [+] Release is sane
 [+] %dist tag
 [+] Case used only when necessary
 [-] Renaming handled correctly

Packaging guidelines:
 [+] Useful without external bits
 [-] No kmods
 [-] Pre-built binaries, libs removed in %prep
 [+] Sources contain only redistributable code or content
 [+] Spec format is sane
 [+] Package obeys FHS, except libexecdir, /run, /usr/target
 [+] No files in /bin, /sbin, /lib* on >= F17
 [-] Programs run before FS mounting use /run instead of /var/run
 [-] Binaries in /bin, /sbin do not depend on files in /usr on < F17
 [+] No files under /srv, /opt, /usr/local
 [+] Changelog in prescribed format
 [+] No Packager, Vendor, Copyright, PreReq tags
 [+] Summary does not end in a period
 [-] Correct BuildRoot tag on < EL6
 [-] Correct %clean section on < EL6
 [-] Requires correct, justified where necessary
 [-] Summary, description do not use trademarks incorrectly
 [-] All relevant documentation is packaged, appropriately marked with %doc
 [-] Doc files do not drag in extra dependencies (e.g. due to +x)
 [+] Code compilable with gcc is compiled with gcc
 [+] Build honors applicable compiler flags or justifies otherwise
 [-] PIE used for long-running/root daemons, setuid/filecap programs
 [+] Useful -debuginfo package or disabled and justified
 [-] Package with .pc files Requires pkgconfig on < EL6
 [+] No static executables
 [+] Rpath absent or only used for internal libs
 [-] Config files marked with %config(noreplace) or justified %config
 [-] No config files under /usr
 [-] Third party package manager configs acceptable, in %_docdir
 [-] .desktop files are sane
 [+] Spec uses macros consistently
 [+] Spec uses macros instead of hard-coded names where appropriate
 [+] Spec uses macros for executables only when configurability is needed
 [-] %makeinstall used only when alternatives don't work
 [-] Macros in Summary, description are expandable at srpm build time
 [-] Spec uses %{SOURCE#} instead of $RPM_SOURCE_DIR and %sourcedir
 [-] No software collections (scl)
 [-] Macro files named /etc/rpm/macros.%name
 [-] Build uses only python/perl/shell+coreutils/lua/BuildRequired langs
 [+] %global, not %define
 [-] Package translating with gettext BuildRequires it
 [-] Package translating with Linguist BuildRequires qt-devel
 [-] File ops preserve timestamps
 [+] Parallel make
 [+] No Requires(pre,post) notation
 [-] User, group creation handled correctly (See Packaging:UsersAndGroups)
 [-] Web apps go in /usr/share/%name, not /var/www
 [-] Conflicts are justified
 [+] One project per package
 [+] No bundled fonts
 [+] Patches have appropriate commentary
 [-] Available test suites executed in %check
 [-] tmpfiles.d used for /run, /run/lock on >= F15


A few issues need to be worked on before this can be approved: the soname, the scriptlets are blockers.

Thanks,
Warm regards,
Ankur

Comment 6 Rich Mattes 2013-04-09 23:18:14 UTC
Updated packages:

Spec URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/console-bridge/console-bridge-0.1.4-2.fc18.src.rpm

I added the calls to ldconfig and patched CMakeLists.txt to set the SOVERSION to 0 (which should be safe if upstream starts adding their own SONAME).

rpmlint:
$ rpmlint console-bridge.spec ../RPMS/x86_64/console-bridge-* 
console-bridge.spec: W: invalid-url Source0: ros-console_bridge-0.1.4-0-g96c8951.tar.gz
console-bridge.x86_64: W: no-documentation
console-bridge-devel.x86_64: W: no-documentation
3 packages and 1 specfiles checked; 0 errors, 3 warnings.

Comment 7 Ankur Sinha (FranciscoD) 2013-04-23 09:44:43 UTC
Hi Rich,

Issues are fixed:

[ankur@ankur-pc  SRPMS]$ rpm -qp --requires /var/lib/mock/fedora-rawhide-x86_64/result/*.rpm
cmake
boost-devel
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
/sbin/ldconfig
/sbin/ldconfig
libboost_system-mt.so.1.53.0()(64bit)
libboost_thread-mt.so.1.53.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libm.so.6()(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1
/usr/bin/pkg-config
console-bridge(x86-64) = 0.1.4-2.fc20
libconsole_bridge.so.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
[ankur@ankur-pc  SRPMS]$ rpm -qp --provides /var/lib/mock/fedora-rawhide-x86_64/result/*.rpm
console-bridge = 0.1.4-2.fc20
console-bridge(x86-64) = 0.1.4-2.fc20
libconsole_bridge.so.0()(64bit)
console-bridge-debuginfo = 0.1.4-2.fc20
console-bridge-debuginfo(x86-64) = 0.1.4-2.fc20
console-bridge-devel = 0.1.4-2.fc20
console-bridge-devel(x86-64) = 0.1.4-2.fc20
pkgconfig(console_bridge)
[ankur@ankur-pc  SRPMS]$

Package looks good to me.

XXX APPROVED XXX

Comment 8 Rich Mattes 2013-04-25 02:43:10 UTC
New Package SCM Request
=======================
Package Name: console-bridge
Short Description: Lightweight set of macros used for reporting information in libraries
Owners: rmattes
Branches: f17 f18 f19 el6
InitialCC:

Comment 9 Gwyn Ciesla 2013-04-25 11:12:51 UTC
Git done (by process-git-requests).

Comment 10 Fedora Update System 2013-04-28 18:56:15 UTC
console-bridge-0.1.4-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/console-bridge-0.1.4-2.fc19

Comment 11 Fedora Update System 2013-04-29 17:45:30 UTC
console-bridge-0.1.4-2.fc19 has been pushed to the Fedora 19 testing repository.

Comment 12 Fedora Update System 2013-05-05 03:23:54 UTC
console-bridge-0.1.4-2.fc19 has been pushed to the Fedora 19 stable repository.


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