Bug 587315 - Review Request: pmars - Portable corewar system with ICWS'94 extensions
Review Request: pmars - Portable corewar system with ICWS'94 extensions
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
All Linux
low Severity medium
: ---
: ---
Assigned To: Susi Lehtola
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2010-04-29 11:22 EDT by Gwyn Ciesla
Modified: 2010-05-11 15:38 EDT (History)
4 users (show)

See Also:
Fixed In Version: pmars-0.9.2-4.fc12
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2010-05-10 19:52:42 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
susi.lehtola: fedora‑review+
kevin: fedora‑cvs+

Attachments (Terms of Use)

  None (edit)
Description Gwyn Ciesla 2010-04-29 11:22:46 EDT
pMARS is a Memory Array Redcode Simulator (MARS) for Core War.

    * portable, run it on your Mac at home or VAX at work
    * free and comes with source
    * core displays for DOS, Mac and UNIX
    * implements a new redcode dialect, ICWS'94, while remaining compatible
      with ICWS'88
    * powerful redcode extensions: multi-line EQUates, FOR/ROF text repetition
    * one of the fastest simulators written in a high level language
    * full-featured, programmable debugger
    * runs the automated tournament "KotH" at http://www.koth.org and
      http://www.ecst.csuchico.edu/~pizza/koth/ and the annual ICWS tournaments

SRPM: http://zanoni.jcomserv.net/fedora/pmars/pmars-0.9.2-1.fc12.src.rpm
SPEC: http://zanoni.jcomserv.net/fedora/pmars/pmars.spec
Comment 1 Takanori MATSUURA 2010-04-30 06:45:40 EDT
This is informal review.  formal review will follow.

Critical issue:
This program requires
in the file xwindisp.c.  But proper fonts are required in the spec file.
Please add the proper font package to Requires or change the required font if the proper font doesn't exit in Fedora packages.

Need to be fixed:
pmars.6 duplicates. Please remove %doc one.

Lists confirmed:
+ rpmlint returns no error with spec file.
+ rpmlint returns three spelling-error warnings with SRPM file.  But the words pointed by rpmlint are from original README file and seem to be no problem.
+ Spec file name meets Packaging Guidelines.
+ License: GPLv2+ meets Licensing Guidelines and the binary package includes license text file.
+ Spec file is legible.
+ Source file match with upstream one with md5sum and sha1sum.
+ Source file is available from the URL at Source0.
+ Success to build binary package on Fedora 12 x86_64.
+ Success to build binary package with mock which follows all build dependencies must be listed in BuildRequires

Other items shown the URL below seems to be good.
Comment 2 Takanori MATSUURA 2010-04-30 07:50:18 EDT
xorg-x11-fonts-75dpi may have the font.
Comment 4 Susi Lehtola 2010-05-06 01:08:42 EDT
Comment 5 Susi Lehtola 2010-05-06 01:24:30 EDT
- Summary seems to be misspelled: "corewar" vs. "Core War" in %description.

- Add a comment about the patch in the spec file. E.g.
 # Patch to disable stripping of binary in spec file
 Patch0: pmars-0.9.2-nostrip.patch

- Please also get rid of the @ in front of the CC commands in the Makefile, so that the used compiler commands are actually shown.

- I suggest making a backup of the patched files, i.e. changing to
 %patch0 -p1 -b .nostrip

- You are using %{buildroot}, so use %{optflags} instead of $RPM_OPT_FLAGS.

- The %build line can be written more shortly as
 make -C src CFLAGS="%{optflags} -DEXT94 -DXWINGRAPHX -DPERMUTATE"
Note that here I have dropped the -O flag, which will conflict with the Fedora flags. Also, if you move the CFLAGS definition here, it will override any CFLAGS definition in the makefile.

- Please preserve time stamps in %install. Also, you can be more terse:

 rm -rf %{buildroot}
 install -D -p -m 755 src/pmars %{buildroot}%{_bindir}/pmars
 install -D -p -m 644 doc/pmars.6 %{buildroot}%{_mandir}/man6/pmars.6

Removing files from the build directory in %install is bad behavior, since then one cannot use a short circuit build. Switching to a temporary directory

 # Make temporary doc dir
 rm -rf doc_install
 cp -a doc doc_install
 rm doc_install/doc/pmars.6

and using that one in %files will do the trick 

 %doc doc_install/doc/

- Please be more verbose in %files. I abhor statements like
since one doesn't really know what gets pulled in. Especially here, when there is only one file. So just
will do fine (the file will be compressed by rpm, but the compression format might change in the future).

After you have addressed these issues I will perform the full review.
Comment 7 Susi Lehtola 2010-05-06 11:51:32 EDT
rpmlint output:

$ rpmlint pmars-*
pmars.src: W: spelling-error Summary(en_US) corewar -> core war, core-war, forewarn
pmars.src: W: spelling-error %description -l en_US corewar -> core war, core-war, forewarn
pmars.src: W: spelling-error %description -l en_US redcode -> red code, red-code, redcoat
pmars.src: W: spelling-error %description -l en_US multi -> mulch, mufti
pmars.x86_64: W: spelling-error Summary(en_US) corewar -> core war, core-war, forewarn
pmars.x86_64: W: spelling-error %description -l en_US corewar -> core war, core-war, forewarn
pmars.x86_64: W: spelling-error %description -l en_US redcode -> red code, red-code, redcoat
pmars.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
3 packages and 0 specfiles checked; 0 errors, 8 warnings.

Please fix the spelling error.

Also, please place the temporary doc dir stuff in %prep, after the application of the patches.

MUST: The package does not yet exist in Fedora. The Review Request is not a duplicate. OK
MUST: The spec file for the package is legible and macros are used consistently. OK
MUST: The package must be named according to the Package Naming Guidelines. OK
MUST: The spec file name must match the base package %{name}. OK
MUST: The package must be licensed with a Fedora approved license and meet the  Licensing Guidelines. OK
MUST: The License field in the package spec file must match the actual license. OK
MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. OK
MUST: The package MUST successfully compile and build into binary rpms. OK
MUST: The spec file MUST handle locales properly. N/A
MUST: Optflags are used and time stamps preserved. OK
MUST: Packages containing shared library files must call ldconfig. N/A
MUST: A package must own all directories that it creates or require the package that owns the directory. OK
MUST: Files only listed once in %files listings. OK
MUST: Debuginfo package is complete. OK
MUST: Permissions on files must be set properly. OK
MUST: Clean section exists. OK
MUST: Large documentation files must go in a -doc subpackage. N/A
MUST: All relevant items are included in %doc. Items in %doc do not affect runtime of application. OK
MUST: Header files must be in a -devel package. N/A
MUST: Static libraries must be in a -static package. N/A
MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'. N/A
MUST: If a package contains library files with a suffix then library files ending in .so must go in a -devel package. N/A
MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency. N/A
MUST: Packages does not contain any .la libtool archives. N/A

MUST: Desktop files are installed properly. ~OK
- Although this is an X application, it is operated purely from the command prompt (it needs a warrior file as input).

MUST: No file conflicts with other packages and no general names. OK
MUST: Buildroot cleaned before install. OK
SHOULD: %{?dist} tag is used in release. OK
SHOULD: If the package does not include license text(s) as separate files from upstream, the packager should query upstream to include it. OK
SHOULD: The package builds in mock. OK

Comment 8 Gwyn Ciesla 2010-05-06 12:59:23 EDT
Thanks for the review!

I moved the doc manipulation to after the patches, but I left the prep header before setup, because otherwise it tries to do it's thing before the tarball is unpacked, which fails.

New Package CVS Request
Package Name: pmars
Short Description: Portable corewar system with ICWS'94 extensions
Owners: limb
Branches: F-13 F-12
Comment 9 Kevin Fenzi 2010-05-08 22:07:47 EDT
CVS done (by process-cvs-requests.py).
Comment 10 Fedora Update System 2010-05-10 10:12:13 EDT
pmars-0.9.2-4.fc12 has been submitted as an update for Fedora 12.
Comment 11 Fedora Update System 2010-05-10 10:12:19 EDT
pmars-0.9.2-4.fc13 has been submitted as an update for Fedora 13.
Comment 12 Fedora Update System 2010-05-10 19:52:38 EDT
pmars-0.9.2-4.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 13 Fedora Update System 2010-05-11 15:38:21 EDT
pmars-0.9.2-4.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

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