diff --git a/.gitlab-ci-files/job-linux-desktop-debian9.yml b/.gitlab-ci-files/job-linux-desktop-debian9.yml index c4adc1ca8..e23111411 100644 --- a/.gitlab-ci-files/job-linux-desktop-debian9.yml +++ b/.gitlab-ci-files/job-linux-desktop-debian9.yml @@ -12,7 +12,7 @@ job-debian9-ninja-gcc: CXX: g++ extends: .job-linux-desktop - + job-debian9-ninja-gcc-smallsdk: except: refs: @@ -68,7 +68,7 @@ job-debian9-ninja-clang-novideo: variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-debian9-ninja-clang - + job-debian9-makefile-clang: tags: [ "docker-debian9" ] image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-fuse-wget-gpg2-qt-release-no-debug-info:5.12.5 @@ -98,7 +98,7 @@ job-debian9-makefile-clang: - echo $DEFAULT_LINUX_CMAKE_OPTIONS - echo $CMAKE_SANITIZER_OPTIONS - cd build - - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS + - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS - cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS extends: .job-linux-desktop @@ -137,7 +137,7 @@ job-debian9-makefile-clang-package: - echo $DEFAULT_LINUX_CMAKE_OPTIONS - echo $CMAKE_SANITIZER_OPTIONS - cd build - - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS + - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS - cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS artifacts: paths: @@ -158,8 +158,8 @@ job-debian9-makefile-clang-deploy: - $NIGHTLY_MASTER - $DEPLOY_LINUX script: - - rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$APPIMAGE_UPLOAD_DIRECTORY/ - + - rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$APPIMAGE_UPLOAD_DIRECTORY/ + job-debian9-makefile-clang-plugins-deploy: stage: deploy @@ -187,4 +187,3 @@ job-debian9-debug: - $DEBUG_DEBIAN9 script: - sleep 10m - diff --git a/linphone-app/src/app/App.cpp b/linphone-app/src/app/App.cpp index bd4d6dc0a..83a8610c6 100644 --- a/linphone-app/src/app/App.cpp +++ b/linphone-app/src/app/App.cpp @@ -319,7 +319,7 @@ void App::initContentApp () { mNotifier = nullptr; mSystemTrayIcon = nullptr; - // + // CoreManager::uninit(); removeTranslator(mTranslator); removeTranslator(mDefaultTranslator); @@ -709,7 +709,7 @@ void App::setTrayIcon () { void App::initLocale (const shared_ptr &config) { // Try to use preferred locale. QString locale; - + // Use english. This default translator is used if there are no found translations in others loads mLocale = DefaultLocale; if (!installLocale(*this, *mDefaultTranslator, QLocale(mLocale))) @@ -787,11 +787,23 @@ void App::setAutoStart (bool enabled) { } const QString binPath(applicationFilePath()); - const QString exec( - binPath.startsWith("/app") - ? QStringLiteral("flatpak run " APPLICATION_ID) - : binPath - ); + + // Check if installation is done via Flatpak, AppImage, or classic package + // in order to rewrite a correct exec path for autostart + QString exec; + qDebug() << "binpath=" << binPath; + if (binPath.startsWith("/app")) { //Flatpak + exec = QStringLiteral("flatpak run " APPLICATION_ID); + qDebug() << "exec path autostart set flatpak=" << exec; + } + else if (binPath.startsWith("/tmp/.mount")) { //Appimage + exec = QProcessEnvironment::systemEnvironment().value(QStringLiteral("APPIMAGE")); + qDebug() << "exec path autostart set appimage=" << exec; + } + else { //classic package + exec = binPath; + qDebug() << "exec path autostart set classic package=" << exec; + } QTextStream(&file) << QString( "[Desktop Entry]\n" @@ -799,8 +811,7 @@ void App::setAutoStart (bool enabled) { "GenericName=SIP Phone\n" "Comment=" APPLICATION_DESCRIPTION "\n" "Type=Application\n" - "Exec=" + exec + "\n" - "Icon=\n" + "Exec=" + exec + " --iconified\n" "Terminal=false\n" "Categories=Network;Telephony;\n" "MimeType=x-scheme-handler/sip-linphone;x-scheme-handler/sip;x-scheme-handler/sips-linphone;x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;\n" @@ -927,17 +938,17 @@ void App::openAppAfterInit (bool mustBeIconified) { // ----------------------------------------------------------------------------- QString App::getStrippedApplicationVersion(){// x.y.z but if 'z-*' then x.y.z-1 - QString currentVersion = applicationVersion(); - QStringList versions = currentVersion.split('.'); - if(versions.size() >=3){ - currentVersion = versions[0]+"."+versions[1]+"."; - QStringList patchVersions = versions[2].split('-'); - if( patchVersions.size() > 1) - currentVersion += QString::number(patchVersions[0].toInt()-1); - else - currentVersion += patchVersions[0]; - } - return currentVersion; + QString currentVersion = applicationVersion(); + QStringList versions = currentVersion.split('.'); + if(versions.size() >=3){ + currentVersion = versions[0]+"."+versions[1]+"."; + QStringList patchVersions = versions[2].split('-'); + if( patchVersions.size() > 1) + currentVersion += QString::number(patchVersions[0].toInt()-1); + else + currentVersion += patchVersions[0]; + } + return currentVersion; } void App::checkForUpdate () { CoreManager::getInstance()->getCore()->checkForUpdate(