Bug 759057 - Review Request: SOIL - Simple OpenGL Image Library
Summary: Review Request: SOIL - Simple OpenGL Image Library
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mohamed El Morabity
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 759059
TreeView+ depends on / blocked
 
Reported: 2011-12-01 10:47 UTC by Julian Sikorski
Modified: 2012-01-12 13:40 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-01-12 13:40:23 UTC
Type: ---
Embargoed:
pikachu.2014: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Julian Sikorski 2011-12-01 10:47:29 UTC
Spec URL: http://belegdol.fedorapeople.org/libSOIL.spec
SRPM URL: http://belegdol.fedorapeople.org/libSOIL-1.07-1.20080706.fc16.src.rpm
Description:
SOIL is a tiny C library used primarily for uploading textures into OpenGL. It
is based on stb_image version 1.16, the public domain code from Sean Barrett.
The author has extended it to load TGA and DDS files, and to perform common
functions needed in loading OpenGL textures. SOIL can also be used to save and
load images in a variety of formats (useful for loading height maps, non-OpenGL
applications, etc.)

Package builds in mock/fedora-16-x86_64. rpmlint output:
$ rpmlint libSOIL.spec ../SRPMS/libSOIL-1.07-1.20080706.fc16.src.rpm ../RPMS/x86_64/libSOIL-*
libSOIL.src: W: spelling-error %description -l en_US stb -> st, stab, stub
libSOIL.x86_64: W: spelling-error %description -l en_US stb -> st, stab, stub
libSOIL-devel.x86_64: W: no-documentation
4 packages and 1 specfiles checked; 0 errors, 3 warnings.

Comment 1 Mohamed El Morabity 2011-12-22 10:37:43 UTC
Since SFML requires libSOIL, I will review it.

Just one comment, by reading your spec file: is "libSOIL" a good name for it? The upstream name of the library is "SOIL", and Fedora packages don't have to prefix library packages with "lib", like in Debian.
   http://fedoraproject.org/wiki/Packaging:NamingGuidelines#General_Naming
Could you rename the package to "SOIL" ?

Comment 3 Julian Sikorski 2011-12-23 12:05:27 UTC
New release:
Spec URL: http://belegdol.fedorapeople.org/SOIL.spec
SRPM URL: http://belegdol.fedorapeople.org/SOIL-1.07-3.20080706.fc16.src.rpm

Changes:
- Ported a Debian patch ensuring the correct linking

Comment 4 Mohamed El Morabity 2012-01-03 12:18:01 UTC
The package looks quite good. Just one comment anyway: I think you could get rid of the sed patching, since all the Makefile parameters you modify can be overridden, as below:
  %build
  pushd src
  make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -c -fPIC" -f ../projects/makefile/alternate\ Makefile.txt
  popd

  %install
  rm -rf $RPM_BUILD_ROOT
  pushd src
  make install -f ../projects/makefile/alternate\ Makefile.txt install DESTDIR=$RPM_BUILD_ROOT INSTALL_FILE="install -p" INSTALL_DIR="install -dp" LIBDIR="%{_libdir}" INCLUDEDIR=%{_includedir}/SOIL
  popd

The less you patch, the better it is ^^.

Comment 5 Mohamed El Morabity 2012-01-03 12:19:28 UTC
Notice also these rpmlint warnings:
   SOIL-devel.x86_64: W: spurious-executable-perm /usr/include/SOIL/SOIL.h
   SOIL-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/include/SOIL/SOIL.h
   SOIL-devel.x86_64: W: spurious-executable-perm /usr/include/SOIL/image_DXT.h
   SOIL-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/include/SOIL/image_DXT.h
   SOIL-devel.x86_64: W: spurious-executable-perm /usr/include/SOIL/stbi_DDS_aug.h
   SOIL-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/include/SOIL/stbi_DDS_aug.h
   SOIL-devel.x86_64: W: spurious-executable-perm /usr/include/SOIL/image_helper.h
   SOIL-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/include/SOIL/image_helper.h
   SOIL-devel.x86_64: W: spurious-executable-perm /usr/include/SOIL/stbi_DDS_aug_c.h
   SOIL-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/include/SOIL/stbi_DDS_aug_c.h
   SOIL-devel.x86_64: W: spurious-executable-perm /usr/include/SOIL/stb_image_aug.h
   SOIL-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/include/SOIL/stb_image_aug.h

Comment 6 Julian Sikorski 2012-01-03 18:43:51 UTC
I am not sure how you got these warnings:
[julas@snowball2 SPECS]$ rpm -q SOIL-devel
SOIL-devel-1.07-3.20080706.fc16.x86_64
[julas@snowball2 SPECS]$ rpmlint SOIL-devel
SOIL-devel.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 1 warnings.
[julas@snowball2 SPECS]$ ls -l /usr/include/SOIL
razem 64
-rw-r--r--. 1 root root  3212 2008-07-07  image_DXT.h
-rw-r--r--. 1 root root  2287 2008-07-07  image_helper.h
-rw-r--r--. 1 root root 15545 2008-07-07  SOIL.h
-rw-r--r--. 1 root root 15447 2008-07-07  stbi_DDS_aug_c.h
-rw-r--r--. 1 root root   797 2008-07-07  stbi_DDS_aug.h
-rw-r--r--. 1 root root 16945 2008-07-07  stb_image_aug.h

I think it is a side-effect of your sed replacement, -m 644 got missing somehow.
Are you 100 % positive that overriding the makefile variables is better than sed? A proper patch would be the best, but it is impossible for macros encoding arch-dependent paths. To me it seems to be the matter of personal preference - I find the sed overrides more legible since they change one thing at a time.

Comment 7 Mohamed El Morabity 2012-01-10 23:45:17 UTC
(In reply to comment #6)
> I am not sure how you got these warnings:
> [julas@snowball2 SPECS]$ rpm -q SOIL-devel
> SOIL-devel-1.07-3.20080706.fc16.x86_64
> [julas@snowball2 SPECS]$ rpmlint SOIL-devel
> SOIL-devel.x86_64: W: no-documentation
> 1 packages and 0 specfiles checked; 0 errors, 1 warnings.
> [julas@snowball2 SPECS]$ ls -l /usr/include/SOIL
> razem 64
> -rw-r--r--. 1 root root  3212 2008-07-07  image_DXT.h
> -rw-r--r--. 1 root root  2287 2008-07-07  image_helper.h
> -rw-r--r--. 1 root root 15545 2008-07-07  SOIL.h
> -rw-r--r--. 1 root root 15447 2008-07-07  stbi_DDS_aug_c.h
> -rw-r--r--. 1 root root   797 2008-07-07  stbi_DDS_aug.h
> -rw-r--r--. 1 root root 16945 2008-07-07  stb_image_aug.h
> I think it is a side-effect of your sed replacement, -m 644 got missing
> somehow.
Indeed, sorry for this mistake.

> Are you 100 % positive that overriding the makefile variables is better than
> sed? A proper patch would be the best, but it is impossible for macros encoding
> arch-dependent paths. To me it seems to be the matter of personal preference -
You're absolutely and totally right. The problem I see with sed is that you could modify more (or less) than what you want. For example:
    sed -i "s|-O2 -Wall|$RPM_OPT_FLAGS -fPIC|" alternate\ Makefile.txt
If this Makefile is updated, for example compilation flags are added, this sed command will skip the new options added; if flags are removed, this sed command will be ignored.
Unless your sed command is robust enough to take into account such situations, I think overriding Makefile variables is maybe a better way to customize the build/installation.
> I find the sed overrides more legible since they change one thing at a time.
By adding line breaks in the long make command, it's still readable ^^.

Comment 8 Julian Sikorski 2012-01-11 16:25:57 UTC
New release:
Spec URL: http://belegdol.fedorapeople.org/SOIL.spec
SRPM URL: http://belegdol.fedorapeople.org/SOIL-1.07-4.20080706.fc16.src.rpm

Changes:
- Use variables instead of sed to fix the makefile

Comment 9 Mohamed El Morabity 2012-01-12 12:41:59 UTC
Here is the review:

 +:ok, =:needs attention, -:needs fixing

MUST Items:

[+] MUST: rpmlint must be run on every package.
SOIL.src: W: spelling-error %description -l en_US stb -> st, stab, stub
SOIL.x86_64: W: spelling-error %description -l en_US stb -> st, stab, stub
SOIL-devel.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 3 warnings.
>>The warnings can be safely ignored

[+] MUST: The package must be named according to the Package Naming Guidelines.

[+] MUST: The spec file name must match the base package %{name}

[+] MUST: The package must meet the Packaging Guidelines.

[+] MUST: The package must be licensed with a Fedora approved license and meet
the Licensing Guidelines.

[=] MUST: The License field in the package spec file must match the actual
license.
>>src/image_helper.c is licensed under the MIT license. You should probably fix the License tag as described below:
   http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Mixed_Source_Licensing_Scenario

[+] 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 must be included in %doc.

[+] MUST: The spec file must be written in American English.

[+] MUST: The spec file for the package MUST be legible.

[+] MUST: The sources used to build the package must match the upstream source,
as provided in the spec URL.
>>MD5 sum=4736ac4f34fd9a41fa0197eac23bbc24 OK

[+] MUST: The package must successfully compile and build into binary rpms on
at least one supported architecture.

[+] MUST: If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch.

[+] MUST: All build dependencies must be listed in BuildRequires

[+] MUST: The spec file MUST handle locales properly. This is done by using the
%find_lang macro.

[+] MUST: Every binary RPM package which stores shared library files (not just
symlinks) in any of the dynamic linker's default paths, must call ldconfig in
%post and %postun.

[+] MUST: If the package is designed to be relocatable, the packager must state
this fact in the request for review

[+] MUST: A package must own all directories that it creates. If it does not
create a directory that it uses, then it should require a package which does
create that directory.

[+] MUST: A package must not contain any duplicate files in the %files listing.

[+] MUST: Permissions on files must be set properly. Executables should be set
with executable permissions, for example.

[+] MUST: Each package must consistently use macros, as described in the macros
section of Packaging Guidelines.

[+] MUST: The package must contain code, or permissible content. This is
described in detail in the code vs. content section of Packaging Guidelines.

[+] MUST: Large documentation files should go in a doc subpackage.

[+] MUST: If a package includes something as %doc, it must not affect the
runtime of the application.

[+] MUST: Header files must be in a -devel package.

[+] MUST: Static libraries must be in a -static package.

[+] MUST: If a package contains library files with a suffix (e.g.
libfoo.so.1.1), then library files that end in .so (without suffix) must go in
a -devel package.

[+] MUST: In the vast majority of cases, devel packages must require the base
package using a fully versioned dependency: Requires: %{name} =
%{version}-%{release} 

[+] MUST: Packages must NOT contain any .la libtool archives, these should be
removed in the spec.

[+] MUST: Packages containing GUI applications must include a %{name}.desktop
file, and that file must be properly installed with desktop-file-install in the
%install section.

[+] MUST: Packages must not own files or directories already owned by other
packages.

[+] MUST: All filenames in rpm packages must be valid UTF-8.

Once the licensing issue fixed, I will approve your package.

Comment 10 Julian Sikorski 2012-01-12 12:53:32 UTC
(In reply to comment #9)
> [=] MUST: The License field in the package spec file must match the actual
> license.
> >>src/image_helper.c is licensed under the MIT license. You should probably fix the License tag as described below:
>   
> http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Mixed_Source_Licensing_Scenario

Good catch, licensecheck -r missed it.

New release:
Spec URL: http://belegdol.fedorapeople.org/SOIL.spec
SRPM URL: http://belegdol.fedorapeople.org/SOIL-1.07-5.20080706.fc16.src.rpm

Changes:
- Fixed the License tag

Comment 11 Mohamed El Morabity 2012-01-12 12:59:51 UTC
APPROVED!

Comment 12 Julian Sikorski 2012-01-12 13:02:23 UTC
New Package SCM Request
=======================
Package Name: SOIL
Short Description: Simple OpenGL Image Library
Owners: belegdol
Branches: F-16 F-15
InitialCC:

Comment 13 Gwyn Ciesla 2012-01-12 13:09:44 UTC
Git done (by process-git-requests).


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