Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 193312 - Review Request: DevIL - A cross-platform image library
Summary: Review Request: DevIL - A cross-platform image library
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Hans de Goede
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks: FE-ACCEPT 193342
TreeView+ depends on / blocked
 
Reported: 2006-05-27 00:37 UTC by Ian Chapman
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-06-01 23:39:13 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Ian Chapman 2006-05-27 00:37:25 UTC
Spec URL: http://www.dribble.org.uk/DevIL.spec
SRPM URL: http://www.dribble.org.uk/DevIL-1.6.8-0.4.rc1.iss.src.rpm
Description: 

Uploaded by request for review by Hans de Goede, pending sponsorship.

Developer's Image Library (DevIL) is a programmer's library to develop applications with very powerful image loading capabilities, yet is easy for a developer to learn and use. Ultimate control of images is left to the developer, so unnecessary conversions, etc. are not performed. DevIL utilizes a simple, yet powerful, syntax. DevIL can load, save, convert, manipulate, filter and display a wide variety of image formats.

Comment 1 Ian Chapman 2006-05-27 00:45:44 UTC
Note, rpmlint produces the following error (on i386 only but not x86_64 or ppc):
E: DevIL shlib-with-non-pic-code /usr/lib/libILUT.so.1.0.0

This appears to be caused because the lib is linked against
liballeg_unsharable.a but as mentioned rpmlint doesn't flag this when the RPM is
built on x86_64 or ppc archs.

Comment 2 Hans de Goede 2006-05-27 06:52:43 UTC
(In reply to comment #1)
> Note, rpmlint produces the following error (on i386 only but not x86_64 or ppc):
> E: DevIL shlib-with-non-pic-code /usr/lib/libILUT.so.1.0.0
> 
> This appears to be caused because the lib is linked against
> liballeg_unsharable.a but as mentioned rpmlint doesn't flag this when the RPM is
> built on x86_64 or ppc archs.

Yes this is a known problem when linking libraries with allegro, and also a
_Real_ problem, SELinux will refuse to load libraries wich aren't 100% PIC these
days.

But as said this problem has been encountered and fixed before, the fix is
relativly straight forward, see bug 185215 (adime review) and / or checkout
adime's src.rpm.


Comment 3 Ian Chapman 2006-05-27 17:22:11 UTC
Here's the new spec and srpm which includes a patch to fix the pic problem.

http://www.dribble.org.uk/DevIL.spec
http://www.dribble.org.uk/DevIL-1.6.8-0.5.rc1.src.rpm

Comment 4 Hans de Goede 2006-05-28 13:33:00 UTC
MUST:
=====
* rpmlint output clean
* Package and spec file named appropriately
* Packaged according to packaging guidelines
* License (LGPL) ok, license file included
* spec file is legible and in Am. English.
* Source matches upstream
* Compiles and builds on devel-x86_64
* BR: redundant (see below)
* No locales
* ldconfig properly called for shared libraries
* Not relocatable
* Package owns / or requires all dirs
* No duplicate files (except for %doc) & Permissions ok
* %clean & macro usage OK
* Contains code only
* %doc does not affect runtime, and isn't large enough to warrent a sub package
* -devel package as needed
* .a and .la files removed
* no gui -> no .desktop file required


MUST fix:
=========
* (Build)Requires: xorg-x11-devel . This is for non modular X, your package will
 however be initially imported and build for the -devel branch which uses 
 modular X. Luckily this can be easily fixed:
 -The BR can be dropped completly, see should fix below.
 -The Requires for the -devel package should be:
 Requires: allegro-devel libGL-devel libGLU-devel
 Because GL/gl.h and GL/glu.h are the "X11" headers used by DevIL's headers.
 libGL-devel and libGlu-devel are virtual provides and should work on FC4-devel 
* Don't include the same docs in the -devel package again -devel Requires the
 main package and as such the docs will already be available. I know this makes
 rpmlint issue a warning, which should be ignored.
* DevIL-devel contains an autoconf generated config.h, this is a problem, 
 because if other packages contain one too then there will be #define colissions 
 and other unpleasant-ness. I've checked things and this file is used by, ilut.h
 which checks the following defines:
#define ILUT_USE_ALLEGRO
#define ILUT_USE_OPENGL
#define ILUT_USE_SDL
 The easiest and best way to fix this is to replace config.h with a file
 containing just these 3 lines and nothing else at the end of %install. An 
 alternative would be to completly remove config.h and patch ilut.h to include
 these 3 lines instead of the #include IL/config.h line. But that could break
 compilation of software which wants to include IL/config.h directly.

 Other software building against DevIL, might check for some the other defines
 in config.h, but then that software is broken and we will need to fix the
 other software as we go. I don't think that is a very likely scenario though.
* In %install you manually install ilu_internal.h because that is needed by
 ilu_region.h, this is however not the correct fix, the correct fix is to
 patch or sed ilu_region.h to include IL/il.h instead of ilu_internal.h as il.h
 contains all the nescesarry things ilu_region.h needs.


Should fix:
===========
* In %changelog you write:
  - Made zlib-devel and xorg-x11-devel explicit buildrequires
  Please don't unless you've got a very good reason for this, this goed directly
  against the Packaging Guidelines!
* Add an all lowercase same name Provides to both the base and sub-package as
  discussed on f-e-l (this is a  should fix because it isn't in the guidelines
  yet, but it will most likely be in the guidelines soon. Example for the base:
  Provides: devil = %{version}-%{release}
* Change the Source0 URL to:
  http://download.sourceforge.net/openil/%{name}-%{version}-RC1-src.tar.gz
  This is the generic sf donwload site which is prefered to using a specific
  mirror as you have, mirrors sometimes come and go.



Comment 5 Hans de Goede 2006-05-28 13:34:59 UTC
p.s.

I don't think I will have time today to take a good look at cegui, hopefully I
can find some time before the next weekend, otherwise it will have to wait till
next week.


Comment 6 Ian Chapman 2006-05-29 01:45:50 UTC
Here's the latest version which should fix all those issues.

http://www.dribble.org.uk/DevIL.spec
http://www.dribble.org.uk/DevIL-1.6.8-0.6.rc1.src.rpm

PS.
Don't worry, take all the time you need. We all have work and life away from the
computer screen :-)

Comment 7 Hans de Goede 2006-05-29 05:44:17 UTC
I think building this as is on the buildsys (or in mock) is going to fail,
because of a missing libGLU-devel BuildRequires (my bad).

Also requiring both libGLU-devel and libGL-devel for the -devel package is a bit
redundant (my bad again) libGLU-devel requires libGL-devel itself.

All Must Fix and Should Fix items fixed -> Approved!

Go create your self an account in the fedora account system as described here:
http://fedoraproject.org/wiki/Extras/Contributors

And fill in the CLA, then drop me a note and I'll sponsor you.

p.s.

Don't forget to fix the BR before import.


Comment 8 Hans de Goede 2006-05-31 19:34:04 UTC
Don't forget to close this with a resolution of next release once this has been
built successfully

Comment 9 Ian Chapman 2006-06-01 23:39:13 UTC
Built OK, awaiting signing. Closing as NEXTRELEASE. Cheers Hans.


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