[PATCH weston 00/14] IVI Layout API Cleanup

Pekka Paalanen ppaalanen at gmail.com
Mon Feb 29 15:15:03 UTC 2016


On Mon, 29 Feb 2016 08:04:05 +0000
"Ucan, Emre (ADITG/SW1)" <eucan at de.adit-jv.com> wrote:

> Hello Bryce,
> 
> As far as I know, there are two controller plugins which are using
> ivi layout interface. 1. HMI controller
> 	2. IVI controller in Genivi Wayland IVI Extension
> 
> I updated the hmi controller for these changes, and ivi controller
> does not use these APIs.
> 
> Furthermore, IVI Layout APIs are internal. It is quite often that
> weston plugins gets break after a major release because of either API
> changes or data struct changes.

Hi,

Weston plugins can break on every minor bump, yes, but here we are
talking about controller plugins which might follow different rules set
by the ivi_layout ABI.

However, as long as controller plugins also use Weston ABI in addition
to ivi_layout ABI, they are susceptible to break as often as Weston
plugins.

> For example, we have an input plugin in Wayland IVI Extension which
> replaces the default grab interfaces. The plugin does not compile
> with 1.10 weston because weston_pointer data struct is changed after
> 1.9.

I presume that is a Weston plugin.

> > -----Original Message-----
> > From: Bryce Harrington [mailto:bryce at osg.samsung.com]
> > Sent: Freitag, 26. Februar 2016 19:03
> > To: Ucan, Emre (ADITG/SW1)
> > Cc: wayland-devel at lists.freedesktop.org
> > Subject: Re: [PATCH weston 00/14] IVI Layout API Cleanup
> > 
> > On Fri, Feb 26, 2016 at 03:57:56PM +0000, Ucan, Emre (ADITG/SW1)
> > wrote:  
> > > I removed the get APIs, because the same information can be get
> > > from ivi_layout_get_properties_of_surface/layer APIs. Therefore,
> > > these APIs are redundant.  
> > 
> > Looks like a good cleanup, but do we have any concerns about API
> > stability in dropping these getter/setters?

Even though I called for it several times, it seems the ABI stability
guarantees were never documented anywhere, so I suppose the standard
Weston plugin rules apply. At least on a quick glance I cannot find any
comment to that effect.

The controller plugin API does however use the size of struct
ivi_layout_interface to detect API compatiblity. Now that the struct
grows smaller, this check does not work, yet the ABI does break, and
requires at least rebuilding all controller plugins. If we want to
maintain the ABI, the fields in struct ivi_layout_interface should be
set to NULL or a generic function that complains and aborts, not
removed.

Natsume-san, do you have an opinion?

From my behalf this is a welcome simplification, so consider the whole
series
Acked-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
anyway.


Thanks,
pq

> > > Furthermore, I removed *_set_position/dimension APIs, because
> > > position and dimension can be set by
> > > ivi_layout_surface/layer_set_destination_rectangle APIs.
> > >
> > > I adjusted ivi-layout-transition.c, ivi shell test code and
> > > hmi-controller.c for these changes.
> > >
> > > Emre Ucan (14):
> > >   ivi-shell: remove ivi_layout_surface_get_visibility API
> > >   ivi-shell: remove ivi_layout_layer_get_visibility API
> > >   ivi-shell: remove ivi_layout_surface_get_opacity API
> > >   ivi-shell: remove ivi_layout_layer_get_opacity API
> > >   ivi-shell: remove ivi_layout_surface_get_position API
> > >   ivi-shell: remove ivi_layout_layer_get_position API
> > >   ivi-shell: remove ivi_layout_surface_get_dimension API
> > >   ivi-shell: remove ivi_layout_layer_get_dimension API
> > >   ivi-shell: remove ivi_layout_surface_get_orientation API
> > >   ivi-shell: remove ivi_layout_layer_get_orientation API
> > >   ivi-shell: remove ivi_layout_surface_set_position API
> > >   ivi-shell: remove ivi_layout_layer_set_position API
> > >   ivi-shell: remove ivi_layout_surface_set_dimension API
> > >   ivi-shell: remove ivi_layout_layer_set_dimension API
> > >
> > >  ivi-shell/hmi-controller.c        |   17 ++-
> > >  ivi-shell/ivi-layout-export.h     |  127 --------------------
> > >  ivi-shell/ivi-layout-private.h    |   17 +--
> > >  ivi-shell/ivi-layout-transition.c |   19 ++-
> > >  ivi-shell/ivi-layout.c            |  237
> > > +------------------------------------
> > > ivi-shell/ivi-shell.c             |    7 +-
> > > tests/ivi_layout-internal-test.c  |  220
> > > +++++-----------------------------
> > > tests/ivi_layout-test-plugin.c    |  126 +++++--------------- 8
> > > files changed, 85 insertions(+), 685 deletions(-)
> > >
> > > --
> > > 1.7.9.5
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 811 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20160229/dd6b684e/attachment-0001.sig>


More information about the wayland-devel mailing list