summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Steinbeiss <simon.steinbeiss@elfenbeinturm.at>2021-05-06 11:00:13 +0200
committerSimon Steinbeiss <simon.steinbeiss@elfenbeinturm.at>2021-05-06 11:00:13 +0200
commitfc4b564144cf564a668c6ca1da927ccea5291749 (patch)
treeeb084de849f51f42bbf6eebb83909e1b2cd81591
parentc62f6bec27b7870aa3ee5b366a0bf1e74b72ce44 (diff)
downloadxfce4-dev-tools-xfce-4.14.tar.gz
xfce-build: Add Xfce 4.14 imagexfce-4.14
-rw-r--r--Dockerfile21
-rw-r--r--ci/build_libs.sh58
2 files changed, 79 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..37b38c6
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,21 @@
+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
diff --git a/ci/build_libs.sh b/ci/build_libs.sh
new file mode 100644
index 0000000..3972da2
--- /dev/null
+++ b/ci/build_libs.sh
@@ -0,0 +1,58 @@
+#!/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/