diff options
Diffstat (limited to 'dev-lisp')
-rw-r--r-- | dev-lisp/Manifest.gz | bin | 3586 -> 3585 bytes | |||
-rw-r--r-- | dev-lisp/clisp/Manifest | 3 | ||||
-rw-r--r-- | dev-lisp/clisp/clisp-2.49.90.ebuild | 143 | ||||
-rw-r--r-- | dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch | 185 |
4 files changed, 331 insertions, 0 deletions
diff --git a/dev-lisp/Manifest.gz b/dev-lisp/Manifest.gz Binary files differindex cde851bc9d26..185c36cd5616 100644 --- a/dev-lisp/Manifest.gz +++ b/dev-lisp/Manifest.gz diff --git a/dev-lisp/clisp/Manifest b/dev-lisp/clisp/Manifest index afaf91a64b18..c9939473f168 100644 --- a/dev-lisp/clisp/Manifest +++ b/dev-lisp/clisp/Manifest @@ -4,8 +4,10 @@ AUX clisp-2.49-get_hostname.patch 2356 BLAKE2B fc1e5e8c2e3b9f1db8c144390564801af AUX clisp-2.49-readline-7.patch 690 BLAKE2B 7502d529c342228b722f568cc808099d9259f7cb59e28cff75a8f9c665f659bf75ea318afb7285a9ee3c1637219affaaffc3bb7001436a44d40605afe2a9432c SHA512 c5c1dd093d19d2d62db29808d418d8fce6233ad226a6b7414223e0cf8e9777231cdd69f4625ac1535a9bbc831b5a3e4fd4baad91a880f3992cd6d98220f887c4 AUX clisp-2.49-tinfo.patch 404 BLAKE2B 12d9c2a7b6f83b4c0de6f8ab4e57fc2db2f3bfffbb535c0d5793052268a6d12ca21126a8b71895353b37c0a05e268f3eee192d827e63eb71ceb01c3c03cfe176 SHA512 10f27e205557cb48fe0165bd5ee7e3a33b0dbe403fa2d10df62854c44eb762a44ef005c78e8c23a67f7ed6d3c6317c893c7760f9c2ca72b6b088adae5f03247c AUX clisp-2.49.60-after_glibc_cfree_bdb.patch 8937 BLAKE2B 93e6413fc788272a53e35835fb72e897303a59f3f6fcb5fecc0b4dc6b68b3941d8745f2df091bec59e988d449c6a4ffc60216f45edb067f505164b9f51779315 SHA512 447ece26b0af6ecadaf5d46930b5b3955bd764953a073d7bf732da313a7b6298ff10334ab1120200468ff806cb90520e3707062b0503f633016f17cc8ea53fc7 +AUX clisp-2.49.90-after_glibc_cfree_bdb.patch 8499 BLAKE2B d093b76cdf25b0822aaca87bd6055c6b58edc68e387d78d7fd979171d881fe585b674246b3a2a6f37a8412b5aef1b997210b4019a1595a07b64471cb9324656f SHA512 1b8cb29bf9caa30ca05474a67202f72f013e57d6b0d2dff1fb5ab0472df9f5c5a5b5de46922c931fa9a4d4a0a25890a05e1f7d38ddfb56c967026eef80001919 DIST clisp-2.48.tar.bz2 7885098 BLAKE2B 42ebfe4721015f522184bce710bf95d79aa7f2a239410af249a8e85d80f140344ec80daaa34f7cdbfd2ae86407984657163ce3f6e4201eb132f7c71e21523cba SHA512 3288b6a2973c924006b14bbed1e8e3e688276a187ac2a6c7851dc7ae699e7832d30e5e7eecdabc76c08c7e8e8ce1b562eb97a44570d3035e558ea2310de2b719 DIST clisp-2.49.60.tar.bz2 8745713 BLAKE2B 5dffd594c6d00c2057a98e3f93c888cd5cdc60009cd8fc987e39ff5182e71e575e148839d9c973fbfd0842b82ddf1b5918e86d128d9c79f6d0d4b6afcdc5853f SHA512 656cd59a23ba9be5304a6e0d64d79ac518072c431820b8cf95759fa8f3a66e2efe4d07939315b93e5e06b6e5348d8b32739b129a9e8ac0dc362dd5d1f1eb8aa8 +DIST clisp-2.49.90.tar.bz2 8921458 BLAKE2B 3be7cfe41038f42d8844d500877fa5c20e5c21dc0e162aa0018b297e4dfcd5374ef608793c9d809852e1f9885a155bb5b25fef8efe66016dd0ee400007386b70 SHA512 1fa7205e38883dcc863160b5418ddaaa2c45ee2d2f936de4067d1ea4a1e5043bf1235361bbbfc366afd6d8f1144497ccdccf1767ecf327f7a672b18742ceb651 DIST clisp-2.49.tar.bz2 8091011 BLAKE2B e034c581b8100837b34d0adf1ef45bd667272d062945875175958178b4ef5b11e899dfb76505eb8cb51fca6101c11a9f21fb2cc9a78a3c0f82b06166211434f7 SHA512 eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81 EBUILD clisp-2.48-r1.ebuild 4797 BLAKE2B 51c1550e35af93c381ce01eeaf51d6a2027b0b39fa4c880616db4a88d78f06acb8018850d583f13ec705e4a304f48ba09801a736f16a8625275734ab1d0f82d4 SHA512 130ffc47b63c934aa8556ea3e5d5eb8a81300d98bbbff503bdb84a1c7ad1dcbf97b092124bd841bd9b2009df5588aa78c2bda7cea34a461526199957cf44862d EBUILD clisp-2.48-r2.ebuild 4726 BLAKE2B f1110afde6cf8d5c5a2509f24705d9ddb5fc4b7c2e151ec52c002986a0b60673ea11e3643db8a383483c45eaa6c7655b07a03743712329b00201503069c57167 SHA512 afce7666a82e947f48e2eeed5ceba5f4cbe981e8f37d6e35beab4dc973a6077b8eecfebb2d1336f2476b6cfc252f5aaef552354d8dfc153920ac2d3291f76de3 @@ -14,4 +16,5 @@ EBUILD clisp-2.49-r101.ebuild 4565 BLAKE2B ec0ba0122c1638fce794a2579528534743a70 EBUILD clisp-2.49-r8.ebuild 4394 BLAKE2B e49e12b943c60d9b5c3f1272829430ecaed2ed1ce23ae87883ab5056a210fcaa73f6e1adbf8b5a7159261d1fbe9908166f2e9d08fbc6074782cd09a8220e348f SHA512 7548cca817b47bfb9b09812c9564e86f2b5092d1263919d563172555d1371c86bdd0aa7f2f4b3315237a154b911f8c025f62917f434973a608f86728873e97f5 EBUILD clisp-2.49-r9.ebuild 4464 BLAKE2B d9e5644fdcdcf0c12fc0702f2c1bcd458b8781b8e1885cd0a6b28447ca7f77e9346bfc696d06dfaa5be73a2f6b4db1a4511457f5d2a780dae1976e0290fcf34f SHA512 ba4afa4101c4581ae1a866f70d8f3ed903e81f95c03c26b492296dd4cd6b997d04d8f7235c1272dece85f52e2fdda427f2df65eae67cf2c65f9171b1476af0a5 EBUILD clisp-2.49.60.ebuild 4360 BLAKE2B e26404fbf0cc0f6c3200e8c73c8ea880b8abf7e301a151453d3abb96f54a786858042213d51fea0c7de9dbf3081233cef40b8f51bc2cb5bfa386f541e9e0ec05 SHA512 2d5f81a1a3d6b7b2b23ca01648e50d3dd661cc02105b959d31c484eca26e2a5b6814fa038d2db43a234687856a7630f674401f21716ae180d95a6d8c6b217ba6 +EBUILD clisp-2.49.90.ebuild 4203 BLAKE2B 4a352d04bf95974c6e05f14aeca8cee4f2b048ff97570a21ab762483ef4040670ac4cf6cb3abb34fb8bc650b703d0044c757edebc429e2e1261ea650e18c6033 SHA512 19c71afc4935a54f64e3ac2e6b93843f87b3d09c892ab2742bd956d9fabe50cd49558112d371daadc896521cb1d37f9a39a66db63e80b6db1886d8bb250950c5 MISC metadata.xml 1450 BLAKE2B a2d3c5142143c8ab054826effb6a0ccfce158bf636406703b1c45c5e63ae70ea0151b1982d376fc03131d8e821a85f499f98f7643b3bfc3884916c38da58227f SHA512 08cd4868b9d6f2600b13add32c2fffda8d59be7190779ef4d3bfc64ab10f13c2644b925cef0ca8f3aa06cd5c8473ef399dfaa3c3ac2cae88d627a6ad83e54128 diff --git a/dev-lisp/clisp/clisp-2.49.90.ebuild b/dev-lisp/clisp/clisp-2.49.90.ebuild new file mode 100644 index 000000000000..e1167a08a895 --- /dev/null +++ b/dev-lisp/clisp/clisp-2.49.90.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils flag-o-matic multilib toolchain-funcs + +DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp" +HOMEPAGE="http://clisp.sourceforge.net/" +SRC_URI="https://haible.de/bruno/gnu/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="2/8" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk pari +pcre postgres +readline svm -threads +unicode +zlib" +# "jit" disabled ATM + +RDEPEND=">=dev-lisp/asdf-2.33-r3 + virtual/libiconv + >=dev-libs/libsigsegv-2.10 + >=dev-libs/ffcall-1.10 + dbus? ( sys-apps/dbus ) + fastcgi? ( dev-libs/fcgi ) + gdbm? ( sys-libs/gdbm ) + gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) + pari? ( <sci-mathematics/pari-2.5.0 ) + postgres? ( >=dev-db/postgresql-8.0:* ) + readline? ( >=sys-libs/readline-7.0:0= ) + pcre? ( dev-libs/libpcre:3 ) + svm? ( sci-libs/libsvm ) + zlib? ( sys-libs/zlib ) + X? ( x11-libs/libXpm ) + hyperspec? ( dev-lisp/hyperspec ) + berkdb? ( sys-libs/db:4.8 )" + +DEPEND="${RDEPEND} + X? ( x11-misc/imake x11-proto/xextproto )" + +enable_modules() { + [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument" + for m in "$@" ; do + einfo "enabling module $m" + myconf+=" --with-module=${m}" + done +} + +BUILDDIR="builddir" + +# modules not enabled: +# * berkdb: must figure out a way to make the configure script pick up the +# currect version of the library and headers +# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs +# * matlab, netica: not in portage +# * oracle: can't install oracle-instantclient + +src_prepare() { + # More than -O1 breaks alpha/ia64 + if use alpha || use ia64; then + sed -i -e 's/-O2//g' src/makemake.in || die + fi + eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch + eapply_user +} + +src_configure() { + # We need this to build on alpha/ia64 + if use alpha || use ia64; then + replace-flags -O? -O1 + fi + + if use x86; then + append-flags -falign-functions=4 + fi + + # built-in features + local myconf="--with-ffcall --without-dynamic-modules" +# There's a problem with jit_allocai function +# if use jit; then +# myconf+=" --with-jitc=lightning" +# fi + if use threads; then + myconf+=" --with-threads=POSIX_THREADS" + fi + + # default modules + enable_modules rawsock + # optional modules + use elibc_glibc && enable_modules bindings/glibc + use X && enable_modules clx/new-clx + if use postgres; then + enable_modules postgresql + append-cppflags -I$(pg_config --includedir) + fi + if use berkdb; then + enable_modules berkeley-db + append-cppflags -I/usr/include/db4.8 + fi + use dbus && enable_modules dbus + use fastcgi && enable_modules fastcgi + use gdbm && enable_modules gdbm + use gtk && enable_modules gtk2 + use pari && enable_modules pari + use pcre && enable_modules pcre + use svm && enable_modules libsvm + use zlib && enable_modules zlib + + if use hyperspec; then + CLHSROOT="file:///usr/share/doc/hyperspec/HyperSpec/" + else + CLHSROOT="http://www.lispworks.com/reference/HyperSpec/" + fi + + # configure chokes on --sysconfdir option + local configure="./configure --prefix=/usr --enable-portability \ + --libdir=/usr/$(get_libdir) $(use_with readline) $(use_with unicode) \ + ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}" + einfo "${configure}" + ${configure} || die "./configure failed" + + IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html" + sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \ + "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes" +} + +src_compile() { + export VARTEXFONTS="${T}"/fonts + cd "${BUILDDIR}" || die + # parallel build fails + emake -j1 +} + +src_install() { + pushd "${BUILDDIR}" + make DESTDIR="${D}" prefix=/usr install-bin || die "Installation failed" + doman clisp.1 + dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE + # stripping them removes common symbols (defined but uninitialised variables) + # which are then needed to build modules... + export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*" + popd + dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png + dodoc doc/{CLOS-guide,LISP-tutorial}.txt +} diff --git a/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch new file mode 100644 index 000000000000..ae83bbb8770d --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch @@ -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) |