Using gem install from a simple build

jesse jesse.c.millwood at gmail.com
Wed Apr 18 20:47:48 UTC 2018


I am trying to install a ruby gem during a simple build system build command.
I am wondering if there is no network access during the build command?

I am new to flatpak and ruby but the commands work in my host machine so I
figured it must be something I'm doing wrong in the manifest.
I have gone through the flatpak tutorial and was reading through the
flatpak-manifest man page but didn't see anything about allowing network access
during the build phase. I could see why it might be blocked but I thought I saw
some pip usage in some of the manifests on flathub.

If there isn't any way to enable it, would the common path be to manually
calculate all of the dependencies and add that to the manifest?

Thanks for any pointers

For reference:

My manifest is:
{
    "app-id": "com.throwtheswitch.ceedling",
    "runtime": "org.freedesktop.Platform",
    "runtime-version": "1.6",
    "sdk": "org.freedesktop.Sdk",
    "command": "ceedling",
    "finish-args": [
        "--filesystem=home",
    ],
    "modules":[
        {
            "name":"ceedling",
            "buildsystem": "simple",
            "build-commands":["git submodule update --init --recursive",
                              "gem install bundler",
                              "bundle install",
                              "bundle exec rake"],
            "sources":[
                {
                    "type":"git",
                    "url":"https://github.com/Jesse-Millwood/Ceedling",
                    "commit":"8e0d359127cd23a725a29c96719d0edb4e475490"
                }
            ]
        }
    ]

}

After running
flatpak-builder --force-clean --repo=repo-ceedling ceedling
com.throwtheswitch.ceedling.json --verbose

The output is:

Running: gem install bundler
     FB: Running: flatpak build --die-with-parent --nofilesystem=host
--filesystem=/home/jesse/Playground/Flatpak/Ceedling/.flatpak-builder/build/ceedling-4
--bind-mount=/run/build/ceedling=/home/jesse/Playground/Flatpak/Ceedling/.flatpak-builder/build/ceedling-4
--build-dir=/run/build/ceedling --env=PATH=/app/bin:/usr/bin
--env=LD_LIBRARY_PATH=/app/lib
--env=PKG_CONFIG_PATH=/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
/home/jesse/Playground/Flatpak/Ceedling/.flatpak-builder/rofiles/rofiles-bajU6b
/bin/sh -c 'gem install bundler'
     ERROR:  Could not find a valid gem 'bundler' (>= 0), here is why:
               Unable to download data from https://rubygems.org/ - no such name
(https://rubygems.org/specs.4.8.gz)
     Error: module ceedling: Child process exited with code 2
     FB: unmounting rofiles-fuse
/home/jesse/Playground/Flatpak/Ceedling/.flatpak-builder/rofiles/rofiles-bajU6b

Thanks,
Jesse



More information about the Flatpak mailing list