cage/Dockerfile

37 lines
1.5 KiB
Text
Raw Normal View History

# This isn't ideal from a CI perspective because we're lacking pinned versions
# here, but Arch is the only distribution (besides Rawhide) that has new enough
# dependencies. Eventually, when wlroots becomes less bleeding-edge, we can
# switch to other images that provide stable package versions.
FROM archlinux/base:latest
# Install the required packages for compiling wlroots and Cage, and a simple
# xdg-shell-stable application to launch Cage with.
RUN pacman -Syu --noconfirm xorg-server-xvfb awk procps-ng termite git bash clang \
pkgconf libinput libxkbcommon mesa meson pixman libsystemd wayland \
wayland-protocols xcb-util-image xcb-util-wm xcb-util-errors \
&& pacman -Scc --noconfirm
# Install wlroots, which is required by Cage. Note that we compile a tagged
# version, instead of master, to avoid any breaking changes in wlroots.
RUN git clone https://github.com/swaywm/wlroots.git \
&& cd wlroots \
&& git checkout tags/0.4.1 \
&& meson build --prefix=/usr \
-Dlibcap=disabled \
-Dlogind=enabled \
-Dxcb-errors=enabled \
-Dxcb-icccm=enabled \
-Dxwayland=disabled \
-Dx11-backend=enabled \
-Drootston=false \
-Dexamples=false \
&& ninja -C build \
&& ninja -C build install
# Cage's (or actually, wlroots') logind session expects XDG_RUNTIME_DIR to be
# set.
ENV XDG_RUNTIME_DIR=/tmp
# We have Travis place the clone in this directory, so we need to cd to it.
WORKDIR /root/cage