gitpod-io / gitpod

The developer platform for on-demand cloud development environments to create software faster and more securely.
https://www.gitpod.io
GNU Affero General Public License v3.0
12.75k stars 1.22k forks source link

Request for pttrace support #1006

Closed Kreyren closed 4 years ago

Kreyren commented 4 years ago

I'm trying to import custom dockerimage that is using exherbo/exherbo_ci base which package manager is pttrace for sandboxing that results in:

cave@1576396020: [WARNING e.ebuild.metadata.unusable] No usable metadata for 'sys-devel/meson-0.52.1::arbor'
cave@1576396020: [WARNING e.ebuild.postload_eapi.mismatch] In thread ID '1':
  ... In program cave resolve sys-devel/meson sys-devel/clang sys-fs/fuse dev-scm/git sys-devel/ninja sys-devel/bison sys-devel/libtool sys-devel/autoconf dev-util/pkg-config sys-apps/fakeroot app-arch/gzip net-misc/rsync sys-devel/autoconf -x:
  ... When adding targets from commandline:
  ... When adding target 'sys-devel/meson':
  ... When finding slots for 'sys-devel/meson':
  ... When determining resolvents for 'sys-devel/meson':
  ... When finding best version of each package from packages matching sys-devel/meson (ignoring additional requirements) with filter all matches filtered through supports action install filtered through not masked filtered through all matches:
  ... When generating metadata for ID 'sys-devel/meson-0.52.1::arbor':
  ... When loading generated metadata for 'sys-devel/meson-0.52.1::arbor':
  ... Post-source EAPI 'UNKNOWN' does not match pre-source EAPI 'exheres-0', treating as unknown

I deduced this being an issue with paludis's sandboxing being unable to attach the build to relevant process so it either needs access to /dev/sydbox (https://dev.exherbo.org/~alip/sydbox/sydbox.html) or additional configuration to dockerd based on https://stackoverflow.com/a/46676868 or both.

Steps to reproduce

Run this dockerimage on gitpod:


FROM exherbo/exherbo_ci:latest

USER root

# paludisbuild has to be part of group to which /dev/tty belongs to
RUN usermod -a -G 65534 paludisbuild

# Export paludis-config
RUN rm -r /etc/paludis && git clone https://github.com/Kreyrock/paludis-config.git /etc/paludis

# Sync repos
RUN cave sync

# Add required repositories
#RUN [ ! -e /etc/paludis/repositories/alip.conf ] && cave resolve -x1 repository/alip
#RUN [ ! -e /etc/paludis/repositories/compnerd.conf ] && cave resolve -x1 repository/compnerd
#RUN [ ! -e /etc/paludis/repositories/virtualization.conf ] && cave resolve -x1 repository/virtualization
#RUN [ ! -e /etc/paludis/repositories/danyspin97.conf ] && cave resolve -x1 repository/danyspin97
#RUN [ ! -e /etc/paludis/repositories/python.conf ] && cave resolve -x1 repository/python
#RUN [ ! -e /etc/paludis/repositories/perl.conf ] && cave resolve -x1 repository/perl
#RUN [ ! -e /etc/paludis/repositories/hasufell.conf ] && cave resolve -x1 repository/hasufell

# Install build dependencies
RUN cave resolve sys-devel/meson sys-devel/clang sys-fs/fuse dev-scm/git sys-devel/ninja sys-devel/bison sys-devel/libtool sys-devel/autoconf dev-util/pkg-config sys-apps/fakeroot app-arch/gzip net-misc/rsync sys-devel/autoconf -x

# Install test dependencies
RUN cave resolve  dev-util/cppcheck  dev-util/indent  dev-util/shellcheck -x

# Purge unwanted packages
RUN cave purge -x

# Remove build instructions
RUN rm -r /var/db/paludis
Kreyren commented 4 years ago

Already implemented based on @jankeromnes