Spec URL: http://people.atrpms.net/~hdegoede/arm-gp2x-linux-zlib.spec SRPM URL: http://people.atrpms.net/~hdegoede/arm-gp2x-linux-zlib-1.2.3-4.fc8.src.rpm Description: This is a Cross Compiled version of the zlib Library, which can be used to compile and link zlib using applications for the arm-gp2x-linux platform, instead of for the native %{_arch} platform.
Reviewing this one.
This one is also missing the %defattr in the %files section.
Can you please submit an updated specfile for this with the missing %defattr added and the License tag updated to the new canonical abbreviation (just "zlib" instead of "zlib/libpng License") so we don't waste time on these during the review?
New version with the following changes: * Sat Aug 4 2007 Hans de Goede <j.w.r.degoede> 1.2.3-5 - Add missing %%defattr to %%files - Update License tag for new Licensing Guidelines compliance - Do NOT provide and require native .so files <sigh> here: Spec URL: http://people.atrpms.net/~hdegoede/arm-gp2x-linux-zlib.spec SRPM URL: http://people.atrpms.net/~hdegoede/arm-gp2x-linux-zlib-1.2.3-5.fc8.src.rpm
This one tries to call ldconfig during the build process: > cd /var/tmp/arm-gp2x-linux-zlib-1.2.3-5.fc7-root/usr/arm-gp2x-linux/lib; if test -f libz.so.1.2.3; then \ > rm -f libz.so libz.so.1; \ > ln -s libz.so.1.2.3 libz.so; \ > ln -s libz.so.1.2.3 libz.so.1; \ > (ldconfig || true) >/dev/null 2>&1; \ > fi which is a big no-no (package builds aren't supposed to touch the running system), even more so for a cross-compiling package. ;-)
The native package: http://cvs.fedora.redhat.com/viewcvs/rpms/zlib/devel/ has a patch to use autotools and libtool instead of the custom configure script, which should also fix this nonsense as a side effect, along with the 3 other makefile patches in the native package (which are now commented out) and also the need to run configure twice to get both shared and static libraries.
Good idea, here is a new version using the native zlib autotool patch: Spec URL: http://people.atrpms.net/~hdegoede/arm-gp2x-linux-zlib.spec SRPM URL: http://people.atrpms.net/~hdegoede/arm-gp2x-linux-zlib-1.2.3-6.fc8.src.rpm
MUST Items: + rpmlint output: + SRPM: W: arm-gp2x-linux-zlib invalid-license zlib This is the F7 rpmlint being out of date. :-) E: arm-gp2x-linux-zlib configure-without-libdir-spec This one's OK for a cross library. (There's no 64-bit GP2X ;-).) + noarch RPM: W: arm-gp2x-linux-zlib devel-file-in-non-devel-package /usr/arm-gp2x-linux/lib/libz.so W: arm-gp2x-linux-zlib devel-file-in-non-devel-package /usr/arm-gp2x-linux/lib/libz.a W: arm-gp2x-linux-zlib devel-file-in-non-devel-package /usr/arm-gp2x-linux/include/zconf.h W: arm-gp2x-linux-zlib devel-file-in-non-devel-package /usr/arm-gp2x-linux/include/zlib.h OK because this is a cross-development package, and these are all target development files. It would make no sense to make a separate devel vs. runtime part because we aren't going to run ARM GP2X binaries on i386/x86_64/ppc/... Fedora anyway. E: arm-gp2x-linux-zlib library-without-ldconfig-postin /usr/arm-gp2x-linux/lib/libz.so.1.2.3 E: arm-gp2x-linux-zlib library-without-ldconfig-postun /usr/arm-gp2x-linux/lib/libz.so.1.2.3 OK, as this a target library (twice the same...) which isn't even in the ldconfig search path. The required symlinks are already there anyway. W: arm-gp2x-linux-zlib invalid-license zlib Again, the F7 rpmlint being out of date. E: arm-gp2x-linux-zlib arch-independent-package-contains-binary-or-object /usr/arm-gp2x-linux/lib/libz.a E: arm-gp2x-linux-zlib arch-independent-package-contains-binary-or-object /usr/arm-gp2x-linux/lib/libz.so.1.2.3 Again, this is OK because those are target files. W: arm-gp2x-linux-zlib non-standard-dir-in-usr arm-gp2x-linux This one's OK too for a cross-library package. + named and versioned according to the Package Naming Guidelines + spec file name matches base package name + Packaging Guidelines: + License zlib OK, matches actual license + No known patent problems + No emulator, no firmware, no binary-only or prebuilt components + Complies with the FHS (with the cross-toolchain exception for %{_prefix}/%{target}) + proper changelog, tags, BuildRoot, Requires, BuildRequires, Summary, Description + no non-UTF-8 characters + relevant documentation is included + It would make no sense to use RPM_OPT_FLAGS here because this is a target package, which is built using a cross GCC which won't understand stuff like -fstack-protector, and for which x86 -march and -mtune switches definitely don't make sense. Thus the omission of RPM_OPT_FLAGS is correct. + no -debuginfo package because this is noarch + no host static libraries nor .la files (I think we can give the target static library a pass. This isn't a Fedora target, so trying to apply our static library policies to the target wouldn't make much sense.) + no duplicated system libraries + no rpaths (no host executables or libraries at all, I also ran readelf -d on the target shared library to make sure and there's no rpath there either) + no configuration files, so %config guideline doesn't apply + no init scripts, so init script guideline doesn't apply + no GUI programs, so no .desktop file present or needed + no timestamp-clobbering file commands + _smp_mflags used + scriptlets are valid + not a web application, so web application guideline doesn't apply + no conflicts + complies with all the legal guidelines + license contained in README which is included as %doc + spec file written in American English + spec file is legible + source matches upstream: MD5SUM: dee233bf288ee795ac96a98cc2e369b6 SHA1SUM: 967e280f284d02284b0cd8872a8e2e04bfdc7283 The patch also matches the one in the native package. + builds on at least one arch (F7 i386 live system) + no known non-working arches, so no ExcludeArch needed + no missing BR + no translations, so translation/locale guidelines don't apply + no host shared libraries, so no ldconfig calls needed + package not relocatable + ownership correct (owns package-specific directories, doesn't own directories owned by another package) + no duplicate files in %files + permissions set properly (%defattr present) + %clean section present and correct + macros used where possible (%configure not used for several reasons, including it playing jokes with --target and using host-specific RPM_OPT_FLAGS) + no non-code content + no large documentation files, so no -doc package needed + %doc files not required at runtime + no host headers, target headers are OK in this cross-development package + no host static libraries, so no -static package needed + no .pc files, so no Requires: pkgconfig needed + no host shared libraries, so .so symlink guidelines don't apply + no -devel package, so the guideline to require the main package in it doesn't apply + no .la files + no GUI programs, so no .desktop file needed + buildroot is deleted at the beginning of %install (same nitpick about mkdir $RPM_BUILD_ROOT as for arm-gp2x-linux-binutils) + all filenames are valid UTF-8 SHOULD Items: + license already included upstream (in README) + no translations for description and summary provided by upstream * Skipping mock test. * Skipping the "all architectures" test, I only have i386. + package functions as described: All the examples from the zlib source code compile and link (except gzlog.c which doesn't include a main function, just utility functions). + scriptlets are sane + no subpackages other than -devel, so "Usually, subpackages other than devel should require the base package using a fully versioned dependency." is irrelevant + no .pc files, so "placement of .pc files" is irrelevant + no file dependencies APPROVED
Thanks! New Package CVS Request ======================= Package Name: arm-gp2x-linux-zlib Short Description: Cross Compiled zlib Library targeted at arm-gp2x-linux Owners: j.w.r.degoede Branches: FC-6 F-7 devel InitialCC: <empty>
CVS done.
imported and build for rawhide (rest is slow due to new F-7 procedures delaying needed other bits)