diff --git a/appimage/kdevelop-recipe-centos6.sh b/appimage/kdevelop-recipe-centos6.sh index 39b5b2cab3..bba30009e2 100755 --- a/appimage/kdevelop-recipe-centos6.sh +++ b/appimage/kdevelop-recipe-centos6.sh @@ -1,514 +1,520 @@ #!/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 git_pull_rebase_helper() { git fetch git stash || true git rebase $(git rev-parse --abbrev-ref --symbolic-full-name @{u}) || true git stash pop || true } SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" QTDIR=/opt/qt5 if [ -z "$KDEVELOP_VERSION" ]; then KDEVELOP_VERSION=5.5 fi if [ -z "$KDEV_PG_QT_VERSION" ]; then KDEV_PG_QT_VERSION=v2.2.1 fi # remove breezeicons-compatcmake3.6.patch for >5.69.0 KF5_VERSION=v5.69.0 -PLASMA_VERSION=v5.18.4 -# remove konsole-nooptionalinclude.patch ? libkomparediff2_dontcrash.patch for >20.04.0 -KDE_RELEASESERVICE_VERSION=v20.04.0 +PLASMA_VERSION=v5.18.5 +KDE_RELEASESERVICE_VERSION=v20.04.1 GRANTLEE_VERSION=v5.2.0 OKTETA_VERSION=v0.26.3 export LLVM_ROOT=/opt/llvm/ export PATH=/opt/rh/python27/root/usr/bin/:$PATH 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 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 / # Use the new compiler . /opt/rh/devtoolset-6/enable # TODO: Use these vars more export FAKEROOT=/kdevelop.appdir export PREFIX=/kdevelop.appdir/usr/ export SRC=$HOME/src/ export BUILD=$HOME/build export CMAKE_PREFIX_PATH=$QTDIR:/kdevelop.appdir/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:/kdevelop.appdir/usr/lib:$QTDIR/lib/:/opt/python3.6/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 bulding 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 # Prepare the install location if [ -z "$SKIP_PRUNE" ]; then rm -rf /kdevelop.appdir/ || true mkdir -p /kdevelop.appdir/usr # refresh ldconfig cache ldconfig # make sure lib and lib64 are the same thing mkdir -p /kdevelop.appdir/usr/lib cd /kdevelop.appdir/usr ln -s lib lib64 fi # start building the deps +# usage: build_project function build_project { ( - PROJECT=$1 - VERSION=$2 + REPOURL=$1 + PROJECT=$2 + VERSION=$3 + shift shift shift # clone if not there mkdir -p $SRC cd $SRC if ( test -d $PROJECT ) then echo "$PROJECT already cloned" cd $PROJECT git stash git reset --hard git fetch git fetch --tags cd .. else - if [ -z "$CUSTOM_GIT_URL" ]; then - git clone git://anongit.kde.org/$PROJECT - else - git clone $CUSTOM_GIT_URL - fi + git clone $REPOURL $PROJECT fi cd $PROJECT git checkout $VERSION git rebase $(git rev-parse --abbrev-ref --symbolic-full-name @{u}) || true # git rebase will fail if a tag is checked out git stash pop || true cd .. if [ ! -z "$PATCH_FILE" ]; then pushd $PROJECT echo "Patching $PROJECT with $PATCH_FILE" git reset --hard patch -p1 < $PATCH_FILE popd fi # create build dir mkdir -p $BUILD/$PROJECT # go there cd $BUILD/$PROJECT # cmake it cmake3 $SRC/$PROJECT -G Ninja -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX:PATH=$PREFIX $@ # make ninja # install ninja install ) } +function build_kde_project +{ ( + REPOPATH=$1 + PROJECT=${1#*/} + shift + build_project https://invent.kde.org/$REPOPATH.git $PROJECT $@ +) } + function build_framework { ( PROJECT=$1 shift - build_project $PROJECT $KF5_VERSION $@ + build_kde_project frameworks/$PROJECT $KF5_VERSION $@ ) } # KDE Frameworks if [ -z "$SKIP_FRAMEWORKS" ]; then build_framework extra-cmake-modules -DBUILD_HTML_DOCS=OFF -DBUILD_MAN_DOCS=OFF build_framework kconfig build_framework kguiaddons build_framework ki18n build_framework kitemviews -DBUILD_DESIGNERPLUGIN=OFF build_framework sonnet -DBUILD_DESIGNERPLUGIN=OFF build_framework kwindowsystem build_framework kwidgetsaddons -DBUILD_DESIGNERPLUGIN=OFF build_framework kcompletion -DBUILD_DESIGNERPLUGIN=OFF build_framework kdbusaddons build_framework karchive build_framework kcoreaddons build_framework kjobwidgets build_framework kcrash build_framework kservice build_framework kcodecs build_framework kauth build_framework kconfigwidgets -DBUILD_DESIGNERPLUGIN=OFF build_framework kiconthemes -DBUILD_DESIGNERPLUGIN=OFF build_framework ktextwidgets -DBUILD_DESIGNERPLUGIN=OFF build_framework kglobalaccel build_framework kxmlgui -DBUILD_DESIGNERPLUGIN=OFF build_framework kbookmarks build_framework solid build_framework kio -DBUILD_DESIGNERPLUGIN=OFF build_framework kparts build_framework kitemmodels build_framework threadweaver build_framework attica build_framework knewstuff build_framework syntax-highlighting build_framework ktexteditor build_framework kpackage build_framework kdeclarative build_framework kcmutils (PATCH_FILE=$SCRIPT_DIR/knotifications_no_phonon.patch build_framework knotifications) (PATCH_FILE=$SCRIPT_DIR/knotifyconfig_no_phonon.patch build_framework knotifyconfig) build_framework kdoctools (PATCH_FILE=$SCRIPT_DIR/breezeicons-compatcmake3.6.patch build_framework breeze-icons -DBINARY_ICONS_RESOURCE=1) build_framework kpty build_framework kinit fi # KDE Plasma -build_project libksysguard $PLASMA_VERSION -build_project kdecoration $PLASMA_VERSION # needed by breeze -(PATCH_FILE=$SCRIPT_DIR/breeze-noconstexpr.patch build_project breeze $PLASMA_VERSION) +build_kde_project plasma/libksysguard $PLASMA_VERSION +build_kde_project plasma/kdecoration $PLASMA_VERSION # needed by breeze +(PATCH_FILE=$SCRIPT_DIR/breeze-noconstexpr.patch build_kde_project breeze $PLASMA_VERSION) # KDE Applications -(PATCH_FILE=$SCRIPT_DIR/libkomparediff2_dontcrash.patch build_project libkomparediff2 $KDE_RELEASESERVICE_VERSION) -build_project kate $KDE_RELEASESERVICE_VERSION -DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE -DBUILD_addons=TRUE -DBUILD_snippets=TRUE -DBUILD_kate-ctags=TRUE -(PATCH_FILE=$SCRIPT_DIR/konsole-nooptionalinclude.patch build_project konsole $KDE_RELEASESERVICE_VERSION) -build_project okteta $OKTETA_VERSION -DBUILD_DESIGNERPLUGIN=OFF -DBUILD_OKTETAKASTENLIBS=OFF +build_kde_project sdk/libkomparediff2 $KDE_RELEASESERVICE_VERSION +build_kde_project utilities/kate $KDE_RELEASESERVICE_VERSION -DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE -DBUILD_addons=TRUE -DBUILD_snippets=TRUE -DBUILD_kate-ctags=TRUE +build_kde_project utilities/konsole $KDE_RELEASESERVICE_VERSION +build_kde_project utilities/okteta $OKTETA_VERSION -DBUILD_DESIGNERPLUGIN=OFF -DBUILD_OKTETAKASTENLIBS=OFF # Extra -(CUSTOM_GIT_URL=https://github.com/steveire/grantlee.git build_project grantlee $GRANTLEE_VERSION -DBUILD_TESTS=OFF) +build_project https://github.com/steveire/grantlee.git grantlee $GRANTLEE_VERSION -DBUILD_TESTS=OFF # KDevelop -build_project kdevelop-pg-qt $KDEV_PG_QT_VERSION -build_project kdevelop $KDEVELOP_VERSION -build_project kdev-php $KDEVELOP_VERSION +build_kde_project kdevelop/kdevelop-pg-qt $KDEV_PG_QT_VERSION +build_kde_project kdevelop/kdevelop $KDEVELOP_VERSION +build_kde_project kdevelop/kdev-php $KDEVELOP_VERSION # Build kdev-python export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/kdevelop.appdir/usr/lib/ -build_project kdev-python $KDEVELOP_VERSION +build_kde_project kdev-python $KDEVELOP_VERSION # Install some colorschemes cd $BUILD $SRC/kdevelop/release-scripts/install_colorschemes.py /kdevelop.appdir/usr/share cd /kdevelop.appdir # 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=$($QTDIR/bin/qmake -query QT_INSTALL_PLUGINS) echo "Using plugin dir: $PLUGINS" cp -r $PLUGINS/bearer ./usr/lib/qt5/plugins/ cp -r $PLUGINS/generic ./usr/lib/qt5/plugins/ cp -r $PLUGINS/imageformats ./usr/lib/qt5/plugins/ cp -r $PLUGINS/platforms ./usr/lib/qt5/plugins/ cp -r $PLUGINS/iconengines ./usr/lib/qt5/plugins/ cp -r $PLUGINS/platforminputcontexts ./usr/lib/qt5/plugins/ # cp -r $PLUGINS/platformthemes ./usr/lib/qt5/plugins/ cp -r $PLUGINS/sqldrivers ./usr/lib/qt5/plugins/ # qsqlite is required for the Welcome Page plugin and for QtHelp cp -r $PLUGINS/xcbglintegrations ./usr/lib/qt5/plugins/ mkdir -p ./usr/lib/qt5/qml QML_DIR=$QTDIR/qml # for the Welcome Page plugin cp -r $QML_DIR/QtQuick ./usr/lib/qml cp -r $QML_DIR/QtQuick.2 ./usr/lib/qml cp -R /kdevelop.appdir/usr/lib/grantlee/ /kdevelop.appdir/usr/lib/qt5/plugins/ rm -Rf /kdevelop.appdir/usr/lib/grantlee mkdir -p /kdevelop.appdir/$LLVM_ROOT/lib/ cp -r $LLVM_ROOT/lib/clang /kdevelop.appdir/$LLVM_ROOT/lib cp -ru /usr/share/mime/* /kdevelop.appdir/usr/share/mime update-mime-database /kdevelop.appdir/usr/share/mime/ cp -R ./usr/lib/plugins/* ./usr/lib/qt5/plugins/ rm -Rf ./usr/lib/plugins/ cp $(ldconfig -p | grep libsasl2.so.2 | cut -d ">" -f 2 | xargs) ./usr/lib/ # 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" cp $(ldconfig -p | grep libxcb.so.1 | cut -d ">" -f 2 | xargs) ./usr/lib/ ldd usr/bin/kdevelop | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./usr/lib || true #ldd usr/lib64/kdevelop/*.so | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./usr/lib || true #ldd usr/lib64/plugins/imageformats/*.so | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./usr/lib || true ldd usr/lib/qt5/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 echo "*** Processing:" $FILE ldd "${FILE}" | grep "=>" | awk '{print $3}' | xargs -I '{}' cp -vu '{}' usr/lib || true done # 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/libfreetype.so.6 || 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/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 # 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/libGL.so.* || true rm -f usr/lib/libdrm.so.* || true # see https://github.com/AppImage/AppImageKit/issues/629#issuecomment-359013844 -- we assume this to be present on all systems rm -f usr/lib/libz.so.1 || true # These seem to be available on most systems but not Ubuntu 11.04 # rm -f usr/lib/libffi.so.6 usr/lib/libGL.so.1 usr/lib/libglapi.so.0 usr/lib/libxcb.so.1 usr/lib/libxcb-glx.so.0 || true # Delete potentially dangerous libraries rm -f usr/lib/libstdc* usr/lib/libgobject* usr/lib/libc.so.* || true # Do NOT delete libX* because otherwise on Ubuntu 11.04: # loaded library "Xcursor" malloc.c:3096: sYSMALLOc: Assertion (...) Aborted # We don't bundle the developer stuff rm -rf usr/include || true rm -rf usr/lib/cmake || true rm -rf usr/lib/pkgconfig || true rm -rf usr/mkspecs || true rm -rf usr/share/ECM/ || true rm -rf usr/share/gettext || true rm -rf usr/share/pkgconfig || true rm -rf usr/etc/xdg/*.categories || true strip -g $(find usr/bin usr/lib -type f) || true # We do not bundle this, so let's not search that inside the AppImage. # Fixes "Qt: Failed to create XKB context!" and lets us enter text #sed -i -e 's|././/share/X11/|/usr/share/X11/|g' ./usr/lib/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so #sed -i -e 's|././/share/X11/|/usr/share/X11/|g' ./usr/lib/libQt5XcbQpa.so.5 # Workaround for: # D-Bus library appears to be incorrectly set up; # failed to read machine uuid: Failed to open # The file is more commonly in /etc/machine-id # sed -i -e 's|/var/lib/dbus/machine-id|//././././etc/machine-id|g' ./usr/lib/libdbus-1.so.3 # or rm -f ./usr/lib/libdbus-1.so.3 || true # Remove python rm -f ./usr/bin/python* rm -f ./usr/bin/pydoc* rm -f ./usr/bin/pyenv* # remove big execs rm -f ./usr/bin/verify-uselistorder rm -f ./usr/bin/obj2yaml ./usr/bin/yaml2obj rm -f ./usr/bin/kwrite ./usr/bin/kate # remove unused registration data rm -rf ./usr/share/applications/ || true # remove all appdata besides kdevelop one rm -f ./usr/share/metainfo/org.kde.{breezedark.desktop,kate,kwrite,konsole}.appdata.xml rm -f ./usr/share/metainfo/org.kde.kdev-{php,python}.metainfo.xml cp /kdevelop.appdir/usr/lib/libexec/kf5/* /kdevelop.appdir/usr/bin/ 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 /kdevelop.appdir cp -v /appimage-exec-wrapper/exec.so exec_wrapper.so # Disabled plugins (yet build and bundled, as more complicated to remove from build): # * KDevWelcomePage - issues with Qt failing to load SSL during news feed fetching # thus causing KDevelop to hang while creating network connections # * KDevManPage - man:/ kio-slave & deps not bundled yet 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_PATH=\$PATH export APPIMAGE_ORIGINAL_PYTHONHOME=\$PYTHONHOME export QML2_IMPORT_PATH=\$DIR/usr/lib/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 PATH=\$DIR/usr/bin:\$PATH export KDE_FORK_SLAVES=1 export PYTHONHOME=\$DIR/usr/ 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_PATH=\$PATH export APPIMAGE_STARTUP_PYTHONHOME=\$PYTHONHOME export KDEV_CLANG_BUILTIN_DIR=\$DIR/opt/llvm/lib/clang/${LLVM_VERSION}/include export KDEV_DISABLE_PLUGINS="KDevWelcomePage;KDevManPage" cd \$HOME kdevelop \$@ EOF chmod +x AppRun # use normal desktop file, but remove actions, not yet handled by appimaged & Co cp $SRC/kdevelop/app/org.kde.kdevelop.desktop org.kde.kdevelop.desktop sed -i -e '/^Actions=/d;/^\[Desktop Action /Q' org.kde.kdevelop.desktop cp $SRC/kdevelop/app/icons/256-apps-kdevelop.png kdevelop.png cp -R /usr/lib/python3.6 /kdevelop.appdir/usr/lib/ rm -Rf /kdevelop.appdir/usr/lib/python3.6/{test,config-3.5m,__pycache__,site-packages,lib-dynload,distutils,idlelib,unittest,tkinter,ensurepip} mkdir -p /kdevelop.appdir/usr/share/kdevelop/ # Breeze cruft cp $BUILD/breeze-icons/icons/breeze-icons.rcc /kdevelop.appdir/usr/share/kdevelop/icontheme.rcc rm -Rf /kdevelop.appdir/usr/share/icons/{B,b}reeze* # not needed because of the rcc rm -Rf /kdevelop.appdir/usr/share/wallpapers rm -Rf /kdevelop.appdir/usr/share/plasma rm -f /kdevelop.appdir/usr/bin/llvm* rm -f /kdevelop.appdir/usr/bin/clang* rm -f /kdevelop.appdir/usr/bin/opt rm -f /kdevelop.appdir/usr/bin/lli rm -f /kdevelop.appdir/usr/bin/sancov rm -f /kdevelop.appdir/usr/bin/cmake rm -f /kdevelop.appdir/usr/bin/python rm -Rf /kdevelop.appdir/usr/lib/pkgconfig rm -Rf /kdevelop.appdir/usr/share/man rm -Rf /kdevelop.appdir/usr/share/locale rm -Rf /kdevelop.appdir/usr/lib/libLTO.so #At first it seems like "we shouldn't ship X11", but actually we should; the X11 protocol is sort of guaranteed to stay compatible, #while these libraries are not. # rm -Rf /kdevelop.appdir/usr/lib/libxcb* # add that back in # cp /usr/lib64/libxcb-keysyms.so.1 /kdevelop.appdir/usr/lib/ # rm -Rf /kdevelop.appdir/usr/lib/{libX11.so.6,libXau.so.6,libXext.so.6,libXi.so.6,libXxf86vm.so.1,libX11-xcb.so.1,libXdamage.so.1,libXfixes.so.3,libXrender.so.1} rm -f /kdevelop.appdir/usr/bin/llc rm -f /kdevelop.appdir/usr/bin/bugpoint find /kdevelop.appdir -name '*.a' -exec rm {} \; echo "Final listing of files which will end up in the AppImage:" find /kdevelop.appdir cd / APP=KDevelop VERSION="git" if [[ "$ARCH" = "x86_64" ]] ; then APPIMAGE=$APP"-"$VERSION"-x86_64.AppImage" fi if [[ "$ARCH" = "i686" ]] ; then APPIMAGE=$APP"-"$VERSION"-i386.AppImage" fi echo $APPIMAGE # Get appimagetool APPIMAGETOOL_DIR=$SRC/appimagetool if [ ! -d $APPIMAGETOOL_DIR ]; then mkdir -p $APPIMAGETOOL_DIR pushd $APPIMAGETOOL_DIR wget -c -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/11/appimagetool-x86_64.AppImage chmod +x ./appimagetool ./appimagetool --appimage-extract # no fuse on this docker instance... popd fi export PATH=$APPIMAGETOOL_DIR/squashfs-root/usr/bin:$PATH # add path to extracted appimage binary mkdir -p /out rm -f /out/*.AppImage || true appimagetool /kdevelop.appdir/ /out/$APPIMAGE chmod a+rwx /out/$APPIMAGE # So that we can edit the AppImage outside of the Docker container diff --git a/appimage/konsole-nooptionalinclude.patch b/appimage/konsole-nooptionalinclude.patch deleted file mode 100644 index 21d46b95c9..0000000000 --- a/appimage/konsole-nooptionalinclude.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/Filter.h b/src/Filter.h -index 0dd98151..527e8540 100644 ---- a/src/Filter.h -+++ b/src/Filter.h -@@ -34,9 +34,6 @@ - // Konsole - #include "Character.h" - --// std --#include -- - class QAction; - - namespace Konsole { diff --git a/appimage/libkomparediff2_dontcrash.patch b/appimage/libkomparediff2_dontcrash.patch deleted file mode 100644 index 9a27d2b8f1..0000000000 --- a/appimage/libkomparediff2_dontcrash.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/komparemodellist.cpp b/komparemodellist.cpp -index dec1162..6f7c40f 100644 ---- a/komparemodellist.cpp -+++ b/komparemodellist.cpp -@@ -239,10 +239,8 @@ static QString lstripSeparators(const QString& from, uint count) - { - return QString(); - } -- else -- { -- return from.mid(position); -- } -+ -+ return from.mid(position + 1); - } - - void KompareModelList::setDepthAndApplied() -@@ -1112,9 +1110,10 @@ bool KompareModelList::blendFile(DiffModel* model, const QString& fileContents) - // Now we add the linecount difference for the hunk that follows - int size = hunk->sourceLineCount(); - -- for (int i = 0; i < size; ++i) -+ linesIt += size; -+ if (linesIt > lEnd) - { -- ++linesIt; -+ linesIt = lEnd; - } - - srcLineNo += size; diff --git a/org.kde.kdevelop.appdata.xml b/org.kde.kdevelop.appdata.xml index d9c3251493..c78c182f97 100644 --- a/org.kde.kdevelop.appdata.xml +++ b/org.kde.kdevelop.appdata.xml @@ -1,160 +1,161 @@ org.kde.kdevelop.desktop CC0-1.0 GPL-2.0+ KDevelop مطوّرك KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop KDevelop xxKDevelopxx KDevelop KDevelop Featureful, plugin-extensible IDE for C/C++ and other programming languages بيئة تطوير متكاملة بمزايا عديدة ودعم للملحقات للغتي سي/سي++ ولغات البرمجة الأخرى És un IDE, extensible amb connectors, amb totes les característiques per a C/C++ i altres llenguatges de programació. És un IDE, extensible amb connectors, amb totes les característiques per a C/C++ i altres llenguatges de programació. Eine leistungsfähige integrierte Entwicklungsumgebung (IDE) für C/C++ und andere Programmiersprachen, die durch Module erweitert werden kann. Featureful, plugin-extensible IDE for C/C++ and other programming languages Entorno de desarrollo integrado para C/C++ y otros lenguajes de programación con múltiples funcionalidades y que se puede extender con complementos. C/C++ ja teiste programmeerimiskeelte omadusterohke ning pluginatega laiendatav IDE Environnement de développement complet et extensible pour le C/C++ et d'autres langages de programmation. Potente ambiente de desenvolvemento integrado para C, C++ e outras linguaxes de programación. As súas funcionalidades poden estenderse mediante complementos Penuh fitur, IDE plugin yang dapat diekstensi C/C++ dan bahasa pemrograman lain IDE per C/C++ e altri linguaggi di programmazione completo ed estensibile C/C++ 및 기타 프로그래밍 언어용 기능적이고 확장 가능한 IDE IDE voor C/C++ en andere programmeertalen, vol functies en uit te breiden met plug-ins. Jest to w pełni funkcjonalne, z możliwością rozszerzenia przy użyciu wtyczek, zintegrowane środowisko programistyczne dla C/C++ i innych języków programowania. IDE pleno de funcionalidades e modular para o C/C++ e outras linguagens de programação IDE repleto de funcionalidades e expansível através de plugins, para C/C++ e outras linguagens de programação. Plne funkčné, pluginmi rozšíriteľné IDE pre C/C++ a iné programovacie jazyky Zmogljivo integrirano razvojno okolje za C/C++ in druge programske jezike, ki je razširljivo z vstavki. Funktionsrik, integrerad utvecklingsmiljö för C/C++ och andra programspråk Tam özellikli, eklenti ile geliştirilebilir C/C++ ve diğer programlama dilleri için tümleşik geliştirme ortamı. Це повноцінне, розширюване за допомогою додатків комплексне середовище розробки мовами C/C++ та іншими мовами програмування. xxFeatureful, plugin-extensible IDE for C/C++ and other programming languagesxx 全功能,可扩展的支持 C/C++ 和其他语言的集成开发环境。

KDevelop is a Free and Open Source integrated development environment (IDE).

«مطوّرك» هي بيئة تطوير متكاملة (IDE) حرّة ومفتوحة المصدر.

El KDevelop és un entorn de desenvolupament integrat (IDE) lliure i de codi obert.

El KDevelop és un entorn de desenvolupament integrat (IDE) lliure i de codi obert.

KDevelop ist eine integrierte Entwicklungsumgebung (Frei und Open Source).

KDevelop is a Free and Open Source integrated development environment (IDE).

KDevelop es un entorno de desarrollo integrado (IDE) libre y de código abierto.

KDevelop on vaba ja avatud lähtekoodiga lõimitud arenduskeskkond (IDE)

KDevelop est un environnement de développement intégré (IDE) libre et en open source.

KDevelop é un ambiente integrado de desenvolvemento (IDE) libre e de código aberto.

KDevelop adalah sebuah IDE (integrated development environment) lingkungan pengembangan terintegrasi yang Gratis dan Bebas Terbuka.

KDevelop è un ambiente di sviluppo integrato (IDE) libero e open source.

KDevelop은 자유 오픈 소스 통합 개발 환경(IDE)입니다.

KDevelop is een vrije geïntegreerde ontwikkelomgeving (IDE) binnen het open source principe.

KDevelop to darmowe i otwartoźródłowe zintegrowane środkowisko programistyczne (IDE).

O KDevelop é um ambiente de desenvolvimento integrado (IDE) livre e em código aberto.

Ambiente de Desenvolvimento Integrado (IDE) em Software Livre e Código Aberto.

KDevelop je slobodné a otvorené integrované vývojové prostredie (IDE).

KDevelop je prosto in odprtokodno integrirano razvojno okolje (IDE).

KDevelop är en fri integrerad utvecklingsmiljö (IDE) med öppen källkod för olika programvaruprojekt.

KDevelop Özgür ve Açık Kaynaklı tümleşik geliştirme ortamıdır (IDE).

KDevelop є вільним комплексним середовищем розробки (IDE) з відкритим кодом.

xxKDevelop is a Free and Open Source integrated development environment (IDE).xx

可用于您的不同软件项目的自由和开源的集成开发环境

It provides editing, navigation and debugging features for several programming languages, as well as integration with multiple build systems and version-control systems, using a plugin-based architecture.

توفّر البرمجيّة مزايا التّحرير والتّنقّل والتّنقيح لمختلف لغات البرمجة، إلى جانب التّكامل مع مختلف أنظمة البناء وأنظمة التّحكّم بالإصدارات، وذلك عبر البنية المعتمدة على الملحقات.

Proporciona característiques per a l'edició, navegació i depuració per a diversos llenguatges de programació, així com la integració amb múltiples sistemes de construcció i sistemes de control de versions, emprant una arquitectura basada en connectors.

Proporciona característiques per a l'edició, navegació i depuració per a diversos llenguatges de programació, així com la integració amb múltiples sistemes de construcció i sistemes de control de versions, emprant una arquitectura basada en connectors.

Funktionen zum Editieren, Navigieren und zur Fehlersuche für mehrere Programmiersprachen, dazu auch Integration von mehreren Build- und Versionskontrollsystemen auf der Basis einer modularen Architektur.

It provides editing, navigation and debugging features for several programming languages, as well as integration with multiple build systems and version-control systems, using a plugin-based architecture.

Proporciona funciones de edición, navegación y depuración para varios lenguajes de programación, además de integración con diversos sistemas de compilación y de control de versiones, usando una arquitectura basada en complementos.

See võimaldab redigeerida, liikuda ja siluda mitmes programmeerimiskeeles ning on pluginapõhise arhitektuuri abil lõiminud mitmeid ehitamis- ja versioonihaldussüsteeme.

Il fournit des fonctionnalités d'édition, navigation et débogage pour plusieurs langages de programmation, ainsi que l'intégration de multiples systèmes de compilation et de gestion de révision, en utilisant une architecture extensible.

Fornece funcionalidades de edición, navegación e depuración para varias linguaxes de programación, así como integración con varios sistemas de construción e sistemas de control de versións, usando unha arquitectura baseada en complementos.

Ini menyediakan fitur pengeditan, navigasi dan debugging untuk beberapa bahasa pemrograman, serta integrasi dengan sistem build multipel dan sistem kontrol versi, menggunakan arsitektur berbasis plugin.

Fornisce funzionalità di modifica, navigazione debug per vari linguaggi di programmazione, così come l'integrazione con vari sistemi di compilazione e di controllo versione, tramite l'uso di architettura basata sulle estensioni.

또한 플러그인 기반 아키텍처를 사용하여 여러 프로그래밍 언어에 대한 편집, 탐색 및 디버깅 기능을 제공하고 여러 빌드 시스템 및 버전 제어 시스템과의 통합도 제공합니다.

Het biedt functies voor bewerking, navigatie en debugging voor verschillende programmeertalen, evenals integratie met meerdere bouwsystemen en versiecontrole systemen, met gebruik van een op plug-ins gebaseerde architectuur.

Zapewnia możliwość edycji, poruszania się po projekcie i diagnozowania błędów dla kilku języków programistycznych, a także integrację z wieloma systemami budowania i zarządzania wersjami poprzez wbudowaną architekturę wtyczek.

Oferece capacidades de edição, navegação e depuração para diversas linguagens de programação, assim como a integração com diversos sistemas de compilação e de controlo de versões, usando uma arquitectura baseada em 'plugins'.

Oferece capacidades de edição, navegação e depuração para diversas linguagens de programação, assim como a integração com diversos sistemas de compilação e de controle de versões, usando uma arquitetura baseada em plugins.

Poskytuje funkcie editovania, navigácie a ladenia pre niektoré programovacie jazyky, ako aj integráciu s viacerými zostavovacími systémami a systémami na správu verzií pomocou pluginovej architektúry.

S pomočjo vstavkov omogoča urejanje, krmarjenje in razhroščevanje za številne programske jezike, hkrati pa ponuja podporo več sistemom za izgradnjo in nadzor različic.

Den tillhandahåller redigerings-, navigerings- och avlusningsfunktioner för flera olika programspråk, samt integrering med ett flertal byggsystem och versionskontrollsystem, med användning av en insticksbaserad arkitektur.

Bir çok programlama dili için düzenleme, gezinme ve hata ayıklama özellikleri sağlar, ayrıca bir çok inşa sistemi ve sürüm kontrol sistemi ile tümleşik olup eklenti-tabanlı mimari kullanır.

У програмі передбачено можливості з редагування, навігації та діагностики коду декількома мовами програмування, а також інтеграцію із декількома системами збирання коду та керування версіями. Використовується архітектура з додатками.

xxIt provides editing, navigation and debugging features for several programming languages, as well as integration with multiple build systems and version-control systems, using a plugin-based architecture.xx

它提供了多种编程语言的编辑、导航和调试功能,以及与多种构建系统和版本控制系统的集成,使用基于插件的体系结构。

KDevelop has parser backends for C, C++ and Javascript/QML, with further external plugins supporting e.g. PHP or Python.

لدى «مطوّرك» سندات تحليل للغات سي، وسي++، وجاڤاسكربت/QML كما وملحقات خارجيّة أخرى تدعم PHP أو پيثون.

El KDevelop disposa de dorsals d'analitzador per a C, C ++ i Javascript/QML, amb altres connectors externs que implementen, p. ex., PHP o Python.

El KDevelop disposa de dorsals d'analitzador per a C, C ++ i Javascript/QML, amb altres connectors externs que implementen, p. ex., PHP o Python.

KDevelop beinhaltet Parser-Module für C, C++ und Javascript/QML, weitere externe Module unterstützten zum Beispiel PHP oder Python.

KDevelop has parser backends for C, C++ and Javascript/QML, with further external plugins supporting e.g. PHP or Python.

KDevelop dispone de motores de análisis sintáctico para C, C++ y JavaScript/QML, además de complementos externos (por ejemplo, para PHP o para Python).

KDevelopil on C, C++ ja Javasripti/QML parsimise taustaprogrammid, väliste pluginate abil on toetatud ka näiteks PHP ja Python.

KDevelop intègre des parseurs pour le C, le C++ et Javascript/QML, avec des modules externes pour prendre en charge PHP, Python, etc.

KDevelop ten infraestruturas de análise para C, C++ e JavaScript/QML, con complementos externos adicionais que fornecen compatibilidade, por exemplo, con PHP e Python.

KDevelop memiliki pengurai backend untuk C, C++ dan Javascript/QML, dengan mendukung plugin eksternal lebih lanjut misal PHP atau Python.

KDevelop ha dei motori di analisi per C, C++ e JavaScript/QML, come ulteriori estensioni esterne che supportano, ad esempio, PHP o Python.

KDevelop에는 C, C++ 및 Javascript/QML에 대한 파서 백엔드가 있으며, PHP 또는 Python과 같은 추가 외부 플러그인이 지원됩니다.

KDevelop heef backends voor ontleden van C, C++ en Javascript/QML, met verdere externe plug-ins die bijv. PHP of Python ondersteunen.

KDevelop ma silniki do przetwarzania składni C, C++ oraz Javascript/QML, a także inne jak np. PHP lub Python dodawane przy użyciu zewnętrznych wtyczek.

O KDevelop tem infra-estruturas de processamento para C, C++ e Javascript/QML, com mais 'plugins' externos que suportam p.ex. PHP ou Python.

O KDevelop tem infraestruturas de processamento para C, C++ e Javascript/QML, com mais plugins externos que tem suporte a, por exemplo, PHP ou Python.

KDevelop má backendy parsera pre C, C++ a Javascript/QML, s ďalšími externými pluginmi podporujúcimi napr. PHP alebo Python.

KDevelop vsebuje razčlenjevalna zaledja za C, C++ in Javascript/QML, zunanji vstavki pa podpirajo tudi npr. PHP ali Python.

KDevelop har gränssnitt för tolkning av C, C++ och Javascript/QML, med ytterligare externa insticksprogram som stöder t.ex. PHP eller Python.

KDevelop C, C++ ve Javascript/QML için ayrıştırma arka uçlarına sahiptir, harici eklentilerle örn. PHP veya Python da desteklenir.

У KDevelop передбачено модулі обробки коду мовами C, C++ та Javascript/QML та додатки для розширення підтримки коду іншими мовами програмування, зокрема PHP і Python.

xxKDevelop has parser backends for C, C++ and Javascript/QML, with further external plugins supporting e.g. PHP or Python.xx

KDevelop 提供了 C、C++ 和 JavaScript/QML 的解析器后端,并通过插件提供 PHP 和 Python 等语言的支持。

https://kdevelop.org https://bugs.kde.org/enter_bug.cgi?format=guided&product=kdevelop https://docs.kde.org/?application=kdevelop https://www.kde.org/community/donations/?app=kdevelop https://cdn.kde.org/screenshots/kdevelop/kdevelop.png KDE kdevelop org.kde.kdevelop.desktop kdevelop Development IDE + kfunk@kde.org
diff --git a/plugins/clazy/CMakeLists.txt b/plugins/clazy/CMakeLists.txt index 7a6f7c06aa..4598368266 100644 --- a/plugins/clazy/CMakeLists.txt +++ b/plugins/clazy/CMakeLists.txt @@ -1,77 +1,77 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdevclazy\") find_package(ClazyStandalone QUIET) set_package_properties(ClazyStandalone PROPERTIES DESCRIPTION "Qt oriented code checker based on clang framework. Krazy's little brother" - URL "https://cgit.kde.org/clazy.git/about/" + URL "https://commits.kde.org/clazy" PURPOSE "Recommended: required by the non-essential Clazy plugin" TYPE RUNTIME ) set(kdevclazy_core_SRCS checksdb.cpp job.cpp jobparameters.cpp utils.cpp checksetselection.cpp checksetselectionlock.cpp checksetselectionmanager.cpp ) declare_qt_logging_category(kdevclazy_core_SRCS TYPE PLUGIN IDENTIFIER KDEV_CLAZY CATEGORY_BASENAME "clazy" ) kconfig_add_kcfg_files(kdevclazy_core_SRCS GENERATE_MOC config/globalsettings.kcfgc ) kconfig_add_kcfg_files(kdevclazy_core_SRCS config/projectsettings.kcfgc ) add_library(kdevclazy_core STATIC ${kdevclazy_core_SRCS} ) target_link_libraries(kdevclazy_core KDevCompileAnalyzerCommon KDev::Project KDev::Shell ) set(kdevclazy_SRCS analyzer.cpp plugin.cpp config/customchecksetconfigproxywidget.cpp config/checksetselectioncombobox.cpp config/checksetselectionlistmodel.cpp config/checksetmanagewidget.cpp config/checkswidget.cpp config/commandlinewidget.cpp config/globalconfigpage.cpp config/projectconfigpage.cpp ) ki18n_wrap_ui(kdevclazy_SRCS config/checksetmanagewidget.ui config/checkswidget.ui config/commandlinewidget.ui config/globalconfigpage.ui config/projectconfigpage.ui ) qt5_add_resources(kdevclazy_SRCS kdevclazy.qrc ) kdevplatform_add_plugin(kdevclazy JSON kdevclazy.json SOURCES ${kdevclazy_SRCS} ) target_link_libraries(kdevclazy kdevclazy_core KF5::ItemViews ) ecm_install_icons(ICONS icons/128-apps-clazy.png DESTINATION ${KDE_INSTALL_ICONDIR} THEME hicolor) if(BUILD_TESTING) add_subdirectory(tests) endif()