mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-06 05:47:13 +02:00
testing/racket: new aport
https://racket-lang.org/ A general purpose programming language in the Lisp-Scheme family
This commit is contained in:
parent
400f7e2a41
commit
a243b98556
69
testing/racket/APKBUILD
Normal file
69
testing/racket/APKBUILD
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
||||||
|
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
|
||||||
|
#
|
||||||
|
# TODO: Separate packages into subpackages?
|
||||||
|
# TODO: Install even packages from the full tarball?
|
||||||
|
# TODO: Figure out how to run tests.
|
||||||
|
pkgname=racket
|
||||||
|
pkgver=6.10.1
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="A general purpose programming language in the Lisp-Scheme family"
|
||||||
|
url="https://racket-lang.org/"
|
||||||
|
arch="all"
|
||||||
|
license="LGPL-3.0-or-later MIT"
|
||||||
|
makedepends="chrpath libffi-dev libucontext-dev paxmark"
|
||||||
|
subpackages="$pkgname-dev $pkgname-doc"
|
||||||
|
source="https://download.racket-lang.org/releases/$pkgver/installers/$pkgname-minimal-$pkgver-src.tgz
|
||||||
|
paxmark.patch
|
||||||
|
musl-fixes.patch
|
||||||
|
makefile-fix-bashism.patch"
|
||||||
|
builddir="$srcdir/$pkgname-$pkgver"
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
default_prepare
|
||||||
|
cd "$builddir"
|
||||||
|
|
||||||
|
# Remove bundled libffi to be sure that system-provided is used.
|
||||||
|
rm -Rf src/foreign/libffi
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$builddir"/src
|
||||||
|
|
||||||
|
export CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||||
|
export LDFLAGS="$LDFLAGS -lucontext"
|
||||||
|
./configure \
|
||||||
|
--build=$CBUILD \
|
||||||
|
--host=$CHOST \
|
||||||
|
--target=$CTARGET \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--enable-shared \
|
||||||
|
--disable-docs
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$builddir"/src
|
||||||
|
|
||||||
|
make install DESTDIR="$pkgdir"
|
||||||
|
|
||||||
|
cd "$pkgdir"
|
||||||
|
|
||||||
|
# Remove redundant RPATH.
|
||||||
|
chrpath -d usr/bin/racket usr/lib/racket/gracket
|
||||||
|
|
||||||
|
# Needed when running on Grsecurity kernel.
|
||||||
|
paxmark m usr/bin/racket
|
||||||
|
paxmark m usr/lib/racket/gracket
|
||||||
|
|
||||||
|
mkdir -p usr/share/licenses/$pkgname
|
||||||
|
mv usr/share/racket/COPYING* usr/share/licenses/$pkgname/
|
||||||
|
|
||||||
|
rm -Rf usr/share/applications
|
||||||
|
}
|
||||||
|
|
||||||
|
sha512sums="d342e9e3f3736ad7472e4baf6ada5e0e849377fcfeda4e38d8c0d8b11520ce97be0f37cceca36d7436858fec5fa5fc669fbe7eb0d7f97acd5fee741253c01c49 racket-minimal-6.10.1-src.tgz
|
||||||
|
ff7804e37cbab237921f7d4c334f6cbb2909e9284b7b2cec1dfd3e73ec189b8ecf0cb0cabd1abedb09020f2a57ad4c32088ea73e5cb71afdafce39a7a718b10c paxmark.patch
|
||||||
|
6af0ae984ac54f167f0513795905e9dc845e1c1554935f73958d4e21c5fad35eca791866cfdf94dfcee586ec28335d90520d769010c63cd6ab528e6be3f2c21c musl-fixes.patch
|
||||||
|
1a96718e6a065bd08f0ff046e799fd4d7657d99789b2cdda8cf7cdd8c2d91742dd34fb43f4c6fabde89a764e073bdecdd96e2caeee49feaac242d30b17d6422b makefile-fix-bashism.patch"
|
38
testing/racket/makefile-fix-bashism.patch
Normal file
38
testing/racket/makefile-fix-bashism.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 2ad51be9ccb1f0717732875edbb1bb0b33caa2a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jakub Jirutka <jakub@jirutka.cz>
|
||||||
|
Date: Thu, 15 Mar 2018 01:24:49 +0100
|
||||||
|
Subject: [PATCH] Fix bashism in Makefile for better portability
|
||||||
|
|
||||||
|
Syntax `[[ "foo" != /* ]]` is not defined by POSIX Shell Command
|
||||||
|
Language. It's supported only by ksh, Bash and ZSH. Other POSIX
|
||||||
|
shells, such as ash or dash, does not support it.
|
||||||
|
|
||||||
|
This patch replaces this problematic syntax with simple case statement
|
||||||
|
that is supported by all POSIX-sh compatible shells, including (but not
|
||||||
|
limited to) ash, bash, dash, ZSH.
|
||||||
|
|
||||||
|
Upstream-Issue: https://github.com/racket/racket/pull/1990
|
||||||
|
---
|
||||||
|
racket/src/Makefile.in | 9 ++++-----
|
||||||
|
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/racket/src/Makefile.in b/racket/src/Makefile.in
|
||||||
|
index 76483c1793..24c2e5aeba 100644
|
||||||
|
--- a/src/Makefile.in
|
||||||
|
+++ b/src/Makefile.in
|
||||||
|
@@ -109,11 +109,10 @@ plain-install:
|
||||||
|
$(MAKE) plain-install-@MAIN_VARIANT@
|
||||||
|
|
||||||
|
install-common-first:
|
||||||
|
- if [ "$(DESTDIR)" != "" ]; then \
|
||||||
|
- if [[ "$(DESTDIR)" != /* ]]; then \
|
||||||
|
- echo "expected an absolute path for DESTDIR; given: $(DESTDIR)"; exit 1; \
|
||||||
|
- fi; \
|
||||||
|
- fi
|
||||||
|
+ case "$(DESTDIR)" in \
|
||||||
|
+ "" | /*) ;; \
|
||||||
|
+ *) echo "expected an absolute path for DESTDIR; given: $(DESTDIR)"; exit 1;; \
|
||||||
|
+ esac
|
||||||
|
mkdir -p $(ALLDIRINFO)
|
||||||
|
|
||||||
|
install-common-middle:
|
26
testing/racket/musl-fixes.patch
Normal file
26
testing/racket/musl-fixes.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
This patch fixes error:
|
||||||
|
|
||||||
|
env XFORM_USE_PRECOMP=xsrc/precomp.h ../racketcgc -cqu ./xform.rkt --setup . --depends --cpp "gcc -E -I./.. -I./../include -I./../../rktio -I../../rktio -Os -fomit-frame-pointer -pthread -DUSE_SENORA_GC -DMZ_USES_SHARED_LIB " --keep-lines -o xsrc/future.c ./../src/future.c
|
||||||
|
Error [GCING] 234 in ./../src/bool.c: Function mz_long_double_eqv declared __xform_nongcing__, but includes a function call at __FLOAT_BITS.
|
||||||
|
Error [GCING] 270 in ./../src/bool.c: Function double_eqv declared __xform_nongcing__, but includes a function call at __FLOAT_BITS.
|
||||||
|
xform: Errors converting
|
||||||
|
context...:
|
||||||
|
src/racket/gc2/xform-collects/compiler/priva...:8:2: xform
|
||||||
|
src/racket/gc2/xform-collects/xform/xform-mo...: [running body]
|
||||||
|
src/racket/gc2/xform.rkt: [running body]
|
||||||
|
|
||||||
|
Resources:
|
||||||
|
* https://github.com/racket/racket/issues/1638
|
||||||
|
* https://github.com/NixOS/nixpkgs/pull/31017
|
||||||
|
* https://github.com/racket/racket/pull/1886
|
||||||
|
|
||||||
|
--- a/collects/compiler/private/xform.rkt
|
||||||
|
--- a/collects/compiler/private/xform.rkt
|
||||||
|
@@ -924,6 +924,7 @@
|
||||||
|
|GetStdHandle| |__CFStringMakeConstantString|
|
||||||
|
_vswprintf_c
|
||||||
|
malloc strdup
|
||||||
|
+ __FLOAT_BITS __DOUBLE_BITS ; musl
|
||||||
|
|
||||||
|
scheme_make_small_bignum scheme_make_small_rational scheme_make_small_complex))
|
||||||
|
(define non-functions-table
|
77
testing/racket/paxmark.patch
Normal file
77
testing/racket/paxmark.patch
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
This is nasty and quite desperate hack to make Racket built on system
|
||||||
|
with Grsecurity/PaX. Downstream patch only.
|
||||||
|
|
||||||
|
--- a/src/Makefile.in
|
||||||
|
+++ b/src/Makefile.in
|
||||||
|
@@ -28,9 +28,9 @@
|
||||||
|
# but it can also redirect to an existing Racket executable
|
||||||
|
# that is the same as the version being built (which is
|
||||||
|
# useful for cross-compilation, for example).
|
||||||
|
-RUN_THIS_RACKET_CGC = racket/racket@CGC@
|
||||||
|
-RUN_THIS_RACKET_MMM = racket/racket@MMM@
|
||||||
|
-RUN_THIS_RACKET_MAIN_VARIANT = racket/racket@MAIN_VARIANT@
|
||||||
|
+RUN_THIS_RACKET_CGC = paxmark m racket/racket@CGC@ && racket/racket@CGC@
|
||||||
|
+RUN_THIS_RACKET_MMM = paxmark m racket/racket@MMM@ && racket/racket@MMM@
|
||||||
|
+RUN_THIS_RACKET_MAIN_VARIANT = paxmark m racket/racket@MAIN_VARIANT@ && racket/racket@MAIN_VARIANT@
|
||||||
|
|
||||||
|
ALLDIRINFO = "$(DESTDIR)$(bindir)" \
|
||||||
|
"$(DESTDIR)$(collectsdir)" \
|
||||||
|
--- a/src/racket/Makefile.in
|
||||||
|
+++ b/src/racket/Makefile.in
|
||||||
|
@@ -46,8 +46,8 @@
|
||||||
|
|
||||||
|
# See ../../Makefile about RUN_RACKET_<X>, which
|
||||||
|
# typically redirects to RUN_THIS_RACKET_<X>:
|
||||||
|
-RUN_THIS_RACKET_CGC = ./racket@CGC@
|
||||||
|
-RUN_THIS_RACKET_MMM = ./racket@MMM@
|
||||||
|
+RUN_THIS_RACKET_CGC = paxmark m ./racket@CGC@; ./racket@CGC@
|
||||||
|
+RUN_THIS_RACKET_MMM = paxmark m ./racket@MMM@; ./racket@MMM@
|
||||||
|
|
||||||
|
MZSRC = $(srcdir)/src
|
||||||
|
|
||||||
|
@@ -199,6 +199,7 @@
|
||||||
|
|
||||||
|
racket@CGC@@NOT_OSX@@NOT_MINGW@: libracket.@LIBSFX@ libmzgc.@LIBSFX@ main.@LTO@ $(LIBRKTIO_FOR_LIB) $(SPECIALIZINGOBJECTS)
|
||||||
|
@MZLINKER@ -o racket@CGC@ main.@LTO@ $(SPECIALIZINGOBJECTS) libracket.@LIBSFX@ libmzgc.@LIBSFX@ $(LIBRKTIO_FOR_LIB) @LDFLAGS@ @LIBS@
|
||||||
|
+ paxmark m racket@CGC@
|
||||||
|
|
||||||
|
mzcom@CGC@@NOT_MINGW@:
|
||||||
|
$(NOOP)
|
||||||
|
@@ -402,6 +403,7 @@
|
||||||
|
$(MAKE) unix-@INSTALL_LIBS_ENABLE@-libs-cgc
|
||||||
|
cd ..; $(ICP) racket/racket@CGC@ "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@"
|
||||||
|
cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@"
|
||||||
|
+ cd ..; paxmark m "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@"
|
||||||
|
cd ..; cp racket/mzdyn.o "$(DESTDIR)$(libpltdir)/mzdyn.o"
|
||||||
|
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
|
||||||
|
|
||||||
|
@@ -420,6 +422,7 @@
|
||||||
|
unix-install-3m:
|
||||||
|
cd ..; $(ICP) racket/racket@MMM@ "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@"
|
||||||
|
cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@"
|
||||||
|
+ cd ..; paxmark m "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@"
|
||||||
|
$(MAKE) unix-@INSTALL_LIBS_ENABLE@-libs-3m
|
||||||
|
cd ..; $(ICP) racket/mzdyn3m.o "$(DESTDIR)$(libpltdir)/mzdyn3m.o"
|
||||||
|
@RUN_RACKET_MMM@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
|
||||||
|
--- a/src/racket/gc2/Makefile.in
|
||||||
|
+++ b/src/racket/gc2/Makefile.in
|
||||||
|
@@ -522,6 +522,7 @@
|
||||||
|
|
||||||
|
../racket@MMM@@NOT_OSX@@NOT_MINGW@: main.@LTO@ ../libracket3m.@LIBSFX@ $(LIBRKTIO_FOR_LIB)
|
||||||
|
cd ..; @MZLINKER@ -o racket@MMM@ @PROFFLAGS@ gc2/main.@LTO@ libracket3m.@LIBSFX@ $(LIBRKTIO_UP_FOR_LIB) @LDFLAGS@ $(LIBS)
|
||||||
|
+ paxmark m ../racket@MMM@
|
||||||
|
|
||||||
|
# The above "cd .." prevents a problem with libtool's generated script in --enable-shared mode,
|
||||||
|
# at least for Mac OS X. Beware of changing LIBS or LDFLAGS to inclucde something with a relative
|
||||||
|
|
||||||
|
--- a/src/lt/ltmain.sh
|
||||||
|
+++ b/src/lt/ltmain.sh
|
||||||
|
@@ -5453,6 +5453,7 @@
|
||||||
|
|
||||||
|
*)
|
||||||
|
$echo >> $output "\
|
||||||
|
+ paxmark m \"\$progdir/\$program\"
|
||||||
|
exec \"\$progdir/\$program\" \${1+\"\$@\"}
|
||||||
|
"
|
||||||
|
;;
|
||||||
|
;;
|
Loading…
Reference in New Issue
Block a user