Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Alexander Kanavin <alexander.kanavin@linux.intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 08/22] Add a recipe for ruby
Date: Wed, 17 Jun 2015 16:19:18 +0300	[thread overview]
Message-ID: <1434547172-24620-9-git-send-email-alexander.kanavin@linux.intel.com> (raw)
In-Reply-To: <1434547172-24620-1-git-send-email-alexander.kanavin@linux.intel.com>

Ruby is required to build webkit.

Signed-off-by: Alexander Kanavin <alexander.kanavin@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 0000000..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 0000000..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.000000000 -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 0000000..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



  parent reply	other threads:[~2015-06-17 13:19 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-17 13:19 [PATCH 00/22] Update webkitgtk to latest stable upstream; replace midori with epiphany Alexander Kanavin
2015-06-17 13:19 ` [PATCH 01/22] Change tarball compression to xz for gnome recipes Alexander Kanavin
2015-06-17 13:19 ` [PATCH 02/22] Enable icu feature in harfbuzz recipe Alexander Kanavin
2015-06-17 13:19 ` [PATCH 03/22] Add arch conversion routine to cmake.bbclass Alexander Kanavin
2015-06-17 13:19 ` [PATCH 04/22] Update jpeg recipe to version 9a Alexander Kanavin
2015-06-17 13:19 ` [PATCH 05/22] Update libnotify to version 0.7.6 Alexander Kanavin
2015-06-17 14:59   ` Jussi Kukkonen
2015-06-18 11:23     ` Alexander Kanavin
2015-06-18 12:35       ` Andreas Müller
2015-06-18 13:02         ` Martin Jansa
2015-06-18 13:16         ` Alexander Kanavin
2015-06-18 14:42           ` Andreas Müller
2015-06-19 21:41             ` Andreas Müller
2015-06-22 12:34               ` Alexander Kanavin
     [not found]   ` <CALbNGRS5T12OGFK-C9B4DSyWsz-nRe8zsm=8_xnv4xtqhBHUXg@mail.gmail.com>
2015-06-17 15:01     ` Andreas Müller
2015-06-17 13:19 ` [PATCH 06/22] Add a recipe for giflib Alexander Kanavin
2015-06-17 13:19 ` [PATCH 07/22] Add a recipe for libyaml Alexander Kanavin
2015-06-17 13:19 ` Alexander Kanavin [this message]
2015-06-17 13:19 ` [PATCH 09/22] Add a recipe for libsecret Alexander Kanavin
2015-06-17 15:05   ` Andreas Müller
2015-06-17 18:54     ` akuster808
2015-06-18 11:54       ` Alexander Kanavin
2015-06-18 11:31     ` Alexander Kanavin
2015-06-17 13:19 ` [PATCH 10/22] Add a recipe for libwebp Alexander Kanavin
2015-06-17 13:19 ` [PATCH 11/22] Add a recipe for webkitgtk 2.8.3 Alexander Kanavin
2015-06-17 13:19 ` [PATCH 12/22] Add a recipe for p11-kit Alexander Kanavin
2015-06-17 13:19 ` [PATCH 13/22] Add a recipe for gcr Alexander Kanavin
2015-06-17 13:19 ` [PATCH 14/22] Add a recipe for iso-codes Alexander Kanavin
2015-06-17 13:19 ` [PATCH 15/22] Add a recipe for libwnck3 Alexander Kanavin
2015-06-17 13:19 ` [PATCH 16/22] Add a recipe for gnome-desktop3 Alexander Kanavin
2015-06-17 13:19 ` [PATCH 17/22] Add a warning suppression patch to glib Alexander Kanavin
2015-06-17 13:19 ` [PATCH 18/22] Add a recipe gsettings-desktop-schemas Alexander Kanavin
2015-06-17 13:19 ` [PATCH 19/22] Add a recipe for epiphany Alexander Kanavin
2015-06-17 13:19 ` [PATCH 20/22] Remove the recipe for the obsolete webkit-gtk 1.8.3 Alexander Kanavin
2015-06-17 13:19 ` [PATCH 21/22] Remove the midori recipe and replace references to midori with epiphany Alexander Kanavin
2015-06-17 13:19 ` [PATCH 22/22] poky: update distro files related to webkitgtk update and epiphany addition Alexander Kanavin
2015-06-17 16:01 ` [PATCH 00/22] Update webkitgtk to latest stable upstream; replace midori with epiphany Paul Eggleton
2015-06-18 11:46   ` Alexander Kanavin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1434547172-24620-9-git-send-email-alexander.kanavin@linux.intel.com \
    --to=alexander.kanavin@linux.intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox