Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1426465 - Review Request: libiio - Library for Industrial IO
Summary: Review Request: libiio - Library for Industrial IO
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Mamoru TASAKA
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: IoT 1482246
TreeView+ depends on / blocked
 
Reported: 2017-02-24 00:23 UTC by Peter Robinson
Modified: 2017-08-22 16:01 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-08-22 16:01:14 UTC
Type: Bug
Embargoed:
mtasaka: fedora-review+


Attachments (Terms of Use)

Description Peter Robinson 2017-02-24 00:23:35 UTC
SPEC: https://pbrobinson.fedorapeople.org/libiio.spec
SRPM: https://pbrobinson.fedorapeople.org/libiio-0.9-1.fc25.src.rpm

Description:
libiio is a library for interfacing with kernel IIO (Industrial IO) devices.

koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=18019491

Comment 1 Antonio T. (sagitter) 2017-02-27 20:48:48 UTC
Package Review
==============

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


Issues:
=======
- Large documentation must go in a -doc subpackage. Large could be size
  (~1MB) or number of files.
  Note: Documentation size is 1290240 bytes in 113 files.
  See:
  http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation

- Please, separate HTML docs in a noarch sub-package.

- Many source files are licensed under a LGPLv2+ license.
  I guess it's correct using LGPLv2+ as main license.

- __pycache__ looks not recognized as property of this package

- You don't need to use %doc. HTML documentation is already in
  %_pkgdocdir directory.

- Fix wrong Python interpreter:
python3-iio.noarch: E: wrong-script-interpreter /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
python3-iio.noarch: E: non-executable-script /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python

- You can compile the example files inside 'examples' directory (needs 'cdk-devel' package):

sed -e 's|cdk/cdk.h|cdk.h|g' -i examples/iio-monitor.c
make CFLAGS="%optflags -I../ -I%{_includedir}" LDFLAGS="%__global_ldflags -L../ -liio" -C examples

===== 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. Licenses
     found: "BSD (3 clause)", "LGPL (v2.1 or later)", "Unknown or
     generated". 46 files have unknown license. Detailed output of
     licensecheck in /home/sagitter/1426465-libiio/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/python3.6/site-
     packages, /usr/lib/python3.6
[!]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib/python3.6/site-
     packages/__pycache__(python36)
[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.
[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]: 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

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== 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).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libiio-
     debuginfo
[ ]: 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]: 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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1310720 bytes in /usr/share
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: libiio-0.9-1.fc26.x86_64.rpm
          libiio-utils-0.9-1.fc26.x86_64.rpm
          libiio-devel-0.9-1.fc26.x86_64.rpm
          python3-iio-0.9-1.fc26.noarch.rpm
          libiio-debuginfo-0.9-1.fc26.x86_64.rpm
          libiio-0.9-1.fc26.src.rpm
libiio-utils.x86_64: W: no-documentation
libiio-utils.x86_64: W: no-manual-page-for-binary iio_info
libiio-utils.x86_64: W: no-manual-page-for-binary iio_genxml
libiio-utils.x86_64: W: no-manual-page-for-binary iio_adi_xflow_check
libiio-utils.x86_64: W: no-manual-page-for-binary iio_reg
libiio-utils.x86_64: W: no-manual-page-for-binary iio_readdev
libiio-utils.x86_64: W: no-manual-page-for-binary iiod
libiio-devel.x86_64: W: only-non-binary-in-usr-lib
python3-iio.noarch: W: spelling-error Summary(en_US) libiio -> libido
python3-iio.noarch: W: no-documentation
python3-iio.noarch: E: wrong-script-interpreter /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
python3-iio.noarch: E: non-executable-script /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
6 packages and 0 specfiles checked; 2 errors, 10 warnings.




Rpmlint (debuginfo)
-------------------
Checking: libiio-debuginfo-0.9-1.fc26.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
libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9 /lib64/liblzma.so.5
libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9 /lib64/libz.so.1
libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9 /lib64/libm.so.6
libiio-devel.x86_64: W: only-non-binary-in-usr-lib
python3-iio.noarch: W: spelling-error Summary(en_US) libiio -> libido
python3-iio.noarch: W: no-documentation
python3-iio.noarch: E: wrong-script-interpreter /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
python3-iio.noarch: E: non-executable-script /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
libiio-utils.x86_64: W: no-documentation
libiio-utils.x86_64: W: no-manual-page-for-binary iio_adi_xflow_check
libiio-utils.x86_64: W: no-manual-page-for-binary iio_genxml
libiio-utils.x86_64: W: no-manual-page-for-binary iio_info
libiio-utils.x86_64: W: no-manual-page-for-binary iio_readdev
libiio-utils.x86_64: W: no-manual-page-for-binary iio_reg
libiio-utils.x86_64: W: no-manual-page-for-binary iiod
5 packages and 0 specfiles checked; 2 errors, 13 warnings.



Requires
--------
libiio (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    liblzma.so.5()(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libxml2.so.2()(64bit)
    libxml2.so.2(LIBXML2_2.4.30)(64bit)
    libxml2.so.2(LIBXML2_2.6.0)(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

libiio-debuginfo (rpmlib, GLIBC filtered):

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

python3-iio (rpmlib, GLIBC filtered):
    libiio(x86-64)
    python(abi)

libiio-utils (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libiio(x86-64)
    libiio.so.0()(64bit)
    libpthread.so.0()(64bit)
    rtld(GNU_HASH)



Provides
--------
libiio:
    libiio
    libiio(x86-64)
    libiio.so.0()(64bit)

libiio-debuginfo:
    libiio-debuginfo
    libiio-debuginfo(x86-64)

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

python3-iio:
    python3-iio
    python3.6dist(libiio)
    python3dist(libiio)

libiio-utils:
    libiio-utils
    libiio-utils(x86-64)



Source checksums
----------------
https://github.com/analogdevicesinc/libiio/archive/v0.9.tar.gz :
  CHECKSUM(SHA256) this package     : b6184876d192fbfd51e3a0a29736fa1be2dbaf07370cf861797076f40a85f823
  CHECKSUM(SHA256) upstream package : b6184876d192fbfd51e3a0a29736fa1be2dbaf07370cf861797076f40a85f823


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review --mock-options=--no-clean -m fedora-rawhide-x86_64 -b 1426465
Buildroot used: fedora-rawhide-x86_64
Active plugins: Python, Generic, Shell-api, C/C++
Disabled plugins: Java, SugarActivity, fonts, Haskell, Ocaml, Perl, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 2 Peter Robinson 2017-03-25 14:51:27 UTC
> - Large documentation must go in a -doc subpackage. Large could be size
>   (~1MB) or number of files.
>   Note: Documentation size is 1290240 bytes in 113 files.
>   See:
>   http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation
> 
> - Please, separate HTML docs in a noarch sub-package.

It doesn't specify that 1Mb is considered large it just states "Or if there's a lot of documentation, consider putting it into a subpackage. In this case, it is recommended to use *-doc as the subpackage name." 

I don't consider 1.2Mb large enough to move from -devel to a separate package. If it was 10s of Mb sure. 
 
> - Many source files are licensed under a LGPLv2+ license.
>   I guess it's correct using LGPLv2+ as main license.

OK. Will update

> - __pycache__ looks not recognized as property of this package

What do you mean by that?

> - You don't need to use %doc. HTML documentation is already in
>   %_pkgdocdir directory.

Sure, but what problem does this cause?

> - Fix wrong Python interpreter:
> python3-iio.noarch: E: wrong-script-interpreter
> /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
> python3-iio.noarch: E: non-executable-script
> /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
> 
> - You can compile the example files inside 'examples' directory (needs
> 'cdk-devel' package):

Sure, but I do see them as providing much value as actual binaries hence I didn't. Could possibly include them in -devel as source, but again not sure that provides much value.

> sed -e 's|cdk/cdk.h|cdk.h|g' -i examples/iio-monitor.c
> make CFLAGS="%optflags -I../ -I%{_includedir}" LDFLAGS="%__global_ldflags
> -L../ -liio" -C examples
> 
> ===== 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. Licenses
>      found: "BSD (3 clause)", "LGPL (v2.1 or later)", "Unknown or
>      generated". 46 files have unknown license. Detailed output of
>      licensecheck in /home/sagitter/1426465-libiio/licensecheck.txt
> [x]: License file installed when any subpackage combination is installed.
> [x]: Package must own all directories that it creates.
>      Note: Directories without known owners: /usr/lib/python3.6/site-
>      packages, /usr/lib/python3.6
> [!]: Package does not own files or directories owned by other packages.
>      Note: Dirs in package are owned also by: /usr/lib/python3.6/site-
>      packages/__pycache__(python36)
> [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.
> [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]: 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
> 
> Python:
> [x]: Python eggs must not download any dependencies during the build
>      process.
> [x]: A package which is used by another package via an egg interface should
>      provide egg info.
> [x]: Package meets the Packaging Guidelines::Python
> [x]: Package contains BR: python2-devel or python3-devel
> [x]: Binary eggs must be removed in %prep
> 
> ===== 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).
> [x]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libiio-
>      debuginfo
> [ ]: 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]: 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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
> [x]: Uses parallel make %{?_smp_mflags} macro.
> [x]: The placement of pkgconfig(.pc) files are correct.
> [x]: Sources can be downloaded from URI in Source: tag
> [x]: SourceX is a working URL.
> [x]: Spec use %global instead of %define unless justified.
> 
> ===== EXTRA items =====
> 
> Generic:
> [!]: Large data in /usr/share should live in a noarch subpackage if package
>      is arched.
>      Note: Arch-ed rpms have a total of 1310720 bytes in /usr/share
> [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]: Spec file according to URL is the same as in SRPM.
> 
> 
> Rpmlint
> -------
> Checking: libiio-0.9-1.fc26.x86_64.rpm
>           libiio-utils-0.9-1.fc26.x86_64.rpm
>           libiio-devel-0.9-1.fc26.x86_64.rpm
>           python3-iio-0.9-1.fc26.noarch.rpm
>           libiio-debuginfo-0.9-1.fc26.x86_64.rpm
>           libiio-0.9-1.fc26.src.rpm
> libiio-utils.x86_64: W: no-documentation
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_info
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_genxml
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_adi_xflow_check
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_reg
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_readdev
> libiio-utils.x86_64: W: no-manual-page-for-binary iiod
> libiio-devel.x86_64: W: only-non-binary-in-usr-lib
> python3-iio.noarch: W: spelling-error Summary(en_US) libiio -> libido
> python3-iio.noarch: W: no-documentation
> python3-iio.noarch: E: wrong-script-interpreter
> /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
> python3-iio.noarch: E: non-executable-script
> /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
> 6 packages and 0 specfiles checked; 2 errors, 10 warnings.
> 
> 
> 
> 
> Rpmlint (debuginfo)
> -------------------
> Checking: libiio-debuginfo-0.9-1.fc26.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
> libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9
> /lib64/liblzma.so.5
> libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9
> /lib64/libz.so.1
> libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9
> /lib64/libm.so.6
> libiio-devel.x86_64: W: only-non-binary-in-usr-lib
> python3-iio.noarch: W: spelling-error Summary(en_US) libiio -> libido
> python3-iio.noarch: W: no-documentation
> python3-iio.noarch: E: wrong-script-interpreter
> /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
> python3-iio.noarch: E: non-executable-script
> /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
> libiio-utils.x86_64: W: no-documentation
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_adi_xflow_check
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_genxml
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_info
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_readdev
> libiio-utils.x86_64: W: no-manual-page-for-binary iio_reg
> libiio-utils.x86_64: W: no-manual-page-for-binary iiod
> 5 packages and 0 specfiles checked; 2 errors, 13 warnings.
> 
> 
> 
> Requires
> --------
> libiio (rpmlib, GLIBC filtered):
>     /sbin/ldconfig
>     libc.so.6()(64bit)
>     liblzma.so.5()(64bit)
>     libm.so.6()(64bit)
>     libpthread.so.0()(64bit)
>     librt.so.1()(64bit)
>     libxml2.so.2()(64bit)
>     libxml2.so.2(LIBXML2_2.4.30)(64bit)
>     libxml2.so.2(LIBXML2_2.6.0)(64bit)
>     libz.so.1()(64bit)
>     rtld(GNU_HASH)
> 
> libiio-debuginfo (rpmlib, GLIBC filtered):
> 
> libiio-devel (rpmlib, GLIBC filtered):
>     /usr/bin/pkg-config
>     libiio(x86-64)
>     libiio.so.0()(64bit)
> 
> python3-iio (rpmlib, GLIBC filtered):
>     libiio(x86-64)
>     python(abi)
> 
> libiio-utils (rpmlib, GLIBC filtered):
>     libc.so.6()(64bit)
>     libiio(x86-64)
>     libiio.so.0()(64bit)
>     libpthread.so.0()(64bit)
>     rtld(GNU_HASH)
> 
> 
> 
> Provides
> --------
> libiio:
>     libiio
>     libiio(x86-64)
>     libiio.so.0()(64bit)
> 
> libiio-debuginfo:
>     libiio-debuginfo
>     libiio-debuginfo(x86-64)
> 
> libiio-devel:
>     libiio-devel
>     libiio-devel(x86-64)
>     pkgconfig(libiio)
> 
> python3-iio:
>     python3-iio
>     python3.6dist(libiio)
>     python3dist(libiio)
> 
> libiio-utils:
>     libiio-utils
>     libiio-utils(x86-64)
> 
> 
> 
> Source checksums
> ----------------
> https://github.com/analogdevicesinc/libiio/archive/v0.9.tar.gz :
>   CHECKSUM(SHA256) this package     :
> b6184876d192fbfd51e3a0a29736fa1be2dbaf07370cf861797076f40a85f823
>   CHECKSUM(SHA256) upstream package :
> b6184876d192fbfd51e3a0a29736fa1be2dbaf07370cf861797076f40a85f823
> 
> 
> Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
> Command line :/usr/bin/fedora-review --mock-options=--no-clean -m
> fedora-rawhide-x86_64 -b 1426465
> Buildroot used: fedora-rawhide-x86_64
> Active plugins: Python, Generic, Shell-api, C/C++
> Disabled plugins: Java, SugarActivity, fonts, Haskell, Ocaml, Perl, R, PHP
> Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 3 Antonio T. (sagitter) 2017-03-26 11:01:26 UTC
(In reply to Peter Robinson from comment #2)
> 
> > - __pycache__ looks not recognized as property of this package
> 
> What do you mean by that?

It was present and not packaged.

> 
> > - You don't need to use %doc. HTML documentation is already in
> >   %_pkgdocdir directory.
> 
> Sure, but what problem does this cause?

None i guess, it is just redundant.

> 
> > - Fix wrong Python interpreter:
> > python3-iio.noarch: E: wrong-script-interpreter
> > /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
> > python3-iio.noarch: E: non-executable-script
> > /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
> > 
> > - You can compile the example files inside 'examples' directory (needs
> > 'cdk-devel' package):
> 
> Sure, but I do see them as providing much value as actual binaries hence I
> didn't. Could possibly include them in -devel as source, but again not sure
> that provides much value.
> 
> > sed -e 's|cdk/cdk.h|cdk.h|g' -i examples/iio-monitor.c
> > make CFLAGS="%optflags -I../ -I%{_includedir}" LDFLAGS="%__global_ldflags
> > -L../ -liio" -C examples
> > 
> > ===== 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. Licenses
> >      found: "BSD (3 clause)", "LGPL (v2.1 or later)", "Unknown or
> >      generated". 46 files have unknown license. Detailed output of
> >      licensecheck in /home/sagitter/1426465-libiio/licensecheck.txt
> > [x]: License file installed when any subpackage combination is installed.
> > [x]: Package must own all directories that it creates.
> >      Note: Directories without known owners: /usr/lib/python3.6/site-
> >      packages, /usr/lib/python3.6
> > [!]: Package does not own files or directories owned by other packages.
> >      Note: Dirs in package are owned also by: /usr/lib/python3.6/site-
> >      packages/__pycache__(python36)
> > [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.
> > [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]: 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
> > 
> > Python:
> > [x]: Python eggs must not download any dependencies during the build
> >      process.
> > [x]: A package which is used by another package via an egg interface should
> >      provide egg info.
> > [x]: Package meets the Packaging Guidelines::Python
> > [x]: Package contains BR: python2-devel or python3-devel
> > [x]: Binary eggs must be removed in %prep
> > 
> > ===== 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).
> > [x]: Fully versioned dependency in subpackages if applicable.
> >      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libiio-
> >      debuginfo
> > [ ]: 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]: 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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
> > [x]: Uses parallel make %{?_smp_mflags} macro.
> > [x]: The placement of pkgconfig(.pc) files are correct.
> > [x]: Sources can be downloaded from URI in Source: tag
> > [x]: SourceX is a working URL.
> > [x]: Spec use %global instead of %define unless justified.
> > 
> > ===== EXTRA items =====
> > 
> > Generic:
> > [!]: Large data in /usr/share should live in a noarch subpackage if package
> >      is arched.
> >      Note: Arch-ed rpms have a total of 1310720 bytes in /usr/share
> > [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]: Spec file according to URL is the same as in SRPM.
> > 
> > 
> > Rpmlint
> > -------
> > Checking: libiio-0.9-1.fc26.x86_64.rpm
> >           libiio-utils-0.9-1.fc26.x86_64.rpm
> >           libiio-devel-0.9-1.fc26.x86_64.rpm
> >           python3-iio-0.9-1.fc26.noarch.rpm
> >           libiio-debuginfo-0.9-1.fc26.x86_64.rpm
> >           libiio-0.9-1.fc26.src.rpm
> > libiio-utils.x86_64: W: no-documentation
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_info
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_genxml
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_adi_xflow_check
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_reg
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_readdev
> > libiio-utils.x86_64: W: no-manual-page-for-binary iiod
> > libiio-devel.x86_64: W: only-non-binary-in-usr-lib
> > python3-iio.noarch: W: spelling-error Summary(en_US) libiio -> libido
> > python3-iio.noarch: W: no-documentation
> > python3-iio.noarch: E: wrong-script-interpreter
> > /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
> > python3-iio.noarch: E: non-executable-script
> > /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
> > 6 packages and 0 specfiles checked; 2 errors, 10 warnings.
> > 
> > 
> > 
> > 
> > Rpmlint (debuginfo)
> > -------------------
> > Checking: libiio-debuginfo-0.9-1.fc26.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
> > libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9
> > /lib64/liblzma.so.5
> > libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9
> > /lib64/libz.so.1
> > libiio.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libiio.so.0.9
> > /lib64/libm.so.6
> > libiio-devel.x86_64: W: only-non-binary-in-usr-lib
> > python3-iio.noarch: W: spelling-error Summary(en_US) libiio -> libido
> > python3-iio.noarch: W: no-documentation
> > python3-iio.noarch: E: wrong-script-interpreter
> > /usr/lib/python3.6/site-packages/iio.py /usr/bin/env python
> > python3-iio.noarch: E: non-executable-script
> > /usr/lib/python3.6/site-packages/iio.py 644 /usr/bin/env python
> > libiio-utils.x86_64: W: no-documentation
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_adi_xflow_check
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_genxml
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_info
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_readdev
> > libiio-utils.x86_64: W: no-manual-page-for-binary iio_reg
> > libiio-utils.x86_64: W: no-manual-page-for-binary iiod
> > 5 packages and 0 specfiles checked; 2 errors, 13 warnings.
> > 
> > 
> > 
> > Requires
> > --------
> > libiio (rpmlib, GLIBC filtered):
> >     /sbin/ldconfig
> >     libc.so.6()(64bit)
> >     liblzma.so.5()(64bit)
> >     libm.so.6()(64bit)
> >     libpthread.so.0()(64bit)
> >     librt.so.1()(64bit)
> >     libxml2.so.2()(64bit)
> >     libxml2.so.2(LIBXML2_2.4.30)(64bit)
> >     libxml2.so.2(LIBXML2_2.6.0)(64bit)
> >     libz.so.1()(64bit)
> >     rtld(GNU_HASH)
> > 
> > libiio-debuginfo (rpmlib, GLIBC filtered):
> > 
> > libiio-devel (rpmlib, GLIBC filtered):
> >     /usr/bin/pkg-config
> >     libiio(x86-64)
> >     libiio.so.0()(64bit)
> > 
> > python3-iio (rpmlib, GLIBC filtered):
> >     libiio(x86-64)
> >     python(abi)
> > 
> > libiio-utils (rpmlib, GLIBC filtered):
> >     libc.so.6()(64bit)
> >     libiio(x86-64)
> >     libiio.so.0()(64bit)
> >     libpthread.so.0()(64bit)
> >     rtld(GNU_HASH)
> > 
> > 
> > 
> > Provides
> > --------
> > libiio:
> >     libiio
> >     libiio(x86-64)
> >     libiio.so.0()(64bit)
> > 
> > libiio-debuginfo:
> >     libiio-debuginfo
> >     libiio-debuginfo(x86-64)
> > 
> > libiio-devel:
> >     libiio-devel
> >     libiio-devel(x86-64)
> >     pkgconfig(libiio)
> > 
> > python3-iio:
> >     python3-iio
> >     python3.6dist(libiio)
> >     python3dist(libiio)
> > 
> > libiio-utils:
> >     libiio-utils
> >     libiio-utils(x86-64)
> > 
> > 
> > 
> > Source checksums
> > ----------------
> > https://github.com/analogdevicesinc/libiio/archive/v0.9.tar.gz :
> >   CHECKSUM(SHA256) this package     :
> > b6184876d192fbfd51e3a0a29736fa1be2dbaf07370cf861797076f40a85f823
> >   CHECKSUM(SHA256) upstream package :
> > b6184876d192fbfd51e3a0a29736fa1be2dbaf07370cf861797076f40a85f823
> > 
> > 
> > Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
> > Command line :/usr/bin/fedora-review --mock-options=--no-clean -m
> > fedora-rawhide-x86_64 -b 1426465
> > Buildroot used: fedora-rawhide-x86_64
> > Active plugins: Python, Generic, Shell-api, C/C++
> > Disabled plugins: Java, SugarActivity, fonts, Haskell, Ocaml, Perl, R, PHP
> > Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 4 Antonio T. (sagitter) 2017-03-26 11:12:02 UTC
Build fails; are you sure that python*- packages are noarch?
https://koji.fedoraproject.org/koji/taskinfo?taskID=18607371

"The following noarch package built differently on different architectures: python3-iio-0.9-1.fc27.noarch.rpm
rpmdiff output was:
error: cannot open Packages index using db5 - Permission denied (13)
error: cannot open Packages database in /var/lib/rpm
error: cannot open Packages database in /var/lib/rpm
removed     REQUIRES libiio(x86-64) = 0.9-1.fc27
added       REQUIRES libiio(ppc-64) = 0.9-1.fc27"

Comment 5 Eric Smith 2017-05-11 06:07:55 UTC
When I build from the spec on Fedora 25 locally (not using mock or koji), I get what looks like a mostly successful build, but then a packaging fail:

Processing files: python3-iio-0.9-1.fc25.noarch
error: File not found: /home/eric/rpmbuild/BUILDROOT/libiio-0.9-1.fc25.x86_64/usr/lib/python3.5/site-packages/*

Looking inside the buildroot, I find no usr/lib/python3.5 directory, but there is a usr/lib/python2.7 directory, so somehow things are being built for the wrong Python.  (Might be nice to build for both, if libiio can support both, but I'd personally be satisfied with just Python 3.x.)

I don't understand CMake, so I unfortunately don't have the first clue as to how to fix this.

By the way, when writing RPM spec Source lines using github, it's possible to get better filenames for the tarballs. Instead of:

Source0:       https://github.com/analogdevicesinc/libiio/archive/v%{version}.tar.gz

You can use:

Source0:       https://github.com/analogdevicesinc/libiio/archive/v%{version}/%{name}-%{version}.tar.gz

Comment 6 Peter Robinson 2017-07-20 14:40:08 UTC
This isn't a dead review

Comment 7 Eric Smith 2017-08-15 08:08:15 UTC
The SRPM still fails to build on an F26 x86_64 host, for the same reason as described in comment 5 above.  I am presently unable to attempt a koji build due to bug #1472106.

Upstream has released version 0.10.

The review may not be dead, but it's certainly not at all well.  For the review not to be dead, the submitter needs to address the requests, not simply remove the blocking of bug #201449.

I'm willing to review the package if and when there is an SRPM that builds successfully on F26.

Comment 8 Mamoru TASAKA 2017-08-15 09:00:44 UTC
(In reply to Eric Smith from comment #7)
> The SRPM still fails to build on an F26 x86_64 host, for the same reason as
> described in comment 5 above.  

For review, you have to check build by mockbuild (either using koji or something else). The build failure on non-mockbuild is not a valid reason to refuse the review srpm.

> I am presently unable to attempt a koji build
> due to bug #1472106.
Workaround is already there. 

> Upstream has released version 0.10.
> 
> The review may not be dead, but it's certainly not at all well.  For the
> review not to be dead, the submitter needs to address the requests, not
> simply remove the blocking of bug #201449.
> 
> I'm willing to review the package if and when there is an SRPM that builds
> successfully on F26.

Your current comment is not valid for making this review request block dead-review, lefting.

Comment 9 Mamoru TASAKA 2017-08-15 15:08:16 UTC
By the way:

* Latest version
  - 0.10 is now available.

* License tag
  - Although "README.md" says this is under LGPLv2+,
    "mainpage.dox" says this is under LGPLv2.
    While this needs clarification, currently the rpm
    license tag must be "LGPLv2", which is safer.

* Forbidden code
  https://fedoraproject.org/wiki/Packaging:SourceURL#When_Upstream_uses_Prohibited_Code
  - I think the license terms in bindings/matlab/*.m
    (e.g. bindings/matlab/iio_sys_obj.m):
-------------------------------------
%      - Use of the software either in source or binary form or filter designs
%        resulting from the use of this software, must be connected to, run
%        on or loaded to an Analog Devices Inc. component.
-------------------------------------
    is non-free license limitation and unacceptable for Fedora.
    If these files are not actually used, remove these files
    from source rpm (not only from binary rpm) and repackage
    tarball.

* Compiler
  https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B
  - When using C compiler, "BuildRequires: gcc" (or something) is now *MUST*.

* _noarch_ package dependency
  - Currently build fails:
    https://koji.fedoraproject.org/koji/taskinfo?taskID=21239042
-------------------------------------
BuildError: The following noarch package built differently on different architectures: python3-iio-0.9-1.fc27.noarch.rpm
rpmdiff output was:
removed     REQUIRES libiio(x86-64) = 0.9-1.fc27
added       REQUIRES libiio(ppc-64) = 0.9-1.fc27
-------------------------------------
    _noarch_ package must not have arch-specific dependency.
    This means that python3-iio subpackage must not have
    %{?_isa} specific Requires, which introduces arch-specific
    Requires dependency.

* Directory ownership
  https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership
  - /usr/lib/python3.6/site-packages/__pycache__ is already owned by
    system-python-libs.
    python3-iio must not own this directory.

* Documentation installation
  https://fedoraproject.org/wiki/Packaging:Guidelines#Documentation
  - Quote:
-------------------------------------
use of %doc with relative paths and installation of files directly into %_pkgdocdir in the same source package is forbidden.
-------------------------------------
    This means that you must not use
    %doc README.md (this is relative)
    and
    %doc %{_docdir}/%{name}/html (actually using %_pkgdocdir, this is absolute)
    in the same source rpm, because actually this has caused many troubles in the
    past and now packaging guideline explicitly forbit this usage.

    You must choose either of the below:
    1. cp README.md into %{buildroot}%{_pkgdocdir} at %install manually
    2. rm -rf %{buildroot}%{_pkgdocdir} at %install, and use
       %doc html/ (relative).

Comment 10 Eric Smith 2017-08-16 06:33:00 UTC
In reply to Mamoru TASAKA from comment 8:

I most certainly CAN choose not to review a package for any arbitrary reason, including that I can't build it locally. IF I don't want to review packages that have the letter "w" in the the package name, that's my prerogative. I am under no obligation to review any package.

I can't REJECT a package that I review for an arbitrary reason. That's an entirely different matter than choosing not to review the package.

> Your current comment is not valid for making this review request block
> dead-review, lefting.

You misunderstand why I restored the block of dead-review.  It had nothing to do with the fact that I couldn't build it locally.  The review is dead because the packager has not responded to any of the issues that were brought up by the previous reviewer.  Even with your taking over the review, at the moment the package review is still dead because the packager still has not responded to the reviewer's comments from 2017-03-26.

The review should remain blocking dead-review until the packager responds in a substantive way, rather than only stating that the review is not dead.  However, since you've taken over the review task, it's up to you to follow the review rules.

Comment 11 Mamoru TASAKA 2017-08-16 07:22:27 UTC
(In reply to Eric Smith from comment #10)
> In reply to Mamoru TASAKA from comment 8:
> 

You have to follow
https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews

Usually I
- do "ping" every one week when no response is received from the reporter, 4 times
- and when one month passes, I warn that such review request will be closed within one week when no response is received within one week
- then if really no response is gained, I close the request with FE-DEADREVIEW.

You must not mark as FE-DEADREVIEW suddenly, it must take "procedure". Anyway I am reviewing now and waiting for submitter's response with a procedure.

Comment 12 Eric Smith 2017-08-16 09:20:59 UTC
I didn't mark FE-DEADREVIEW suddenly. The previous reviewer did.  I only restored it after it was improperly removed.

Comment 13 Eric Smith 2017-08-16 09:24:42 UTC
Since I need libiio myself and am fed up with waiting for anything to happen, I've fixed the package myself.  I don't much care whether the original packager uses what I've done or not, but in case they want to, I've put it at:

https://brouhaha.fedorapeople.org/libiio/

Since I'm not the packager who requested a review, this is for informational purposes only and I do not expect it to be reviewed.

Comment 14 Peter Robinson 2017-08-16 14:46:28 UTC
(In reply to Mamoru TASAKA from comment #9)
> By the way:
> 
> * Latest version
>   - 0.10 is now available.
> 
> * License tag
>   - Although "README.md" says this is under LGPLv2+,
>     "mainpage.dox" says this is under LGPLv2.
>     While this needs clarification, currently the rpm
>     license tag must be "LGPLv2", which is safer.

Above is fixed.

> * Forbidden code
>  
> https://fedoraproject.org/wiki/Packaging:
> SourceURL#When_Upstream_uses_Prohibited_Code
>   - I think the license terms in bindings/matlab/*.m
>     (e.g. bindings/matlab/iio_sys_obj.m):
> -------------------------------------
> %      - Use of the software either in source or binary form or filter
> designs
> %        resulting from the use of this software, must be connected to, run
> %        on or loaded to an Analog Devices Inc. component.
> -------------------------------------
>     is non-free license limitation and unacceptable for Fedora.
>     If these files are not actually used, remove these files
>     from source rpm (not only from binary rpm) and repackage
>     tarball.

We don't build these or link against them, the actual bits in the tarball are licensed the same as the rest of the project, and we don't actually ship the bindings in the binary rpms so that isn't necessary.

> * Compiler
>   https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B
>   - When using C compiler, "BuildRequires: gcc" (or something) is now *MUST*.

IMO completely pointless but updated.

> * _noarch_ package dependency
>   - Currently build fails:
>     https://koji.fedoraproject.org/koji/taskinfo?taskID=21239042
> -------------------------------------
> BuildError: The following noarch package built differently on different
> architectures: python3-iio-0.9-1.fc27.noarch.rpm
> rpmdiff output was:
> removed     REQUIRES libiio(x86-64) = 0.9-1.fc27
> added       REQUIRES libiio(ppc-64) = 0.9-1.fc27
> -------------------------------------
>     _noarch_ package must not have arch-specific dependency.
>     This means that python3-iio subpackage must not have
>     %{?_isa} specific Requires, which introduces arch-specific
>     Requires dependency.

fixed

> * Directory ownership
>  
> https://fedoraproject.org/wiki/Packaging:
> Guidelines#File_and_Directory_Ownership
>   - /usr/lib/python3.6/site-packages/__pycache__ is already owned by
>     system-python-libs.
>     python3-iio must not own this directory.
> 
> * Documentation installation
>   https://fedoraproject.org/wiki/Packaging:Guidelines#Documentation
>   - Quote:
> -------------------------------------
> use of %doc with relative paths and installation of files directly into
> %_pkgdocdir in the same source package is forbidden.
> -------------------------------------
>     This means that you must not use
>     %doc README.md (this is relative)
>     and
>     %doc %{_docdir}/%{name}/html (actually using %_pkgdocdir, this is
> absolute)
>     in the same source rpm, because actually this has caused many troubles
> in the
>     past and now packaging guideline explicitly forbit this usage.
> 
>     You must choose either of the below:
>     1. cp README.md into %{buildroot}%{_pkgdocdir} at %install manually

     2. rm -rf %{buildroot}%{_pkgdocdir} at %install, and use
>        %doc html/ (relative).

I've just dropped README.md, it's not really readable and it doesn't actually provide anything of use that isn't conveyed elsewhere. The only method used to add docs it now via the install method.

Comment 15 Peter Robinson 2017-08-16 14:49:26 UTC
SPEC: https://pbrobinson.fedorapeople.org/libiio.spec
SRPM: https://pbrobinson.fedorapeople.org/libiio-0.10-1.fc26.src.rpm

Description:
Library for interfacing with Linux IIO devices

libiio is used to interface to Linux Industrial Input/Output (IIO) Subsystem.
The Linux IIO subsystem is intended to provide support for devices that in some 
sense are analog to digital or digital to analog converters (ADCs, DACs). This 
includes, but is not limited to ADCs, Accelerometers, Gyros, IMUs, Capacitance 
to Digital Converters (CDCs), Pressure Sensors, Color, Light and Proximity 
Sensors, Temperature Sensors, Magnetometers, DACs, DDS (Direct Digital 
Synthesis), PLLs (Phase Locked Loops), Variable/Programmable Gain Amplifiers 
(VGA, PGA), and RF transceivers.

koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=21264294

Comment 16 Mamoru TASAKA 2017-08-16 15:38:03 UTC
Well,

* My recommendation is that -doc and python3-iio subpackage should be marked as noarch and remove arch-specific %{?_isa} part (i.e. use Requires: %{name} = %{version}-%{release}), but it is up to you.

* For "Prohibited Code" part, for now I believe your interpretation (as this is not patent or trademark issue).

Rest items are okay.
- source okay
- spec file clean
- license okay
- build okay
- installation okay
- At least /usr/bin/iio_info seems to work.

-----------------------------------------------------------
    This package (libiio) is APPROVED by mtasaka
-----------------------------------------------------------

Comment 17 Peter Robinson 2017-08-16 16:31:51 UTC
(In reply to Mamoru TASAKA from comment #16)
> Well,
> 
> * My recommendation is that -doc and python3-iio subpackage should be marked
> as noarch and remove arch-specific %{?_isa} part (i.e. use Requires: %{name}
> = %{version}-%{release}), but it is up to you.

For docs I meant to make it noarch, copy error. Will fix before commit.

For python being noarch see your note in comment #9

* _noarch_ package dependency

> -----------------------------------------------------------
>     This package (libiio) is APPROVED by mtasaka
> -----------------------------------------------------------

Thanks!

Comment 18 Gwyn Ciesla 2017-08-22 15:17:35 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/libiio

Comment 19 Peter Robinson 2017-08-22 16:01:14 UTC
thanks for the review


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