Bug 715127

Summary: Review Request: abcMIDI - ABC to/from MIDI conversion utilities
Product: [Fedora] Fedora Reporter: Olivier Samyn <code>
Component: Package ReviewAssignee: Kevin Kofler <kevin>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: fedora-package-review, i, kevin, martin.gieseking, m.tarenskeen, notting, volker27
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-06 12:43:24 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Olivier Samyn 2011-06-21 18:41:27 EDT
This is an attempt to revive an orphan package. I started from the old abcMIDI spec and reworked it a little bit to match latest upstream releases.

This is my first package submission, and I will be happy to give some info about my motivations and background.

Spec URL: http://www.oleastre.be/fedora/abcMIDI.spec
SRPM URL: http://www.oleastre.be/fedora/abcMIDI-20110610-1.fc15.src.rpm
Description:
The abcMIDI package contains four programs: abc2midi to convert ABC
music notation to MIDI, midi2abc to convert MIDI files to (a first
approximation to) the corresponding ABC, abc2abc to reformat and/or
transpose ABC files, and yaps to typeset ABC files as PostScript.

For a description of the ABC syntax, please see the ABC user guide
which is a part of the abcm2ps.
Comment 1 Volker Fröhlich 2011-06-26 18:32:48 EDT
Please append a slash to the URL, otherwise you gets a 503.

If you don't want to maintain this package in EPEL5 or older, remove Buildroot, the first rm in the install section.

The FSF address is not up to date. This is not a blocker, but please inform upstream.

Please use -p with install to preserve timestamps.

The defattr line is no longer needed.

Rather use %{_mandir}/man1/*, as you only install man1 pages. You can also be more specific in the files section, so you don't package stuff inadvertently. But this is rather unlikely in the case of this package.

Is the content of doc/programming of no interest?

"# remove executable flag from text files" -- There are none, so you can remove that.

doc/CHANGES has Unix EOL. So has VERSION.
Comment 2 Olivier Samyn 2011-06-28 18:07:56 EDT
I updated the spec and src.rpm files at the same place.

Changes:
- Updated URL
- Removed the BuildRoot, defattr and executable flag lines.
- Added -p to all install commands.
- Use %{_mandir}/man1/* in the %files section
- Removed VERSION file from the EOL modification list

I will inform upstream that the FSF address is an old one and that I started the packaging process for fedora.

The doc/programming content describes the way the source code is written. From my point of view, it is only interesting if you are reading the program source (and so in the src.rpm).
Comment 3 Volker Fröhlich 2011-06-28 18:40:27 EDT
Aha, I see.

Please don't update at the same place, but make a new release next time. The changelog should go to the file as well!

rm -rf $RPM_BUILD_ROOT and the clean section are useless too.

http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#BuildRoot_tag
http://fedoraproject.org/wiki/Packaging:Guidelines#.25clean

Did you avoid "make install" for a specific reason?
Comment 4 Olivier Samyn 2011-06-28 20:08:29 EDT
As I started from an existing spec file, I just adapted it to the latest upstream source code, without removing historic stuff (like %clean or BuildRoot), nor checking if make install should be used instead of manual install.
(I started from the latest spec at http://pkgs.fedoraproject.org/gitweb/?p=abcMIDI.git)

I created a new version located at:
http://www.oleastre.be/fedora/abcMIDI/2/abcMIDI.spec
http://www.oleastre.be/fedora/abcMIDI/2/abcMIDI-20110610-1.fc15.src.rpm

This one uses make install.
There is one problem, with the current upstream makefile: it concatenates prefix and other variables, like docdir or mandir. So I cannot use the rpm macros %{docdir} or %{_mandir} for those.
Comment 5 Volker Fröhlich 2011-06-29 18:24:51 EDT
OK, you got me wrong about the "place". Whenever you publish a new version of your package, increment the release number. It makes it easier for the reviewer.

You can drop "prefix=%{_prefix} docdir=share/doc/%{name}-%{version}" on the make call. Having it only on "make install" works. "all" is the default build target, so you can also omit that.

These are, of course, no blockers.

Concerning the docs, you could just make it:



make install DESTDIR=%{buildroot} prefix=%{_prefix}

# Install it with doc macro later
rm -rf %{buildroot}%{_docdir}



The %doc macro should take care of it. There may be better solutions though.
Comment 6 Olivier Samyn 2011-07-02 20:43:23 EDT
New version at:
http://www.oleastre.be/fedora/abcMIDI/4/abcMIDI.spec
http://www.oleastre.be/fedora/abcMIDI/4/abcMIDI-20110610-4.fc15.src.rpm

I simplified the make calls, and I bumped the package version up to 4.
I added, in the changelog, package versions 2 and 3 to reflect the changes made on the 28th of June.
Comment 7 Martin Gieseking 2011-07-18 03:54:20 EDT
Here are some further comments:

- Please preserve the timestamps during the conversion of file encodings, 
  e.g. with

  for f in doc/*.txt samples/*.abc doc/AUTHORS; do
    sed 's/\r//' $f >$f.new
    touch -r $f $f.new
    mv $f.new $f
  done 

- Don't mix macros and variables when using $RPM_OPT_FLAGS, $RPM_BUILD_ROOT,
  %{optflags}, or %{buildroot}. Choose one variant and stick with it. 

  For example, replace $RPM_OPT_FLAGS with %{optflags} in the %build section.

- Please be a bit more verbose in %files to avoid adding unwanted files and
  to help getting an overview of what's actually been packaged, e.g.
  %{_bindir}/abc*
  %{_bindir}/midi*
  %{_bindir}/mftext
  %{_bindir}/yaps
  %{_mandir}/man1/*.1*

- The %description mentions four programs provided by the package, but there
  are seven: abc2abc, abc2midi, abcmatch, mftext, midi2abc, midicopy, yaps
  Maybe you can add short descriptions of the three missing ones.

- Ask upstream to update the FSF address in gpl.txt and the source headers
  according to http://www.gnu.org/licenses/gpl-2.0.html

$ rpmlint abcMIDI-*.rpm
abcMIDI.x86_64: E: incorrect-fsf-address /usr/share/doc/abcMIDI-20110610/gpl.txt
abcMIDI.x86_64: W: no-manual-page-for-binary abcmatch
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/parseabc.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/pslib.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/yapstree.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/position.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/drawtune.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/toabc.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/midi2abc.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/genmidi.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/store.c
abcMIDI-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/abcmidi/queues.c
2 packages and 0 specfiles checked; 11 errors, 1 warnings.
Comment 8 Olivier Samyn 2011-08-09 17:06:07 EDT
Message sent to upstream for the fsf address problem.

I updated the version to the latest upstream one: 2011-08-07.
Note the upstream switched to autoconf, so the build process is simplified.

And I integrated the latest comments.

New package version:
http://www.oleastre.be/fedora/abcMIDI/20110807-1/abcMIDI.spec
http://www.oleastre.be/fedora/abcMIDI/20110807-1/abcMIDI-20110807-1.fc15.src.rpm
Comment 9 Martin Gieseking 2011-08-10 02:01:56 EDT
OK, please also add your email address to the last two %changelog entries.

In order to show an understanding of the packaging guidelines, you should do a few informal reviews of other packager's submissions. When you're added to the packager group, you are allowed to review and approve packages. Thus, you should familiarize yourself with the process and practice a little bit. This also helps to attract potential sponsors. :)

For further information have a look at the following wiki pages:
http://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group
https://fedoraproject.org/wiki/Packaging:ReviewGuidelines
Comment 10 Olivier Samyn 2011-08-10 17:47:17 EDT
E-mail address added and corrected fsf address (thanks to Seymour Shlien, the project maintainer)

New packages available at:
http://www.oleastre.be/fedora/abcMIDI/20110810-1/abcMIDI.spec
http://www.oleastre.be/fedora/abcMIDI/20110810-1/abcMIDI-2011-08-10.zip
Comment 11 Volker Fröhlich 2011-12-13 14:35:44 EST
Did you find a sponsor yet?
Comment 12 Olivier Samyn 2011-12-14 06:51:08 EST
I did not actively searched for a sponsor (and so did not already found one).

And I still have to update this package to the latest abcMIDI version for Fedora 16 ( it's in my todo list before the end of this year).
Comment 13 Volker Fröhlich 2012-03-13 16:37:11 EDT
How's it going?
Comment 14 Volker Fröhlich 2012-05-20 17:18:17 EDT
Oliver, are you still interested? If not, I'd like to close this issue.
Comment 15 Olivier Samyn 2012-05-21 05:28:17 EDT
I'm still interested in getting back abcMIDI into fedora as a package.

And I updated my spec file to the latest abcMIDI version.
http://www.oleastre.be/fedora/abcMIDI/20120415-1/
Comment 16 Volker Fröhlich 2012-05-21 06:10:57 EDT
Please always post direct links to spec and srpm.

Are you having difficulties in finding a sponsor?
Comment 17 Kevin Kofler 2012-07-22 16:46:46 EDT
I'll take up the sponsoring.
Comment 18 Volker Fröhlich 2012-07-25 18:28:33 EDT
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST Package does not contain any libtool archives (.la)
[x]: MUST Package does not contain kernel modules.
[x]: MUST Package contains no static executables.
[x]: MUST Rpath absent or only used for internal libs.
[x]: MUST Package is not relocatable.


==== Generic ====
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[-]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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]: MUST License field in the package spec file matches the actual license.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[-]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[-]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint output is silent.

rpmlint abcMIDI-20120415-1.fc18.i686.rpm

abcMIDI.i686: W: spelling-error %description -l en_US abc -> ABC, ab, ac
abcMIDI.i686: W: no-manual-page-for-binary abcmatch
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

While a manpage would be fine, it poses no problem to the review.

rpmlint abcMIDI-debuginfo-20120415-1.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint abcMIDI-20120415-1.fc18.src.rpm

abcMIDI.src: W: spelling-error %description -l en_US mftext -> teletext
abcMIDI.src: W: spelling-error %description -l en_US abcmatch -> match
abcMIDI.src: W: spelling-error %description -l en_US abc -> ABC, ab, ac
abcMIDI.src: W: spelling-error %description -l en_US midicopy -> midi copy, midi-copy, microscopy
abcMIDI.src:68: W: macro-in-%changelog %{optflags}
abcMIDI.src:70: W: macro-in-%changelog %files
abcMIDI.src:76: W: macro-in-%changelog %clean
abcMIDI.src:83: W: macro-in-%changelog %{_mandir}
abcMIDI.src:83: W: macro-in-%changelog %files
abcMIDI.src: W: invalid-url Source0: http://ifdo.pugmarks.com/~seymour/runabc/abcMIDI-2012-04-15.zip HTTP Error 404: Not Found
1 packages and 0 specfiles checked; 0 errors, 10 warnings.

You can mask the macros with a percent sign, but it doesn't matter.

[!]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/tmp/abcMIDI-2012-04-15.zip :
  MD5SUM this package     : ae9ff0a1406e46d07a41e7d90ae1698b
  MD5SUM upstream package : d41d8cd98f00b204e9800998ecf8427e

The latter is an artifact of the zip file not being found.

[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[-]: SHOULD 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]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.

Haven't really tried. The binaries at least don't crash immediately, when you run them.

[!]: SHOULD Latest version is packaged.

There's a newer version by now. Sadly the author removes the source archive of former releases.

[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Rpmlint output is silent.

rpmlint abcMIDI-20120415-1.fc18.i686.rpm

abcMIDI.i686: W: spelling-error %description -l en_US abc -> ABC, ab, ac
abcMIDI.i686: W: no-manual-page-for-binary abcmatch
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint abcMIDI-debuginfo-20120415-1.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint abcMIDI-20120415-1.fc18.src.rpm

abcMIDI.src: W: spelling-error %description -l en_US mftext -> teletext
abcMIDI.src: W: spelling-error %description -l en_US abcmatch -> match
abcMIDI.src: W: spelling-error %description -l en_US abc -> ABC, ab, ac
abcMIDI.src: W: spelling-error %description -l en_US midicopy -> midi copy, midi-copy, microscopy
abcMIDI.src:68: W: macro-in-%changelog %{optflags}
abcMIDI.src:70: W: macro-in-%changelog %files
abcMIDI.src:76: W: macro-in-%changelog %clean
abcMIDI.src:83: W: macro-in-%changelog %{_mandir}
abcMIDI.src:83: W: macro-in-%changelog %files
abcMIDI.src: W: invalid-url Source0: http://ifdo.pugmarks.com/~seymour/runabc/abcMIDI-2012-04-15.zip HTTP Error 404: Not Found
1 packages and 0 specfiles checked; 0 errors, 10 warnings.


See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint
[!]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/tmp/abcMIDI-2012-04-15.zip :
  MD5SUM this package     : ae9ff0a1406e46d07a41e7d90ae1698b
  MD5SUM upstream package : d41d8cd98f00b204e9800998ecf8427e

See: http://fedoraproject.org/wiki/Packaging/SourceURL


Generated by fedora-review 0.1.3

I'm not entirely sure about the versioning scheme, but I think it should be fine.

There are a couple of warnings I noticed:

warning: cast from pointer to integer of different size
warning: cast to pointer from integer of different size -- Both in various places
warning: enumeration value 'nostem' not handled in switch [-Wswitch]

Some tiny improvements:

I don't know the software, but including the pt directory as documentation could be useful.
Enumerations should not have periods. Please remove them from the description.

Please package the latest version when you check in the package.
Comment 19 Volker Fröhlich 2012-07-26 11:30:28 EDT
Oh, please use the name macro in Source0.
Comment 20 Volker Fröhlich 2012-09-30 14:17:19 EDT
Olivier, are you still interested? If not, I'll close the ticket.
Comment 21 Martin Tarenskeen 2012-11-22 02:02:28 EST
I was searching for abcMIDI in Fedora and found this thread. I have been using it for years, building from latest upstream sources. I was surprised to see abcm2ps in Fedora but not abcMIDI. Olivier's original review request was from 2012-06-21. Is it that difficult to get this one ready and accepted for Fedora?
(OT: Fedora's abcm2ps is not quite up-to-date either ...)
Comment 22 Volker Fröhlich 2012-11-22 17:35:13 EST
Martin, did you also read it?
Comment 23 Martin Tarenskeen 2012-11-22 19:05:10 EST
Sort of. But all I wanted to know is if/when it will be available (again) in Fedora.

For the time being I am happy with my own builds.
Comment 24 Kevin Kofler 2013-05-06 12:43:24 EDT
Submitter lost interest, closing.
Comment 25 Christopher Meng 2015-08-26 23:52:11 EDT

*** This bug has been marked as a duplicate of bug 1257410 ***