Bug 221698

Summary: Review Request: compat-guile-16 - Guile 1.6 compatibility package
Product: [Fedora] Fedora Reporter: Chitlesh GOORAH <chitlesh>
Component: Package ReviewAssignee: Mamoru TASAKA <mtasaka>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: gemi, mtasaka
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-01-13 16:38:26 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 163779    
Attachments:
Description Flags
compat-guile-16.spec I created
none
libgeda spec file using compat-guile-16
none
Mock build log of compat-guile-16-1.6.7-3.1.fc7
none
Mock build log of libgeda-20061020-2.1.fc7
none
Mock build log of libgeda-20061020-2.1.fc5 none

Description Chitlesh GOORAH 2007-01-06 10:44:05 UTC
Spec URL: http://tux.u-strasbg.fr/~chit/compat-guile/compat-guile.spec
SRPM URL: http://tux.u-strasbg.fr/~chit/compat-guile/compat-guile-1.6.7-3.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.

This is a compatibility package for the old guile version 1.6.

Comment 1 Chitlesh GOORAH 2007-01-06 10:45:06 UTC
*** Bug 218367 has been marked as a duplicate of this bug. ***

Comment 2 Chitlesh GOORAH 2007-01-06 10:51:27 UTC
There is a bug on the geda suite due to the lack of compability with the guile 1.6

however I'm having troubles making it compatible with the actual fedora guile
1.8-devel package and at the same time I can't make libgeda compile properly
with this compat-guile.

http://tux.u-strasbg.fr/~chit/libgeda/

Why I posted here before solving the problem ?
first I can't do myself, I need help. Secondly lots of geda users are complaining.

Mamuro is your proposal still valid ? :)
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218367#c7

Comment 3 Mamoru TASAKA 2007-01-06 13:19:39 UTC
Umm.. rather complicated spec file, however I will try.

Comment 4 Mamoru TASAKA 2007-01-06 18:37:51 UTC
Created attachment 144975 [details]
compat-guile-16.spec I created

Well, I have not checked yet in detail if this package
meets packaging guildlines. I justed looked into how
this library are packaged and how rebuild of libgeda
fails.

Then:
--------------------------------------------
%{__mv} %{buildroot}%{_libdir}/libguile.so
%{buildroot}%{_libdir}/compat-libguile.so
--------------------------------------------
This line is actually wrong. When compilation of a
source file needs linkage for a library by "-lXXX",
this means that this compilation uses "libXXX.so".
So the file named "compat-"libXXX.so cannot be used.

Generally, a library for legacy compatibility should
be named as "libguile16.so", as you can see a example
in libpng10-devel (in FC5).

And.. also the use of directory named "/.../.../compat-XXX"
should be avoided because there is no guarantee that only
one version of compatibility-providing libraries are needed.
These types of directories should be named so that their names
clearly show the version, like "/usr/include/guile16" or
so.

Also, the name of rpm should show version explicitly
like libpng10 or compat-gcc-34.

I tried to create compat-guile-16.spec with my suggestions
applied.

---------------------------------------------
Note: I only checked compatibility and not checked
the accordance for packaging guidelines. I just noticed
that owning automake .m4 file means that -devel package
should need "Requires: automake".

Comment 5 Mamoru TASAKA 2007-01-06 18:42:56 UTC
Created attachment 144976 [details]
libgeda spec file using compat-guile-16

libgeda-20061020-2.1 spec file, which uses compat-guile-16.

As I changed the names in compat-guile-16 to /usr/include/guile16
or so, I also changed libgeda spec file accroding to them.
Also, I changed the use of sed so that sed should not
"touch" the files which are actually not changed.

Please check this spec file.

Comment 6 Mamoru TASAKA 2007-01-06 18:45:11 UTC
Created attachment 144977 [details]
Mock build log of compat-guile-16-1.6.7-3.1.fc7

Mockbuild log of compat-guile-16-1.6.7-3.1 on
FC-devel i386.

Comment 7 Mamoru TASAKA 2007-01-06 18:46:22 UTC
Created attachment 144978 [details]
Mock build log of libgeda-20061020-2.1.fc7

Mockbuild log of libgeda-20061020-2.1 on FC-devel
i386.

Comment 8 Mamoru TASAKA 2007-01-06 18:49:24 UTC
Created attachment 144979 [details]
Mock build log of libgeda-20061020-2.1.fc5

Mockbuild log of libgeda-20061020-2.1 on FC-5
i386.

Comment 9 Mamoru TASAKA 2007-01-06 19:09:30 UTC
Well, actually
* Requires for libgeda-devel should be changed to 
-------------------------------------------
%if 0%{fedora} >= 6
Requires: compat-guile-16-devel
%else
Requires: guile-devel
%endif
-------------------------------------------
And.. I may have not noticed other issues to be fixed.

Note:
When to modify configure, modifying configure.ac is not necessary.

=====================================================
* Check:
  For installation of libgeda compat-guile-16-devel:
  (for now installing libgeda-devel is eliminated because of my
   typo written above)
-------------------------------------------------------------
[root@localhost ~]# yum --disablerepo=\*debug\*  --disablerepo=\*dries\*
--disablerepo=\*freshrpms\* -y install libgeda compat-guile-16-devel
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libgeda to pack into transaction set.
libgeda-20061020-2.1.fc7. 100% |=========================| 7.4 kB    00:00     
---> Package libgeda.i386 0:20061020-2.1.fc7 set to be updated
---> Downloading header for compat-guile-16-devel to pack into transaction set.
compat-guile-16-devel-1.6 100% |=========================|  23 kB    00:00     
---> Package compat-guile-16-devel.i386 0:1.6.7-3.1.fc7 set to be updated
--> Running transaction check
--> Processing Dependency: libqthreads.so.12 for package: libgeda
--> Processing Dependency: libguile-srfi-srfi-13-14-v-1.so.1 for package:
compat-guile-16-devel
--> Processing Dependency: compat-guile-16 = 1.6.7-3.1.fc7 for package:
compat-guile-16-devel
--> Processing Dependency: libguile.so.12 for package: libgeda
--> Processing Dependency: libguile.so.12 for package: compat-guile-16-devel
--> Processing Dependency: libguilereadline-v-12.so.12 for package:
compat-guile-16-devel
--> Processing Dependency: libguile-srfi-srfi-4-v-1.so.1 for package:
compat-guile-16-devel
--> Processing Dependency: /usr/bin/guile-1.6 for package: compat-guile-16-devel
--> Processing Dependency: libguile-ltdl.so.1 for package: compat-guile-16-devel
--> Processing Dependency: libguile-ltdl.so.1 for package: libgeda
--> Processing Dependency: libqthreads.so.12 for package: compat-guile-16-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for compat-guile-16 to pack into transaction set.
compat-guile-16-1.6.7-3.1 100% |=========================|  25 kB    00:00     
---> Package compat-guile-16.i386 0:1.6.7-3.1.fc7 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 compat-guile-16-devel   i386       1.6.7-3.1.fc7    LOCAL             185 k
 libgeda                 i386       20061020-2.1.fc7  LOCAL             198 k
Installing for dependencies:
 compat-guile-16         i386       1.6.7-3.1.fc7    LOCAL             715 k

Transaction Summary
=============================================================================
Install      3 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 1.1 M
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: compat-guile-16              ######################### [1/3] 
  Installing: libgeda                      ######################### [2/3] 
  Installing: compat-guile-16-devel        ######################### [3/3] 

Installed: compat-guile-16-devel.i386 0:1.6.7-3.1.fc7 libgeda.i386
0:20061020-2.1.fc7
Dependency Installed: compat-guile-16.i386 0:1.6.7-3.1.fc7
Complete!
[root@localhost ~]# rpm -q guile guile-devel
guile-1.8.1-1.fc7
guile-devel-1.8.1-1.fc7
===================================================================
  surely succeeds, without any conflict against guile(-devel)-1.8



Comment 10 Chitlesh GOORAH 2007-01-07 11:12:29 UTC
Thanks Mamuro,

your modifications work perfectly.
My geda bugs have been solved.

How do you want to continue this review?
should I only change the release version to 4 and file back ?

Comment 11 Mamoru TASAKA 2007-01-07 11:38:03 UTC
(In reply to comment #10)
> How do you want to continue this review?
> should I only change the release version to 4 and file back ?

Well, (for compat-guile-16) at least -devel package needs 
"Requires: automake" because -devel package includes automake .m4 file
so please fix so. Also, please check if I have overlooked something
else and add some fixes you want to do. Then I will review
your spec file again.

By the way, do you agree with the name "compat-guile-16"?

Comment 12 Chitlesh GOORAH 2007-01-08 07:30:39 UTC
Spec URL: http://tux.u-strasbg.fr/~chit/compat-guile/compat-guile-16.spec
SRPM URL:
http://tux.u-strasbg.fr/~chit/compat-guile/compat-guile-16-1.6.7-4.src.rpm

Yes, I'm ok with the name. Once I've asked on the mailing list about some
particular guidelines to follow for compat packages, your way is more logic to me.
http://www.redhat.com/archives/fedora-extras-list/2006-December/msg00375.html

Comment 13 Mamoru TASAKA 2007-01-08 17:02:59 UTC
= Well, from my eye inspection, i.e.
-------------------------------------------------
( for f in `rpm -ql compat-guile-16-devel compat-guile-16 | sort` ; do if file
$f | grep -q text ; then echo $f ; fi ; done ) | xargs grep guile16
-------------------------------------------------
  all "guile16" words included in
  the texts in compat-guile-16(-devel) are correctly changed
  to guile16 (if needed).

Then:

**
-------------------------------------------------
- Added automake in BR
-------------------------------------------------
  Well, I didn't mean by that. What I meant is -devel package should have
-------------------------------------------------
Requires: %{name} = %{version}-%{release}, automake
-------------------------------------------------
  because -devel package includes %{_datadir}/aclocal/guile16.m4.
  Actually automake is not needed for BuildRequires as you don't call
  automake in build process.

** Source0:
   must be: ftp://ftp.gnu.org/gnu/guile/guile-1.6.7.tar.gz
   (md5sum coincides)

** %{buildroot} vs $RPM_BUILD_ROOT
   Please choose one.

Please fix the issues marked as **.
Other things are okay.
--------------------------------------------------------
  This package (compat-guile-16) is APPROVED by me.
--------------------------------------------------------

  Note:
  It seems that the newest guile of 1.6 series is 1.6.8 .
  Please check 1.6.8 after you first import 1.6.7 into Fedora Extras.

Comment 14 Chitlesh GOORAH 2007-01-10 16:37:46 UTC
Thanks, I will update the spec file and upload the src package this friday.