...
 
Commits (2)
FROM ubuntu:14.04
LABEL Description="KDE Appimage Base"
MAINTAINER KDE Sysadmin <sysadmin@kde.org>
# Start off as root
USER root
# Make sure we are fully up to date to start with and install our core operational requirements
RUN apt-get update && apt-get install -y software-properties-common python-software-properties && add-apt-repository -y ppa:openjdk-r/ppa
RUN apt-get update && apt-get upgrade -y && apt-get install -y openssh-server openjdk-8-jre-headless
# Some software demands a newer GCC because they're using C++14 stuff, which is just insane
RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test && apt-get update
# Now install the general dependencies we need for builds
RUN apt-get install -y \
# General requirements for building KDE software
build-essential cmake3 git-core \
# General requirements for building other software
automake gcc-6 g++-6 libxml-parser-perl libpq-dev libaio-dev \
# Needed for some frameworks
bison gettext \
# Qt and KDE Build Dependencies
gperf libasound2-dev libatkmm-1.6-dev libbz2-dev libcairo-perl libcap-dev libcups2-dev libdbus-1-dev \
libdrm-dev libegl1-mesa-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev libgl1-mesa-dev \
libglib-perl libgsl0-dev gstreamer1.0-alsa libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
libgtk2-perl libjpeg-dev libnss3-dev libpci-dev libpng12-dev libpulse-dev libssl-dev \
libtiff5-dev libudev-dev libwebp-dev flex libmysqlclient-dev \
# KF5 extra dependencies
libxcb-res0-dev \
# Mesa libraries for everything to use
libx11-dev libxkbcommon-dev libxkbcommon-x11-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-util0-dev libxcb1-dev libxcomposite-dev libxcursor-dev \
libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxrandr-dev libxrender-dev libxss-dev libxtst-dev mesa-common-dev \
# Kdenlive AppImage extra dependencies
liblist-moreutils-perl libtool libpixman-1-dev subversion
# Setup a user account for everything else to be done under
RUN useradd -d /home/appimage/ -u 1000 --user-group --create-home -G video appimage
# Make sure SSHD will be able to startup
RUN mkdir /var/run/sshd/
# Get locales in order
RUN locale-gen en_US en_US.UTF-8 en_NZ.UTF-8
# Switch over to our new user and add in the utilities needed for appimage builds
USER appimage
COPY setup-utilities /home/appimage/
RUN /home/appimage/setup-utilities
# Now we go back to being root for the final phase
USER root
# We want to run SSHD so that Jenkins can remotely connect to this container
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
#!/bin/bash
# If anything goes wrong, bail
set -e
# We need the appimage builder
cd ~/
wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" -O linuxdeployqt
chmod a+x linuxdeployqt
./linuxdeployqt --appimage-extract
rsync -rav ~/squashfs-root/usr/ ~/tools/
rm -rf ~/squashfs-root/ ~/linuxdeployqt
# Next thing to do: patchelf
mkdir ~/patchelf-build/
cd ~/patchelf-build/
wget -c -nv https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2
tar -xf patchelf-0.9.tar.bz2
cd patchelf-0.9
./configure -prefix=$HOME/tools/
make -j4 install
rm -rf ~/patchelf-build/
......@@ -6,11 +6,17 @@ MAINTAINER KDE Sysadmin <sysadmin@kde.org>
# Start off as root
USER root
# Make sure we are fully up to date to start with and install our core operational requirements
RUN apt-get update && apt-get install -y software-properties-common python-software-properties && add-apt-repository -y ppa:openjdk-r/ppa
# Setup the various repositories we are going to need for our dependencies
# Some software demands a newer GCC because they're using C++14 stuff, which is just insane
RUN apt-get update && apt-get install -y apt-transport-https ca-certificates gnupg software-properties-common wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add -
RUN add-apt-repository -y ppa:openjdk-r/ppa && apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
# Update the system and bring in our core operating requirements
RUN apt-get update && apt-get upgrade -y && apt-get install -y openssh-server openjdk-8-jre-headless
# Some software demands a newer GCC because they're using C++14 stuff, which is just insane
# We do this after the general system update to ensure it doesn't bring in any unnecessary updates
RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test && apt-get update
# Now install the general dependencies we need for builds
......