Bug 828544 - Review Request: megaglest-data - Mega Glest data files
Review Request: megaglest-data - Mega Glest data files
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Simone Caronni
Fedora Extras Quality Assurance
:
Depends On:
Blocks: 817315
  Show dependency treegraph
 
Reported: 2012-06-04 17:22 EDT by Paulo Andrade
Modified: 2012-12-03 23:59 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-08-18 20:28:13 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
negativo17: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Paulo Andrade 2012-06-04 17:22:11 EDT
Spec URL: http://fedorapeople.org/~pcpa/megaglest-data.spec
SRPM URL: http://fedorapeople.org/~pcpa/megaglest-data-3.6.0.3-1.fc18.src.rpm
Description: MegaGlest is an open source 3D-real-time strategy game, where you control
the armies of one of seven different factions: Tech, Magic, Egyptians,
Indians, Norsemen, Persian or Romans. The game is setup in one of 16
naturally looking settings, which -like the unit models- are crafted with
great appreciation for detail. Additional game data can be downloaded from
within the game at no cost.
Fedora Account System Username: pcpa
Comment 1 Simone Caronni 2012-07-06 07:31:56 EDT
I will review this package
Comment 2 Simone Caronni 2012-07-06 08:46:47 EDT
Sorry for the delay but I had a couple of issues that needed my attention.

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

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

==== 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.
[-]: MUST Package uses nothing in %doc for runtime.
[-]: 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.
[!]: 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.
[-]: 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.
[x]: 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.
[x]: MUST Requires correct, justified where necessary.
[!]: MUST Rpmlint output is silent.
[!]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[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.
[-]: 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.
[!]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[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.
Comment 3 Simone Caronni 2012-07-06 08:46:58 EDT
Issues:

[!]: MUST Rpmlint output is silent.
[!]: 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.
See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

The package does not include the documentation files provided in the source tarball, especially the license file which is included into it.
Please add the contents of the "docs" directory to the resulting rpm as documentation files.

[!]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).

In my opinion megaglest-data should require megaglest, as alone it is quite ueseless given the fact that there is no other engine able to run the contents of the game.
I don't know if it's correct or not so I let you decide. I've seen that megaglest requires megaglest-data, and that is fine.

[!]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
http://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge.net

The sourceforge url downloads an html file, according to the packaging guidelines sourceforge urls' should be explicitly declared as in the packaging guidelines.


Apart from these issues the package is good for me.
Comment 4 Paulo Andrade 2012-07-06 11:53:36 EDT
(In reply to comment #3)
> Issues:
> 
> [!]: MUST Rpmlint output is silent.
> [!]: 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.
> See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text
> 
> The package does not include the documentation files provided in the source
> tarball, especially the license file which is included into it.
> Please add the contents of the "docs" directory to the resulting rpm as
> documentation files.

  I am reworking the package to mark /usr/share/megaglest/docs/ as %doc, but it is installed:

$ rpm -ql megaglest-data | grep megaglest/docs
/usr/share/megaglest/docs
/usr/share/megaglest/docs/AUTHORS.data.txt
/usr/share/megaglest/docs/CHANGELOG.txt
/usr/share/megaglest/docs/COPYRIGHT.data.txt
/usr/share/megaglest/docs/README.data-license.txt
/usr/share/megaglest/docs/README.txt
/usr/share/megaglest/docs/cc-by-sa-3.0-unported.txt
/usr/share/megaglest/docs/glest_factions
/usr/share/megaglest/docs/glest_factions/advanced_architecture.html
/usr/share/megaglest/docs/glest_factions/advanced_magic.html
/usr/share/megaglest/docs/glest_factions/aerodrome.html
/usr/share/megaglest/docs/glest_factions/air_ballista.html
/usr/share/megaglest/docs/glest_factions/airship.html
/usr/share/megaglest/docs/glest_factions/ancient_summoning.html
/usr/share/megaglest/docs/glest_factions/archer.html
/usr/share/megaglest/docs/glest_factions/archmage.html
/usr/share/megaglest/docs/glest_factions/archmage_tower.html
/usr/share/megaglest/docs/glest_factions/barracks.html
/usr/share/megaglest/docs/glest_factions/battle_machine.html
/usr/share/megaglest/docs/glest_factions/battlemage.html
/usr/share/megaglest/docs/glest_factions/behemoth.html
/usr/share/megaglest/docs/glest_factions/blacksmith.html
/usr/share/megaglest/docs/glest_factions/blade_weapons.html
/usr/share/megaglest/docs/glest_factions/castle.html
/usr/share/megaglest/docs/glest_factions/catapult.html
/usr/share/megaglest/docs/glest_factions/cow.html
/usr/share/megaglest/docs/glest_factions/daemon.html
/usr/share/megaglest/docs/glest_factions/defense_tower.html
/usr/share/megaglest/docs/glest_factions/dragon.html
/usr/share/megaglest/docs/glest_factions/dragon_call.html
/usr/share/megaglest/docs/glest_factions/drake_rider.html
/usr/share/megaglest/docs/glest_factions/energy_compression.html
/usr/share/megaglest/docs/glest_factions/energy_sharpening.html
/usr/share/megaglest/docs/glest_factions/energy_source.html
/usr/share/megaglest/docs/glest_factions/farm.html
/usr/share/megaglest/docs/glest_factions/ghost_armor.html
/usr/share/megaglest/docs/glest_factions/golem.html
/usr/share/megaglest/docs/glest_factions/guard.html
/usr/share/megaglest/docs/glest_factions/hell_gate.html
/usr/share/megaglest/docs/glest_factions/horseman.html
/usr/share/megaglest/docs/glest_factions/index.html
/usr/share/megaglest/docs/glest_factions/initiate.html
/usr/share/megaglest/docs/glest_factions/library.html
/usr/share/megaglest/docs/glest_factions/mage_tower.html
/usr/share/megaglest/docs/glest_factions/mana_compression.html
/usr/share/megaglest/docs/glest_factions/ornithopter.html
/usr/share/megaglest/docs/glest_factions/piercing_weapons.html
/usr/share/megaglest/docs/glest_factions/pig.html
/usr/share/megaglest/docs/glest_factions/rider.html
/usr/share/megaglest/docs/glest_factions/robotics.html
/usr/share/megaglest/docs/glest_factions/shield_level_1.html
/usr/share/megaglest/docs/glest_factions/shield_level_2.html
/usr/share/megaglest/docs/glest_factions/stables.html
/usr/share/megaglest/docs/glest_factions/summoner.html
/usr/share/megaglest/docs/glest_factions/summoner_guild.html
/usr/share/megaglest/docs/glest_factions/swordman.html
/usr/share/megaglest/docs/glest_factions/technician.html
/usr/share/megaglest/docs/glest_factions/technodrome.html
/usr/share/megaglest/docs/glest_factions/tower_of_souls.html
/usr/share/megaglest/docs/glest_factions/training_field.html
/usr/share/megaglest/docs/glest_factions/wicker_behemoth.html
/usr/share/megaglest/docs/glest_factions/wicker_daemon.html
/usr/share/megaglest/docs/glest_factions/worker.html

> [!]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm
> -q
>      --requires).
> 
> In my opinion megaglest-data should require megaglest, as alone it is quite
> ueseless given the fact that there is no other engine able to run the
> contents of the game.
> I don't know if it's correct or not so I let you decide. I've seen that
> megaglest requires megaglest-data, and that is fine.

  Not sure how to properly do it from a noarch package, but if cleaning up
a system, it should be marked as an "orphan" package.

> [!]: MUST Sources used to build the package match the upstream source, as
>      provided in the spec URL.
> http://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge.net
> 
> The sourceforge url downloads an html file, according to the packaging
> guidelines sourceforge urls' should be explicitly declared as in the
> packaging guidelines.

  Corrected in latest package.

> Apart from these issues the package is good for me.
Comment 5 Simone Caronni 2012-07-06 12:02:25 EDT
(In reply to comment #4)
>   I am reworking the package to mark /usr/share/megaglest/docs/ as %doc, but
> it is installed:
> 
> $ rpm -ql megaglest-data | grep megaglest/docs
> /usr/share/megaglest/docs
> /usr/share/megaglest/docs/AUTHORS.data.txt

I'm pretty sure you know all of this, but I'm writing here anyway :D

Asimple %doc tag in the files section should be enough, i.e.:

%files
%defattr(-,root,root,-)
%doc docs/*

This way they will end up in:

/usr/share/doc/megaglest-data-3.6.0.3
Comment 6 Paulo Andrade 2012-07-06 12:14:18 EDT
I am trying to not mess with upstream install. In that case it would be required to rm -fr the docs subdir from buildroot in %install.

Would it be ok to add a symlink? For example:

ln -s %{_datadir}/megaglest/docs %{buildroot}%{_docdir}/%{name}-%{version}

(still uploading the new package...)
Comment 7 Paulo Andrade 2012-07-06 12:17:37 EDT
BTW, the docs subdir is also, kind of shared with the arch specific megaglest package, so, megaglest must require megaglest-data.
Comment 8 Paulo Andrade 2012-07-06 12:33:41 EDT
I removed the previous one as I am running out of quota space in fedorapeople.org and this package is very large.

Only did not properly address the megaglest-data requires back megaglest as I am not sure how to make a requires of a arch specific package from a noarch one (should just work as "Requires: megaglest" I guess...)

Spec URL: http://fedorapeople.org/~pcpa/megaglest-data.spec
SRPM URL: http://fedorapeople.org/~pcpa/megaglest-data-3.6.0.3-2.fc18.src.rpm
Comment 9 Simone Caronni 2012-07-06 13:19:11 EDT
(In reply to comment #6)
> I am trying to not mess with upstream install. In that case it would be
> required to rm -fr the docs subdir from buildroot in %install.
> 
> Would it be ok to add a symlink? For example:
> 
> ln -s %{_datadir}/megaglest/docs %{buildroot}%{_docdir}/%{name}-%{version}

Well, unless the game requires at runtime to access its docs (an ingame menu, or something like that) marking them as docs and leave rpmbuild do its things (i.e. put everything in %{_docdir}/%{name}-%{version}) is not a problem.

You cannot do the link, but what you did is ok, only it does the thing half way, when installed it ends up like this: 

%{_docdir}/%{name}-%{version}/docs/<files>

In my opinion should be better "%doc %{_datadir}/megaglest/docs/*" as it will end up like this:

%{_docdir}/%{name}-%{version}/<files>

thus removing the docs subdirectory in the document directory. Otherwise is ok.

(In reply to comment #7)
> BTW, the docs subdir is also, kind of shared with the arch specific megaglest
> package, so, megaglest must require megaglest-data.

You could create a megaglest-docs subpackage if you want. And if the main megaglest has again the license file is ok to leave it in both packages, as that is part of the guidelines to leave the license everywhere, i.e:

/usr/share/doc/megaglest-3.6.0.3/license.txt
/usr/share/doc/megaglest-data-3.6.0.3/license.txt

(In reply to comment #8)
> Only did not properly address the megaglest-data requires back megaglest as I
> am not sure how to make a requires of a arch specific package from a noarch
> one (should just work as "Requires: megaglest" I guess...)

You can't do that, but the generic one it's not a problem as it should work anyway, yum will first pick the same arch version if available and then the next one.

I'm waiting to put "package approved" on this just because I want to review also megaglest.

Thanks,
--Simone
Comment 10 Simone Caronni 2012-07-12 10:57:35 EDT
In addition to the above comments, please change the spec file as this to avoid confusion and data directory ownership problems with megaglest:

%install
make install DESTDIR=${RPM_BUILD_ROOT} -C build
rm -fr ${RPM_BUILD_ROOT}%{_datadir}/megaglest/docs

%files
%doc docs/*
%{_datadir}/megaglest/configuration.xml
%{_datadir}/megaglest/data/
%{_datadir}/megaglest/glest*
%{_datadir}/megaglest/maps/
%{_datadir}/megaglest/megaglest.bmp
%{_datadir}/megaglest/scenarios/
%{_datadir}/megaglest/techs/
%{_datadir}/megaglest/tilesets/
%{_datadir}/megaglest/tutorials/

This way "%{_datadir}/megaglest" will be owned by "megaglest", the docs will be in the proper place in "%{_docdir}/%{name}-%{version}/*" and we don't get the chance of installing "megaglest-data" without the actual "%{_datadir}/megaglest/" data folder already in place in the filesystem.
Comment 11 Simone Caronni 2012-07-12 10:58:53 EDT
well, this can even be shorter as long as you don't include the directory "%{_datadir}/megaglest" itself:

%install
make install DESTDIR=${RPM_BUILD_ROOT} -C build
rm -fr ${RPM_BUILD_ROOT}%{_datadir}/megaglest/docs

%files
%doc docs/*
%{_datadir}/megaglest/*
Comment 12 Paulo Andrade 2012-07-13 09:24:22 EDT
Ok, I can change to make it that way.

I believe megaglest-data should be the owner of %{_datadir}/megaglest (what was removed in the previous change, and megaglest lists %{_datadir}/megaglest/*).
megaglest-data is supposed to be installed before megaglest, that is or should be the reason megaglest-data does not require megaglest, but megaglest requires megaglest-data.

Another change I need to do in megaglest is to include all (but CMakeLists.txt) the .txt files as .doc.
Comment 13 Paulo Andrade 2012-07-13 10:43:15 EDT
I removed previous srpms because I am very close to my quota limit.

New spec and srpm:

Spec URL: http://fedorapeople.org/~pcpa/megaglest-data.spec
SRPM URL: http://fedorapeople.org/~pcpa/megaglest-data-3.6.0.3-3.fc18.src.rpm
Comment 14 Simone Caronni 2012-07-13 11:30:54 EDT
(In reply to comment #12)
> I believe megaglest-data should be the owner of %{_datadir}/megaglest (what
> was removed in the previous change, and megaglest lists
> %{_datadir}/megaglest/*).
> megaglest-data is supposed to be installed before megaglest, that is or
> should be the reason megaglest-data does not require megaglest, but
> megaglest requires megaglest-data.

Ok, to me is fine as long the 2 packages go along.

Also listing as you did:

%files
%doc docs/*
%dir %{_datadir}/megaglest
%{_datadir}/megaglest/configuration.xml
%{_datadir}/megaglest/data/
%{_datadir}/megaglest/glest*
%{_datadir}/megaglest/maps/
%{_datadir}/megaglest/megaglest.bmp
%{_datadir}/megaglest/scenarios/
%{_datadir}/megaglest/techs/
%{_datadir}/megaglest/tilesets/
%{_datadir}/megaglest/tutorials/

Is the same as:

%files
%doc docs/*
%{_datadir}/megaglest

Because the "ownership" is generated at build time, and the resulting rpm is identical in both cases. If you prefer, the verbose one is fine.

(In reply to comment #13)
> Spec URL: http://fedorapeople.org/~pcpa/megaglest-data.spec
> SRPM URL: http://fedorapeople.org/~pcpa/megaglest-data-3.6.0.3-3.fc18.src.rpm

You can also specify urls this way: http://pcpa.fedorapeople.org/

Package approved!
Comment 15 Paulo Andrade 2012-07-31 11:49:40 EDT
New Package SCM Request
=======================
Package Name: megaglest-data
Short Description: Mega Glest data files
Owners: pcpa
Branches: f16 f17
InitialCC: pcpa
Comment 16 Gwyn Ciesla 2012-07-31 11:53:34 EDT
Git done (by process-git-requests).
Comment 17 Fedora Update System 2012-08-06 19:48:54 EDT
megaglest-data-3.6.0.3-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/megaglest-data-3.6.0.3-3.fc16
Comment 18 Fedora Update System 2012-08-06 19:49:47 EDT
megaglest-data-3.6.0.3-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/megaglest-data-3.6.0.3-3.fc17
Comment 19 Fedora Update System 2012-08-09 18:48:07 EDT
megaglest-data-3.6.0.3-3.fc16 has been pushed to the Fedora 16 testing repository.
Comment 20 Fedora Update System 2012-08-18 20:28:13 EDT
megaglest-data-3.6.0.3-3.fc17 has been pushed to the Fedora 17 stable repository.
Comment 21 Fedora Update System 2012-08-18 20:34:24 EDT
megaglest-data-3.6.0.3-3.fc16 has been pushed to the Fedora 16 stable repository.
Comment 22 Fedora Update System 2012-11-23 18:01:17 EST
megaglest-data-3.7.1-1.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/megaglest-data-3.7.1-1.fc16
Comment 23 Fedora Update System 2012-11-23 18:36:26 EST
megaglest-data-3.7.1-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/megaglest-data-3.7.1-1.fc17
Comment 24 Fedora Update System 2012-11-24 09:57:28 EST
megaglest-data-3.7.1-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/megaglest-data-3.7.1-1.fc18
Comment 25 Fedora Update System 2012-11-29 01:46:50 EST
megaglest-data-3.7.1-1.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 26 Fedora Update System 2012-12-03 23:56:34 EST
megaglest-data-3.7.1-1.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 27 Fedora Update System 2012-12-03 23:59:22 EST
megaglest-data-3.7.1-1.fc17 has been pushed to the Fedora 17 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.