diff --git a/packages/gnustep-make/build.sh b/packages/gnustep-make/build.sh index c893d5e4ebe07e2..8bcf74e8e94fb81 100644 --- a/packages/gnustep-make/build.sh +++ b/packages/gnustep-make/build.sh @@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="The GNUstep makefile package" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.9.3" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/gnustep/tools-make/archive/refs/tags/make-${TERMUX_PKG_VERSION//./_}.tar.gz TERMUX_PKG_SHA256=aad12caecb0398b099f3b8b0282cecc3f01a9f371200641b2e1e535ae6ee2543 TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/gnustep-make/do-not-edit-path.patch b/packages/gnustep-make/do-not-edit-path.patch new file mode 100644 index 000000000000000..2bd95b3f92d132a --- /dev/null +++ b/packages/gnustep-make/do-not-edit-path.patch @@ -0,0 +1,26 @@ +This prevents GNUstep.sh from editing $PATH +to insert $TERMUX_PREFIX/bin to $PATH, +which is important because: +- having $TERMUX_PREFIX/bin in $PATH severely breaks cross-compilations +- on-device builds already have $TERMUX_PREFIX/bin in $PATH at all times, so editing it is not necessary for on-device builds + +Also, similarly prevent GNUstep.sh from inserting $TERMUX_PREFIX/lib to $LD_LIBRARY_PATH, for similar reasons + +--- a/GNUstep.sh.in ++++ b/GNUstep.sh.in +@@ -332,6 +332,7 @@ done + # + old_IFS="$IFS" + IFS=: ++GNUSTEP_TOOLS_PATHLIST= + for dir in $GNUSTEP_TOOLS_PATHLIST; do + + # Prepare the path_fragment +@@ -365,6 +365,7 @@ GNUSTEP_LIBRARIES_PATHLIST=`$GNUSTEP_MAKEFILES/print_unique_pathlist.sh "$GNUSTE + + old_IFS="$IFS" + IFS=: ++GNUSTEP_LIBRARIES_PATHLIST= + for dir in $GNUSTEP_LIBRARIES_PATHLIST; do + + # prepare the path_fragment for libraries and this dir diff --git a/packages/libgnustep-base/build.sh b/packages/libgnustep-base/build.sh index df578825428b022..66f9bb3b16456bb 100644 --- a/packages/libgnustep-base/build.sh +++ b/packages/libgnustep-base/build.sh @@ -3,8 +3,8 @@ TERMUX_PKG_DESCRIPTION="A library of general-purpose, non-graphical Objective C TERMUX_PKG_LICENSE="GPL-2.0, LGPL-2.1" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="1.31.1" -TERMUX_PKG_REVISION=2 -TERMUX_PKG_SRCURL=https://github.com/gnustep/libs-base/releases/download/base-${TERMUX_PKG_VERSION//./_}/gnustep-base-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_REVISION=3 +TERMUX_PKG_SRCURL="https://github.com/gnustep/libs-base/releases/download/base-${TERMUX_PKG_VERSION//./_}/gnustep-base-${TERMUX_PKG_VERSION}.tar.gz" TERMUX_PKG_SHA256=e7546f1c978a7c75b676953a360194a61e921cb45a4804497b4f346a460545cd TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_UPDATE_VERSION_REGEXP='(?<=-).+' @@ -40,57 +40,6 @@ ac_cv_func_setpgrp_void=yes " termux_step_pre_configure() { - local bin="$TERMUX_PKG_BUILDDIR/bin" - mkdir -p "$bin" - local sh="$(command -v sh)" - for cmd in CC CPP CXX; do - local wrapper="$bin/$(basename $(eval echo \${$cmd}))" - cat > "$wrapper" <<-EOF - #!${sh} - unset LD_PRELOAD - unset LD_LIBRARY_PATH - exec $(command -v $(eval echo \${$cmd})) "\$@" - EOF - chmod 0700 "$wrapper" - done - export PATH="$bin":$PATH - - rm -f cross.config + rm cross.config touch cross.config - - # In configure step, $TERMUX_PREFIX will be appended to PATH, and - # it will break the build process. Rename these tools and recover - # later if not on device. - # See https://github.com/gnustep/libs-base/blob/5ea68724ff6b49d935101246de38ffd955d57f50/configure.ac#L1016 - if [ "$TERMUX_ON_DEVICE_BUILD" = false ]; then - local _tool - for _tool in awk bash cat chmod dirname expr grep mkdir mv rm sed sort tr; do - if [ -e $TERMUX_PREFIX/bin/$_tool ]; then - mv $TERMUX_PREFIX/bin/{$_tool,$_tool.gnustepbase} - fi - done - fi -} - -termux_step_post_make_install() { - if [ "$TERMUX_ON_DEVICE_BUILD" = false ]; then - local _tool - for _tool in awk bash cat chmod dirname expr grep mkdir mv rm sed sort tr; do - if [ -e $TERMUX_PREFIX/bin/"$_tool.gnustepbase" ]; then - mv $TERMUX_PREFIX/bin/{$_tool.gnustepbase,$_tool} - fi - done - fi -} - -termux_step_post_massage() { - if [ "$TERMUX_ON_DEVICE_BUILD" == true ]; then - return - fi - - cd "$TERMUX_PKG_MASSAGEDIR"/$TERMUX_PREFIX/bin || exit 1 - local _tool - for _tool in awk bash cat chmod dirname expr grep mkdir mv rm sed sort tr; do - rm -f $_tool - done } diff --git a/packages/libgnustep-base/configure.patch b/packages/libgnustep-base/configure.patch deleted file mode 100644 index e585973d0bedb6c..000000000000000 --- a/packages/libgnustep-base/configure.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/configure -+++ b/configure -@@ -14994,6 +14994,7 @@ - test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - -+unset LD_LIBRARY_PATH - - # configure is writing to config.log, and then calls config.status. - # config.status does its own redirection, appending to config.log. diff --git a/packages/libobjc2/build.sh b/packages/libobjc2/build.sh index 7f10e1a61fd3fe7..7aacd2702752777 100644 --- a/packages/libobjc2/build.sh +++ b/packages/libobjc2/build.sh @@ -2,14 +2,11 @@ TERMUX_PKG_HOMEPAGE=https://www.gnustep.org/ TERMUX_PKG_DESCRIPTION="The GNUstep Objective-C runtime" TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=2.1 -TERMUX_PKG_REVISION=3 -_ROBIN_MAP_COMMIT=757de829927489bee55ab02147484850c687b620 -TERMUX_PKG_SRCURL=(https://github.com/gnustep/libobjc2/archive/v${TERMUX_PKG_VERSION}.tar.gz - https://github.com/Tessil/robin-map/archive/${_ROBIN_MAP_COMMIT:0:7}.tar.gz) -TERMUX_PKG_SHA256=(78fc3711db14bf863040ae98f7bdca08f41623ebeaf7efaea7dd49a38b5f054c - 0abd2a272947d1d403ce7467e75aae5bdcfe839f4fc8d513ba5bfe170d5f2057) +TERMUX_PKG_VERSION="2.3" +TERMUX_PKG_SRCURL="https://github.com/gnustep/libobjc2/archive/v${TERMUX_PKG_VERSION}.tar.gz" +TERMUX_PKG_SHA256=5ead2276b42a534ac40437ce53b2231320b985539dc325453d93874be8d92869 TERMUX_PKG_DEPENDS="libc++" +TERMUX_PKG_BUILD_DEPENDS="robin-map" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DENABLE_OBJCXX=OFF @@ -20,11 +17,11 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" # https://github.com/gnustep/libobjc2/issues/199 TERMUX_PKG_CONFLICTS="libblocksruntime" -termux_step_post_get_source() { - mv robin-map-${_ROBIN_MAP_COMMIT}/* third_party/robin-map/ -} - termux_step_pre_configure() { - sed -i -e 's|@CMAKE_CXX_COMPILER@|'$CXX'|g' \ - "$TERMUX_PKG_SRCDIR"/CMakeLists.txt + local target="$CCTERMUX_HOST_PLATFORM" + if [[ "$TERMUX_ARCH" == "arm" ]]; then + target="armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL" + fi + export OBJCFLAGS="$CFLAGS --target=$target" + export OBJCXXFLAGS="$CXXFLAGS --target=$target" } diff --git a/packages/libobjc2/libobjc2-2.1-eh_trampoline.patch b/packages/libobjc2/libobjc2-2.1-eh_trampoline.patch deleted file mode 100644 index dfdd71d1e0db419..000000000000000 --- a/packages/libobjc2/libobjc2-2.1-eh_trampoline.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 4e07fb8457266b76311b2bf3dc5dbe8db790c0b5 Mon Sep 17 00:00:00 2001 -From: David Chisnall -Date: Wed, 26 Aug 2020 16:37:06 +0100 -Subject: [PATCH] Don't use CXXFLAGS when compiling eh_trampoline.cc - -The way that we were doing this didn't handle multiple flags and we -actually don't want the user to override these flags because that file -needs to be compiled in a very specific way. - -Fixes #177 ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e2746e9..80b7dfe 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -317,7 +317,7 @@ if (ENABLE_OBJCXX) - endif() - endif () - add_custom_command(OUTPUT eh_trampoline.s -- COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} -fPIC -S "${CMAKE_SOURCE_DIR}/eh_trampoline.cc" -o - -fexceptions -fno-inline | sed "s/__gxx_personality_v0/test_eh_personality/g" > "${CMAKE_BINARY_DIR}/eh_trampoline.s" -+ COMMAND @CMAKE_CXX_COMPILER@ -fPIC -S "${CMAKE_SOURCE_DIR}/eh_trampoline.cc" -o - -fexceptions -fno-inline | sed "s/__gxx_personality_v0/test_eh_personality/g" > "${CMAKE_BINARY_DIR}/eh_trampoline.s" - MAIN_DEPENDENCY eh_trampoline.cc) - list(APPEND libobjc_ASM_SRCS eh_trampoline.s) - list(APPEND libobjc_CXX_SRCS objcxx_eh.cc)