Commit 1a68e1e9 authored by Friedrich W. H. Kossebau's avatar Friedrich W. H. Kossebau
Browse files

appimage: bump versions of dependencies to newer, update howto

parent efb70121
......@@ -5,30 +5,30 @@ RUN cd /tmp && wget http://opensource.wandisco.com/rhel/6/svn-1.9/RPMS/x86_64/su
RUN echo ". /opt/rh/devtoolset-6/enable && chmod +x /opt/rh/python27/enable && . /opt/rh/python27/enable" >> /root/.bashrc
ENV LC_ALL=en_US.UTF-8 LANG=en_us.UTF-8 PYTHON_VERSION=3.6.7 QTVERSION=5.9.7 QTVERSION_SHORT=5.9 LLVM_VERSION=6.0.1 LLVM_ROOT=/opt/llvm/ LD_LIBRARY_PATH=$QTDIR/lib/
ENV LANG=en_US.UTF-8 PYTHON_VERSION=3.6.7 QTVERSION=5.9.8 QTVERSION_SHORT=5.9 LLVM_VERSION=8.0.0 LLVM_ROOT=/opt/llvm/ LD_LIBRARY_PATH=$QTDIR/lib/
ENV QTDIR=/opt/qt5
RUN bash -c "ln -sf /opt/rh/devtoolset-6/root/usr/bin/g++ /usr/bin/g++ && ln -sf /opt/rh/devtoolset-6/root/usr/bin/c++ /usr/bin/c++"
# Build Qt5
RUN bash -c "mkdir -p /qt && cd /qt && wget http://download.qt.io/archive/qt/${QTVERSION_SHORT}/${QTVERSION}/single/qt-everywhere-opensource-src-${QTVERSION}.tar.xz"
RUN bash -c "mkdir -p /qt && cd /qt && wget https://download.qt.io/archive/qt/${QTVERSION_SHORT}/${QTVERSION}/single/qt-everywhere-opensource-src-${QTVERSION}.tar.xz"
RUN bash -c "cd /qt && tar xvf qt-everywhere-opensource-src-${QTVERSION}.tar.xz"
RUN bash -c "export MAKEFLAGS=-j$(nproc) && cd /qt/qt-everywhere-opensource-src-${QTVERSION} && ./configure -v -skip qt3d -skip qtconnectivity -skip qtgamepad -skip qtlocation -skip qtcharts -skip qtremoteobjects -skip qtscxml -skip qtsensors -platform linux-g++ -qt-pcre -qt-xcb -qt-xkbcommon-x11 -xkb-config-root /usr/share/X11/xkb -no-pch -nomake tests -nomake examples -confirm-license -opensource -prefix $QTDIR && make -j$(nproc) || make -j 1 install; make -j$(nproc) install && rm -Rf /qt"
RUN bash -c "export MAKEFLAGS=-j$(nproc) && cd /qt/qt-everywhere-opensource-src-${QTVERSION} && ./configure -v -skip qt3d -skip qtconnectivity -skip qtgamepad -skip qtlocation -skip qtcharts -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtpurchasing -platform linux-g++ -qt-pcre -qt-xcb -qt-xkbcommon-x11 -xkb-config-root /usr/share/X11/xkb -no-pch -nomake tests -nomake examples -confirm-license -opensource -prefix $QTDIR && make -j$(nproc) || make -j 1 install; make -j$(nproc) install && rm -Rf /qt"
RUN ln -sf $QTDIR/bin/qmake /usr/bin/qmake-qt5
# Build qtwebkit
RUN bash -c "mkdir -p /qtwk && cd /qtwk && wget http://download.qt.io/archive/qt/${QTVERSION_SHORT}/5.9.1/submodules/qtwebkit-opensource-src-5.9.1.tar.xz"
RUN bash -c "mkdir -p /qtwk && cd /qtwk && wget https://download.qt.io/archive/qt/${QTVERSION_SHORT}/5.9.1/submodules/qtwebkit-opensource-src-5.9.1.tar.xz"
RUN bash -c "cd /qtwk/ && tar xvf qtwebkit-opensource-src-5.9.1.tar.xz"
RUN bash -c "cd /qtwk/qtwebkit-opensource-src-5.9.1 && $QTDIR/bin/qmake && make -j$(nproc) || make -j$(nproc) && make -j$(nproc) install && rm -Rf /qtwk"
# Install ninja
RUN bash -c "yum install unzip && mkdir -p /tmp/deploy && cd /tmp/deploy && wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip && unzip ninja-linux.zip && mv -f ninja /usr/local/bin && cd .. && rm -Rf deploy"
# Install ninja (1.8.2 latest working with libc of centos:6.10)
RUN bash -c "yum install unzip && mkdir -p /tmp/deploy && cd /tmp/deploy && wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip && unzip ninja-linux.zip && mv -f ninja /usr/local/bin && cd .. && rm -Rf deploy"
# Build Clang/LLVM
RUN bash -c "mkdir -p /llvm && cd /llvm && wget http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
RUN bash -c "mkdir -p /llvm && cd /llvm && wget https://releases.llvm.org/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz"
RUN bash -c "cd /llvm && tar xvf llvm-${LLVM_VERSION}.src.tar.xz && cd llvm-${LLVM_VERSION}.src"
RUN bash -c "cd /llvm/llvm-${LLVM_VERSION}.src/tools && wget http://llvm.org/releases/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.xz"
RUN bash -c "cd /llvm/llvm-${LLVM_VERSION}.src/tools && wget https://llvm.org/releases/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.xz"
RUN bash -c "cd /llvm/llvm-${LLVM_VERSION}.src/tools && tar xvf cfe-${LLVM_VERSION}.src.tar.xz"
RUN bash -c ". /opt/rh/python27/enable && . /opt/rh/devtoolset-6/enable && python --version && cd /llvm/llvm-${LLVM_VERSION}.src && mkdir -p build && cd build && cmake3 -G Ninja .. -DCMAKE_INSTALL_PREFIX=/opt/llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_TARGETS_TO_BUILD=X86 && ninja install && rm -Rf /llvm"
......
To build the AppImage, you basically just have to:
1) Build the base docker container
a) By doing it manually:
```
docker pull centos:6.8
docker build .
docker images (should show the image ID of the newly created image)
docker run <image id>
```
Once created, you can just detach/attach and start/stop the container, i.e.
```
docker start <container id>
docker attach <container id>
```
Building the container will take several hours at least.
1) Build the base docker image
b) **OR**: Get Sven's pre-built version:
```
docker pull scummos/centos6.8-qt5.7
```
```
docker pull centos:6.10
docker build <path/to/this/folder/where/Dockerfile>
```
Building the image will take several hours at least.
2) Copy the script into the docker container, using docker cp.
2) Create a container from image and open a shell
```
docker images (should show the image ID of the newly created image)
docker run -t -i --name kdevelopappimagecreator <image id>
```
3) Run the script.
Running the script will also take quite a while the first time you do it,
so it is advisable to always re-use the same container.
3) Copy the script and patches into the docker container
```
docker cp kdevelop-recipe-centos6.sh kdevelopappimagecreator:/
for p in *.patch ; do docker cp $p kdevelop5.3appimagecreator:/ ; done
```
4) Copy the resulting AppImage out of the container using docker cp.
4) Run the script in the interactive shell of the container
```
./kdevelop-recipe-centos6.sh
```
Running the script will also take quite a while the first time you do it,
so it is advisable to always re-use the same container.
5) Copy the resulting AppImage out of the container
```
docker cp kdevelopappimagecreator:/out/KDevelop-git-x86_64.AppImage .
```
......@@ -25,14 +25,15 @@ if [ -z "$KDEVELOP_VERSION" ]; then
KDEVELOP_VERSION=5.3
fi
if [ -z "$KDEV_PG_QT_VERSION" ]; then
KDEV_PG_QT_VERSION=v2.1.0
KDEV_PG_QT_VERSION=v2.2.0
fi
if [ -z "$KDEV_CLANG_TIDY_VERSION" ]; then
KDEV_CLANG_TIDY_VERSION=v0.3.0
fi
KF5_VERSION=v5.51.0
KDE_PLASMA_VERSION=v5.13.4 # note: need libksysguard commit a0e69617442d720c76da5ebe3323e7a977929db4 (patch which makes plasma dep optional)
KDE_APPLICATION_VERSION=v18.12.1
KF5_VERSION=v5.54.0
KDE_PLASMA_BREEZE_VERSION=v5.13.5 # latest version still supporting Qt 5.9
LIBKSYSGUARD_VERSION=v5.15.5 # latest version still supporting Qt 5.9
KDE_APPLICATION_VERSION=v19.04.3
GRANTLEE_VERSION=v5.1.0
OKTETA_VERSION=v0.26.2
......@@ -42,8 +43,7 @@ export LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64:$LD_LIBRARY_PATH
# qjsonparser, used to add metadata to the plugins needs to work in a en_US.UTF-8 environment. That's
# not always set correctly in CentOS 6.7
export LC_ALL=en_US.UTF-8
export LANG=en_us.UTF-8
export LANG=en_US.UTF-8
# Determine which architecture should be built
if [[ "$(arch)" = "i686" || "$(arch)" = "x86_64" ]] ; then
......@@ -201,13 +201,13 @@ build_framework kinit
fi
# KDE Plasma
build_project libksysguard $KDE_PLASMA_VERSION
build_project kdecoration $KDE_PLASMA_VERSION # for breeze
build_project breeze $KDE_PLASMA_VERSION
build_project libksysguard $LIBKSYSGUARD_VERSION
build_project kdecoration $KDE_PLASMA_BREEZE_VERSION # needed by breeze
build_project breeze $KDE_PLASMA_BREEZE_VERSION
# KDE Applications
build_project libkomparediff2 $KDE_APPLICATION_VERSION
build_project kate $KDE_APPLICATION_VERSION # for snippet plugin, see T3826
build_project kate $KDE_APPLICATION_VERSION -DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE -DBUILD_addons=TRUE -DBUILD_snippets=TRUE -DBUILD_kate-ctags=TRUE # for snippet plugin, see T3826
build_project konsole $KDE_APPLICATION_VERSION
build_project okteta $OKTETA_VERSION -DBUILD_DESIGNERPLUGIN=OFF -DBUILD_OKTETAKASTENLIBS=OFF
......@@ -428,7 +428,7 @@ export APPIMAGE_STARTUP_XDG_DATA_DIRS=\$XDG_DATA_DIRS
export APPIMAGE_STARTUP_PATH=\$PATH
export APPIMAGE_STARTUP_PYTHONHOME=\$PYTHONHOME
export KDEV_CLANG_BUILTIN_DIR=\$DIR/opt/llvm/lib/clang/6.0.1/include
export KDEV_CLANG_BUILTIN_DIR=\$DIR/opt/llvm/lib/clang/8.0.0/include
export KDEV_DISABLE_PLUGINS=KDevWelcomePage
cd \$HOME
......
diff --git a/CMakeLists.txt b/CMakeLists.txt
index aa2926f..60f4277 100644
index da34e23..87fef63 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,7 +77,7 @@ else()
set_package_properties(Phonon4Qt5 PROPERTIES
DESCRIPTION "Qt-based audio library"
# This is REQUIRED since you cannot tell CMake "either one of those two optional ones are required"
- TYPE REQUIRED
+ TYPE OPTIONAL
@@ -86,7 +86,7 @@ else()
PURPOSE "Needed to build audio notification support when Canberra isn't available")
if (NOT ANDROID)
# This is REQUIRED since you cannot tell CMake "either one of those two optional ones are required"
- set_package_properties(Phonon4Qt5 PROPERTIES TYPE REQUIRED)
+# set_package_properties(Phonon4Qt5 PROPERTIES TYPE REQUIRED)
endif()
if (Phonon4Qt5_FOUND)
add_definitions(-DHAVE_PHONON4QT5)
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