clisp
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Licensed under the GNU General Public License, version 3.
|
||||
# See the file http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
from pisi.actionsapi import autotools
|
||||
from pisi.actionsapi import get
|
||||
from pisi.actionsapi import pisitools
|
||||
from pisi.actionsapi import shelltools
|
||||
|
||||
shelltools.export("CFLAGS", "%s -Wa,--noexecstack" % get.CFLAGS())
|
||||
shelltools.export("LDFLAGS", "%s -Wl,-z,noexecstack" % get.LDFLAGS())
|
||||
|
||||
def setup():
|
||||
shelltools.export("LC_ALL", "en_US.UTF-8")
|
||||
shelltools.export("FORCE_UNSAFE_CONFIGURE", "1")
|
||||
autotools.rawConfigure("--prefix=/usr \
|
||||
--fsstnd=PisiLinux \
|
||||
--hyperspec=http://www.lispworks.com/documentation/HyperSpec/ \
|
||||
--with-module=bindings/glibc \
|
||||
--with-module=clx/new-clx \
|
||||
--with-module=dbus \
|
||||
--with-module=fastcgi \
|
||||
--with-module=gdbm \
|
||||
--with-module=gtk2 \
|
||||
--with-module=postgresql \
|
||||
--with-module=rawsock \
|
||||
--with-module=readline \
|
||||
--with-module=regexp \
|
||||
--with-module=syscalls \
|
||||
--with-module=zlib \
|
||||
--with-module=pcre \
|
||||
--with-ffcall \
|
||||
--with-dynamic-ffi")
|
||||
def build():
|
||||
autotools.make("-C src -j1")
|
||||
|
||||
def install():
|
||||
shelltools.cd("src")
|
||||
autotools.make("-j1 DESTDIR=%s prefix=/usr install-bin" % (get.installDIR()))
|
||||
|
||||
shelltools.chmod("%s/usr/bin/clisp-link" % get.installDIR(), 0755)
|
||||
|
||||
shelltools.cd("..")
|
||||
pisitools.dohtml("doc/impnotes.css","doc/impnotes.html","doc/_clisp.html","doc/clisp.png")
|
||||
pisitools.dodoc("doc/Symbol-Table.text","doc/CLOS-guide.txt","doc/LISP-tutorial.txt")
|
||||
|
||||
pisitools.doman("doc/_clisp.1")
|
||||
pisitools.rename("/usr/share/man/man1/_clisp.1", "clisp.1")
|
||||
@@ -0,0 +1,185 @@
|
||||
diff -r -U3 clisp-2.49.90.orig/modules/berkeley-db/bdb.c clisp-2.49.90/modules/berkeley-db/bdb.c
|
||||
--- clisp-2.49.90.orig/modules/berkeley-db/bdb.c 2018-01-27 12:03:01.000000000 +0100
|
||||
+++ clisp-2.49.90/modules/berkeley-db/bdb.c 2018-02-12 20:37:24.203803219 +0100
|
||||
@@ -2216,7 +2216,13 @@
|
||||
c_data.compact_timeout = timeout;
|
||||
c_data.compact_pages = pages;
|
||||
SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end));
|
||||
- pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
|
||||
+ /* ====
|
||||
+ * compact_empty_buckets is in bdb-5.3 as part of output stats
|
||||
+ * however this version use bdb-4.8 which does not have it
|
||||
+ * ====
|
||||
+ *
|
||||
+ * pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
|
||||
+ * */
|
||||
pushSTACK(uint32_to_I(c_data.compact_pages_free));
|
||||
pushSTACK(uint32_to_I(c_data.compact_pages_examine));
|
||||
pushSTACK(uint32_to_I(c_data.compact_levels));
|
||||
diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp clisp-2.49.90/modules/bindings/glibc/linux.lisp
|
||||
--- clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp 2018-01-10 00:32:25.000000000 +0100
|
||||
+++ clisp-2.49.90/modules/bindings/glibc/linux.lisp 2018-02-12 20:48:22.467775536 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
;; Foreign functions provided by the Linux C library version 6,
|
||||
;; i.e. the GNU C library version 2.0.7.
|
||||
;; Bruno Haible 10.4.1998, 19.4.1998
|
||||
-;; Sam Steingold 2002-2008, 2011
|
||||
+;; Sam Steingold 2002-2008, 2011, 2013, 2016-2017
|
||||
|
||||
;; NB: quite a few functions here have more portable counterparts in POSIX
|
||||
|
||||
@@ -686,9 +686,8 @@
|
||||
(def-call-out system? (:arguments (null c-string))
|
||||
(:return-type boolean) (:name "system"))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out canonicalize_file_name (:arguments (name c-string))
|
||||
-; (:return-type c-string :malloc-free))
|
||||
+(def-call-out canonicalize_file_name (:arguments (name c-string))
|
||||
+ (:return-type c-string :malloc-free))
|
||||
|
||||
(def-call-out realpath
|
||||
(:arguments (name c-string)
|
||||
@@ -1040,9 +1039,8 @@
|
||||
(def-call-out access (:arguments (name c-string) (type int))
|
||||
(:return-type int))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out euidaccess (:arguments (name c-string) (type int))
|
||||
-; (:return-type int))
|
||||
+(def-call-out euidaccess (:arguments (name c-string) (type int))
|
||||
+ (:return-type int))
|
||||
|
||||
(defconstant SEEK_SET 0)
|
||||
(defconstant SEEK_CUR 1)
|
||||
@@ -1093,9 +1091,8 @@
|
||||
;(def-call-out getcwd (:arguments (buf c-string :out) (size size_t)) ; ??
|
||||
; (:return-type c-string))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out get_current_dir_name (:arguments)
|
||||
-; (:return-type c-string :malloc-free))
|
||||
+(def-call-out get_current_dir_name (:arguments)
|
||||
+ (:return-type c-string :malloc-free))
|
||||
|
||||
;(def-call-out getwd (:arguments (buf c-string :out)) ; ??
|
||||
; (:return-type c-string))
|
||||
@@ -1323,8 +1320,7 @@
|
||||
; (:arguments (size int) (list (c-ptr (c-array gid_t ??)) :out)) ; ??
|
||||
; (:return-type int))
|
||||
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
|
||||
+(def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
|
||||
(def-call-out setuid (:arguments (uid uid_t)) (:return-type int))
|
||||
(def-call-out setreuid (:arguments (ruid uid_t) (euid uid_t))
|
||||
(:return-type int))
|
||||
@@ -1821,8 +1817,7 @@
|
||||
(:return-type c-string :malloc-free))
|
||||
(def-call-out ungetc (:arguments (c int) (fp FILE))
|
||||
(:return-type int))
|
||||
-; You can uncomment this if your compiler sets __USE_GNU
|
||||
-; (def-call-out fcloseall (:arguments) (:return-type int))
|
||||
+(def-call-out fcloseall (:arguments) (:return-type int))
|
||||
(def-call-out fdopen (:arguments (fildes int) (mode c-string))
|
||||
(:return-type c-pointer))
|
||||
(def-call-out fileno (:arguments (fp FILE)) (:return-type int))
|
||||
@@ -1900,11 +1895,11 @@
|
||||
(:return-type (c-ptr-null dirent)))
|
||||
(def-call-out readdir64 (:arguments (dirp c-pointer))
|
||||
(:return-type (c-ptr-null dirent64)))
|
||||
-(def-call-out readdir_r
|
||||
+(def-call-out readdir_r ; deprecated
|
||||
(:arguments (dirp c-pointer) (entry (c-ptr dirent) :out :alloca)
|
||||
(result (c-ptr (c-ptr dirent)) :out :alloca)) ; ??
|
||||
(:return-type int))
|
||||
-(def-call-out readdir64_r
|
||||
+(def-call-out readdir64_r ; deprecated
|
||||
(:arguments (dirp c-pointer) (entry (c-ptr dirent64) :out :alloca)
|
||||
(result (c-ptr (c-ptr dirent64)) :out :alloca)) ; ??
|
||||
(:return-type int))
|
||||
diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/test.tst clisp-2.49.90/modules/bindings/glibc/test.tst
|
||||
--- clisp-2.49.90.orig/modules/bindings/glibc/test.tst 2018-01-10 00:04:26.000000000 +0100
|
||||
+++ clisp-2.49.90/modules/bindings/glibc/test.tst 2018-02-12 20:50:48.225769407 +0100
|
||||
@@ -14,6 +14,16 @@
|
||||
(= linux:DT_DIR (linux:dirent64-d_type (show (linux:readdir64 *d*)))) T
|
||||
(linux:closedir *d*) 0
|
||||
|
||||
+(stringp (show (linux:get-domain-name))) T
|
||||
+(stringp (show (linux:get-host-name))) T
|
||||
+
|
||||
+;; usually __USE_GNU is defined, so this should work:
|
||||
+(let* ((d (linux:get_current_dir_name))
|
||||
+ (c (linux:canonicalize_file_name (concatenate 'string d "/."))))
|
||||
+ (or (string= d c)
|
||||
+ (list :cur-dir d :canonical c)))
|
||||
+T
|
||||
+
|
||||
(defparameter *d* (show (linux:opendir "."))) *D*
|
||||
(linux:dirent-d_name (show (linux:readdir *d*))) "."
|
||||
(linux:dirent-d_name (show (linux:readdir *d*))) ".."
|
||||
diff -r -U3 clisp-2.49.90.orig/src/foreign1.lisp clisp-2.49.90/src/foreign1.lisp
|
||||
--- clisp-2.49.90.orig/src/foreign1.lisp 2018-01-10 00:04:26.000000000 +0100
|
||||
+++ clisp-2.49.90/src/foreign1.lisp 2018-02-12 21:03:56.768736245 +0100
|
||||
@@ -805,14 +805,17 @@
|
||||
c-name (to-c-string c-name) (third variable) (first variable))
|
||||
(when *foreign-guard* (format *coutput-stream* "# endif~%"))))
|
||||
(dolist (function *function-list*)
|
||||
- (let ((c-name (first function)))
|
||||
- (when *foreign-guard*
|
||||
- (format *coutput-stream* "# if defined(HAVE_~A)~%"
|
||||
- (string-upcase c-name)))
|
||||
+ (let ((c-name (first function))
|
||||
+ (guard (fourth function)))
|
||||
+ (when guard
|
||||
+ (format *coutput-stream* "# if ~A~%"
|
||||
+ (if (eq guard t)
|
||||
+ (format nil "defined(HAVE_~A)" (string-upcase c-name))
|
||||
+ guard)))
|
||||
(format *coutput-stream*
|
||||
" register_foreign_function((void*)&~A,~A,~D);~%"
|
||||
c-name (to-c-string c-name) (svref (second function) 3))
|
||||
- (when *foreign-guard* (format *coutput-stream* "# endif~%"))))
|
||||
+ (when guard (format *coutput-stream* "# endif~%"))))
|
||||
(maphash (lambda (type fun-vec)
|
||||
(declare (ignore type))
|
||||
(let ((c-name (to-c-name (car fun-vec))))
|
||||
@@ -1083,7 +1086,7 @@
|
||||
(defmacro DEF-CALL-OUT (&whole whole-form name &rest options)
|
||||
(setq name (check-symbol name (first whole-form)))
|
||||
(let* ((alist
|
||||
- (parse-options options '(:name :arguments :return-type :language
|
||||
+ (parse-options options '(:name :arguments :return-type :language :guard
|
||||
:built-in :library :version :documentation)
|
||||
whole-form))
|
||||
(def (gensym "DEF-CALL-OUT-"))
|
||||
@@ -1095,6 +1098,7 @@
|
||||
(version (second (assoc :version alist)))
|
||||
(c-name (foreign-name name (assoc :name alist)))
|
||||
(built-in (second (assoc :built-in alist)))
|
||||
+ (guard (get-assoc :guard alist '*foreign-guard*))
|
||||
;; Maximize sharing in .fas file, reuse options
|
||||
;; parse-c-function ignores unknown options, e.g. :name
|
||||
(ctype `(PARSE-C-FUNCTION ',options ',whole-form)))
|
||||
@@ -1102,7 +1106,7 @@
|
||||
',c-name ,ctype ',properties ,library ,version NIL)))
|
||||
(EXT:COMPILER-LET ((,def ,ctype))
|
||||
(EVAL-WHEN (COMPILE)
|
||||
- (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in)))
|
||||
+ (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in ,guard)))
|
||||
(SYSTEM::EVAL-WHEN-COMPILE
|
||||
(SYSTEM::C-DEFUN ',name (C-TYPE-TO-SIGNATURE ,ctype))))
|
||||
(WHEN ,def ; found library function
|
||||
@@ -1110,10 +1114,10 @@
|
||||
(SYSTEM::%PUTD ',name ,def))
|
||||
',name)))
|
||||
|
||||
-(defun note-c-fun (c-name ctype built-in) ; not ABI, compile-time only
|
||||
+(defun note-c-fun (c-name ctype built-in guard) ; not ABI, compile-time only
|
||||
(when (system::prepare-coutput-file)
|
||||
(prepare-module)
|
||||
- (push (list c-name ctype built-in)
|
||||
+ (push (list c-name ctype built-in guard)
|
||||
*function-list*)))
|
||||
|
||||
(defun count-inarguments (arg-vector)
|
||||
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>clisp</Name>
|
||||
<Homepage>http://clisp.cons.org/</Homepage>
|
||||
<Packager>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Packager>
|
||||
<License>GPLv2</License>
|
||||
<IsA>app:console</IsA>
|
||||
<Summary>An ANSI Common Lisp Implementation</Summary>
|
||||
<Description>ANSI Common Lisp is a high-level, general-purpose programming language.</Description>
|
||||
<Archive sha1sum="7782db3789b12ac3a2f518b47bfbc13088c3ebb8" type="tarbz2">https://haible.de/bruno/gnu/clisp-2.49.92.tar.bz2</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency>dbus-devel</Dependency>
|
||||
<Dependency>gdbm-devel</Dependency>
|
||||
<Dependency>libsigsegv-devel</Dependency>
|
||||
<Dependency>ffcall-devel</Dependency>
|
||||
<Dependency>libglade-devel</Dependency>
|
||||
<Dependency>fcgi-devel</Dependency>
|
||||
<Dependency>gtk2-devel</Dependency>
|
||||
<Dependency>postgresql-lib</Dependency>
|
||||
<!-- <Dependency>pcre++-devel</Dependency> -->
|
||||
<!--Dependency>pari</Dependency-->
|
||||
<Dependency>libSM-devel</Dependency>
|
||||
<Dependency>libXaw-devel</Dependency>
|
||||
<Dependency>libXft-devel</Dependency>
|
||||
<Dependency>libXmu-devel</Dependency>
|
||||
<Dependency>libXrender-devel</Dependency>
|
||||
<Dependency>libXt-devel</Dependency>
|
||||
<Dependency>libXpm-devel</Dependency>
|
||||
<Dependency>libXext-devel</Dependency>
|
||||
<Dependency>gdk-pixbuf-devel</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch level="1">clisp-2.49.92-after_glibc_cfree_bdb.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>clisp</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency>atk</Dependency>
|
||||
<Dependency>gtk2</Dependency>
|
||||
<Dependency>dbus</Dependency>
|
||||
<Dependency>gdbm</Dependency>
|
||||
<Dependency>zlib</Dependency>
|
||||
<Dependency>fcgi</Dependency>
|
||||
<Dependency>cairo</Dependency>
|
||||
<Dependency>glib2</Dependency>
|
||||
<Dependency>libSM</Dependency>
|
||||
<Dependency>pango</Dependency>
|
||||
<Dependency>ffcall</Dependency>
|
||||
<Dependency>libICE</Dependency>
|
||||
<Dependency>libX11</Dependency>
|
||||
<Dependency>libXau</Dependency>
|
||||
<Dependency>libpcre</Dependency>
|
||||
<Dependency>libxml2</Dependency>
|
||||
<Dependency>ncurses</Dependency>
|
||||
<Dependency>libXpm</Dependency>
|
||||
<Dependency>libXext</Dependency>
|
||||
<Dependency>freetype</Dependency>
|
||||
<Dependency>harfbuzz</Dependency>
|
||||
<Dependency>readline</Dependency>
|
||||
<Dependency>fontconfig</Dependency>
|
||||
<Dependency>libglade</Dependency>
|
||||
<Dependency>libsigsegv</Dependency>
|
||||
<Dependency>gdk-pixbuf</Dependency>
|
||||
<Dependency>postgresql-lib</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="executable">/usr/bin</Path>
|
||||
<Path fileType="library">/usr/lib</Path>
|
||||
<Path fileType="data">/usr/share/vim</Path>
|
||||
<Path fileType="data">/usr/share/emacs</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
<Path fileType="localedata">/usr/share/locale</Path>
|
||||
<Path fileType="man">/usr/share/man</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>clisp-devel</Name>
|
||||
<Summary>Development files for clisp</Summary>
|
||||
<RuntimeDependencies>
|
||||
<Dependency release="current">clisp</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="data">/usr/share/aclocal</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
|
||||
<History>
|
||||
<Update release="1">
|
||||
<Date>2014-01-20</Date>
|
||||
<Version>2.49.92</Version>
|
||||
<Comment>First release</Comment>
|
||||
<Name>Serdar Soytetir</Name>
|
||||
<Email>kaptan@pisilinux.org</Email>
|
||||
</Update>
|
||||
</History>
|
||||
</PISI>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" ?>
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>clisp</Name>
|
||||
<Summary xml:lang="tr">Bir ANSI Common Lisp Uygulaması</Summary>
|
||||
<Description xml:lang="tr">ANSI Common Lisp üst düzey, genel amaçlı programlama dili.</Description>
|
||||
<Summary xml:lang="fr">Implémente de manière conforme à ANSI Common Lisp.</Summary>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>clisp-devel</Name>
|
||||
<Summary xml:lang="tr">clisp için geliştirme dosyaları</Summary>
|
||||
</Package>
|
||||
</PISI>
|
||||
@@ -0,0 +1,3 @@
|
||||
<PISI>
|
||||
<Name>programming.language.lisp</Name>
|
||||
</PISI>
|
||||
Reference in New Issue
Block a user