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.
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" ?
Sure: Spec URL: http://belegdol.fedorapeople.org/SOIL.spec SRPM URL: http://belegdol.fedorapeople.org/SOIL-1.07-2.20080706.fc16.src.rpm
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
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 ^^.
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
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.
(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 ^^.
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
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.
(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
APPROVED!
New Package SCM Request ======================= Package Name: SOIL Short Description: Simple OpenGL Image Library Owners: belegdol Branches: F-16 F-15 InitialCC:
Git done (by process-git-requests).