diff options
author | Simon Steinbeiss <simon.steinbeiss@elfenbeinturm.at> | 2021-05-06 11:00:13 +0200 |
---|---|---|
committer | Simon Steinbeiss <simon.steinbeiss@elfenbeinturm.at> | 2021-05-06 11:00:13 +0200 |
commit | fc4b564144cf564a668c6ca1da927ccea5291749 (patch) | |
tree | eb084de849f51f42bbf6eebb83909e1b2cd81591 | |
parent | c62f6bec27b7870aa3ee5b366a0bf1e74b72ce44 (diff) | |
download | xfce4-dev-tools-xfce-4.14.tar.gz |
xfce-build: Add Xfce 4.14 imagexfce-4.14
-rw-r--r-- | Dockerfile | 21 | ||||
-rw-r--r-- | ci/build_libs.sh | 58 |
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/ |