Re: [RFC weston 4/5] drm: Move backend to libweston

Quentin Glidic sardemff7+wayland at sardemff7.net
Sat Feb 13 19:56:18 UTC 2016


On 13/02/2016 11:22, Benoit Gschwind wrote:
 >
 > [snip]
 >
> Following a comment from Quentin Glidic on IRC, I read wrong the
> snprintf (I readed printf ... a shame, my apology). Which make the patch
> valid if output->base.name is not too long.

output->base.name is managed in the backend and is fixed-sized already.
The size I used is even way too large for the possible values here.

> But I keep the following:
>
>>
>> This case show that this approach is not very good, In that case the
>> developer must give a list of unbound outputs setup and key/value is not
>> well suited for that case. (there is some workaround, like using key
>> pattern).
>>
>> This case also leave me to add that section/key/value is not a good
>> choice and you should stick to key/value.
>>
>> I still prefer the opaque configuration structure with function to set
>> the structure content.

I am not sure how to understand that part (even with your precision on 
IRC) but I think it is relevant to remind something that I find really 
important (and not only for that specific comment):

We are designing the *backend* configuration API.
We agreed already that backends will be an internal implementation 
detail of libweston. As such, I (as a future libweston-based compositor 
writer) consider them as trusted, which means:
- They would not use getters to grab random parts of my configuration
- They should keep the options set “small” enough for end-users to write 
it in any text-based configuration format the compositor would like to 
use (Weston is currently using a KeyFile, which is a really common 
format and not really fitting for complex structures). I expect backends 
needing a really complex configuration to provide a GUI program, or use 
their own configuration file.
DRM is probably the most complex backend we will have for quite a long 
time (I consider any future “hardware-based” backend will have similar 
needs), and it fits well in the INI/KeyFile format.


In the current form, my patch has one little (IMO) 
non-backward-compatible change: it does not use a duplicated name 
"[output]" for the section with the "name=" key as the selector.
It is entirely doable if it is a requirement for this patch to be 
considered, but in this design, backends should use unique section 
names, since KeyFile parser (like GLib’s) can merge duplicate sections.


Cheers,

-- 

Quentin “Sardem FF7” Glidic


More information about the wayland-devel mailing list