Bug 723779 - Review Request: lwjgl - LightWeight Java Game Library
Summary: Review Request: lwjgl - LightWeight Java Game Library
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Andrew Robinson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 723125 723427 790172
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-21 05:51 UTC by Guido Grazioli
Modified: 2012-08-08 17:17 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-08-08 14:02:06 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Guido Grazioli 2011-07-21 05:51:02 UTC
Spec URL: 
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl.spec
SRPM URL: 
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl-2.7.1-1.fc16.src.rpm
Description: 
The Lightweight Java Game Library (LWJGL) is a solution aimed directly at
professional and amateur Java programmers alike to enable commercial quality
games to be written in Java. LWJGL provides developers access to high
performance crossplatform libraries such as OpenGL (Open Graphics Library)
and OpenAL (Open Audio Library) allowing for state of the art 3D games and
3D sound. Additionally LWJGL provides access to controllers such as Gamepads,
Steering wheel and Joysticks. All in a simple and straight forward API.

LWJGL is not meant to make writing games particularly easy; it is primarily
an enabling technology which allows developers to get at resources that are
simply otherwise unavailable or poorly implemented on the existing Java
platform. We anticipate that the LWJGL will, through evolution and extension,
become the foundation for more complete game libraries and "game engines" as
they have popularly become known, and hide some of the new evils we have
had to expose in the APIs.

Comment 1 Andrew Robinson 2012-03-12 13:46:01 UTC
I'll review this.

Comment 2 Andrew Robinson 2012-03-12 16:38:56 UTC
Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

=== REQUIRED ITEMS ===
[!]  Rpmlint output: 
lwjgl.src: W: spelling-error %description -l en_US crossplatform -> cross platform, cross-platform, crosspatch
The value of this tag appears to be misspelled. Please double-check.

lwjgl.src: W: invalid-url Source0: http://downloads.sourceforge.net/lwjgl/lwjgl-source-2.7.1.zip HTTP Error 404: Not Found
The value should be a valid, public HTTP, HTTPS, or FTP URL.
[X]  Package is named according to the Package Naming Guidelines[1].
[X]  Spec file name must match the base package name, in the format %{name}.spec.
[X]  Package meets the Packaging Guidelines[2].
[!]  Package successfully compiles and builds into binary rpms.
[X]  Buildroot definition is not present
[X]  Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines[3,4].
[X]  License field in the package spec file matches the actual license.
License type: BSD
[-]  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]  All independent sub-packages have license of their own
[X]  Spec file is legible and written in American English.
[?]  Sources used to build the package matches the upstream source, as provided in the spec URL.
MD5SUM this package    :
MD5SUM upstream package:
But recursive diff of untarred source shows no results.
[X]  All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines[5].
[X]  Package must own all directories that it creates or must require other packages for directories it uses.
[X]  Package does not contain duplicates in %files.
[X]  File sections do not contain %defattr(-,root,root,-) unless changed with good reason
[X]  Permissions on files are set properly.
[X]  Package does NOT have a %clean section which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). (not needed anymore)
[X]  Package consistently uses macros (no %{buildroot} and $RPM_BUILD_ROOT mixing)
[X]  Package contains code, or permissable content.
[-]  Fully versioned dependency in subpackages, if present.
[-]  Package contains a properly installed %{name}.desktop file if it is a GUI application.
[X]  Package does not own files or directories owned by other packages.
[X]  Javadoc documentation files are generated and included in -javadoc subpackage
[X]  Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlinks)
[X]  Packages have proper BuildRequires/Requires on jpackage-utils
[X]  Javadoc subpackages have Require: jpackage-utils
[-]  Package uses %global not %define
[X]  If package uses tarball from VCS include comment how to re-create that tarball (svn export URL, git clone URL, ...)
[X]  If source tarball includes bundled jar/class files these need to be removed prior to building
[X]  All filenames in rpm packages must be valid UTF-8.
[X]  Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details)
[-]  If package contains pom.xml files install it (including depmaps) even when building with ant
[X]  pom files has correct add_maven_depmap

=== Maven ===
[X]  Use %{_mavenpomdir} macro for placing pom files instead of %{_datadir}/maven2/poms
[-]  If package uses "-Dmaven.test.skip=true" explain why it was needed in a comment
[-]  If package uses custom depmap "-Dmaven.local.depmap.file=*" explain why it's needed in a comment
[X]  Package DOES NOT use %update_maven_depmap in %post/%postun
[X]  Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-utils for %update_maven_depmap macro

=== Other suggestions ===
[X]  If possible use upstream build method (maven/ant/javac)
[X]  Avoid having BuildRequires on exact NVR unless necessary
[X]  Package has BuildArch: noarch (if possible)
[!]  Latest version is packaged.
[!]  Reviewer should test that the package builds in mock.
Tested on:

=== Issues ===
1. Package does not build on rawhide as it does not resolve the jar for the maven depmap correctly.
2. Please use standard American English form of cross-platform.
3. This is currently not the most recent version of lwjgl. Please resubmit with 2.8.3 if possible.

Comment 3 Guido Grazioli 2012-04-23 07:36:57 UTC
Thanks for reviewing; I have currently no enough time to update this package to the latest version, so I just updated the specfile to build successfully on current rawhide (and fixed source url and the typo in package description). Fix was very easy because what changed was the target directory for jni files, starting with F16.

Spec URL: 
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl.spec
SRPM URL: 
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl-2.7.1-2.fc16.src.rpm

Comment 4 Michael Schwendt 2012-04-28 09:31:23 UTC
All src.rpm/tarball URLs in this ticket give 404 Not Found.

A working one is:
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl-2.7.1-2.fc18.src.rpm


> %package util
> Summary:        Javadocs for %{name}
> Group:          Documentation
> 
> %description util
> This package provides additional java utility classes for %{name}.

Wrong Group tag for those contents.


> %package javadoc
> Summary:        Javadocs for %{name}
> Group:          Documentation
> Requires:       jpackage-utils

What in this generated HTML documentation package requires jpackage-utils?

Comment 5 Guido Grazioli 2012-04-29 09:07:29 UTC
Thanks, and sorry for the broken links.

>> %package util
>> Summary:        Javadocs for %{name}
>> Group:          Documentation
>> 
>> %description util
>> This package provides additional java utility classes for %{name}.
>
> Wrong Group tag for those contents.

Good find, fixed both Group and Summary, and also improved a bit on description.

>> %package javadoc
>> Summary:        Javadocs for %{name}
>> Group:          Documentation
>> Requires:       jpackage-utils
>
> What in this generated HTML documentation package requires jpackage-utils?

This is a requirement that has always been in Java guidelines (fragment above was copy&pasted directly from ant template[1]). Not sure but I think main reason is that jpackage-utils owns the /usr/share/javadoc directory.

Spec URL: 
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl.spec
SRPM URL: 
http://guidograzioli.fedorapeople.org/packages/lwjgl/lwjgl-2.7.1-3.fc18.src.rpm


[1] https://fedoraproject.org/wiki/Packaging:Java#ant_2

Comment 6 Michael Schwendt 2012-04-29 19:27:02 UTC
> I think main reason is that jpackage-utils owns the /usr/share/javadoc
> directory.

Okay, then this package may own /usr/share/javadoc instead, following

https://fedoraproject.org/wiki/Packaging:Guidelines#The_directory_is_owned_by_a_package_which_is_not_required_for_your_package_to_function

and provided that it uses the same file attributes for the directory entry than the jpackage-utils package.


> https://fedoraproject.org/wiki/Packaging:Java#ant_2

That example should add some comments, and it could be updated for the directory ownership, too.

Comment 7 Andrew Robinson 2012-08-08 14:02:06 UTC
Closing, for now. This could be reopened if someone finds the time to package latest upstream.


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