Wayland / Weston

Software Screenshot:
Wayland / Weston
Software Details:
Version: 1.15.0 / 4.0.0 updated
Upload Date: 22 Jun 18
Distribution Type: Freeware
Downloads: 67

Rating: 4.0/5 (Total Votes: 2)

Wayland is an open source software product that has been designed from the ground up to be used as a drop-in replacement for the X Window System, which is currently used in 99.9 percent of all Linux-based operating systems.

The project comprises of the main display server, called Wayland, as well as a compositor, called Weston. While Wayland itself is not actually an X11 server, it has been engineered as a compositor's protocol in order to talk to clients like Weston, which can run as an X client.

Wayland can run as a standalone display server on top of KMS (Kernel Mode-Setting) and evdev input devices, as a Wayland client, or as a traditional application meant for the X Window System. Furthermore, Weston can run under KMS or as an X11 client and it is suitable for mobile or embedded devices.

Other possible clients for this groundbreaking, next-generation display server can be another display server, X11 servers (full screen or rootless), or any other standard application. A C library implementation of Wayland is also available.

While Wayland provides all the necessary components for the display server to run properly, the Weston compositor comes with various demo clients, which can be used by developers as examples for building ore complex clients.

The well known and widely used GNOME and KDE Plasma desktop environments will most probably be the first to be ported to the next-generation Wayland display server. However, it will probably take a few years for all Linux application developers to migrate (read: port) their applications to Wayland.

Linux distribution and application developers can find detailed documentation about how to port their apps and operating systems to Wayland on the project's homepage (see above). End users can test Wayland today using the RebeccaBlackOS Linux-based operating system.

What is new in this release:

  • The core protocol documentation has received numerous refinements to improve its clarity and consistency. Along with this, many blank areas of the protocol documentation have been fleshed out.
  • A new wl_display_add_protocol logger API provides a new interactive way to debug requests; along with this are new APIs for examining clients and their resources. This is analogous to using WAYLAND_DEBUG=1, but more powerful since it allows run time review of log data such as through a UI view.
  • There have been improvements to how the protocol XML scanner handles version identification in protocol headers. This enables better detection and fallback handling when compositors and clients support differing versions of their protocols.
  • Along with these user-visible changes, there have been a variety of other code refactoring and refinements in Wayland 1.12.
  • Weston's internal code has been restructured into a new software library, libweston. This is intended for use by other compositor efforts that want to more easily utilize Weston's internal functionalities. Weston's own compositor is now a user of this library.
  • As well, another new library named libweston-desktop provides an additional level of functionality of relevance to compositors implementing a desktop metaphor style of graphical interface. This library API is designed around xdg_shell functionality, providing for handling of popups, window state, and interfacing with Xwayland.
  • Both libweston and libweston-desktop should be treated as unstable libraries (i.e. their APIs are subject to change). A versioning scheme has been adopted for their ABI provisioning to enable compile-time detection of breaks. In other words, this enables users to detect incompatibilities at install-time in their packaging system, rather than when they try to actually use the software. The system is designed to help not only with released Weston components but also to flag inconsistencies when using development snapshots of the libraries, to help developers avoid problems due to inconsistencies, too.
  • Support for the new version 6 of the xdg_shell protocol has been implemented in the Weston compositor, and all clients are ported to it. See the wayland-protocols 1.7 release notes for details on the included changes.
  • A pointer locking and confinement API is implemented for Weston using the wp_pointer_constraints protocol, to allow clients to define window regions to confine the pointer to. These regions can be irregular; a client is included to demonstrate confinement to a H-shaped region, for example. A relative pointer protocol (using wl_relative_pointer) has also been introduced, which allows clients to continue receiving pointer movement deltas even when the pointer's absolute position is clipped for example to the edge of the monitor.
  • The Raspberry Pi backend (rpi-backend) and renderer have been dropped. This code was reliant on a proprietary driver stack, and proved not to be maintainable within Weston.
  • Several other features, build improvements, bug-fixes, code refactorings, refinements to destruction processes, and so on are included.

What is new in version :

  • The core protocol documentation has received numerous refinements to improve its clarity and consistency. Along with this, many blank areas of the protocol documentation have been fleshed out.
  • A new wl_display_add_protocol logger API provides a new interactive way to debug requests; along with this are new APIs for examining clients and their resources. This is analogous to using WAYLAND_DEBUG=1, but more powerful since it allows run time review of log data such as through a UI view.
  • There have been improvements to how the protocol XML scanner handles version identification in protocol headers. This enables better detection and fallback handling when compositors and clients support differing versions of their protocols.
  • Along with these user-visible changes, there have been a variety of other code refactoring and refinements in Wayland 1.12.
  • Weston's internal code has been restructured into a new software library, libweston. This is intended for use by other compositor efforts that want to more easily utilize Weston's internal functionalities. Weston's own compositor is now a user of this library.
  • As well, another new library named libweston-desktop provides an additional level of functionality of relevance to compositors implementing a desktop metaphor style of graphical interface. This library API is designed around xdg_shell functionality, providing for handling of popups, window state, and interfacing with Xwayland.
  • Both libweston and libweston-desktop should be treated as unstable libraries (i.e. their APIs are subject to change). A versioning scheme has been adopted for their ABI provisioning to enable compile-time detection of breaks. In other words, this enables users to detect incompatibilities at install-time in their packaging system, rather than when they try to actually use the software. The system is designed to help not only with released Weston components but also to flag inconsistencies when using development snapshots of the libraries, to help developers avoid problems due to inconsistencies, too.
  • Support for the new version 6 of the xdg_shell protocol has been implemented in the Weston compositor, and all clients are ported to it. See the wayland-protocols 1.7 release notes for details on the included changes.
  • A pointer locking and confinement API is implemented for Weston using the wp_pointer_constraints protocol, to allow clients to define window regions to confine the pointer to. These regions can be irregular; a client is included to demonstrate confinement to a H-shaped region, for example. A relative pointer protocol (using wl_relative_pointer) has also been introduced, which allows clients to continue receiving pointer movement deltas even when the pointer's absolute position is clipped for example to the edge of the monitor.
  • The Raspberry Pi backend (rpi-backend) and renderer have been dropped. This code was reliant on a proprietary driver stack, and proved not to be maintainable within Weston.
  • Several other features, build improvements, bug-fixes, code refactorings, refinements to destruction processes, and so on are included.

What is new in version 1.9.0:

  • Bryce Harrington (20):
  • configure.ac: bump version to 1.8.90
  • COPYING: Update to MIT Expat License rather than MIT X License
  • Contributing: Specify use of MIT Expat for new code files
  • tests: Update boilerplate from MIT X11 license to MIT Expat license
  • socket-test: Fix style on multi-line comment
  • test-runner: Add copyright boilerplate for .h, same as the .c
  • src: Update boilerplate from MIT X11 license to MIT Expat license
  • wayland-server: Fix style on multi-line comment
  • protocol: Update boilerplate from MIT X11 license to MIT Expat license
  • cursor: Update boilerplate from MIT X11 license to MIT Expat license
  • cursor-data.h: Change SuSE licensed code from X11 to Expat
  • xcursor: Change keithp licensed code from X11 to Expat license
  • publican: Update docs license from MIT "X11" to MIT "Expat" style
  • cursor: Update printed license from MIT "X11" to MIT "Expat"
  • tests: Don't increment variables inside an assert()
  • gitignore: Ignore some dist generated files
  • configure.ac: bump to version 1.8.91 for the alpha release
  • configure.ac: bump to version 1.8.92 for the beta release
  • configure.ac: bump to version 1.8.93 for the RC1 release
  • configure.ac: bump to version 1.9.0 for the official release
  • Derek Foreman (9):
  • docs: remove and ignore doc/doxygen_sqlite3.db
  • build: Move AM_CFLAGS and AM_CPPFLAGS to the top of Makefile.am
  • build: Stop putting FFI_CFLAGS in AM_CFLAGS
  • build: Allow disabling building of wayland libraries
  • build: Build a subset of libwayland_util when not building libraries
  • build: Don't depend on libffi unless we're building libraries
  • build: Use AM_CFLAGS instead of GCC_CFLAGS everywhere
  • cosmetic: gratuitous whitespace changes in event-loop.c
  • build: Build libwayland-private
  • Dima Ryazanov (1):
  • client: require WAYLAND_DISPLAY to be set
  • Elvis Lee (1):
  • wayland-client : Fix queue_release not to call proxy_destroy
  • Marek Chalupa (5):
  • fixed-benchmark: remove unused arguments in main
  • scanner: refactor creating objects
  • scanner: get rid of leaks
  • scanner: use zxalloc
  • scanner: check sanity of version
  • Pekka Paalanen (1):
  • Revert "client: require WAYLAND_DISPLAY to be set"
  • Peter Hutterer (2):
  • doc: move project-specific doxygen settings to the end of the doxygen file
  • doc: drop the default doxygen tags
  • Ross Burton (1):
  • build: always build wayland-scanner

What is new in version 1.8.1:

  • Bryce Harrington (2):
  • publish-doc: Add script for publishing docs to the website
  • configure.ac: bump to version 1.8.0 for the official release
  • Giulio Camuffo (1):
  • scanner: don't emit the extern declarations for external types
  • Bill Spitzak (1):
  • config: use simpler regexp syntax to get dot version
  • Bryce Harrington (11):
  • configure.ac: bump version to 1.7.90
  • client: Fix typo
  • Spelling fixes (cosmetic)
  • tests: Typo in a comment
  • configure.ac: bump to version 1.7.91 for the alpha release
  • configure.ac: bump to version 1.7.92 for the RC1 release
  • gitignore: ignore recently added headers-test
  • gitignore: Bulk ignore all *-test files
  • configure.ac: bump to version 1.7.93 for the RC2 release
  • publish-doc: Add script for publishing docs to the website
  • configure.ac: bump to version 1.8.0 for the official release
  • Derek Foreman (1):
  • cursor: add wl_cursor_frame_and_duration
  • Emmanuel Gil Peyrot (1):
  • cursor: free the array from which images are linked
  • Giulio Camuffo (5):
  • introduce new headers wayland-client-core.h and wayland-server-core.h
  • wayland-egl: add a core header
  • scanner: add a new --include-core-only option
  • tests: add an headers test
  • scanner: don't emit the extern declarations for external types
  • Hardening (1):
  • wayland.xml: fixed a typo
  • Jonas Adahl (2):
  • protocol: Change wording of subsurface placement scheduling
  • scanner: Fail on empty enumerations
  • Jussi Pakkanen (1):
  • Add support for direct file reading and writing in wayland-scanner.
  • Marek Chalupa (2):
  • server: give more precise error message
  • protocol: add better description of wl_pointer.release
  • Michael Vetter (1):
  • remove trailing whitespaces
  • Pekka Paalanen (1):
  • scanner: simplify the getopt logic

What is new in version 1.7.0 / 1.8.0 RC2:

  • Wayland:
  • gitignore: ignore recently added headers-test
  • gitignore: Bulk ignore all *-test files
  • configure.ac: bump to version 1.7.93 for the RC2 release
  • tests: add an headers test
  • Weston:
  • releasing: List some lib paths to set for local libinput
  • releasing: untabify
  • configure: Warn that cairo-gl and cairo-glesv2 are risky
  • compositor-drm: minor sp. fix
  • editor: warn when write fails
  • tests: Add error handling for system calls
  • tests: Add client helper routines for output and reference filenames
  • tests: Add an xmalloc helper function
  • tests: Add surface checks
  • tests: Support --config to enable tests to override config defaults
  • protocol: Add test screenshot capability
  • tests: Add screenshot recording capability to weston-test
  • tests: Handle screenshot done event in weston-test
  • tests: Add internal test for the weston test screenshot capability
  • tests: Add write_surface_as_png() helper
  • tests: Add create_screenshot_surface()
  • tests: Add load_surface_from_png()
  • tests: Add check_surfaces_geometry()
  • tests: Add capture_screenshot_of_output()
  • tests: Fix code style on path/filename routines
  • tests: Check that the PNG file's stride matches our internal assumption
  • tests: cleanup whitespace
  • gitignore: Ignore generated header test files
  • tests: Drop redundant debug output
  • releasing: Add vars for release name and number
  • configure.ac: bump to version 1.7.93 for the RC2 release
  • compositor-drm: Clean trailing whitespace
  • RDP compositor: enforce certificate and key
  • gl-renderer: Take a list of acceptable formats in create functions
  • compositor-drm: pass ARGB fallback to gl create functions for XRGB formats
  • gl-renderer: Make the error logging a little nicer
  • tests: Set up the reference image environment variable
  • tests/internal-screenshot: Fix test so it doesn't expect shell surfaces
  • exposay: Don't crash if no pointer is present
  • desktop-shell: destroy surfaces in an idle handler after fade out
  • internal-screenshot-test: Make distcheck pass
  • compositor-wayland: Handle window close events more gracefully
  • compositor-wayland: Code cleanup
  • xdg-shell: Clarify the meaning of app ID and give example
  • xdg-shell: Document error conditions when popup and surface getters
  • xdg-shell: Document responsibilities regarding ping events
  • xdg-shell: Document the set_maximized and unsetmaximized requests
  • compositor-drm: disable hardware cursors
  • desktop-shell: do not black out with startup "none"

What is new in version 1.7.0:

  • The Wayland protocol may be considered "done" but that doesn't mean there's not work to be done. This release focused on major improvements to Wayland's documentation, minor improvements to the testsuite, and some scattered bugfixes to the code itself.
  • Wayland's developer documentation is comprised of three different pieces. First is a manually written prose, which includes diagrams and a high level description of everything. Second is the protocol documentation, which is mechanically generated from the protocol definitions and works more like a reference manual. Third is the code documentation, which is also mechanically generated but from the library source code itself.
  • We've moved the written prose from being generated by publican to xmlto. xmlto provides the same functionality and is more widely available. Publican's advantage was its nicer stylesheets, but we ported these to run on xmlto, and polished them up while we were at it. Architectural diagrams in the developer documentation is now mechanically generated with graphviz - this both improves its look a little and makes it easier to maintain going forward.
  • For the protocol documentation, the recently added wl_surface role concept is defined and given several examples. wl_display_destroy and wl_display_add_socket are now documented, and some aspects of threading clarified. It's also been reorganized, with deprecated functions dropped and all validation errors fixed.
  • The auto-generated code documentation is prettier now thanks to a lot of polishing work done to the xslt files, and markup improvements done to code comments.
  • The protocol documentation content is tightened up: We've dropped long-deprecated functions, hidden private functionality like wl_map, and recategorized functions more accurately with the objects they modify.
  • A number of potential memory and event leaks in tests and clients have been cleaned up, and leak checking is now enforced by the test suite infrastructure. Leak checking is also added to the sample clients.
  • The testsuite now has a way to set timeouts for test completion. The timeouts can be turned off by setting the environment variable WAYLAND_TEST_NO_TIMEOUTS. For consistency, NO_ASSERT_LEAK_CHECK is now called WAYLAND_TEST_NO_LEAK_CHECK. Both the timeouts and leak checks are disabled when a debugger is attached.
  • There's a new C++ compilation test; even though Wayland and Weston are in C, we want to make sure Wayland can be linked with compositors written in C++ without incurring basic compilation failures.
  • Apart from tests and docs, there were a handful of changes to the codebase itself. Notably, the client listen queue is increased to 128,to allow numerous clients to be connected simultaneously without connection refused errors. Some cross-platform fixes, such as a FreeBSD bug with sendmsg() usage, have been addressed. The remaining fixes improve error checking and handling in various places.

What is new in version 1.7.0 RC2:

  • Wayland:
  • configure.ac: Fallback to older detection code if pkg-config can't find expat
  • doc: Fill in high level description for Surfaces
  • tests: Fix FAIL in sanity-test (*timeout*) when Yama LSM enabled
  • test-runner: wait for concrete pid
  • Weston:
  • releasing: Tweak docs to better match actual workflow
  • screenshooter: remove useless cast
  • desktop-shell: Remove unnecessary type casts
  • compositor-x11: Move the x11 window close to an idle handler
  • xwm: remove the create surface listener in weston_wm_destroy
  • Fix "Back", "Forward", and other special mouse buttons in the X11 compositor.
  • xwm: support maximizing xwayland windows
  • libinput: Only forward first and last press and release for a button
  • libinput: Only forward first and last press and release for a key
  • desktop-shell: Fail if get_xdg_surface is called on an xdg_surface
  • ivi-shell: SEGV occurs when multi touch happens in transition

What is new in version 1.6.1:

  • doc: fixed a typo
  • Remove useless semicolon
  • README: Tiny cosmetic change
  • doc: fixed grammar and a typo
  • scanner, client: Added more error checks when strtol function is used
  • scanner: Improve XML parse error reporting
  • scanner: Remove stray newline
  • client: read_events should return -1 after an error
  • tests: fix memory leak
  • connection: Fix sendmsg() on FreeBSD
  • event-loop.c: Use correct OS abstraction function for dupfd()
  • wayland-server: Abort if a read from a client gives 0 length
  • connection: abort if a listener function is NULL
  • doc: Added API documentation for wl_display_destroy and wl_display_add_socket functions

What is new in version 1.7.0 Alpha 1:

  • doc: Mark up some code examples
  • doc: Mostly use apply-templates over value-of
  • doc: Translate doxygen tags to spaces
  • connection: Leave fd open in wl_connection_destroy
  • doc: make rebuilds doxygen output on code changes
  • doc: Preserve spaces
  • doc: preserve links produced by Doxygen
  • doc: Don't print dash if doxygen brief description missing
  • doc: removed some unnecessary nested listing from doxygen output
  • doc: Added code tags around sample code in doxygen comments
  • v4 doc: fixed reference to non-existent function
  • doc: fixed a typo
  • doc: Removed ref when it refers to the subject the text is attached to
  • doc: Removed extra indentation from wl_list code sample
  • doc: removed redundant dependency
  • doc: Remove duplicated descriptions of wayland objects
  • doc: fix doxygen->man command line
  • doc: Split libwayland-client and -server into different pages
  • doc: fix for parallel make
  • doc: Make it easier to add a new doxygen page
  • fixup doc: Make it easier to add a new doxygen page
  • doc: Reduce the validation errors of the docbook input
  • doc: removed the word "interface" from the link names
  • doc: Each class in doxygen output is a section
  • doc: Document structures and unions in addition to classes
  • doc: make itemized lists from doxygen work
  • Don't document an absent parameter.
  • configure.ac: bump version to 1.6.91 for the alpha release
  • Remove useless semicolon.
  • README: Tiny cosmetic change
  • cosmetic: convert some function returns from int to bool
  • doc: fixed grammar and a typo
  • scanner, client: Added more error checks when strtol function is used
  • server: increase listen queue to 128
  • doc: Removed redundant xslt output elements.
  • doc: Invoke doxygen via the defined make variable.
  • doc: Add config check for doxygen 1.6.0+.
  • doc: General makefile cleanup.
  • doc: Minor makefile cleanup.
  • scanner: Improve XML parse error reporting
  • scanner: Remove stray newline
  • tests: use our own XDG_RUNTIME_DIR for tests
  • tests: add timeout
  • tests: add test_usleep and test_sleep functions
  • tests: add timeout tests
  • tests: use test_set_timeout in display-test
  • queue-test: put back timeout
  • tests: don't print '�' character
  • client: read_events should return -1 after an error
  • tests: rename env vars for tests
  • test-runner: print separator line after each test-case
  • tests: use color when printing on terminal
  • tests: detect if debugger is attached
  • tests: split queue-test testcases
  • tests: fix memory leak
  • client: update obsolete comments
  • client: update documentation about threading
  • gitignore: adpat to scanner and protocol path changes
  • configure.ac: bump version to 1.6.90
  • protocol: define the concept of wl_surface role
  • protocol: wl_pointer.set_cursor gives a role
  • protocol: wl_data_device.start_drag may give a role
  • protocol: wl_subcompositor.get_subsurface gives a role
  • protocol: wl_shell.get_shell_surface gives a role
  • protocol: define error codes for role reassignment
  • doc: replace publican with xmlto
  • connection: Fix sendmsg() on FreeBSD
  • event-loop.c: Use correct OS abstraction function for dupfd()
  • wayland-server: Abort if a read from a client gives 0 length
  • queue-test: Add another assertion
  • connection: abort if a listener function is NULL
  • scanner.c: Use WL_PRINTF instead of __attribute__((format(printf)))
  • doc: Added API documentation for wl_display_destroy and wl_display_add_socket functions.
  • Protocol : Added destructor to wl_data_device interface

What is new in version 1.6.0:

  • Wayland:
  • Add error enums to wl_surface.
  • Add keyboard repeat information to wl_keyboard protocol.
  • Error handling additions in libwayland-client: when a protocol error happens, the program can query more detailed information about the error. This is mostly useful for tests to ensure correct errors.
  • New wl_display_add_socket_auto() in libwayland-server: automatically find a free socket name.
  • Many added tests to the 'make check' suite, including a framework for testing server-client interactions more easily.
  • Threading and blocking related bug fixes.
  • Add wl_display_roundtrip_queue(): blocking round-trip on a custom queue.
  • Stop exposing wl_display global. Turns out binding to the global would have triggered bugs, and there was no proper use for it.
  • Weston:
  • Xdg-shell protocol changes. Yes, we broke it again since 1.5.0.
  • Add weston_layer masking mechanism.
  • DRM-backend: fetch cursor size from the kernel
  • keyboard repeat rate support, sent from compositor to clients, configurable.
  • Use wl_display_add_socket_auto(): no need to specify the socket anymore when running Weston under Weston, it just works now.
  • Use libinput by default. The non-libinput input backend is still there right now, but it will be removed for 1.7.
  • A few more desktop-shell configuration bits.
  • 'make distcheck' actually works OOTB without custom tweaks (by disabling the xwayland test for distcheck for now).
  • Exit Weston, if weston-desktop-shell dies too early. Should help with one class of "just black screen" problems.
  • Option to force numlock on at start on DRM and fbdev backends.
  • Many bug fixes, of course.

What is new in version 1.6.0 RC2:

  • touchpad: reset motion history when nfingers changes on semi-mt pads
  • litest-alps-semi-mt: Fix compiler warnings
  • build: symbol ck_assert_ptr_ne requires check-0.9.10
  • test: Use only one test device for some udev and path tests
  • test: Remove test device from context when deleting
  • test: Don't fail when events are enabled multiple times
  • evdev: Let dispatch instances set their own capabilities
  • evdev: Use helper for separating buttons from keys
  • evdev: Ignore key/button release events if key was never pressed
  • evdev: Keep track of button/key press count per device
  • evdev: Release still pressed keys/buttons when removing device
  • touchpad: Only break out of tap FSM for clickpad button presses
  • configure.ac: libinput 0.6
  • test: auto-update for BTN_TOOL_* when using litest_touch_ functions
  • Document that the delta from pointer events is accelerated
  • evdev: don't return a width/height if we faked the resolution
  • test: add a semi-mt Alps test device
  • touchpad: increase top software button area to 15%
  • Use -no-install instead of -static for local noinst linking
  • Disable static libraries
  • evdev: plug memory leak on libevdev_new_from_fd failure
  • Don't close the fd if libinput_add_fd() fails
  • touchpad: mark a intentional switch case fallthrough as such
  • Swap conditions for ARRAY_FOR_EACH()
  • touchpad: silence Coverity warnings about uninitialized use
  • Fix a doxygen reference
  • test: add helpers to wait for specific events
  • test: add a generic single-touch device
  • udev: use evdev_device_calibrate() instead of manually writing the matrix
  • evdev: constify evdev_device_calibrate
  • evdev: apply calibration to multitouch values as well
  • util: add a couple of 3x3 matrix helper functions
  • evdev: switch to a normalized transformation matrix
  • udev: drop WL_CALIBRATION, replace with LIBINPUT_CALIBRATION_MATRIX
  • test: add tests for touch calibration
  • Change calibration into a configuration option
  • evdev: load the LIBINPUT_CALIBRATION_MATRIX as default matrix
  • test: fix infinite loop in litest_wait_for_event_of_type()
  • test: use the evironment variable for check's verbosity
  • Document LIBINPUT_CALIBRATION_MATRIX properly
  • Document the static udev configuration options we support

Similar Software

ma-shell
ma-shell

14 Apr 15

noody-utils
noody-utils

11 May 15

Perl Shell
Perl Shell

3 Jun 15

CDBoomkars
CDBoomkars

14 Apr 15

Other Software of Developer Free Software Foundation

GNU tar
GNU tar

14 Apr 15

GNU Oleo
GNU Oleo

2 Jun 15

imgSeek
imgSeek

21 Sep 15

GNU Hurd
GNU Hurd

19 Feb 15

Comments to Wayland / Weston

Comments not found
Add Comment
Turn on images!