pup-volume-monitor-0.1.15 and desktop-drive-icons-0.0.6

Core libraries and systems
Message
Author
User avatar
gray
Posts: 316
Joined: Fri 23 Feb 2007, 22:42
Location: Adelaide - South Australia

compile failed

#61 Post by gray »

Mavrothal,

Did you recompile Glib ? The glib with Precise is not compiled with gvfs support.

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#62 Post by akash_rawal »

mavrothal wrote:

Code: Select all

#dmesg
desktop_drive_i[5608]: segfault at 48 ip b65e2ea4 sp bff81dd0 error 6 in libpup-volume-monitor.so.0.0.0[b65df000+9000]
Maybe try deleting libpup-volume-monitor.so and libpup-volume-monitor.so.0 symlinks in /usr/lib/gio/modules/ ?

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#63 Post by mavrothal »

akash_rawal wrote:
mavrothal wrote:

Code: Select all

#dmesg
desktop_drive_i[5608]: segfault at 48 ip b65e2ea4 sp bff81dd0 error 6 in libpup-volume-monitor.so.0.0.0[b65df000+9000]
Maybe try deleting libpup-volume-monitor.so and libpup-volume-monitor.so.0 symlinks in /usr/lib/gio/modules/ ?
Yes. This solved this problem.
However, desktop_drive_icons does not work (see image). No errors anywhere. Any ideas?
Attachments
drive_icons.png
Desktop drive icons in Precise pup
(23.65 KiB) Downloaded 1631 times
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#64 Post by akash_rawal »

mavrothal wrote: Yes. This solved this problem.
However, desktop_drive_icons does not work (see image). No errors anywhere. Any ideas?
Looks like the volume monitor is not working.

Can you see drive icon(s) in file chooser dialogs? (e.g. see screenshot in first post)

If no what type of device is sda1?
What is the output of blkid with sda1 connected?

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#65 Post by mavrothal »

akash_rawal wrote:
mavrothal wrote: Yes. This solved this problem.
However, desktop_drive_icons does not work (see image). No errors anywhere. Any ideas?
Looks like the volume monitor is not working.

Can you see drive icon(s) in file chooser dialogs? (e.g. see screenshot in first post)

If no what type of device is sda1?
What is the output of blkid with sda1 connected?
The little square pointed with the red arrow in the picture above, is all I see.

Code: Select all

# blkid
/dev/loop1: UUID="0a260d59-65a1-48c0-8f70-19e4fd9edae2" TYPE="ext2"
/dev/sda1: UUID="ad9e0ce4-3466-4eba-9956-217aaf2cf870" TYPE="ext2"
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#66 Post by akash_rawal »

Updated to version 0.1.9

Changelog:
  • Disabled library versioning for GIO module, may fix 'two different plugins' error on precise puppy (thanks mavrothal)
  • Added support for extra debugging output by setting environment variable PUP_VOLUME_MONITOR_DEBUG. Currently it does almost nothing, in future this variable will make it print debugging info.
Last edited by akash_rawal on Fri 19 Oct 2012, 18:15, edited 1 time in total.

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#67 Post by akash_rawal »

mavrothal wrote: The little square pointed with the red arrow in the picture above, is all I see.

Code: Select all

# blkid
/dev/loop1: UUID="0a260d59-65a1-48c0-8f70-19e4fd9edae2" TYPE="ext2"
/dev/sda1: UUID="ad9e0ce4-3466-4eba-9956-217aaf2cf870" TYPE="ext2"
sda1 should have been detected.

Type pup-volume-monitor-admin -l in terminal and see whether sda1 is listed. If yes, surely the GIO module didn't load now. Try updating to latest version (before that uninstall previous version else you might run into the same 'two different plugins' problem again.) Or rename /usr/lib/gio/modules/libpup-volume-monitor.so.0.0.0 to libpup-volume-monitor.so, that may work.

If sda1 isn't listed, and sda1 is a removable drive, check presence of /etc/udev/rules.d/50-pup-volume-monitor.rules.

Else, this indicates some serious bug in pup-volume-monitor.

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#68 Post by mavrothal »

akash_rawal wrote: Else, this indicates some serious bug in pup-volume-monitor.
Tried 0.1.9 in Precise-5.3.95 (beta 7)
Still with problems.

Code: Select all

# desktop_drive_icons 
** Message: Config file not found

(desktop_drive_icons:17909): GLib-GObject-WARNING **: Two different plugins tried to register 'PupClientMonitor'.

(desktop_drive_icons:17909): GLib-GObject-WARNING **: Two different plugins tried to register 'PupClientDevice'.

(desktop_drive_icons:17909): GLib-GObject-WARNING **: Two different plugins tried to register 'PupVolumeMonitor'.

(desktop_drive_icons:17909): GLib-GIO-WARNING **: Tried to register an extension of the type (null) to extension point gio-volume-monitor. Expected type is GVolumeMonitor.

(desktop_drive_icons:17909): GLib-GObject-WARNING **: Two different plugins tried to register 'PupClientVolume'.

(desktop_drive_icons:17909): GLib-GObject-CRITICAL **: g_type_add_interface_dynamic: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(desktop_drive_icons:17909): GLib-GObject-WARNING **: Two different plugins tried to register 'PupMount'.

(desktop_drive_icons:17909): GLib-GObject-CRITICAL **: g_type_add_interface_dynamic: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(desktop_drive_icons:17909): GLib-GObject-WARNING **: Two different plugins tried to register 'PupClientDrive'.

(desktop_drive_icons:17909): GLib-GObject-CRITICAL **: g_type_add_interface_dynamic: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(desktop_drive_icons:17909): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed

(desktop_drive_icons:17909): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(desktop_drive_icons:17909): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
Segmentation fault

###### RENAMED /usr/lib/gio/modules/libpup-volume-monitor.so to libpup-volume-monitor.so.0.0.0 and run again ######

# desktop_drive_icons 
** Message: Config file not found

###### No errors BUT got just the same little dot and no drive icons as before with 0.1.8######


# pup-volume-monitor-admin -l 
Drives:
Device sdb:
	display_name=SanDisk Cruzer (sdb)
	icon_name=themed_icon|gnome-dev-removable-usb|drive-removable-media|gtk-harddisk|drive-harddisk|gnome-dev-harddisk	
	type=PupDrive	
	unix_dev=/dev/sdb
	model=Cruzer
	vendor=SanDisk
	props = 0 | PUP_DRIVE_USB | PUP_DRIVE_REMOVABLE | PUP_DRIVE_FLASH
Device sr0:
	display_name= Virtual DVD-ROM (sr0)
	icon_name=themed_icon|drive-optical	
	type=PupDrive	
	unix_dev=/dev/sr0
	model=Virtual DVD-ROM
	vendor=
	props = 0 | PUP_DRIVE_CAN_EJECT
Device sda:
	display_name=ATA Virtual  HDD [0] (sda)
	icon_name=themed_icon|harddrive|gtk-harddisk|drive-harddisk|gnome-dev-harddisk	
	type=PupDrive	
	unix_dev=/dev/sda
	model=Virtual  HDD [0]
	vendor=ATA
	props = 0

Volumes:
Device sda1:
	display_name=sda1
	icon_name=themed_icon|harddrive|gtk-harddisk|drive-harddisk|gnome-dev-harddisk	
	type=PupVolume	
	unix_dev=/dev/sda1
	label=(null)
	fstype=ext2
	uuid=ad9e0ce4-3466-4eba-9956-217aaf2cf870
	drv_sysname=sda
	mntpnt=/initrd/mnt/dev_save
	flags = 0 | PUP_VOLUME_MNTD_SYSTEM | PUP_VOLUME_IS_MOUNTABLE
Device sdb1:
	display_name=XOpup (sdb1)
	icon_name=themed_icon|gnome-dev-removable-usb|drive-removable-media|gtk-harddisk|drive-harddisk|gnome-dev-harddisk	
	type=PupVolume	
	unix_dev=/dev/sdb1
	label=XOpup
	fstype=ext3
	uuid=25055704-903d-4cb1-9c4a-74dbed3b6814
	drv_sysname=sdb
	mntpnt=(null)
	flags = 0 | PUP_VOLUME_IS_MOUNTABLE

What I think is that precise GIO has changes not compatible with pup-volume-monitor, or atleast how desktop-drive-icons understands its output.
Original in precise gio-2.0.pc has:

Code: Select all

Name: GIO
Description: glib I/O library
Version: 2.32.3
Requires: glib-2.0 gobject-2.0
Requires.private: gmodule-no-export-2.0
Libs: -L${libdir} -lgio-2.0 
Libs.private: -lz   -lresolv 
Cflags:
To compile monitor/icons I need to change it to

Code: Select all

Name: GIO
Description: glib I/O library
Version: 2.32.3
Requires: glib-2.0 gobject-2.0 gmodule-2.0
Requires.private: gmodule-no-export-2.0
Libs: -L${libdir} -lgio-2.0 -lX11
Libs.private: -lz   -lresolv 
Cflags:
Maybe there is a clue here?
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#69 Post by technosaurus »

IIRC one of the debian patches (maybe used by ubuntu too) removes an unneeded dependency on gmodule and thus libdl.so from libglib and libgio (it isn't really needed for gmodule unless gvfs or another loadable library is built in to gio and the patches ifdef a bunch of that), since some of puppy's libX11 also have the same unneeded dependency on libdl, that would explain why adding -lX11 would fix it, but my guess is that it really only needs -ldl and not -lX11 ... but explicitly link with gmodule which _should_ bring in -ldl on its own

its been a while since I looked at the source, so I may be way off track, but I seem to recall something loading as a module/plugin (which would indicate a dependency on gmodule)
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#70 Post by akash_rawal »

It appears like gio is loading same module twice.

No idea how it happens. I tried exploring glib 2.32.3 sources but still no luck.

I have asked on gtk-list, maybe someone there can help us.

The mail can be viewed here: https://mail.gnome.org/archives/gtk-lis ... 00040.html

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#71 Post by akash_rawal »

technosaurus wrote:IIRC one of the debian patches (maybe used by ubuntu too) removes an unneeded dependency on gmodule and thus libdl.so from libglib and libgio (it isn't really needed for gmodule unless gvfs or another loadable library is built in to gio and the patches ifdef a bunch of that), since some of puppy's libX11 also have the same unneeded dependency on libdl, that would explain why adding -lX11 would fix it, but my guess is that it really only needs -ldl and not -lX11 ... but explicitly link with gmodule which _should_ bring in -ldl on its own

its been a while since I looked at the source, so I may be way off track, but I seem to recall something loading as a module/plugin (which would indicate a dependency on gmodule)
But there are many programs that use gmodule, right in puppy.

If it was possible to remove gmodule at all, then that should break many apps. gtk uses gmodule to load its theme engines. There are many other programs using gmodule to provide plugin support.

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#72 Post by akash_rawal »

Just finished downloading precise, and I can now reproduce all precise-related problems.

I have confirmed GIO is loading same module twice, and it's a glib bug.

And it's affecting other distros using gvfs too. See here and here.

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#73 Post by akash_rawal »

Updated to version 0.1.10

Changelog:
  • Force add gmodule as a dependency, fixes compile-time issues in precise puppy.

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#74 Post by akash_rawal »

akash_rawal wrote: I have confirmed GIO is loading same module twice, and it's a glib bug.
On examining stack carefully I caught GIO calling function which it isn't programmed to do in the source code.

Gray and technosaurus, you were right. glib that comes with precise isn't original glib-2.32.3, it's a modified glib-2.32.3 that can be found in ubuntu precise-updates suite. And that contains this bug.

I compiled glib, but with errors which I suppressed using -i option to make. And finally pup-volume-monitor works in precise :)
Image

I have made a pet, which isn't perfect due to errors, but it's good enough to make pup-volume-monitor work.

http://dl.dropbox.com/u/58347439/protec ... 0-i686.pet

Edit: I managed to compile glib again, this time without errors.
http://dl.dropbox.com/u/58347439/protec ... 0-i686.pet

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#75 Post by mavrothal »

akash_rawal wrote:Updated to version 0.1.10

Changelog:
  • Force add gmodule as a dependency, fixes compile-time issues in precise puppy.
Source?
The one on third post still has 0.1.9
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#76 Post by akash_rawal »

I forgot :oops:

I've now updated link on third post.

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#77 Post by mavrothal »

I finally got around to compile and install pup-volume-monitor-0.1.10 and desktop-drive-icons-0.0.1 in precise 5.4.1 after I installed your glib-2.32.3-patched-precise-i686.pet.
Compiled fine though desktop-drive-icons-0.0.1 still needs "LIBS=-lX11 GTK2_LIBS=$LIBS LDFLAGS=-L/usr/lib ./configure" to compile.

However, I have a problem thou I do not know which of the 3 (glib, volume-monitor, drive-icons) generates it.
When I unmount a removable drive (by clicking the icon), the window does not close but just empties (from the file/folder icons). On consecutive mounts of the drive, it mount OK but the window that opens in blank.

Removing the drive and inserting a different one that has the same dev name but different volume name behaves OK the first time it mounts. Then blank.
If you restart the X server is OK again the first time.

I suspect is the drive-icons app and its interaction with ROX, but I wouldn't know. If it is and you get around to look at it, you may also want provide the option *not* to move the position of the drives when one with a long (3-4 lines) name is inserted or just limit it to 2 lines (and truncate after 6-7 letters)
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

akash_rawal
Posts: 229
Joined: Wed 25 Aug 2010, 15:38
Location: ISM Dhanbad, Jharkhand, India

#78 Post by akash_rawal »

I have moved desktop-drive icons here and made requested changes.

desktop-drive-icons updated to 0.0.2
Changelog:
  • Added post unmount command. By default it closes the open rox-filer window. (thanks mavrothal)
  • It is now possible to set maximum length of a drive label displayed. (thanks mavrothal)

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

Precise pet

#79 Post by mavrothal »

Akash,
Desktop-drive-icons-0.0.2 works fine in precise if the proper glib is install. :D
So I made a pet for pup-volume-monitor/desktop-drive-icons for Puppy Precise 5.4/5,4,1.
It requires either BK's z_glib_fix-2.32.3-orig-precise540-i686.pet or your glib-2.32.3-patched-precise-i686.pet to work properly.

Edit Version 0.1.10-1has different defaults and a better pinstall script
Version 0.1.10-2 corrects a typo in pinstall (thanks peebee)
Attachments
pup_volume_monitor_precise-0.1.10-2.pet
pup-volume-monitor/desktop-drive-icons combo for Puppy Precise 5.4/5.5
(161.65 KiB) Downloaded 942 times
Last edited by mavrothal on Mon 01 Apr 2013, 15:05, edited 1 time in total.
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#80 Post by mavrothal »

Hi again,
I noticed that even when the max characters option is activated, unless you define enough only for one line (ie 6) the position of the drives still moves up and down when a device with more characters than the existing devices is inserted or removed.
I guess what it needs is to define the original position of the widget according to the max characters and then (with another option box) either expand the widget downwards or do not expand it at all.
To have a sensible initial position you may allow for 2 lines as a default and provide the full name upon hovering.

Tried to see into icon.c and icon-view.c (so I will not only ask :oops: ) but my C is less than rudimentary.
(BTW I find that developing in git/cvs is very educational for others since it allows them to see the logic and the code changes. Eventually this may pay off :wink: )


Latter (after some more use)
The option to hide specific volumes would be very handy. Your windows (or macintosh) volume for example or your backup drive.
So if you go for a v0.0.3 :wink: Though is probably better implemented in pup-volume-monitor so certain drive/volumes will not show in other desktop managers of save dialog windows.
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

Post Reply