From 79a2abdf340267d69213dc9af1c1df1e1090e642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20A=2E=20Gomes?= Date: Mon, 9 Jan 2023 16:30:14 +0200 Subject: [PATCH 1/2] ecl: Bump to 2023.01.02 --- packages/ecl/build.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/ecl/build.sh b/packages/ecl/build.sh index 1b3912b373f5013..d89e69275850259 100644 --- a/packages/ecl/build.sh +++ b/packages/ecl/build.sh @@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://common-lisp.net/project/ecl/ TERMUX_PKG_DESCRIPTION="ECL (Embeddable Common Lisp) is an interpreter of the Common Lisp language" TERMUX_PKG_LICENSE="LGPL-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION="21.2.1" -TERMUX_PKG_REVISION=2 -TERMUX_PKG_SRCURL=https://common-lisp.net/project/ecl/static/files/release/ecl-${TERMUX_PKG_VERSION}.tgz +TERMUX_PKG_VERSION=2023.01.02 +TERMUX_PKG_SRCURL=git+https://gitlab.com/embeddable-common-lisp/ecl +_COMMIT=fc30c62ea09b0eb2e99280d05554ce99e0bd83e5 +TERMUX_PKG_GIT_BRANCH=develop TERMUX_PKG_SHA256=b15a75dcf84b8f62e68720ccab1393f9611c078fcd3afdd639a1086cad010900 TERMUX_PKG_DEPENDS="libandroid-support, libgmp, libgc, libffi" TERMUX_PKG_HOSTBUILD=true @@ -12,6 +13,18 @@ TERMUX_PKG_NO_STATICSPLIT=true TERMUX_PKG_BLACKLISTED_ARCHES="i686, x86_64" TERMUX_PKG_HAS_DEBUG=false +termux_step_post_get_source() { + git fetch --unshallow + git checkout $_COMMIT + + local version="$(git log -1 --format=%cs | sed 's/-/./g')" + if [ "$version" != "$TERMUX_PKG_VERSION" ]; then + echo -n "ERROR: The specified version \"$TERMUX_PKG_VERSION\"" + echo " is different from what is expected to be: \"$version\"" + return 1 + fi +} + # See https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/INSTALL # for upstream cross build guide. From dcba4de5cc49178fc6af57574193957f2a1b187a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20A=2E=20Gomes?= Date: Mon, 9 Jan 2023 16:34:30 +0200 Subject: [PATCH 2/2] new package: sbcl --- disabled-packages/sbcl/build.sh | 25 ----------------- disabled-packages/sbcl/make-config.sh.patch | 15 ----------- packages/sbcl/build.sh | 23 ++++++++++++++++ packages/sbcl/src-code-android-os.lisp.patch | 27 +++++++++++++++++++ packages/sbcl/src-code-run-program.c.patch | 19 +++++++++++++ .../sbcl/src-cold-build-order.lisp-expr.patch | 9 +++++++ packages/sbcl/src-runtime-run-program.c.patch | 11 ++++++++ 7 files changed, 89 insertions(+), 40 deletions(-) delete mode 100644 disabled-packages/sbcl/build.sh delete mode 100644 disabled-packages/sbcl/make-config.sh.patch create mode 100644 packages/sbcl/build.sh create mode 100644 packages/sbcl/src-code-android-os.lisp.patch create mode 100644 packages/sbcl/src-code-run-program.c.patch create mode 100644 packages/sbcl/src-cold-build-order.lisp-expr.patch create mode 100644 packages/sbcl/src-runtime-run-program.c.patch diff --git a/disabled-packages/sbcl/build.sh b/disabled-packages/sbcl/build.sh deleted file mode 100644 index f87b818aa2d3c64..000000000000000 --- a/disabled-packages/sbcl/build.sh +++ /dev/null @@ -1,25 +0,0 @@ -TERMUX_PKG_HOMEPAGE=https://www.sbcl.org/ -TERMUX_PKG_DESCRIPTION="Steel Bank Common Lisp" -TERMUX_PKG_LICENSE="custom" -TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=1.3.9 -TERMUX_PKG_SRCURL=https://prdownloads.sourceforge.net/sbcl/sbcl-${TERMUX_PKG_VERSION}-source.tar.bz2 -TERMUX_PKG_SHA256=af0f09d4379113dfd5aa255279cb3df9cb9cac0bcd65369cc43dd857ca51de6e - -termux_step_pre_configure() { - local SBCL_HOST_TARFILE=$TERMUX_PKG_CACHEDIR/sbcl-host-${TERMUX_PKG_VERSION}.tar.bz2 - if [ ! -f $SBCL_HOST_TARFILE ]; then - curl -o $SBCL_HOST_TARFILE -L http://downloads.sourceforge.net/project/sbcl/sbcl/${TERMUX_PKG_VERSION}/sbcl-${TERMUX_PKG_VERSION}-x86-64-linux-binary.tar.bz2 - cd $TERMUX_PKG_TMPDIR - tar xf $SBCL_HOST_TARFILE - cd sbcl-${TERMUX_PKG_VERSION}-x86-64-linux - INSTALL_ROOT=$TERMUX_PKG_CACHEDIR/sbcl-host sh install.sh - fi - export PATH=$PATH:$TERMUX_PKG_CACHEDIR/sbcl-host/bin - export SBCL_HOME=$TERMUX_PKG_CACHEDIR/sbcl-host/lib/sbcl -} - -termux_step_make_install() { - cd $TERMUX_PKG_SRCDIR - sh make.sh --prefix=$TERMUX_PREFIX -} diff --git a/disabled-packages/sbcl/make-config.sh.patch b/disabled-packages/sbcl/make-config.sh.patch deleted file mode 100644 index b125bd944eb36e5..000000000000000 --- a/disabled-packages/sbcl/make-config.sh.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -u -r ../sbcl-1.3.4/make-config.sh ./make-config.sh ---- ../sbcl-1.3.4/make-config.sh 2016-03-31 03:28:36.000000000 -0400 -+++ ./make-config.sh 2016-04-10 16:43:40.651905145 -0400 -@@ -754,8 +754,9 @@ - # cross-compilers! - # - # FIXME: integrate to grovel-features, mayhaps --$GNUMAKE -C tools-for-build determine-endianness -I ../src/runtime --tools-for-build/determine-endianness >> $ltf -+# $GNUMAKE -C tools-for-build determine-endianness -I ../src/runtime -+# tools-for-build/determine-endianness >> $ltf -+echo " :little-endian" >> $ltf # Termux patch. - - export sbcl_os sbcl_arch - sh tools-for-build/grovel-features.sh >> $ltf diff --git a/packages/sbcl/build.sh b/packages/sbcl/build.sh new file mode 100644 index 000000000000000..cffbaedf5e8d22f --- /dev/null +++ b/packages/sbcl/build.sh @@ -0,0 +1,23 @@ +TERMUX_PKG_HOMEPAGE=https://www.sbcl.org/ +TERMUX_PKG_DESCRIPTION="Steel Bank Common Lisp" +TERMUX_PKG_LICENSE="BSD" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=2.3.0 +TERMUX_PKG_SRCURL=https://prdownloads.sourceforge.net/sbcl/sbcl-${TERMUX_PKG_VERSION}-source.tar.bz2 +TERMUX_PKG_BUILD_DEPENDS="ecl" +TERMUX_PKG_SHA256=bf743949712ae02cb7493f3b8b57ce241948bf61131e36860ddb334da1439c97 + +termux_step_make() { + cd $TERMUX_PKG_SRCDIR + XC_HOST="$TERMUX_PREFIX/bin/ecl --norc --c-stack 16777217" + ./make.sh --prefix=$TERMUX_PREFIX \ + --xc-host="$XC_HOST" \ + --with-android \ + --fancy \ + --without-gcc-tls +} + +termux_step_make_install() { + cd $TERMUX_PKG_SRCDIR + ./install.sh +} diff --git a/packages/sbcl/src-code-android-os.lisp.patch b/packages/sbcl/src-code-android-os.lisp.patch new file mode 100644 index 000000000000000..aaae6000f745132 --- /dev/null +++ b/packages/sbcl/src-code-android-os.lisp.patch @@ -0,0 +1,27 @@ +--- a/src/code/android-os.lisp ++++ b/src/code/android-os.lisp +@@ -19,24 +19,6 @@ + "Return a string describing the supporting software." + "Android") + +-;;; FIXME: More duplicated logic here vrt. other oses. Abstract into +-;;; uname-software-version? +-(defun software-version () +- "Return a string describing version of the supporting software, or NIL +- if not available." +- (or *software-version* +- (setf *software-version* +- (sb-alien:with-alien +- ((ptr (* char) +- (sb-alien:alien-funcall +- (sb-alien:extern-alien "software_version" +- (function (* sb-alien:char)))))) +- (and (not (sb-alien:null-alien ptr)) +- (unwind-protect +- (sb-alien:with-alien ((c-string sb-alien:c-string ptr)) +- c-string) +- (sb-alien:free-alien ptr))))))) +- + ;;; Return user time, system time, and number of page faults. + (defun get-system-info () + (multiple-value-bind diff --git a/packages/sbcl/src-code-run-program.c.patch b/packages/sbcl/src-code-run-program.c.patch new file mode 100644 index 000000000000000..8834626c12bc7a5 --- /dev/null +++ b/packages/sbcl/src-code-run-program.c.patch @@ -0,0 +1,19 @@ +--- a/src/code/run-program.lisp ++++ b/src/code/run-program.lisp +@@ -1329,14 +1329,7 @@ Users Manual for details about the PROCESS structure. + (or sb-sys::*software-version* + (setf sb-sys::*software-version* + (possibly-base-stringize +- #+linux +- (with-open-file (f "/proc/sys/kernel/osrelease") (read-line f)) +- #-linux + (string-trim '(#\newline) + (%with-output-to-string (stream) +- (run-program "/bin/uname" +- ;; "-r" on haiku just prints "1" +- ;; but "-v" prints some detail. +- #+haiku '("-v") +- #-haiku '("-r") +- :output stream))))))) ++ (run-program "/data/data/com.termux/files/usr/bin/uname" ++ '("-r") :output stream))))))) diff --git a/packages/sbcl/src-cold-build-order.lisp-expr.patch b/packages/sbcl/src-cold-build-order.lisp-expr.patch new file mode 100644 index 000000000000000..af05be962e120b3 --- /dev/null +++ b/packages/sbcl/src-cold-build-order.lisp-expr.patch @@ -0,0 +1,9 @@ +--- a/src/cold/build-order.lisp-expr ++++ b/src/cold/build-order.lisp-expr +@@ -490,7 +490,6 @@ + #+android ("src/code/android-os" :not-host) + #+sunos ("src/code/sunos-os" :not-host) + #+bsd ("src/code/bsd-os" :not-host) +- #+linux ("src/code/linux-os" :not-host) + #+haiku ("src/code/haiku-os" :not-host) + #+win32 ("src/code/win32-os" :not-host) diff --git a/packages/sbcl/src-runtime-run-program.c.patch b/packages/sbcl/src-runtime-run-program.c.patch new file mode 100644 index 000000000000000..150e561574886f8 --- /dev/null +++ b/packages/sbcl/src-runtime-run-program.c.patch @@ -0,0 +1,11 @@ +--- a/src/runtime/run-program.c ++++ b/src/runtime/run-program.c +@@ -144,7 +144,7 @@ void closefds_range(unsigned int first, unsigned int last) + unsigned int close_fd; + if (last == ~0U) + { +-#ifdef SVR4 ++#if defined(SVR4) || defined(LISP_FEATURE_ANDROID) + last = sysconf(_SC_OPEN_MAX)-1; + #else + last = getdtablesize()-1;