Hi Michael, I've put together a patch that gets hald working on Jessie. "udevadm info -r" is no longer supported in udev >= 186 because the /dev directory is hard-coded to /dev from that version onwards. The patch calls udevadm --version to check for this.
I also had to update debian/hal.dirs to create
/etc/hal/fdi/{preprobe,information} to get hald to start out of the box
(plus I installed the hal-info package from wheezy).
With these packages installed Flash DRM video plays successfully in
Iceweasel via flashplugin-nonfree. This can be tested via an Adobe test
page (instructions on
https://helpx.adobe.com/flash-player/kb/protected-video-content-play.html)
I don't know if it's feasible to add the hal packages back into Jessie for
this use-case (I suspect everybody is happy to be rid of it); is it
possible to deploy these to some sort of backports / contrib / ugly
repository?
Now that I've got it running (and my family can watch on demand TV again
;-) I might have a look if I can trace how the flash plugin is interacting
with HAL and if it's possible to stub out the relevant calls somehow via
either a fake hal service or client library. I've CCed in Bart Martens in
case he has any thoughts on this issue? It would be nice if DRM video in
flashplugin-nonfree would "just work" for normal users without having to
install a custom HAL build by hand.
Cheers, Karsten
On Wed, Jul 15, 2015 at 1:43 AM, Karsten Sperling <[email protected]>
wrote:
> I don't know what exactly it's actually used for, but it's referenced here
> for example:
>
> https://forums.adobe.com/thread/1039743?start=0&tstart=0
>
> Essentially, NPAPI Flash will remain at version 11.x with security updates
> only, so they won't update it to remove the HAL dependency.
> Later versions are PPAPI only and shipped with Chrome only.
>
> I might try building HAL from source and see if I can work around that
> udevadm issue.
>
>
> On Wed, Jul 15, 2015 at 1:12 AM, Michael Biebl <[email protected]> wrote:
>
>> Am 14.07.2015 um 15:10 schrieb Karsten Sperling:
>> > Thanks for the quick reply. That's unfortunate, as HAL is still
>> required by
>> > the Adobe Flash plugin for playing DRM-protected video.
>>
>> Wow, why the heck do they need hal for that which has been removed from
>> basically every distro out there?
>>
>>
>> --
>> Why is it that all of the instruments seeking intelligent life in the
>> universe are pointed away from Earth?
>>
>>
>
Description: Handle newer versions of udevadm where the /dev root is hard-coded. Author: Karsten Sperling <[email protected]> --- a/hald/linux/coldplug.c +++ b/hald/linux/coldplug.c @@ -155,33 +155,56 @@ hal_util_init_sysfs_to_udev_map (void) { char *udevdb_export_argv[] = { "/sbin/udevadm", "info", "-e", NULL }; + char *udevversion_argv[] = { "/sbin/udevadm", "--version", NULL }; char *udevroot_argv[] = { "/sbin/udevadm", "info", "-r", NULL }; int udevinfo_exitcode; + int udevadm_version; UdevInfo *info = NULL; char *p; int len; sysfs_to_udev_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, udev_info_free); - /* get udevroot */ - if (g_spawn_sync ("/", udevroot_argv, NULL, G_SPAWN_LEAVE_DESCRIPTORS_OPEN, NULL, NULL, + /* get udevadm version */ + if (g_spawn_sync ("/", udevversion_argv, NULL, G_SPAWN_LEAVE_DESCRIPTORS_OPEN, NULL, NULL, &udevinfo_stdout, NULL, &udevinfo_exitcode, NULL) != TRUE) { - HAL_ERROR (("Couldn't invoke %s", udevroot_argv[0])); + HAL_ERROR (("Couldn't invoke %s", udevversion_argv[0])); goto error; } if (udevinfo_exitcode != 0) { - HAL_ERROR (("%s returned %d", udevroot_argv[0], udevinfo_exitcode)); + HAL_ERROR (("%s returned %d", udevversion_argv[0], udevinfo_exitcode)); goto error; } - - g_strlcpy(dev_root, udevinfo_stdout, sizeof(dev_root)); - p = strchr(dev_root, '\n'); - if (p != NULL) - p[0] = '\0'; + udevadm_version = (int) g_ascii_strtoull(udevinfo_stdout, NULL, 10); g_free(udevinfo_stdout); + HAL_INFO (("udevadm version is %d", udevadm_version)); + + /* get udevroot. hard-coded to /dev in udev >= 186 */ + if (udevadm_version >= 186) { + g_strlcpy(dev_root, "/dev", sizeof(dev_root)); + } else { + if (g_spawn_sync ("/", udevroot_argv, NULL, G_SPAWN_LEAVE_DESCRIPTORS_OPEN, NULL, NULL, + &udevinfo_stdout, + NULL, + &udevinfo_exitcode, + NULL) != TRUE) { + HAL_ERROR (("Couldn't invoke %s", udevroot_argv[0])); + goto error; + } + if (udevinfo_exitcode != 0) { + HAL_ERROR (("%s returned %d", udevroot_argv[0], udevinfo_exitcode)); + goto error; + } + + g_strlcpy(dev_root, udevinfo_stdout, sizeof(dev_root)); + p = strchr(dev_root, '\n'); + if (p != NULL) + p[0] = '\0'; + g_free(udevinfo_stdout); + } HAL_INFO (("dev_root is %s", dev_root)); /* get udevdb export */
hal.dirs
Description: Binary data
_______________________________________________ Pkg-utopia-maintainers mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-utopia-maintainers
