Dockerfile 6.64 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
FROM opensuse/tumbleweed
MAINTAINER openSUSE KDE Maintainers <opensuse-kde@opensuse.org>

# Add KDE:Qt:5.11 repo
RUN zypper --non-interactive addrepo --priority 50 --refresh obs://KDE:Qt:5.11/openSUSE_Tumbleweed KDE:Qt:5.11
# Update container, import GPG key for KUQ
RUN zypper --non-interactive --gpg-auto-import-keys -v dup
# Install various other packages
RUN zypper --non-interactive install java-1_8_0-openjdk-headless python3-lxml python3-paramiko python3-PyYAML python3-simplejson
# Install build dependencies
RUN zypper --non-interactive install --recommends -t pattern devel_qt5 devel_C_C++
# The pattern is likely not enough, so just install all Qt devel packages from KUQ
13
RUN zypper -q se --not-installed-only --repo KDE:Qt:5.11 libqt5*devel libQt5*devel | tail -n +4 | cut -d "|" -f 2 | grep -v "libqt5-creator" | grep -v "libqt5-qtvirtualkeyboard-private-headers" | grep -v "libQt5HunspellInputMethod-private-headers" | grep -vi "libqt5xdg" | grep -v "libQt5Pas" | xargs zypper --non-interactive in
14
# And some other useful and base packages
15
RUN zypper --non-interactive in git clang python3-Sphinx python-qt5 python3-qt5 xvfb-run AppStream python3-pip ruby-devel libffi-devel openbox sassc \
16 17 18 19 20 21 22
    # temporarily: curl needed for appstreamcli, cmp. https://bugzilla.opensuse.org/show_bug.cgi?id=1080446
    curl \
    # abi tracking software and it's dependencies
    abi-compliance-checker ctags \
    # basic Qt5 packages, which have no -devel and should be manually installed
    libqt5-qtquickcontrols libqt5-qtquickcontrols2 libqt5-qtgraphicaleffects \
    # Other basic Qt based libraries
23 24 25
    libqca-qt5-devel \
    # For building documentation tarballs
    bzip2
26 27 28 29
RUN pip install gcovr
RUN gem install atspi cucumber
RUN ln -s /usr/bin/cucumber.ruby* /usr/bin/cucumber
# KDE stuff also depends on the following
30
RUN zypper --non-interactive in --allow-vendor-change \
31 32 33 34 35 36 37 38 39 40 41
    # modemmanager-qt
    ModemManager-devel \
    # networkmanager-qt
    NetworkManager-devel \
    # kauth
    polkit-devel \
    # kwindowsystem
    xcb-*-devel \
    # prison
    libdmtx-devel qrencode-devel \
    # kwayland
42
    wayland-devel \
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
    # baloo/kfilemetadata (some for okular)
    libattr-devel libexiv2-devel libtag-devel taglib-*-devel libepub-devel libpoppler-qt5-devel lmdb-devel \
    # kdoctools
    perl-URI docbook_4 docbook-xsl-stylesheets libxml2-devel libxslt-devel perl-URI \
    # khtml
    giflib-devel libopenssl-devel \
    # kdelibs4support
    libSM-devel \
    # kdnssd
    libavahi-devel libavahi-glib-devel libavahi-gobject-devel \
    # khelpcenter (and pim for grantlee)
    grantlee5-devel libxapian-devel \
    # sonnet
    hunspell-devel \
    # kio-extras and krdc
    libssh-devel \
    # plasma-pa
    gconf2-devel libpulse-devel libcanberra-devel \
    # user-manager
    libpwquality-devel \
    # sddm-kcm
    libXcursor-devel \
    # plasma-workspace
    libXtst-devel \
    # breeze-plymouth
    # plymouth-devel \
    # kde-gtk-config/breeze-gtk
70
    gtk3-devel gtk2-devel python3-cairo \
71 72 73 74 75 76 77 78 79
    # plasma-desktop/discover
    libAppStreamQt-devel fwupd-devel \
    # plasma-desktop
    xf86-input-synaptics-devel xf86-input-evdev-devel libxkbfile-devel xorg-x11-server-sdk \
    # kimpanel
    ibus-devel scim-devel \
    # libksane
    sane-backends-devel \
    # pim
80
    libical-devel libkolabxml-devel libxerces-c-devel \
81 82 83 84 85
    # <misc>
    alsa-devel libraw-devel fftw3-devel adobe-sourcecodepro-fonts \
    # choqok
    qoauth-qt5-devel qtkeychain-qt5-devel \
    # krita
86
    eigen3-devel OpenColorIO-devel dejavu-fonts gnu-free-fonts quazip-qt5-devel \
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
    # kaccounts / telepathy
    libaccounts-qt5-devel libaccounts-glib-devel libsignon-qt5-devel intltool \
    # skrooge
    sqlcipher sqlcipher-devel sqlite3-devel sqlite3 libofx-devel poppler-tools \
    # kwin
    libepoxy-devel Mesa-demo Mesa-demo-x xorg-x11-server-extra dmz-icon-theme-cursors libgbm-devel weston \
    xorg-x11-server-wayland \
    # kgraphviewer
    graphviz-devel \
    # drkonqi
    at-spi2-core which libgirepository-1_0-1 typelib-1_0-Atspi-2_0 gobject-introspection-devel \
    # kdevelop
    gdb \
    # labplot
    gsl-devel \
    # kuserfeedback
    php7 \
    # digikam
    QtAV-devel opencv-devel \
    # wacomtablet
    libwacom-devel \
    xf86-input-wacom-devel \
    # rust-qt-binding-generator
    rust rust-std \
    cargo \
    # kdevelop
    clang \
    clang-devel \
    llvm-devel \
    subversion-devel \
    python3-devel \
    # clazy
    clang-devel-static \
    # libkleo
    libqgpgme-devel \
    # akonadi
    mariadb libQt5Sql5-mysql \
    # libkdegames
    openal-soft-devel \
    libsndfile-devel \
    # kscd
    libmusicbrainz-devel \
    libmusicbrainz5-devel \
    # ktp-common-internals (also rest of KDE Telepathy)
    telepathy-qt5-devel \
    # audiocd-kio
    cdparanoia-devel \
    # ark
    libarchive-devel \
    # ffmpegthumbs
    libavcodec-devel libavfilter-devel libavformat-devel libavdevice-devel libavutil-devel libswscale-devel libpostproc-devel \
    # k3b
    flac-devel \
    libmad-devel \
    libmp3lame-devel \
    libogg-devel libvorbis-devel \
    libsamplerate-devel \
    # kamera
    libgphoto2-devel \
    # signon-kwallet-extension
    libsignon-glib-devel signond-libs-devel \
    # kdenlive
149
    libmlt-devel libmlt++-devel libmlt6-modules libmlt6-data rttr-devel \
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
    # print-manager
    cups-devel \
    # krfb
    LibVNCServer-devel \
    # kscd
    libdiscid-devel \
    # ktp-call-ui
    gstreamer-plugins-qt5-devel \
    # minuet
    fluidsynth-devel \
    # kajongg
    python3-Twisted \
    # okular
    texlive-latex \
    # ksmtp tests
    cyrus-sasl-plain \
    # kdb
    libmariadb-devel postgresql-devel \
    # Gwenview
    cfitsio-devel \
    # Calligra, Krita and probably other things elsewhere too
    libboost_*-devel \
    # Amarok
    gmock gtest libcurl-devel libofa-devel libgpod-devel libmtp-devel loudmouth-devel liblastfm-qt5-devel libmysqld-devel \
    # Cantor
175
    python2-numpy python3-numpy python3-matplotlib octave maxima \
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
    # KPat
    freecell-solver-devel \
    # RKWard
    R-base-devel gcc-fortran

# For D-Bus to be willing to start it needs a Machine ID
RUN dbus-uuidgen > /etc/machine-id

# OpenSUSE has a different GID for the 'video' group compared to the Physical Ubuntu and Debian hosts
# Therefore we create a group which matches the physical hosts 'video' group GID
# This is necessary to allow us to grant Jenkins access to the vgem device
RUN groupadd -g 44 docker-video
# We need a user account to do things as, and SSHD needs keys
RUN useradd -d /home/jenkins/ -u 1000 --user-group --create-home -G video,docker-video jenkins && /usr/sbin/sshd-gen-keys-start
# We want to run SSHD so that Jenkins can remotely connect to this container
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]