aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained
diff options
context:
space:
mode:
authorLeo <thinkabit.ukim@gmail.com>2019-05-12 18:26:31 -0300
committerSören Tempel <soeren+git@soeren-tempel.net>2019-05-16 17:42:43 +0200
commit90f0cd4b0097842fc1f8c1834e5a09a08507138a (patch)
tree359c46e712309fce02843081411508e597e00bdc /unmaintained
parent13bbf3cfe9a028d1cd9a51fb85f7edfaf5628b18 (diff)
downloadaports-90f0cd4b0097842fc1f8c1834e5a09a08507138a.tar.bz2
aports-90f0cd4b0097842fc1f8c1834e5a09a08507138a.tar.xz
unmaintained/sbcl: move from testing
Dependency clisp is on unmaintained.
Diffstat (limited to 'unmaintained')
-rw-r--r--unmaintained/sbcl/APKBUILD68
-rw-r--r--unmaintained/sbcl/fix-generate-version.patch13
-rw-r--r--unmaintained/sbcl/musl-fix-threads.patch180
-rw-r--r--unmaintained/sbcl/musl-fixes.patch23
-rw-r--r--unmaintained/sbcl/pax-genesis-stage-two.patch11
-rw-r--r--unmaintained/sbcl/sbcl_prefix.patch11
6 files changed, 306 insertions, 0 deletions
diff --git a/unmaintained/sbcl/APKBUILD b/unmaintained/sbcl/APKBUILD
new file mode 100644
index 0000000000..9a699c908f
--- /dev/null
+++ b/unmaintained/sbcl/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer:
+pkgname=sbcl
+pkgver=1.4.9
+pkgrel=0
+pkgdesc="Steel Bank Common Lisp"
+url="http://www.sbcl.org/"
+arch="x86_64"
+license="custom"
+checkdepends="ed"
+makedepends="clisp linux-headers paxmark zlib-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.bz2::https://prdownloads.sourceforge.net/$pkgname/$pkgname-$pkgver-source.tar.bz2
+ pax-genesis-stage-two.patch
+ musl-fixes.patch
+ musl-fix-threads.patch
+ sbcl_prefix.patch
+ fix-generate-version.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # FIXME: This test fails (returns incorrect result), don't know why.
+ rm tests/traceroot.test.sh
+}
+
+build() {
+ cd "$builddir"
+
+ GNUMAKE=make ./make.sh clisp \
+ --prefix=/usr \
+ --with-sb-thread \
+ --with-sb-test \
+ --with-sb-unicode \
+ --with-sb-core-compression
+}
+
+check() {
+ cd "$builddir"/tests
+
+ sh run-tests.sh
+}
+
+package() {
+ cd "$builddir"
+
+ INSTALL_ROOT="$pkgdir/usr" \
+ LIB_DIR="/usr/lib" \
+ DOC_DIR="$pkgdir/usr/share/doc/$pkgname" \
+ sh install.sh
+
+ paxmark -rm "$pkgdir"/usr/bin/sbcl
+
+ install -Dm644 COPYING \
+ "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
+
+ rmdir "$pkgdir"/usr/share/doc/sbcl/html \
+ "$pkgdir"/usr/share/info 2>/dev/null || true
+}
+
+sha512sums="e0248f460f9737d47653dd520732062d2637813b550df356ecc90aa6d21fbdd74f03182d1e890c09c1da742f7d57b4fbd04a4e6dc36999aca51bb6c2952ac236 sbcl-1.4.9.tar.bz2
+cda5c7268b314145a1bdb8293c7970e077aebf3cce5dace12542bf18beb7b124bf97f4754906f2f681428869ca3060300b88cab80055a3d5881dfcdcfbe51d6d pax-genesis-stage-two.patch
+19bb9dac5997366c9778e349b707970832c5020ac55f0099dd652a8cc8c43336d34a33db2e4f7f190ab8212b064718f6999b832c249a4de7d24eae2186d6acea musl-fixes.patch
+86b8a51d518d71a3c4d3069f80bc00cccd4b97edc6c96ff12875a0727cc2b96208f35c3a11044d98881b5e6c2e607fc65506020b7ff990b257edae55eb6a1c59 musl-fix-threads.patch
+bfb6bef3b6512e487e45bc8c9cf36aa519e470690b6c7036bba7d28269bd899c60a4dfa09b5aba44830b8c002e7191276f2cf6f8f134b163d05af7b46f9849ff sbcl_prefix.patch
+acd6a154e539dde5c8c6726cc553cc79b1ba98670f61596a3f7754126de35fae1656c98963169ec5dff1551d33632e00e1a40fa65aec73a729317d814825c6a1 fix-generate-version.patch"
diff --git a/unmaintained/sbcl/fix-generate-version.patch b/unmaintained/sbcl/fix-generate-version.patch
new file mode 100644
index 0000000000..521520e86a
--- /dev/null
+++ b/unmaintained/sbcl/fix-generate-version.patch
@@ -0,0 +1,13 @@
+Don't read sbcl version from the aports git repository.
+
+--- a/generate-version.sh
++++ b/generate-version.sh
+@@ -2,7 +2,7 @@
+
+ git_available_p() {
+ # Check that (1) we have git (2) this is a git tree.
+- if ( command -v git >/dev/null && git describe >/dev/null 2>/dev/null )
++ if ( test -d .git && command -v git >/dev/null && git describe >/dev/null 2>/dev/null )
+ then
+ echo "ok"
+ else
diff --git a/unmaintained/sbcl/musl-fix-threads.patch b/unmaintained/sbcl/musl-fix-threads.patch
new file mode 100644
index 0000000000..f9705bdcfb
--- /dev/null
+++ b/unmaintained/sbcl/musl-fix-threads.patch
@@ -0,0 +1,180 @@
+Patch-Source: https://bugs.launchpad.net/sbcl/+bug/1768368
+
+diff --git a/contrib/sb-bsd-sockets/constants.lisp b/contrib/sb-bsd-sockets/constants.lisp
+index 88f5bb7c4..23fd87277 100644
+--- a/contrib/sb-bsd-sockets/constants.lisp
++++ b/contrib/sb-bsd-sockets/constants.lisp
+@@ -93,8 +93,8 @@
+ (:integer EAFNOSUPPORT "EAFNOSUPPORT")
+ (:integer EINPROGRESS "EINPROGRESS")
+
+- (:integer NETDB-INTERNAL #+hpux "h_NETDB_INTERNAL" #-hpux "NETDB_INTERNAL" "See errno.")
+- (:integer NETDB-SUCCESS #+hpux "h_NETDB_SUCCESS" #-hpux "NETDB_SUCCESS" "No problem.")
++ (:integer-no-check NETDB-INTERNAL #-os-provides-netdb-internal "-1" #+(and os-provides-netdb-internal hpux) "h_NETDB_INTERNAL" #+(and os-provides-netdb-internal (not hpux)) "NETDB_INTERNAL" "See errno.")
++ (:integer-no-check NETDB-SUCCESS #-os-provides-netdb-internal "0" #+(and os-provides-netdb-internal hpux) "h_NETDB_SUCCESS" #+(and os-provides-netdb-internal (not hpux)) "NETDB_SUCCESS" "No problem.")
+ (:integer HOST-NOT-FOUND "HOST_NOT_FOUND" "Authoritative Answer Host not found.")
+ (:integer TRY-AGAIN "TRY_AGAIN" "Non-Authoritative Host not found, or SERVERFAIL.")
+ (:integer NO-RECOVERY "NO_RECOVERY" "Non recoverable errors, FORMERR, REFUSED, NOTIMP.")
+diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c
+index fa4f5e490..60b5fea4e 100644
+--- a/src/runtime/linux-os.c
++++ b/src/runtime/linux-os.c
+@@ -187,8 +187,15 @@ isnptl (void)
+ if (strstr (buf, "NPTL")) {
+ return 1;
+ }
++ else {
++ return 0;
++ }
++ }
++ else {
++ /* If the configuration variable is empty, just assume we have a
++ * good enough thread implementation. */
++ return 1;
+ }
+- return 0;
+ }
+ #endif
+
+diff --git a/tests/foreign.test.sh b/tests/foreign.test.sh
+index 7fb757813..9ba8ed3cf 100755
+--- a/tests/foreign.test.sh
++++ b/tests/foreign.test.sh
+@@ -248,16 +248,20 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
+ (assert (= 13 foo))
+ (assert (= 42 (bar)))
+ (note "/original definitions ok")
+- (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b.bak")
+- (rename-file "$TEST_FILESTEM-b2.so" "$TEST_FILESTEM-b.so")
+- (load-shared-object (truename "$TEST_FILESTEM-b.so"))
+- (note "/reloading ok")
+- (assert (= 42 foo))
+- (assert (= 13 (bar)))
+- (note "/redefined versions ok")
+- (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
+- (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
+- (note "/renamed back to originals")
++ #+dlclose-is-noop
++ (note "/skipping reloading tests")
++ #-dlclose-is-noop
++ (progn
++ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b.bak")
++ (rename-file "$TEST_FILESTEM-b2.so" "$TEST_FILESTEM-b.so")
++ (load-shared-object (truename "$TEST_FILESTEM-b.so"))
++ (note "/reloading ok")
++ (assert (= 42 foo))
++ (assert (= 13 (bar)))
++ (note "/redefined versions ok")
++ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
++ (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
++ (note "/renamed back to originals"))
+
+ ;; test late resolution
+ #+linkage-table
+@@ -274,13 +278,17 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
+ (load-shared-object (truename "$TEST_FILESTEM-c.so"))
+ (assert (= 43 late-foo))
+ (assert (= 14 (late-bar)))
+- (unload-shared-object (truename "$TEST_FILESTEM-c.so"))
+- (multiple-value-bind (val err) (ignore-errors late-foo)
+- (assert (not val))
+- (assert (typep err 'undefined-alien-error)))
+- (multiple-value-bind (val err) (ignore-errors (late-bar))
+- (assert (not val))
+- (assert (typep err 'undefined-alien-error)))
++ #+dlclose-is-noop
++ (note "/skipping unloading tests")
++ #-dlclose-is-noop
++ (progn
++ (unload-shared-object (truename "$TEST_FILESTEM-c.so"))
++ (multiple-value-bind (val err) (ignore-errors late-foo)
++ (assert (not val))
++ (assert (typep err 'undefined-alien-error)))
++ (multiple-value-bind (val err) (ignore-errors (late-bar))
++ (assert (not val))
++ (assert (typep err 'undefined-alien-error))))
+ (note "/linkage table ok"))
+
+ (sb-ext:exit :code $EXIT_LISP_WIN) ; success convention for Lisp program
+diff --git a/tools-for-build/Makefile b/tools-for-build/Makefile
+index 3f6e4ecf9..39bab2b92 100644
+--- a/tools-for-build/Makefile
++++ b/tools-for-build/Makefile
+@@ -16,6 +16,9 @@ LDLIBS:=$(OS_LIBS)
+
+ all: grovel-headers determine-endianness where-is-mcontext
+
++dlclose-is-noop-test-helper.so: dlclose-is-noop-test-helper.c
++ @$(CC) $(LDFLAGS) -shared $< -o $@ $(LOADLIBES) $(LDLIBS)
++
+ clean:
+ rm -f *.o grovel-headers determine-endianness where-is-mcontext
+ rm -f *.exe
+diff --git a/tools-for-build/dlclose-is-noop-test-helper.c b/tools-for-build/dlclose-is-noop-test-helper.c
+new file mode 100644
+index 000000000..4be7a8e5b
+--- /dev/null
++++ b/tools-for-build/dlclose-is-noop-test-helper.c
+@@ -0,0 +1 @@
++int sbcl_dl_close_test = 42;
+diff --git a/tools-for-build/dlclose-is-noop-test.c b/tools-for-build/dlclose-is-noop-test.c
+new file mode 100644
+index 000000000..f4eab26a5
+--- /dev/null
++++ b/tools-for-build/dlclose-is-noop-test.c
+@@ -0,0 +1,19 @@
++/* test to build and run so that we know if we have a noop dlclose
++ */
++
++#include <dlfcn.h>
++#include <stddef.h>
++
++int main ()
++{
++ void * handle = dlopen("./dlclose-is-noop-test-helper.so", RTLD_NOW | RTLD_GLOBAL);
++ dlclose(handle);
++
++ handle = dlopen("./dlclose-is-noop-test-helper.so", RTLD_NOW | RTLD_NOLOAD);
++
++ if (handle != NULL) {
++ return 104;
++ } else {
++ return 0;
++ }
++}
+diff --git a/tools-for-build/grovel-features.sh b/tools-for-build/grovel-features.sh
+index ffc4307eb..bf1448a6a 100644
+--- a/tools-for-build/grovel-features.sh
++++ b/tools-for-build/grovel-features.sh
+@@ -33,4 +33,13 @@ featurep os-provides-getprotoby-r
+
+ featurep os-provides-poll
+
++featurep os-provides-netdb-internal
++
+ featurep arm-softfp
++
++# We need a helper shared library to test dlclose-is-noop
++$GNUMAKE dlclose-is-noop-test-helper.so > /dev/null 2>&1
++
++featurep dlclose-is-noop
++
++rm -f dlclose-is-noop-test-helper.so
+diff --git a/tools-for-build/os-provides-netdb-internal-test.c b/tools-for-build/os-provides-netdb-internal-test.c
+new file mode 100644
+index 000000000..cab08cc41
+--- /dev/null
++++ b/tools-for-build/os-provides-netdb-internal-test.c
+@@ -0,0 +1,12 @@
++#include <netdb.h>
++
++int main ()
++{
++#if defined NETDB_INTERNAL && defined NETDB_SUCCESS
++ return 104;
++#elif defined h_NETDB_INTERNAL && defined h_NETDB_SUCCESS
++ return 104;
++#else
++ return 0;
++#endif
++}
diff --git a/unmaintained/sbcl/musl-fixes.patch b/unmaintained/sbcl/musl-fixes.patch
new file mode 100644
index 0000000000..7581d7826d
--- /dev/null
+++ b/unmaintained/sbcl/musl-fixes.patch
@@ -0,0 +1,23 @@
+diff -upr sbcl-1.3.1.orig/src/runtime/interrupt.h sbcl-1.3.1/src/runtime/interrupt.h
+--- sbcl-1.3.1.orig/src/runtime/interrupt.h 2016-04-05 19:48:17.820002917 +0200
++++ sbcl-1.3.1/src/runtime/interrupt.h 2016-04-05 19:48:58.625144439 +0200
+@@ -14,6 +14,7 @@
+
+ #include "runtime.h"
+ #include <string.h>
++#include <signal.h>
+
+ /*
+ * This is a workaround for some slightly silly Linux/GNU Libc
+diff -upr sbcl-1.3.1.orig/src/runtime/linux-os.h sbcl-1.3.1/src/runtime/linux-os.h
+--- sbcl-1.3.1.orig/src/runtime/linux-os.h 2016-04-05 19:48:17.823336398 +0200
++++ sbcl-1.3.1/src/runtime/linux-os.h 2016-04-05 19:48:47.117967857 +0200
+@@ -24,7 +24,7 @@
+ #include <linux/version.h>
+
+ // Needs to be defined before including target-arch.h
+-typedef caddr_t os_vm_address_t;
++typedef void *os_vm_address_t;
+ typedef size_t os_vm_size_t;
+ typedef off_t os_vm_offset_t;
+ typedef int os_vm_prot_t;
diff --git a/unmaintained/sbcl/pax-genesis-stage-two.patch b/unmaintained/sbcl/pax-genesis-stage-two.patch
new file mode 100644
index 0000000000..b06dd22bb2
--- /dev/null
+++ b/unmaintained/sbcl/pax-genesis-stage-two.patch
@@ -0,0 +1,11 @@
+diff -upr sbcl-1.3.11.orig/make-target-2.sh sbcl-1.3.11/make-target-2.sh
+--- sbcl-1.3.11.orig/make-target-2.sh 2016-11-02 10:44:23.226711691 +0100
++++ sbcl-1.3.11/make-target-2.sh 2016-11-02 10:45:19.043220337 +0100
+@@ -39,6 +39,7 @@ fi
+ # system with the :SB-SHOW feature enabled, it does it rather silently,
+ # without trying to tell you about what it's doing. So unless it hangs
+ # for much longer than that, don't worry, it's likely to be normal.
++paxmark.sh -mr ./src/runtime/sbcl
+ if [ "$1" != --load ]; then
+ echo //doing warm init - compilation phase
+ echo '(load "loader.lisp") (load-sbcl-file "make-host-1.lisp")' | \
diff --git a/unmaintained/sbcl/sbcl_prefix.patch b/unmaintained/sbcl/sbcl_prefix.patch
new file mode 100644
index 0000000000..2019d0e7ec
--- /dev/null
+++ b/unmaintained/sbcl/sbcl_prefix.patch
@@ -0,0 +1,11 @@
+--- a/make-config.sh
++++ b/make-config.sh
+@@ -30,7 +30,7 @@
+ then
+ SBCL_PREFIX="$PROGRAMFILES/sbcl"
+ else
+- SBCL_PREFIX="/usr/local"
++ SBCL_PREFIX="/usr"
+ fi
+ SBCL_XC_HOST="sbcl --no-userinit --no-sysinit"
+ export SBCL_XC_HOST