Bug 1466961 - Review Request: datamash - A statistical, numerical and textual operations tool
Summary: Review Request: datamash - A statistical, numerical and textual operations tool
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: José Matos
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1466960 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-06-30 22:31 UTC by Hannes Frederic Sowa
Modified: 2018-08-27 23:44 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-08-27 23:44:07 UTC
Type: ---
Embargoed:
jamatos: fedora-review+


Attachments (Terms of Use)
spec patch (1.90 KB, patch)
2017-07-07 12:08 UTC, Dave Love
no flags Details | Diff

Description Hannes Frederic Sowa 2017-06-30 22:31:29 UTC
Spec URL: http://people.redhat.com/~hsowa/datamash.spec
SRPM URL: http://people.redhat.com/~hsowa/datamash-1.1.1-1.fc25.src.rpm
Description: GNU datamash is a command-line program which performs basic numeric,textual and statistical operations on input textual data files.
Fedora Account System Username: stressinduktion

Comment 1 Yanko Kaneti 2017-07-01 09:08:25 UTC
*** Bug 1466960 has been marked as a duplicate of this bug. ***

Comment 2 José Matos 2017-07-04 17:00:35 UTC
Taking care of the review.

According to fedora-review the package has the following issues:

- Provides: bundled(gnulib) in place as required.
  Note: Bundled gnulib but no Provides: bundled(gnulib)
  See:
  http://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Requirement_if_you_bundle
- All build dependencies are listed in BuildRequires, except for any that
  are listed in the exceptions section of Packaging Guidelines.
  Note: These BR are not needed: info
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
- Package uses either %{buildroot} or $RPM_BUILD_ROOT
  Note: Using both %{buildroot} and $RPM_BUILD_ROOT
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros

Could you comment/take care of this, please?

Comment 3 Dave Love 2017-07-06 15:23:46 UTC
Some comments, as I intended to get round to re-submitting this:

It needs
Requires(preun): info

The licence isn't installed, and there's an empty %doc.

It should run make check (and BR perl(Digest::MD5) perl(Digest::SHA) perl(Data::Dumper)).

I don't think the completion file should be %config.  [The packaging guide could use instructions for completions.]

Can I interest you in changes for completion installation on EPEL?

Comment 4 Hannes Frederic Sowa 2017-07-06 17:01:17 UTC
(In reply to José Matos from comment #2)
> Taking care of the review.
> 
> According to fedora-review the package has the following issues:
> 
> - Provides: bundled(gnulib) in place as required.
>   Note: Bundled gnulib but no Provides: bundled(gnulib)
>   See:
>  
> http://fedoraproject.org/wiki/Packaging:
> No_Bundled_Libraries#Requirement_if_you_bundle
> - All build dependencies are listed in BuildRequires, except for any that
>   are listed in the exceptions section of Packaging Guidelines.
>   Note: These BR are not needed: info
>   See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
> - Package uses either %{buildroot} or $RPM_BUILD_ROOT
>   Note: Using both %{buildroot} and $RPM_BUILD_ROOT
>   See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros
> 
> Could you comment/take care of this, please?

I will. Thanks for the review. I upload a new specs and srpm new.

I also should mention that this my first RPM in fedora, but I already found a sponsor (lrintel).

Comment 5 Hannes Frederic Sowa 2017-07-06 18:43:18 UTC
I updated the files in place.

I changed:

* removed info from BR
* added perl(Digest::MD5) perl(Digest::SHA) perl(Data::Dumper) to BR
* added Provides: bundled(gnulib) [do I need to include a version here? - rpmlint complains]
* added Requires(preun): info
* consistently using %{buildroot} instead of $RPM_BUILD_ROOT
* added %check make check
* bash_completion is not a %config file
* added license and doc files

Do I need to add a version to bundled(gnulib)? rpmlint complains right now.

rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=20366919
F25: https://koji.fedoraproject.org/koji/taskinfo?taskID=20366933

Could you have another look?

Dave, I would love to make this package compatible to EPEL. I am going to read into that but feel free to dump any links on me. :)

Thanks!

Comment 6 Dave Love 2017-07-07 12:07:24 UTC
(In reply to Hannes Frederic Sowa from comment #5)
> Do I need to add a version to bundled(gnulib)? rpmlint complains right now.

Yes, I noticed that.  You can't add a version, as it doesn't have one.
I'd just note/explain the error in the spec file.

You don't need to remove buildroot in %install these days, but it doesn't hurt.
Also the packaging guidelines say not to use macros like %_rm

> Dave, I would love to make this package compatible to EPEL. I am going to
> read into that but feel free to dump any links on me. :)

I'll attach a patch.  I realize it's only really for el6, but _I think_ the
location for completions should be changed on others, as in the patch.
Otherwise the diff is mostly moot.  (I don't know if using pkg-config is the right
way to get the completions directory.)  Handling completions should be in packaging guidelines.
You do need to own the completions directories with %dir anyhow, which I patched in.

Hope that helps, and apologies if I'm stepping on reviewer toes.

Comment 7 Dave Love 2017-07-07 12:08:24 UTC
Created attachment 1295270 [details]
spec patch

Comment 8 Hannes Frederic Sowa 2017-07-07 18:47:18 UTC
Hi,

(In reply to Dave Love from comment #6)
> (In reply to Hannes Frederic Sowa from comment #5)
> > Do I need to add a version to bundled(gnulib)? rpmlint complains right now.
> 
> Yes, I noticed that.  You can't add a version, as it doesn't have one.
> I'd just note/explain the error in the spec file.

According to rpm --whatprovides 'bundled(gnulib)' at least some libraries specify version attributes. I just couldn't figure out yet how they do it.

> You don't need to remove buildroot in %install these days, but it doesn't
> hurt.

Yep, I understood. I did it for grepability and cosmetic reasons. ;)

> Also the packaging guidelines say not to use macros like %_rm

I will change that.

> > Dave, I would love to make this package compatible to EPEL. I am going to
> > read into that but feel free to dump any links on me. :)
> 
> I'll attach a patch.  I realize it's only really for el6, but _I think_ the
> location for completions should be changed on others, as in the patch.
> Otherwise the diff is mostly moot.  (I don't know if using pkg-config is the
> right
> way to get the completions directory.)  Handling completions should be in
> packaging guidelines.
> You do need to own the completions directories with %dir anyhow, which I
> patched in.
> 
> Hope that helps, and apologies if I'm stepping on reviewer toes.

No no, any help is welcome. Thanks a lot for the patch. Can I just use it and apply it to my version? How can I attribute your help in the spec file correctly?

Thanks!

Comment 9 Dave Love 2017-07-10 14:48:24 UTC
Of course you can use the changes.  I don't think it's necessary to attribute changes from a review, and they're not copyright-significant.

Have you seen the discussion on fedora-devel about un-versioned bundled provides?

Comment 10 Hannes Frederic Sowa 2017-07-14 13:40:05 UTC
Sorry for the late reply. I was on the road for some time.

(In reply to Dave Love from comment #9)
> Of course you can use the changes.  I don't think it's necessary to
> attribute changes from a review, and they're not copyright-significant.
> 
> Have you seen the discussion on fedora-devel about un-versioned bundled
> provides?

I just added your patch to the spec file and refreshed the source rpm as well the spec file in its initial location.

Spec URL: http://people.redhat.com/~hsowa/datamash.spec
SRPM URL: http://people.redhat.com/~hsowa/datamash-1.1.1-1.fc25.src.rpm

F26: https://koji.fedoraproject.org/koji/taskinfo?taskID=20521975
F25: https://koji.fedoraproject.org/koji/taskinfo?taskID=20521994
EPEL7: https://koji.fedoraproject.org/koji/taskinfo?taskID=20522005
rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=20522110

I couldn't figure out which target is for epel6. :/

What do you think?

Comment 11 Hannes Frederic Sowa 2017-07-28 00:32:50 UTC
Ping. Dave, do you have any other comments?

Comment 12 Dave Love 2017-08-01 14:25:34 UTC
(In reply to Hannes Frederic Sowa from comment #11)
> Ping. Dave, do you have any other comments?

Not more that it builds on el6 (the koji el6-candidate target, though I used mock). I'm not the reviewer, though.

Comment 13 José Matos 2017-08-07 16:14:08 UTC
I am the reviewer. :-)

And I was happy to see the discussion.

One note, when you update the spec file you should update the release number.
That helps the reviewer (and is present in the guidelines for submission). Please do not forget that in a next submission.

For the moment I will review the version that you published in comment #10.

I will send the full review either today or tomorrow morning (UTC FWIW). :-)

Comment 14 José Matos 2017-08-08 11:26:32 UTC
The package is approved.
The details follow:

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

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


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Provides: bundled(gnulib) in place as required.
[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.
[x]: License field in the package spec file matches the actual license.
[-]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by:
     /usr/share/bash-completion
     (unar, kmod, licensecheck, libmbim, rpmdevtools,
     python2-pip, rpmlint, libqmi, ModemManager, bash-completion, tracker,
     yum, dnf, python3-pip, fedpkg, cmake-data, glib2, git-core, lightdm),
     /usr/share/bash-completion/completions(unar, kmod, licensecheck,
     libmbim, rpmdevtools, python2-pip, rpmlint, libqmi, ModemManager,
     firewalld, libappstream-glib, dnf, tracker, yum, bash-completion,
     python3-pip, fedpkg, cmake-data, glib2, git-core, lightdm)
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[ ]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf %{buildroot} present but not required
[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]: Texinfo files are installed using install-info in %post and %preun if
     package has .info files.
     Note: Texinfo .info file(s) in datamash
[x]: The spec file handles locales properly.
[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 71680 bytes in 7 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     datamash-debuginfo
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: 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]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define compdir %(pkg-config
     --exists bash-completion &&
[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.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 2396160 bytes in /usr/share
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: datamash-1.1.1-1.fc26.x86_64.rpm
          datamash-debuginfo-1.1.1-1.fc26.x86_64.rpm
          datamash-1.1.1-1.fc26.src.rpm
datamash.src:18: W: unversioned-explicit-provides bundled(gnulib)
datamash.src:9: W: mixed-use-of-spaces-and-tabs (spaces: line 9, tab: line 6)
3 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (debuginfo)
-------------------
Checking: datamash-debuginfo-1.1.1-1.fc26.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
2 packages and 0 specfiles checked; 0 errors, 0 warnings.



Requires
--------
datamash (rpmlib, GLIBC filtered):
    /bin/sh
    info
    libc.so.6()(64bit)
    libm.so.6()(64bit)
    rtld(GNU_HASH)

datamash-debuginfo (rpmlib, GLIBC filtered):



Provides
--------
datamash:
    bundled(gnulib)
    datamash
    datamash(x86-64)

datamash-debuginfo:
    datamash-debuginfo
    datamash-debuginfo(x86-64)



Source checksums
----------------
http://ftp.gnu.org/gnu/datamash/datamash-1.1.1.tar.gz :
  CHECKSUM(SHA256) this package     : 420819b3d7372ee3ce704add847cff7d08c4f8176c1d48735d4a632410bb801b
  CHECKSUM(SHA256) upstream package : 420819b3d7372ee3ce704add847cff7d08c4f8176c1d48735d4a632410bb801b


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

Comment 15 José Matos 2017-08-08 11:31:17 UTC
Now that the package is approved the author suggests that a new release (1.2) will follow soon. :-)

Comment 16 Hannes Frederic Sowa 2017-08-18 17:45:17 UTC
Jose, I assigned the ticket to you, it seems I need to do this for requesting a repository.

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

Comment 18 Dave Love 2017-12-14 21:01:55 UTC
Why hasn't this been finished off?  I was expecting to be able to install it.

Comment 19 Hannes Frederic Sowa 2017-12-14 22:41:46 UTC
Hi Dave, oh, I see it hadn't build for f27. I need to take care of that. It is in rawhide already though.

Comment 20 Dave Love 2017-12-18 19:36:06 UTC
I expected it to be built for all the current releases, and the review bug to get auto-closed.
(I was actually after it for EPEL.)

Comment 21 Hannes Frederic Sowa 2017-12-19 15:22:47 UTC
I just requested the appropriate branches (again). Let's see. I try to push them asap.

Comment 22 Filipe Rosset 2018-04-15 03:18:04 UTC
I requested branches for f26 and f27 (f28, epel7 and master are OK)

https://pagure.io/releng/fedora-scm-requests/issue/5949
https://pagure.io/releng/fedora-scm-requests/issue/5950

Comment 23 Filipe Rosset 2018-04-17 00:34:21 UTC
(In reply to Hannes Frederic Sowa from comment #21)
> I just requested the appropriate branches (again). Let's see. I try to push
> them asap.

Hi Hannes, I pushed to all current branches (master, f28, f27, f26 and epel7) and build an update to datamash-1.3

I think we can go ahead and close this ticket.

Comment 25 Hannes Frederic Sowa 2018-04-17 00:35:12 UTC
Thanks, Filipe, that is awesome of you!


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