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
weird path in console_bridge-config.cmake PATHS /usr//usr/lib
I wonder. What for is need this file? If it is cmake module it should be places in /usr/share/cmake/Modules
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
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.
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
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.
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
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:
Git done (by process-git-requests).
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
console-bridge-0.1.4-2.fc19 has been pushed to the Fedora 19 testing repository.
console-bridge-0.1.4-2.fc19 has been pushed to the Fedora 19 stable repository.