[ANNOUNCE] weston 1.9.0

Bryce Harrington bryce at osg.samsung.com
Mon Sep 21 19:45:55 PDT 2015

This is the official release of Weston 1.9.

This release of Weston updates the license text, just as is done for
Wayland 1.9.  MIT has released software under several slightly different
licenses, including the old 'X11 License' or 'MIT License'.  X.org used
the X11 License originally but now prefers the MIT Expat License as the
standard.  Wayland has been using the MIT X11 license, but Wayland's
licensing intent is to be compatible with X.org, so this release
switches to the Expat-style licensing.  In practical terms, the most
notable change is the dropping of the no-advertising clause.

Some of the preliminary infrastructure is now in place for libweston,
which repackages Weston's internals into a library interface.  This will
provide much of the basic core functionality needed to create simple
compositors, such as needed by lightweight desktop environments.  The
support provided in this release is quite minimal, more for review and
experimentation, and is not yet in a usable form.  We also intend to
keep the API experimental and subject to change for some time to come.

Input device hotplug is better polished, so it misbehaves less
frequently when adding and removing keyboards and mice.  This in
particular benefits multi-seat for adding and removing seats.

In the shell, we've switched the middle and right mouse bindings, so
that the more useful window resize functionality is accessed via the
right button, and the less useful rotate-windows functionality is on the

Weston's unit/integration test framework is reimplemented in this
release.  This new code, 'zuctest', is heavily inspired by Google Test,
Boost Test, etc. but is implemented in C and under the MIT Expat license
for better compatibility with Weston.

The DRM compositor is now able to handle triple-head graphics cards, and
other hardware with more than two output CRTCs per card.  Various
mode-setting improvements and fixes are also included.

ivi-shell adds an interface to get the screen ID, and methods to remove
callbacks for certain notifications.

The weston-screensaver client is removed, in favor of just using simpler
DPMS.  The lessons that this example taught are now out of date, and
dropping it allows us to drop dependency on GLU, and reduces our
dependence on cairo-gl (now only gears depends on cairo-gl).  Some
screensaver support stubs still exist in desktop-shell, so external
projects can still have screensavers if they wish.

A new linux_dmabuf extension.  This enables a zero-copy pipeline from
video source to display.  It's hoped this will be a powerful and
flexible solution for a variety of accelerated video handling such as
media appliances and smart TVs, but there are still many open questions
about how to best tie everything together.  This Weston release
implements this protocol as an experimental extension enabling creation
of dmabuf-based wl_buffers in a generic manner.

Changes since 1.8.0:

Bill Spitzak (1):
      test/ivi: include protocol headers for all used protocols

Bryce Harrington (44):
      configure.ac: bump version to 1.8.90
      COPYING: Update to MIT Expat License rather than MIT X License
      COPYING: Drop special license callout for libbacklight.c
      data: Update boilerplate from MIT X11 license to MIT Expat license
      clients: Update boilerplate from MIT X11 license to MIT Expat licenses
      *-shell: Update boilerplate from MIT X11 license to MIT Expat licenses
      protocol: whitespace cleanup
      protocol: Update boilerplate from MIT X11 license to MIT Expat license
      shared: Update boilerplate from MIT X11 license to MIT Expat license
      src: Update boilerplate from MIT X11 license to MIT Expat license
      libbacklight: Add missing boilerplate to header
      weston-egl-ext.h: Reformat license text
      vaapi-recorder: Drop redundant license
      tests: Update boilerplate from MIT X11 license to MIT Expat license
      wcap: Update boilerplate from MIT X11 license to MIT Expat license
      wcap: Prefer quote form of include for config.h
      xwayland: Update boilerplate from MIT X11 license to MIT Expat license
      xwayland: Fix a couple whitespace errors
      COPYING: Specify origin of the library
      protocol/text: Update boilerplate from MIT X11 license to MIT Expat license
      compositor-x11: More verbose logging
      compositor-drm: Add comment for newly added drm_waitvblank_pipe()
      weston-launch: Drop redundant exit()
      clients: Simplify memory allocation with xzalloc()
      xwayland: Always free reply from xcb_get_property_reply()
      xwayland: Check return of xcb_get_property_reply() before deref
      xwayland: Allow dump_property when selection fails
      screen-share: Use the correct list pointer when freeing shm buffers
      zunitc: wrap dox to 80 columns
      zunitc: Fix some minor grammatical errors in dox
      zunitc: Fix minor typo
      input: Also pass appropriate pointer type when libva unavailable
      logind-util: Use %u for unsigned int in snprintf
      gitignore: Ignore some dist generated files
      Fix build breakage when using older gbm lacking dmabuf import
      Fix armhf configure breakage due to missing libdrm_intel package
      releasing: Update release names
      releasing:  Soften suggestion to update the wayland version dependency
      configure.ac: bump to version 1.8.91 for the alpha release
      configure.ac: bump to version 1.8.92 for the beta release
      clients: Fix height typo in clamp_view()
      configure.ac: bump to version 1.8.93 for the RC1 release
      releasing: Note need for pgp signing announcement
      configure.ac: bump to version 1.9.0 for the official release

Christopher Michael (2):
      Documentation for the prepare_lock_surface event description, is incorrect
      Documentation for the prepare_lock_surface event description, is incorrect

Daniel Stone (2):
      compositor-drm: Record current DPMS level
      compositor-drm: Fix cursor view size check

David FORT (1):
      don't crash when the key file doesn't exist

Dawid Gajownik (13):
      main: update RDP backend help message
      Update .gitignore
      .gitignore: ignore doxygen generated files v2
      main: print backends in help message in alphabetical order
      compositor-rdp: free() can handle NULL pointers
      screen-share: don't test keyboard/pointer pointers
      compositor-rdp: rdp_destroy() double free error #91457
      backends: don't destroy renderer and output twice
      Coding style fixes
      compositor: fix crash when destroying incompletely created output
      weston-launch: On error putenv returns a non-zero value
      compositor-drm: cast surface to EGLNativeWindowType
      gl-renderer: gl_renderer_create display cleanup on error

Derek Foreman (54):
      input: clean up seat_get_keyboard a little
      input: clean up notify_modifiers a little
      input: minor clean up in weston_seat_repick()
      input: clean up update_keymap a little
      screenshooter: clean up recorder_binding a little
      internal-screenshot-test: Fix endian problem
      gl-renderer: Don't print GL error for EGLGetDisplay()
      ivi: Use build dir instead of libexec dir in generated test ini file
      compositor: Add missing help text
      build: Use AM_CFLAGS instead of GCC_CFLAGS
      desktop-shell: make client_initiated a bool
      compositor-wayland: Use the correct list pointer when freeing shm buffers
      text-backend: Replace focus_listener_initialized with a bool
      exposay: Test keyboard presence before using keyboard pointer
      bindings: Stop exporting internal functions
      compositor-drm: Simplify logic in setup_output_seat_constraint
      input: Pass the appropriate pointer type to bindings instead of a seat
      desktop-shell: Make surface_touch_move take a touch instead of a seat
      desktop-shell: Make surface_move take a pointer instead of a seat
      desktop-shell: Make surface_rotate take a pointer instead of a seat
      desktop-shell: Make surface_resize take a pointer instead of a seat
      desktop-shell: Use the grabbed pointer in popup_grab_button
      bindings: make install_binding_grab take a keyboard instead of a seat
      bindings: Make run binding functions take apropriate device instead of a seat
      log: Open log file CLOEXEC so child processes don't get the fd
      shell: Switch middle and right mouse bindings
      desktop-shell: add output co-ordinates to get_output_work_area()
      desktop-shell: use output position in get_output_panel_size()
      desktop-shell: use work area instead of panel size to constrain moves
      window: Use wl_cursor_frame_and_duration() for mouse cursor updates
      input: make a function for device removal
      exposay: Fix logic inversion when ending keyboard grabs
      exposay: Fix use after free when a view is destroyed during animation
      compositor: Respect WESTON_BUILD_DIR env var in weston_load_module
      desktop-shell: Put monitor to sleep when idle timer expires
      zoom: Change zoom->active to a bool
      zoom: Rename zoom_area_center_from_pointer to zoom_area_center_from_point
      zoom: Call weston_output_activate_zoom() appropriately
      zoom: Store the seat that initiated a zoom
      input: Check device counts in bind_seat()
      desktop-shell: Don't call wl_list_init() in the middle of a list
      desktop-shell: Check for device presence properly
      fullscreen-shell: Test for device presence properly
      input: Don't test keyboard/pointer/touch pointers
      desktop-shell: drop shell_client from the head of the surface list on destroy
      desktop-shell: Make resize and move functions take a pointer instead of a seat
      input: add a weston_pointer_clear_focus() helper function
      rpi-renderer: use weston_output matrix instead of a private matrix
      input: when destroying a seat, remove keyboard focus first
      build: Require newer version of libdrm
      compositor-fbdev: Remove bizarre division by sizeof
      terminal: Don't crash when selecting non-ascii characters
      shell: Make sure we actually have a resource in end_busy_cursor
      clients: If available, prefer top level surfaces for move or rotate

Emmanuel Gil Peyrot (1):
      Partially revert "xwayland: Always free reply from xcb_get_property_reply()"

FORT David (2):
      remove a warning during compilation
      Fix crash when using RDP4 security

George Kiagiadakis (1):
      clients: add simple-dmabuf client

Giulio Camuffo (7):
      compositor: remove the authenticate vfunc
      compositor: introduce struct weston_backend
      compositor: add API to manage compositor instances
      compositor: move the main() to a new main.c file
      compositor: make sure to reset views' pointers to destroyed output
      input: pass the global touch coordinates to the touch grab
      xwm: don't let X windows steal the focus

Jason Ekstrand (1):
      fullscreen-shell: Fix modeset on transformed outputs

John Sadler (3):
      rpi: avoid segfault in rpir_view_compute_rects() when EGL client destroys buffer
      rpi: prevent segfault on shut-down due to NULL backend
      rpi: fix segfault at startup in rpi_flippipe_init() v2

Jon A. Cruz (6):
      Added new include file to all SOURCES variables with files that use it.
      Do not install the new helpers macro header file.
      Added simple unit/integration test framework and corresponding test program.
      Enables output in the JUnit XML format.
      Converted the config parser test to the new framework.
      Adding doxygen setup and info for the testing framework.

Jon Cruz (4):
      Remove redundant #include path component.
      Moved helper macro to a discrete include file.
      Moved the MIN() macro to the helper include.
      Unified multiple definitions of container_of() macro.

Jonas Ådahl (3):
      xdg-shell: Further clarify xdg_surface.move semantics
      xdg-shell: Further clarify xdg_surface.resize semantics
      clients: Drop deadlock circumvention hack now that we don't need it

JoonCheol Park (1):
      compositor: add missing help text

Louis-Francis Ratté-Boulianne (1):
      gl-renderer: introduce struct egl_image

Mario Kleiner (10):
      desktop-shell: Allow multiple active fullscreen windows on multi-display setup.
      compositor-drm: Fix refresh rate selection in drm_output_switch_mode
      compositor-drm: Allow weston_output_mode_switch_to_native() to work.
      compositor-drm: Handle more than two output crtcs per card
      desktop-shell: Allow fullscreen windows to mode-switch their output.
      presentation-shm: Allow setting of delay before surface.commit
      compositor-drm: Allow instant start of repaint loop. (v4)
      compositor: Respect repaint-window when restarting repaint loop.
      cms-colord: Fix crash at compositor shutdown. (v2)
      cms-helper/static: Add "identity" builtin cms profile (v3)

Murray Calavera (5):
      Whitespace corrections
      text: handle existing seats on init
      move text_backend initialization into the shell plugin
      don't attempt to start input method if path is empty
      text: cleanup text backend style

Nobuhiko Tanibata (33):
      ivi-shell: bugfix, check limitation of ivi_layout_surface opacity
      ivi-shell: bugfix, check limitation of ivi_layout_layer opacity
      ivi-shell: Fix wrong link of wl_list_for_each() of ivilayer
      ivi-shell: bugfix, SEVG by adding NULL check in ivi_layout_get_screen_resolution
      ivi-shell: make ivi_layout_surface destruction explicit
      ivi-shell: fix ivi_shell_surface lifetime
      ivi-shell: bugfix, add ref_count to ivi_layout_layer
      ivi-shell: add new method to remove a callback to get notification of ivi_surface property changes.
      ivi-shell: add new method to remove a callback to get notificaiton of ivi_layer property changes.
      ivi-shell: add interface to get screen ID
      ivi-shell: bugfix, send notification when properties are changed according to event mask.
      ivi-shell: bugfix, update event_mask when new propertiy is not same as before.
      ivi-shell: rename to ivi_layout_layer_destroy()
      tests: test set for ivi-surface normal use case with helper client
      tests: test set for ivi-surface bad condition with helper client
      tests: test set for ivi-surface with bad condition in server side
      tests: test set for ivi-layer normal use case with helper client
      tests: test set for ivi-layer normal use case in server side
      tests: test set for ivi-layer bad condition with helper-client
      tests: test set for ivi-layer with bad condition in server side
      tests: test set for ivi-screen normal use case in server side
      tests: test set for ivi-screen with bad condition in server side
      tests: make the test context persistent
      tests: test set for ivi-shell notification normal use case with helper client
      tests: test set for ivi-shell notification normal use case in server side
      tests: test set for ivi-shell notification in bad condition with helper client
      tests: test set for ivi-shell notification with bad condition in server side
      ivi-shell: remove one indent level from update_prop()
      ivi-shell: transform refactoring, remove transform part of ivi_layout_surface and ivi_layout_layer once
      ivi-shell: transform refactoring to improve it to more readable code
      ivi-layout: implement surface clipping
      hmi-controller: fix the laucher layer width
      hmi-controller: fix wrong width and height are set to a layer of workspace.

Pekka Paalanen (22):
      Remove weston-screensaver
      desktop-shell: remove screensaver support
      text_backend: make destructor call explicit
      compositor-drm: fix drm_waitvblank_pipe() decl style
      README: introduce libweston
      shared: introduce timespec-util.h
      compositor,shared: add millihz_to_nsec()
      compositor-drm: Refactor initial mode out of create_output
      compositor-drm: Refactor connector name into new function
      compositor-drm: Refactor getting current mode into a new function
      compositor-drm: Refactor code into cursor_bo_update()
      protocol: add linux_dmabuf extension (v3)
      dmabuf: implement linux_dmabuf extension
      gl-renderer: add dmabuf import
      compositor-x11: init linux_dmabuf support
      compositor-drm: init linux_dmabuf support
      compositor-drm: dmabuf GBM import
      configure: fix enable_simple_intel_dmabuf_client=auto
      compositor-fbdev: fix VT switching crash
      compositor-drm: rename outputs to follow kernel style
      build, compositor-drm: fix output name constants another way
      Revert "compositor-drm: disable hardware cursors"

Ross Burton (2):
      build: don't duplicate rule for weston.desktop
      build: mkdir target weston.ini directories before writing

Ryo Munakata (3):
      compositor: destroy modifier_binding_list
      compositor: remove a call to weston_compositor_schedule_repaint
      Use [x]zalloc instead of [x]malloc + memset

Ucan, Emre (ADITG/SW1) (4):
      ivi-shell: bugfix, list of surfaces on a layer are cumulated when set render order is called several time in one commitchanges.
      ivi-shell: clear order.surface_list before reordering it
      ivi-shell: clear order.layer_list before reordering it
      ivi-shell: remove redundant wl_list_empty/init calls

git tag: 1.9.0
MD5:  66bbba12f546570b4d97f676bc79a28e  weston-1.9.0.tar.xz
SHA1: 94b70baca9a6ba007c696b740a711586f9dc274f  weston-1.9.0.tar.xz
SHA256: 9c1b03f3184fa0b0dfdf67e215048085156e1a2ca344af6613fed36794ac48cf  weston-1.9.0.tar.xz
PGP:  http://wayland.freedesktop.org/releases/weston-1.9.0.tar.xz.sig

More information about the wayland-devel mailing list