Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-bootstraps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
with:
path: termux-packages
repository: termux/termux-packages
ref: 'be322af79ad54a6bac8b7f988b4aca8c5ef7d1e8'
ref: 'acf1df1e90034ce0100ac54726ae56792bf56859'

- name: Setup environment
run: |
Expand Down
2 changes: 1 addition & 1 deletion build-bootstraps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# apps without having to publish an apt repo first.
# Usage: run "build-bootstrap.sh --help"
#
# Adapted from: https://github.com/termux/termux-packages/blob/master/scripts/build-bootstraps.sh
# Adapted from: https://github.com/termux/termux-packages/blob/acf1df1e90034ce0100ac54726ae56792bf56859/scripts/build-bootstraps.sh
version=0.1.0

set -e
Expand Down
82 changes: 82 additions & 0 deletions patches/ruby/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
TERMUX_PKG_HOMEPAGE=https://www.ruby-lang.org/
TERMUX_PKG_DESCRIPTION="Dynamic programming language with a focus on simplicity and productivity"
TERMUX_PKG_LICENSE="BSD 2-Clause"
TERMUX_PKG_MAINTAINER="@termux"
# Packages which should be rebuilt after "minor" bump (e.g. 3.1.x to 3.2.0):
# - asciidoctor
# - weechat
TERMUX_PKG_VERSION=3.3.4
TERMUX_PKG_SRCURL=https://cache.ruby-lang.org/pub/ruby/$(echo $TERMUX_PKG_VERSION | cut -d . -f 1-2)/ruby-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=1caaee9a5a6befef54bab67da68ace8d985e4fb59cd17ce23c28d9ab04f4ddad
# libbffi is used by the fiddle extension module:
TERMUX_PKG_DEPENDS="libandroid-execinfo, libandroid-support, libffi, libgmp, readline, openssl, libyaml, zlib"
TERMUX_PKG_RECOMMENDS="clang, make, pkg-config, resolv-conf"
TERMUX_PKG_BREAKS="ruby-dev"
TERMUX_PKG_REPLACES="ruby-dev"
# Needed to fix compilation on android:
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="ac_cv_func_setgroups=no ac_cv_func_setresuid=no ac_cv_func_setreuid=no --enable-rubygems"
# Do not link in libcrypt.so if available (now in disabled-packages):
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_lib_crypt_crypt=no"
# Fix DEPRECATED_TYPE macro clang compatibility:
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" rb_cv_type_deprecated=x"
# getresuid(2) does not work on ChromeOS - https://github.com/termux/termux-app/issues/147:
# TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_func_getresuid=no"
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_EXTRA_HOSTBUILD_CONFIGURE_ARGS="
--prefix=$TERMUX_PKG_HOSTBUILD_DIR/ruby-host
--disable-install-doc
--disable-install-rdoc
--disable-install-capi
"

termux_step_host_build() {
"$TERMUX_PKG_SRCDIR/configure" ${TERMUX_PKG_EXTRA_HOSTBUILD_CONFIGURE_ARGS}
make -j $TERMUX_PKG_MAKE_PROCESSES
make install
}

termux_step_pre_configure() {
_RUBY_API_VERSION=$(echo $TERMUX_PKG_VERSION | cut -d . -f 1-2).0
test ${_RUBY_ABI_VERSION:=} && _RUBY_API_VERSION+=+${_RUBY_ABI_VERSION}

echo "Applying tool-rbinstall.rb.diff"
sed -e "s|@TERMUX_PREFIX@|${TERMUX_PREFIX}|g" \
-e "s|@RUBY_API_VERSION@|${_RUBY_API_VERSION}|g" \
$TERMUX_PKG_BUILDER_DIR/tool-rbinstall.rb.diff \
| patch --silent -p1

autoreconf -fi

export PATH=$TERMUX_PKG_HOSTBUILD_DIR/ruby-host/bin:$PATH

if [ "$TERMUX_ARCH_BITS" = 32 ]; then
# process.c:function timetick2integer: error: undefined reference to '__mulodi4'
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" rb_cv_builtin___builtin_mul_overflow=no"
fi

# Do not remove: fix for Clang's "overoptimization".
CFLAGS+=" -fno-strict-aliasing"
}

termux_step_make_install() {
make install
make uninstall # remove possible remains to get fresh timestamps
make install

local RBCONFIG=$TERMUX_PREFIX/lib/ruby/${_RUBY_API_VERSION}/${TERMUX_HOST_PLATFORM}/rbconfig.rb

# Fix absolute paths to executables:
perl -p -i -e 's/^.*CONFIG\["INSTALL"\].*$/ CONFIG["INSTALL"] = "install -c"/' $RBCONFIG
perl -p -i -e 's/^.*CONFIG\["PKG_CONFIG"\].*$/ CONFIG["PKG_CONFIG"] = "pkg-config"/' $RBCONFIG
perl -p -i -e 's/^.*CONFIG\["MAKEDIRS"\].*$/ CONFIG["MAKEDIRS"] = "mkdir -p"/' $RBCONFIG
perl -p -i -e 's/^.*CONFIG\["MKDIR_P"\].*$/ CONFIG["MKDIR_P"] = "mkdir -p"/' $RBCONFIG
perl -p -i -e 's/^.*CONFIG\["EGREP"\].*$/ CONFIG["EGREP"] = "grep -E"/' $RBCONFIG
perl -p -i -e 's/^.*CONFIG\["GREP"\].*$/ CONFIG["GREP"] = "grep"/' $RBCONFIG
}

termux_step_post_massage() {
local _RUBYGEMS_ARCH=${TERMUX_HOST_PLATFORM/i686-/x86-}
if [ ! -d ./lib/ruby/gems/${_RUBY_API_VERSION}/extensions/${_RUBYGEMS_ARCH} ]; then
termux_error_exit "Extensions for bundled gems were not installed."
fi
}
2 changes: 1 addition & 1 deletion patches/ruby/bundled_gems.patch
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ index ae0a1ac..96cc6a1 100644
+execjs 2.9.1 https://github.com/rails/execjs
+faraday 2.9.2 https://github.com/lostisland/faraday
+faraday-net_http 3.1.0 https://github.com/lostisland/faraday-net_http
+ffi 1.17.0 https://github.com/ffi/ffi/
+ffi 1.17.2 https://github.com/ffi/ffi/
+forwardable-extended 2.6.0 http://github.com/envygeeks/forwardable-extended
+gemoji 4.1.0 https://github.com/github/gemoji
+github-pages-health-check 1.18.2 https://github.com/github/github-pages-health-check
Expand Down
12 changes: 6 additions & 6 deletions patches/ruby/bundler.cli.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb
index 3640536..d5ce867 100644
index 40f19c7..85c3e23 100644
--- a/lib/bundler/cli.rb
+++ b/lib/bundler/cli.rb
@@ -64,7 +64,8 @@ def initialize(*args)
@@ -65,7 +65,8 @@ def initialize(*args)
Bundler.reset_settings_and_root!
end

Expand All @@ -13,7 +13,7 @@ index 3640536..d5ce867 100644
Bundler.settings.set_command_option_if_given :retry, options[:retry]

diff --git a/lib/bundler/cli/install.rb b/lib/bundler/cli/install.rb
index 6c102d5..e30da95 100644
index a233d5d..4ae6f1c 100644
--- a/lib/bundler/cli/install.rb
+++ b/lib/bundler/cli/install.rb
@@ -12,7 +12,8 @@ def run
Expand All @@ -24,18 +24,18 @@ index 6c102d5..e30da95 100644
+ # JekyllEx doesn't support restarting with a locked bundler
+ # Bundler.self_manager.install_locked_bundler_and_restart_with_it_if_needed

Bundler::SharedHelpers.set_env "RB_USER_INSTALL", "1" if Bundler::FREEBSD
Bundler::SharedHelpers.set_env "RB_USER_INSTALL", "1" if Gem.freebsd_platform?

diff --git a/lib/bundler/cli/update.rb b/lib/bundler/cli/update.rb
index 985e8db..4844ab8 100644
index 985e8db..4f2bd40 100644
--- a/lib/bundler/cli/update.rb
+++ b/lib/bundler/cli/update.rb
@@ -13,7 +13,8 @@ def run

update_bundler = options[:bundler]

- Bundler.self_manager.update_bundler_and_restart_with_it_if_needed(update_bundler) if update_bundler
+ # JekyllEx doesn't support restarting self restarting bundler
+ # JekyllEx doesn't support restarting with a locked bundler
+ # Bundler.self_manager.update_bundler_and_restart_with_it_if_needed(update_bundler) if update_bundler

Plugin.gemfile_install(Bundler.default_gemfile) if Bundler.feature_flag.plugins?
Expand Down
Loading
Loading