i9ce
MSVSphere Packaging Team 1 year ago
parent ec79d06fb4
commit edc5a24fea

@ -0,0 +1,69 @@
From 1be046edd455969b74417ded6871d25eba8a1112 Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Mon, 27 Jun 2022 17:12:09 +0200
Subject: [PATCH] Disable toplevel fixed positions on Wayland
Given that the wayland protocol does not have window positions a recent
change to Qt development branch avoids having a mismatch of positions
and tells client code the window is at the topleft of the screen. This
fixes multiple bugs.
Unfortuantely this breaks a few usages within plasma where a
side-channel sends that absolute positional information over a bespoke
protocol. Currently we proxy this all through QWindow geometry where the
new Qt behaviour will throw is askew.
Whilst our longterm plans are to find future options away from the
plasmashell protocol we may as well have our Qt6
build work given the patch is trivial and harmless.
It also allows for potential backporting if our software is
already secured against issues.
---
krunner/main.cpp | 2 ++
shell/main.cpp | 3 +++
2 files changed, 5 insertions(+)
diff --git a/krunner/main.cpp b/krunner/main.cpp
index a05402a01..f19382cad 100644
--- a/krunner/main.cpp
+++ b/krunner/main.cpp
@@ -34,6 +34,7 @@ int main(int argc, char **argv)
QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
}
+ qputenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS", {});
const bool qpaVariable = qEnvironmentVariableIsSet("QT_QPA_PLATFORM");
KWorkSpace::detectPlatform(argc, argv);
QQuickWindow::setDefaultAlphaBuffer(true);
@@ -42,6 +43,7 @@ int main(int argc, char **argv)
// don't leak the env variable to processes we start
qunsetenv("QT_QPA_PLATFORM");
}
+ qunsetenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS");
KLocalizedString::setApplicationDomain("krunner");
// TODO: Make it a QGuiApplication once we don't depend on KDELibs4Support
diff --git a/shell/main.cpp b/shell/main.cpp
index 26e4ecede..147483df4 100644
--- a/shell/main.cpp
+++ b/shell/main.cpp
@@ -79,6 +79,7 @@ int main(int argc, char *argv[])
oldCategoryFilter = QLoggingCategory::installFilter(filterConnectionSyntaxWarning);
+ qputenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS", {});
const bool qpaVariable = qEnvironmentVariableIsSet("QT_QPA_PLATFORM");
KWorkSpace::detectPlatform(argc, argv);
QApplication app(argc, argv);
@@ -86,6 +87,8 @@ int main(int argc, char *argv[])
// don't leak the env variable to processes we start
qunsetenv("QT_QPA_PLATFORM");
}
+ qunsetenv("QT_WAYLAND_DISABLE_FIXED_POSITIONS");
+
KLocalizedString::setApplicationDomain("plasmashell");
// The executable's path is added to the library/plugin paths.
--
GitLab

@ -0,0 +1,38 @@
From d6d47393bab32dc60b43e0eeac16c035000a0358 Mon Sep 17 00:00:00 2001
From: Eugene Popov <popov895@ukr.net>
Date: Sun, 24 Jul 2022 00:18:44 +0000
Subject: [PATCH] [FIX] Unable to remove manually added wallpaper
It's not necessary to assign m_removableWallpapers asynchronously, because the value assigned to it doesn't depend on the result of that asynch function.
!!! This MR is for the Plasma/5.25 branch only and it SHOULD NOT be cherry-picket into the master branch.
BUG: 457019
---
wallpapers/image/plugin/backgroundlistmodel.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/wallpapers/image/plugin/backgroundlistmodel.cpp b/wallpapers/image/plugin/backgroundlistmodel.cpp
index 8c5630712..0b12470a5 100644
--- a/wallpapers/image/plugin/backgroundlistmodel.cpp
+++ b/wallpapers/image/plugin/backgroundlistmodel.cpp
@@ -107,6 +107,8 @@ void BackgroundListModel::reload(const QStringList &selected)
return;
}
+ m_removableWallpapers = QSet<QString>(selected.constBegin(), selected.constEnd());
+
const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("wallpapers/"), QStandardPaths::LocateDirectory);
BackgroundFinder *finder = new BackgroundFinder(m_wallpaper.data(), dirs);
@@ -117,7 +119,6 @@ void BackgroundListModel::reload(const QStringList &selected)
}
processPaths(selected + wallpapersFound);
- m_removableWallpapers = QSet<QString>(selected.constBegin(), selected.constEnd());
});
m_findToken = token;
finder->start();
--
GitLab

@ -0,0 +1,114 @@
diff -up plasma-workspace-5.12.5/startkde/startkde.cmake.startkde plasma-workspace-5.12.5/startkde/startkde.cmake
--- plasma-workspace-5.12.5/startkde/startkde.cmake.startkde 2018-05-01 08:03:40.000000000 -0500
+++ plasma-workspace-5.12.5/startkde/startkde.cmake 2018-05-06 21:12:49.592504191 -0500
@@ -279,22 +237,21 @@ if test $? -ne 0; then
# Startup error
echo 'startkde: Could not sync environment to dbus.' 1>&2
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
- xmessage -geometry 500x100 "Could not sync environment to dbus."
+ xmessage "Could not sync environment to dbus."
exit 1
fi
-# We set LD_BIND_NOW to increase the efficiency of kdeinit.
-# kdeinit unsets this variable before loading applications.
-LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup
+@CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup
if test $? -ne 0; then
# Startup error
echo 'startkde: Could not start kdeinit5. Check your installation.' 1>&2
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
- xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation."
+ xmessage "Could not start kdeinit5. Check your installation."
exit 1
fi
-qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
+qdbus=qdbus-qt5
+$qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
# finally, give the session control to the session manager
# see kdebase/ksmserver for the description of the rest of the startup sequence
@@ -327,13 +284,13 @@ if test x"$wait_drkonqi"x = x"true"x ; t
# wait for remaining drkonqi instances with timeout (in seconds)
wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
wait_drkonqi_counter=0
- while qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
+ while $qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
sleep 5
wait_drkonqi_counter=$((wait_drkonqi_counter+5))
if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then
# ask remaining drkonqis to die in a graceful way
- qdbus | grep 'org.kde.drkonqi-' | while read address ; do
- qdbus "$address" "/MainApplication" "quit"
+ $qdbus | grep 'org.kde.drkonqi-' | while read address ; do
+ $qdbus "$address" "/MainApplication" "quit"
done
break
fi
diff -up plasma-workspace-5.12.5/startkde/startplasma.cmake.startkde plasma-workspace-5.12.5/startkde/startplasma.cmake
--- plasma-workspace-5.12.5/startkde/startplasma.cmake.startkde 2018-05-01 08:03:40.000000000 -0500
+++ plasma-workspace-5.12.5/startkde/startplasma.cmake 2018-05-06 21:11:54.749023404 -0500
@@ -140,7 +140,8 @@ if test $? -ne 0; then
exit 1
fi
-qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
+qdbus=qdbus-qt5
+$qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
# finally, give the session control to the session manager
# see kdebase/ksmserver for the description of the rest of the startup sequence
@@ -169,13 +170,13 @@ if test x"$wait_drkonqi"x = x"true"x ; t
# wait for remaining drkonqi instances with timeout (in seconds)
wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
wait_drkonqi_counter=0
- while qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
+ while $qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do
sleep 5
wait_drkonqi_counter=$((wait_drkonqi_counter+5))
if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then
# ask remaining drkonqis to die in a graceful way
- qdbus | grep 'org.kde.drkonqi-' | while read address ; do
- qdbus "$address" "/MainApplication" "quit"
+ $qdbus | grep 'org.kde.drkonqi-' | while read address ; do
+ $qdbus "$address" "/MainApplication" "quit"
done
break
fi
diff -up plasma-workspace-5.12.5/startkde/startplasmacompositor.cmake.startkde plasma-workspace-5.12.5/startkde/startplasmacompositor.cmake
--- plasma-workspace-5.12.5/startkde/startplasmacompositor.cmake.startkde 2018-05-01 08:03:40.000000000 -0500
+++ plasma-workspace-5.12.5/startkde/startplasmacompositor.cmake 2018-05-06 21:11:54.749023404 -0500
@@ -3,6 +3,8 @@
# DEFAULT Plasma STARTUP SCRIPT ( @PROJECT_VERSION@ )
#
+qdbus=qdbus-qt5
+
# We need to create config folder so we can write startupconfigkeys
if [ ${XDG_CONFIG_HOME} ]; then
configDir=$XDG_CONFIG_HOME;
@@ -120,12 +122,12 @@ fi
# Get a property value from org.freedesktop.locale1
queryLocale1() {
- qdbus --system org.freedesktop.locale1 /org/freedesktop/locale1 "$1"
+ $qdbus --system org.freedesktop.locale1 /org/freedesktop/locale1 "$1"
}
# Query whether org.freedesktop.locale1 is available. If it is, try to
# set XKB_DEFAULT_{MODEL,LAYOUT,VARIANT,OPTIONS} accordingly.
-if qdbus --system org.freedesktop.locale1 >/dev/null 2>/dev/null; then
+if $qdbus --system org.freedesktop.locale1 >/dev/null 2>/dev/null; then
# Do not overwrite existing values. There is no point in setting only some
# of them as then they would not match anymore.
if [ -z "${XKB_DEFAULT_MODEL}" -a -z "${XKB_DEFAULT_LAYOUT}" -a \
@@ -175,7 +177,7 @@ fi
export XDG_DATA_DIRS
# Make sure that D-Bus is running
-if qdbus >/dev/null 2>/dev/null; then
+if $qdbus >/dev/null 2>/dev/null; then
: # ok
else
echo 'startplasmacompositor: Could not start D-Bus. Can you call qdbus?' 1>&2

@ -804,7 +804,7 @@ fi
%changelog %changelog
* Mon Jan 15 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 5.27.6-1R.1 * Mon Jan 15 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 5.27.6-1.1
- Rebuilt for MSVSphere 9.3 - Rebuilt for MSVSphere 9.3
* Wed Nov 29 2023 Troy Dawson <tdawson@redhat.com> - 5.27.6-1.1 * Wed Nov 29 2023 Troy Dawson <tdawson@redhat.com> - 5.27.6-1.1

Loading…
Cancel
Save