diff --git a/packaging/appimage/01-dependencies.sh b/packaging/appimage/01-dependencies.sh deleted file mode 100755 index 29fefa81e..000000000 --- a/packaging/appimage/01-dependencies.sh +++ /dev/null @@ -1,487 +0,0 @@ -#!/bin/bash - -# Halt on errors -set -e - -# Be verbose -set -x - -# Now we are inside CentOS 6 -grep -r "CentOS release 6" /etc/redhat-release || exit 1 - -CPU_CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu) - -if [[ $CPU_CORES -gt 1 ]]; then - CPU_CORES=$((CPU_CORES-1)) -fi - -echo "CPU Cores to use : $CPU_CORES" - -# Determine which architecture should be built -if [[ "$(arch)" = "i686" || "$(arch)" = "x86_64" ]] ; then - ARCH=$(arch) -else - echo "Architecture could not be determined" - exit 1 -fi - -if [[ ! -f /etc/yum.repos.d/epel.repo ]] ; then - - yum -y install epel-release - - # we need to be up to date in order to install the xcb-keysyms dependency - yum -y update -fi - -# Required for GAVL install (used in frei0r crop,scale,tilt effect) -if [[ ! -f /etc/yum.repos.d/linuxtech.repo ]] ; then - cat > /etc/yum.repos.d/linuxtech.repo << 'EOF' -[linuxtech] -name=LinuxTECH -baseurl=http://pkgrepo.linuxtech.net/el6/release/ -enabled=1 -gpgcheck=1 -gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET -EOF - yum -y update -fi - -# gettext - -# Packages for base dependencies and Qt5. -yum -y install wget \ - tar \ - bzip2 \ - xz \ - subversion \ - libtool \ - which \ - fuse \ - automake \ - mesa-libEGL \ - cmake3 \ - gcc-c++ \ - patch \ - libxcb \ - xcb-util \ - xkeyboard-config \ - gperf \ - bison \ - flex \ - zlib-devel \ - expat-devel \ - fuse-devel \ - libtool-ltdl-devel \ - glib2-devel \ - glibc-headers \ - mysql-devel \ - eigen3-devel \ - openssl-devel \ - cppunit-devel \ - libstdc++-devel \ - freetype-devel \ - fontconfig-devel \ - libxml2-devel \ - libstdc++-devel \ - libXrender-devel \ - lcms2-devel \ - xcb-util-keysyms-devel \ - libXi-devel \ - mesa-libGL-devel \ - mesa-libGLU-devel \ - libxcb-devel \ - xcb-util-devel \ - glibc-devel \ - libudev-devel \ - libicu-devel \ - sqlite-devel \ - libusb-devel \ - libexif-devel \ - libical-devel \ - libxslt-devel \ - xz-devel \ - lz4-devel \ - inotify-tools-devel \ - cups-devel \ - openal-soft-devel \ - pixman-devel \ - polkit-devel \ - perl-ExtUtils-MakeMaker \ - curl-devel \ - pulseaudio-libs-devel \ - libgavl-devel \ - sox-devel \ - fftw-devel \ - perl-List-MoreUtils \ - perl-XML-Parser \ - jack-audio-connection-kit-devel \ - ladspa-devel - -if ( !test -d /usr/bin/cmake ) ; then - ln -s /usr/bin/cmake3 /usr/bin/cmake -fi - -# Newer compiler than what comes with offcial CentOS 6 (only 64 bits) -yum -y install centos-release-scl-rh -yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++ - -# required for Kdenlive related libs -yum -y install libXft-devel atk-devel libXcomposite-devel - -# Get helper functions -wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh -. ./functions.sh -rm -f functions.sh - -echo -e "---------- Clean-up Old Packages\n" - -# Remove system based devel package to prevent conflict with new one. -yum -y erase boost-devel libgphoto2 sane-backends libjpeg-devel jasper-devel libpng-devel libtiff-devel git - -# Prepare the install location -# rm -rf /app/ || true -mkdir -p /app/usr -mkdir -p /external/build -mkdir -p /external/download - -export LLVM_ROOT=/opt/llvm/ - -# make sure lib and lib64 are the same thing -mkdir -p /app/usr/lib -cd /app/usr -rm -Rf lib64 -ln -s lib lib64 - -QTVERSION=5.9.4 -QVERSION_SHORT=5.9 -QTDIR=/usr/local/Qt-${QTVERSION}/ - -# Use the new compiler -. /opt/rh/devtoolset-3/enable - -BUILDING_DIR="/external/build" -DOWNLOAD_DIR="/external/download" - -# install recent git -if [ ! -d /external/git-2.7.4 ]; then - cd /external - wget https://www.kernel.org/pub/software/scm/git/git-2.7.4.tar.gz - tar xzf git-2.7.4.tar.gz -fi -cd /external/git-2.7.4 -make prefix=/usr/local/git all -make prefix=/usr/local/git install -echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc -source /etc/bashrc - -cd $BUILDING_DIR - -rm -rf $BUILDING_DIR/* || true - -cmake3 /kdenlive/packaging/appimage/3rdparty \ - -DCMAKE_INSTALL_PREFIX:PATH=/usr \ - -DINSTALL_ROOT=/usr \ - -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR - -cmake3 --build . --config RelWithDebInfo --target ext_jpeg -- -j$CPU_CORES -cmake3 --build . --config RelWithDebInfo --target ext_jasper -- -j$CPU_CORES -cmake3 --build . --config RelWithDebInfo --target ext_png -- -j$CPU_CORES -cmake3 --build . --config RelWithDebInfo --target ext_tiff -- -j$CPU_CORES -#cmake3 --build . --config RelWithDebInfo --target ext_opencv -- -j$CPU_CORES -cmake3 --build . --config RelWithDebInfo --target ext_qt -- -j$CPU_CORES -cmake3 --build . --config RelWithDebInfo --target ext_exiv2 -- -j$CPU_CORES - - -#gettext -cd /external -if ( test -d /external/gettext-0.18.3 ) -then - echo "gettext already downloaded" -else - wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.3.tar.gz - tar -xf gettext-0.18.3.tar.gz -fi -cd gettext-0.18.3 -./configure --prefix=/usr -make -j5 -make install - -#necessary ? -#pulseaudio-libs - -# 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 - - -# Make sure we build from the /, parts of this script depends on that. We also need to run as root... -cd / - -# TO-DO ask about this. -export CMAKE_PREFIX_PATH=$QTDIR:/app/share/llvm/ - -#update cmake https://xinyustudio.wordpress.com/2014/06/18/how-to-install-cmake-3-0-on-centos-6-centos-7/ -#export PATH=/usr/local/cmake-3.0.0/bin:$PATH - -# if the library path doesn't point to our usr/lib, linking will be broken and we won't find all deps either -export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:/opt/python3.5/lib/:$LD_LIBRARY_PATH - -# start building the deps - -function build_external -{ ( - # errors fatal - echo "Compiler version:" $(g++ --version) - set -e - - SRC=/external - BUILD=/external/build - PREFIX=/app/usr/ - - # framework - EXTERNAL=$1 - - # clone if not there - mkdir -p $SRC - cd $SRC - if ( test -d $EXTERNAL ) - then - echo "$EXTERNAL already cloned" - cd $EXTERNAL - git reset --hard - git pull --rebase - cd .. - else - git clone $EXTERNAL_ADDRESS - fi - - # create build dir - mkdir -p $BUILD/$EXTERNAL - - # go there - cd $BUILD/$EXTERNAL - - # cmake it - if ( $EXTERNAL_CMAKE ) - then - cmake3 -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX $2 $SRC/$EXTERNAL - else - $EXTERNAL_CONFIGURE - fi - # make - make -j8 - - # install - make install -) } - - -export WLD=/app/usr/ # change this to another location if you prefer -export LD_LIBRARY_PATH=$WLD/lib:$LD_LIBRARY_PATH -export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/:/usr/lib/pkgconfig/:$PKG_CONFIG_PATH -export PATH=$WLD/bin:$PATH -export ACLOCAL_PATH=$WLD/share/aclocal -export ACLOCAL="aclocal -I $ACLOCAL_PATH" - -#yasm -IN=yasm,https://github.com/yasm/yasm.git,true,"" -IFS=',' read -a external_options <<< $IN -EXTERNAL="${external_options[0]}" -EXTERNAL_ADDRESS="${external_options[1]}" -EXTERNAL_CMAKE="${external_options[2]}" -EXTERNAL_CONFIGURE="${external_options[3]}" -build_external $EXTERNAL - -#nasm -cd /external -if ( test -d /external/nasm-2.13.02 ) -then - echo "nasm already downloaded" -else - wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.xz - tar -xf nasm-2.13.02.tar.xz -fi -cd nasm-2.13.02 -./configure --prefix=$WLD -make -j5 -make install - - -#libsndfile -cd /external -if ( test -d /external/libsndfile-1.0.28 ) -then - echo "libsndfile already downloaded" -else - wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz - tar -xf libsndfile-1.0.28.tar.gz -fi -cd libsndfile-1.0.28 -./configure --prefix=$WLD -make -j5 -make install - -#libsamplerate -cd /external -if ( test -d /external/libsamplerate-0.1.9 ) -then - echo "libsamplerate already downloaded" -else - wget http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz - tar -xf libsamplerate-0.1.9.tar.gz -fi -cd libsamplerate-0.1.9 -./configure --prefix=$WLD -make -j5 -make install - - -#alsa-lib -cd /external -if ( test -d /external/alsa-lib-1.1.5 ) -then - echo "alsa-lib already downloaded" -else - wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.5.tar.bz2 - tar -xf alsa-lib-1.1.5.tar.bz2 -fi -cd alsa-lib-1.1.5 -./configure --prefix=$WLD -make -j5 -make install - -#sdl -cd /external -if ( test -d /external/SDL2-2.0.7 ) -then - echo "SDL already downloaded" -else - wget http://libsdl.org/release/SDL2-2.0.7.tar.gz - tar -xf SDL2-2.0.7.tar.gz -fi -cd /external/SDL2-2.0.7 -./configure --prefix=$WLD --with-alsa-prefix=/app/usr/lib --with-alsa-inc-prefix=/app/usr/include/ -make -make install - - -function build_framework -{ ( - # errors fatal - echo "Compiler version:" $(g++ --version) - set -e - - SRC=/kf5 - BUILD=/kf5/build - PREFIX=/app/usr/ - - # framework - FRAMEWORK=$1 - - # clone if not there - mkdir -p $SRC - cd $SRC - if ( test -d $FRAMEWORK ) - then - echo "$FRAMEWORK already cloned" - cd $FRAMEWORK - if [ "$FRAMEWORK" = "polkit-qt-1" ] || [ "$FRAMEWORK" = "breeze" ] || [ "$FRAMEWORK" = "kdecoration" ]; then - git checkout . - git checkout master - git reset --hard - git pull --rebase - elif [ "$FRAMEWORK" = "knotifications" ]; then - git checkout . - git checkout master - git fetch --tags - git checkout v5.45.0 - else - git fetch --tags - git checkout v5.45.0 - fi - #git checkout master - #git reset --hard - #git pull --rebase - cd .. - else - git clone git://anongit.kde.org/$FRAMEWORK - cd $FRAMEWORK - if [ "$FRAMEWORK" = "polkit-qt-1" ] || [ "$FRAMEWORK" = "breeze" ] || [ "$FRAMEWORK" = "kdecoration" ]; then - git checkout master - git reset --hard - git pull --rebase - elif [ "$FRAMEWORK" = "knotifications" ]; then - git reset --hard - git fetch --tags - git checkout v5.45.0 - else - git fetch --tags - git checkout v5.45.0 - fi - cd .. - fi - - if [ "$FRAMEWORK" = "knotifications" ]; then - cd $FRAMEWORK - echo "patching knotifications" - cat > no_phonon.patch << EOF -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0104c73..de44e9a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -59,11 +59,11 @@ find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED) - find_package(KF5Codecs ${KF5_DEP_VERSION} REQUIRED) - find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) - --find_package(Phonon4Qt5 4.6.60 REQUIRED NO_MODULE) --set_package_properties(Phonon4Qt5 PROPERTIES -- DESCRIPTION "Qt-based audio library" -- TYPE REQUIRED -- PURPOSE "Required to build audio notification support") -+#find_package(Phonon4Qt5 4.6.60 REQUIRED NO_MODULE) -+#set_package_properties(Phonon4Qt5 PROPERTIES -+# DESCRIPTION "Qt-based audio library" -+# TYPE REQUIRED -+# PURPOSE "Required to build audio notification support") - if (Phonon4Qt5_FOUND) - add_definitions(-DHAVE_PHONON4QT5) - endif() -EOF - cat no_phonon.patch |patch -p1 - cd .. - fi - - # create build dir - mkdir -p $BUILD/$FRAMEWORK - - # go there - cd $BUILD/$FRAMEWORK - - # cmake it - cmake3 -DBUILD_TESTING:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX $2 $SRC/$FRAMEWORK > /tmp/$FRAMEWORK.log - - # make - make -j8 - - # install - make install -) } - - -#TO-DO script these extras -build_framework extra-cmake-modules "-DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON" -#Cmake is too old on centos6.... so does this mean no sound for KDE apps? blech. -#build_framework phonon -DPHONON_BUILD_PHONON4QT5=ON - -for FRAMEWORK in karchive kconfig kwidgetsaddons kcompletion kcoreaddons polkit-qt-1 kauth kcodecs ki18n kdoctools kguiaddons kconfigwidgets kwindowsystem kcrash kdbusaddons kitemviews kiconthemes kjobwidgets kservice solid sonnet ktextwidgets attica kglobalaccel kxmlgui kbookmarks knotifications kio knotifyconfig knewstuff kpackage kdeclarative ; do - build_framework $FRAMEWORK "-DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON" -done -build_framework breeze-icons "-DBINARY_ICONS_RESOURCE=1 -DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON" -build_framework kdecoration "-DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON" -build_framework breeze "-DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON" - -cd .. - -echo "+++++++++++++\n BUILDING FRAMEWORKS DONE \n+++++++++++++++" - diff --git a/packaging/appimage/02-avlibs.sh b/packaging/appimage/02-avlibs.sh deleted file mode 100755 index 3753c06c9..000000000 --- a/packaging/appimage/02-avlibs.sh +++ /dev/null @@ -1,409 +0,0 @@ -#!/bin/bash - -# Halt on errors -set -e - -# Be verbose -set -x - -# Now we are inside CentOS 6 -grep -r "CentOS release 6" /etc/redhat-release || exit 1 - -. /opt/rh/devtoolset-3/enable - -#necessary ? -#pulseaudio-libs - -QTVERSION=5.9.4 -QVERSION_SHORT=5.9 -QTDIR=/usr/local/Qt-${QTVERSION}/ - -# 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 - -# Determine which architecture should be built -if [[ "$(arch)" = "i686" || "$(arch)" = "x86_64" ]] ; then - ARCH=$(arch) -else - echo "Architecture could not be determined" - exit 1 -fi - -# Make sure we build from the /, parts of this script depends on that. We also need to run as root... -cd / - -# TO-DO ask about this. -export CMAKE_PREFIX_PATH=$QTDIR:/app/share/llvm/ - -# if the library path doesn't point to our usr/lib, linking will be broken and we won't find all deps either -export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:/opt/python3.5/lib/:$LD_LIBRARY_PATH -#export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:$LD_LIBRARY_PATH - -# Prepare the install location -#rm -rf /app/ || true -mkdir -p /app/usr - -# export LLVM_ROOT=/opt/llvm/ - -# start building the deps - -function build_external -{ ( - # errors fatal - echo "Compiler version:" $(g++ --version) - set -e - - SRC=/external - BUILD=/external/build - PREFIX=/app/usr/ - - # framework - EXTERNAL=$1 - - # clone if not there - mkdir -p $SRC - cd $SRC - if ( test -d $EXTERNAL ) - then - echo "$EXTERNAL already cloned" -if [ $# -eq 0 ]; then - cd $EXTERNAL - git reset --hard - git pull --rebase - cd .. -fi - else - git clone $EXTERNAL_ADDRESS - fi - - # create build dir - mkdir -p $BUILD/$EXTERNAL - - # go there - cd $BUILD/$EXTERNAL - - # cmake it - if ( $EXTERNAL_CMAKE ) - then - cmake3 -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX $2 $SRC/$EXTERNAL - else - $EXTERNAL_CONFIGURE - fi - make -j8 - - # install - make install -) } - - -export WLD=/app/usr/ # change this to another location if you prefer -export LD_LIBRARY_PATH=$WLD/lib:$LD_LIBRARY_PATH -export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/:/usr/lib/pkgconfig/:$PKG_CONFIG_PATH -export PATH=$WLD/bin:$PATH -export ACLOCAL_PATH=$WLD/share/aclocal -export ACLOCAL="aclocal -I $ACLOCAL_PATH" - -#libsndfile -cd /external -if ( test -d /external/libsndfile-1.0.28 ) -then - echo "libsndfile already downloaded" -else - wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz - tar -xf libsndfile-1.0.28.tar.gz -fi -cd libsndfile-1.0.28 -./configure --prefix=$WLD -make -j5 -make install - -#libsamplerate -cd /external -if ( test -d /external/libsamplerate-0.1.9 ) -then - echo "libsamplerate already downloaded" -else - wget http://www.mega-nerd.com/SRC/libsamplerate-0.1.9.tar.gz - tar -xf libsamplerate-0.1.9.tar.gz -fi -cd libsamplerate-0.1.9 -./configure --prefix=$WLD -make -j5 -make install - -#ladspa-plugins (shw) -cd /external -if ( test -d /external/ladspa ) -then - echo "ladspa already downloaded, on failure, replace AC_CONFIG_MACRO_DIRS([m4]) with AC_CONFIG_MACRO_DIR([m4])" - cd ladspa - git reset --hard - git pull --rebase - cd .. -else - git clone https://github.com/swh/ladspa.git -fi -cd ladspa -echo "Readying ladspa, on failure, replace AC_CONFIG_MACRO_DIRS([m4]) with AC_CONFIG_MACRO_DIR([m4]) in configure.ac" -autoreconf -i -./configure --prefix=$WLD -make -j5 -make install - - -#alsa-lib -cd /external -if ( test -d /external/alsa-lib-1.1.5 ) -then - echo "alsa-lib already downloaded" -else - wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.5.tar.bz2 - tar -xf alsa-lib-1.1.5.tar.bz2 -fi -cd alsa-lib-1.1.5 -./configure --prefix=$WLD -make -j5 -make install - - -#libx264 -cd /external -if ( test -d /external/x264 ) -then - echo "libx264 already cloned" -if [ $# -eq 0 ]; then - cd x264 - git reset --hard - git pull --rebase - cd .. -fi - # make distclean -else - #git clone git://git.videolan.org/x264.git - git clone https://anonscm.debian.org/git/pkg-multimedia/x264.git -fi -cd x264 -./configure --enable-static --enable-shared --prefix=$WLD -make -j5 -make install - - -#libx265 -cd /external -if ( test -d /external/x265 ) -then - echo "libx265 already downloaded" - cd x265 -if [ $# -eq 0 ]; then - git reset --hard - git pull --rebase -fi - cd build/linux - # make distclean -else - git clone https://anonscm.debian.org/git/pkg-multimedia/x265.git - cd x265/build/linux -fi -cmake3 -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$WLD" -DENABLE_PIC=ON -DENABLE_SHARED=OFF ../../source -make -j5 -make install - -#libvpx -cd /external -if ( test -d /external/libvpx ) -then - echo "libvpx already cloned" -if [ $# -eq 0 ]; then - cd libvpx - git reset --hard - git pull --rebase - cd .. -fi - #make clean -else - git clone https://anonscm.debian.org/git/pkg-multimedia/libvpx.git -fi -cd libvpx -./configure --enable-static --as=yasm --enable-shared --prefix=$WLD -make -j5 -make install - -#ffmpeg -cd /external -if ( test -d /external/ffmpeg ) -then - echo "ffmpeg already cloned" -if [ $# -eq 0 ]; then - cd ffmpeg - git reset --hard -# git pull --rebase - git checkout debian/7%3.3.4-2 - cd .. -fi -else -# git clone https://git.ffmpeg.org/ffmpeg.git -# Use debian source - git clone https://anonscm.debian.org/git/pkg-multimedia/ffmpeg.git -fi -cd ffmpeg -./configure --prefix=$WLD --extra-ldflags="-L$WLD/lib -lstdc++ -lm -lrt -ldl" --extra-cflags="-I$WLD/include" --enable-shared --enable-avfilter --enable-gpl --enable-avresample --enable-libx265 --enable-libvpx --enable-libx264 --disable-doc -make -j5 -make install - -#opencv_contrib -# download manually (hash mismatch) -# https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20151201/ippicv - - -if ( test -d /external/cairo-1.14.10 ) -then - echo "cairo already downloaded" - cd /external/cairo-1.14.10 -else - cd /external - wget https://www.cairographics.org/releases/cairo-1.14.10.tar.xz - tar -xf cairo-1.14.10.tar.xz - cd /external/cairo-1.14.10 - ./autogen.sh -fi -./configure --prefix=$WLD -make -j5 -make install -/bin/cp /app/usr/lib/pkgconfig/cairo* /usr/lib/pkgconfig/ - -if ( test -d /external/harfbuzz-0.9.10 ) -then - echo "pango already downloaded" - cd /external/harfbuzz-0.9.10 -else - cd /external - wget https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.10.tar.bz2 - tar -xf harfbuzz-0.9.10.tar.bz2 - cd /external/harfbuzz-0.9.10 -fi -./configure --prefix=$WLD -make -j5 -make install -/bin/cp /app/usr/lib/pkgconfig/harf* /usr/lib/pkgconfig/ -/bin/cp /app/usr/lib/libharfbuzz.* /usr/lib - -if ( test -d /external/pango-1.28.4 ) -then - echo "pango already downloaded" - cd /external/pango-1.28.4 -else - cd /external - wget http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/pango-1.28.4.tar.gz - tar -xf pango-1.28.4.tar.gz - cd /external/pango-1.28.4 -fi -./configure --prefix=$WLD -make -j5 -make install -/bin/cp /app/usr/lib/pkgconfig/pango* /usr/lib/pkgconfig/ - -if ( test -d /external/gdk-pixbuf-2.23.5 ) -then - echo "gdk-pixbuf already downloaded" - cd /external/gdk-pixbuf-2.23.5 -else - cd /external - wget http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.23/gdk-pixbuf-2.23.5.tar.xz - tar -xf gdk-pixbuf-2.23.5.tar.xz - cd /external/gdk-pixbuf-2.23.5 -fi -./configure --prefix=$WLD -make -j5 -make install -/bin/cp /app/usr/lib/pkgconfig/gdk* /usr/lib/pkgconfig/ - - -if ( test -d /external/gtk+-2.23.90 ) -then - echo "gtk2 already downloaded" - cd /external/gtk+-2.23.90 -else - cd /external - wget http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.23/gtk+-2.23.90.tar.gz - tar -xf gtk+-2.23.90.tar.gz - cd /external/gtk+-2.23.90 -fi -./configure --prefix=$WLD -make -j5 -make install -/bin/cp /app/usr/lib/pkgconfig/gtk* /usr/lib/pkgconfig/ -/bin/cp /app/usr/lib/pkgconfig/gdk* /usr/lib/pkgconfig/ - -cd /external -if ( test -d /external/opencv_contrib ) -then - echo "opencv_contrib already cloned" -if [ $# -eq 0 ]; then - cd opencv_contrib - git reset --hard -# git pull --rebase - git checkout 3.3.0 - cd .. -fi -else - git clone https://github.com/opencv/opencv_contrib.git -fi - -cd /external -if ( test -d /external/opencv ) -then - echo "opencv already cloned" -if [ $# -eq 0 ]; then - cd opencv - git reset --hard -# git pull --rebase - git checkout 3.3.0 - cd .. -fi -else - git clone https://github.com/opencv/opencv.git -fi - -#opencv -IN=opencv,https://github.com/opencv/opencv.git,true,"" -IFS=',' read -a external_options <<< $IN -EXTERNAL="${external_options[0]}" -EXTERNAL_ADDRESS="${external_options[1]}" -EXTERNAL_CMAKE="${external_options[2]}" -EXTERNAL_CMAKE_OPTIONS="-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -DBUILD_opencv_aruco=OFF -DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bioinspired=OFF -DBUILD_opencv_ccalib=OFF -DBUILD_opencv_cnn_3dobj=OFF -DBUILD_opencv_cvv=OFF -DBUILD_opencv_dnn=OFF -DBUILD_opencv_dnns_easily_fooled=OFF -DBUILD_opencv_dpm=OFF -DBUILD_opencv_fuzzy=OFF -DBUILD_opencv_hdf=OFF -DBUILD_opencv_line_descriptor=OFF -DBUILD_opencv_matlab=OFF -DBUILD_opencv_optflow=OFF -DBUILD_opencv_plot=ON -DBUILD_opencv_reg=OFF -DBUILD_opencv_rgbd=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_sfm=OFF -DBUILD_opencv_stereo=OFF -DBUILD_opencv_structured_light=OFF -DBUILD_opencv_surface_matching=OFF -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_xobjdetect=OFF -DBUILD_opencv_xphoto=OFF -DBUILD_opencv_calib3d=OFF -DBUILD_opencv_cudaarithm=OFF -DBUILD_opencv_cudabgsegm=OFF -DBUILD_opencv_cudacodec=OFF -DBUILD_opencv_cudafilters=OFF -DBUILD_opencv_cudalegacy=OFF -DBUILD_opencv_cudaobjdetect=OFF -DBUILD_opencv_cudaoptflow=OFF -DBUILD_opencv_cudastereo=OFF -DBUILD_opencv_cudawarping=OFF -DBUILD_opencv_cudev=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_shape=OFF -DBUILD_opencv_stitching=OFF -DBUILD_opencv_superres=OFF -DBUILD_opencv_ts=OFF -DBUILD_opencv_videoio=OFF -DBUILD_opencv_videostab=OFF -DBUILD_opencv_viz=OFF" - -# create build dir -SRC=/external -BUILD=/external/build -PREFIX=/app/usr/ -mkdir -p $BUILD/opencv - -# go there -cd $BUILD/opencv - -cmake3 -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX $EXTERNAL_CMAKE_OPTIONS $SRC/opencv - -# make -make -j8 - -# install -make install - - -#EXTERNAL_CONFIGURE="${external_options[3]}" -#build_external $EXTERNAL $EXTERNAL_CMAKE_OPTIONS - - -#vidstab -IN=vid.stab,https://github.com/georgmartius/vid.stab.git,true,"" -IFS=',' read -a external_options <<< $IN -EXTERNAL="${external_options[0]}" -EXTERNAL_ADDRESS="${external_options[1]}" -EXTERNAL_CMAKE="${external_options[2]}" -EXTERNAL_CONFIGURE="${external_options[3]}" -build_external $EXTERNAL - - -echo "/////////////////\nBUILDING AV LIBS DONE\n////////////////" diff --git a/packaging/appimage/03-kdenlive.sh b/packaging/appimage/03-kdenlive.sh deleted file mode 100755 index 3000ffec7..000000000 --- a/packaging/appimage/03-kdenlive.sh +++ /dev/null @@ -1,259 +0,0 @@ -#!/bin/bash - -# Halt on errors -set -e - -# Be verbose -set -x - -# Now we are inside CentOS 6 -grep -r "CentOS release 6" /etc/redhat-release || exit 1 - -# Get helper functions -wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh -. ./functions.sh -rm -f functions.sh - -. /opt/rh/devtoolset-3/enable - -#necessary ? -#pulseaudio-libs - -QTVERSION=5.9.4 -QVERSION_SHORT=5.9 -QTDIR=/usr/local/Qt-${QTVERSION}/ - -# 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 - -# Determine which architecture should be built -if [[ "$(arch)" = "i686" || "$(arch)" = "x86_64" ]] ; then - ARCH=$(arch) -else - echo "Architecture could not be determined" - exit 1 -fi - -# Make sure we build from the /, parts of this script depends on that. We also need to run as root... -cd / - - -# TO-DO ask about this. -export CMAKE_PREFIX_PATH=$QTDIR:/app/share/llvm/ - -# if the library path doesn't point to our usr/lib, linking will be broken and we won't find all deps either -export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:/opt/python3.5/lib/:$LD_LIBRARY_PATH -#export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:$LD_LIBRARY_PATH - -# Workaround for: On CentOS 6, .pc files in /usr/lib/pkgconfig are not recognized -# However, this is where .pc files get installed when building libraries... (FIXME) -# I found this by comparing the output of librevenge's "make install" command -# between Ubuntu and CentOS 6 - -#ln -sf /usr/share/pkgconfig /usr/lib/pkgconfig - -#update ruby -yum -y remove ruby ruby-devel -if ( test -d /external/ruby-2.1.2 ) -then - echo "RUBY already cloned" -else - cd /external - wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz - tar xvfvz ruby-2.1.2.tar.gz -fi -cd /external/ruby-2.1.2 -./configure -make -make install -gem update --system - -# Get project -if [ ! -d /kdenlive ] ; then - git clone --depth 1 http://anongit.kde.org/kdenlive.git /kdenlive - cd /kdenlive/ -# git checkout -b timeline2 origin/refactoring_timeline -else - cd /kdenlive/ - if [ $# -eq 0 ]; then - git pull - fi -fi -cd /kdenlive/ -#git_pull_rebase_helper - -# Prepare the install location -#rm -rf /app/ || true -#mkdir -p /app/usr - -# export LLVM_ROOT=/opt/llvm/ - -# make sure lib and lib64 are the same thing -mkdir -p /app/usr/lib -cd /app/usr -#ln -s lib lib64 - -# start building the deps - -function build_external -{ ( - # errors fatal - echo "Compiler version:" $(g++ --version) - set -e - - SRC=/external - BUILD=/external/build - PREFIX=/app/usr/ - - # framework - EXTERNAL=$1 - - # clone if not there - mkdir -p $SRC - cd $SRC - if ( test -d $EXTERNAL ) - then - echo "$EXTERNAL already cloned" -if [ $# -eq 0 ]; then - cd $EXTERNAL - git reset --hard - git pull --rebase - cd .. -fi - else - git clone $EXTERNAL_ADDRESS - fi - - # create build dir - mkdir -p $BUILD/$EXTERNAL - - # go there - cd $BUILD/$EXTERNAL - - # cmake it - if ( $EXTERNAL_CMAKE ) - then - cmake3 -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX $2 $SRC/$EXTERNAL - else - $EXTERNAL_CONFIGURE - fi - # make - make -j8 - - # install - make install -) } - - -export WLD=/app/usr/ # change this to another location if you prefer -export LD_LIBRARY_PATH=$WLD/lib:$LD_LIBRARY_PATH -export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/:/usr/lib/pkgconfig/:$PKG_CONFIG_PATH -export PATH=$WLD/bin:$PATH -export ACLOCAL_PATH=$WLD/share/aclocal -export ACLOCAL="aclocal -I $ACLOCAL_PATH" - - -IN=frei0r,https://github.com/dyne/frei0r.git,true,"" -IFS=',' read -a external_options <<< $IN -EXTERNAL="${external_options[0]}" -EXTERNAL_ADDRESS="${external_options[1]}" -EXTERNAL_CMAKE="${external_options[2]}" -EXTERNAL_CMAKE_OPTIONS="-DWITHOUT_OPENCV:BOOL=ON" -EXTERNAL_CONFIGURE="${external_options[3]}" -build_external $EXTERNAL $EXTERNAL_CMAKE_OPTIONS - -#TODO: dependencies for MLT modules (xml, sdl, etc). - -#movit - - Requires some adjustments to build with older automake -#cd /external -#if ( test -d /external/movit ) -#then -# echo "movit already cloned" -#if [ $# -eq 0 ]; then -# cd movit -# git pull -# git reset --hard -# git pull --rebase -# cd .. -#fi -#else -# git clone https://git.sesse.net/movit -#fi -#cd movit -#./autogen.sh -#./configure --prefix=/app/usr -#make -j5 -#make install - - -#mlt -cd /external -if ( test -d /external/mlt ) -then - echo "mlt already cloned" -if [ $# -eq 0 ]; then - cd mlt - git reset --hard - git pull --rebase - #current git master incompatible (crashes Kdenlive on keyframes) - git checkout 15105c4 - cd .. -fi -else - git clone https://github.com/mltframework/mlt.git -fi -cd mlt - - -# patch MLT - cat > mlt_fix.patch << 'EOF' -diff --git a/src/modules/vid.stab/configure b/src/modules/vid.stab/configure -index e501888..55f0307 100755 ---- a/src/modules/vid.stab/configure -+++ b/src/modules/vid.stab/configure -@@ -19,7 +19,8 @@ then - exit 0 - fi - -- echo > config.mak -+ echo "CFLAGS += $(pkg-config --cflags vidstab)" > config.mak -+ echo "LDFLAGS += $(pkg-config --libs vidstab)" >> config.mak - case $targetos in - Darwin) - ;; -EOF -cat mlt_fix.patch |patch -p1 - -export CXXFLAGS="-std=c++11" -./configure --enable-gpl --prefix=/app/usr --disable-rtaudio -make -j5 -make install - - - -# Build kdenlive -mkdir -p /kdenlive_build -mkdir -p /kdenlive_build/po - -if [ ! -d /kdenlive/po ] ; then -ln -s /kdenlive_build/po /kdenlive/po -fi - -cd /kdenlive_build -cmake3 ../kdenlive \ - -DCMAKE_INSTALL_PREFIX:PATH=/app/usr/ \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DPACKAGERS_BUILD=1 \ - -DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON \ - -DKDE_L10N_AUTO_TRANSLATIONS:BOOL=ON \ - -DBUILD_TESTING=FALSE -make -j8 -make install - -echo "++++++++++++++++++\nBUILD FINSHED \n+++++++++++++++++"; -############################################################### -# Build complete, AppImage bundling begins here -############################################################### - diff --git a/packaging/appimage/04-create-app.sh b/packaging/appimage/04-create-app.sh deleted file mode 100755 index 34876efea..000000000 --- a/packaging/appimage/04-create-app.sh +++ /dev/null @@ -1,346 +0,0 @@ -#!/bin/bash - - - -# Halt on errors -set -e - -# Be verbose -set -x - -# Now we are inside CentOS 6 -grep -r "CentOS release 6" /etc/redhat-release || exit 1 - -# Get helper functions -wget -q https://github.com/probonopd/AppImages/raw/master/functions.sh -O ./functions.sh -. ./functions.sh -rm -f functions.sh - -. /opt/rh/devtoolset-3/enable - -#necessary ? -#pulseaudio-libs - -QTVERSION=5.9.1 -QVERSION_SHORT=5.9 -#QTDIR=/usr/local/Qt-${QTVERSION}/ -QTDIR=/usr/ - -# 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 - -# Determine which architecture should be built -if [[ "$(arch)" = "i686" || "$(arch)" = "x86_64" ]] ; then - ARCH=$(arch) -else - echo "Architecture could not be determined" - exit 1 -fi - -# Make sure we build from the /, parts of this script depends on that. We also need to run as root... -cd / - -# TO-DO ask about this. -export CMAKE_PREFIX_PATH=$QTDIR:/app/share/llvm/ - -# if the library path doesn't point to our usr/lib, linking will be broken and we won't find all deps either -export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:/opt/python3.5/lib/:$LD_LIBRARY_PATH -#export LD_LIBRARY_PATH=/usr/lib64/:/usr/lib:/app/usr/lib:$QTDIR/lib/:$LD_LIBRARY_PATH - -# Workaround for: On CentOS 6, .pc files in /usr/lib/pkgconfig are not recognized -# However, this is where .pc files get installed when building libraries... (FIXME) -# I found this by comparing the output of librevenge's "make install" command -# between Ubuntu and CentOS 6 - -#ln -sf /usr/share/pkgconfig /usr/lib/pkgconfig - -export WLD=/app/usr/ # change this to another location if you prefer -export LD_LIBRARY_PATH=$WLD/lib:$LD_LIBRARY_PATH -export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/:/usr/lib/pkgconfig/:$PKG_CONFIG_PATH -export PATH=$WLD/bin:$PATH -export ACLOCAL_PATH=$WLD/share/aclocal -export ACLOCAL="aclocal -I $ACLOCAL_PATH" - - -echo "++++++++++++++++++\nBUILD FINSHED \n+++++++++++++++++"; -############################################################### -# Build complete, AppImage bundling begins here -############################################################### - -cd /app - -# FIXME: How to find out which subset of plugins is really needed? I used strace when running the binary -mkdir -p ./usr/lib/qt5/plugins/ - -PLUGINS=$(dirname $QTDIR/plugins/bearer) - -/bin/cp -r $PLUGINS/{bearer,generic,imageformats,platforms,iconengines,platforminputcontexts,xcbglintegrations} ./usr/lib/qt5/plugins/ -/bin/cp -r $PLUGINS/kf5 ./usr/lib/qt5/plugins/ -/bin/cp -r $PLUGINS/mltpreview.so ./usr/lib/qt5/plugins/ -mkdir -p ./usr/lib/qt5/plugins/styles/ -/bin/cp -r /usr/plugins/styles/breeze.so ./usr/lib/qt5/plugins/styles/ -/bin/cp -r /usr/plugins/kstyle_breeze_config.so ./usr/lib/qt5/plugins/ - -/bin/cp -r $QTDIR/qml ./usr/lib/qt5/ -cp -ru /usr/share/mime/* /app/usr/share/mime -update-mime-database /app/usr/share/mime/ - -if ( test -d ./usr/lib/plugins ) -then - mv ./usr/lib/plugins/* ./usr/lib/qt5/plugins/ -fi - -/bin/cp $(ldconfig -p | grep libsasl2.so.2 | cut -d ">" -f 2 | xargs) ./usr/lib/ -/bin/cp $(ldconfig -p | grep libGL.so.1 | cut -d ">" -f 2 | xargs) ./usr/lib/ # otherwise segfaults!? -/bin/cp $(ldconfig -p | grep libGLU.so.1 | cut -d ">" -f 2 | xargs) ./usr/lib/ # otherwise segfaults!? -# Fedora 23 seemed to be missing SOMETHING from the Centos 6.7. The only message was: -# This application failed to start because it could not find or load the Qt platform plugin "xcb". -# Setting export QT_DEBUG_PLUGINS=1 revealed the cause. -# QLibraryPrivate::loadPlugin failed on "/usr/lib64/qt5/plugins/platforms/libqxcb.so" : -# "Cannot load library /usr/lib64/qt5/plugins/platforms/libqxcb.so: (/lib64/libEGL.so.1: undefined symbol: drmGetNodeTypeFromFd)" -# Which means that we have to copy libEGL.so.1 in too -# cp $(ldconfig -p | grep libEGL.so.1 | cut -d ">" -f 2 | xargs) ./usr/lib/ # Otherwise F23 cannot load the Qt platform plugin "xcb" -# let's not copy xcb itself, that breaks on dri3 systems https://bugs.kde.org/show_bug.cgi?id=360552 -#cp $(ldconfig -p | grep libxcb.so.1 | cut -d ">" -f 2 | xargs) ./usr/lib/ -/bin/cp $(ldconfig -p | grep libfreetype.so.6 | cut -d ">" -f 2 | xargs) ./usr/lib/ # For Fedora 20 -# cp $(ldconfig -p | grep libfuse | cut -d ">" -f 2 | xargs) ./usr/lib/ -#cp $(ldconfig -p | grep libselinux | cut -d ">" -f 2 | xargs) ./usr/lib/ - -ldd usr/bin/kdenlive | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./usr/lib || true -ldd usr/bin/plugins/platforms/libqxcb.so | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./usr/lib || true - -# Copy in the indirect dependencies -FILES=$(find . -type f -executable) - -for FILE in $FILES ; do - ldd "${FILE}" | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -v '{}' usr/lib || true -done - -cd usr/ ; find . -type f -exec sed -i -e 's|/usr/lib|././/lib|g' {} \; ; cd .. - -#DEPS="" -#for FILE in $FILES ; do -# ldd "${FILE}" | grep "=>" | awk '{print $3}' | xargs -I '{}' echo '{}' > DEPSFILE -#done -#DEPS=$(cat DEPSFILE |sort | uniq) -#for FILE in $DEPS ; do -# if [ -f $FILE ] ; then -# echo $FILE -# cp --parents -rfL $FILE ./ -# fi -#done -#rm -f DEPSFILE - -copy_deps -if [ -d lib64 ] ; then - mv lib64/* usr/lib/ - rm -rf lib64/ -fi - -# YESOK1 - -# The following are assumed to be part of the base system -rm -f usr/lib/libcom_err.so.2 || true -rm -f usr/lib/libcrypt.so.1 || true -rm -f usr/lib/libdl.so.2 || true -rm -f usr/lib/libexpat.so.1 || true -#rm -f usr/lib/libfontconfig.so.1 || true -rm -f usr/lib/libgcc_s.so.1 || true -rm -f usr/lib/libglib-2.0.so.0 || true -rm -f usr/lib/libgpg-error.so.0 || true -rm -f usr/lib/libgssapi_krb5.so.2 || true -rm -f usr/lib/libgssapi.so.3 || true -rm -f usr/lib/libhcrypto.so.4 || true -rm -f usr/lib/libheimbase.so.1 || true -rm -f usr/lib/libheimntlm.so.0 || true -rm -f usr/lib/libhx509.so.5 || true -rm -f usr/lib/libICE.so.6 || true -rm -f usr/lib/libidn.so.11 || true -rm -f usr/lib/libk5crypto.so.3 || true -rm -f usr/lib/libkeyutils.so.1 || true -rm -f usr/lib/libkrb5.so.26 || true -rm -f usr/lib/libkrb5.so.3 || true -rm -f usr/lib/libkrb5support.so.0 || true -# rm -f usr/lib/liblber-2.4.so.2 || true # needed for debian wheezy -# rm -f usr/lib/libldap_r-2.4.so.2 || true # needed for debian wheezy -rm -f usr/lib/libm.so.6 || true -rm -f usr/lib/libp11-kit.so.0 || true -rm -f usr/lib/libpcre.so.3 || true -rm -f usr/lib/libpthread.so.0 || true -rm -f usr/lib/libresolv.so.2 || true -rm -f usr/lib/libroken.so.18 || true -rm -f usr/lib/librt.so.1 || true -rm -f usr/lib/libsasl2.so.2 || true -rm -f usr/lib/libSM.so.6 || true -rm -f usr/lib/libusb-1.0.so.0 || true -rm -f usr/lib/libuuid.so.1 || true -rm -f usr/lib/libwind.so.0 || true -rm -f usr/lib/libfontconfig.so.* || true - -# Remove these libraries, we need to use the system versions; this means 11.04 is not supported (12.04 is our baseline) -# rm -f usr/lib/libEGL.so.* || true -rm -f usr/lib/libxcb* || true -rm -f usr/lib/libGL.so.* || true -rm -f usr/lib/libdrm.so.* || true -rm -f usr/lib/libX11.so.* || true - -#YESOK2 - -#mv usr/local/Qt-*/lib/* usr/lib -#rm -rf usr/local/ -# mv ./opt/python3.5/lib/* usr/lib -# mv ./opt/llvm/lib/* usr/lib -#rm -rf ./opt/ -rm -rf app/ - -#delete_blacklisted -BLACKLISTED_FILES=$(cat_file_from_url https://github.com/AppImage/AppImages/raw/master/excludelist | sed 's|#.*||g') -echo $BLACKLISTED_FILES -for FILE in $BLACKLISTED_FILES ; - do - if [[ $FILE == libpango* ]] || [[ $FILE == libgdk_pixbuf* ]] ; - then - echo "keeping libpango" - else - FILES="$(find . -name "${FILE}" -not -path "./usr/optional/*")" - for FOUND in $FILES ; do - rm -vf "$FOUND" "$(readlink -f "$FOUND")" - done - fi -done - -# Do not bundle developer stuff -rm -rf usr/include || true -rm -rf usr/lib/cmake || true -rm -rf usr/lib/pkgconfig || true -find . -name '*.la' | xargs -i rm {} -rm -rf usr/share/ECM/ || true -rm -rf usr/share/gettext || true -rm -rf usr/share/pkgconfig || true -rm -rf rm -rf ./usr/mkspecs/ || true - -# Remove - -strip -g $(find usr) || true - -if [ ! -z "$(ls -A usr/lib/libexec/kf5)" ]; then - /bin/cp -R usr/lib/libexec/kf5/* /app/usr/bin/ -fi; - -cd / -if [ ! -d appimage-exec-wrapper ]; then - git clone git://anongit.kde.org/scratch/brauch/appimage-exec-wrapper -fi; -cd /appimage-exec-wrapper/ -make clean -make - -cd /app -/bin/cp -v /appimage-exec-wrapper/exec.so exec_wrapper.so - -cat > AppRun << EOF -#!/bin/bash - -DIR="\`dirname \"\$0\"\`" -DIR="\`( cd \"\$DIR\" && pwd )\`" -export APPDIR=\$DIR - -export LD_PRELOAD=\$DIR/exec_wrapper.so - -export APPIMAGE_ORIGINAL_QML2_IMPORT_PATH=\$QML2_IMPORT_PATH -export APPIMAGE_ORIGINAL_LD_LIBRARY_PATH=\$LD_LIBRARY_PATH -export APPIMAGE_ORIGINAL_QT_PLUGIN_PATH=\$QT_PLUGIN_PATH -export APPIMAGE_ORIGINAL_XDG_DATA_DIRS=\$XDG_DATA_DIRS -export APPIMAGE_ORIGINAL_XDG_CONFIG_HOME=\$XDG_CONFIG_HOME -export APPIMAGE_ORIGINAL_PATH=\$PATH - -export APPIMAGE_ORIGINAL_MLT_REPOSITORY=\$MLT_REPOSITORY -export APPIMAGE_ORIGINAL_MLT_DATA=\$MLT_DATA -export APPIMAGE_ORIGINAL_MLT_ROOT_DIR=\$MLT_ROOT_DIR -export APPIMAGE_ORIGINAL_MLT_PROFILES_PATH=\$MLT_PROFILES_PATH -export APPIMAGE_ORIGINAL_MLT_PRESETS_PATH=\$MLT_PRESETS_PATH - - -export QML2_IMPORT_PATH=\$DIR/usr/lib/qt5/qml:\$QML2_IMPORT_PATH -export LD_LIBRARY_PATH=\$DIR/usr/lib/:\$LD_LIBRARY_PATH -export QT_PLUGIN_PATH=\$DIR/usr/lib/qt5/plugins/ -export XDG_DATA_DIRS=\$DIR/usr/share/:\$XDG_DATA_DIRS -export XDG_CONFIG_HOME=\$HOME/.config/kdenlive-appimage/ -export PATH=\$DIR/usr/bin:\$PATH -export KDE_FORK_SLAVES=1 - -export MLT_REPOSITORY=\$DIR/usr/lib/mlt/ -export MLT_DATA=\$DIR/usr/share/mlt/ -export MLT_ROOT_DIR=\$DIR/usr/ -export LADSPA_PATH=\$DIR/usr/lib/ladspa -export FREI0R_PATH=\$DIR/usr/lib/frei0r-1 -export MLT_PROFILES_PATH=\$DIR/usr/share/mlt/profiles/ -export MLT_PRESETS_PATH=\$DIR/usr/share/mlt/presets/ -export SDL_AUDIODRIVER=pulseaudio -export XDG_CURRENT_DESKTOP= - -export APPIMAGE_STARTUP_QML2_IMPORT_PATH=\$QML2_IMPORT_PATH -export APPIMAGE_STARTUP_LD_LIBRARY_PATH=\$LD_LIBRARY_PATH -export APPIMAGE_STARTUP_QT_PLUGIN_PATH=\$QT_PLUGIN_PATH -export APPIMAGE_STARTUP_XDG_DATA_DIRS=\$XDG_DATA_DIRS -export APPIMAGE_STARTUP_XDG_CONFIG_HOME=\$XDG_CONFIG_HOME -export APPIMAGE_STARTUP_PATH=\$PATH - -export APPIMAGE_STARTUP_MLT_REPOSITORY=\$MLT_REPOSITORY -export APPIMAGE_STARTUP_MLT_DATA=\$MLT_DATA -export APPIMAGE_STARTUP_MLT_ROOT_DIR=\$MLT_ROOT_DIR -export APPIMAGE_STARTUP_MLT_PROFILES_PATH=\$MLT_PROFILES_PATH -export APPIMAGE_STARTUP_MLT_PRESETS_PATH=\$MLT_PRESETS_PATH -export APPIMAGE_STARTUP_SDL_AUDIODRIVER=\$SDL_AUDIODRIVER -export APPIMAGE_STARTUP_XDG_CURRENT_DESKTOP=\$XDG_CURRENT_DESKTOP - -kdenlive --config kdenlive-appimagerc \$@ -EOF -chmod +x AppRun - -/bin/cp /kdenlive/data/org.kde.kdenlive.desktop kdenlive.desktop -/bin/cp /kdenlive/data/icons/128-apps-kdenlive.png ./kdenlive.png - -#TO-DO this will need some text manipulation in ruby to get this var. -APP=Kdenlive -LOWERAPP=kdenlive - -get_desktopintegration kdenlive - -cd / - -#cleanup previous image -rm -Rf /$APP/$APP.AppDir - -mkdir -p /$APP/$APP.AppDir -cd /$APP/ -cp -R ../app/* $APP.AppDir/ - -# Remove useless stuff -rm -Rf $APP.AppDir/usr/share/wallpapers/ || true -rm -Rf $APP.AppDir/usr/share/kconf_update/ || true -rm -Rf $APP.AppDir/usr/share/gtk-2.0/ || true -rm -Rf $APP.AppDir/usr/share/gtk-doc/ || true -rm -Rf $APP.AppDir/usr/share/kf5/kdoctools/ || true -rm -Rf $APP.AppDir/usr/share/kservices5/searchproviders/ || true -rm -Rf $APP.AppDir/usr/share/kservices5/useragentstrings/ || true -rm -Rf $APP.AppDir/usr/share/man/ || true -rm -Rf $APP.AppDir/usr/bin/ffserver || true -rm -Rf $APP.AppDir/usr/bin/gtk-demo || true -rm -Rf $APP.AppDir/usr/bin/yasm || true -rm -Rf $APP.AppDir/usr/bin/nasm || true -rm -Rf $APP.AppDir/usr/bin/ndisasm || true -rm -Rf $APP.AppDir/usr/bin/ytasm || true -rm -Rf $APP.AppDir/usr/bin/x264 || true -rm -Rf $APP.AppDir/usr/bin/x265 || true -rm -Rf $APP.AppDir/usr/bin/vsyasm || true -rm -Rf $APP.AppDir/usr/bin/vpxdec || true -rm -Rf $APP.AppDir/usr/bin/vpxenc || true -rm -Rf $APP.AppDir/usr/bin/meinproc5 || true -rm -Rf $APP.AppDir/usr/bin/desktoptojson || true -rm -Rf $APP.AppDir/usr/lib/kconf_update_bin/ || true - - - diff --git a/packaging/appimage/05-buildall.sh b/packaging/appimage/05-buildall.sh deleted file mode 100755 index 132775f5a..000000000 --- a/packaging/appimage/05-buildall.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - - -# Halt on errors -set -e - -# Be verbose -set -x - -echo "++ building dependencies and frameworks..." -. /kdenlive/packaging/appimage/01-dependencies.sh - -echo "++ building dependencies and frameworks DONE" - -echo "++ building AV libraries (ffmpeg, OpenCV) ..." -. /kdenlive/packaging/appimage/02-avlibs.sh - -echo "++ building AV libraries (ffmpeg, OpenCV) DONE" - -echo "++ building MLT and Kdenlive ..." -. /kdenlive/packaging/appimage/03-kdenlive.sh - -echo "++ building MLT and Kdenlive DONE" - -echo "++ Preparing AppImage folder ..." -. /kdenlive/packaging/appimage/04-create-app.sh - -echo "++ Preparing AppImage folder DONE" diff --git a/packaging/appimage/3rdparty/ext_frameworks/CMakeLists.txt b/packaging/appimage/3rdparty/ext_frameworks/CMakeLists.txt index d5acf2d61..4d84e9514 100644 --- a/packaging/appimage/3rdparty/ext_frameworks/CMakeLists.txt +++ b/packaging/appimage/3rdparty/ext_frameworks/CMakeLists.txt @@ -1,440 +1,440 @@ # All needed frameworks: # Tier 1 # Archive # Codecs # Config # CoreAddons # DBusAddons # GuiAddons # I18n # ItemModels # ItemViews # WidgetsAddons # WindowSystem # Solid # Sonnet # SyntaxHighlighting # Tier 2 # Activities # Auth # Completion # Crash # JobWidgets # Notifications # Package # Tier 3 # Emoticons # ConfigWidgets # IconThemes # Service # TextWidgets # XmlGui # Bookmarks # GlobalAccel # KIO # Declarative # KCMUtils # Wallet ExternalProject_Add( ext_extra_cmake_modules DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/extra-cmake-modules-5.51.0.zip - URL_MD5 0c49de5686624746af45f578486c275f + URL http://download.kde.org/stable/frameworks/5.61/extra-cmake-modules-5.61.0.zip + URL_MD5 e63d81fc203c03667cc9043395c1e80d CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} ) ExternalProject_Add( ext_karchive DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/karchive-5.51.0.zip - URL_MD5 a1df7fa0e563774582a141be902bf9e0 + URL http://download.kde.org/stable/frameworks/5.61/karchive-5.61.0.zip + URL_MD5 24f9b0c849943e9a7cdee48facaf62ce CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kcodecs DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kcodecs-5.51.0.zip - URL_MD5 690e3fc89a72a64ebf7d4dccfea07cb4 + URL http://download.kde.org/stable/frameworks/5.61/kcodecs-5.61.0.zip + URL_MD5 6c2615ec49c224adea10785e50cb21c5 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kconfig DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kconfig-5.51.0.zip - URL_MD5 efd15b025d74c6bdb7ba1f6c70eb59d3 + URL http://download.kde.org/stable/frameworks/5.61/kconfig-5.61.0.zip + URL_MD5 0fedc596e49c82647853710582eb9138 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kdbusaddons DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kdbusaddons-5.51.0.zip - URL_MD5 a4e3f38596815004815e1d5912dcc9f7 + URL http://download.kde.org/stable/frameworks/5.61/kdbusaddons-5.61.0.zip + URL_MD5 837514e0b634916221cbfa5705cb1aca CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kcoreaddons DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kcoreaddons-5.51.0.zip - URL_MD5 bd29fb792d368dcc031277182e20dd57 + URL http://download.kde.org/stable/frameworks/5.61/kcoreaddons-5.61.0.zip + URL_MD5 62e72d0e2cb1a24de6b10eebea43fe48 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_sharedmimeinfo ext_extra_cmake_modules ) ExternalProject_Add( ext_kguiaddons DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kguiaddons-5.51.0.zip - URL_MD5 a4ed02d971740b5a69d3bbd8078cd53c + URL http://download.kde.org/stable/frameworks/5.61/kguiaddons-5.61.0.zip + URL_MD5 0236f2bb13b692362b0d875baa06e8ac CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_ki18n DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/ki18n-5.51.0.zip - URL_MD5 97ea04262c49403ba8c33323b367c362 + URL http://download.kde.org/stable/frameworks/5.61/ki18n-5.61.0.zip + URL_MD5 2ce768761b8b1e1d2f52cbea143884ce CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ext_gettext ) ExternalProject_Add( ext_kitemmodels DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kitemmodels-5.51.0.zip - URL_MD5 82989ebe8c2c76df6fbd3bc4581923a8 + URL http://download.kde.org/stable/frameworks/5.61/kitemmodels-5.61.0.zip + URL_MD5 32866b0c6b0313cc82f11cf99d3c4d2b CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kitemviews DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kitemviews-5.51.0.zip - URL_MD5 4b0ac783dd4a08b57442a6b349a29af0 + URL http://download.kde.org/stable/frameworks/5.61/kitemviews-5.61.0.zip + URL_MD5 4f5f2b12e29eb7d810f984d45a9c5964 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kwidgetsaddons DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kwidgetsaddons-5.51.0.zip - URL_MD5 069a7907a50a573f237b0ae07e143c31 + URL http://download.kde.org/stable/frameworks/5.61/kwidgetsaddons-5.61.0.zip + URL_MD5 50bf68ff09fe30d61b2756ff2a3b9818 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kwindowsystem DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kwindowsystem-5.51.0.zip - URL_MD5 1cc9f16aef24588f56712beacea04173 + URL http://download.kde.org/stable/frameworks/5.61/kwindowsystem-5.61.0.zip + URL_MD5 9e2d29a266ca085487038403e1514bbc CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_solid DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/solid-5.51.0.zip - URL_MD5 20928ec5ac4f24ac50d28e1f859564fc + URL http://download.kde.org/stable/frameworks/5.61/solid-5.61.0.zip + URL_MD5 0a842b1c78c9482d719c07e37ae7f333 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_sonnet DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/sonnet-5.51.0.zip - URL_MD5 6da10e377b65fd0eb38a893f3b02bda4 + URL http://download.kde.org/stable/frameworks/5.61/sonnet-5.61.0.zip + URL_MD5 185c918e14898f1815a4d1fe62db83d7 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_syntaxhighlighting DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/syntax-highlighting-5.51.0.zip - URL_MD5 960aa4322276d5591fe038351c420607 + URL http://download.kde.org/stable/frameworks/5.61/syntax-highlighting-5.61.0.zip + URL_MD5 f31399bd41691f015b2b61373719b96a CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kholidays DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL https://download.kde.org/stable/frameworks/5.51/kholidays-5.51.0.zip - URL_MD5 41b208d432246eb8f012d55bc0c1b9ee + URL https://download.kde.org/stable/frameworks/5.61/kholidays-5.61.0.zip + URL_MD5 fdd9193fcd666a76d9d1d63470a2aeba CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ) ExternalProject_Add( ext_kactivities DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kactivities-5.51.0.zip - URL_MD5 397fe66ad6b2bd4151de87b5bea27550 + URL http://download.kde.org/stable/frameworks/5.61/kactivities-5.61.0.zip + URL_MD5 582e7738a8a7c4dc736c4c561f2b90cd CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_boost ext_kconfig ext_kcoreaddons ext_kwindowsystem ) ExternalProject_Add( ext_kauth DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kauth-5.51.0.zip - URL_MD5 c44908198ce80868a0f84d93bfbd2a0b + URL http://download.kde.org/stable/frameworks/5.61/kauth-5.61.0.zip + URL_MD5 2b098e9374d7bcc1ef640f2e98c944b4 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kcoreaddons ) ExternalProject_Add( ext_kcompletion DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kcompletion-5.51.0.zip - URL_MD5 0538aaf30384c0ac0e69a245d4c99dc5 + URL http://download.kde.org/stable/frameworks/5.61/kcompletion-5.61.0.zip + URL_MD5 9d3e10ccda7e988a60e59ab87eaa0e56 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kwidgetsaddons ext_kconfig ) ExternalProject_Add( ext_kcrash DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kcrash-5.51.0.zip - URL_MD5 4d424ec54f369eb6f6f8d9571e72d0f9 + URL http://download.kde.org/stable/frameworks/5.61/kcrash-5.61.0.zip + URL_MD5 3e94cb696f2ae8ddda21b653d961d686 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kcoreaddons ext_kwindowsystem ) ExternalProject_Add( ext_kjobwidgets DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kjobwidgets-5.51.0.zip - URL_MD5 e352949fc004cad1a5df7ac6095e061f + URL http://download.kde.org/stable/frameworks/5.61/kjobwidgets-5.61.0.zip + URL_MD5 d1741558f0bdc7aee4eb00a63a7ad0bb CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kcoreaddons ext_kwidgetsaddons ) ExternalProject_Add( ext_knotifications DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/knotifications-5.51.0.zip - URL_MD5 1727ef67b293228e783d70a8a04fb2b2 + URL http://download.kde.org/stable/frameworks/5.61/knotifications-5.61.0.zip + URL_MD5 ea46fbd930228511743d0793fd4aede9 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kwindowsystem ext_kconfig ext_kcodecs ext_kcoreaddons ext_phonon ) ExternalProject_Add( ext_attica DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/attica-5.51.0.zip - URL_MD5 2915e774c50d0f09f4365897922fb0b0 + URL http://download.kde.org/stable/frameworks/5.61/attica-5.61.0.zip + URL_MD5 50143e5c131a94fd383ed8fffc03f793 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kwindowsystem ext_kconfig ext_kcodecs ext_kcoreaddons ext_phonon ) ExternalProject_Add( ext_kpackage DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kpackage-5.51.0.zip - URL_MD5 7e04ab888adb565d6b3c7edab3f5f88b + URL http://download.kde.org/stable/frameworks/5.61/kpackage-5.61.0.zip + URL_MD5 a7c324a083a95bdbf48362995ed72b18 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_karchive ext_ki18n ext_kcoreaddons ) ExternalProject_Add( ext_kconfigwidgets DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kconfigwidgets-5.51.0.zip - URL_MD5 943fe07904feaa3a8b05fe81733d1eb4 + URL http://download.kde.org/stable/frameworks/5.61/kconfigwidgets-5.61.0.zip + URL_MD5 c65357e83034ac247405f03a61536da8 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kauth ext_kcoreaddons ext_kcodecs ext_kconfig ext_kguiaddons ext_ki18n ext_kwidgetsaddons ) ExternalProject_Add( ext_kiconthemes DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kiconthemes-5.51.0.zip - URL_MD5 6da17c5f2006b893025da305b1dfc011 + URL http://download.kde.org/stable/frameworks/5.61/kiconthemes-5.61.0.zip + URL_MD5 bee44c7d4de4f6c44ea6f898d1447907 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_karchive ext_ki18n ext_kcoreaddons ext_kconfigwidgets ext_kwidgetsaddons ext_kitemviews ) ExternalProject_Add( ext_kservice DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kservice-5.51.0.zip - URL_MD5 7444dbd3388a1e3cce9d8f7cd64c7d23 - PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/kservice.diff #this makes finding KCModules in AppImage possible + URL http://download.kde.org/stable/frameworks/5.61/kservice-5.61.0.zip + URL_MD5 a89621b85f005519b6e8bb9dbcea6e81 + #PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/kservice.diff #this makes finding KCModules in AppImage possible CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kconfig ext_kcoreaddons ext_kcrash ext_kdbusaddons ext_ki18n ) ExternalProject_Add( ext_kemoticons DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kemoticons-5.51.0.zip - URL_MD5 f437001a8a5e401a8ac284cf554357ec + URL http://download.kde.org/stable/frameworks/5.61/kemoticons-5.61.0.zip + URL_MD5 2ee202a4d8421d7e7e3a7ead0d0ac8cc CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_karchive ext_kconfig ext_kservice ext_kcoreaddons ) ExternalProject_Add( ext_ktextwidgets DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/ktextwidgets-5.51.0.zip - URL_MD5 2edb4f80800e47d6ecf52353decbdf10 + URL http://download.kde.org/stable/frameworks/5.61/ktextwidgets-5.61.0.zip + URL_MD5 d806865de5f32a50ce985f6b6e1d7fc2 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ext_kcompletion ext_kconfig ext_kconfigwidgets ext_ki18n ext_kiconthemes ext_kservice ext_kwidgetsaddons ext_kwindowsystem ext_sonnet ) ExternalProject_Add( ext_kglobalaccel DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kglobalaccel-5.51.0.zip - URL_MD5 1cf9b73d7e909ed5899496eb52dfedc2 + URL http://download.kde.org/stable/frameworks/5.61/kglobalaccel-5.61.0.zip + URL_MD5 3da7c0e1fe47e92993ef275b0c7512a4 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kconfig ext_kcoreaddons ext_kcrash ext_kdbusaddons ext_kwindowsystem ) ExternalProject_Add( ext_kxmlgui DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kxmlgui-5.51.0.zip - URL_MD5 35555839af065708281ecf95f2cd9363 + URL http://download.kde.org/stable/frameworks/5.61/kxmlgui-5.61.0.zip + URL_MD5 37a6bbc26dc1ebad278c0bc0a63c5af5 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kcoreaddons ext_kitemviews ext_kconfig ext_kconfigwidgets ext_ki18n ext_kiconthemes ext_ktextwidgets ext_kwidgetsaddons ext_kwindowsystem ext_kglobalaccel ) ExternalProject_Add( ext_kbookmarks DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kbookmarks-5.51.0.zip - URL_MD5 036f8e3e2d9c1cd537a275636569d1c6 + URL http://download.kde.org/stable/frameworks/5.61/kbookmarks-5.61.0.zip + URL_MD5 3b067a8dbe4784ff3f229767f6e355db CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kconfig ext_kcoreaddons ext_kcodecs ext_kconfigwidgets ext_kiconthemes ext_kwidgetsaddons ext_kxmlgui ) ExternalProject_Add( ext_kwallet DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kwallet-5.51.0.zip - URL_MD5 da6f7e2282f6316b612cb0acaa7a140a + URL http://download.kde.org/stable/frameworks/5.61/kwallet-5.61.0.zip + URL_MD5 97f6af2b3c756a9b7c49967e744bac99 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_gcrypt ext_gpgme ext_kcoreaddons ext_kconfig ext_kwindowsystem ext_ki18n ext_kconfigwidgets ext_knotifications ext_kservice ext_kwidgetsaddons ext_kiconthemes ext_kdbusaddons ) ExternalProject_Add( ext_kio DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kio-5.51.0.zip - URL_MD5 ea59ac8326e5856b0ef1202c83d575b3 + URL http://download.kde.org/stable/frameworks/5.61/kio-5.61.0.zip + URL_MD5 98f9cf494c281faae412991c5e99a94b CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_extra_cmake_modules ext_karchive ext_kconfig ext_kcoreaddons ext_kdbusaddons ext_ki18n ext_kservice ext_solid ext_kwindowsystem ext_kwidgetsaddons ext_kcompletion ext_kconfigwidgets ext_kiconthemes ext_kitemviews ext_kjobwidgets ext_kbookmarks ext_kwallet ) ExternalProject_Add( ext_knewstuff DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/knewstuff-5.51.0.zip - URL_MD5 d5fcff457dc70b2de16488b2f1ba8e7b + URL http://download.kde.org/stable/frameworks/5.61/knewstuff-5.61.0.zip + URL_MD5 fe4a4a674abb1588691fc76030109f81 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kio ext_kwindowsystem ext_kconfig ext_kcodecs ext_kcoreaddons ext_phonon ext_attica ) ExternalProject_Add( ext_knotifyconfig DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/knotifyconfig-5.51.0.zip - URL_MD5 a1a8c6331858aab8ded199ec0b9795f4 + URL http://download.kde.org/stable/frameworks/5.61/knotifyconfig-5.61.0.zip + URL_MD5 c5ab95425c6864a2ccb1af784c0d2e84 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kwindowsystem ext_kconfig ext_kcodecs ext_kcoreaddons ext_phonon ext_knewstuff ) ExternalProject_Add( ext_kdeclarative DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kdeclarative-5.51.0.zip - URL_MD5 6d8b8a15b7d02ac662e7f22152e92f3f + URL http://download.kde.org/stable/frameworks/5.61/kdeclarative-5.61.0.zip + URL_MD5 228c640eb598d59ff7ff031c84f1ace7 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kconfig ext_ki18n ext_kiconthemes ext_kio ext_kwidgetsaddons ext_kwindowsystem ext_kglobalaccel ext_kguiaddons ext_kpackage ) ExternalProject_Add( ext_kcmutils DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kcmutils-5.51.0.zip - URL_MD5 4f548b92a27716f1d498b9da8887cf32 + URL http://download.kde.org/stable/frameworks/5.61/kcmutils-5.61.0.zip + URL_MD5 4c41ec7dfd8656199ce83d13ef9ab72f CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kitemviews ext_kconfigwidgets ext_kcoreaddons ext_ki18n ext_kiconthemes ext_kservice ext_kxmlgui ext_kdeclarative ) ExternalProject_Add( ext_kimageformats DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kimageformats-5.51.0.zip - URL_MD5 bb889cbd5a3b39f226d57da4c694ff57 + URL http://download.kde.org/stable/frameworks/5.61/kimageformats-5.61.0.zip + URL_MD5 fb09577e4eeb4971147cad6ab69c6d75 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kitemviews ) ExternalProject_Add( ext_kpurpose DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/purpose-5.51.0.zip - URL_MD5 0d3323f67ed6b360e2cd77167278489b + URL http://download.kde.org/stable/frameworks/5.61/purpose-5.61.0.zip + URL_MD5 32270091283bcab0452ccf79a76128c2 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kxmlgui ) ExternalProject_Add( ext_kfilemetadata DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kfilemetadata-5.51.0.zip - URL_MD5 9946d31383ea759ffedcd6528bfdec92 + URL http://download.kde.org/stable/frameworks/5.61/kfilemetadata-5.61.0.zip + URL_MD5 95ccb70f3d00e1a203239076bad6bf63 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kguiaddons ) ExternalProject_Add( ext_kdoctools DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/kdoctools-5.51.0.zip - URL_MD5 696f5f8f4eb7e3e3b2cedca18ea6331f + URL http://download.kde.org/stable/frameworks/5.61/kdoctools-5.61.0.zip + URL_MD5 c522e8c468fce403c5284e9c61e5b458 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kcoreaddons ) ExternalProject_Add( ext_breezeicons DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/frameworks/5.51/breeze-icons-5.51.0.zip - URL_MD5 a926d8fdb4847509b5855c55d1f75acf + URL http://download.kde.org/stable/frameworks/5.61/breeze-icons-5.61.0.zip + URL_MD5 0c7199da9510bd8fd59fd6a6bc8b8c78 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} ) ExternalProject_Add( ext_kdecoration DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/plasma/5.14.3/kdecoration-5.14.3.tar.xz - URL_MD5 7b13d816864ebafe4325e51ff34cac26 + URL http://download.kde.org/stable/plasma/5.16.4/kdecoration-5.16.4.tar.xz + URL_MD5 5e44ce8c340a2776d0c26c01e052de98 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} ) ExternalProject_Add( ext_breeze DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.kde.org/stable/plasma/5.14.3/breeze-5.14.3.tar.xz - URL_MD5 2b6b023214451fc467fbd02a8479cb42 + URL http://download.kde.org/stable/plasma/5.16.4/breeze-5.16.4.tar.xz + URL_MD5 b9669c56c282a3a99ad8b5c8ab9e28e7 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} DEPENDS ext_kdecoration ) diff --git a/packaging/appimage/3rdparty/ext_gettext/CMakeLists.txt b/packaging/appimage/3rdparty/ext_gettext/CMakeLists.txt index 8dfe75cb9..0f110c679 100644 --- a/packaging/appimage/3rdparty/ext_gettext/CMakeLists.txt +++ b/packaging/appimage/3rdparty/ext_gettext/CMakeLists.txt @@ -1,12 +1,12 @@ ExternalProject_Add( ext_gettext DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.1.tar.gz URL_MD5 97e034cf8ce5ba73a28ff6c3c0638092 CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} ${AT_HOST} ${AT_SHARED_ONLY} --disable-java --disable-native-java --enable-nls --enable-c++ BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install - DEPENDS ext_iconv ext_xml ext_ncurses + DEPENDS ext_xml ext_ncurses ) diff --git a/packaging/appimage/3rdparty/ext_opencv/CMakeLists.txt b/packaging/appimage/3rdparty/ext_opencv/CMakeLists.txt index 1384cd71d..fda146c30 100644 --- a/packaging/appimage/3rdparty/ext_opencv/CMakeLists.txt +++ b/packaging/appimage/3rdparty/ext_opencv/CMakeLists.txt @@ -1,24 +1,24 @@ # The OpenCV contrib repo external project ExternalProject_Add( ext_opencv_contrib DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://github.com/opencv/opencv_contrib/archive/4.1.0.tar.gz URL_MD5 5357a038f54ba15c771abb0d91a5519d # This is a support repository for OpenCV 4.x and does not contain any # build or install rules. This will be hooked into OpenCV which will control # those steps. CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) # The OpenCV external project ExternalProject_Add( ext_opencv DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://github.com/opencv/opencv/archive/4.1.0.tar.gz URL_MD5 b80c59c7e4feee6a00608315e02b0b73 - CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} -DOPENCV_EXTRA_MODULES_PATH=${EXT_BUILD_DIR}/deps-build/ext_opencv/ext_opencv_contrib-prefix/src/ext_opencv_contrib/modules -DOPENCV_GENERATE_PKGCONFIG=ON -DBUILD_opencv_freetype=OFF + CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} -DOPENCV_EXTRA_MODULES_PATH=${EXT_BUILD_DIR}/deps-build/ext_opencv/ext_opencv_contrib-prefix/src/ext_opencv_contrib/modules -DOPENCV_GENERATE_PKGCONFIG=ON -DBUILD_opencv_freetype=OFF -DCPU_BASELINE=SSE4_2 -DCPU_DISPATCH=SSE4_2 DEPENDS ext_opencv_contrib ) diff --git a/packaging/appimage/3rdparty/ext_qt/CMakeLists.txt b/packaging/appimage/3rdparty/ext_qt/CMakeLists.txt index 789e717e8..b74769f83 100644 --- a/packaging/appimage/3rdparty/ext_qt/CMakeLists.txt +++ b/packaging/appimage/3rdparty/ext_qt/CMakeLists.txt @@ -1,18 +1,18 @@ # qtquickcontrols and qtwebchannel are required by qtwebengine # "WebRTC" is required by "Pepper Plugins" is required by "Printing and PDF" # don't use -I and -L switches as they will cause explicit link to # OpenSSL instead of BoringSSL in QWebEngine ExternalProject_Add( ext_qt DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL https://download.qt.io/official_releases/qt/5.11/5.11.2/single/qt-everywhere-src-5.11.2.tar.xz - URL_MD5 152a8ade9c11fe33ff5bc95310a1bb64 - - PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qsql_mysql.diff - - CONFIGURE_COMMAND /configure -prefix ${EXT_INSTALL_DIR} -opensource -confirm-license -verbose -nomake examples -nomake tests -nomake tools ICU_LIBDIR="${EXT_INSTALL_DIR}/lib" ICU_INCDIR="${EXT_INSTALL_DIR}/include" OPENSSL_LIBDIR="${EXT_INSTALL_DIR}/openssl/lib" OPENSSL_INCDIR="${EXT_INSTALL_DIR}/openssl/include" -openssl-linked -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtenginio -skip qtlocation -skip qtwayland -skip qtandroidextras -skip qtserialport -skip qtdatavis3d -skip qtvirtualkeyboard -skip qtspeech -skip qtsensors -skip qtgamepad -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtcharts -skip qtpurchasing -skip qtserialbus -skip qtdoc -skip qtmacextras -skip qtwinextras -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtnetworkauth -system-webengine-icu + URL https://download.qt.io/official_releases/qt/5.12/5.12.4/single/qt-everywhere-src-5.12.4.tar.xz + URL_MD5 dda95b0239d13c5276834177af3a8588 + CMAKE_ARGS -DOPENSSL_LIBS='-L${EXTPREFIX_qt}/lib -lssl -lcrypto' + BUILD_IN_SOURCE 1 + #PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qsql_mysql.diff + CONFIGURE_COMMAND /configure -prefix ${EXT_INSTALL_DIR} -opensource -confirm-license -openssl-linked -verbose -nomake examples -nomake tests -nomake tools -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtandroidextras -skip qtserialport -skip qtdatavis3d -skip qtvirtualkeyboard -skip qtspeech -skip qtsensors -skip qtgamepad -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtcharts -skip qtpurchasing -skip qtserialbus -skip qtdoc -skip qtmacextras -skip qtwinextras -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtnetworkauth BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install - DEPENDS ext_xslt ext_mysql ext_sqlite ext_postgresql ext_pcre2 + DEPENDS ext_xslt ext_sqlite ext_pcre2 ) diff --git a/packaging/appimage/3rdparty/ext_xml/CMakeLists.txt b/packaging/appimage/3rdparty/ext_xml/CMakeLists.txt index 8b31d9a9c..235535e10 100644 --- a/packaging/appimage/3rdparty/ext_xml/CMakeLists.txt +++ b/packaging/appimage/3rdparty/ext_xml/CMakeLists.txt @@ -1,14 +1,14 @@ # --without-catalog is requirement of QWebEngine ExternalProject_Add( ext_xml DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL ftp://xmlsoft.org/libxslt/libxml2-2.9.8.tar.gz URL_MD5 b786e353e2aa1b872d70d5d1ca0c740d PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/xml.diff CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} ${AT_HOST} --without-python --with-icu --without-catalog --with-lzma=${EXT_INSTALL_DIR}/lib CPPFLAGS=${AT_CPP_FLAGS} LDFLAGS=${AT_LD_FLAGS} BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install - DEPENDS ext_lzma ext_readline ext_icu + DEPENDS ext_lzma ext_readline ) diff --git a/packaging/appimage/build-dependencies.sh b/packaging/appimage/build-dependencies.sh index 479d924ee..153b3ee93 100755 --- a/packaging/appimage/build-dependencies.sh +++ b/packaging/appimage/build-dependencies.sh @@ -1,137 +1,138 @@ #!/bin/bash # Halt on errors set -e # Be verbose set -x # Make sure the base dependencies are installed #apt-get -y install build-essential perl python git '^libxcb.*-dev' libx11-xcb-dev \ # libglu1-mesa-dev libxrender-dev libxi-dev flex bison gperf libicu-dev ruby #apt-get -y install cmake3 wget tar bzip2 xz-utils libtool libfile-which-perl automake gcc-4.8 patch \ # g++-4.8 zlib1g-dev libglib2.0-dev libc6-dev libeigen3-dev libssl-dev \ # libcppunit-dev libstdc++-4.8-dev libfreetype6-dev libfontconfig1-dev liblcms2-dev \ # mesa-common-dev libaio-dev lzma liblzma-dev\ # libpulse-dev libsox-dev liblist-moreutils-perl libxml-parser-perl \ # libjack-dev autopoint language-pack-en-base #apt-get -y install libpixman-1-dev docbook-xml docbook-xsl libattr1-dev # Read in our parameters export BUILD_PREFIX=$1 export KDENLIVE_SOURCES=$2 # qjsonparser, used to add metadata to the plugins needs to work in a en_US.UTF-8 environment. # That's not always the case, so make sure it is export LC_ALL=en_US.UTF-8 export LANG=en_us.UTF-8 # We want to use $prefix/deps/usr/ for all our dependencies export DEPS_INSTALL_PREFIX=$BUILD_PREFIX/deps/usr export DOWNLOADS_DIR=$BUILD_PREFIX/downloads # Setup variables needed to help everything find what we build export LD_LIBRARY_PATH=$DEPS_INSTALL_PREFIX/lib:$DEPS_INSTALL_PREFIX/openssl/lib:$LD_LIBRARY_PATH export PATH=$DEPS_INSTALL_PREFIX/bin:$DEPS_INSTALL_PREFIX/openssl/bin:$PATH export PKG_CONFIG_PATH=$DEPS_INSTALL_PREFIX/share/pkgconfig:$DEPS_INSTALL_PREFIX/lib/pkgconfig:$DEPS_INSTALL_PREFIX/openssl/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH # A kdenlive build layout looks like this: # kdenlive/ -- the source directory # downloads/ -- downloads of the dependencies from files.kde.org # deps-build/ -- build directory for the dependencies # deps/ -- the location for the built dependencies # build/ -- build directory for kdenlive itself # kdenlive.appdir/ -- install directory for kdenlive and the dependencies # Make sure our downloads directory exists if [ ! -d $DOWNLOADS_DIR ] ; then mkdir -p $DOWNLOADS_DIR fi # Make sure our build directory exists if [ ! -d $BUILD_PREFIX/deps-build/ ] ; then mkdir -p $BUILD_PREFIX/deps-build/ fi # The 3rdparty dependency handling in Kdenlive also requires the install directory to be pre-created if [ ! -d $DEPS_INSTALL_PREFIX ] ; then mkdir -p $DEPS_INSTALL_PREFIX fi # Switch to our build directory as we're basically ready to start building... cd $BUILD_PREFIX/deps-build/ # Configure the dependencies for building cmake $KDENLIVE_SOURCES/packaging/appimage/3rdparty -DCMAKE_INSTALL_PREFIX=$DEPS_INSTALL_PREFIX -DEXT_INSTALL_DIR=$DEPS_INSTALL_PREFIX -DEXT_DOWNLOAD_DIR=$DOWNLOADS_DIR -DEXT_BUILD_DIR=$BUILD_PREFIX # Now start building everything we need, in the appropriate order -cmake --build . --target ext_iconv cmake --build . --target ext_lzma cmake --build . --target ext_xml cmake --build . --target ext_gettext cmake --build . --target ext_xslt cmake --build . --target ext_png # cmake --build . --target ext_jpeg #this causes build failures in Qt 5.10 +export CC=/usr/bin/gcc-6 +export CXX=/usr/bin/g++-6 + cmake --build . --target ext_qt cmake --build . --target ext_boost cmake --build . --target ext_gpgme cmake --build . --target ext_frameworks cmake --build . --target ext_libsndfile cmake --build . --target ext_libsamplerate cmake --build . --target ext_nasm cmake --build . --target ext_yasm cmake --build . --target ext_alsa cmake --build . --target ext_sdl2 cmake --build . --target ext_fftw3 cmake --build . --target ext_fftw3f # ladspa expects fft3w.pc pkgconfig files cp $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftwf.pc $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftw3f.pc cp $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftw.pc $DEPS_INSTALL_PREFIX/lib/pkgconfig/fftw3.pc cmake --build . --target ext_x264 cmake --build . --target ext_x265 # libvpx does not compile with this gcc6 version export CC=/usr/bin/gcc export CXX=/usr/bin/g++ cmake --build . --target ext_libvpx export CC=/usr/bin/gcc-6 export CXX=/usr/bin/g++-6 cmake --build . --target ext_ffmpeg cmake --build . --target ext_sox cmake --build . --target ext_jack cmake --build . --target ext_ladspa cmake --build . --target ext_cairo cmake --build . --target ext_harfbuzz cmake --build . --target ext_pango cmake --build . --target ext_gdkpixbuf cmake --build . --target ext_gtk+ cmake --build . --target ext_gavl cmake --build . --target ext_frei0r cmake --build . --target ext_vidstab cmake --build . --target ext_opencv #export CC=/usr/bin/gcc-6 #export CXX=/usr/bin/g++-6 #cmake --build . --target ext_movit cmake --build . --target ext_kbookmarks cmake --build . --target ext_kxmlgui cmake --build . --target ext_kconfigwidgets cmake --build . --target ext_knotifyconfig cmake --build . --target ext_knewstuff cmake --build . --target ext_kdeclarative cmake --build . --target ext_breezeicons cmake --build . --target ext_kcrash cmake --build . --target ext_breeze cmake --build . --target ext_ruby -#cmake --build . --target ext_mlt diff --git a/packaging/appimage/build-image.sh b/packaging/appimage/build-image.sh index 79bfe8b0e..76a202809 100755 --- a/packaging/appimage/build-image.sh +++ b/packaging/appimage/build-image.sh @@ -1,225 +1,225 @@ #!/bin/bash # Halt on errors and be verbose about what we are doing set -e set -x # Read in our parameters export BUILD_PREFIX=$1 export KDENLIVE_SOURCES=$2 # Save some frequently referenced locations in variables for ease of use / updating export APPDIR=$BUILD_PREFIX/kdenlive.appdir export PLUGINS=$APPDIR/usr/plugins/ export APPIMAGEPLUGINS=$APPDIR/usr/plugins/ mkdir -p $APPDIR mkdir -p $APPDIR/usr/share/kdenlive mkdir -p $APPDIR/usr/lib mkdir -p $PLUGINS mkdir -p $APPDIR/usr/plugins # qjsonparser, used to add metadata to the plugins needs to work in a en_US.UTF-8 environment. # That's not always the case, so make sure it is export LC_ALL=en_US.UTF-8 export LANG=en_us.UTF-8 # We want to use $prefix/deps/usr/ for all our dependencies export DEPS_INSTALL_PREFIX=$BUILD_PREFIX/deps/usr/ export DOWNLOADS_DIR=$BUILD_PREFIX/downloads/ # Setup variables needed to help everything find what we built export LD_LIBRARY_PATH=$DEPS_INSTALL_PREFIX/lib/:$DEPS_INSTALL_PREFIX/lib/x86_64-linux-gnu/:$APPDIR/usr/lib/:$LD_LIBRARY_PATH export PATH=$DEPS_INSTALL_PREFIX/bin/:$PATH export PKG_CONFIG_PATH=$DEPS_INSTALL_PREFIX/share/pkgconfig/:$DEPS_INSTALL_PREFIX/lib/pkgconfig/:/usr/lib/pkgconfig/:$PKG_CONFIG_PATH export CMAKE_PREFIX_PATH=$DEPS_INSTALL_PREFIX:$CMAKE_PREFIX_PATH # Switch over to our build prefix cd $BUILD_PREFIX # # Now we can get the process started! # # Step 1: Copy over all the resources provided by dependencies that we need cp -r $DEPS_INSTALL_PREFIX/share/kf5 $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/share/kstyle $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/share/plasma $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/share/alsa $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/share/kservices5 $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/share/qt5 $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/share/mime $APPDIR/usr/share if [ -d $DEPS_INSTALL_PREFIX/share/color-schemes ] ; then cp -r $DEPS_INSTALL_PREFIX/share/color-schemes $APPDIR/usr/share fi if [ -d $DEPS_INSTALL_PREFIX/share/icons/breeze ] ; then cp -r $DEPS_INSTALL_PREFIX/share/icons/breeze $APPDIR/usr/share/icons cp -r $DEPS_INSTALL_PREFIX/share/icons/breeze-dark $APPDIR/usr/share/icons fi cp -r $DEPS_INSTALL_PREFIX/translations $APPDIR/usr/ -cp -r $DEPS_INSTALL_PREFIX/openssl/lib/* $APPDIR/usr/lib +#cp -r $DEPS_INSTALL_PREFIX/openssl/lib/* $APPDIR/usr/lib cp -r $DEPS_INSTALL_PREFIX/share/mlt $APPDIR/usr/share cp -r $DEPS_INSTALL_PREFIX/lib/mlt $APPDIR/usr/lib cp -r $DEPS_INSTALL_PREFIX/lib/libmlt* $APPDIR/usr/lib cp -r $DEPS_INSTALL_PREFIX/lib/frei0r-1 $APPDIR/usr/lib cp -r $DEPS_INSTALL_PREFIX/bin/melt $APPDIR/usr/bin cp -r $DEPS_INSTALL_PREFIX/bin/ffmpeg $APPDIR/usr/bin cp -r $DEPS_INSTALL_PREFIX/bin/ffplay $APPDIR/usr/bin cp -r $DEPS_INSTALL_PREFIX/bin/ffprobe $APPDIR/usr/bin cp -r $DEPS_INSTALL_PREFIX/plugins/kf5 $APPIMAGEPLUGINS cp -r $DEPS_INSTALL_PREFIX/plugins/styles $APPIMAGEPLUGINS cp -r $DEPS_INSTALL_PREFIX/plugins/audio $APPIMAGEPLUGINS cp -r $DEPS_INSTALL_PREFIX/plugins/org.kde.kdecoration2 $APPIMAGEPLUGINS cp -r $DEPS_INSTALL_PREFIX/plugins/kstyle_breeze_config.so $APPIMAGEPLUGINS mkdir -p $APPDIR/usr/libexec cp -r $DEPS_INSTALL_PREFIX/lib/x86_64-linux-gnu/libexec/kf5/* $APPDIR/usr/libexec/ cp $(ldconfig -p | grep libGL.so.1 | cut -d ">" -f 2 | xargs) $APPDIR/usr/lib/ #cp $(ldconfig -p | grep libGLU.so.1 | cut -d ">" -f 2 | xargs) $APPDIR/usr/lib/ # Step 2: Relocate x64 binaries from the architecture specific directory as required for Appimages if [ -d $APPDIR/usr/lib/x86_64-linux-gnu/plugins ] ; then mv $APPDIR/usr/lib/x86_64-linux-gnu/plugins/* $APPDIR/usr/plugins rm -rf $APPDIR/usr/lib/x86_64-linux-gnu/ fi # Step 3: Update the rpath in the various plugins we have to make sure they'll be loadable in an Appimage context for lib in $APPIMAGEPLUGINS/*.so*; do patchelf --set-rpath '$ORIGIN/../lib' $lib; done for lib in $APPIMAGEPLUGINS/audio/*.so*; do patchelf --set-rpath '$ORIGIN/../../lib' $lib; done for lib in $APPIMAGEPLUGINS/styles/*.so*; do patchelf --set-rpath '$ORIGIN/../../lib' $lib; done for lib in $APPIMAGEPLUGINS/kf5/*.so*; do patchelf --set-rpath '$ORIGIN/../../lib' $lib; done for lib in $APPIMAGEPLUGINS/org.kde.kdecoration2/*.so*; do patchelf --set-rpath '$ORIGIN/../../lib' $lib; done for lib in $APPDIR/usr/lib/mlt/*.so*; do patchelf --set-rpath '$ORIGIN/..' $lib; done ### GSTREAMER # Requires gstreamer1.0-plugins-good -#GST_PLUGIN_SRC_DIR=/usr/lib/x86_64-linux-gnu/ -#mkdir -p $APPDIR/usr/lib/x86_64-linux-gnu -#GST_LIB_DEST_DIR=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0 -#mkdir -p $GST_LIB_DEST_DIR -#GST_PLUGIN_DEST_DIR=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0 -#mkdir -p $GST_PLUGIN_DEST_DIR -#cp $GST_PLUGIN_SRC_DIR/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner $GST_PLUGIN_DEST_DIR -#cp $GST_PLUGIN_SRC_DIR/gstreamer-1.0/* $GST_LIB_DEST_DIR - -#rm $GST_LIB_DEST_DIR/libgstegl* || true - -#for p in $GST_LIB_DEST_DIR/libgst*.so*; do -# patchelf --set-rpath '$ORIGIN/../..' $p; -#done +GST_PLUGIN_SRC_DIR=/usr/lib/x86_64-linux-gnu/ +mkdir -p $APPDIR/usr/lib/x86_64-linux-gnu +GST_LIB_DEST_DIR=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0 +mkdir -p $GST_LIB_DEST_DIR +GST_PLUGIN_DEST_DIR=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0 +mkdir -p $GST_PLUGIN_DEST_DIR +cp $GST_PLUGIN_SRC_DIR/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner $GST_PLUGIN_DEST_DIR +cp $GST_PLUGIN_SRC_DIR/gstreamer-1.0/* $GST_LIB_DEST_DIR + +rm $GST_LIB_DEST_DIR/libgstegl* || true + +for p in $GST_LIB_DEST_DIR/libgst*.so*; do + patchelf --set-rpath '$ORIGIN/../..' $p; +done ### end of GSTREAMER STUFF # Step 4: Move plugins to loadable location in AppImage # Make sure our plugin directory already exists if [ ! -d $APPIMAGEPLUGINS ] ; then mkdir -p $APPIMAGEPLUGINS fi # mv $PLUGINS/* $APPIMAGEPLUGINS # copy icon cp $APPDIR/usr/share/icons/breeze/apps/48/kdenlive.svg $APPDIR # Step 5: Build the image!!! #linuxdeployqt $APPDIR/usr/bin/ffmpeg #linuxdeployqt $APPDIR/usr/bin/ffplay #linuxdeployqt $APPDIR/usr/bin/ffprobe #linuxdeployqt $APPDIR/usr/bin/melt linuxdeployqt $APPDIR/usr/share/applications/org.kde.kdenlive.desktop \ -executable=$APPDIR/usr/bin/kdenlive \ -qmldir=$DEPS_INSTALL_PREFIX/qml \ -verbose=2 \ -bundle-non-qt-libs \ -extra-plugins=$APPDIR/usr/lib/mlt,$APPDIR/usr/plugins \ -exclude-libs=libnss3.so,libnssutil3.so,libGL.so.1 # -appimage \ rm $APPDIR/usr/lib/libGL.so.1 || true -rm $APPDIR/usr/lib/libasound.so.2 || true +# rm $APPDIR/usr/lib/libasound.so.2 || true # libxcb should be removed rm $APPDIR/usr/lib/libxcb* rm $APPDIR/AppRun cat > $APPDIR/AppRun << EOF #!/bin/bash DIR="\`dirname \"\$0\"\`" DIR="\`( cd \"\$DIR\" && pwd )\`" export APPDIR=\$DIR export LD_LIBRARY_PATH=\$DIR/usr/lib/:\$LD_LIBRARY_PATH export XDG_DATA_DIRS=\$DIR/usr/share/:\$XDG_DATA_DIRS export XDG_CONFIG_HOME=\$HOME/.config/ export PATH=\$DIR/usr/bin:\$PATH export KDE_FORK_SLAVES=1 export MLT_REPOSITORY=\$DIR/usr/lib/mlt/ export MLT_DATA=\$DIR/usr/share/mlt/ export MLT_ROOT_DIR=\$DIR/usr/ export LADSPA_PATH=\$DIR/usr/lib/ladspa export FREI0R_PATH=\$DIR/usr/lib/frei0r-1 export MLT_PROFILES_PATH=\$DIR/usr/share/mlt/profiles/ export MLT_PRESETS_PATH=\$DIR/usr/share/mlt/presets/ export SDL_AUDIODRIVER=pulseaudio export XDG_CURRENT_DESKTOP= export GST_PLUGIN_SCANNER=\$DIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner export GST_PLUGIN_PATH=\$DIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/ kdenlive --config kdenlive-appimagerc \$@ EOF chmod +x $APPDIR/AppRun # Step 5: Find out what version of Kdenlive we built and give the Appimage a proper name cd $BUILD_PREFIX/kdenlive-build/ KDENLIVE_VERSION=$(grep "KDENLIVE_VERSION" config-kdenlive.h | cut -d '"' -f 2) # Also find out the revision of Git we built # Then use that to generate a combined name we'll distribute cd $KDENLIVE_SOURCES if [[ -d .git ]]; then GIT_REVISION=$(git rev-parse --short HEAD) VERSION=$KDENLIVE_VERSION-$GIT_REVISION else VERSION=$KDENLIVE_VERSION fi # Return to our build root cd $BUILD_PREFIX appimagetool $APPDIR # Generate a new name for the Appimage file and rename it accordingly APPIMAGE=kdenlive-"$VERSION"-x86_64.appimage mv Kdenlive-x86_64.AppImage $APPIMAGE