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 <luizluca@gmail.com>
This commit is contained in:
Luiz Angelo Daros de Luca 2014-10-04 16:54:24 -03:00
parent 205becb6e8
commit a0e65256e9
2 changed files with 13 additions and 2 deletions

View File

@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ruby PKG_NAME:=ruby
PKG_VERSION:=2.1.2 PKG_VERSION:=2.1.2
PKG_RELEASE:=3 PKG_RELEASE:=4
PKG_LIBVER:=2.1 PKG_LIBVER:=2.1
@ -223,7 +223,13 @@ MAKE_FLAGS += \
define Package/ruby/install define Package/ruby/install
$(INSTALL_DIR) $(1)/usr/bin $(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 endef
define Package/libruby/install define Package/libruby/install

5
lang/ruby/files/ruby Normal file
View File

@ -0,0 +1,5 @@
#!/bin/sh
if ! [ -r "@RUBY_LIBPATH@/rubygems.rb" ]; then
exec @RUBY_BINPATH@ --disable-gems "$@"
fi
exec @RUBY_BINPATH@ "$@"