Skip to content

Instantly share code, notes, and snippets.

@sclu1034
Created July 31, 2021 10:05
Show Gist options
  • Save sclu1034/cd1d46684f4d3b35aac23dab635cf324 to your computer and use it in GitHub Desktop.
Save sclu1034/cd1d46684f4d3b35aac23dab635cf324 to your computer and use it in GitHub Desktop.
Using Docker to build awesomeWM/awesome
#!/bin/sh
set -e
tag="awesome-build:latest"
out=${1:-$(mktemp -d)}
docker build -t $tag -f Dockerfile $out
docker run -v $PWD:/src -v $out:/build $tag bash -c 'cmake -S /src -B /build && cd
/build && make'
FROM debian:buster
ENV LUA=5.3
ENV DEBIAN_FRONTEND=noninteractive
RUN set -ex; \
apt-get update && apt-get install -y --no-install-recommends \
build-essential \
bc \
git \
gosu \
curl \
cmake \
automake \
gettext \
libtool \
unzip \
asciidoctor \
libnotify-bin \
libcairo2-dev \
gir1.2-gtk-3.0 \
libpango1.0-dev \
libxcb-xtest0-dev \
libxcb-icccm4-dev \
libxcb-randr0-dev \
libxcb-keysyms1-dev \
libxcb-xinerama0-dev \
libdbus-1-dev \
libxdg-basedir-dev \
libstartup-notification0-dev \
imagemagick \
libxcb1-dev \
libxcb-shape0-dev \
libxcb-util0-dev \
libx11-xcb-dev \
libxcb-cursor-dev \
libxcb-xkb-dev \
libxcb-xfixes0-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
xcb-proto \
xorg \
dbus \
librsvg2-dev \
dbus-x11 \
xterm \
xdotool \
wmctrl \
xterm \
xserver-xephyr \
xvfb \
zsh \
x11-apps \
xutils-dev \
gir1.2-pango-1.0 \
libgirepository1.0-dev \
libgdk-pixbuf2.0-dev
# Install separately to avoid installing everything again when the version is changed
RUN "liblua$LUA-dev" "lua$LUA"
RUN curl -o /tmp/luarocks.tar.gz https://codeload.github.com/luarocks/luarocks/tar.gz/v3.0.4; \
tar -xf /tmp/luarocks.tar.gz -C /tmp; \
( \
cd /tmp/luarocks-*; \
./configure; \
make build; \
make install \
); \
rm /tmp/luarocks.tar.gz
RUN luarocks install lgi; \
luarocks install ldoc
RUN git clone --depth 1 --recursive https://github.com/Airblader/xcb-util-xrm.git /tmp/xcb-util-xrm; \
cd /tmp/xcb-util-xrm; \
./autogen.sh --prefix=/usr; \
make; \
make install
RUN git clone --depth 1 --recursive https://gitlab.freedesktop.org/xorg/lib/libxcb-errors.git /tmp/xcb-errors; \
cd /tmp/xcb-errors; \
./autogen.sh --prefix=/usr; \
make; \
make install
VOLUME /src /build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment