diff options
author | Koop Mast <kwm@FreeBSD.org> | 2012-09-29 18:17:59 +0000 |
---|---|---|
committer | Koop Mast <kwm@FreeBSD.org> | 2012-09-29 18:17:59 +0000 |
commit | 0175115cb7ff7fe7bf1589313f5a17f3bb6791d1 (patch) | |
tree | 2625d7ccbcd2b1bceb473577f2b4d4ed52688ef1 /sysutils/hal | |
parent | Update to 1.7.5. (diff) |
Make sure /var is populated correctly before hal is started, like dbus does
already in its rc.d script. [1]
Don't list entries twice, set some more details about storage devices like
the linux backend does. [2]
PR: ports/171568 [1]
PR: ports/171727 [2]
Submitted by: Norbert Koch <nkoch@demig.de> [1], avilla@ [2]
Reviewed by: marcus@
Notes
Notes:
svn path=/head/; revision=305045
Diffstat (limited to 'sysutils/hal')
-rw-r--r-- | sysutils/hal/Makefile | 2 | ||||
-rw-r--r-- | sysutils/hal/files/hald.in | 41 | ||||
-rw-r--r-- | sysutils/hal/files/patch-hald_freebsd_hf-drm.c | 15 | ||||
-rw-r--r-- | sysutils/hal/files/patch-hald_freebsd_probing_probe-storage.c | 39 |
4 files changed, 96 insertions, 1 deletions
diff --git a/sysutils/hal/Makefile b/sysutils/hal/Makefile index 8e34769cbdb0..bf6c84955b8c 100644 --- a/sysutils/hal/Makefile +++ b/sysutils/hal/Makefile @@ -8,7 +8,7 @@ PORTNAME= hal DISTVERSION= 0.5.14 -PORTREVISION= 19 +PORTREVISION= 20 CATEGORIES= sysutils MASTER_SITES= http://hal.freedesktop.org/releases/ diff --git a/sysutils/hal/files/hald.in b/sysutils/hal/files/hald.in index 0539fef934f4..f07df2c61924 100644 --- a/sysutils/hal/files/hald.in +++ b/sysutils/hal/files/hald.in @@ -41,6 +41,43 @@ local_force_depend() return 0 } +init_var_policykit() +{ + local USER=polkit + local GROUP=${USER} + local PREFIX=/usr/local + + /usr/bin/install -d -o root -m 0770 -g ${GROUP} /var/run/PolicyKit + /usr/bin/install -d -o root -m 0770 -g ${GROUP} /var/lib/PolicyKit + /usr/bin/install -d -o ${USER} -m 0755 -g wheel /var/lib/PolicyKit-public + /bin/mkdir -p /var/lib/misc + /usr/bin/touch -f /var/lib/misc/PolicyKit.reload + /usr/sbin/chown ${USER}:${GROUP} /var/lib/misc/PolicyKit.reload + /bin/chmod 0664 /var/lib/misc/PolicyKit.reload +} + +init_var_polkit() +{ + mkdir -p /var/lib/polkit-1/localauthority + for i in 10-vendor.d 20-org.d 30-site.d 50-local.d 90-mandatory.d + do + mkdir -p /var/lib/polkit-1/localauthority/${i} + done + chmod 0700 /var/lib/polkit-1 +} + +init_var_hal() +{ + local USER=haldaemon + local GROUP=${USER} + + /usr/bin/install -d -o ${USER} -g ${GROUP} /var/run/hald + /usr/bin/install -d -o ${USER} -g ${GROUP} /var/cache/hald + /usr/bin/install -d -o ${USER} -g ${GROUP} /var/lib/hal + /usr/local/bin/polkit-auth --user ${USER} --grant \ + org.freedesktop.policykit.read 1> /dev/null 2>&1 +} + hald_precmd() { if ! checkyesno dbus_enable @@ -48,6 +85,10 @@ hald_precmd() local_force_depend dbus || return 1 fi + init_var_policykit + init_var_polkit + init_var_hal + chmod 0755 /var/cache mkdir -p $(dirname $pidfile) diff --git a/sysutils/hal/files/patch-hald_freebsd_hf-drm.c b/sysutils/hal/files/patch-hald_freebsd_hf-drm.c new file mode 100644 index 000000000000..dbde83cceef1 --- /dev/null +++ b/sysutils/hal/files/patch-hald_freebsd_hf-drm.c @@ -0,0 +1,15 @@ +--- hald/freebsd/hf-drm.c.orig 2008-08-10 15:50:10.000000000 +0200 ++++ hald/freebsd/hf-drm.c 2012-09-27 12:04:28.000000000 +0200 +@@ -234,6 +234,12 @@ + { + HalDevice *parent = HAL_DEVICE(l->data); + ++ if (hf_device_store_match(hald_get_gdl(), ++ "info.parent", HAL_PROPERTY_TYPE_STRING, hal_device_get_udi(parent), ++ "info.subsystem", HAL_PROPERTY_TYPE_STRING, "drm", ++ NULL)) ++ continue; ++ + if (! hal_device_property_get_bool(parent, "info.ignore")) + { + Card *card; diff --git a/sysutils/hal/files/patch-hald_freebsd_probing_probe-storage.c b/sysutils/hal/files/patch-hald_freebsd_probing_probe-storage.c new file mode 100644 index 000000000000..ae1ac842700d --- /dev/null +++ b/sysutils/hal/files/patch-hald_freebsd_probing_probe-storage.c @@ -0,0 +1,39 @@ +--- hald/freebsd/probing/probe-storage.c.orig 2009-08-24 14:42:29.000000000 +0200 ++++ hald/freebsd/probing/probe-storage.c 2012-09-27 12:03:02.000000000 +0200 +@@ -236,7 +236,27 @@ + + hfp_cdrom_free(cdrom); + } +- else if (! has_children) /* by definition, if it has children it has no fs */ ++ else ++ { ++ int fd; ++ off_t size; ++ ++ fd = open(device_file, O_RDONLY | O_NONBLOCK); ++ if (fd > -1) ++ { ++ libhal_device_set_property_bool(hfp_ctx, hfp_udi, "storage.removable.media_available", TRUE, &hfp_error); ++ if (ioctl (fd, DIOCGMEDIASIZE, &size) == 0) ++ { ++ libhal_device_set_property_uint64(hfp_ctx, hfp_udi, "storage.removable.media_size", size, &hfp_error); ++ } ++ close(fd); ++ } ++ else ++ { ++ libhal_device_set_property_bool(hfp_ctx, hfp_udi, "storage.removable.media_available", FALSE, &hfp_error); ++ } ++ ++ if (! has_children) /* by definition, if it has children it has no fs */ + { + struct volume_id *vid; + +@@ -249,6 +269,7 @@ + + volume_id_close(vid); + } ++ } + + end: + return ret; |