Bug 1273833

Summary: Review Request: libsoc - Interface with common SoC peripherals through generic kernel interfaces
Product: [Fedora] Fedora Reporter: Peter Robinson <pbrobinson>
Component: Package ReviewAssignee: Antonio T. (sagitter) <anto.trande>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jsmith.fedora, package-review
Target Milestone: ---Flags: anto.trande: fedora-review+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-15 10:50:13 UTC Type: Bug
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: 245418, 1269538    

Description Peter Robinson 2015-10-21 11:09:34 UTC
%description
libsoc is a C library for interfacing with common SoC peripherals through 
generic kernel interfaces.

SPEC: https://pbrobinson.fedorapeople.org/libsoc.spec
RPMS: https://pbrobinson.fedorapeople.org/libsoc-0.6.5-1.fc23.src.rpm

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

Comment 1 Upstream Release Monitoring 2015-10-21 11:10:41 UTC
pbrobinson's scratch build of libsoc-0.6.5-1.fc23.src.rpm for f24 completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11531741

Comment 2 Antonio T. (sagitter) 2015-10-21 11:12:01 UTC
Hi Peter,

review swap?
https://bugzilla.redhat.com/show_bug.cgi?id=1272652

Comment 3 Antonio T. (sagitter) 2015-10-30 11:59:27 UTC
- undefined-non-weak-symbol warnings are quieted by adding -fwhole-program flag to CFLAGS variable. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

But I'm not sure that it's the right workaround.

- Tests are not execute (maybe they aren't still entirely provided).

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.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "BSD (3 clause)", "Unknown or generated". 16 files have unknown
     license. Detailed output of licensecheck in
     /home/sagitter/1273833-libsoc/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[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.
[-]: 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.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[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.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 3 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 %license.
[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]: Dist tag is present.
[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 does not use a name that already exists.
[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:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[-]: 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.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[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]: Package should not use obsolete m4 macros


Rpmlint
-------
Checking: libsoc-0.6.5-1.fc24.x86_64.rpm
          libsoc-devel-0.6.5-1.fc24.x86_64.rpm
          libsoc-0.6.5-1.fc24.src.rpm
libsoc.x86_64: W: summary-not-capitalized C interface with common SoC peripherals through generic kernel interfaces
libsoc-devel.x86_64: W: only-non-binary-in-usr-lib
libsoc-devel.x86_64: W: no-documentation
libsoc.src: W: summary-not-capitalized C interface with common SoC peripherals through generic kernel interfaces
3 packages and 0 specfiles checked; 0 errors, 4 warnings.




Rpmlint (debuginfo)
-------------------
Checking: libsoc-debuginfo-0.6.5-1.fc24.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
libsoc.x86_64: W: summary-not-capitalized C interface with common SoC peripherals through generic kernel interfaces
libsoc.x86_64: W: private-shared-object-provides /usr/lib64/libsoc.so.2.2.5 libsoc.so.2()(64bit)
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 libsoc_pwm_debug
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_open
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 libsoc_spi_debug
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_read_str
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_close
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_write_str
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 libsoc_i2c_debug
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 libsoc_gpio_debug
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_write_int_path
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_read
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_valid
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 file_write
libsoc.x86_64: W: undefined-non-weak-symbol /usr/lib64/libsoc.so.2.2.5 libsoc_debug
libsoc-devel.x86_64: W: only-non-binary-in-usr-lib
libsoc-devel.x86_64: W: no-documentation
3 packages and 0 specfiles checked; 0 errors, 17 warnings.



Diff spec file in url and in SRPM
---------------------------------
--- /home/sagitter/1273833-libsoc/srpm/libsoc.spec	2015-10-23 22:57:51.355245048 +0200
+++ /home/sagitter/1273833-libsoc/srpm-unpacked/libsoc.spec	2015-10-21 12:51:45.000000000 +0200
@@ -2,5 +2,5 @@
 Version:       0.6.5
 Release:       1%{?dist}
-Summary:       Interface with common SoC peripherals through generic kernel interfaces 
+Summary:       interface with common SoC peripherals through generic kernel interfaces 
 
 Group:         System Environment/Libraries


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

libsoc-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libsoc(x86-64)
    libsoc.so.2()(64bit)



Provides
--------
libsoc:
    libsoc
    libsoc(x86-64)
    libsoc.so.2()(64bit)

libsoc-devel:
    libsoc-devel
    libsoc-devel(x86-64)
    pkgconfig(libsoc)



Source checksums
----------------
https://github.com/jackmitch/libsoc/archive/0.6.5.tar.gz :
  CHECKSUM(SHA256) this package     : 7f0e632f759e35ce6e4622c12efd084ceacabf529d32a46c7d37b4621d0a0770
  CHECKSUM(SHA256) upstream package : 7f0e632f759e35ce6e4622c12efd084ceacabf529d32a46c7d37b4621d0a0770


Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20
Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 1273833
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 4 Peter Robinson 2015-11-14 19:05:03 UTC
(In reply to Antonio Trande from comment #3)
> - undefined-non-weak-symbol warnings are quieted by adding -fwhole-program
> flag to CFLAGS variable.
> https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
> 
> But I'm not sure that it's the right workaround.

No, I'm using distro CFLAGS.

> Diff spec file in url and in SRPM
> ---------------------------------
> --- /home/sagitter/1273833-libsoc/srpm/libsoc.spec	2015-10-23
> 22:57:51.355245048 +0200
> +++ /home/sagitter/1273833-libsoc/srpm-unpacked/libsoc.spec	2015-10-21
> 12:51:45.000000000 +0200
> @@ -2,5 +2,5 @@
>  Version:       0.6.5
>  Release:       1%{?dist}
> -Summary:       Interface with common SoC peripherals through generic kernel
> interfaces 
> +Summary:       interface with common SoC peripherals through generic kernel
> interfaces 

I can't see what the difference is there.

I'm not sure what needs to be done here.

Comment 5 Antonio T. (sagitter) 2015-11-14 19:21:35 UTC
(In reply to Peter Robinson from comment #4)
> 
> > Diff spec file in url and in SRPM
> > ---------------------------------
> > --- /home/sagitter/1273833-libsoc/srpm/libsoc.spec	2015-10-23
> > 22:57:51.355245048 +0200
> > +++ /home/sagitter/1273833-libsoc/srpm-unpacked/libsoc.spec	2015-10-21
> > 12:51:45.000000000 +0200
> > @@ -2,5 +2,5 @@
> >  Version:       0.6.5
> >  Release:       1%{?dist}
> > -Summary:       Interface with common SoC peripherals through generic kernel
> > interfaces 
> > +Summary:       interface with common SoC peripherals through generic kernel
> > interfaces 
> 
> I can't see what the difference is there.
> 
> I'm not sure what needs to be done here.

First letter is uppercase only in the spec file outside of srpm.
rpmlint informs you when the first letter of Summary is lowercase.

Package approved.

Comment 6 Peter Robinson 2015-11-14 19:50:48 UTC
> First letter is uppercase only in the spec file outside of srpm.
> rpmlint informs you when the first letter of Summary is lowercase.

I looked at that for a good minute! :-)

> Package approved.

Thanks!

Comment 7 Gwyn Ciesla 2015-11-14 22:42:55 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/libsoc