kernel 2.6.30.2-1 Arch linux broke gdesklets

Bug #403774 reported by jeff story
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gDesklets
Won't Fix
Undecided
Unassigned

Bug Description

On an Arch Linux, Gnome 64bit install, updated to kernel 2.6.30.2-1 broke gdesklets.

I get the following in a terminal when trying to start gdesklets:

[jeff@<localhost> ~]$ gdesklets
Starting gdesklets-daemon...
Connected to daemon in 207 milliseconds.
Could not open desklet /usr/lib/gdesklets/Displays/Clock/clock.display.
Could not open desklet /usr/lib/gdesklets/Displays/Calendar/Calendar.display.
Could not open desklet /home/jeff/.gdesklets/Displays/ExternIP/ExternIP.display.
Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBcpu_gauge.display.
Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBmemory_gauge.display.
Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBnet_gauge.display.
Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBinfo.display.

Revision history for this message
Joe Sapp (sappj) wrote :

I can't think of a reason why a new kernel would break gdesklets. Was python updated in the process? Can you reboot into the previous kernel and see that it works? Is there any information in the log file? Maybe you don't have the correct permissions on those directories (and verify those files exist).

Revision history for this message
jeff story (jeffstory) wrote :

No, Python wasn't updated. I currently have python 2.6.2-5 installed.

Arch has a rolling release model, and unfortunately, doesn't keep or allow previous kernel versions unless I manually
downgrade it, which will undoubtedly result in further future breakage of new applications.

No current dated info in the /home/jeff/.gdesklets/logs files.

The files are there, and I haven't changed any permissions. I'm also not sure what the default permissions, etc should
be on the gdesklet directories and files. Below is what they are currently set at.

I seem to recall something about do not run gdesklets as root. Is this correct? If thats true, should root be the owner of the directories and files?

/usr/lib/gdesklets/Displays/Clock/clock.display owner:root permissions: -rw-r--r--

Shouldn't someone or group be allowed an execute permission?

Revision history for this message
jeff story (jeffstory) wrote :

Forgot to mention in the previous.....

I upgraded the kernel and lib32-pango to the following versions:

kernel26 (2.6.30.2-1)
lib32-pango (1.24.5-1)

Revision history for this message
jeff story (jeffstory) wrote :

I also added htop (0.8.1-1) the same day I upgraded the above.
Gdesklets broke after a reboot.

Revision history for this message
Joe Sapp (sappj) wrote :

It's okay that it's owned by root, as far as I know. The .display file is brought into a sandbox and not executed directly, so it just needs to be readable by the users that want to use it.

Could you apply the attached patch to /usr/lib/gdesklets and try running it again? It might give some more useful information.

Revision history for this message
jeff story (jeffstory) wrote :

"apply the attached patch to /usr/lib/gdesklets"

I don't have that file. I do have:

/usr/bin/gdesklets/gdesklets

I've never added a patch.
Do I just add it to the file and
is placement within important?

Revision history for this message
Joe Sapp (sappj) wrote :

If that's a python script, that's the file you're looking for. Download the patch into /usr/bin/gdesklets and type:

patch -p0 < gd-exc-info.patch

It should apply cleanly. It does matter where it goes (you can't just tack it on to the end of the file).

Revision history for this message
jeff story (jeffstory) wrote :

Ok,

I applied the patch and got the following:

[root@<localhost> bin]# patch -p0 < gd-exc-info.patch
patching file gdesklets
Hunk #1 succeeded at 185 (offset 3 lines).

When I start gdesklets in a terminal I get:

[jeff@<localhost> ~]$ gdesklets
Traceback (most recent call last):
  File "/usr/bin/gdesklets", line 3, in <module>
    from main import client, DISPLAY, HOME, USERHOME
ImportError: No module named main

Revision history for this message
Joe Sapp (sappj) wrote :

That's odd...the patch shouldn't have affected that aspect of the script. I wonder if your installation is screwed up; is /usr/bin/gdesklets a symlink? If so, can you try executing its target (i.e. *not* via `gdesklets` but `/usr/lib/gdesklets/gdesklets`)?

And in comment #6 you said that /usr/bin/gdesklets was a directory, but it looks like you applied the patch to the directory (comment #8 shows you executed `patch` in a directory named "bin"). What's even more confusing is that it looks like it succeeded without much of a problem. Can you please clarify for me?

Revision history for this message
jeff story (jeffstory) wrote :

"is /usr/bin/gdesklets a symlink?".........no
-------------------------------------------------------------------------------------------------------
Regarding #6, my error. I was at work accessing my home computer......

I was looking at /user/lib/gdesklets/gdesklets rather than /user/bin/gdesklets.
-------------------------------------------------------------------------------------------------------
To install the patch, I copied: gd-exc-info.patch to the /user/bin directory
rather that install it into /user/bin/gdesklets file.

Then I invoked the command: patch -p0 < gd-exc-info.patch

Sorry if I'm screwing this up, Linux newb here.
-------------------------------------------------------------------------------------------------------
The files /usr/bin/gdesklets and /usr/lib/gdesklets/gdesklets
are identical as far as I can tell except an additional line in /usr/bin/gdesklets, line 190 as below.

/usr/bin/gdesklets line 190 is as follows: print _("Exception was: %s\n" % `exc`)

/usr/lib/gdesklets/gdesklets line 190 is as follows: continue

Revision history for this message
jeff story (jeffstory) wrote :

There is a /usr/bin/gdesklets.orig symlink to /usr/lib/gdesklets/gdesklets

Revision history for this message
jeff story (jeffstory) wrote :

"can you try executing its target (i.e. *not* via `gdesklets` but `/usr/lib/gdesklets/gdesklets`)?"

[jeff@<localhost> bin]$ gdesklets
Traceback (most recent call last):
  File "/usr/bin/gdesklets", line 3, in <module>
    from main import client, DISPLAY, HOME, USERHOME
ImportError: No module named main

[jeff@<localhost> gdesklets]$ gdesklets
Traceback (most recent call last):
  File "/usr/bin/gdesklets", line 3, in <module>
    from main import client, DISPLAY, HOME, USERHOME
ImportError: No module named main

Revision history for this message
Joe Sapp (sappj) wrote :

Okay, let's try to put back together what I've messed up a bit:
1) mv /usr/bin/gdesklets.orig /usr/bin/gdesklets
2) Apply the patch from within "/usr/lib/gdesklets"

It doesn't matter since the patch didn't exactly do what I thought it would, but keep in mind that in order to execute a specific binary that's not in your PATH you need to give it a path to execute - in your second example in comment #12, you could've done `./gdesklets` from within "/usr/lib/gdesklets" or `/usr/lib/gdesklets/gdesklets` from anywhere, unless you have "." first in PATH (which you probably shouldn't in most cases).

Thanks for being patient with this.

Revision history for this message
jeff story (jeffstory) wrote :

"Thanks for being patient" is what I was thinking I should be saying to you! I really appreciate all your help Joe.

OK,

I believe I followed your instructions properly this time........

Now,

The only gdesklets file in directory /usr/bin is a symlink to /usr/lib/gdesklets/gdesklets.

In the file, /usr/lib/gdesklets/gdesklets, line 190 is: print _("Exception was: %s\n" % `exc`)

if this tells you anything.

In the terminal, now I get:
----------------------------------------------------------------------------------------------------------------------
[jeff@<localhost> ~]$ /usr/lib/gdesklets/gdesklets
Starting gdesklets-daemon...
Connected to daemon in 207 milliseconds.
Could not open desklet /usr/lib/gdesklets/Displays/Clock/clock.display.
Exception was: XDRError()

Could not open desklet /usr/lib/gdesklets/Displays/Calendar/Calendar.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/ExternIP/ExternIP.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBcpu_gauge.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBmemory_gauge.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBnet_gauge.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBinfo.display.
Exception was: error(32, 'Broken pipe')
-----------------------------------------------------------------------------------------------------------------------

Thanks.......

Revision history for this message
jeff story (jeffstory) wrote :

Log messages of /home/jeff/.gdesklets/logs/gdesklets%3A0.0.log
==========================================================[07/24/09-14:08:16]===
Adding "/usr/lib/gdesklets/Displays/Clock/clock.display" with ID "id1243796493893558"
to the desklet list.
/usr/lib/gdesklets/plugin/Interface.py:86: DeprecationWarning: the md5 module is
deprecated; use hashlib instead
  import md5

Revision history for this message
jeff story (jeffstory) wrote :

Upgraded to Kernel 2.6.30.4-1

Still no gdesklets.

I switched to screenlets until this issue with gdesklets is resolved and they work for me again.

[jeff@<localhost> ~]$ gdesklets
Starting gdesklets-daemon...
Connected to daemon in 207 milliseconds.
Could not open desklet /usr/lib/gdesklets/Displays/Clock/clock.display.
Exception was: XDRError()

Could not open desklet /usr/lib/gdesklets/Displays/Calendar/Calendar.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/ExternIP/ExternIP.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBcpu_gauge.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBmemory_gauge.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBnet_gauge.display.
Exception was: error(32, 'Broken pipe')

Could not open desklet /home/jeff/.gdesklets/Displays/FTB/FTBinfo.display.
Exception was: error(32, 'Broken pipe')

Revision history for this message
Joe Sapp (sappj) wrote :

I don't recall ever seeing this before, so my guess is that it's a dependency issue. Glancing through the code quickly, it seems like Python isn't able to receive on a socket (which doesn't make sense to me).

Revision history for this message
jeff story (jeffstory) wrote :

From # 15.........DeprecationWarning: the md5 module is deprecated; use hashlib instead import md5

Would you share any info you have on the md5 deprecation warning?

I recall reading something about md5 wasn't as secure as it was in the past due to processor advancements over the years.
Is it possible that it's been replaced or upgraded in the kernel, and could this have anything to do with my gdesklets problem?

If not, I could try to recompile it from source.

Revision history for this message
Joe Sapp (sappj) wrote :

In regard to the md5 module, it's been deprecated since Python 2.5 but it's just showing a warning in 2.6 (http://www.python.org/doc/2.5.2/lib/module-md5.html). Do you mind filing a separate bug so we don't neglect it? And as far as security, I'm not sure where it's used. I'm more inclined to think this bug is a missing Python module or one that's changed its functionality significantly in a recent revision.

Revision history for this message
jeff story (jeffstory) wrote :

OK,

I filed a new bug for the deprecation md5 issue.

I also:

I removed gdesklets with my package manager (pacman), and compiled from source, a package that my package manager could install, and installed it.

Same results when starting gdesklets, no missing dependencies or other warnings when compiled from source.......

If it would help, just ask me which ones, and I could give you any package versions needed to further investigate this issue.

Revision history for this message
jeff story (jeffstory) wrote :
Download full text (54.1 KiB)

Some additional info:

Dependencies: As listed in Shaman (GUI fromtend for Pacman package manager)

Dependency Installed

libgtop libgtop (2.26.1-1)
librsvg librsvg (2.26.0-1)
libgnomeui libgnomeui (2.24.1-1)
gnome-python gnome-python (2.26.1-1)
gconf gconf (2.26.2-2)
desktop-file-utils desktop-file-utils (0.15-1)

======================================================================

Dependencies: As listed with [pacman -Qi gdesklets] command

Dependency Installed

libgtop>=2.14.8-2 libgtop (2.26.1-1)
librsvg>=2.16.0 librsvg (2.26.0-1)
libgnomeui>=2.18.1-2 libgnomeui (2.24.1-1)
gnome-python>=2.18.0 gnome-python (2.26.1-1)
gconf>=2.18.0.1-4 gconf (2.26.2-2)
desktop-file-utils desktop-file-utils (0.15-1)

======================================================================

Pacman log file info on packages:

[2009-05-29 23:35] installed libgtop (2.26.1-1)

[2009-05-29 23:35] installed librsvg (2.26.0-1)

[2009-05-29 23:34] installed libgnomeui (2.24.1-1)
[2009-05-31 22:16] libgnomeui (2.24.1-1) removed successfully!
[2009-05-31 22:25] libgnomeui (2.24.1-1) installed successfully!
[2009-05-31 22:26] libgnomeui (2.24.1-1) removed successfully!
[2009-05-31 23:32] installed libgnomeui (2.24.1-1)
[2009-06-07 05:53] libgnomeui (2.24.1-1) removed successfully!
[2009-06-07 12:02] installed libgnomeui (2.24.1-1)
[2009-06-07 12:27] libgnomeuimm (2.26.0-1) installed successfully!

[2009-05-29 23:35] installed gnome-python (2.26.1-1)
[2009-05-31 22:16] gnome-python (2.26.1-1) removed successfully!
[2009-05-31 23:32] installed gnome-python (2.26.1-1)
[2009-06-07 05:53] gnome-python (2.26.1-1) removed successfully!
[2009-06-07 12:35] gnome-python (2.26.1-1) installed successfully!

[2009-05-29 23:34] installed gconf (2.26.2-1)
[2009-05-31 15:29] Upgraded gconf successfully (2.26.2-1 -> 2.26.2-1)
[2009-06-14 00:23] Upgraded gconf successfully (2.26.2-1 -> 2.26.2-2)

[2009-05-29 23:34] installed desktop-file-utils (0.15-1)

[2009-05-29 23:35] installed python (2.6.2-1)
[2009-05-31 23:30] upgraded python (2.6.2-1 -> 2.6.2-1)
[2009-06-06 10:46] Upgraded python successfully (2.6.2-1 -> 2.6.2-2)
[2009-07-05 12:26] Upgraded python successfully (2.6.2-2 -> 2.6.2-3)
[2009-07-13 14:28] Upgraded python successfully (2.6.2-3 -> 2.6.2-4)
[2009-07-20 02:01] Upgraded python successfully (2.6.2-4 -> 2.6.2-5)
[2009-07-20 02:01] Upgraded python successfully ( -> 2.6.2-5)

======================================================================

[jeff@<localhost> ~]$ pacman -Qi gdesklets
Name : gdesklets
Version : 0.36.1-1
URL : http://gdesklets.de/
Licenses : GPL
Groups : None
Provides : None
Depends On : libgtop>=2.14.8-2 librsvg>=2.16.0 libgnomeui>=2.18.1-2
                 gnome-python>=2.18.0 gconf>=2.18.0.1-4 desktop-file-utils
Optional Deps : None
Required By : None
Conflicts With : None
Replaces : None
Installed Size : 7784.00 K
Packager : Eric Belanger <email address hidden>
Architecture : x86_64
Build Date : Sat 06 Dec ...

Revision history for this message
Joe Sapp (sappj) wrote :

Hrm... I'm now running 2.6.30-tuxonice-r5 and gDesklets still works as usual. I'm not sure what to think, except maybe sockets aren't enabled in your kernel (I don't know how you would connect to the internet in that case though).

Revision history for this message
jeff story (jeffstory) wrote :

I gave up on a getting gdesklets working on my system......

Today, gdesklets runs fine...I made no efforts to get it running, only changes are updates on packages.

Below are version numbers of related packages currently on my system.

kernel (2.6.30.6-1)

gdesklets (0.36.1-1)

python (2.6.3-2)

libgtop (2.26.1-1)
librsvg (2.26.0-1)
libgnomeui (2.24.1-1)
gnome-python (2.26.1-1)
gconf (2.26.2-3)
desktop-file-utils (0.15-1)

Revision history for this message
Joe Sapp (sappj) wrote :

Sorry we couldn't help you (and I'm sorry we didn't find the root cause of this issue). Thanks for letting us know it's resolved and thanks for your persistence.

Changed in gdesklets:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.