Spec URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile1.8.spec SRPM URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile1.8-1.8.8-1.fc19.src.rpm Description: GUILE (GNU's Ubiquitous Intelligent Language for Extension) is a library implementation of the Scheme programming language, written in C. GUILE provides a machine-independent execution platform that can be linked in as a library during the building of extensible programs. Fedora Account System Username: jsynacek
Sorry for delay. Package Review ============== Key: [x] = Pass [!] = Fail [-] = Not applicable [?] = Not evaluated [ ] = Manual review needed Issues: ======= [!]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files directly in %_libdir. See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages ** These files should go to devel subpackage, e.g. libguile-srfi-srfi-1-v-3.so ===== MUST items ===== C/C++: [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [x]: Package does not contain any libtool archives (.la) [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Rpath absent or only used for internal libs. [!]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files directly in %_libdir. ** Comment above Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. ** I guess there are mentioned many unneeded/compatible licenses in the license tag, I think that LGPLv2+ should be enough for the resulting package, as upstream claims in the LICENSE file. [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package contains no bundled libraries. [x]: Changelog in prescribed format. [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Sources contain only permissible code or content. [x]: Each %files section contains %defattr if rpm < 4.4 [-]: Macros in Summary, %description expandable at SRPM build time. [-]: Package contains desktop file if it is a GUI application. [!]: Development files must be in a -devel package ** Comment above [x]: Package requires other packages for directories it uses. ** Maybe I would like more /usr/share/guile-1.8 than /usr/share/guile/1.8 [x]: Package uses nothing in %doc for runtime. [x]: Package is not known to require ExcludeArch. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [!]: Fully versioned dependency in subpackages, if present. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in %package devel ** We probably need the %{?_isa} if we support multilib [x]: Package complies to the Packaging Guidelines ** I would use more the mver macro to subst hardcoded macros ** I didn't see the proposed guile-2 spec, so I cannot check whether it is conflict free. The compat spec looks generaly OK. [x]: Spec file lacks Packager, Vendor, PreReq tags. [x]: 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 is included in %doc. [!]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "LGPL (v2 or later)", "GPL (v2 or later)", "GPL (v3 or later)", "Unknown or generated", "BSD (4 clause)", "*No copyright* Public domain", "LGPL (v2.1 or later)". 7 files have unknown license. Detailed output of licensecheck in /home/yarda/git-fedora/guile-compat/review-compat- guile1.8/licensecheck.txt ** See above, there are probably more licenses than needed [x]: License file installed when any subpackage combination is installed. [x]: Package consistently uses macro is (instead of hard-coded directory names). [-]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: Package is named using only allowed ASCII characters. [x]: Package is named according to the Package Naming Guidelines. ** The current name is probably not against guidelines (http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Multiple_packages_with_the_same_base_name) , but other compat packages doesn't use 'dot' delimiter for version, e.g. compat-guile18 instead of compat-guile1.8 ** In case you expect more compat versions to exist in parallel, you may consider compat-db approach, e.g. base name without version and subpackage for each compat version. [?]: Package does not generate any conflict. Note: Package contains no Conflicts: tag(s) ** I didn't see the guile-2 package, so it's hard to say. [x]: Package do not use a name that already exist [x]: Package obeys FHS, except libexecdir and /usr/target. [!]: If the package is a rename of another package, proper Obsoletes and Provides are present. ** I think there should be obsoletes and provides. [x]: Package must own all directories that it creates. [?]: Package does not own files or directories owned by other packages. ** I need to see the guile-2 spec. [x]: Package installs properly. [x]: Package is not relocatable. [x]: Requires correct, justified where necessary. [x]: CheckResultdir [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file is legible and written in American English. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [-]: Package contains systemd file(s) if in need. [x]: File names are valid UTF-8. [x]: Useful -debuginfo package or justification otherwise. [-]: Large documentation must go in a -doc subpackage. Note: Documentation size is 163840 bytes in 7 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [!]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) Note: %clean present but not required ** No blocker, OK for EPEL [x]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Dist tag is present. [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Final provides and requires are sane (rpm -q --provides and rpm -q --requires). [x]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. ** Compat package, probably OK [x]: The placement of pkgconfig(.pc) files are correct. [x]: Scriptlets must be sane, if used. [x]: SourceX tarball generation or download is documented. [!]: SourceX / PatchY prefixed with %{name}. Note: Patch1 (guile-1.8.7-multilib.patch) Source0 (guile-1.8.8.tar.gz) Patch3 (guile-1.8.8-deplibs.patch) Patch2 (guile-1.8.7-testsuite.patch) ** No blocker [x]: SourceX is a working URL. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [-]: %check is present and all tests pass. [-]: Packages should try to preserve timestamps of original installed files. [!]: Spec use %global instead of %define. Note: %define mver 1.8 ** Easy fix ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Spec file according to URL is the same as in SRPM. [!]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 1986560 bytes in /usr/share 10240 compat-guile1.8-devel-1.8.8-1.fc16.x86_64.rpm 1976320 compat- guile1.8-1.8.8-1.fc16.x86_64.rpm ** It's about 2MB of data that could probably go noarch, but no blocker Rpmlint ------- Checking: compat-guile1.8-1.8.8-1.fc16.x86_64.rpm compat-guile1.8-devel-1.8.8-1.fc16.x86_64.rpm compat-guile1.8-debuginfo-1.8.8-1.fc16.x86_64.rpm compat-guile1.8-1.8.8-1.fc16.src.rpm compat-guile1.8.x86_64: W: spelling-error Summary(en_US) extensibility -> sensibility, extensible compat-guile1.8.x86_64: W: spelling-error %description -l en_US extensibility -> sensibility, extensible ** false positive compat-guile1.8.x86_64: E: description-line-too-long C Install the compat-guile1.8 package if you'd like to add extensibility to programs compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-4-v-3.so compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-13-14-v-3.so compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 37: warning: numeric expression expected (got `F') compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 39: warning: numeric expression expected (got `F') compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 55: warning: numeric expression expected (got `E') compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 57: warning: numeric expression expected (got `S') compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-60-v-2.so compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguilereadline-v-17.so compat-guile1.8.x86_64: W: dangling-relative-symlink /usr/share/guile/1.8/slib ../../slib compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-1-v-3.so compat-guile1.8.x86_64: W: no-manual-page-for-binary guile1.8-tools compat-guile1.8.x86_64: W: one-line-command-in-%post /sbin/ldconfig ** this could be easily fixed compat-guile1.8.x86_64: W: dangerous-command-in-%trigger rm compat-guile1.8.x86_64: W: dangerous-command-in-%trigger rm ** probably false positive compat-guile1.8-devel.x86_64: W: spelling-error Summary(en_US) extensibility -> sensibility, extensible compat-guile1.8-devel.x86_64: W: spelling-error %description -l en_US extensibility -> sensibility, extensible compat-guile1.8-devel.x86_64: W: no-documentation compat-guile1.8-devel.x86_64: W: no-manual-page-for-binary guile1.8-snarf compat-guile1.8-devel.x86_64: W: no-manual-page-for-binary guile1.8-config compat-guile1.8.src: W: spelling-error Summary(en_US) extensibility -> sensibility, extensible compat-guile1.8.src: W: spelling-error %description -l en_US extensibility -> sensibility, extensible compat-guile1.8.src: E: description-line-too-long C Install the compat-guile1.8 package if you'd like to add extensibility to programs compat-guile1.8.src:129: W: mixed-use-of-spaces-and-tabs (spaces: line 129, tab: line 78) 4 packages and 0 specfiles checked; 2 errors, 24 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint compat-guile1.8-devel compat-guile1.8-debuginfo compat-guile1.8 compat-guile1.8-devel.x86_64: I: enchant-dictionary-not-found en_US compat-guile1.8-devel.x86_64: W: no-documentation compat-guile1.8-devel.x86_64: W: no-manual-page-for-binary guile1.8-snarf compat-guile1.8-devel.x86_64: W: no-manual-page-for-binary guile1.8-config compat-guile1.8.x86_64: E: description-line-too-long C Install the compat-guile1.8 package if you'd like to add extensibility to programs compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 linux-vdso.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 /usr/lib64/libguile.so.17 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 /usr/lib64/libgmp.so.3 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 /lib64/libcrypt.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 /lib64/libm.so.6 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 /usr/lib64/libltdl.so.7 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-13-14-v-3.so.3.0.1 /lib64/libpthread.so.0 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-1-v-3.so.3.0.2 linux-vdso.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-1-v-3.so.3.0.2 /usr/lib64/libgmp.so.3 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-1-v-3.so.3.0.2 /lib64/libcrypt.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-1-v-3.so.3.0.2 /lib64/libm.so.6 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-1-v-3.so.3.0.2 /usr/lib64/libltdl.so.7 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-1-v-3.so.3.0.2 /lib64/libpthread.so.0 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 linux-vdso.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /usr/lib64/libgmp.so.3 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /lib64/libcrypt.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /lib64/libm.so.6 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /usr/lib64/libltdl.so.7 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /lib64/libncurses.so.5 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /lib64/libtinfo.so.5 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguilereadline-v-17.so.17.0.3 /lib64/libpthread.so.0 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-60-v-2.so.2.0.2 linux-vdso.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-60-v-2.so.2.0.2 /lib64/libcrypt.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-60-v-2.so.2.0.2 /lib64/libm.so.6 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-60-v-2.so.2.0.2 /usr/lib64/libltdl.so.7 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-60-v-2.so.2.0.2 /lib64/libpthread.so.0 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 linux-vdso.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 /usr/lib64/libguile.so.17 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 /usr/lib64/libgmp.so.3 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 /lib64/libcrypt.so.1 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 /lib64/libm.so.6 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 /usr/lib64/libltdl.so.7 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile-srfi-srfi-4-v-3.so.3.0.1 /lib64/libpthread.so.0 compat-guile1.8.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libguile.so.17.4.0 linux-vdso.so.1 ** you can try to re-link with --as-needed compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-4-v-3.so compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-13-14-v-3.so compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 37: warning: numeric expression expected (got `F') compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 39: warning: numeric expression expected (got `F') compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 55: warning: numeric expression expected (got `E') compat-guile1.8.x86_64: W: manual-page-warning /usr/share/man/man1/guile1.8.1.gz 57: warning: numeric expression expected (got `S') compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-60-v-2.so compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguilereadline-v-17.so compat-guile1.8.x86_64: W: dangling-relative-symlink /usr/share/guile/1.8/slib ../../slib compat-guile1.8.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libguile-srfi-srfi-1-v-3.so compat-guile1.8.x86_64: W: no-manual-page-for-binary guile1.8-tools compat-guile1.8.x86_64: W: one-line-command-in-%post /sbin/ldconfig compat-guile1.8.x86_64: W: dangerous-command-in-%trigger rm compat-guile1.8.x86_64: W: dangerous-command-in-%trigger rm 3 packages and 0 specfiles checked; 1 errors, 51 warnings. # echo 'rpmlint-done:' Requires -------- compat-guile1.8-1.8.8-1.fc16.x86_64.rpm (rpmlib, GLIBC filtered): /bin/sh /sbin/ldconfig coreutils ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libcrypt.so.1()(64bit) libgmp.so.3()(64bit) libguile-srfi-srfi-1-v-3.so.3()(64bit) libguile-srfi-srfi-13-14-v-3.so.3()(64bit) libguile-srfi-srfi-4-v-3.so.3()(64bit) libguile-srfi-srfi-60-v-2.so.2()(64bit) libguile.so.17()(64bit) libguilereadline-v-17.so.17()(64bit) libltdl.so.7()(64bit) libm.so.6()(64bit) libncurses.so.5()(64bit) libpthread.so.0()(64bit) libreadline.so.6()(64bit) libtinfo.so.5()(64bit) rtld(GNU_HASH) compat-guile1.8-devel-1.8.8-1.fc16.x86_64.rpm (rpmlib, GLIBC filtered): /bin/sh /usr/bin/guile1.8 /usr/bin/pkg-config compat-guile1.8 = 5:1.8.8-1.fc16 gmp-devel libguile.so.17()(64bit) pkgconfig compat-guile1.8-debuginfo-1.8.8-1.fc16.x86_64.rpm (rpmlib, GLIBC filtered): Provides -------- compat-guile1.8-1.8.8-1.fc16.x86_64.rpm: compat-guile1.8 = 5:1.8.8-1.fc16 compat-guile1.8(x86-64) = 5:1.8.8-1.fc16 libguile-srfi-srfi-1-v-3.so.3()(64bit) libguile-srfi-srfi-13-14-v-3.so.3()(64bit) libguile-srfi-srfi-4-v-3.so.3()(64bit) libguile-srfi-srfi-60-v-2.so.2()(64bit) libguile.so.17()(64bit) libguilereadline-v-17.so.17()(64bit) compat-guile1.8-devel-1.8.8-1.fc16.x86_64.rpm: compat-guile1.8-devel = 5:1.8.8-1.fc16 compat-guile1.8-devel(x86-64) = 5:1.8.8-1.fc16 pkgconfig(guile-1.8) = 1.8.8 compat-guile1.8-debuginfo-1.8.8-1.fc16.x86_64.rpm: compat-guile1.8-debuginfo = 5:1.8.8-1.fc16 compat-guile1.8-debuginfo(x86-64) = 5:1.8.8-1.fc16 Unversioned so-files -------------------- compat-guile1.8-1.8.8-1.fc16.x86_64.rpm: /usr/lib64/libguile-srfi-srfi-1-v-3.so compat-guile1.8-1.8.8-1.fc16.x86_64.rpm: /usr/lib64/libguile-srfi-srfi-13-14-v-3.so compat-guile1.8-1.8.8-1.fc16.x86_64.rpm: /usr/lib64/libguile-srfi-srfi-4-v-3.so compat-guile1.8-1.8.8-1.fc16.x86_64.rpm: /usr/lib64/libguile-srfi-srfi-60-v-2.so compat-guile1.8-1.8.8-1.fc16.x86_64.rpm: /usr/lib64/libguilereadline-v-17.so MD5-sum check ------------- ftp://ftp.gnu.org/pub/gnu/guile/guile-1.8.8.tar.gz : CHECKSUM(SHA256) this package : c3471fed2e72e5b04ad133bbaaf16369e8360283679bcf19800bc1b381024050 CHECKSUM(SHA256) upstream package : c3471fed2e72e5b04ad133bbaaf16369e8360283679bcf19800bc1b381024050 Generated by fedora-review 0.3.1 (b71abc1) last change: 2012-10-16 Buildroot used: fedora-16-x86_64 Command line :/usr/bin/fedora-review -n compat-guile Please provide the guile-2 spec to allow me to do more deep checks.
> ** I would use more the mver macro to subst hardcoded macros hardcoded versions of course
Thanks for the first round. Here is the spec and srpm for guile2: http://jsynacek.fedorapeople.org/guile2/guile.spec http://jsynacek.fedorapeople.org/guile2/guile2-2.0.6-1.fc19.src.rpm Meanwhile, I'm going to fix the above insufficiencies.
(In reply to comment #1) > Issues: > ======= > [!]: Development (unversioned) .so files in -devel subpackage, if present. > Note: Unversioned so-files directly in %_libdir. > See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages > ** These files should go to devel subpackage, e.g. > libguile-srfi-srfi-1-v-3.so Fixed. > Generic: > [x]: Package is licensed with an open-source compatible license and meets > other legal requirements as defined in the legal section of Packaging > Guidelines. > ** I guess there are mentioned many unneeded/compatible licenses in the > license tag, I think that LGPLv2+ should be enough for the resulting > package, as upstream claims in the LICENSE file. Fixed. The spec now only mentions LGPLv2+. > > [x]: Package requires other packages for directories it uses. > ** Maybe I would like more /usr/share/guile-1.8 than /usr/share/guile/1.8 TODO > [!]: Fully versioned dependency in subpackages, if present. > Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in %package > devel > ** We probably need the %{?_isa} if we support multilib Fixed. > > [x]: Package complies to the Packaging Guidelines > ** I would use more the mver macro to subst hardcoded macros Fixed where possible. > [x]: Package is named according to the Package Naming Guidelines. > ** The current name is probably not against guidelines > (http://fedoraproject.org/wiki/Packaging: > NamingGuidelines#Multiple_packages_with_the_same_base_name) , but other > compat packages doesn't use 'dot' delimiter for version, e.g. compat-guile18 > instead of compat-guile1.8 > ** In case you expect more compat versions to exist in parallel, you may > consider compat-db approach, e.g. base name without version and subpackage > for each compat version. Renamed to compat-guile18. > [!]: If the package is a rename of another package, proper Obsoletes and > Provides are present. > ** I think there should be obsoletes and provides. Fixed. Hopefully correctly. > [?]: Package does not own files or directories owned by other packages. > ** I need to see the guile-2 spec. Provided. > [!]: Package has no %clean section with rm -rf %{buildroot} (or > $RPM_BUILD_ROOT) > Note: %clean present but not required > ** No blocker, OK for EPEL Fixed. > [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. > ** Compat package, probably OK OK. > [!]: SourceX / PatchY prefixed with %{name}. > Note: Patch1 (guile-1.8.7-multilib.patch) Source0 (guile-1.8.8.tar.gz) > Patch3 (guile-1.8.8-deplibs.patch) Patch2 (guile-1.8.7-testsuite.patch) > ** No blocker Not possible anyway. > [!]: Spec use %global instead of %define. > Note: %define mver 1.8 > ** Easy fix Fixed. > [!]: Large data in /usr/share should live in a noarch subpackage if package > is > arched. > Note: Arch-ed rpms have a total of 1986560 bytes in /usr/share 10240 > compat-guile1.8-devel-1.8.8-1.fc16.x86_64.rpm 1976320 compat- > guile1.8-1.8.8-1.fc16.x86_64.rpm > ** It's about 2MB of data that could probably go noarch, but no blocker Those are guile procedures written in Scheme. I don't think 2MB is that much, so I'm leaving this as it is. > Rpmlint > ------- > compat-guile1.8.x86_64: W: one-line-command-in-%post /sbin/ldconfig > ** this could be easily fixed Fixed. > /usr/lib64/libguile.so.17.4.0 linux-vdso.so.1 > ** you can try to re-link with --as-needed Done. Spec now exports LDFLAGS="-Wl,--as-needed". > Please provide the guile-2 spec to allow me to do more deep checks. Done. Spec URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile1.8.spec SRPM URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile1.8-1.8.8-2.fc19.src.rpm
(In reply to comment #4) > > [x]: Package requires other packages for directories it uses. > > ** Maybe I would like more /usr/share/guile-1.8 than /usr/share/guile/1.8 > TODO Hm, this was unintentional... I think it would be a needless step to rename the directory like this. It is an upstream default to use /usr/share/guile/<version>. The same is used for the new package as well (resulting in /usr/share/guile/{1.8,2.0} when both are installed), so I'm inclined to leave it like this. > Renamed to compat-guile18. I guess I should have renamed the spec file as well. Next round perhaps:)
(In reply to comment #4) > (In reply to comment #1) > > [!]: Development (unversioned) .so files in -devel subpackage, if present. > > Note: Unversioned so-files directly in %_libdir. > > See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages > > ** These files should go to devel subpackage, e.g. > > libguile-srfi-srfi-1-v-3.so > Fixed. I think these are needed in the runtime, try (require-extension (srfi 60)).
(In reply to comment #6) > (In reply to comment #4) > > (In reply to comment #1) > > > [!]: Development (unversioned) .so files in -devel subpackage, if present. > > > Note: Unversioned so-files directly in %_libdir. > > > See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages > > > ** These files should go to devel subpackage, e.g. > > > libguile-srfi-srfi-1-v-3.so > > Fixed. > > I think these are needed in the runtime, try (require-extension (srfi 60)). Indeed they are. I tested this before, but my tests were wrong. It should be ok now. I renamed the spec as well. Spec URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile18.spec SRPM URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile18-1.8.8-3.fc19.src.rpm
Jan thanks for the update. In the srpm there was spec file with the different name (compat-guile1.8.spec), I used the standalone spec (compat-guile18). Some more issues I noticed: compat-guile18.spec:126: W: mixed-use-of-spaces-and-tabs (spaces: line 126, tab: line 79) compat-guile18.src: E: description-line-too-long C Install the compat-guile18 package if you'd like to add extensibility to programs > It should be easy fix. I noticed the upgrade path is broken - I installed guile/devel packages to rawhide and tried upgrading to guile2/compat/devel packages. The upgrade failed. I think there shouldn't be guile2 package (because we already have compat-guile18) and guile-2 should be used instead. I don't know much about compat packages but from the guide [1] about renaming: >$provEVR refers to an (Epoch-)Version-Release tuple the original unchanged package would have had if it had been version or release bumped In rawhide there is guile-1.8.8-6, so the compat-guile should probably use 5:%{version}-7 I think the devel subpackage should also have the provides, obsoletes. But in all cases the upgrade path should work. >I think these are needed in the runtime, try (require-extension (srfi 60)). Mirek, thanks for pointing this out. You are right, they are needed. It would be great to have comment about it in the spec. [1] http://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages
(In reply to comment #8) > compat-guile18.spec:126: W: mixed-use-of-spaces-and-tabs (spaces: line 126, > tab: line 79) > compat-guile18.src: E: description-line-too-long C Install the > compat-guile18 package if you'd like to add extensibility to programs Fixed. > I noticed the upgrade path is broken - I installed guile/devel packages to > rawhide and tried upgrading to guile2/compat/devel packages. The upgrade > failed. I think there shouldn't be guile2 package (because we already have > compat-guile18) and guile-2 should be used instead. My mistake. There will of course be no guile2 package, the current guile will be upgraded to v 2.0.x. So, no rename. I accidentaly left the working name in the specfile, which was a leftover from my testing. Sorry about that. > I don't know much about compat packages but from the guide [1] about > renaming: > >$provEVR refers to an (Epoch-)Version-Release tuple the original unchanged package would have had if it had been version or release bumped > In rawhide there is guile-1.8.8-6, so the compat-guile should probably use > 5:%{version}-7 > I think the devel subpackage should also have the provides, obsoletes. But > in all cases the upgrade path should work. For some reason, I thought that the current release was -5. Fixed. Provides/Obsoletes in the -devel package make sense as well, fixed too. > >I think these are needed in the runtime, try (require-extension (srfi 60)). > Mirek, thanks for pointing this out. You are right, they are needed. It > would be great to have comment about it in the spec. Comment added. Spec URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile18.spec SRPM URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile18-1.8.8-4.fc19.src.rpm Updated guile (a.k.a guile2) spec: http://jsynacek.fedorapeople.org/guile2/guile.spec http://jsynacek.fedorapeople.org/guile2/guile-2.0.6-1.fc19.src.rpm
I had to do some changes to fix the upgrade path: http://fedorapeople.org/~jskarvad/guile/compat-guile18.spec http://fedorapeople.org/~jskarvad/guile/guile.spec I am not sure about the %{?_isa} thing. Maybe it is a bit over-engineered now. If not taking the multilib into account for the upgrade, it could probably work without it.
The only problem I can see now (with the specs from the comment 10 and rawhide): # yum install guile guile-devel guile.i686 guile-devel.i686 # yum install ./guile-2.0.6-1.fc19.x86_64.rpm ./guile-devel-2.0.6-1.fc19.x86_64.rpm ./compat-guile18-1.8.8-4.fc19.x86_64.rpm ./compat-guile18-devel-1.8.8-4.fc19.x86_64.rpm ================================================================================================================ Package Arch Version Repository Size ================================================================================================================ Installing: compat-guile18 x86_64 1.8.8-4.fc19 /compat-guile18-1.8.8-4.fc19.x86_64 2.7 M replacing guile.i686 5:1.8.8-6.fc19 replacing guile.x86_64 5:1.8.8-6.fc19 compat-guile18-devel x86_64 1.8.8-4.fc19 /compat-guile18-devel-1.8.8-4.fc19.x86_64 467 k replacing guile-devel.i686 5:1.8.8-6.fc19 replacing guile-devel.x86_64 5:1.8.8-6.fc19 Updating: guile x86_64 5:2.0.6-1.fc19 /guile-2.0.6-1.fc19.x86_64 12 M guile-devel x86_64 5:2.0.6-1.fc19 /guile-devel-2.0.6-1.fc19.x86_64 525 k If there are installed no packages depending on guile-1.8.i686, the i686 guile 1.8 is not preserved during the upgrade. Other combinations seems to work correctly. I am not sure whether this is solvable, but it is probably very minor. Also another minor problem I spotted during the upgrade by command above: Running Transaction Updating : 5:guile-2.0.6-1.fc19.x86_64 1/8 ln: failed to create symbolic link ‘/usr/bin/guile-tools’: File exists But the transaction finished OK.
I would probably add -f to both ln and rm and ghost the symlinks created in post. I would also make the guile-2 license field same as in compat-guile.
Another minor problem: # yum install ./guile-devel-2.0.6-1.fc19.x86_64.rpm ./guile-devel-2.0.6-1.fc19.i686.rpm Transaction Check Error: file /usr/bin/guile-config from install of guile-devel-5:2.0.6-1.fc19.i686 conflicts with file from package guile-devel-5:2.0.6-1.fc19.x86_64 file /usr/include/guile/2.0/libguile/scmconfig.h from install of guile-devel-5:2.0.6-1.fc19.i686 conflicts with file from package guile-devel-5:2.0.6-1.fc19.x86_64 The fix should be easy. Multilib devel was supported in guile-1.8 and also works with compat packages.
I added additional %{?_isa} flags as per comment 10. Seems to be working fairly well. Also, as suggested in comment 12, I added the -f flags and left only LGPLv3+ in the License field. Spec URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile18.spec SRPM URL: http://jsynacek.fedorapeople.org/compat-guile1.8/compat-guile18-1.8.8-5.fc19.src.rpm Updated guile (a.k.a guile2) spec: http://jsynacek.fedorapeople.org/guile2/guile.spec http://jsynacek.fedorapeople.org/guile2/guile-2.0.7-1.fc19.src.rpm
(In reply to comment #14) Thanks, giving review+. In case you are going to support multilib devel (as in guile-18), please add fix according to comment 13, it should be easy fix.
Thank you for the thorough review!
New Package SCM Request ======================= Package Name: compat-guile18 Short Description: A compatibility package for guile-1.8 Owners: jsynacek mlichvar jskarvad Branches: InitialCC:
Git done (by process-git-requests).
Thanks! The packages is built. Closing now.