From a0e65256e93dac17d221bf788507285ba0eca632 Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Sat, 4 Oct 2014 16:54:24 -0300 Subject: [PATCH] ruby: wrap script to disable gems if not installed ruby, by default, try to load gems on start. If not present, it fails. As gems brings many deps, this make ruby unsuitable for routers limited resources. ruby can avoid to load gems with the option "--disable-gems". So, a wrap script in the place of /usr/bin/ruby adds this option if gems are not found. Also add vendor/site directories Signed-off-by: Luiz Angelo Daros de Luca --- lang/ruby/Makefile | 10 ++++++++-- lang/ruby/files/ruby | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 lang/ruby/files/ruby diff --git a/lang/ruby/Makefile b/lang/ruby/Makefile index c540e77922..66d58e33a2 100644 --- a/lang/ruby/Makefile +++ b/lang/ruby/Makefile @@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ruby PKG_VERSION:=2.1.2 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_LIBVER:=2.1 @@ -223,7 +223,13 @@ MAKE_FLAGS += \ define Package/ruby/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ruby $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER) + $(INSTALL_DIR) $(1)/usr/lib/ruby/vendor_ruby/$(PKG_LIBVER) + $(INSTALL_DIR) $(1)/usr/lib/ruby/site_ruby/$(PKG_LIBVER) + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ruby $(1)/usr/lib/ruby/ruby$(PKG_LIBVER)-bin + $(INSTALL_BIN) ./files/ruby $(1)/usr/bin/ruby + sed -i -e "s%@RUBY_LIBPATH@%/usr/lib/ruby/$(PKG_LIBVER)%" $(1)/usr/bin/ruby + sed -i -e "s%@RUBY_BINPATH@%/usr/lib/ruby/ruby$(PKG_LIBVER)-bin%" $(1)/usr/bin/ruby endef define Package/libruby/install diff --git a/lang/ruby/files/ruby b/lang/ruby/files/ruby new file mode 100644 index 0000000000..e4904fc2f7 --- /dev/null +++ b/lang/ruby/files/ruby @@ -0,0 +1,5 @@ +#!/bin/sh +if ! [ -r "@RUBY_LIBPATH@/rubygems.rb" ]; then + exec @RUBY_BINPATH@ --disable-gems "$@" +fi +exec @RUBY_BINPATH@ "$@"