Bug 1129220 - Review Request: bash-argsparse - An high level argument parsing library for bash
Summary: Review Request: bash-argsparse - An high level argument parsing library for...
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Haïkel Guémar
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2014-08-12 10:43 UTC by Dams
Modified: 2014-11-07 07:06 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2014-11-07 07:06:41 UTC
karlthered: fedora-review+
gwync: fedora-cvs+

Attachments (Terms of Use)

Description Dams 2014-08-12 10:43:54 UTC
Spec URL: https://raw.githubusercontent.com/Anvil/bash-argsparse/35cf491ea1b0e431a3602f0715cb82eccb22869d/bash-argsparse.spec
SRPM URL: (sha256)
274fa27d94907080bfb757a12f58e75fea284f1fef96c94b3cd8093325cc5c03  http://argsparse.livna.org/bash-argsparse-1.6-0.fc20.src.rpm


An high level argument parsing library for bash.

The purpose is to replace the option-parsing and usage-describing
functions commonly rewritten in all scripts.

This library is implemented for bash version 4. Prior versions of bash
will fail at interpreting that code.

Fedora Account System Username: anvil

Comment 1 Dams 2014-08-12 10:49:21 UTC
Sorry about that : updated spec file (removes 2 rpmlint warnings) 

Spec URL : https://raw.githubusercontent.com/Anvil/bash-argsparse/bc1ebd761085d4605aec590e2e2a36f453809e05/bash-argsparse.spec

Comment 2 Dams 2014-08-12 11:02:44 UTC
New Spec URL : https://raw.githubusercontent.com/Anvil/bash-argsparse/d639935c6c23093355b894fd7c9775187b8dcd44/bash-argsparse.spec
New SRPMS URL : 571a15fc1debc7e8808f5c52beb426d38feff23b41c4d582637615349babc66e  http://argsparse.livna.org/bash-argsparse-1.6-1.fc20.src.rpm

- Removed BuildRoot tag (no need for EPEL5 support since RHEL only has bash3).
- Requiring commands instead of packages.

Comment 3 Haïkel Guémar 2014-09-07 09:10:56 UTC
I can't retrieve the src.rpm, livna.org is apparently down.
Until now, spec looks good, the library works as expected.

Comment 4 Dams 2014-09-08 08:59:37 UTC
Sorry about, that. Unexpected server outage. Should work now.

Comment 5 Haïkel Guémar 2014-09-08 10:09:47 UTC
You're not allowed to use IPoT ! ;)
There's a typo in the latest changelog entry in the date => 2*9*14

Comment 6 Dams 2014-09-08 12:37:59 UTC
Yes, I've noticed. It's fixed in the githup copy. ( https://github.com/Anvil/bash-argsparse/blob/master/bash-argsparse.spec )

But, I was expecting more remarks to fix before rolling a new package. :-)

Comment 7 Dams 2014-09-15 07:01:48 UTC
Please consider this updated spec file & srpm : 
* https://raw.githubusercontent.com/Anvil/bash-argsparse/8694d1fa89dd74e80cab0342761e581710704319/bash-argsparse.spec
* SRPM : (sha256)

It only brings the changelog date fix.

Comment 8 hguemar 2014-10-08 07:35:04 UTC
Does not build in mock/koji

There are failure during documentation generation

Comment 9 Dams 2014-10-08 11:40:00 UTC
I see. It's an issue with the unittest script.

Koji does not run in a "common" interactive environment (no terminal, no network, no /dev/log socket...), so I've updated the unittest script in bash-argsparse git to take care of these parameters.

Here is an updated srpm, which includes those changes
sha256sum : 
73773f5a734222fd38369936235e189c355f88f509c042e97087d9baab5c292c  http://argsparse.livna.org/bash-argsparse-1.6-3.fc20.src.rpm

If it still does not build, I'll temporary remove the %check section until I can figure this out by myself without wasting other people time.

Comment 10 Dams 2014-10-09 18:14:49 UTC
Alright, so it need a few more tweaking but I made it build on koji.

* The SRPMS with its sha256 :
0a96184f6f0892f43a115a6934bfbedf376fc5d58868b20eb63ef2c214d68f21  http://argsparse.livna.org/bash-argsparse-1.6.1-1.fc20.src.rpm
* The spec file :
* The koji build --scratch task : 

Hopefully this will be the end of it :-)

Comment 11 Dams 2014-10-15 18:01:27 UTC
Due to a dual bug in both bash ( which was actually fun to trace and report: http://lists.gnu.org/archive/html/bug-bash/2014-10/msg00160.html ) and the unittest script (patch is inside the srpm), the build was failing in both fedora 21 and 22 which have bash 4.3 (while fedora 20 has bash 4.2).

This updated package & spec file build in all 3 fedora 20+ releases. 

1f4d7a609b8cc675740fd744cb1504d638cb31355eb4bfa42418f143d29e658a  http://argsparse.livna.org/bash-argsparse-1.6.1-2.fc20.src.rpm
97e12a91a769efcad4d8724c58237336f75d878653edefe8d66f09b3ad70b363  http://argsparse.livna.org/bash-argsparse.spec


Comment 12 Haïkel Guémar 2014-10-23 07:28:56 UTC
Since this package complies with Fedora Packaging guidelines, I hereby approve it into Fedora Packages Collection. Please submit a scm request.

Then, you're sponsored into the packager group, welcome back :)

Package Review

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

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

[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "WTFPL". Detailed output of licensecheck in /home/haikel/1129220-bash-
[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).
[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]: 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 245760 bytes in 51 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 %doc.
[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]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: 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
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[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
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

[-]: 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.
[-]: 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
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[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
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

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

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

Checking: bash-argsparse-1.6.1-2.fc22.noarch.rpm
bash-argsparse.noarch: W: no-manual-page-for-binary argsparse.sh
bash-argsparse.noarch: W: no-manual-page-for-binary argsparse
2 packages and 0 specfiles checked; 0 errors, 2 warnings.

Rpmlint (installed packages)
# rpmlint bash-argsparse
bash-argsparse.noarch: W: no-manual-page-for-binary argsparse.sh
bash-argsparse.noarch: W: no-manual-page-for-binary argsparse
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
# echo 'rpmlint-done:'

bash-argsparse (rpmlib, GLIBC filtered):


Source checksums
http://argsparse.livna.org/bash-argsparse-1.6.1.tar.gz :
  CHECKSUM(SHA256) this package     : 57bc4668e436fbc654ff62dff1d81ebee663774c78f17837ec73f349deaf00c8
  CHECKSUM(SHA256) upstream package : 57bc4668e436fbc654ff62dff1d81ebee663774c78f17837ec73f349deaf00c8

Comment 13 Dams 2014-10-23 10:38:38 UTC
Thank you very much !

Comment 14 Dams 2014-10-23 10:46:15 UTC
New Package SCM Request
Package Name: bash-argsparse
Short Description: An high level argument parsing library for bash
Upstream URL: https://github.com/Anvil/bash-argsparse
Owners: anvil
Branches: f20 f21 el6 epel7

Comment 15 Gwyn Ciesla 2014-10-23 12:27:41 UTC
Git done (by process-git-requests).

Comment 16 Dams 2014-11-07 07:06:41 UTC
The package has entered fedora 20 and fedora 21 (beta) stable repositories. It's still in testing for epel6/7, but I think we can close the bug entry. Thank you Haïkel !

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