Bug 166796
Summary: | Review Request: cmucl: CMU Common Lisp compiler | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Rex Dieter <rdieter> |
Component: | Package Review | Assignee: | Jason Tibbitts <j> |
Status: | CLOSED NEXTRELEASE | QA Contact: | David Lawrence <dkl> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | fedora-extras-list, j |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | http://www.cons.org/cmucl/ | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2006-03-09 21:27:17 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, 166783 |
Description
Rex Dieter
2005-08-25 19:44:14 UTC
NOTE: builds (may) fail on FC4+ (FC3 is fine). Not sure why, yet. Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19b-2.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS/stable/cmucl-19b-2.src.rpm %changelog * Fri Aug 26 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19b-2 - use setarch - -extras subpkg FC4 failure, looks like a gcc4 thing: gcc -rdynamic -Wstrict-prototypes -Wall -g -DGENCGC -DLINKAGE_TABLE -D__NO_CTYPE -I. -I../../p86/lisp -I../../src/lisp -I- -I/usr/X11R6/include -DGENCGC -DLINKAGE_TABLE -c -o interrupt.o ../../src/lisp/interrupt.c cc1: note: obsolete option -I- used, please use -iquote instead ../../src/lisp/interrupt.c: In function 'interrupt_internal_error': ../../src/lisp/interrupt.c:172: warning: unused variable 'code' ../../src/lisp/interrupt.c: In function 'interrupt_handle_pending': ../../src/lisp/interrupt.c:209: warning: unused variable 'were_in_lisp' ../../src/lisp/interrupt.c: In function 'interrupt_handle_now': ../../src/lisp/interrupt.c:300: error: memory input 0 is not directly addressable ../../src/lisp/interrupt.c: In function 'maybe_now_maybe_later': ../../src/lisp/interrupt.c:451: error: memory input 0 is not directly addressable ../../src/lisp/interrupt.c: In function 'interrupt_install_low_level_handler': ../../src/lisp/interrupt.c:556: warning: assignment from incompatible pointer type ../../src/lisp/interrupt.c: In function 'install_handler': ../../src/lisp/interrupt.c:620: warning: assignment from incompatible pointer type ../../src/lisp/interrupt.c:622: warning: assignment from incompatible pointer type ../../src/lisp/interrupt.c:624: warning: assignment from incompatible pointer type gmake[1]: *** [interrupt.o] Error 1 gmake[1]: Leaving directory `/usr/local/tmp/BUILD/cmucl-19b/i386-redhat-linux-gnu/lisp' near line 300: if (contextstruct.fpstate) #if defined(__x86_64) setfpucw(contextstruct.fpstate->cwd & ~0xc00); #else setfpucw(contextstruct.fpstate->cw & ~0xc00); #endif near line 451: if (contextstruct.fpstate) #if defined(__x86_64) setfpucw(contextstruct.fpstate->cwd & ~0xc00); #else setfpucw(contextstruct.fpstate->cw & ~0xc00); #endif %changelog * Tue Sep 13 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19b-3 - ADDR_NO_RANDOMIZE patch - gcc4 patch (Now builds on Fedora Core 4). Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19b-3.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS/stable/cmucl-19b-3.src.rpm %changelog * Mon Sep 19 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19b-4 - move (re)exec/personality call runprog.c -> lisp.c (in main() ) (sent upstream) - optflags patch - better gcc4 patch (sent upstream) - use my_setarch.c instead of setarch (so we can build on fc3 too) Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19b-4.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS/stable/cmucl-19b-4.src.rpm %changelog * Fri Oct 21 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19c-0.pre1 - 19c-pre1 - drop upstreamed gcc4 patch - drop unused setarch/personality bits * Fri Oct 07 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19b-5 - use known-to-be-good cmucl-19a for bootstrap (19b has issues) - drop personalility patch (not needed afterall) Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19c-0.pre1.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS/stable/cmucl-19c-0.pre1.src.rpm %changelog * Fri Oct 21 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19c-1.pre - cleanup shared-motif patch - use simpler build.sh script Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19c-1.pre1.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS/stable/cmucl-19c-1.pre1.src.rpm 19c final was just released Friday... will update here asap (probably Monday) * Fri Dec 02 2005 Rex Dieter <rexdieter[AT]users.sf.net> 19c-2 - 19c (final) Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19c-2.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS.stable/cmucl-19c-2.src.rpm I have a need for cmucl packages, so I figured I'd put in some work into a review. rpmlint output: W: cmucl devel-file-in-non-devel-package /usr/lib/cmucl/internals.h E: cmucl no-signature E: cmucl-extras requires-on-release cmucl 19c-2 W: cmucl-extras no-documentation E: cmucl-extras no-signature Issues: - The single header file that's included in the main package. I can't imagine it's worth creating a separate -devel package for one file, but that would have to be decided by someone more knowledgeable than I. Is it needed for the compiler to operate? - The license. Upstream does not include a separate license text. The specfile indicates "Public Domain", but the README file says "... is mostly in the public domain". Section 1.3 of the manual lists a number of copyright statements; I will include them at the end of this review. An expert will need to make sure these are acceptable, and then decide whether it's reasonable to call the whole "Public Domain". - rpmlint complains "E: cmucl-extras requires-on-release cmucl 19c-2". Unfortunately I don't know what this means. (rpmlint -i provides no explanation.) - rpmlint complains "W: cmucl-extras no-documentation", and indeed there is no documentation included in the package. I think it would be reasonable to explain just what some of this stuff is. At minimum, the %description for the extras package could list what is included. - The spec includes two separate build methods. Are they both needed? - ExclusiveArch: %{ix86} - Is there no portability at all to x86_64 or PPC? - Since the compiler builds itself, the srpm includes a pre-built copy. I believe this is accepted practice but I figured I'd make sure. Here are the copyright statements from the manual: CMUCL's CLOS implementation is derived from the PCL reference implementation written at Xerox PARC: Copyright (c) 1985, 1986, 1987, 1988, 1989, 1990 Xerox Corporation. All rights reserved. Use and copying of this software and preparation of derivative works based upon this software are permitted. Any distribution of this software or derivative works must comply with all applicable United States export control laws. This software is made available AS IS, and Xerox Corporation makes no warranty about the software, its performance or its conformity to any specification. Its implementation of the LOOP macro was derived from code from Symbolics, which was derived from code written at MIT: Portions of LOOP are Copyright (c) 1986 by the Massachusetts Institute of Technology. All Rights Reserved. Permission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the M.I.T. copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. The names "M.I.T." and "Massachusetts Institute of Technology" may not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Notice must be given in supporting documentation that copying distribution is by permission of M.I.T. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. Portions of LOOP are Copyright (c) 1989, 1990, 1991, 1992 by Symbolics, Inc. All Rights Reserved. Permission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the Symbolics copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. The name "Symbolics" may not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Notice must be given in supporting documentation that copying distribution is by permission of Symbolics. Symbolics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. Symbolics, CLOE Runtime, and Minima are trademarks, and CLOE, Genera, and Zetalisp are registered trademarks of Symbolics, Inc. The CLX code is copyrighted by Texas Instruments Incorporated: Copyright (C) 1987 Texas Instruments Incorporated. Permission is granted to any individual or institution to use, copy, modify, and distribute this software, provided that this complete copyright and permission notice is maintained, intact, in all copies and supporting documentation. Texas Instruments Incorporated provides this software "as is" without express or implied warranty. Thanks. > W: cmucl devel-file-in-non-devel-package /usr/lib/cmucl/internals.h Since cmucl *is* a compiler afterall, I think it's ok to include it here. (-: > - The license. Looks like a mix of PD and MIT. I'll fix that. > - The spec includes two separate build methods. Are they both needed? method 1: use included/internal cmucl for bootstrap method 2: use (previous) rpm-built cmucl for bootstrap. Obviously, at least the first iteration for inclusion in Extras will have to be method 1. > - rpmlint complains "W: cmucl-extras no-documentation" I'll see if I can find some. (-: > - ExclusiveArch: %{ix86} - Is there no portability at all to x86_64 or PPC? Yes, no. It can theoretically work, but there's no bootstrap binary available from upstream, nor do I have any x86_64 or ppc box of my own to attempt to make one. > Since cmucl *is* a compiler afterall, I think it's ok to include it here. (-: I would tend to agree; I wonder why rpmlint doesn't complain about gcc which does the same thing. Ahhh, it has a specific exception. > method 1: use included/internal cmucl for bootstrap > method 2: use (previous) rpm-built cmucl for bootstrap. > > Obviously, at least the first iteration for inclusion in Extras will have to > be method 1. I see. Do you plan to switch it over once the package is included? > > - ExclusiveArch: %{ix86} - Is there no portability at all to x86_64 or PPC? > > Yes, no. It can theoretically work, but there's no bootstrap binary available > from upstream, nor do I have any x86_64 or ppc box of my own to attempt to > make one. I can give you an account on an x86_64 machine if you like, but I can't help you with PPC. I think the requires-on-release is fixed by replacing the Requires: %{name} = %{version}-%{release} lines by Requires: %{name} = %{version} >> Obviously, at least the first iteration for inclusion in Extras will have to >> be method 1. > I see. Do you plan to switch it over once the package is included? Yep. So let's see where we're at. Looking at the specfile for 19c-2: The license needs fixing. rpmlint complains about requires-on-release. Did you want access to an x86_64 machine to try and get a bootstrap going? > The license needs fixing. I think we'll go with Public Domain/MIT > rpmlint complains about requires-on-release. I think that's bogus, and not something worth worrying about. > Did you want access to an x86_64 machine to try and get a bootstrap going? No, I have a x86_64 box now, but don't have much time to invest in that. OK, I just did a fresh build on FC4 and it seems rpmlint has undergone quite a few changes since I last ran it. Here's the current output: W: cmucl devel-file-in-non-devel-package /usr/lib/cmucl/internals.h W: cmucl-extras no-documentation E: cmucl-extras script-without-shellbang /usr/lib/cmucl/lib/mh-scan This is a compiler so it's expected to contain devel files. There isn't any documentation to include in cmucl-extras. mh-scan isn't a shell script. So this rpmlint output is OK. Now the only remaining issue is a mock build. Unfortunately it just failed for me: + ./src/tools/build.sh -b i386-redhat-linux-gnu -C 'linux_gencgc x86' -v '19c Fedora Extras release 2.fc5' -o 'bin/lisp -noinit -batch' //starting build: Thu Mar 9 00:32:02 EST 2006 Lisp = linux_gencgc Motif = x86 ./src/tools/build.sh: line 97: time: command not found Makefile:62: Depends: No such file or directory gcc -MM -E -rdynamic -Wstrict-prototypes -Wall -g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -D__NO_CTYPE -I. -I../../src/lisp -I- -I/usr/X11R6/include ../../src/lisp/lisp.c ../../src/lisp/coreparse.c ../../src/lisp/alloc.c ../../src/lisp/monitor.c ../../src/lisp/print.c ../../src/lisp/interr.c ../../src/lisp/vars.c ../../src/lisp/parse.c ../../src/lisp/interrupt.c ../../src/lisp/search.c ../../src/lisp/validate.c ../../src/lisp/globals.c ../../src/lisp/dynbind.c ../../src/lisp/breakpoint.c ../../src/lisp/regnames.c ../../src/lisp/backtrace.c ../../src/lisp/save.c ../../src/lisp/purify.c ../../src/lisp/socket.c ../../src/lisp/runprog.c ../../src/lisp/time.c ../../src/lisp/x86-arch.c ../../src/lisp/x86-assem.S ../../src/lisp/linux-stubs.S ../../src/lisp/Linux-os.c ../../src/lisp/os-common.c ../../src/lisp/elf.c ../../src/lisp/gc.c > ,depends cc1: note: obsolete option -I- used, please use -iquote instead In file included from ../../src/lisp/lisp.c:19: ./internals.h:1:2: error: #error You need to run genesis (via build-world.sh) before compiling the startup code! [snip many similar warnings and errors] gmake: *** [Depends] Error 1 src/tools/load-world.sh: line 17: i386-redhat-linux-gnu-2/lisp/lisp: No such file or directory Failed to build i386-redhat-linux-gnu-2! error: Bad exit status from /var/tmp/rpm-tmp.53056 (%build) My apologies for not actually having tried building cmucl with mock myself yet. %changelog * Wed Mar 08 2006 Rex Dieter <rexdieter[AT]users.sf.net> 19c-3 - License: +MIT - BR: bc, time Spec Name or Url: http://apt.kde-redhat.org/apt/fedora/SPECS/cmucl-19c-3.spec SRPM Name or Url: http://apt.kde-redhat.org/apt/fedora/all/SRPMS.stable/cmucl-19c-3.src.rpm OK, everything builds fine. I think we're good to go. Approved. Thanks, importing now. Don't forget the tracking bugs for the excluded architectures. 6135 (cmucl): Build on target fedora-development-extras succeeded. Build logs may be found at http://buildsys.fedoraproject.org/logs/fedora-development-extras/6135-cmucl-19c-4.fc5/ |