Kaynağa Gözat

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>
Luiz Angelo Daros de Luca 10 yıl önce
ebeveyn
işleme
a0e65256e9
2 değiştirilmiş dosya ile 13 ekleme ve 2 silme
  1. 8
    2
      lang/ruby/Makefile
  2. 5
    0
      lang/ruby/files/ruby

+ 8
- 2
lang/ruby/Makefile Dosyayı Görüntüle

@@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk
16 16
 
17 17
 PKG_NAME:=ruby
18 18
 PKG_VERSION:=2.1.2
19
-PKG_RELEASE:=3
19
+PKG_RELEASE:=4
20 20
 
21 21
 PKG_LIBVER:=2.1
22 22
 
@@ -223,7 +223,13 @@ MAKE_FLAGS += \
223 223
 
224 224
 define Package/ruby/install
225 225
 	$(INSTALL_DIR) $(1)/usr/bin
226
-	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ruby $(1)/usr/bin/
226
+	$(INSTALL_DIR) $(1)/usr/lib/ruby/$(PKG_LIBVER)
227
+	$(INSTALL_DIR) $(1)/usr/lib/ruby/vendor_ruby/$(PKG_LIBVER)
228
+	$(INSTALL_DIR) $(1)/usr/lib/ruby/site_ruby/$(PKG_LIBVER)
229
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ruby $(1)/usr/lib/ruby/ruby$(PKG_LIBVER)-bin
230
+	$(INSTALL_BIN) ./files/ruby $(1)/usr/bin/ruby
231
+	sed -i -e "s%@RUBY_LIBPATH@%/usr/lib/ruby/$(PKG_LIBVER)%" $(1)/usr/bin/ruby
232
+	sed -i -e "s%@RUBY_BINPATH@%/usr/lib/ruby/ruby$(PKG_LIBVER)-bin%" $(1)/usr/bin/ruby
227 233
 endef
228 234
 
229 235
 define Package/libruby/install

+ 5
- 0
lang/ruby/files/ruby Dosyayı Görüntüle

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