Bug 868263 - Review Request: compat-guile18 - Compatibility package for guile-1.8
Summary: Review Request: compat-guile18 - Compatibility package for guile-1.8
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jaroslav Škarvada
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-10-19 11:21 UTC by Jan Synacek
Modified: 2013-01-23 09:06 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-01-23 09:06:48 UTC
Type: Bug
Embargoed:
jskarvad: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Jan Synacek 2012-10-19 11:21:15 UTC
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

Comment 1 Jaroslav Škarvada 2013-01-16 13:32:58 UTC
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.

Comment 2 Jaroslav Škarvada 2013-01-16 13:35:54 UTC
> ** I would use more the mver macro to subst hardcoded macros
hardcoded versions of course

Comment 3 Jan Synacek 2013-01-17 12:46:39 UTC
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.

Comment 4 Jan Synacek 2013-01-17 14:13:15 UTC
(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

Comment 5 Jan Synacek 2013-01-17 14:20:11 UTC
(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:)

Comment 6 Miroslav Lichvar 2013-01-17 14:37:10 UTC
(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)).

Comment 7 Jan Synacek 2013-01-17 15:01:00 UTC
(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

Comment 8 Jaroslav Škarvada 2013-01-18 12:42:01 UTC
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

Comment 9 Jan Synacek 2013-01-18 13:56:44 UTC
(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

Comment 10 Jaroslav Škarvada 2013-01-21 14:17:30 UTC
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.

Comment 11 Jaroslav Škarvada 2013-01-21 16:56:57 UTC
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.

Comment 12 Jaroslav Škarvada 2013-01-22 00:31:44 UTC
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.

Comment 13 Jaroslav Škarvada 2013-01-22 10:02:15 UTC
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.

Comment 14 Jan Synacek 2013-01-22 10:04:22 UTC
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

Comment 15 Jaroslav Škarvada 2013-01-22 10:24:17 UTC
(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.

Comment 16 Jan Synacek 2013-01-22 11:34:20 UTC
Thank you for the thorough review!

Comment 17 Jan Synacek 2013-01-22 11:49:58 UTC
New Package SCM Request
=======================
Package Name: compat-guile18
Short Description: A compatibility package for guile-1.8
Owners: jsynacek mlichvar jskarvad
Branches:
InitialCC:

Comment 18 Gwyn Ciesla 2013-01-22 14:05:26 UTC
Git done (by process-git-requests).

Comment 19 Jan Synacek 2013-01-23 09:06:48 UTC
Thanks! The packages is built. Closing now.


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