[oe] [meta-ruby] problems building Gem that contains C code

Michaël Burtin mburtin at voxtok.com
Tue Jul 7 09:39:55 UTC 2015


Hi,

We (at Voxtok Technologies) have written a bbclass to handle Gem
compilation that we use to run rails applications on ARM platform.
We exposed the class (together with ruby recipe and a collection of gem
recipes) as an external layer in a Github repository [1].
Unfortunately we didn't find enough time to upstream the patches as some
part of the recipes might need to be rewritten (e.g. the ruby "make
install-cross" related changes) but it seems stable enough to be shared.
This should allow you to install gem in your image as well as installing
gems at runtime, with native extension, supposing your image contains the
dev libraries and tools.

Regards,
Michaël

[1] https://github.com/voxtok/meta-oad-ruby

Le ven. 15 mai 2015 à 21:00, akuster808 <akuster808 at gmail.com> a écrit :

>
>
> On 05/15/2015 06:38 AM, Eduardo Silva wrote:
> > Hi,
> >
> > thanks for the update. If I try that patch I get the following error
> > when building Ruby:
> >
> > ERROR: Function failed: do_install (log file is located at
> >
> /home/edsiper/coding/poky/build/tmp/work/x86_64-linux/ruby-native/2.2.2-r0/temp/log.do_install.10344)
> > ERROR: Logfile of failure stored in:
> >
> /home/edsiper/coding/poky/build/tmp/work/x86_64-linux/ruby-native/2.2.2-r0/temp/log.do_install.10344
> > Log data follows:
> > | DEBUG: Executing shell function do_install
> > | NOTE: make -j 4 LIBRUBYARG=-lruby-static
> >
> DESTDIR=/home/edsiper/coding/poky/build/tmp/work/x86_64-linux/ruby-native/2.2.2-r0/image
> > install
> > | make: *** No rule to make target 'install'.  Stop.
> > | ERROR: oe_runmake failed
> > | WARNING:
> >
> /home/edsiper/coding/poky/build/tmp/work/x86_64-linux/ruby-native/2.2.2-r0/temp/run.do_install.10344:1
> > exit 1 from
> > |   exit 1
> > | ERROR: Function failed: do_install (log file is located at
> >
> /home/edsiper/coding/poky/build/tmp/work/x86_64-linux/ruby-native/2.2.2-r0/temp/log.do_install.10344)
> > ERROR: Task 111
> >
> (virtual:native:/home/edsiper/coding/meta-openembedded/meta-ruby/recipes-devtools/ruby/
> ruby_2.2.2.bb
> > <http://ruby_2.2.2.bb>, do_install) failed with exit code '1'
> > NOTE: Tasks Summary: Attempted 672 tasks of which 671 didn't need to be
> > rerun and 1 failed.
> > No currently running tasks (565 of 682)
>
> Hmm, weird.  let me poke at it.
>
> - armin
> >
> > regards,
> >
> >
> > On Thu, May 14, 2015 at 2:53 PM, akuster808 <akuster808 at gmail.com
> > <mailto:akuster808 at gmail.com>> wrote:
> >
> >     Eduardo,
> >
> >     I think one issue is --sysroot is using the host path that might be
> >     contributing to the Arch mismatch message. I have a patch that I
> >     have not submitted, yet.
> >
> >     Regarding the .debug, you might need to add
> >
> >     FILE_${PN}-dbg +=
> >     "/usr/lib/ruby/gems/2.2.0/gems/msgpack-0.5.11/lib/msgpack/.debug"
> >
> >
> >     It you could try the patch I have attached and let me know if it
> helps.
> >
> >     regards,
> >     Armin
> >
> >
> >     On 05/14/2015 06:25 AM, Eduardo Silva wrote:
> >
> >         Hi,
> >
> >         I am packaging a Ruby gem that also contains C code:
> >
> >         http://github.com/msgpack/msgpack-ruby
> >
> >         but when building it raise many QA issues about linking to 64
> >         bits version,
> >         my target is "i586-poky-linux":
> >
> >         ERROR: QA Issue: Architecture did not match (3 to 62) on
> >
>  /work/i586-poky-linux/ruby-msgpack/0.5.11-r0/packages-split/ruby-msgpack-dbg/usr/lib/ruby/gems/2.2.0/gems/msgpack-0.5.11/lib/msgpack/.debug/msgpack.so
> >         [arch]
> >         ERROR: QA Issue: non debug package contains .debug directory:
> >         ruby-msgpack
> >         path
> >
>  /work/i586-poky-linux/ruby-msgpack/0.5.11-r0/packages-split/ruby-msgpack/usr/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/msgpack-0.5.11/msgpack/.debug/msgpack.so
> >         [debug-files]
> >         ERROR: QA Issue: Architecture did not match (3 to 62) on
> >
>  /work/i586-poky-linux/ruby-msgpack/0.5.11-r0/packages-split/ruby-msgpack/usr/lib/ruby/gems/2.2.0/gems/msgpack-0.5.11/lib/msgpack/msgpack.so
> >         [arch]
> >         WARNING: QA Issue: ruby-msgpack requires libruby.so.2.2()(64bit),
> >         libc.so.6(GLIBC_2.14)(64bit), libc.so.6(GLIBC_2.4)(64bit),
> >         libc.so.6()(64bit), libc.so.6(GLIBC_2.2.5)(64bit), but no
> >         providers in its
> >         RDEPENDS [file-rdeps]
> >         ERROR: QA run found fatal errors. Please consider fixing them.
> >         ERROR: Function failed: do_package_qa
> >         ERROR: Logfile of failure stored in:
> >
>  /home/edsiper/coding/poky/build/tmp/work/i586-poky-linux/ruby-msgpack/0.5.11-r0/temp/log.do_package_qa.7603
> >         ERROR: Task 9
> >
>  (/home/edsiper/coding/poky/meta-fluentd/recipes-core/ruby-msgpack/
> >         ruby-msgpack_git.bb <http://ruby-msgpack_git.bb>, do_package_qa)
> >         failed with exit code '1'
> >
> >         would you please advice if some specific flag/setup is required
> >         to build
> >         Ruby gems that contains C code ?
> >
> >         thanks,
> >
> >
> >
> >
> > --
> > Eduardo Silva
> > Monkey Software
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>



More information about the Openembedded-devel mailing list