blob: 01c120abc70e419a27959b84b99105901bc520fa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
Ongoing items that always need work
-----------------------------------
- Valgrind once in a while to check / fix memory leaks / memory corruption
- Keep the spec in sync with the code
- Write / check / update docs of exported libraries
- Audit all code and drop privileges in helpers where appropriate
Items specifically planned for 0.5.8
------------------------------------
- Export hal user and group in pkg-config file
- Provide a libhal_device_set_all_properties plus functions to construct
a LibHalPropertySet
- Require that addons poke hald before the device is visible - this is for
addons that also probes the hardware and provide the initial state..
- Move /usr/libexec to /usr/lib/hal/ - drop /usr/lib/hal/scripts -
use /usr/lib/hal/methods
- Think hard about the interfaces HAL exports to addons as out-of-tree
code like NUT now starts to use it. Includes interface stability thoughts
and what we guarantee and what we don't. Might have license implications
too.
- Make Mount() support option 'remount' in a sane way
- Finalize the work on org.freedesktop.Hal.Device.VideoAdapterPM
including the XML file format matching most adapters
Other items
-----------
- Provide mechanism for polling storage devices we can't poll regulary
e.g. PC floppy drives and Zip drives. When that it is, actually go back
to provide children for volumes detected like we did in HAL 0.4.x
- Provide mechanism for tuning the readahead size. For example, a DVD
player application (such as GNOME's Totem) might want to read ahead
several hundreds of megabyte so the drive only needs to spin up every
e.g. 20 minutes while watching a DVD movie. This enables the kernel
driver to put the drive in a low-power mode to get substantially better
battery life.
- Provide mechanism for making an application inhibit polling of a drive.
This is useful combined with the TODO right above. It will probably mean
that the eject button on the drive is rendered useless but that is
justified by the DVD player application displays a soft button for ejecting
the media.
- Use udev data instead of probing (whenever possible)
- Performance! Profile and optimize! Too big of a task to describe in
one bullet. Feel free to provide patches to this file to break it up
after some analysis.
- It would be nice if method calls could return string, bool int etc.
Perhaps use dbus-send style, e.g. int32:<number>' or 'string:the_string'
or 'bool:true'. Granted, this is already possible today through addons
so maybe not important.
- Finish up and merge mjg59's Bluetooth code
- Configuration of serial and other legacy ports
- Device firmware. It would be nice to export a property and some
DeviceCondition when a device asked for firmware that was missing
and is such in a state where it cannot operate. Might need kernel
work.
- Devices with device files should export an interface with for
requesting / dropping access to the device, e.g.
RequestAccess()
GiveupAccess() (better naming welcome)
which will change device file ownership or add/remove an ACL.
- Take a few days out of the calender and give some love to the spec
- Export ink levels for printers
https://bugs.freedesktop.org/show_bug.cgi?id=2295
- LVM support
https://bugs.freedesktop.org/show_bug.cgi?id=6427
- Signal when a USB device doesn't have enough power
https://bugs.freedesktop.org/show_bug.cgi?id=4452
- Format volume methods
- Disk partitioning methods
- File system label renaming
- CPU frequency stuff from hmacht
Items that might be interesting or maybe not:
---------------------------------------------
- Port hal daemon core to use dbus-glib bindings? I'm not convinced this
will buy us much, the core code is already done, debugged and working
plus dbus-glib bindings only support one interface per proxy...
External projects:
------------------
- We need to finish PolicyKit, at least get 0.2 out and bring it to
1.0 rather fast (ideally before Spring 2007).
- D-BUS needs to go to 1.0
- We need secure ways to track user sessions and from what user
session a D-BUS call into HAL originates from. We also want
to know when a user session is inactive (e.g. fast user
switching). This is Very Important, without this we cannot
- clean up what the user did by invoking methods on HAL
- e.g. unmount storage devices
- adjust ACL's cf. RequestAccess() and GiveupAccess() above
- other things
- refuse service to inactive sessions
- e.g. refuse Suspend() or Hibernate() from the inactive
user when another user is active on the same console from
e.g. fast-user-switching
- pm-utils guys need to release their stuff - when a working
release is out give a grace period of a number of months for
distros to switch to pm-utils before ripping out the callouts
to distro specific scripts.
- Runtime power management in the kernel. This is still ongoing
and AFAIK there is no concrete idea about the user space interface.
Once the user space interface is set in stone we can easily
export this via HAL for selective suspend and/or tuning of knobs.
|