[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#757368: marked as done (kde-runtime: With homedirs on NFS, KDE complains about removed sound devices when logging into different hardware)



Your message dated Sun, 25 Aug 2019 15:29:15 +0000
with message-id <E1i1uSB-000H5u-4i@fasolo.debian.org>
and subject line Bug#935664: Removed package(s) from unstable
has caused the Debian Bug report #757368,
regarding kde-runtime: With homedirs on NFS, KDE complains about removed sound devices when logging into different hardware
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
757368: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757368
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: kde-runtime
Version: 4:4.8.4-2
Severity: normal
Tags: upstream patch

On a setup with NFS-shared home directories, KDE will complain about allegedly removed sound devices if a user logs into a machine with a different hardware setup.
This is due to Phonon remembering the hardware setup in ~/.kde/share/config/phonondevicesrc and not honoring a global /etc/kde4/phonondevicesrc.
The attached patch (which we've been using for ages) makes Phonon load a global phonondevicesrc.
You can then, on every machine, install a /etc/kde4/phonondevicesrc listing all that machine's devices (and even assign suitable preferences to them) so the user's ~/.kde/share/config/phonondevicesrc remains essentially empty. Then KDE stops notifying about hardware configuration changes because it will only ever use the machine's configuration plus an empty user's one.

See, for example, https://bugs.kde.org/show_bug.cgi?id=218533, for an upstream report.

-- System Information:
Debian Release: 7.6
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.10.42.wap (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages kde-runtime depends on:
ii  kde-runtime-data                4:4.8.4-2
ii  kdelibs5-plugins                4:4.8.4-4
ii  libasound2                      1.0.25-4
ii  libattica0                      0.2.0-1
ii  libc6                           2.13-38+deb7u3
ii  libcanberra0                    0.28-6
ii  libexiv2-12                     0.23-1
ii  libgcc1                         1:4.7.2-5
ii  libjpeg8                        8d-1+deb7u1
ii  libkcmutils4                    4:4.8.4-4
ii  libkdeclarative5                4:4.8.4-4
ii  libkdecore5                     4:4.8.4-4
ii  libkdesu5                       4:4.8.4-4
ii  libkdeui5                       4:4.8.4-4
ii  libkdewebkit5                   4:4.8.4-4
ii  libkdnssd4                      4:4.8.4-4
ii  libkemoticons4                  4:4.8.4-4
ii  libkfile4                       4:4.8.4-4
ii  libkhtml5                       4:4.8.4-4
ii  libkidletime4                   4:4.8.4-4
ii  libkio5                         4:4.8.4-4
ii  libkmediaplayer4                4:4.8.4-4
ii  libknewstuff3-4                 4:4.8.4-4
ii  libknotifyconfig4               4:4.8.4-4
ii  libkparts4                      4:4.8.4-4
ii  libkpty4                        4:4.8.4-4
ii  libnepomuk4                     4:4.8.4-4
ii  libnepomukquery4a               4:4.8.4-4
ii  libntrack-qt4-1                 016-1.1
ii  libopenexr6                     1.6.1-6
ii  libphonon4                      4:4.6.0.0-3
ii  libplasma3                      4:4.8.4-4
ii  libpulse-mainloop-glib0         2.0-6.1
ii  libpulse0                       2.0-6.1
ii  libqt4-dbus                     4:4.8.2+dfsg-11
ii  libqt4-declarative              4:4.8.2+dfsg-11
ii  libqt4-network                  4:4.8.2+dfsg-11
ii  libqt4-script                   4:4.8.2+dfsg-11
ii  libqt4-svg                      4:4.8.2+dfsg-11
ii  libqt4-xml                      4:4.8.2+dfsg-11
ii  libqtcore4                      4:4.8.2+dfsg-11
ii  libqtgui4                       4:4.8.2+dfsg-11
ii  libqtwebkit4                    2.2.1-5
ii  libsmbclient                    2:3.6.6-6+deb7u4
ii  libsolid4                       4:4.8.4-4
ii  libsoprano4                     2.7.6+dfsg.1-2wheezy1
ii  libssh-4                        0.5.4-1+deb7u1
ii  libstdc++6                      4.7.2-5
ii  libstreamanalyzer0              0.7.7-3
ii  libstreams0                     0.7.7-3
ii  libx11-6                        2:1.5.0-1+deb7u1
ii  libxcursor1                     1:1.1.13-1+deb7u1
ii  oxygen-icon-theme               4:4.8.4-1
ii  perl                            5.14.2-21+deb7u1
ii  phonon                          4:4.6.0.0-3
ii  plasma-scriptengine-javascript  4:4.8.4-2
ii  shared-desktop-ontologies       0.10.0-1

Versions of packages kde-runtime recommends:
ii  virtuoso-minimal  6.1.4+dfsg1-7

Versions of packages kde-runtime suggests:
ii  djvulibre-bin  3.5.25.3-1
pn  finger         <none>
pn  icoutils       <none>

-- no debconf information
Index: phonon/kded-module/phononserver.h
===================================================================
--- phonon/kded-module/phononserver.h	(revision 3581)
+++ phonon/kded-module/phononserver.h	(revision 3603)
@@ -63,6 +63,7 @@
         void askToRemoveDevices(const QStringList &devList, int type, const QList<int> &indexes);
 
     private:
+        void loadDeviceConfig(const PS::DeviceKey &key, QString &cardName, QString &iconName, int &initialPreference, bool &isAdvanced);
         void findDevices();
         void findVirtualDevices();
         void updateDevicesCache();
Index: phonon/kded-module/phononserver.cpp
===================================================================
--- phonon/kded-module/phononserver.cpp	(revision 3581)
+++ phonon/kded-module/phononserver.cpp	(revision 3603)
@@ -59,7 +59,7 @@
 
 PhononServer::PhononServer(QObject *parent, const QList<QVariant> &)
     : KDEDModule(parent),
-    m_config(KSharedConfig::openConfig("phonondevicesrc", KConfig::SimpleConfig))
+    m_config(KSharedConfig::openConfig("phonondevicesrc", KConfig::NoGlobals))
 {
     findDevices();
     connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceAdded(const QString &)), SLOT(deviceAdded(const QString &)));
@@ -152,6 +152,18 @@
     return d;
 }
 
+void PhononServer::loadDeviceConfig(const PS::DeviceKey &key, QString &cardName, QString &iconName, int &initialPreference, bool &isAdvanced)
+{
+    QString groupName = QLatin1String("AudioDevice_") + key.uniqueId;
+    if (m_config->hasGroup(groupName)) {
+        const KConfigGroup cGroup(m_config, groupName);
+        cardName = cGroup.readEntry("cardName", cardName);
+        iconName = cGroup.readEntry("iconName", iconName);
+        initialPreference = cGroup.readEntry("initialPreference", initialPreference);
+        isAdvanced = cGroup.readEntry("isAdvanced", isAdvanced);
+    }
+}
+
 void PhononServer::findVirtualDevices()
 {
 #ifdef HAVE_LIBASOUND2
@@ -299,6 +311,7 @@
         if (playbackDevice) {
             const PS::DeviceKey key = { uniqueId + QLatin1String("_playback"), -1, -1 };
 
+            loadDeviceConfig(key, cardName, iconName, initialPreference, isAdvanced);
             if (playbackDevices.contains(key)) {
                 playbackDevices[key].addAccess(access);
             } else {
@@ -310,6 +323,7 @@
         if (captureDevice) {
             const PS::DeviceKey key = { uniqueId + QLatin1String("_capture"), -1, -1 };
 
+            loadDeviceConfig(key, cardName, iconName, initialPreference, isAdvanced);
             if (captureDevices.contains(key)) {
                 captureDevices[key].addAccess(access);
             } else {
@@ -529,7 +543,7 @@
         const bool needNewCaptureDevice = capture && !audioCaptureDevices.contains(ckey);
 
         if (needNewPlaybackDevice || needNewCaptureDevice) {
-            const QString &icon = hwDevice.icon();
+            QString icon = hwDevice.icon();
 
             // Adjust the device preference according to the soudcard type
             switch (audioIface->soundcardType()) {
@@ -551,13 +565,17 @@
             }
 
             if (needNewPlaybackDevice) {
-                PS::DeviceInfo dev(PS::DeviceInfo::Audio, audioIface->name(), icon, pkey, initialPreference, isAdvanced);
+                QString card = audioIface->name();
+                loadDeviceConfig(pkey, card, icon, initialPreference, isAdvanced);
+                PS::DeviceInfo dev(PS::DeviceInfo::Audio, card, icon, pkey, initialPreference, isAdvanced);
                 dev.addAccess(devAccess);
                 audioPlaybackDevices.insert(pkey, dev);
             }
 
             if (needNewCaptureDevice) {
-                PS::DeviceInfo dev(PS::DeviceInfo::Audio, audioIface->name(), icon, ckey, initialPreference, isAdvanced);
+                QString card = audioIface->name();
+                loadDeviceConfig(ckey, card, icon, initialPreference, isAdvanced);
+                PS::DeviceInfo dev(PS::DeviceInfo::Audio, card, icon, ckey, initialPreference, isAdvanced);
                 dev.addAccess(devAccess);
                 audioCaptureDevices.insert(ckey, dev);
             }

--- End Message ---
--- Begin Message ---
Version: 4:17.08.3-2.1+rm

Dear submitter,

as the package kde-runtime has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/935664

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Scott Kitterman (the ftpmaster behind the curtain)

--- End Message ---

Reply to: