hal is giving a lack of info with my ipod. hal-device | grep WriteIpodInfo outputs nothing, when it should be outputting something like ... org.freedesktop.Hal.Device.Volume.method_names = { 'Mount', 'Unmount', 'Eject', 'WriteIpodInfo' } (string list Also my ipod mounts fine under gnome.
Which version? emerge --info?
Oh my bad :P sys-apps/hal-0.5.7.1-r1 emerge --info Portage 2.1.1 (!/usr/portage/profiles/default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r3, 2.6.17.11 i686) ================================================================= Gentoo Base System version 1.12.5 Last Sync: Thu, 21 Sep 2006 21:50:01 +0000 ccache version 2.4 [enabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: [Not Present] dev-lang/python: 2.4.3-r3 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.7.9-r1, 1.9.6-r2 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium-m -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib/mozilla/defaults/pref /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=pentium-m -pipe" DISTDIR="/mnt/nfs_portage/distfiles" FEATURES="autoconfig ccache distlocks fixpackages metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.swin.edu.au/gentoo ftp://ftp.swin.edu.au/gentoo " LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" LINGUAS="en_US" MAKEOPTS="-j2" PKGDIR="/mnt/nfs_portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/mnt/nfs_portage" PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/gnome-experimental /usr/portage/local/layman/sunrise /usr/portage/local/layman/hanno-xgl /usr/portage/local/layman/gentopia" SYNC="rsync://rsync.au.gentoo.org/gentoo-portage" USE="x86 X a52 aac acl acpi alsa artworkextra avahi berkdb bitmap-fonts bzip2 cairo cddb cdr cli crypt cups curl daap dbus dlloader dmi dri dvd dvdr dvdread elibc_glibc encode ffmpeg firefox flac fortran gdbm gif glitz gnome gpm gstreamer gtk hal howl-compat imap input_devices_keyboard input_devices_mouse input_devices_synaptics ipod ipv6 isdnlog jpeg kernel_linux ldap libg++ libnotify libsexy linguas_en_US mad matrox mmx mono mp3 mp4 mpeg msn nautilus ncurses nfs nls nptl nptlonly nsplugin ntpl ntplonly ogg opengl openntpd pam pango pcre pdf perl png ppds pppd python quicktime readline reflection samba session spell spl sqlite sse sse2 ssl startup-notification svg symlink tcpd theora truetype truetype-fonts type1-fonts udev unicode userland_GNU video_cards_i810 vorbis win32codecs x264 xcomposite xml xorg xv xvid zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS Anything else ?
Reopen.
Well, I've the same issue on hal-0.5.7.1. Patrick, would you please tell me where you find these iPod specific information? What does this function do? Thanks. # emerge --info Gentoo Base System version 1.12.5 Portage 2.1.2_pre1-r1 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.4-r3, 2.6.18-suspend2 i686) ================================================================= System uname: 2.6.18-suspend2 i686 Mobile AMD Athlon(tm) XP 2600+ Last Sync: Sun, 24 Sep 2006 11:20:02 +0000 ccache version 2.4 [enabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.3-r1, 2.0.30 dev-lang/python: 2.4.3-r3 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -funroll-loops" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -funroll-loops" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://mirror.switch.ch/mirror/gentoo/ ftp://ftp.solnet.ch/mirror/Gentoo ftp://pandemonium.tiscali.de/pub/gentoo/ ftp://ftp.unina.it/pub/linux/distributions/gentoo" LANG="it_IT" LC_ALL="it_IT.utf8" LINGUAS="it en" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 3dnow 7zip X aac aalib acpi aim alsa apache2 audiofile berkdb bitmap-fonts bzip2 caps cdparanoia cdr cli crypt cups dba dbase dbus dga dio dlloader dri dts dvb dvd dvdr dvdread elibc_glibc emboss encode esd fam fbcon ffmpeg fftw firefox flac flatfile fortran ftp gcj gdbm geoip gif gnutls gpm gps gstreamer gtk hal iconv icq ieee1394 imagemagick imap imlib input_devices_keyboard input_devices_mouse input_devices_synaptics isdnlog jabber jack javascript jpeg jpeg2k kernel_linux lcms lesstif libcaca libg++ libgda linguas_en linguas_it mad matroska mbox md5sum mhash mikmod mime mmap mmx mng motif mp3 mpeg msn nas ncurses nis nls nptl nptlonly nsplugin odbc offensive ogg opengl oscar oss pam pcmcia pcre pdf perl php pic png posix postgres ppds pppd python qt3 qt4 quicktime readline reflection samba sdl session sharedmem sndfile soap sockets sox spell spl sse ssl svg sysvipc szip tcltk tcpd tetex theora threads tiff timidity truetype truetype-fonts type1-fonts udev unicode usb userland_GNU v4l vcd video_cards_fbdev video_cards_v4l video_cards_vesa video_cards_via vorbis win32codecs wmf wxwindows xinerama xml xml2 xmlrpc xorg xosd xpm xprint xsl xv xvid yahoo zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS
run 'hal-device | grep WriteIpodInfo' as any user, i tested on a ubuntu system i had my hands on today and it outputs the right info.
(In reply to comment #5) > run 'hal-device | grep WriteIpodInfo' as any user, i tested on a ubuntu system > i had my hands on today and it outputs the right info. Thanks for this, but I mean where you collected the info on what command to launch and/or what HAL WriteIpodInfo function does. Forgetted before, ivman mounts the iPod correctly. Thanks.
I got the infomation on this command from abock (lead banshee dev). The output is ment to give you the info on what your ipod can do, eg can you write to it, can you play music on it. This also is how the presence of an ipod is found out.
(In reply to comment #7) > This also is how the presence of an ipod is found > out. Well, I think this can be done also with hal-device | grep iPod Which is valid also in all hal versions. For the output of your command, I can found on `hal-device | less` this line org.freedesktop.Hal.Device.Volume.method_names = { 'Mount', 'Unmount', 'Eject' } (string list) Here (http://cia.navi.cx/stats/project/gnome/libipoddevice) seems that WriteIpodInfo is a HAL method to get extended infos on iPod, which is used also with libipoddevice. I tested libipoddevice with hal-0.5.7.1-r1 and extended information (at least, the ones specified at that URL) are available nonetheless. Thanks.
Is this a Mac iPod? (i.e. Never been in Windows or last upgraded with Mac?)
Well, no, my iPod is a Windows one, formatted with fat32: never been in Mac world. Here's a snapshot of output of `ipod--list` from libipoddevice: Path Info Device Path: /dev/sda2 Mount Point: /media/ipod Control Path: /media/ipod/iPod_Control/ HAL ID: /org/freedesktop/Hal/devices/volume_uuid_34C5_CFD0 Device Info Model Number: MA002 Device Model: Video (White) iPod Generation: Fifth (5) Adv. Capacity: 30 GB Is New: YES Writeable: YES Serial Number: <censored> Firmware Version: 6.1.2 Volume Info Volume Size: 29923568640 Volume Used: 12376468480 Available 17547100160 UUID: <censored> Label SYNTAXERROR User-Provided Info Device Name: (null) User Name: (null) Host Name: (null) Supported Artwork Formats Small Cover: 100x100 Large Cover: 200x200 Small Photo: 50x41 Large Photo: 130x88 Full iPod Screen Photo: 320x240 Full TV Screen Photo: 720x480
Well Aaron Bockover and I talked today. It turns out Banshee and the FDI file that libipoddevice installs depends on functionality that has been removed from HAL as of 0.5.7. Aaron and J Willcox's distro of choice is SuSE (of which they are employed by Novell), it turns out that Novell is patching the functionality back it. It has been stated on the mailing list and in HAL info that these settings are deprecated and will be removed from HAL mainline. However I disagree with them being removed because the settings are very useful. Never the less, the settings have been removed and Banshee and libipoddevice depend on removed and deprecated settings. Aaron believes these settings are a must and feels that distros should be patching them back in to provide them. However, HAL upstream says that each DE must provide it or a mounter or a policy manager. HAL upstream has written their own policy manager called PolicyKit. This software is very immature and not ready for distro inclusion by any means. No DE (Gnome or KDE) provide the settings and gnome-mount/g-v-m might possibly provide it in new versions or with patches (have not investigated) but ivman does not. The settings are still listed on the HAL spec as valid settings but they're optional but recommended and should be provided by the DE and mounter. Why? So the DE can have a clean and uniform interface for managing these devices. That is the reason straight from Redhat, the organization that removed the settings from HAL. Redhat themselves provides a nice interface for managing these settings, as they wrote custom software for this. So we're stuck in the situation where Redhat made a decision that they felt benefitted their distro and their product but would break every other distro and product out there. They felt this was a reasonable measure to take and took the action. However, this still leads us to the fact that Aaron and SuSE take the stance that this data is required even though it is optional. So basically Gentoo is stuck between two feuding corporations. Which side do we support and choose... That is the question. You will be happy to know that J Willcox provided Luis (metalgod) with a fixed up FDI for libipoddevice that HAL upstream looked over and said would work with the proper settings in HAL and not depend on optional or non-upstream settings. So this issue should be resolved for you shortly. However still.. who do we support.
So by patching hal we are supporting someone ? By patching hal we are supporting an open source project (banshee) and that is all. Until there is a better way i say we provide the users with the patch as its all about the users isnt it ?
By patching HAL we're encouraging Novell employees to not update their code to the proper checks. They've correct one spot that's the big show stopper but they don't want to go through the rest of their code for what they feel is only Gentoo.
Yet wont this effect all other distros other than redhat ?
(In reply to comment #14) > Yet wont this effect all other distros other than redhat ? Well, I think including in portage a piece of sw like Willcox's one, which can be installed by user (but can be a dependency of banshee, obviously), that is for provide the missing funcionality is a much more elegant solution: it provides optional functionality only to user who wants it. Unfortunately, I cannot work on the development of this sw, mainly because my knowledge is not enough.
(In reply to comment #15) > Well, I think including in portage a piece of sw like Willcox's one, which can > be installed by user (but can be a dependency of banshee, obviously), that is > for provide the missing funcionality is a much more elegant solution: it > provides optional functionality only to user who wants it. Thats interesting, but it would be hard to workout what packages other than banshee needed it, but its still a very good idea.
SuSE/SLED/Novell and Ubuntu have opt'd to patch. Mandriva chooses to ship with an older version. Debian has choosen an older version. Fedora has 95 opened bugs about HAL. fd.o has 30 opened bugs about HAL Novell doesn't seem to have an easy accessible bug tracker. Ubuntu has 53 open bugs about HAL. Mandriva has a bug tracker where? Almost all the issues are identical issues reported here. In fact the 95 opened Fedora bugs are all assigned to HAL maintainers since the HAL maintainers are all Redhat employees and all HAL packagers for RHEL & Fedora. Ubuntu has iPod related bugs there as well and they don't even ship/support Banshee. Banshee itself has 203 opened bugs with 9 directly related to this issue (just scrolling summaries) To even show how poorly they adhere to the specs. They got items added into HAL that make HAL identify the audio formats that your DAP device supports yet they do not use this information. They have it hard coded in the code for each device. Just a poor example but still. This isn't a "for the user" argument. Banshee is an experimental application with many outstanding issues. The fact that they can't adhere to a spec doesn't mean that a package that has a lot of reverse dependancies should get patched just to support 1 package that has never seen a stable release in Gentoo and has NOTHING depending on it (except it's own plugins package).
Emiliano: I think you mis-understood. J Willcox wrote libipoddevice. He's providing the HAL fdi spec file that's being appending to HAL the iPod info. This bug is technically bogus in being assigned to me or being against HAL since HAL provides NO iPod info. A completely seperately written fdi file which libipoddevice (which is part of the Banshee project) is providing. They fixed a bug in there software. They didn't provide some magic connector software that's making everything work and fixing things. They're fixing something they wrote that was not portable and made it portable.
(In reply to comment #18) > They're fixing something they wrote > that was not portable and made it portable. Sorry for misunderstanding; so, you are saying that libipoddevice (in a new version) will support FDI info without patching HAL or something. So, that's ok, all is going to solve, on this front. Sorry for bothering you too much and thanks for the great job. For me, it's ok to close this bug.
yes libipoddevice can be patched (i'll do it asap) without patching hal.
No. libipoddevice provides the FDI information. It's providing the WriteIpodInfo function. run the following: # equery files libipoddevice | grep fdi /usr/share/hal/fdi /usr/share/hal/fdi/policy /usr/share/hal/fdi/policy/20thirdparty /usr/share/hal/fdi/policy/20thirdparty/20-ipod-info.fdi Contents of this file are as follows: <?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="@info.parent:storage.vendor" contains="Apple"> <match key="@info.parent:storage.model" contains="iPod"> <match key="volume.policy.should_mount" bool="true"> <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">WriteIpodInfo</append> <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-ipod-info</append> </match> </match> </match> </device> </deviceinfo> See how WriteIpodInfo is nested inside volume.policy.should_mount? that's the issue at hand. WriteIpodInfo only gets created if HAL has volume.policy.should_mount, however since the spec says volume.policy.should_mount is optional and is provided by the DE/mounter application. The bug is not with HAL. However, when HAL was developing the spec they were providing a sample FDI file that would provide that info automatically without any extra work by anything (like the DE/mounter). HAL has been saying for a long time this info would go away and revert to being optional if the DE/mounter provided it. However Banshee was rewritten to depend on WriteIpodInfo. Banshee devs created libipoddevice which was dependant on this optional information to create WriteIpodInfo. The reason the Banshee devs don't see a problem is because their employeer kept the sample file in HAL. While Fedora/RHEL went the way of providing the data from the DE/mounter (like it should be). Now the issue still exists since HAL removed the file like they said they would (since HAL devs are Redhat/Fedora/RHEL devs it makes sense that they finally followed their deprecated notice when they introduced the proper support into their distro).
So we are still stuck with a broken hal for lots of apps on gentoo ? Why can we not just get the patch from novell/ubuntu/whoever and apply it till policykit is working and stable ?
i patched libipoddevice-0.5.0 to work with our hal. I'm not sure if gentopia herd wants to patch hal or not so this at least for libipoddevice should be fixed. Thanks and sorry for the delay but i've been without internet connection in the last week.
Do the work. Submit a patch.
Not directed at you, Luis.