[OE-core] [PATCH 08/22] ruby: add a recipe from meta-ruby

2015-08-19 Thread Alexander Kanavin
Ruby is required to build webkit.

Signed-off-by: Alexander Kanavin alexander.kana...@linux.intel.com
---
 meta/recipes-devtools/ruby/ruby.inc | 40 +++
 meta/recipes-devtools/ruby/ruby/extmk.patch | 13 +
 meta/recipes-devtools/ruby/ruby_2.2.2.bb| 42 +
 3 files changed, 95 insertions(+)
 create mode 100644 meta/recipes-devtools/ruby/ruby.inc
 create mode 100644 meta/recipes-devtools/ruby/ruby/extmk.patch
 create mode 100644 meta/recipes-devtools/ruby/ruby_2.2.2.bb

diff --git a/meta/recipes-devtools/ruby/ruby.inc 
b/meta/recipes-devtools/ruby/ruby.inc
new file mode 100644
index 000..ba60191
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby.inc
@@ -0,0 +1,40 @@
+SUMMARY = An interpreter of object-oriented scripting language
+DESCRIPTION = Ruby is an interpreted scripting language for quick \
+and easy object-oriented programming. It has many features to process \
+text files and to do system management tasks (as in Perl). \
+It is simple, straight-forward, and extensible. \
+
+HOMEPAGE = http://www.ruby-lang.org/;
+SECTION = devel/ruby
+LICENSE = Ruby | BSD | GPLv2
+LIC_FILES_CHKSUM = \
+file://COPYING;md5=837b32593517ae48b9c3b5c87a5d288c \
+file://BSDL;md5=19aaf65c88a40b508d17ae4be539c4b5\
+file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263\
+file://LEGAL;md5=c440adb575ba4e6e2344c2630b6a5584\
+
+
+DEPENDS = ruby-native zlib openssl tcl libyaml db gdbm readline
+DEPENDS_class-native = libyaml-native
+
+SHRT_VER = 
${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}
+SRC_URI = http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
+   file://extmk.patch \
+
+
+S = ${WORKDIR}/ruby-${PV}
+
+inherit autotools
+
+
+# This snippet lets compiled extensions which rely on external libraries,
+# such as zlib, compile properly.  If we don't do this, then when extmk.rb
+# runs, it uses the native libraries instead of the target libraries, and so
+# none of the linking operations succeed -- which makes extconf.rb think
+# that the libraries aren't available and hence that the extension can't be
+# built.
+
+do_configure_prepend() {
+sed -i s#%%TARGET_CFLAGS%%#$TARGET_CFLAGS#; 
s#%%TARGET_LDFLAGS%%#$TARGET_LDFLAGS# ${S}/common.mk
+rm -rf ${S}/ruby/
+}
diff --git a/meta/recipes-devtools/ruby/ruby/extmk.patch 
b/meta/recipes-devtools/ruby/ruby/extmk.patch
new file mode 100644
index 000..8b68450
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby/extmk.patch
@@ -0,0 +1,13 @@
+diff -ru ruby-1.8.7-p248.orig/ext/extmk.rb ruby-1.8.7-p248/ext/extmk.rb
+--- ruby-1.8.7-p248.orig/ext/extmk.rb  2009-12-24 03:01:58.0 -0600
 ruby-1.8.7-p248/ext/extmk.rb   2010-02-12 15:55:27.370061558 -0600
+@@ -354,8 +354,8 @@
+   $ruby = '$(topdir)/miniruby' + EXEEXT
+ end
+ $ruby   -I'$(topdir)'
++$ruby   -I'$(top_srcdir)/lib'
+ unless CROSS_COMPILING
+-  $ruby   -I'$(top_srcdir)/lib'
+   $ruby   -I'$(extout)/$(arch)' -I'$(extout)/common' if $extout
+   $ruby   -I./- -I'$(top_srcdir)/ext' -rpurelib.rb
+   ENV[RUBYLIB] = -
diff --git a/meta/recipes-devtools/ruby/ruby_2.2.2.bb 
b/meta/recipes-devtools/ruby/ruby_2.2.2.bb
new file mode 100644
index 000..78c943c
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby_2.2.2.bb
@@ -0,0 +1,42 @@
+require ruby.inc
+
+SRC_URI[md5sum] = 326e99ddc75381c7b50c85f7089f3260
+SRC_URI[sha256sum] = 
5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44
+
+# it's unknown to configure script, but then passed to extconf.rb
+# maybe it's not really needed as we're hardcoding the result with
+# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
+UNKNOWN_CONFIGURE_WHITELIST += --enable-wide-getaddrinfo
+
+PACKAGECONFIG ??= 
+PACKAGECONFIG += ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', 
d)}
+
+PACKAGECONFIG[valgrind] = --with-valgrind=yes, --with-valgrind=no, valgrind
+PACKAGECONFIG[gpm] = --with-gmp=yes, --with-gmp=no, gmp
+PACKAGECONFIG[ipv6] = ,--enable-wide-getaddrinfo,
+
+EXTRA_OECONF = \
+--disable-versioned-paths \
+--disable-rpath \
+--disable-dtrace \
+--enable-shared \
+--enable-load-relative \
+
+
+EXTRA_OEMAKE =  \
+LIBRUBYARG='-lruby-static' \
+
+
+do_install() {
+oe_runmake 'DESTDIR=${D}' install
+}
+
+FILES_${PN} += ${datadir}/rubygems \
+${datadir}/ri
+
+FILES_${PN}-dbg += ${libdir}/ruby/*/.debug \
+${libdir}/ruby/*/*/.debug \
+${libdir}/ruby/*/*/*/.debug \
+${libdir}/ruby/*/*/*/*/.debug
+
+BBCLASSEXTEND = native
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 08/22] ruby: add a recipe from meta-ruby

2015-08-14 Thread Alexander Kanavin
Ruby is required to build webkit.

Signed-off-by: Alexander Kanavin alexander.kana...@linux.intel.com
---
 meta/recipes-devtools/ruby/ruby.inc | 40 +++
 meta/recipes-devtools/ruby/ruby/extmk.patch | 13 +
 meta/recipes-devtools/ruby/ruby_2.2.2.bb| 42 +
 3 files changed, 95 insertions(+)
 create mode 100644 meta/recipes-devtools/ruby/ruby.inc
 create mode 100644 meta/recipes-devtools/ruby/ruby/extmk.patch
 create mode 100644 meta/recipes-devtools/ruby/ruby_2.2.2.bb

diff --git a/meta/recipes-devtools/ruby/ruby.inc 
b/meta/recipes-devtools/ruby/ruby.inc
new file mode 100644
index 000..ba60191
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby.inc
@@ -0,0 +1,40 @@
+SUMMARY = An interpreter of object-oriented scripting language
+DESCRIPTION = Ruby is an interpreted scripting language for quick \
+and easy object-oriented programming. It has many features to process \
+text files and to do system management tasks (as in Perl). \
+It is simple, straight-forward, and extensible. \
+
+HOMEPAGE = http://www.ruby-lang.org/;
+SECTION = devel/ruby
+LICENSE = Ruby | BSD | GPLv2
+LIC_FILES_CHKSUM = \
+file://COPYING;md5=837b32593517ae48b9c3b5c87a5d288c \
+file://BSDL;md5=19aaf65c88a40b508d17ae4be539c4b5\
+file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263\
+file://LEGAL;md5=c440adb575ba4e6e2344c2630b6a5584\
+
+
+DEPENDS = ruby-native zlib openssl tcl libyaml db gdbm readline
+DEPENDS_class-native = libyaml-native
+
+SHRT_VER = 
${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d,1).split('.')[1]}
+SRC_URI = http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
+   file://extmk.patch \
+
+
+S = ${WORKDIR}/ruby-${PV}
+
+inherit autotools
+
+
+# This snippet lets compiled extensions which rely on external libraries,
+# such as zlib, compile properly.  If we don't do this, then when extmk.rb
+# runs, it uses the native libraries instead of the target libraries, and so
+# none of the linking operations succeed -- which makes extconf.rb think
+# that the libraries aren't available and hence that the extension can't be
+# built.
+
+do_configure_prepend() {
+sed -i s#%%TARGET_CFLAGS%%#$TARGET_CFLAGS#; 
s#%%TARGET_LDFLAGS%%#$TARGET_LDFLAGS# ${S}/common.mk
+rm -rf ${S}/ruby/
+}
diff --git a/meta/recipes-devtools/ruby/ruby/extmk.patch 
b/meta/recipes-devtools/ruby/ruby/extmk.patch
new file mode 100644
index 000..8b68450
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby/extmk.patch
@@ -0,0 +1,13 @@
+diff -ru ruby-1.8.7-p248.orig/ext/extmk.rb ruby-1.8.7-p248/ext/extmk.rb
+--- ruby-1.8.7-p248.orig/ext/extmk.rb  2009-12-24 03:01:58.0 -0600
 ruby-1.8.7-p248/ext/extmk.rb   2010-02-12 15:55:27.370061558 -0600
+@@ -354,8 +354,8 @@
+   $ruby = '$(topdir)/miniruby' + EXEEXT
+ end
+ $ruby   -I'$(topdir)'
++$ruby   -I'$(top_srcdir)/lib'
+ unless CROSS_COMPILING
+-  $ruby   -I'$(top_srcdir)/lib'
+   $ruby   -I'$(extout)/$(arch)' -I'$(extout)/common' if $extout
+   $ruby   -I./- -I'$(top_srcdir)/ext' -rpurelib.rb
+   ENV[RUBYLIB] = -
diff --git a/meta/recipes-devtools/ruby/ruby_2.2.2.bb 
b/meta/recipes-devtools/ruby/ruby_2.2.2.bb
new file mode 100644
index 000..78c943c
--- /dev/null
+++ b/meta/recipes-devtools/ruby/ruby_2.2.2.bb
@@ -0,0 +1,42 @@
+require ruby.inc
+
+SRC_URI[md5sum] = 326e99ddc75381c7b50c85f7089f3260
+SRC_URI[sha256sum] = 
5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44
+
+# it's unknown to configure script, but then passed to extconf.rb
+# maybe it's not really needed as we're hardcoding the result with
+# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
+UNKNOWN_CONFIGURE_WHITELIST += --enable-wide-getaddrinfo
+
+PACKAGECONFIG ??= 
+PACKAGECONFIG += ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', 
d)}
+
+PACKAGECONFIG[valgrind] = --with-valgrind=yes, --with-valgrind=no, valgrind
+PACKAGECONFIG[gpm] = --with-gmp=yes, --with-gmp=no, gmp
+PACKAGECONFIG[ipv6] = ,--enable-wide-getaddrinfo,
+
+EXTRA_OECONF = \
+--disable-versioned-paths \
+--disable-rpath \
+--disable-dtrace \
+--enable-shared \
+--enable-load-relative \
+
+
+EXTRA_OEMAKE =  \
+LIBRUBYARG='-lruby-static' \
+
+
+do_install() {
+oe_runmake 'DESTDIR=${D}' install
+}
+
+FILES_${PN} += ${datadir}/rubygems \
+${datadir}/ri
+
+FILES_${PN}-dbg += ${libdir}/ruby/*/.debug \
+${libdir}/ruby/*/*/.debug \
+${libdir}/ruby/*/*/*/.debug \
+${libdir}/ruby/*/*/*/*/.debug
+
+BBCLASSEXTEND = native
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core