Bug 1884085 - Review Request: prewikka-updatedb - Database update scripts for prewikka
Summary: Review Request: prewikka-updatedb - Database update scripts for prewikka
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jerry James
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-09-30 23:18 UTC by Thomas Andrejak
Modified: 2021-03-06 10:59 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2021-03-06 10:59:54 UTC
Type: ---
Embargoed:
loganjerry: fedora-review+


Attachments (Terms of Use)

Description Thomas Andrejak 2020-09-30 23:18:12 UTC
Spec URL: https://fedorapeople.org/~totol/prewikka-updatedb.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/3346/52553346/prewikka-updatedb-5.2.0-1.fc34.src.rpm
Description: Database update scripts for prewikka. Needed to update from a previous version of prewikka to an upstream version of prewikka
Fedora Account System Username: totol

Comment 1 Jerry James 2020-10-14 15:04:42 UTC
Here are some preliminary questions and observations.

- The name of the package/spec file should be python-prewikka-updatedb; see
  https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_python_source_package_naming

- Why does the spec file contain this:

  # Since mass rebuild, debugpackage wont works for prelude-correlator
  %define debug_package %{nil}

  instead of this?

  BuildArch: noarch

- Where did you get the license tag?  The only mention of a license that I see
  is in prewikkaupdatedb/filter/update310.py, where the Converter class is
  declared to be in the public domain.  PKG-INFO says that the license is
  UNKNOWN.

- The text at the top of /usr/lib/rpm/macros.d/macros.python-srpm indicates
  that %{python3} should be used instead of %{__python3} when invoking the
  interpreter in a spec file.  On the other hand, is there a reason why
  %install doesn't just invoke %py3_install?

- Isn't line 22 of the spec file:

  Requires:       python3-prewikka >= %{version}

  backwards?  That is, doesn't prewikka require prewikka-updatedb, not the
  other way around?

- Line 23 of the spec file:

  %{?python_provide:%python_provide python3-%{name}}

  is no longer needed in Fedora 33 and later.  If you do not plan to build for
  EPEL or Fedora <= 32, then you can omit this line.

- The empty %files on line 37 of the spec file is wrong.  It leads to the
  creation of an empty and unnecessary prewikka-updatedb binary package.  Once
  that is removed, the Requires on lines 11 and 21 are also not needed.  If you
  want the python3 package to be installable via the name prewikka-updatedb,
  then add "Provides: prewikka-updatedb = %{version}-%{release}" to the python3
  subpackage.

- Line 40 of the spec file has an extraneous /:

  %{python3_sitelib}//prewikkaupdatedb/
                    ^^

Comment 2 Thomas Andrejak 2020-10-16 22:45:13 UTC
Hello

Thanks for your review

New Spec URL: https://fedorapeople.org/~totol/prewikka-updatedb.spec
New SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/1810/53611810/prewikka-updatedb-5.2.0-1.fc34.src.rpm

Please make a new review. Thanks !

>
>Here are some preliminary questions and observations.
>
>- The name of the package/spec file should be python-prewikka-updatedb; see
>  https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_python_source_package_naming

The prewikka package is like this. I prefer to keep prewikka-updatedb. See https://src.fedoraproject.org/rpms/prewikka

>
>- Why does the spec file contain this:
>
>  # Since mass rebuild, debugpackage wont works for prelude-correlator
>  %define debug_package %{nil}
>
>  instead of this?
>
>  BuildArch: noarch

Done

> 
>- Where did you get the license tag?  The only mention of a license that I see
>  is in prewikkaupdatedb/filter/update310.py, where the Converter class is
>  declared to be in the public domain.  PKG-INFO says that the license is
>  UNKNOWN.

I know the developers and they told me it is like Prewikka.

>
>- The text at the top of /usr/lib/rpm/macros.d/macros.python-srpm indicates
>  that %{python3} should be used instead of %{__python3} when invoking the
>  interpreter in a spec file.  On the other hand, is there a reason why
>  %install doesn't just invoke %py3_install?

Done

>
>- Isn't line 22 of the spec file:
>
>  Requires:       python3-prewikka >= %{version}
>
>  backwards?  That is, doesn't prewikka require prewikka-updatedb, not the
>  other way around?

Prewikka can works without prewikka-updatedb but installing prewikka-updatedb without prewikka is a nonsense. So it is OK I think

>
>- Line 23 of the spec file:
>
>  %{?python_provide:%python_provide python3-%{name}}
>
>  is no longer needed in Fedora 33 and later.  If you do not plan to build for
>  EPEL or Fedora <= 32, then you can omit this line.

Done

>
>- The empty %files on line 37 of the spec file is wrong.  It leads to the
>  creation of an empty and unnecessary prewikka-updatedb binary package.  Once
>  that is removed, the Requires on lines 11 and 21 are also not needed.  If you
>  want the python3 package to be installable via the name prewikka-updatedb,
>  then add "Provides: prewikka-updatedb = %{version}-%{release}" to the python3
>  subpackage.

Done

>
>- Line 40 of the spec file has an extraneous /:
>
>  %{python3_sitelib}//prewikkaupdatedb/

Done

Comment 3 Jerry James 2020-10-30 17:23:12 UTC
Package Review
==============

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

Issues
======
- The source RPM name should have "python-" prefixed to it, regardless of how
  the prewikka package is named.  See the Naming Guidelines:
  https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_python_source_package_naming
  However, since this is a SHOULD rather than a MUST, I will not block the
  review on this point.

- I cannot verify that the license tag is correct.  Unlike you, I don't know
  the developers.  Please ask them to put the license in writing somewhere,
  even if it is in an email to you (which you would then includes as a source
  file).  Please also point out to them that term 1 of the GPL version 2
  requires us to pass on the copy of the GPL we received from them ... only
  they didn't give us one:

  https://www.gnu.org/licenses/old-licenses/gpl-2.0.html

  At the very least, they should set the License field in PKG-INFO.  Note that
  it is not enough for them to simply add a file containing the license text
  to the package.  See the comment in the "GPL+" entry in this table:

  https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses

- Remove line 11 of the spec file:

  Requires:       python3-%{name} >= %{version}

  That accomplishes nothing, since there is no binary RPM for the main package,
  so the dependency doesn't appear anywhere.

- Remove line 18 of the spec file:

  Requires:       %{name} = %{version}-%{release}

  Since the package also Provides that name, this is a self-dependency, which
  accomplishes nothing useful.

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

Generic:
[!]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.

     I am unable to verify this.  See above.

[-]: 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.
[!]: License field in the package spec file matches the actual license.

     I am unable to verify this.  See above.

[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.
[-]: 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).
[!]: Package is named according to the Package Naming Guidelines.

     The source package name should have a "python-" prefix.  See above.

[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.
[!]: Requires correct, justified where necessary.

     There are two unnecessary Requires.  See above.

[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[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 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]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: 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

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files
[x]: Binary eggs must be removed in %prep

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

Generic:
[!]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.

     Upstream should be asked to provide license text and information.  See
     above.

[!]: Final provides and requires are sane (see

     Two Requires are unnecessary.  See above.

[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[!]: %check is present and all tests pass.

     Upstream did not provide any tests, so this is okay.

[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:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: python3-prewikka-updatedb-5.2.0-1.fc34.noarch.rpm
          prewikka-updatedb-5.2.0-1.fc34.src.rpm
python3-prewikka-updatedb.noarch: W: no-documentation
2 packages and 0 specfiles checked; 0 errors, 1 warnings.




Rpmlint (installed packages)
----------------------------
python3-prewikka-updatedb.noarch: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 1 warnings.



Source checksums
----------------
https://www.prelude-siem.org/pkg/src/5.2.0/prewikka-updatedb-5.2.0.tar.gz :
  CHECKSUM(SHA256) this package     : bc409278d3404117a840193df3dbfd63ecc59b1fcdeb9bc974833ca45e94e8db
  CHECKSUM(SHA256) upstream package : bc409278d3404117a840193df3dbfd63ecc59b1fcdeb9bc974833ca45e94e8db


Requires
--------
python3-prewikka-updatedb (rpmlib, GLIBC filtered):
    prewikka-updatedb
    python(abi)
    python3-prewikka



Provides
--------
python3-prewikka-updatedb:
    prewikka-updatedb
    python-prewikka-updatedb
    python3-prewikka-updatedb
    python3.9-prewikka-updatedb
    python3.9dist(prewikka-updatedb)
    python3dist(prewikka-updatedb)



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

Comment 4 Thomas Andrejak 2020-10-30 23:19:39 UTC
Hello

Thanks for your review.

> Issues
> ======
> - The source RPM name should have "python-" prefixed to it, regardless of how
>   the prewikka package is named.  See the Naming Guidelines:
>   https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_python_source_package_naming
>   However, since this is a SHOULD rather than a MUST, I will not block the
>   review on this point.

OK, thanks, I think this is the best

> 
> - I cannot verify that the license tag is correct.  Unlike you, I don't know
>   the developers.  Please ask them to put the license in writing somewhere,
>   even if it is in an email to you (which you would then includes as a source
>   file).  Please also point out to them that term 1 of the GPL version 2
>   requires us to pass on the copy of the GPL we received from them ... only
>   they didn't give us one:
> 
>   https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
> 
>   At the very least, they should set the License field in PKG-INFO.  Note that
>   it is not enough for them to simply add a file containing the license text
>   to the package.  See the comment in the "GPL+" entry in this table:
> 
>   https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses

I may wrong explain myself. I'm in the developer team :). Nonetheless, the wiki has been updated : https://www.prelude-siem.org/projects/prelude/wiki/SourceOrganization , now it is clear that prewikka-updatedb is GPL v2. In the next release, we will add COPYING file and update the PKG-INFO.

What is your advice to include this into the package ?

> 
> - Remove line 11 of the spec file:
> 
>   Requires:       python3-%{name} >= %{version}
> 
>   That accomplishes nothing, since there is no binary RPM for the main package,
>   so the dependency doesn't appear anywhere.
> 
> - Remove line 18 of the spec file:
> 
>   Requires:       %{name} = %{version}-%{release}
> 
>   Since the package also Provides that name, this is a self-dependency, which
>   accomplishes nothing useful.

Done. See:
New Spec URL: https://fedorapeople.org/~totol/prewikka-updatedb.spec
New SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/1810/53611810/prewikka-updatedb-5.2.0-1.fc34.src.rpm

Thanks

Regards

Comment 5 Thomas Andrejak 2020-10-30 23:20:50 UTC
Sorry, wrong link for new SRPM. Good link: https://kojipkgs.fedoraproject.org//work/tasks/1458/54591458/prewikka-updatedb-5.2.0-1.fc34.src.rpm

Comment 6 Jerry James 2020-11-03 16:52:39 UTC
(In reply to Thomas Andrejak from comment #4)
> I may wrong explain myself. I'm in the developer team :). Nonetheless, the
> wiki has been updated :
> https://www.prelude-siem.org/projects/prelude/wiki/SourceOrganization , now
> it is clear that prewikka-updatedb is GPL v2. In the next release, we will
> add COPYING file and update the PKG-INFO.

Ah, I see.  The wiki just says "GPL v2", but you've set the License field to GPLv2+.  Does the "or any later version" language appear anywhere?

> What is your advice to include this into the package ?

Please add a comment above the License field in the spec file pointing to the wiki as justification.  That comment can be removed when updating to a release that contains license information.

I will go ahead and approve this package.  Please add that comment before importing the package.

Comment 7 Thomas Andrejak 2020-11-05 10:55:44 UTC
Hello

Thanks for your final review

> Ah, I see.  The wiki just says "GPL v2", but you've set the License field to GPLv2+.  Does the "or any later version" language appear anywhere?

You are right, it was missing. I updated the wiki page

> Please add a comment above the License field in the spec file pointing to the wiki as justification.  That comment can be removed when updating to a release that contains license information.

Done
New Spec URL: https://fedorapeople.org/~totol/prewikka-updatedb.spec
New SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/3776/54973776/prewikka-updatedb-5.2.0-1.fc34.src.rpm

Thanks

Regards

Comment 8 Gwyn Ciesla 2020-11-05 22:09:30 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/prewikka-updatedb


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