Bug 906486 - Review Request: erlang-parsexml - Simple DOM XML parser with convenient and very simple API
Summary: Review Request: erlang-parsexml - Simple DOM XML parser with convenient and v...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jos de Kloe
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 918587
TreeView+ depends on / blocked
 
Reported: 2013-01-31 17:23 UTC by Peter Lemenkov
Modified: 2013-10-29 18:20 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-10-29 18:20:57 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Peter Lemenkov 2013-01-31 17:23:50 UTC
Spec URL: http://peter.fedorapeople.org/erlyvideo/erlang-parsexml.spec
SRPM URL: http://peter.fedorapeople.org/erlyvideo/erlang-parsexml-0-0.1.20121126.fc19.src.rpm
Description: Simple DOM XML parser with convenient and very simple API
Fedora Account System Username: peter

Thats a very fast (but fragile) XML parser. If your business logic allows you to pbey let-it-fail rule then this is a proper tool for XML parsing. If not (you absolutely need to survive when a connected client sends you a garbage) then you should choose something else.

Koji scratchbuild for Rawhide:

* http://koji.fedoraproject.org/koji/taskinfo?taskID=4917999

Also this is one of the requirements for Erlyvideo.

Comment 1 Jos de Kloe 2013-03-14 16:23:26 UTC
This package builds fine.
The rpmlint results show an error and 2 warnings.

Rpmlint
-------
Checking: erlang-cowboy-0.6.1-1.fc18.x86_64.rpm
erlang-cowboy.x86_64: E: no-binary
erlang-cowboy.x86_64: W: only-non-binary-in-usr-lib
erlang-cowboy.x86_64: W: file-not-utf8 /usr/share/doc/erlang-cowboy-0.6.1/doc/overview.edoc
1 packages and 0 specfiles checked; 1 errors, 2 warnings.

The no-binary thing has been discussed before for erlang packages (see for example this bug #906473) and can be ignored.

So only the not-utf8 thing should be fixed.
A fix is documented here:
https://fedoraproject.org/wiki/Common_Rpmlint_issues#file-not-utf8

After that, I'll be happy to do the review.

Comment 2 Jos de Kloe 2013-03-14 16:25:30 UTC
sorry, the above comment should have been added to bug #906481. That's the risc if you have several bugs open in several tabs in your browser ...
I'll repost it in a minute.

Comment 3 Jos de Kloe 2013-03-14 16:46:37 UTC
Two small issues for this package:

-the rebar executable is part of the source package.
 To make sure the proper fedora copy in /usr/bin/rebar from the
 erlang-rebar package is used, I think it is best to delete the
 rebar copy delivered in this package before starting the build.

-there is no license file in the package, and I don't see license
 information in the upstream repository (but maybe I overlooked it?).
 Could you please inquire upstream what the license status is, and
 ask them to include a license file, or in case it is hidden somewhere,
 post the proper URL to it so I can review it.

Comment 4 Jos de Kloe 2013-04-18 09:06:37 UTC
Hi Peter,

did you already have a chance to look into this one?

Comment 5 Peter Lemenkov 2013-04-18 09:08:34 UTC
(In reply to comment #4)
> Hi Peter,
> 
> did you already have a chance to look into this one?

Hello Jos!

I terribly terribly sorry for leaving you alone here for a very long time. I'll provide a new build shortly - please wait for a few hours more.

Comment 6 Peter Lemenkov 2013-04-18 09:25:19 UTC
(In reply to comment #3)
> Two small issues for this package:
> 
> -the rebar executable is part of the source package.
>  To make sure the proper fedora copy in /usr/bin/rebar from the
>  erlang-rebar package is used, I think it is best to delete the
>  rebar copy delivered in this package before starting the build.

Done.

> -there is no license file in the package, and I don't see license
>  information in the upstream repository (but maybe I overlooked it?).
>  Could you please inquire upstream what the license status is, and
>  ask them to include a license file, or in case it is hidden somewhere,
>  post the proper URL to it so I can review it.

I asked him to include copy of the License (or provide any other licensing info). here is a transcript of our conversation regarding the license (in Russian, sorry):

===================

0:04 я: хех
слушай, Макс, а ты parsexml под какой лицензией распространяешь? я откуда-то взял, что BSD, но никак не могу найти, с чего это я так решил было

0:05 Max: BSD, конечно
  мне стоит внести это в README, безусловно
  это самый удобный XML парсер, который я смог найти =)
  но он ограничен, безусловно, не умеет многих нахер ненужных штук

0:05 я: да, пожалуйста напиши, если не сложно
  а то там вообще никаких следов о лицензии - ни в хидерах исходников, нив ридми, нигде

0:05 Max: ога
  но ты не ссы
  я добавлю

0:05 я: да я то не парюсь особо - меня в Fedora опять спрашивают :)

0:05 Max: ага, ок
  BSD добавлю, да

0:07 я: ок, спасибо

===================

Sorry for the obscene words - he is my friend and we don't chat as polite and well-mannered gentlemen, but rather as a two buddies.

So I can ensure you it's indeed licensed under BSD.

New package:

* http://peter.fedorapeople.org/erlyvideo/erlang-parsexml.spec
* http://peter.fedorapeople.org/erlyvideo/erlang-parsexml-0-0.2.20121126.fc19.src.rpm

Comment 7 Jos de Kloe 2013-04-20 10:17:13 UTC
Hi Peter,

my russian is not very strong, but google is your friend in these cases, and looking at google's translation I am happy with this reply. Don't worry about the language, I am not so easily offended.

Mock and Koji tests ran fine. Koji results are here:
  http://koji.fedoraproject.org/koji/taskinfo?taskID=5281760

Thanks for your updated package. Looking at the review results there are 2 should issues still open:

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

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


Issues:
=======
- License field in the package spec file matches the actual license.
  Note: Checking patched sources after %prep for licenses. No licenses found.
  Please check the source files for licenses manually.
  See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames

As for example mentioned here:
  https://bugzilla.redhat.com/show_bug.cgi?id=953379
a BSD license requires the license text to be part of the software, so
if upstream doesn't supply it, the packager should do so.
Could you please add this license file?

Note that the same thing applies to erlang_mimetypes
  https://bugzilla.redhat.com/show_bug.cgi?id=906482
(which has already been approved)

- timestamps are not preserved in install step, see comment below

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

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]: %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.
[-]: Development files must be in a -devel package
[-]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package complies to the Packaging Guidelines
[-]: 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 consistently uses macro is (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]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[-]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 20480 bytes in 9 files.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[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]: Fully versioned dependency in subpackages, if present.
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[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
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local
[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).

===== 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.
[-]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[-]: 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.
[!]: Packages should try to preserve timestamps of original installed files.
==>needs work, i.e. add '-p' option to install step

[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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
==>manually tested retrieving upstream source, and this seems fine to me.
[x]: Spec use %global instead of %define.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[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: erlang-parsexml-0-0.2.20121126.fc18.x86_64.rpm
erlang-parsexml.x86_64: E: no-binary
erlang-parsexml.x86_64: W: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 1 errors, 1 warnings.

==>the no-binary error is a known 'feature'  for erlang packages
   and can safely be ignored. The following warning is related to this.


Rpmlint (installed packages)
----------------------------
# rpmlint erlang-parsexml
erlang-parsexml.x86_64: E: no-binary
erlang-parsexml.x86_64: W: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 1 errors, 1 warnings.
# echo 'rpmlint-done:'



Requires
--------
erlang-parsexml (rpmlib, GLIBC filtered):
    erlang-erts(x86-64)
    erlang-eunit(x86-64)
    erlang-stdlib(x86-64)



Provides
--------
erlang-parsexml:
    erlang-parsexml
    erlang-parsexml(x86-64)



Generated by fedora-review 0.4.0 (660ce56) last change: 2013-01-29
Buildroot used: fedora-18-x86_64
Command line :/bin/fedora-review -b 906486 -m fedora-18-x86_64

Comment 8 Jos de Kloe 2013-04-20 10:21:01 UTC
Hi Peter,

my russian is not very strong, but google is your friend in these cases, and looking at google's translation I am happy with this reply. Don't worry about the language, I am not so easily offended.

Mock and Koji tests ran fine. Koji results are here:
  http://koji.fedoraproject.org/koji/taskinfo?taskID=5281760

Thanks for your updated package. Looking at the review results there are 2 should issues still open:

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

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


Issues:
=======
- License field in the package spec file matches the actual license.
  Note: Checking patched sources after %prep for licenses. No licenses found.
  Please check the source files for licenses manually.
  See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames

As for example mentioned here:
  https://bugzilla.redhat.com/show_bug.cgi?id=953379
a BSD license requires the license text to be part of the software, so
if upstream doesn't supply it, the packager should do so.
Could you please add this license file?

Note that the same thing applies to erlang_mimetypes
  https://bugzilla.redhat.com/show_bug.cgi?id=906482
(which has already been approved)

- timestamps are not preserved in install step, see comment below

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

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]: %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.
[-]: Development files must be in a -devel package
[-]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package complies to the Packaging Guidelines
[-]: 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 consistently uses macro is (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]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[-]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 20480 bytes in 9 files.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[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]: Fully versioned dependency in subpackages, if present.
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[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
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local
[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).

===== 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.
[-]: Package does not include license text files separate from upstream.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[-]: 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.
[!]: Packages should try to preserve timestamps of original installed files.
==>needs work, i.e. add '-p' option to install step

[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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
==>manually tested retrieving upstream source, and this seems fine to me.
[x]: Spec use %global instead of %define.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[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: erlang-parsexml-0-0.2.20121126.fc18.x86_64.rpm
erlang-parsexml.x86_64: E: no-binary
erlang-parsexml.x86_64: W: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 1 errors, 1 warnings.

==>the no-binary error is a known 'feature'  for erlang packages
   and can safely be ignored. The following warning is related to this.


Rpmlint (installed packages)
----------------------------
# rpmlint erlang-parsexml
erlang-parsexml.x86_64: E: no-binary
erlang-parsexml.x86_64: W: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 1 errors, 1 warnings.
# echo 'rpmlint-done:'



Requires
--------
erlang-parsexml (rpmlib, GLIBC filtered):
    erlang-erts(x86-64)
    erlang-eunit(x86-64)
    erlang-stdlib(x86-64)



Provides
--------
erlang-parsexml:
    erlang-parsexml
    erlang-parsexml(x86-64)



Generated by fedora-review 0.4.0 (660ce56) last change: 2013-01-29
Buildroot used: fedora-18-x86_64
Command line :/bin/fedora-review -b 906486 -m fedora-18-x86_64

Comment 9 Jos de Kloe 2013-10-10 11:20:52 UTC
Hi Peter,

do you still wish to package this one?
The only remaining issue is the licensing thing. The different BSD variants clearly state that

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

so either upstream must add the license, or after agreeing with them, you could patch the software to contain the appropriate license text, as is stated here:
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text

Best regards,

Jos.

Comment 10 Peter Lemenkov 2013-10-29 18:20:57 UTC
Hello All!

Unfortunately the main developer of Erlyvideo decided to discontinue releasing opensource version of his application so I'm no longer interested in working on it. Jos, Christopher, I'm sorry for the time you spent here reviewing this.


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