Bug 1806017 - Review Request: opae - a sdk for fpga hardware
Summary: Review Request: opae - a sdk for fpga hardware
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Neil Horman
QA Contact: Neil Horman
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-02-21 20:10 UTC by Tom Rix
Modified: 2020-03-11 12:24 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-03-11 12:24:45 UTC
Type: Bug
Embargoed:
nhorman: fedora-review+


Attachments (Terms of Use)

Description Tom Rix 2020-02-21 20:10:10 UTC
Review Request: opae - Open Programmable Acceration Engine
Spec URL : https://releases.pagure.org/opae/opae.spec
SRPM URL : https://releases.pagure.org/opae/opae-1.4.0-1.src.rpm

This package is for the making the opae-sdk available on Fedora.
It is an application layer controlling FPGA hardware.

The main project page is 

https://01.org/OPAE
https://github.com/OPAE/opae-sdk

rpmlint on f31 is

Thu 20 Feb 2020 06:10:58 PM EST
Fedora release 31 (Thirty One)
opae-1.4.0-1.src.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
opae-1.4.0-1.x86_64.rpm
opae.x86_64: E: explicit-lib-dependency libuuid
opae.x86_64: W: dangerous-command-in-%preun rm
1 packages and 0 specfiles checked; 1 errors, 1 warnings.
opae-debuginfo-1.4.0-1.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
opae-debugsource-1.4.0-1.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
opae-devel-1.4.0-1.x86_64.rpm
opae-devel.x86_64: W: no-version-dependency-on opae/opae-libs/libopae 1.4.0
opae-devel.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
opae-samples-1.4.0-1.x86_64.rpm
opae-samples.x86_64: W: no-documentation
opae-samples.x86_64: W: no-manual-page-for-binary hello_fpga
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
opae-samples-debuginfo-1.4.0-1.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
opae-tools-1.4.0-1.x86_64.rpm
opae-tools.x86_64: W: no-documentation
opae-tools.x86_64: W: no-manual-page-for-binary fpgaconf
opae-tools.x86_64: W: no-manual-page-for-binary fpgad
opae-tools.x86_64: W: no-manual-page-for-binary fpgainfo
opae-tools.x86_64: W: no-manual-page-for-binary fpgametrics
opae-tools.x86_64: W: dangerous-command-in-%post ln
1 packages and 0 specfiles checked; 0 errors, 6 warnings.
opae-tools-debuginfo-1.4.0-1.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
opae-tools-extra-1.4.0-1.x86_64.rpm
opae-tools-extra.x86_64: W: no-documentation
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_app
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_app.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_common.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_def.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_dma.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_nlb0.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_nlb3.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary coreidle
opae-tools-extra.x86_64: W: no-manual-page-for-binary fpga_dma_vc_test
opae-tools-extra.x86_64: W: no-manual-page-for-binary fpgabist
opae-tools-extra.x86_64: W: no-manual-page-for-binary hssi_config
opae-tools-extra.x86_64: W: no-manual-page-for-binary hssi_loopback
opae-tools-extra.x86_64: W: no-manual-page-for-binary mmlink
opae-tools-extra.x86_64: W: no-manual-page-for-binary ras
opae-tools-extra.x86_64: W: no-manual-page-for-binary userclk
1 packages and 0 specfiles checked; 0 errors, 17 warnings.
opae-tools-extra-debuginfo-1.4.0-1.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.


libuuid is the name of the package/rpm.
$ dnf search libuuid                                                                                  
Spacewalk plugin has to be run under with the root privileges.                                                                     
Not root, Subscription Management repositories not updated                                                                         
Repository google-chrome is listed more than once in the configuration                                                             
Last metadata expiration check: 6 days, 21:22:12 ago on Fri 14 Feb 2020 02:45:33 PM PST.                                           
================================================== Name Exactly Matched: libuuid ==================================================
libuuid.x86_64 : Universally unique ID library                                                                                     
libuuid.i686 : Universally unique ID library                                                                                       
libuuid.x86_64 : Universally unique ID library                                                                                     
====================================================== Name Matched: libuuid ======================================================
libuuid-devel.i686 : Universally unique ID libraryck.sh                                                                           
libuuid-devel.x86_64 : Universally unique ID library

Comment 1 Artur Frenszek-Iwicki 2020-02-24 11:51:48 UTC
>Group:          Development/Libraries
>Vendor:         Intel Corporation
>...
>Group:      Development/Libraries
These are not used in Fedora.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections

>Requires:       libuuid, json-c, python
>BuildRequires:  python-devel
>BuildRequires:  python-sphinx
Referring to python in an unversion fashion is a big no-no in Fedora spec files. ;)
You should explicitly specify "python3" here.

>Source0:        https://github.com/OPAE/opae-sdk/releases/download/%{version}-%{release}/%{name}-%{version}-%{release}.tar.gz
Do not include %{release} in the source name, as that will cause the source name to change every time you make any changes to the spec.

>%package devel
>Requires:   %{name}
This should be a versioned dependency: "%{name}%{?_isa} = %{version}-%{release}".
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_requiring_base_package

>%files
>%defattr(-,root,root,-)
Do not use this unless you really need to.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_permissions

Comment 2 Tom Rix 2020-02-24 17:13:54 UTC
The spec and srpm have been updated to address these issues.
Also removed the %clean section per https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections
Needed to change the name on spec to work around release folder conflict with opae.spec.

Spec URL : https://releases.pagure.org/opae/opae-1.4.0-2.spec
SRPM URL : https://releases.pagure.org/opae/opae-1.4.0-2.src.rpm

Comment 3 Neil Horman 2020-02-26 19:31:52 UTC

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

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


Issues:
=======
- ldconfig not called in %post and %postun for Fedora 28 and later.
  Note: /sbin/ldconfig called in opae, opae-tools, opae-tools-extra                      <= you need to add this for the listed packages
  See: https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
- Dist tag is not present.                                                               <= you need to add a %{?dist} tag to the release tag
- Spec file name must match the spec package %{name}, in the format
  %{name}.spec.                                                                          <= spec file has to be named opae.spec
  Note: opae-1.4.0-2.spec should be opae.spec
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_spec_file_naming
- Static libraries in -static or -devel subpackage, providing -devel if                  <= If you want to ship the .a files, you need to put them in a -static subpackage
  present.
  Note: Package has .a files: opae-devel. Does not provide -static: opae-
  devel.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#packaging-static-libraries
- systemd_post is invoked in %post, systemd_preun in %preun, and                         <= Probably self explanatory
  systemd_postun in %postun for Systemd service files.
  Note: Systemd service file(s) in opae-tools
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Scriptlets/#_scriptlets


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[!]: Package contains no static executables.                                         <= see above
[!]: Development (unversioned) .so files in -devel subpackage, if present.           <= you've got some unversioned .so files in the main package, should be versioned or in the -devel subpackage
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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.
[!]: If (and only if) the source package includes the text of the                   <= Just need to include the LICENSE file in the main package manifest using the %license tag
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "BSD 3-clause "New" or "Revised"
     License", "Expat License BSD 3-clause "New" or "Revised" License",
     "Expat License", "*No copyright* BSD (unspecified)", "GNU General
     Public License (v2)". 549 files have unknown license. Detailed output
     of licensecheck in /home/nhorman/1806017-opae-1.4.0-2/licensecheck.txt
[!]: License file installed when any subpackage combination is installed.          <= assuming the opae package is required by all subpackages, this will be fixed when you include the license file
[!]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[!]: Package requires other packages for directories it uses.                      <= Need to use the %dir tag on the listed directories in the manifest
     Note: No known owner of /usr/src/opae/samples, /etc/opae,
     /usr/lib64/opae, /usr/src/opae/cmake/modules, /usr/src/opae/cmake
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /etc/opae,
     /usr/src/opae/cmake, /usr/lib/systemd, /usr/src/opae/cmake/modules,
     /usr/lib/systemd/system, /usr/lib64/opae, /usr/src/opae/samples
[!]: %build honors applicable compiler flags or justifies otherwise.               <= IIRC, you need to specify the %{_smp_flags} macro when calling %cmake
[?]: 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.
[!]: Development files must be in a -devel package                                 <= this is the same as the unversioned so files above
[!]: Package uses nothing in %doc for runtime.
[!]: Package consistently uses macros (instead of hard-coded directory    <=  use %{_unitdir instead of fully qualified paths to service files}
     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.
[x]: 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.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[!]: Package is not known to require an ExcludeArch tag.                             <= I assume opae is x86 only?  If so, then you are missing an ExclusiveArch 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]: Package does not own files or directories owned by other packages.
[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]: %config files are marked noreplace or the reason is justified.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[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]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: 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).
[!]: Fully versioned dependency in subpackages if applicable.                <= Self explanatory
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in opae-
     samples
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Scriptlets must be sane, if used.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[!]: Package should compile and build into binary rpms on all supported       <= Build fails on all non-x86 arches (see https://koji.fedoraproject.org/koji/taskinfo?taskID=41943949)
     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]: 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:
[!]: Spec file according to URL is the same as in SRPM.                              <= this is the spec file naming issue from above
     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.


Rpmlint
-------
Checking: opae-1.4.0-2.x86_64.rpm
          opae-devel-1.4.0-2.x86_64.rpm
          opae-tools-1.4.0-2.x86_64.rpm
          opae-tools-extra-1.4.0-2.x86_64.rpm
          opae-samples-1.4.0-2.x86_64.rpm
          opae-debuginfo-1.4.0-2.x86_64.rpm
          opae-debugsource-1.4.0-2.x86_64.rpm
          opae-1.4.0-2.src.rpm
opae.x86_64: E: explicit-lib-dependency libuuid    <= IIRC, you don't need to specify the library as a dependency if the BuildRequires specifies the -devel subpackage as a dependency
opae.x86_64: W: dangerous-command-in-%preun rm     <= it seems you are adding an empty file here, you shouldn't need to do that, and can save some code in the post and preun scripts
opae-devel.x86_64: W: no-documentation             <= if there are documentation for all of these, you should include them in the manifest as %doc, otherwise, you can ignore these all
opae-tools.x86_64: W: no-documentation
opae-tools.x86_64: W: no-manual-page-for-binary fpgaconf
opae-tools.x86_64: W: no-manual-page-for-binary fpgad
opae-tools.x86_64: W: no-manual-page-for-binary fpgainfo
opae-tools.x86_64: W: no-manual-page-for-binary fpgametrics
opae-tools.x86_64: W: dangerous-command-in-%post ln
opae-tools-extra.x86_64: W: no-documentation
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_app
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_app.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_common.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_def.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_dma.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_nlb0.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_nlb3.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary coreidle
opae-tools-extra.x86_64: W: no-manual-page-for-binary fpga_dma_vc_test
opae-tools-extra.x86_64: W: no-manual-page-for-binary fpgabist
opae-tools-extra.x86_64: W: no-manual-page-for-binary hssi_config
opae-tools-extra.x86_64: W: no-manual-page-for-binary hssi_loopback
opae-tools-extra.x86_64: W: no-manual-page-for-binary mmlink
opae-tools-extra.x86_64: W: no-manual-page-for-binary ras
opae-tools-extra.x86_64: W: no-manual-page-for-binary userclk
opae-samples.x86_64: W: no-documentation
opae-samples.x86_64: W: no-manual-page-for-binary hello_fpga
8 packages and 0 specfiles checked; 1 errors, 27 warnings.




Rpmlint (debuginfo)
-------------------
Checking: opae-debuginfo-1.4.0-2.x86_64.rpm
          opae-tools-extra-debuginfo-1.4.0-2.x86_64.rpm
          opae-tools-debuginfo-1.4.0-2.x86_64.rpm
          opae-samples-debuginfo-1.4.0-2.x86_64.rpm
4 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "C.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "C.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
opae-debugsource.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>           <= this is a known issue with github, can be fixed, or ignored
opae-samples-debuginfo.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-tools-debuginfo.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-debuginfo.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-tools-extra.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-tools-extra.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libhssi-io.so.1.4.0 /lib64/libopae-c.so.1
opae-tools-extra.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-c++-utils.so.1.4.0 pthread_mutex_clocklock
opae-tools-extra.x86_64: W: no-documentation                                                                                                  <= as before, include docs, or ignore
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_app
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_app.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_common.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_def.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_dma.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_nlb0.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary bist_nlb3.py
opae-tools-extra.x86_64: W: no-manual-page-for-binary coreidle
opae-tools-extra.x86_64: W: no-manual-page-for-binary fpga_dma_vc_test
opae-tools-extra.x86_64: W: no-manual-page-for-binary fpgabist
opae-tools-extra.x86_64: W: no-manual-page-for-binary hssi_config
opae-tools-extra.x86_64: W: no-manual-page-for-binary hssi_loopback
opae-tools-extra.x86_64: W: no-manual-page-for-binary mmlink
opae-tools-extra.x86_64: W: no-manual-page-for-binary ras
opae-tools-extra.x86_64: W: no-manual-page-for-binary userclk
opae.x86_64: E: explicit-lib-dependency libuuid
opae.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetSocketID                             <= What library defines these?  You may need an extra requires to fix
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetBBSVersion
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetLocalMemorySize
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetCapabilities
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumErrors
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetLocalMemorySize
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetParent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumSlots
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetModel
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetBus
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetFunction
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetModel
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetFunction
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetBBSID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetBBSID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetAcceleratorState
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumInterrupts
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetDevice
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetObjectID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumSlots
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumInterrupts
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetAcceleratorState
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetParent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetBus
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetSegment
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetObjectType
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetCapabilities
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetDevice
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetDeviceID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumMMIO
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetVendorID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetBBSVersion
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetObjectID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumErrors
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetVendorID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetObjectType
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetSegment
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetSocketID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumMMIO
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetDeviceID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaMapMMIO
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaOpen
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetGUID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaErrStr
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetProperties
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaRegisterEvent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetPropertiesFromHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaCreateEventHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 strcat_s
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetSize
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaWriteMMIO32
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaTokenGetObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 snprintf_s_i
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyEventHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 strncpy_s
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectRead64
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaWriteMMIO512
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReadMMIO32
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetType
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetErrorInfo
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReconfigureSlot
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOSObjectFromEventHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectRead
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReset
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOPAECVersionString
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReleaseBuffer
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaCloneToken
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyToken
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaHandleGetObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetIOAddress
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOPAECVersion
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReadError
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReadMMIO64
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaWriteMMIO64
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaEnumerate
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOPAECBuildString
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaClose
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetObjectAt
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaUnregisterEvent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyProperties
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPrepareBuffer
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectWrite64
opae.x86_64: W: dangerous-command-in-%preun rm
opae-tools-extra-debuginfo.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-tools.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-tools.x86_64: W: undefined-non-weak-symbol /usr/lib64/libfpgad-api.so.1.4.0 strnlen_s                                           <= is opae defining these somewhere? That seems...odd
opae-tools.x86_64: W: undefined-non-weak-symbol /usr/lib64/libfpgad-api.so.1.4.0 strncpy_s
opae-tools.x86_64: W: no-documentation
opae-tools.x86_64: W: no-manual-page-for-binary fpgaconf
opae-tools.x86_64: W: no-manual-page-for-binary fpgad
opae-tools.x86_64: W: no-manual-page-for-binary fpgainfo
opae-tools.x86_64: W: no-manual-page-for-binary fpgametrics
opae-tools.x86_64: W: dangerous-command-in-%post ln
opae-devel.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-devel.x86_64: W: no-documentation
opae-samples.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-samples.x86_64: W: no-documentation
opae-samples.x86_64: W: no-manual-page-for-binary hello_fpga
10 packages and 0 specfiles checked; 1 errors, 125 warnings.



Unversioned so-files
--------------------
opae: /usr/lib64/opae/libboard_rc.so                                 <= These all need to be versioned, or moved to the -devel subpackage
opae: /usr/lib64/opae/libboard_vc.so
opae: /usr/lib64/opae/libmodbmc.so
opae: /usr/lib64/opae/libxfpga.so
opae-tools: /usr/lib64/opae/libfpgad-vc.so
opae-tools: /usr/lib64/opae/libfpgad-xfpga.so

Source checksums
----------------
https://github.com/OPAE/opae-sdk/releases/download/1.4.0-1/opae-1.4.0-1.tar.gz :
  CHECKSUM(SHA256) this package     : 43528235b3cda98ba662d6d027663e2d95b9d2b0cd34aa6c13ba874624e1a2b1
  CHECKSUM(SHA256) upstream package : 43528235b3cda98ba662d6d027663e2d95b9d2b0cd34aa6c13ba874624e1a2b1


Requires
--------
opae (rpmlib, GLIBC filtered):
    /bin/sh
    /sbin/ldconfig
    json-c
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjson-c.so.4()(64bit)
    libopae-c.so.1()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libuuid
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    python3
    rtld(GNU_HASH)

opae-devel (rpmlib, GLIBC filtered):
    /usr/bin/cmake
    libbitstream.so.1()(64bit)
    libbmc.so.1()(64bit)
    libfpgad-api.so.1()(64bit)
    libhssi-io.so.1()(64bit)
    libopae-c++-utils.so.1()(64bit)
    libopae-c.so.1()(64bit)
    libopae-cxx-core.so.1()(64bit)
    libuuid-devel
    opae(x86-64)

opae-tools (rpmlib, GLIBC filtered):
    /bin/sh
    /sbin/ldconfig
    config(opae-tools)
    libbitstream.so.1()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libfpgad-api.so.1()(64bit)
    libjson-c.so.4()(64bit)
    libopae-c.so.1()(64bit)
    libpthread.so.0()(64bit)
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    opae(x86-64)
    rtld(GNU_HASH)

opae-tools-extra (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    /usr/bin/python3
    libbitstream.so.1()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libhssi-io.so.1()(64bit)
    libhwloc.so.15()(64bit)
    libjson-c.so.4()(64bit)
    libm.so.6()(64bit)
    libopae-c++-utils.so.1()(64bit)
    libopae-c.so.1()(64bit)
    libopae-cxx-core.so.1()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.2)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    opae(x86-64)
    rtld(GNU_HASH)

opae-samples (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libopae-c.so.1()(64bit)
    libpthread.so.0()(64bit)
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    rtld(GNU_HASH)

opae-debuginfo (rpmlib, GLIBC filtered):

opae-debugsource (rpmlib, GLIBC filtered):



Provides
--------
opae:
    libbitstream.so.1()(64bit)
    libbmc.so.1()(64bit)
    libboard_rc.so()(64bit)
    libboard_vc.so()(64bit)
    libmodbmc.so()(64bit)
    libopae-c.so.1()(64bit)
    libopae-cxx-core.so.1()(64bit)
    libxfpga.so()(64bit)
    opae
    opae(x86-64)

opae-devel:
    opae-devel
    opae-devel(x86-64)

opae-tools:
    config(opae-tools)
    libfpgad-api.so.1()(64bit)
    libfpgad-vc.so()(64bit)
    libfpgad-xfpga.so()(64bit)
    opae-tools
    opae-tools(x86-64)

opae-tools-extra:
    libhssi-io.so.1()(64bit)
    libopae-c++-utils.so.1()(64bit)
    opae-tools-extra
    opae-tools-extra(x86-64)

opae-samples:
    opae-samples
    opae-samples(x86-64)

opae-debuginfo:
    debuginfo(build-id)
    opae-debuginfo
    opae-debuginfo(x86-64)

opae-debugsource:
    opae-debugsource
    opae-debugsource(x86-64)



Diff spec file in url and in SRPM                                                       <= This suggests you built the srpm with a different spec file than what you posted in the bz.  shouldn't do that
---------------------------------
--- /home/nhorman/1806017-opae-1.4.0-2/srpm/opae-1.4.0-2.spec	2020-02-26 12:42:00.711600139 -0500
+++ /home/nhorman/1806017-opae-1.4.0-2/srpm-unpacked/opae.spec	2020-02-24 11:53:40.000000000 -0500
@@ -227,4 +227,5 @@
 %{_bindir}/hello_fpga
 
+
 %changelog
 * Mon Feb 24 2020 Tom Rix <trix> 1.4.0-2
@@ -235,5 +236,4 @@
 - Remove vendor tag
 - Remove group tag
-- Remove clean section
 
 * Tue Dec 17 2019 Korde Nakul <nakul.korde> 1.4.0-1


Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -b 1806017
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, Generic, C/C++
Disabled plugins: Python, Haskell, PHP, SugarActivity, R, Ocaml, fonts, Java, Perl
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 4 Tom Rix 2020-02-28 21:11:13 UTC
Spec URL : https://github.com/trixirt/opae-rpm/blob/opae-1.4.0-3/opae.spec
SRPM URL : https://releases.pagure.org/opae/opae-1.4.0-3.fc31.src.rpm

I believe address the outstanding issues.

The biggest change was consolidating the samples, tools and tools-extra packages into the devel package.

The non-versioned *.so are intentional.  They have been moved to the devel package

libsafestr.a was converted to a shared library.

rpmlint for undefined/weak symbols for
fpga* are in the libopae-c.so.1.4.0 library
*_s are in the libsafestr.so.1.4.0
These libraries are part of the base package.

At this time, there is no other documentation / manpages.

The license files are now distributed in the the opae datadir

ldconfig use removed

Use of systemd_* macros for fpga.service

Comment 5 Elliott Sales de Andrade 2020-02-29 06:47:38 UTC
%make_build already includes %{?_smp_mflags}.

> [x]: Patches link to upstream bugs/comments/lists or are otherwise
>      justified.

They are not linked or commented.

Comment 6 Neil Horman 2020-03-02 21:00:53 UTC

This all looks pretty good now.  The undefined symbols are still bothering me though.  It appears as though, when building, you aren't linking to the libraries that implement the fpgaPropertiesSet* functions (I believe libopae-c.so).  As such there are no DT_NEEDED entries in the libraries calling these functions to auto-load those dependent libraries.  Was that intentional, and if so, can you document why here?


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

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


Issues:
=======
- 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.
  Note: License file COPYING is not marked as %license
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/LicensingGuidelines/#_license_text


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[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: "Unknown or generated", "BSD 3-clause "New" or "Revised"
     License", "Expat License BSD 3-clause "New" or "Revised" License",
     "Expat License", "*No copyright* BSD (unspecified)", "GNU General
     Public License (v2)". 549 files have unknown license. Detailed output
     of licensecheck in /home/nhorman/Downloads/review-
     opae/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/systemd/system,
     /usr/lib/systemd
[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.
[x]: 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.
[x]: 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]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[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]: %config files are marked noreplace or the reason is justified.
[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 must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[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]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in opae-devel
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[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).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[x]: Scriptlets must be sane, if used.
[x]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[-]: %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]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Spec use %global instead of %define unless justified.

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

Generic:
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: opae-1.4.0-3.fc33.x86_64.rpm
          opae-devel-1.4.0-3.fc33.x86_64.rpm
          opae-debuginfo-1.4.0-3.fc33.x86_64.rpm
          opae-debugsource-1.4.0-3.fc33.x86_64.rpm
          opae-1.4.0-3.fc33.src.rpm
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libbitstream.so.1.4.0   <= not sure why this is still triggering, since we're not supposed to call it anymore, I'm ignoring it
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libbmc.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libfpgad-api.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libhssi-io.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libopae-c++-utils.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libopae-c.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libopae-cxx-core.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libsafestr.so.1.4.0
opae-devel.x86_64: W: no-documentation
opae-devel.x86_64: W: no-manual-page-for-binary bist
opae-devel.x86_64: W: no-manual-page-for-binary bist_app
opae-devel.x86_64: W: no-manual-page-for-binary bist_app.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_common.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_def.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_dma.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_nlb0.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_nlb3.py
opae-devel.x86_64: W: no-manual-page-for-binary coreidle
opae-devel.x86_64: W: no-manual-page-for-binary fpga_dma_vc_test
opae-devel.x86_64: W: no-manual-page-for-binary fpgabist
opae-devel.x86_64: W: no-manual-page-for-binary fpgaconf
opae-devel.x86_64: W: no-manual-page-for-binary fpgad
opae-devel.x86_64: W: no-manual-page-for-binary fpgainfo
opae-devel.x86_64: W: no-manual-page-for-binary fpgametrics
opae-devel.x86_64: W: no-manual-page-for-binary hello_fpga
opae-devel.x86_64: W: no-manual-page-for-binary hssi_config
opae-devel.x86_64: W: no-manual-page-for-binary hssi_loopback
opae-devel.x86_64: W: no-manual-page-for-binary mmlink
opae-devel.x86_64: W: no-manual-page-for-binary ras
opae-devel.x86_64: W: no-manual-page-for-binary userclk
5 packages and 0 specfiles checked; 8 errors, 22 warnings.




Rpmlint (debuginfo)
-------------------
Checking: opae-debuginfo-1.4.0-3.fc33.x86_64.rpm
          opae-devel-debuginfo-1.4.0-3.fc33.x86_64.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "C.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "C.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
opae-devel.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-devel.x86_64: W: no-documentation
opae-devel.x86_64: W: no-manual-page-for-binary bist
opae-devel.x86_64: W: no-manual-page-for-binary bist_app
opae-devel.x86_64: W: no-manual-page-for-binary bist_app.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_common.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_def.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_dma.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_nlb0.py
opae-devel.x86_64: W: no-manual-page-for-binary bist_nlb3.py
opae-devel.x86_64: W: no-manual-page-for-binary coreidle
opae-devel.x86_64: W: no-manual-page-for-binary fpga_dma_vc_test
opae-devel.x86_64: W: no-manual-page-for-binary fpgabist
opae-devel.x86_64: W: no-manual-page-for-binary fpgaconf
opae-devel.x86_64: W: no-manual-page-for-binary fpgad
opae-devel.x86_64: W: no-manual-page-for-binary fpgainfo
opae-devel.x86_64: W: no-manual-page-for-binary fpgametrics
opae-devel.x86_64: W: no-manual-page-for-binary hello_fpga
opae-devel.x86_64: W: no-manual-page-for-binary hssi_config
opae-devel.x86_64: W: no-manual-page-for-binary hssi_loopback
opae-devel.x86_64: W: no-manual-page-for-binary mmlink
opae-devel.x86_64: W: no-manual-page-for-binary ras
opae-devel.x86_64: W: no-manual-page-for-binary userclk
opae-devel-debuginfo.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae-debuginfo.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libfpgad-api.so.1.4.0 strnlen_s                                        <= these are still bothersome
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libfpgad-api.so.1.4.0 strncpy_s
opae.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libhssi-io.so.1.4.0 /lib64/libopae-c.so.1
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-c++-utils.so.1.4.0 pthread_mutex_clocklock
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetSocketID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetBBSVersion
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetLocalMemorySize
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetCapabilities
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumErrors
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetLocalMemorySize
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetParent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumSlots
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetModel
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetBus
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetFunction
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetModel
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetFunction
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetBBSID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetBBSID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetAcceleratorState
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumInterrupts
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetDevice
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetObjectID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumSlots
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumInterrupts
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetAcceleratorState
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetParent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetBus
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetSegment
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetObjectType
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetCapabilities
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetDevice
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetDeviceID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumMMIO
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetVendorID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetBBSVersion
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetObjectID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetNumErrors
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetVendorID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetObjectType
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetSegment
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetSocketID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetNumMMIO
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesGetDeviceID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaMapMMIO
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaOpen
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPropertiesSetGUID
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaErrStr
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetProperties
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaRegisterEvent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetPropertiesFromHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaCreateEventHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 strcat_s
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetSize
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaWriteMMIO32
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaTokenGetObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 snprintf_s_i
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyEventHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 strncpy_s
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectRead64
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaWriteMMIO512
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReadMMIO32
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetType
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetErrorInfo
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReconfigureSlot
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOSObjectFromEventHandle
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectRead
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReset
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOPAECVersionString
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReleaseBuffer
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaCloneToken
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyToken
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaHandleGetObject
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetIOAddress
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOPAECVersion
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReadError
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaReadMMIO64
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaWriteMMIO64
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaEnumerate
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaGetOPAECBuildString
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaClose
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectGetObjectAt
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaUnregisterEvent
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaDestroyProperties
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaPrepareBuffer
opae.x86_64: W: undefined-non-weak-symbol /usr/lib64/libopae-cxx-core.so.1.4.0 fpgaObjectWrite64
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libbitstream.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libbmc.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libfpgad-api.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libhssi-io.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libopae-c++-utils.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libopae-c.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libopae-cxx-core.so.1.4.0
opae.x86_64: E: postin-without-ldconfig /usr/lib64/libsafestr.so.1.4.0
opae-debugsource.x86_64: W: invalid-url URL: https://github.com/OPAE/opae-sdk <urlopen error [Errno -2] Name or service not known>
5 packages and 0 specfiles checked; 8 errors, 115 warnings.



Source checksums
----------------
https://github.com/OPAE/opae-sdk/releases/download/1.4.0-1/opae-1.4.0-1.tar.gz :
  CHECKSUM(SHA256) this package     : 43528235b3cda98ba662d6d027663e2d95b9d2b0cd34aa6c13ba874624e1a2b1
  CHECKSUM(SHA256) upstream package : 43528235b3cda98ba662d6d027663e2d95b9d2b0cd34aa6c13ba874624e1a2b1


Requires
--------
opae (rpmlib, GLIBC filtered):
    /bin/sh
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libjson-c.so.4()(64bit)
    libopae-c++-utils.so.1()(64bit)
    libopae-c.so.1()(64bit)
    libopae-cxx-core.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsafestr.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    rtld(GNU_HASH)

opae-devel (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/cmake
    /usr/bin/python3
    config(opae-devel)
    libbitstream.so.1()(64bit)
    libbmc.so.1()(64bit)
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libfpgad-api.so.1()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libhssi-io.so.1()(64bit)
    libhwloc.so.15()(64bit)
    libjson-c.so.4()(64bit)
    libm.so.6()(64bit)
    libopae-c++-utils.so.1()(64bit)
    libopae-c.so.1()(64bit)
    libopae-cxx-core.so.1()(64bit)
    libpthread.so.0()(64bit)
    libsafestr.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.2)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libuuid-devel
    libuuid.so.1()(64bit)
    libuuid.so.1(UUID_1.0)(64bit)
    opae(x86-64)
    rtld(GNU_HASH)

opae-debuginfo (rpmlib, GLIBC filtered):

opae-debugsource (rpmlib, GLIBC filtered):



Provides
--------
opae:
    libbitstream.so.1()(64bit)
    libbmc.so.1()(64bit)
    libfpgad-api.so.1()(64bit)
    libhssi-io.so.1()(64bit)
    libopae-c++-utils.so.1()(64bit)
    libopae-c.so.1()(64bit)
    libopae-cxx-core.so.1()(64bit)
    libsafestr.so.1()(64bit)
    opae
    opae(x86-64)

opae-devel:
    config(opae-devel)
    libboard_rc.so()(64bit)
    libboard_vc.so()(64bit)
    libfpgad-vc.so()(64bit)
    libfpgad-xfpga.so()(64bit)
    libmodbmc.so()(64bit)
    libxfpga.so()(64bit)
    opae-devel
    opae-devel(x86-64)

opae-debuginfo:
    debuginfo(build-id)
    opae-debuginfo
    opae-debuginfo(x86-64)

opae-debugsource:
    opae-debugsource
    opae-debugsource(x86-64)



Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -n opae
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, C/C++, Generic
Disabled plugins: Haskell, Ocaml, Perl, R, fonts, Python, PHP, Java, SugarActivity
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 7 Tom Rix 2020-03-04 19:39:09 UTC
Spec URL : https://github.com/trixirt/opae-rpm/blob/opae-1.4.0-4/opae.spec
SRPM URL : https://releases.pagure.org/opae/opae-1.4.0-4.fc31.src.rpm

I believe these resolve the outstanding issues.

The undefined symbols issue was resolved by improving the linking problem libraries.
https://github.com/trixirt/opae-rpm/commit/01b36d83e89873f0ae42666a3620e0727ca0f038

The issue with _smp_mflags was resolved by removing it.
https://github.com/trixirt/opae-rpm/commit/5e8a21b2ddd3fb14eeefabc57c9d87631240e71c

On upstreaming changes.
In general every git-ish patch 0001-* has been upstreamed.
ex/ 
https://github.com/trixirt/opae-rpm/blob/opae-1.4.0-4/0001-Fix-exec-stack-in-fpga_dma_vc_test.patch
maps to
https://github.com/OPAE/opae-sdk/pull/1465

some like
https://github.com/trixirt/opae-rpm/blob/opae-1.4.0-4/change-safestr-to-shared.patch
maps to
https://github.com/OPAE/opae-sdk/pull/1476
were not accepted because of fundamental changes in the opae-sdk master branch are on going.

Comment 8 Neil Horman 2020-03-05 15:24:55 UTC
The review looks good now, but I'm confused about the _smp_mflags issue.  I understand that your local builds reduce _smp_mflags to the same string, but theres no guarantee of that when doing official builds in fedora.  Different buildroots will set those flags to different strings, and many are non-default to the local setup (they enable hardening, etc).  That needs to be returned to the spec file, please

Other than that though, it looks good.  I'm not worried about the out of tree patches.  For user space packages, since you are the maintainer currently, its your prerogative to decide whats ok to carry and whats not.  If you're ok with those patches, and they're open source licensed, its fine with me.

if you can readd the _smp_mflags macro, I'll approve this immediately.  Thanks!

Comment 9 Elliott Sales de Andrade 2020-03-05 21:03:27 UTC
Please see the definition of %make_build, and the entry in the Guidelines: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_parallel_make There is no need to add %{?_smp_mflags} to the invocation.

Additionally, this:

cd _build
make DESTDIR=%{buildroot} install

can be shortened to:

%make_install -C _build

Also, you have %license somewhere in the middle of the spec file. It does not belong there, and is just putting random text at the end of your %description. %license is a marker for entries in %files, like %doc or %dir, so the two entries in %files should be changed from %doc to %license.

Comment 10 Neil Horman 2020-03-06 20:14:28 UTC
oh, duh, I'm sorry, I completely missed the fact that you converted to using the %make_build macro.  You're right you're absolutely good to go.

Approved.

Comment 12 Gwyn Ciesla 2020-03-10 21:45:56 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/opae


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