After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 612616 - Needs udev backend for HAL deprecation
Needs udev backend for HAL deprecation
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: general
git master
Other Linux
: Normal major
: 1.x
Assigned To: Alex Launi
Banshee Maintainers
Depends on:
Blocks: 583933 593938
 
 
Reported: 2010-03-11 18:31 UTC by Alex Launi
Modified: 2010-08-25 19:35 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Alex Launi 2010-03-11 18:31:42 UTC
HAL has been deprecated, so a hardware backend for udev needs to be created so that banshee can continue to be a great player in GNOME 3
Comment 1 Bertrand Lorentz 2010-03-11 19:39:39 UTC
Just to make things clear : the HAL deprecation doesn't have anything to do with the library deprecation/clean-up for GNOME 3.

But of course Banshee (is and) must continue to be a great player, in GNOME 3 and elsewhere ! ;)
Comment 2 Alex Launi 2010-03-15 04:58:18 UTC
Status update: udev has been wrapped- https://launchpad.net/gudev-sharp
Will start real work now :)
Comment 3 Alex Launi 2010-03-16 22:31:40 UTC
Progress can be followed at http://gitorious.org/~lamalex/banshee/lamalex-udev
Comment 4 Alex Launi 2010-03-17 04:29:12 UTC
If anyone wants to help, the afore mentioned branch is now in the build system and runs without exceptions (here). There are some unimplemented parts which should mostly be marked by a TODO in the source. Any help will be appreciated!
Comment 5 Alex Launi 2010-03-27 05:41:01 UTC
http://gitorious.org/~lamalex/banshee/lamalex-udev now has working audio cds using gio/udev. DAP support is in progress. If you're curious, PLEASE feel free to clone/hack.
Comment 6 Alex Launi 2010-07-03 02:47:53 UTC
And we're done! Kind of! Maybe! Our code needs tested. The git repo has moved to http://gitorious.org/+banshee-hw/banshee/banshee-iphone
It requires gudev-sharp, which is hosted in bzr at launchpad.net/gudev-sharp (lp:gudev-sharp), libgpod-sharp from git://gitorious.org/~npmccallum/libgpod/npmccallum-sandbox.git which is still waiting merge into the real libgpod-sharp, gkeyfile-sharp http://gitorious.org/gkeyfile-sharp/gkeyfile-sharp, and the other deps that go with the banshee gio backend.

The autofoo is not rigged up to run installed, so it must be ran via make run. I think that's all. Happy testing!
Comment 7 Bertrand Lorentz 2010-07-04 10:39:09 UTC
Here are a few comments/questions :

1/ Dependencies
There's two types of managed dependencies :
 a/ the assembly is in the GAC, we just have a reference to it. Example : gtk-sharp
 b/ the assembly is not in the GAC, we make a copy into the banshee dir during installation. Example : ipod-sharp

For libgpod it's b/, which is OK.
For gio-sharp, gudev-sharp and gkeyfile-sharp, they all install themselves in the GAC. Is that OK ?
See : http://www.mono-project.com/Assemblies_and_the_GAC#What_Should_Be_Installed_to_the_GAC

Once this is settled, I'll be happy to submit patches to the relevant build system(s)


2/ In the banshee-iphone branch, the Banshee.Gio backend is now both a IOProvider and a HardwareManager.
Are there any inter-dependencies between those 2 parts, other than sharing some dependencies ?

3/ I'm a bit fuzzy about which bit in the Dap stuff, if any, need the bits in the Gio backend to work properly.
Comment 8 Alex Launi 2010-07-05 03:55:19 UTC
gudev-sharp and gkeyfile-sharp should both be api-stable. I don't see the api for GKeyFile or Gudev changing. Ditto for gio but I have nothing to do with the administration of gio-sharp. If you think it'd be better to not, that's fine. I can change them to not install in the gac.

2. No, just deps.

3. I'm not sure what you're asking. I don't think that anything in Dap should be dependent on Gio.
Comment 9 Alan McGovern 2010-07-05 21:58:30 UTC
3) I'm a bit fuzzy about which bit in the Dap stuff, if any, need the bits in
the Gio backend to work properly.

If i understand you correctly, the answer is that MTP support will work better with two properties which I'm pulling from udev (usb bus number and usb device number). They are exposed to banshee via the existing IUsbDevice interface so as long as any hardware backend (i.e. HAL) can supply those properties, MTP detection and mounting will work great.

iPhones rely on the udev/gio backend to be hotpluggable. The actual requirement for libgpod to work is just to have the mount point for the iDevice. This is what gio gives us. The libgpod plugin *could* work with a plain HAL backend if we were ok with getting users to manually browse to their iphone or by monitoring the ~/.gvfs folder for changes and checking new directories to see if they're iPhone mounts. Again, this is work which is unnecessary if banshee is ok with ditching HAL.
Comment 10 Alex Launi 2010-07-06 15:20:32 UTC
Alan, I've already updated the HAL backend to supply those properties.
Comment 11 Martin Pitt 2010-08-19 21:43:41 UTC
Looks like http://git.gnome.org/browse/banshee/commit/?id=a3dc5844e08c9e010e8ddfc9004d2fe1a215496f gets a long way to getting this bug "fixed"?

Great work!
Comment 12 Bertrand Lorentz 2010-08-20 13:11:32 UTC
Yep, the udev/gio backend was merged into git master and should now be usable.
You can enable it with the follwing configure options : --disable-hal --enable-gio-hardware

Regressions or any other issue should go into their own bug.

Thanks Alex and Alan !
Comment 13 Andrés G. Aragoneses (IRC: knocte) 2010-08-25 18:42:07 UTC
(In reply to comment #12)
> You can enable it with the follwing configure options : --disable-hal

Can't this be detected by the configure script?
Comment 14 Bertrand Lorentz 2010-08-25 19:35:38 UTC
(In reply to comment #13)
> (In reply to comment #12)
> > You can enable it with the follwing configure options : --disable-hal
> > --enable-gio-hardware
> Can't this be detected by the configure script?

It is, I forgot to mention it : the new GIO hardware support will be enabled automatically if all the dependencies are there.
The "--disable-hal" is just there to make sure you will really be using it and not falling back to HAL.