Commit fc4b5641 authored by Simon Steinbeiss's avatar Simon Steinbeiss
Browse files

xfce-build: Add Xfce 4.14 image

parent c62f6bec
FROM ubuntu:focal
MAINTAINER Xfce Development Team
ENV DEBIAN_FRONTEND noninteractive
# Enable source repositories
RUN sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
# Set up dependencies for the "xfce" and "app" groups
RUN apt-get update \
&& apt-get -y --no-install-recommends install git libglib2.0-bin build-essential libgtk-3-dev gtk-doc-tools libx11-dev libglib2.0-dev libwnck-3-dev intltool liburi-perl x11-xserver-utils libvte-2.91-dev dbus-x11 cmake libsoup2.4-dev libpcre2-dev libgtksourceview-3.0-dev libgtksourceview-4-dev libtag1-dev xvfb libgtk2.0-dev \
&& apt-get -y --no-install-recommends install gir1.2-gstreamer-1.0 libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-0 libgstreamer1.0-dev \
python3-distutils-extra python3-dev python-gi-dev libxss-dev libindicator3-dev libxmu-dev libburn-dev libisofs-dev libpulse-dev libkeybinder-3.0-dev libmpd-dev valac libvala-0.48-dev gobject-introspection libgirepository1.0-dev librsvg2-dev libtagc0-dev libdbusmenu-gtk3-dev libgtop2-dev libtool libnotify-dev libxklavier-dev libexif-dev libgudev-1.0-dev libupower-glib-dev libclutter-1.0-dev \
&& rm -rf /var/lib/apt/lists/*
# Build and install the latest tag for all Xfce core libraries
RUN mkdir /git
COPY ci/build_libs.sh /git/build_libs.sh
RUN chmod a+x /git/build_libs.sh
RUN /git/build_libs.sh
#!/usr/bin/env bash
set -euo pipefail
XFCE_BASE=https://gitlab.xfce.org
RELEASE=xfce-4.14
: ${libdir:="/usr/lib/x86_64-linux-gnu"}
: ${libexecdir:="/usr/lib/x86_64-linux-gnu"}
AUTOGEN_OPTIONS="
--disable-debug
--enable-maintainer-mode
--prefix=/usr
--libdir=$libdir
--libexecdir=$libexecdir
--sysconfdir=/etc
--localstatedir=/var
--enable-gtk-doc
"
# list of git repos in build order
REPOS="${XFCE_BASE}/xfce/xfce4-dev-tools.git
${XFCE_BASE}/xfce/libxfce4util.git
${XFCE_BASE}/xfce/xfconf.git
${XFCE_BASE}/xfce/libxfce4ui.git
${XFCE_BASE}/xfce/exo.git
${XFCE_BASE}/xfce/garcon.git
${XFCE_BASE}/xfce/xfce4-panel.git
${XFCE_BASE}/xfce/thunar.git
"
for URL in ${REPOS}; do
NAME=$(basename $URL .git)
cd /git
git clone $URL
cd $NAME
git checkout $RELEASE
TAG=$(git describe --abbrev=0 --match "$NAME*" 2>/dev/null)
echo "--- Building $NAME ($TAG) ---"
git checkout -b build-$TAG $TAG
./autogen.sh $AUTOGEN_OPTIONS
make -j${NPROC:-$(nproc)}
make install
echo "$(pwd): $(git describe)" >> /tmp/xfce_build_version_info.txt
# Retain HTML docs in /docs
if [[ -d "$(pwd)/docs" ]]; then
HTMLPATH=$(find "$(pwd)/docs" -name html)
if [[ ! -z "$HTMLPATH" ]]; then
mkdir -p "/docs/$NAME"
cp -a "$HTMLPATH/." "/docs/$NAME"
fi
fi
done
# cleanup
rm -rf /git/*
mv /tmp/xfce_build_version_info.txt /git/
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment