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.
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.
(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.
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
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.
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.
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 :-)
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.
Don't forget to close this with a resolution of next release once this has been built successfully
Built OK, awaiting signing. Closing as NEXTRELEASE. Cheers Hans.