Bug 166004

Summary: Review Request: clisp - Common Lisp (ANSI CL) implementation
Product: [Fedora] Fedora Reporter: Gérard Milmeister <gemi>
Component: Package ReviewAssignee: Orion Poplawski <orion>
Status: CLOSED NEXTRELEASE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bruno, fedora-package-review, pertusus, sds
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://math.ifi.unizh.ch/fedora/4/i386/SRPMS.gemi/clisp-2.33.2-3.src.rpm
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-08-19 17:06:58 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    

Description Gérard Milmeister 2005-08-15 17:57:11 UTC
Spec Name or Url: http://math.ifi.unizh.ch/fedora/spec/clisp.spec
SRPM Name or Url: http://math.ifi.unizh.ch/fedora/4/i386/SRPMS.gemi/clisp-2.33.2-3.src.rpm here>
Description: 
Common Lisp is a high-level, general-purpose programming language.
GNU CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe
University and Michael Stoll of Munich University, both in Germany.
It mostly supports the Lisp described in the ANSI Common Lisp
standard.

Comment 1 Orion Poplawski 2005-08-15 20:04:59 UTC
2.34 has been released.  Any reason not to package it?

Change the locale stuff to:

in %install:
%find_lang %{name}

and:
%files -f %{name}.lang

Otherwise, things are looking pretty good.

Comment 2 Orion Poplawski 2005-08-16 14:44:38 UTC
I would recommend the following spec layout:

%build
export CFLAGS="$RPM_OPT_FLAGS"
sed -i -e 's|-Wpointer-arith|-Wpointer-arith -falign-functions=4|' \  
   src/makemake.in
./configure --prefix=%{_prefix} --fsstnd=redhat --with-dynamic-ffi \
   --with-dynamic-modules --with-module=regexp --with-module=pcre \
   --with-module=clx/new-clx --with-module=syscalls --with-module=wildcard \
   --with-module=bindings/glibc --with-readline --build

%install
rm -rf ${RPM_BUILD_ROOT}
%makeinstall -C src
rm ${RPM_BUILD_ROOT}/%{_docdir}/doc/clisp.*
%find_lang %{name}
%find_lang %{name}low
cat %{name}low.lang >> %{name}.lang

%files -f %{name}.lang
%defattr(-,root,root,-)
%{_bindir}/clisp
%{_libdir}/clisp
%{_mandir}/man1/*
%{_docdir}/clisp-%{version}/


The export CFLAGS doesn't work quite as well as it should (doesn't end up on
every gcc line).

perl -> sed avoids a BuildRequires: perl

no point in having a define for configure options

%makeinstall macro does what you need.

No need to do the funky %doc moves.  

Use %find_lang instead of listing the locale files.


TODO:

# rpmlint clisp
W: clisp incoherent-version-in-changelog 2.33.2-2 2.33.2-3
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/base/libnoreadline.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/base/libavcall.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/linkkit/clisp.h
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/linkkit/modules.c
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/full/libavcall.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/base/modules.h
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/full/libcallback.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/full/lisp.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/base/libcharset.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/full/modules.h
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/base/libcallback.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/base/lisp.a
E: clisp non-executable-script /usr/lib/clisp/clisp-link 0644
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/full/libnoreadline.a
W: clisp devel-file-in-non-devel-package /usr/lib/clisp/full/libcharset.a


I would either put %{_libdir}/clisp into a -devel package or just not ship it at
all.  

Also looks like we need a chmod +x ${RPM_BUILD_ROOT}%{_libdir}/clisp/clisp-link
in %install.




Comment 3 Orion Poplawski 2005-08-16 15:29:09 UTC
Just found out why you need to do make install rather than %makeinstall.  Still
don't need the mkdirs or the funky doc stuff though.

Comment 4 Gérard Milmeister 2005-08-16 16:32:56 UTC
The package for 2.34 should be ready soon, including your changes.

Comment 5 Gérard Milmeister 2005-08-16 18:00:00 UTC
Here it is:
http://math.ifi.unizh.ch/fedora/spec/clisp.spec
http://math.ifi.unizh.ch/fedora/4/i386/SRPMS.gemi/clisp-2.34-1.src.rpm
I have split it into two: the devel package contains the files needed for
linking CLISP.
The CFLAGS setting breaks the build, so I removed it.
I disabled the dynamic modules, they are not needed and not used.

Comment 6 Orion Poplawski 2005-08-16 23:03:09 UTC
Don't need sed BuildRequires, see:
http://fedoraproject.org/wiki/PackagingGuidelines#head-5e0efda65c4d4266d60c269ced6ea1c28051cb6e

Looks like perl would have been okay as well, but still seems overkill.

Lets keep:

%{_docdir}/clisp-%{version}/

The extra / explicitly tells us it is a directory.

I think you need a %defattr for the -devel sub-package.

Perhaps make a comment that CFLAGS breaks the build.  It's standard to use it so
it might be useful to know why it doesn't.  Might lead towards trying it again
in the future.

What files are missing that breaks make check?

# rpmlint clisp clisp-devel
W: clisp-devel no-documentation

If it makes sense to split any of the docs into the -devel package, do so. 
Otherwise I'd ignore.

In any case, all of these are easily fixed and minor.  Approved. 


Comment 7 Gérard Milmeister 2005-08-17 22:04:38 UTC
The package builds on i386 and x86_64 but fails on ppc.
http://buildsys.fedoraproject.org/logs//4/113-clisp-2.34-2.fc4/ppc/build.log
I set ExcludeArch ppc for now. Maybe Sam (sds) can help out. Could it be
that the build machine is running on Power5 instead of PowerPC? There is been a
problem reported about this.

Comment 8 Sam Steingold 2005-08-17 22:53:15 UTC
please remove
--with-module=i18n --with-module=regexp --with-module=syscalls
these modules are included by default even in the base linking set.
please add "build" argument to build in the separate "build" directory
(as opposed to the src directory)

the log indicates that CLISP crashes on the first GC.
this means that some non-trivial memory management adjustments for Power5 might
be necessary.
Bruno Haible (bruno) should be able to handle that.

Comment 9 Sam Steingold 2005-08-17 22:56:14 UTC
(In reply to comment #2)
> ./configure --prefix=%{_prefix} --fsstnd=redhat --with-dynamic-ffi \
>    --with-dynamic-modules --with-module=regexp --with-module=pcre \
>    --with-module=clx/new-clx --with-module=syscalls --with-module=wildcard \
>    --with-module=bindings/glibc --with-readline --build

1. --with-dynamic-modules precludes some optimizations.
2. make it
--build build
to build in a separate directory.

Comment 10 Gérard Milmeister 2005-08-18 00:50:48 UTC
- dynamic modules are already disabled in the final version
- with the next release the mentioned --with-module will be removed (is there
any harm leaving them in?) and the build argument included.
- sds, is it possible that you manager the power issue together with bruno?

Comment 11 Sam Steingold 2005-08-18 17:05:25 UTC
(In reply to comment #10)
> - (is there any harm leaving them in?)
no, just confusion that they are available only in full while
in fact they are available in base too

> - sds, is it possible that you manager the power issue together with bruno?
it turned out that the solution is already mentioned in the unix/PLATFORMS file:
ulimit -S -s 8192


Comment 12 Gérard Milmeister 2005-08-18 18:55:40 UTC
> it turned out that the solution is already mentioned in the unix/PLATFORMS file:
> ulimit -S -s 8192
I fear this does only apply to MacOS X and is not an architecture issue. In any
case it fails:
http://buildsys.fedoraproject.org/logs//4/177-clisp-2.34-7.fc4/ppc/build.log

Comment 13 Sam Steingold 2005-08-18 19:13:48 UTC
(In reply to comment #12)
> > it turned out that the solution is already mentioned in the unix/PLATFORMS file:
> > ulimit -S -s 8192
> I fear this does only apply to MacOS X and is not an architecture issue. In any
> case it fails:
> http://buildsys.fedoraproject.org/logs//4/177-clisp-2.34-7.fc4/ppc/build.log

well, I do not have an access to a ppc/linux box, 
so I will have to leave it to bruno anyway.

Comment 14 Orion Poplawski 2005-08-19 15:02:18 UTC
Just as a data point, clisp builds fine on my ppc box, a Mac Mini G4.

Comment 15 Gérard Milmeister 2005-08-19 15:18:56 UTC
(In reply to comment #14)
> Just as a data point, clisp builds fine on my ppc box, a Mac Mini G4.

I suppose you built from the current src.rpm, so that it is certain that the
problem is not with the .spec file.
It really seems that differences between Power5 and PowerPC affect clisp memory
management. There has been some discussion to provide a PowerPC build system for
these cases.

Comment 17 Gérard Milmeister 2005-08-19 17:06:58 UTC
I opened a new bug report #166347 specific to the ppc issue. I think we can
close this ticket now.