toolbox/playbooks/setup-env.yaml
Debarshi Ray 8dd7ee47c5 build: Drop the use of patchelf(1)
Some downstream distributors like RHEL don't have patchelf(1). Relying
on patchelf(1) during the build will make it difficult for such
downstreams to distribute Toolbox.

Fortunately, the path of the dynamic linker (ie., PT_INTERP) is
hardcoded in the ABI specification of each architecture [1]. This means
that Toolbox's build system can keep it's own architecture to dynamic
linker mapping, and specify it during the build through the GNU ld
linker's --dynamic-linker flag, as opposed to using a tool like
patchelf(1) to change the path of the dynamic linker in the built
binary to the one inside /run/host. Currently, the list of
architectures covers the ones that Fedora builds for.

[1] https://sourceware.org/glibc/wiki/ABIList

https://github.com/containers/toolbox/pull/942
2021-12-09 13:16:27 +01:00

61 lines
1.5 KiB
YAML

---
- hosts: all
tasks:
- name: Install requirements
become: yes
package:
use: dnf
name:
- ShellCheck
- bash-completion
- bats
- flatpak-session-helper
- golang
- golang-github-cpuguy83-md2man
- meson
- ninja-build
- podman
- skopeo
- systemd
- udisks2
- name: Setup submodules
shell: |
git submodule init
git submodule update
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Check versions of crucial packages
command: rpm -qa *kernel* *glibc* golang podman conmon containernetworking-plugins containers-common container-selinux crun runc fuse-overlayfs flatpak-session-helper
- name: Show podman versions
command: podman version
- name: Show podman debug information
command: podman info --debug
- name: Set up build directory
command: meson builddir
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Build Toolbox
command: ninja -C builddir
args:
chdir: '{{ zuul.project.src_dir }}'
creates: builddir/src/toolbox
- name: Install Toolbox
become: yes
command: ninja -C builddir install
args:
chdir: '{{ zuul.project.src_dir }}'
creates: /usr/local/bin/toolbox
- name: Setup environment
become: yes
command:
cmd: systemd-tmpfiles --create
creates: /run/media
creates: /run/host