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 1725924 (pveclib) - Review Request: pveclib - Library for simplified access to PowerISA vector operations
Summary: Review Request: pveclib - Library for simplified access to PowerISA vector op...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: pveclib
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: ppc64le
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PPCTracker
TreeView+ depends on / blocked
 
Reported: 2019-07-01 18:41 UTC by Steven Jay Munroe
Modified: 2020-04-14 07:46 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-04-14 07:46:20 UTC
Type: ---
Embargoed:
sanjay.ankur: fedora-review+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
IBM Linux Technology Center 178815 0 None None None 2019-08-05 14:28:16 UTC

Description Steven Jay Munroe 2019-07-01 18:41:12 UTC
Spec URL: https://github.com/open-power-sdk/pveclib/blob/master/pveclib.spec
SRPM URL: https://copr.fedorainfracloud.org/coprs/munroesj52/pveclib/packages/
Description: Power Vector Library (pveclib) A library of useful vector operations for POWER. This library fills in the gap between the instructions defined in the POWER Instruction Set Architecture (PowerISA) and the compiler (altivec.h) intrinsic (builtins) and operations useful for higher level library APIs. The intent is to improve productivity for application developers who need to provide implementation and optimize their applications or dependent libraries on POWER.

More complete description and rationale here: https://github.com/open-power-sdk/pveclib/wiki

License: Apache V2.0 Project governance: modified DCO 1.1

Fedora Account System Username: munroesj52

Comment 1 Steven Jay Munroe 2019-07-03 14:20:16 UTC
This is my first package contribution to Fedora and I will need a sponsor.

Comment 2 Ankur Sinha (FranciscoD) 2019-07-03 16:25:39 UTC
(In reply to Steven Jay Munroe from comment #0)
> Spec URL: https://github.com/open-power-sdk/pveclib/blob/master/pveclib.spec
> SRPM URL:
> https://copr.fedorainfracloud.org/coprs/munroesj52/pveclib/packages/

Could we please have the complete link to the source rpm also? (fedora-review will not work otherwise.)

https://src.fedoraproject.org/rpms/fedora-review

Comment 3 Steven Jay Munroe 2019-07-03 18:12:55 UTC
> Could we please have the complete link to the source rpm also? (fedora-review will not work otherwise.)

Ok I am learning:

https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-rawhide-ppc64le/00955639-pveclib/pveclib-1.0.2-7.fc31.src.rpm

Comment 4 Ankur Sinha (FranciscoD) 2019-07-03 18:22:55 UTC
No worries, also need the "raw" link for the spec so fedora-review can download it:

https://raw.githubusercontent.com/open-power-sdk/pveclib/master/pveclib.spec

Comment 5 Ankur Sinha (FranciscoD) 2019-07-03 18:25:42 UTC
I can review this, and I'm also a sponsor so I can sponsor you when the time comes :)

Would you be able to do a few informal reviews yourself while we go through this ticket? That'll help you pick up the process and the tools quicker:
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group#Show_Your_Expertise_by_Commenting_on_other_Review_Requests

(When you comment with your review, please mention that it's an informal review because you're still waiting to be sponsored).

Comment 6 Antonio T. (sagitter) 2019-07-03 18:39:36 UTC
- Use built-in macros as much as possible (https://docs.fedoraproject.org/en-US/packaging-guidelines/#_macros):

'%setup -q -n %{name}-%{version}' --> %autosetup

'make %{?_smp_mflags}' --> %make_build

'make install DESTDIR=$RPM_BUILD_ROOT' --> %make_install

'rm -rf %{buildroot}/usr/share/doc/libpvec/ChangeLog.md' --> rm -rf %{buildroot}%{_datadir}/doc/libpvec/ChangeLog.md

- Move %check section after the %install one

- Is it needed to re-run %configure in %check?

- The static libraries MUST be placed in a *-static sub-package.
  (https://docs.fedoraproject.org/en-US/packaging-guidelines/#_packaging_static_libraries)

- The lines

%dir %{_includedir}/pveclib
%{_includedir}/pveclib/vec_common_ppc.h
%{_includedir}/pveclib/vec_f128_ppc.h
%{_includedir}/pveclib/vec_f64_ppc.h
%{_includedir}/pveclib/vec_f32_ppc.h
%{_includedir}/pveclib/vec_int128_ppc.h
%{_includedir}/pveclib/vec_int64_ppc.h
%{_includedir}/pveclib/vec_int32_ppc.h
%{_includedir}/pveclib/vec_int16_ppc.h
%{_includedir}/pveclib/vec_char_ppc.h
%{_includedir}/pveclib/vec_bcd_ppc.h

can be condensed with

%{_includedir}/pveclib/

- The line '%{!?_licensedir:%global license %%doc}' is useless

Comment 7 Antonio T. (sagitter) 2019-07-03 18:41:08 UTC
Oops!

Sorry Ankur.

Comment 8 Ankur Sinha (FranciscoD) 2019-07-03 19:04:16 UTC
Ha, no worries Antonio, please feel free to provide comments too :)

Here are some preliminary notes too. The scratch build succeeds: https://koji.fedoraproject.org/koji/taskinfo?taskID=36021962

rpmlint picks up a few important things that need looking into. `rpmlint -i` would give more verbose results:

/home/asinha/rpmbuild/SPECS/pveclib.spec:1: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 1)
^
Please use either spaces or tabs, it's just good to be consistent.


pveclib.src: W: spelling-error %description -l en_US intrinsics -> intrinsic, intrinsic s, extrinsic
pveclib.src: W: spelling-error %description -l en_US altivec -> elective

^ Can be ignored.


pveclib.src: W: invalid-license APACHE
^
The License is OK, but the right name needs to be picked for the specfile. Please have a look here:
https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses

pveclib.ppc64le: W: incoherent-version-in-changelog 1.0.2 ['1.0.2-7.fc31', '1.0.2-7']
^ 
The changelog must reflect the version/release correctly.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#changelogs

You can start with the Release as 1 here. That only needs to be bumped when the spec is changed and a new build is to be made.

pveclib.ppc64le: E: shared-lib-without-dependency-information /usr/lib64/libpvec.so.0.0.0
^
Will have to look deeper to see what this one is about.

pveclib.ppc64le: W: dangling-relative-symlink /usr/share/licenses/pveclib/COPYING LICENSE
^
Please fix this.

Comment 9 Steven Jay Munroe 2019-07-03 23:03:32 UTC
> pveclib.src: W: invalid-license APACHE

So you want this spelled out as "Apache Software License 2.0" or the short form "ASL 2.0" ?

> pveclib.ppc64le: E: shared-lib-without-dependency-information /usr/lib64/libpvec.so.0.0.0

The current build only uses the static libraries for some unit tests. As is these libraries only contains arrays of large numeric constants. But this might change in later pveclib version are more complex operations are added.

> pveclib.ppc64le: W: dangling-relative-symlink /usr/share/licenses/pveclib/COPYING LICENSE

looks like I am caught on the horns of the "LICENSE" vs "COPYING" controversy: 

https://stackoverflow.com/questions/5678462/should-i-provide-a-license-txt-or-copying-txt-file-in-my-project

The symlink avoids duplicating the file. While preserving COPYING for lint checks that insist on that file is there.

Not sure why it is "dangling" because it is used in Makefile.am

+dist_license_DATA = COPYING

+dist_doc_DATA = CONTRIBUTING.md README.md ChangeLog.md

Based on  https://bugzilla.redhat.com/show_bug.cgi?id=1536209 I assumed this is what you (Fedora) wanted.

I am working on the other issues.

Comment 10 Dan Horák 2019-07-04 11:39:38 UTC
(In reply to Steven Jay Munroe from comment #9)
> > pveclib.src: W: invalid-license APACHE
> 
> So you want this spelled out as "Apache Software License 2.0" or the short
> form "ASL 2.0" ?

should be the short name from https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses
 
> > pveclib.ppc64le: E: shared-lib-without-dependency-information /usr/lib64/libpvec.so.0.0.0
> 
> The current build only uses the static libraries for some unit tests. As is
> these libraries only contains arrays of large numeric constants. But this
> might change in later pveclib version are more complex operations are added.
> 
> > pveclib.ppc64le: W: dangling-relative-symlink /usr/share/licenses/pveclib/COPYING LICENSE
> 
> looks like I am caught on the horns of the "LICENSE" vs "COPYING"
> controversy: 
> 
> https://stackoverflow.com/questions/5678462/should-i-provide-a-license-txt-
> or-copying-txt-file-in-my-project
> 
> The symlink avoids duplicating the file. While preserving COPYING for lint
> checks that insist on that file is there.
> 
> Not sure why it is "dangling" because it is used in Makefile.am
> 
> +dist_license_DATA = COPYING
> 
> +dist_doc_DATA = CONTRIBUTING.md README.md ChangeLog.md
> 
> Based on  https://bugzilla.redhat.com/show_bug.cgi?id=1536209 I assumed this
> is what you (Fedora) wanted.

AFAIK it's OK to have the license text part of the autotools "docs" and then the rpmbuild will care about the details in the background when %license and %doc tags are used in the spec.

Comment 11 Steven Jay Munroe 2019-07-04 21:55:12 UTC
making some progress:

> > pveclib.ppc64le: W: dangling-relative-symlink /usr/share/licenses/pveclib/COPYING LICENSE

rpmbuild/rpmlint just can't handle the symlink. I can copy LICENSE over COPYING (to check licensing separate from doc) or rename LICENSE to COPYING (and use COPYING for both).

Either eliminated this warning.

> > pveclib.ppc64le: W: dangling-relative-symlink /usr/share/licenses/pveclib/COPYING LICENSE

This library (currently) has not dependencies (all data).

I can make rpmlint happy by adding the fake dependency: libpvec_la_LIBADD = -lc

> > pveclib-devel.ppc64le: W: no-documentation

Not sure what this is: I have 200 pages of documentation our on github: https://munroesj52.github.io/
But not the king of thing you should put in a man file.

The ChangeLog.md  CONTRIBUTING.md  COPYING  README.md files are installed in /usr/share/doc/pveclib/
and pveclib-1.0.2-1.fc30.ppc64le.rpm but not pveclib-devel-1.0.2-1.fc30.ppc64le.rpm

not sure what I am missing here.

Comment 12 Steven Jay Munroe 2019-07-09 22:33:24 UTC
Making progress on clean up of rpmlint issues:

Latest changes in pull request https://github.com/open-power-sdk/pveclib/pull/79 for review.

Current results:
$ rpmlint ./rpmbuild/
pveclib.ppc64le: W: spelling-error %description -l en_US altivec -> elective
pveclib-devel.ppc64le: W: no-documentation
pveclib.src: W: spelling-error %description -l en_US altivec -> elective
5 packages and 2 specfiles checked; 0 errors, 3 warnings.

Not sure is the no-documentation is a show stopper. Not sure what do as man files would be useless and generating PDF would add a lot more dependencies to the build.

Antonio:

I merged most of your suggestions except for:
- The static libraries MUST be placed in a *-static sub-package.

The referenced doc tells me what but not how. I will need examples.

Comment 13 Ankur Sinha (FranciscoD) 2019-07-11 13:26:00 UTC
(In reply to Steven Jay Munroe from comment #12)
> Making progress on clean up of rpmlint issues:
> 
> Latest changes in pull request
> https://github.com/open-power-sdk/pveclib/pull/79 for review.
> 
> Current results:
> $ rpmlint ./rpmbuild/
> pveclib.ppc64le: W: spelling-error %description -l en_US altivec -> elective
> pveclib-devel.ppc64le: W: no-documentation
> pveclib.src: W: spelling-error %description -l en_US altivec -> elective
> 5 packages and 2 specfiles checked; 0 errors, 3 warnings.
> 
> Not sure is the no-documentation is a show stopper. Not sure what do as man
> files would be useless and generating PDF would add a lot more dependencies
> to the build.

If the man files are part of the source, they may be included. This isn't a blocker.

> 
> Antonio:
> 
> I merged most of your suggestions except for:
> - The static libraries MUST be placed in a *-static sub-package.
> 
> The referenced doc tells me what but not how. I will need examples.

You define a new sub-package, like the devel package is defined, and add the related files to the new files section. Here is an example package:

https://src.fedoraproject.org/rpms/klt/blob/master/f/klt.spec#_43

Could you please provide links to the new spec/srpm when you've made changes? That way, we always run checks on the newest iterations and don't end up pointing out issues that have already been fixed.

Comment 14 Steven Jay Munroe 2019-07-11 15:25:24 UTC
Antonio

>Could you please provide links to the new spec/srpm when you've made changes?

Pull request including spec changes are here: https://github.com/open-power-sdk/pveclib/pull/79

waiting for feed back on the Debian side. Then I will commit and and run a build on COPR

>  You define a new sub-package,...

So ... add?

%package static
	
%description static

%files static

Comment 15 Ankur Sinha (FranciscoD) 2019-07-11 15:35:14 UTC
(In reply to Steven Jay Munroe from comment #14)
> Antonio
> 
> >Could you please provide links to the new spec/srpm when you've made changes?
> 
> Pull request including spec changes are here:
> https://github.com/open-power-sdk/pveclib/pull/79
> 
> waiting for feed back on the Debian side. Then I will commit and and run a
> build on COPR

Okay. Great. Please drop a comment with the spec/sprm URLs and I'll go through them again.

> 
> >  You define a new sub-package,...
> 
> So ... add?
> 
> %package static
> 	
> %description static
> 
> %files static

Yes, that'll do it. 
This can be done to add any arbitrary sub-packages. The commonest ones, of course, are -doc, -devel, -static.

Comment 16 Steven Jay Munroe 2019-07-11 21:46:59 UTC
So now I am getting:
   pveclib-static.ppc64le: W: no-documentation
in addition to:
   pveclib-devel.ppc64le: W: no-documentation

But by adding:
   %doc README.md
to "%files devel" and "%files static" those warnings go away.

and now I only get:
   $ rpmlint ./rpmbuild/
   pveclib.ppc64le: W: spelling-error %description -l en_US altivec -> elective
   pveclib.src: W: spelling-error %description -l en_US altivec -> elective
   6 packages and 2 specfiles checked; 0 errors, 2 warnings.

Is this acceptable?

Comment 18 Ankur Sinha (FranciscoD) 2019-07-20 09:22:54 UTC
Looks good. A few tweaks are all that are needed now.

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

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


Issues:
=======
- Package installs properly.
^
I'm unable to check this.

- If your application is a C or C++ application you must list a
  BuildRequires against gcc, gcc-c++ or clang.
  Note: No gcc, gcc-c++ or clang found in BuildRequires
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/

- ldconfig not called in %post and %postun for Fedora 28 and later.
  Note: /sbin/ldconfig called in pveclib
  See: https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
^
No need for them now so they can be removed.


- 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
^
Is COPYING the same as LICENSE? It should be in %license nevertheless.

- Sources used to build the package match the upstream source, as provided
  in the spec URL.
  Note: Upstream MD5sum check error, diff is in /home/asinha/dump/fedora-
  review/pveclib/review-pveclib/diff.txt
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/
^
Please check this.

- %configure is called twice---is that intentional?


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

C/C++:
[?]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
^
fedora-review picked this up. Not entirely sure if this is needed.

[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
^
Ran a scratch build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=36361206

[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.

[x]: License file installed when any subpackage combination is installed.

[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 61440 bytes in 6 files.
[x]: Package complies to the Packaging Guidelines
[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 must own all directories that it creates.
[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]: 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]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: Static libraries in -static or -devel subpackage, providing -devel if
     present.
     Note: Package has .a files: pveclib-static.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

Generic:
[x]: Reviewer should test that the package builds in mock.
^
Verified in a scratch build

[-]: 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.
[?]: Package functions as described.
^
You'll have to check this

[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.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[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:
[!]: Rpmlint is run on all installed packages.
^
Couldn't run it on installed packages.

[!]: Package should not use obsolete m4 macros
     Note: Some obsoleted macros found, see the attachment.
     See: https://fedorahosted.org/FedoraReview/wiki/AutoTools

[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.


Rpmlint
-------
Checking: pveclib-1.0.2-1.fc31.ppc64le.rpm
          pveclib-devel-1.0.2-1.fc31.ppc64le.rpm
          pveclib-static-1.0.2-1.fc31.ppc64le.rpm
          pveclib-debuginfo-1.0.2-1.fc31.ppc64le.rpm
          pveclib-debugsource-1.0.2-1.fc31.ppc64le.rpm
          pveclib-1.0.2-1.fc31.src.rpm
pveclib.ppc64le: W: spelling-error %description -l en_US altivec -> elective
pveclib.src: W: spelling-error %description -l en_US altivec -> elective
6 packages and 0 specfiles checked; 0 errors, 2 warnings.




Source checksums
----------------
https://github.com/open-power-sdk/pveclib/archive/v1.0.2.tar.gz :
  CHECKSUM(SHA256) this package     : 9fe2ec2a0a16fce087e46f5eb70187f6f86f84ba522f1a371c046d0ef6ba80a5
  CHECKSUM(SHA256) upstream package : a7d063bd6615bf75ac1b6c1bb3e6aa49044d602e84907140b41519792077199c
diff -r also reports differences

^
Please check this


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

pveclib-devel (rpmlib, GLIBC filtered):
    libpvec.so.0()(64bit)
    pveclib(ppc-64)

pveclib-static (rpmlib, GLIBC filtered):
    pveclib(ppc-64)

pveclib-debuginfo (rpmlib, GLIBC filtered):

pveclib-debugsource (rpmlib, GLIBC filtered):



Provides
--------
pveclib:
    libpvec.so.0()(64bit)
    pveclib
    pveclib(ppc-64)

pveclib-devel:
    pveclib-devel
    pveclib-devel(ppc-64)

pveclib-static:
    pveclib-static
    pveclib-static(ppc-64)

pveclib-debuginfo:
    debuginfo(build-id)
    pveclib-debuginfo
    pveclib-debuginfo(ppc-64)

pveclib-debugsource:
    pveclib-debugsource
    pveclib-debugsource(ppc-64)



AutoTools: Obsoleted m4s found
------------------------------
  AC_PROG_LIBTOOL found in: /home/asinha/dump/fedora-review/pveclib/review-
  pveclib/upstream-unpacked/Source0/pveclib-1.0.2/configure.ac:15

^
Also worth checking and reporting upstream.


Generated by fedora-review 0.7.2 (65d36bb) last change: 2019-04-09
Command line :/usr/bin/fedora-review -n pveclib -p
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: Ocaml, SugarActivity, fonts, Python, Java, Haskell, R, Perl, PHP
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 19 Steven Jay Munroe 2019-07-23 19:49:50 UTC
- If your application is a C or C++ application you must list a
  BuildRequires against gcc, gcc-c++ or clang.
  Note: No gcc, gcc-c++ or clang found in BuildRequires
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/

* pveclib.spec [BuildRequires]: Add gcc-c++.


- ldconfig not called in %post and %postun for Fedora 28 and later.
  Note: /sbin/ldconfig called in pveclib
  See: https://fedoraproject.org/wiki/Changes/Removing_ldconfig_scriptlets
^
No need for them now so they can be removed.

[%post, %postun] Depreacted, removed


Is COPYING the same as LICENSE? It should be in %license nevertheless.

Yes but some older distros require/expect it and rpmlint did not like the symlink. So I duplicated LICENSE to COPYING.

I have multiple masters here and trying keep them all happy.

[%license]: Add COPYING.
[%doc]: COPYING here too.

- Sources used to build the package match the upstream source, as provided
  in the spec URL.

not there yet working on it. Trying not the burn another version tag until we have this ready to go.


- %configure is called twice---is that intentional?

Noop, removed the dup.

[?]: Package functions as described.
^
You'll have to check this

Make check verifies this. Tested for -mcpu=power7/8/9 using gcc 6/7/8/9. Fedora tests are GCC9 -mcpu=power8

AutoTools: Obsoleted m4s found
------------------------------
  AC_PROG_LIBTOOL found in: /home/asinha/dump/fedora-review/pveclib/review-
  pveclib/upstream-unpacked/Source0/pveclib-1.0.2/configure.ac:15

^
Also worth checking and reporting upstream.

I found not indication that  is Obsoleted. Found and corrected 2 other cases.

* configure.ac [AC_INIT] Bump version to 1.0.3
AC_CANONICAL_SYSTEM is deprecated,
Replace with AC_CANONICAL_TARGET.
AM_PROG_CC_C_O is deprecated, remove.

Comment 20 Steven Jay Munroe 2019-07-24 14:40:07 UTC
Ankur you provided the link to https://pagure.io/FedoraReview above. I assumed that you intended that I used this tool to find issues and address them. 

But When I followed the install instructions and tried "python3 try-fedora-review --help" the tool ask for a password.

It is not what the password is for and the obvious choices (local sudo and Fedora login) did not work.

Some additional clues are needed.

Comment 21 Steven Jay Munroe 2019-07-24 18:50:05 UTC
I have a successful build on COPR with using the latest master with a temporary tag v1.0.2x 

https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-30-ppc64le/00977765-pveclib/
https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-rawhide-ppc64le/00977765-pveclib/

If this if acceptable I will tag the master as v1.0.3 and update the spec-file to match.

Comment 22 Steven Jay Munroe 2019-07-25 20:05:00 UTC
So here is a cleaner build on COPR using the latest master with a temporary tag v1.0.2y.

https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-30-ppc64le/00978483-pveclib/
https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-rawhide-ppc64le/00978483-pveclib/

Turns out the build process is really picked about all the version #s matching. And having pveclib.spec in the source tree is a mistake. 

Now the rpmlint is clean expect the spelling of altivec.h:

$ rpmlint ./rpmbuild/
pveclib.ppc64le: W: spelling-error %description -l en_US altivec -> elective
pveclib.src: W: spelling-error %description -l en_US altivec -> elective
6 packages and 1 specfiles checked; 0 errors, 2 warnings.

one weird thing is that the RPMS built by COPR have bad signatures

Error checking signature of /home/sjmunroe/rpmtest/pveclib-debuginfo-1.0.2y-1.fc30.ppc64le.rpm: /home/sjmunroe/rpmtest/pveclib-debuginfo-1.0.2y-1.fc30.ppc64le.rpm: digests SIGNATURES NOT OK

rpm -ql complains: Header V3 RSA/SHA1 Signature, key ID 81dc7181: NOKEY

But the ones I build on Fedora 30 P8 does NOT have these errors. 

I have no idea what this is oe how to deal with this.

Comment 23 Ankur Sinha (FranciscoD) 2019-07-29 09:12:29 UTC
(In reply to Steven Jay Munroe from comment #20)
> Ankur you provided the link to https://pagure.io/FedoraReview above. I
> assumed that you intended that I used this tool to find issues and address
> them. 
> 
> But When I followed the install instructions and tried "python3
> try-fedora-review --help" the tool ask for a password.
> 
> It is not what the password is for and the obvious choices (local sudo and
> Fedora login) did not work.
> 
> Some additional clues are needed.

`sudo dnf -y install fedora-review` is sufficient---you needn't fetch if from git. Lots of options though, so please look at man fedora-review to see how to use it. The general usage is:

fedora-review -b review-ticket-number

Comment 24 Ankur Sinha (FranciscoD) 2019-07-29 09:34:50 UTC
(In reply to Steven Jay Munroe from comment #19)
> <snip>
> 
> I have multiple masters here and trying keep them all happy.

Ugh, this will not be easy. While they all use RPM, the guidelines for packaging can be quite different. You can either keep different spec files for them or use conditionals if you'd like to keep a single spec.

https://docs.fedoraproject.org/en-US/packaging-guidelines/DistTag/#_conditionals

(I do not know about other distributions, sorry).

(In reply to Steven Jay Munroe from comment #22)
> So here is a cleaner build on COPR using the latest master with a temporary
> tag v1.0.2y.
> 
> https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-30-
> ppc64le/00978483-pveclib/
> https://copr-be.cloud.fedoraproject.org/results/munroesj52/pveclib/fedora-
> rawhide-ppc64le/00978483-pveclib/
> 
> Turns out the build process is really picked about all the version #s
> matching. And having pveclib.spec in the source tree is a mistake. 

Yes, while the versions of rpms and upstream must match, the rpms can carry tweaks and changes and the release tag incremented each time, accordingly.


> Now the rpmlint is clean expect the spelling of altivec.h:
> 
> $ rpmlint ./rpmbuild/
> pveclib.ppc64le: W: spelling-error %description -l en_US altivec -> elective
> pveclib.src: W: spelling-error %description -l en_US altivec -> elective
> 6 packages and 1 specfiles checked; 0 errors, 2 warnings.

^ That's fine.

> 
> one weird thing is that the RPMS built by COPR have bad signatures
> 
> Error checking signature of
> /home/sjmunroe/rpmtest/pveclib-debuginfo-1.0.2y-1.fc30.ppc64le.rpm:
> /home/sjmunroe/rpmtest/pveclib-debuginfo-1.0.2y-1.fc30.ppc64le.rpm: digests
> SIGNATURES NOT OK
> 
> rpm -ql complains: Header V3 RSA/SHA1 Signature, key ID 81dc7181: NOKEY
> 
> But the ones I build on Fedora 30 P8 does NOT have these errors. 
> 
> I have no idea what this is oe how to deal with this.

I wouldn't worry about it. When built using koji, these should not occur.


The spec looks pretty good now. One last nitpick, but you can change that before you import into SCM:

Please explicitly version the shared objects


%{_libdir}/libpvec.so.0
%{_libdir}/libpvec.so.0.0.0

This ensures that any soname bumps will not slip through.


XXX APPROVED XXXX


I've now sponsored you to the packager group! Welcome!!

Please import the package and build it following the process here:

https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Add_Package_to_Source_Code_Management_.28SCM.29_system_and_Set_Owner

Comment 25 Steven Jay Munroe 2019-07-30 15:16:36 UTC
> Please explicitly version the shared objects

OK

> XXX APPROVED XXXX

Thanks.

I bumped the pveclib tag to v1.0.3 and updated the pveclib.spec to reflect that:
https://github.com/open-power-sdk/fedora/blob/master/pveclib.spec

Another round of tests on to verify I did not miss something then on to fedora-review

Comment 26 Ankur Sinha (FranciscoD) 2019-07-30 16:28:37 UTC
> Another round of tests on to verify I did not miss something then on to
> fedora-review

It is not required to run fedora-review on your spec/srpm now since the review here is complete, but please feel free to use fedora-review as a helper tool to run checks and review other's submissions.

Comment 27 Steven Jay Munroe 2019-07-30 19:39:16 UTC
So my first attempt to request "fedpkg request-repo" was rejected because I (no one) was not assigned to this bugzilla.

But when tried to click on the assignee link gnome mail crashed and now all I get is "nobody" email popup.

Is this how this works (send email to nobody)? I was expecting more automation.

Comment 28 Ankur Sinha (FranciscoD) 2019-07-30 21:28:07 UTC
(In reply to Steven Jay Munroe from comment #27)
> So my first attempt to request "fedpkg request-repo" was rejected because I
> (no one) was not assigned to this bugzilla.

Should work now. Somehow I forgot to assign the bug to myself.

> 
> But when tried to click on the assignee link gnome mail crashed and now all
> I get is "nobody" email popup.
> 
> Is this how this works (send email to nobody)? I was
> expecting more automation.


I reckon you clicked the e-mail address which was a "mailto" link, and so it tried to open in your e-mail client.

Comment 29 Gwyn Ciesla 2019-07-31 21:40:48 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/pveclib

Comment 30 Steven Jay Munroe 2019-08-01 21:11:51 UTC
ok I have been able to:
fedpkg --user munroesj52 clone pveclib

set up and run a mock build:

mock -r default --rebuild pveclib-1.0.3-1.fc30.src.rpm

then import the srpm built by mock

fedpkg --user munroesj52 import  /var/lib/mock/fedora-rawhide-ppc64le/result/pveclib-1.0.3-1.fc31.src.rpm

I had to manually git commit/push (perhaps because I had not set up kerberos/Koji yet).

git add v1.0.3.tar.gz 
git commit -m "Initial import (#1725924)."
git push

Then Koji build against the repo:

fedpkg --user munroesj52 build

with good status:

36741637 build (rawhide, /rpms/pveclib.git:e49d0062cea3bbc86e8542357175abad416ee19b) completed successfully

Note I use --user munroesj52 because my login for the local system is different. Does setting up ~/.fedora.upn remove this issue?

Also Koji claimed to build for: armv7-06, s390x-18, in addition to ppc64le-24. I had assumed that the "ExclusiveArch: ppc %{power64}" would have prevented that?

So what is the next step?

Comment 31 Steven Jay Munroe 2019-08-01 22:14:45 UTC
From Fedora updates:

This update was automatically created an hour ago

This update's test gating status has been changed to 'waiting'. an hour ago

This update's test gating status has been changed to 'ignored'. an hour ago

This update can be pushed to stable now if the maintainer wishes an hour ago

This update has been submitted for stable by bodhi. an hour ago

I assume this is normal

Comment 32 Steven Jay Munroe 2019-08-05 14:31:01 UTC
> NEW: Fedora-Rawhide-20190802.n.1
...
> ===== ADDED PACKAGES =====
...
> Package: pveclib-1.0.3-1.fc31
> Summary: Library for simplified access to PowerISA vector operations
> RPMs:    pveclib pveclib-devel pveclib-static
> Size:    157.71 KiB

Thanks for all your help.

Comment 33 Dan Horák 2020-04-14 07:46:20 UTC
Built and included for a long time, so let's close the review.


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