[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/RUBY PATCH 6/8] Makefile.uk: Add rule for creating root filesystem



Reviewed-by: Stefan Teodorescu <stefanl.teodorescu@xxxxxxxxx>

On Thu, Dec 12, 2019 at 7:42 PM Costin Lupu <costin.lupu@xxxxxxxxx> wrote:
>
> The Ruby interpreter needs a filesystem where to keep its libraries. This 
> patch
> creates a root filesystem and installs the Ruby libraries in 
> `/lib/ruby/2.6.0/`
> directory. For creating the filesystem the following command has to be run:
>
> $ make ruby-rootfs path=<directory>
>
> Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
> ---
>  Makefile.uk               | 29 +++++++++++++++++++++++++++++
>  gems-examples/Gemfile-irb |  8 ++++++++
>  2 files changed, 37 insertions(+)
>  create mode 100644 gems-examples/Gemfile-irb
>
> diff --git a/Makefile.uk b/Makefile.uk
> index 9ea83a3..c832518 100644
> --- a/Makefile.uk
> +++ b/Makefile.uk
> @@ -50,6 +50,7 @@ LIBRUBY_MAJOR=2
>  LIBRUBY_MINOR=6
>  LIBRUBY_REVISION=0
>  LIBRUBY_VERSION=$(LIBRUBY_MAJOR)_$(LIBRUBY_MINOR)
> +LIBRUBY_VERSION_LONG=$(LIBRUBY_MAJOR).$(LIBRUBY_MINOR).$(LIBRUBY_REVISION)
>  LIBRUBY_ARCHIVE=ruby_$(LIBRUBY_VERSION).zip
>  LIBRUBY_URL=https://github.com/ruby/ruby/archive/$(LIBRUBY_ARCHIVE)
>  LIBRUBY_DIR=ruby-ruby_$(LIBRUBY_VERSION)
> @@ -606,3 +607,31 @@ $(LIBRUBY_TEST_BUILD)/.prepared: 
> $(LIBRUBY_TEST_PREPARED_DEPS)
>  UK_PREPARE += $(LIBRUBY_TEST_BUILD)/.prepared
>  endif
>
> +################################################################################
> +# Root filesystem
> +################################################################################
> +# Root filesystem path
> +RUBY_ROOTFS = $(APP_BASE)/$(path)
> +
> +# Configure origin
> +$(RUBY_ROOTFS)/.configured: $(LIBRUBY_BUILD)/.origin
> +       mkdir -p $(RUBY_ROOTFS) &>/dev/null
> +       cd $(LIBRUBY_SRC) && \
> +               autoconf && \
> +               ./configure --prefix=$(shell realpath $(APP_BASE)/$(path)) 
> $(LIBRUBY_CONFIGURE_COMMON_PARAMS) && \
> +               touch $@ && touch $(LIBRUBY_BUILD)/.configured
> +
> +# Build Ruby
> +$(RUBY_ROOTFS)/.build: $(RUBY_ROOTFS)/.configured
> +       cd $(LIBRUBY_SRC) && make -j$(JOBS) && touch $@ && touch 
> $(LIBRUBY_BUILD)/.build
> +
> +# Install Ruby
> +$(RUBY_ROOTFS)/.done: $(RUBY_ROOTFS)/.build
> +       cd $(LIBRUBY_SRC) && make install
> +       cp -r $(LIBRUBY_SRC)/.ext 
> $(RUBY_ROOTFS)/lib/ruby/$(LIBRUBY_VERSION_LONG)/
> +       cp -r $(LIBRUBY_SRC)/test 
> $(RUBY_ROOTFS)/lib/ruby/$(LIBRUBY_VERSION_LONG)/
> +       cp $(LIBRUBY_BASE)/gems-examples/Gemfile-irb 
> $(RUBY_ROOTFS)/lib/ruby/$(LIBRUBY_VERSION_LONG)/Gemfile
> +       touch $@
> +
> +.PHONY: ruby-rootfs
> +ruby-rootfs: $(RUBY_ROOTFS)/.done
> diff --git a/gems-examples/Gemfile-irb b/gems-examples/Gemfile-irb
> new file mode 100644
> index 0000000..1ac39d0
> --- /dev/null
> +++ b/gems-examples/Gemfile-irb
> @@ -0,0 +1,8 @@
> +# frozen_string_literal: true
> +
> +source "https://rubygems.org";
> +
> +git_source(:github) {|repo_name| "https://github.com/#{repo_name}"; }
> +
> +# gem "rails"
> +gem 'irb', require: false
> --
> 2.20.1
>

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.