Discussion:
[ANNOUNCE] wayland 1.7.0
Bryce Harrington
2015-02-14 09:18:49 UTC
The 1.7 release of Wayland is now available for download. Thanks to all
who have contributed, and especially to the desktop environments and
client applications that now converse using Wayland.

git tag: 1.7.0

http://wayland.freedesktop.org/releases/wayland-1.7.0.tar.xz
MD5: 6f46ac47c3a18c6503a40b5fa58a1066 wayland-1.7.0.tar.xz
SHA1: a731201534dcf6ec76a1184411724376cbf1acb6 wayland-1.7.0.tar.xz
SHA256: bdea47a2db96f7e53f1ce0351559c0af5b7f7aae7e95f0a884a78af9f1057c9c wayland-1.7.0.tar.xz
PGP: http://wayland.freedesktop.org/releases/wayland-1.7.0.tar.xz.sig

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.

You can check out this spiffed up documentation at:

http://wayland.freedesktop.org/docs/html/

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.

Our next release will be version 1.8, planned as follows:

- Development of the 1.8 cycle starts immediately. A focus will be
major testing infrastructure enhancements, and cross-compositor
testing utilities.

- 1.8-alpha around May 1st. Major features should be in by this
point.

- 1.8-rc1 around May 15th.

- 1.8-rc2 around May 22nd.

- 1.8.0 release around May 29th

--
Bryce Harrington
Senior Open Source Developer - ***@osg.samsung.com
Open Source Group - Samsung Research America

Andrew Oakley (1):
configure.ac: use pkg-config to find expat

Benjamin Herr (4):
doc: Mark up some code examples
doc: Mostly use apply-templates over value-of
doc: Translate doxygen <sp/> tags to spaces
connection: Leave fd open in wl_connection_destroy

Bill Spitzak (34):
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
doc: add missing \memberof to wl_display_get_protocol_error
doc: Remove deprecated functions from documentation
doc: Remove wl_map from documentation
doc: made functions taking wl_event_queue arg belong to wl_event_queue
doc: compress the lists in the protocol docs some
doc: Add object types and links to arguments int protocol documentation
doc: remove redundant subtitles
doc: there is no need to move the _8h files
doc: Add macros and typedefs to the documentation
doc: Put a dash between type/enum value and description
doc: Intro text for doxygen output in it's own file
configure.ac: Fallback to older detection code if pkg-config can't find expat

Bryce Harrington (12):
Don't document an absent parameter.
configure.ac: bump version to 1.6.91 for the alpha release
cosmetic: Cleanup trailing whitespace
tests: Fix typo "evnironment"
tests: Correct return code handling
gitignore: Add the new cpp-compile-test
configure.ac: bump version to 1.6.92 for rc1 release
configure.ac: re-bump version to 1.6.92 for rc1 release
doc: Fill in high level description for Surfaces
tests: Fix FAIL in sanity-test (*timeout*) when Yama LSM enabled
configure.ac: bump to version 1.6.93 for rc2 release
configure.ac: bump to version 1.7.0 for release

Carlos Olmedo Escobar (1):
Remove useless semicolon.

Daniel Stone (1):
README: Tiny cosmetic change

Derek Foreman (4):
cosmetic: convert some function returns from int to bool
doc: fixed grammar and a typo
cosmetic: Move the deprecated functions back to the end of the file
event-loop: Dispatch idle callbacks twice

Imran Zaman (2):
scanner, client: Added more error checks when strtol function is used
server: increase listen queue to 128

Jon A. Cruz (5):
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.

Jon Cruz (4):
doc: Switch from static image files to generated diagrams.
doc: Create hot-linked areas in documents.
doc: update diagrams for compatibility.
doc: Fix out-of-tree build and also distcheck

Jonas Ådahl (5):
scanner: Improve XML parse error reporting
scanner: Remove stray newline
protocol: Fix typo in wl_data_offer
protocol: Clarify selection data offer destruction requirement
server: Use existing id variable when inserting created object

Marek Chalupa (25):
tests: use our own XDG_RUNTIME_DIR for tests
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 '\0' 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
test-runner: move leak checking into function
test-compositor: extend leak checks into clients
tests: add tests for leak check in clients
connection-test: add tests for closure leaks
client: release display queue in wl_display_disconnect()
client: unref or destroy proxy when releasing queue
tests: add possibility to disable leak check for single test
display-test: disable leak check in tests that use pthread
test-runner: wait for concrete pid

Mariusz Ceier (2):
tests: C++ compilation test
scanner: Fix header generation for server protocols

Olivier Blin (1):
gitignore: adpat to scanner and protocol path changes

Pekka Paalanen (7):
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

Peter Hutterer (1):
doc: replace publican with xmlto

Philip Withnall (4):
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

Rui Matos (1):
doc/publican/Makefile.am: Add a missing order-only prerequisite

Ryo Munakata (1):
connection: abort if a listener function is NULL

Seedo Eldho Paul (1):
scanner.c: Use WL_PRINTF instead of __attribute__((format(printf)))

Srivardhan Hebbar (1):
doc: Added API documentation for wl_display_destroy and wl_display_add_socket functions.

kabeer khan (1):
Protocol : Added destructor to wl_data_device interface
Pekka Paalanen
2015-02-16 08:38:47 UTC
On Sat, 14 Feb 2015 01:18:49 -0800
Post by Bryce Harrington
The 1.7 release of Wayland is now available for download. Thanks to
all who have contributed, and especially to the desktop environments
and client applications that now converse using Wayland.
Thank you Bryce for the releases!

I would like to point out two things that are not really about releases
but might be intereating nevertheless.

At the end of our extras page
http://wayland.freedesktop.org/extras.html
you can find links to three protocol dumper projects. If you have
problems with the protocol, want to add artificial communication delays
to test your protocol atomicity and reliability, or just want to see
how things work, these are your tools. They are provided by individual
contributors, many thanks to them! I hope these projects will grow and
mature into serious debugging aids if they're not already. There is so
much the WAYLAND_DEBUG environment variable, as powerful as it is,
cannot reveal.

The other thing is that we have started to collect development notes in
the bugzilla. You can find a bugzilla link to "enhancements" on the
Wayland front page. You may find interesting new features brewing
there, or perhaps a solution being developmed to a matter that you have
been missing. You might also find interesting things to work on. Note,
that this list is voluntary, so not everything is there.

Thanks,
pq
Graham Cantin
2015-02-16 13:34:54 UTC
And I just want to thank Bill for sticking with it for so long -- good to
see the great list of documentation fixups once his initial rocky hardware
It's been a hard road to get this far.

Libinput's almost got the fixin's for using common xbox 360 pads and HID
variants thereof -- I don't have the time to dedicate to getting that all
working, but someone should take a look at making that all work.
The underpinnings are laid; now it's up to someone clever to stack
thoughtful controller support on top. Someone should poke any contacts they
may have at Valve for potential requirements at this point, as we should
really be looking at their input (literally). They need to be correctly
assigned to seats as well, generally in sets of up to four controllers.

That's about all the input I've got to add at the moment; 7777 messages
from this mailing list in my gmail archive, dating back to around october
2009.
Wonderful to be reaching this point after five long years of lurking.
Congrats to all!
Post by Pekka Paalanen
On Sat, 14 Feb 2015 01:18:49 -0800
Post by Bryce Harrington
The 1.7 release of Wayland is now available for download. Thanks to
all who have contributed, and especially to the desktop environments
and client applications that now converse using Wayland.
Thank you Bryce for the releases!
I would like to point out two things that are not really about releases
but might be intereating nevertheless.
At the end of our extras page
http://wayland.freedesktop.org/extras.html
you can find links to three protocol dumper projects. If you have
problems with the protocol, want to add artificial communication delays
to test your protocol atomicity and reliability, or just want to see
how things work, these are your tools. They are provided by individual
contributors, many thanks to them! I hope these projects will grow and
mature into serious debugging aids if they're not already. There is so
much the WAYLAND_DEBUG environment variable, as powerful as it is,
cannot reveal.
The other thing is that we have started to collect development notes in
the bugzilla. You can find a bugzilla link to "enhancements" on the
Wayland front page. You may find interesting new features brewing
there, or perhaps a solution being developmed to a matter that you have
been missing. You might also find interesting things to work on. Note,
that this list is voluntary, so not everything is there.
Thanks,
pq
_______________________________________________
wayland-devel mailing list
http://lists.freedesktop.org/mailman/listinfo/wayland-devel
--
Graham Cantin | (408) 890-7463
Bill Spitzak
2015-02-16 20:52:27 UTC
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output, in
particular apa.html, which does not have the "object" replaced with the
actual types and the cross-reference links.
Pekka Paalanen
2015-02-17 09:29:24 UTC
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,

I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?

Hmm, would be nice if the front page mentioned which Wayland revision
was used and on which date the docs were generated, no?

Thanks,
pq
Bill Spitzak
2015-02-17 17:25:54 UTC
Post by Pekka Paalanen
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,
I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?
Yes looks right now
Post by Pekka Paalanen
Hmm, would be nice if the front page mentioned which Wayland revision
was used and on which date the docs were generated, no?
Probably would be useful but it depends on the version of wayland and
wayland-web (and probably libinput if those docs are added which I think
they should be). The date is probably good enough.
Bryce Harrington
2015-02-20 22:29:18 UTC
Post by Pekka Paalanen
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,
I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?
If you add this step to the end of the releasing.txt document, I can
make sure this gets done at least once a release going forward.

Alternatively, maybe we would want the displayed docs to match current
git? If so, then maybe a cronjob would be in order?

Bryce
Pekka Paalanen
2015-02-23 07:30:49 UTC
On Fri, 20 Feb 2015 14:29:18 -0800
Post by Bryce Harrington
Post by Pekka Paalanen
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,
I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?
If you add this step to the end of the releasing.txt document, I can
make sure this gets done at least once a release going forward.
I wonder... I do a 'make install' to a prefix and then just 'scp -r'
the right sub-dir. Maybe there's a better way?

I suppose we could also write a 'make publish-docs' that would do it if
ssh is set up right.
Post by Bryce Harrington
Alternatively, maybe we would want the displayed docs to match current
git? If so, then maybe a cronjob would be in order?
Hmm. That'd be almost like a CI service except it also pushes the docs.

Daniel, suggestions?

Thanks,
pq
Bryce Harrington
2015-02-24 02:18:40 UTC
Post by Pekka Paalanen
On Fri, 20 Feb 2015 14:29:18 -0800
Post by Bryce Harrington
Post by Pekka Paalanen
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,
I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?
If you add this step to the end of the releasing.txt document, I can
make sure this gets done at least once a release going forward.
I wonder... I do a 'make install' to a prefix and then just 'scp -r'
the right sub-dir. Maybe there's a better way?
I suppose we could also write a 'make publish-docs' that would do it if
ssh is set up right.
Cairo has a "make release-publish" step[1] which essentially does
release.sh plus updates the website, and generates and uploads
documentation.

Their makefile snippet[2] includes a bunch of logic for maintaining old
versions of the docs and linking to the latest via symblinks, but
essentially they're creating a tarball, scping it, and unpacking it on
the website:

doc-publish-versioned: doc
rm -rf ./$(MANUAL_VERSIONED) cp -a doc/public/html$(MANUAL_VERSIONED)
tar czf $(MANUAL_TAR_FILE)$(MANUAL_VERSIONED)
scp $(MANUAL_TAR_FILE)$(RELEASE_UPLOAD_HOST):$(MANUAL_UPLOAD_DIR) ssh$(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && tar xzf$(MANUAL_TAR_FILE) && ln -sf $(MANUAL_TAR_FILE) cairo-$(MANUAL_TAR_FILE)"

It'd be nifty if we could fold in similar logic, as well as the
auto-updating of the Downloads page on the website (which is currently
done manually for wayland).

Bryce
Post by Pekka Paalanen
Post by Bryce Harrington
Alternatively, maybe we would want the displayed docs to match current
git? If so, then maybe a cronjob would be in order?
Hmm. That'd be almost like a CI service except it also pushes the docs.
Daniel, suggestions?
[1] http://cgit.freedesktop.org/cairo/tree/RELEASING - step #6
[2] http://cgit.freedesktop.org/cairo/tree/build/Makefile.am.releasing
Peter Hutterer
2015-02-24 03:55:15 UTC
Post by Bryce Harrington
Post by Pekka Paalanen
On Fri, 20 Feb 2015 14:29:18 -0800
Post by Bryce Harrington
Post by Pekka Paalanen
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,
I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?
If you add this step to the end of the releasing.txt document, I can
make sure this gets done at least once a release going forward.
I wonder... I do a 'make install' to a prefix and then just 'scp -r'
the right sub-dir. Maybe there's a better way?
I suppose we could also write a 'make publish-docs' that would do it if
ssh is set up right.
Cairo has a "make release-publish" step[1] which essentially does
release.sh plus updates the website, and generates and uploads
documentation.
Their makefile snippet[2] includes a bunch of logic for maintaining old
versions of the docs and linking to the latest via symblinks, but
essentially they're creating a tarball, scping it, and unpacking it on
doc-publish-versioned: doc
rm -rf ./$(MANUAL_VERSIONED) cp -a doc/public/html$(MANUAL_VERSIONED)
tar czf $(MANUAL_TAR_FILE)$(MANUAL_VERSIONED)
scp $(MANUAL_TAR_FILE)$(RELEASE_UPLOAD_HOST):$(MANUAL_UPLOAD_DIR) ssh$(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && tar xzf$(MANUAL_TAR_FILE) && ln -sf $(MANUAL_TAR_FILE) cairo-$(MANUAL_TAR_FILE)"
It'd be nifty if we could fold in similar logic, as well as the
auto-updating of the Downloads page on the website (which is currently
done manually for wayland).
just fwiw, libinput has this one:
http://cgit.freedesktop.org/wayland/libinput/tree/tools/publish-doc
(libevdev uses the same-ish script, to little suprise)

Needs to be run manually, but usually it doesn't matter if it's out of date
a little on master. and then on every release I just do a cp -a latest 0.11
on the server directly.

Cheers,
Peter
Pekka Paalanen
2015-02-24 08:31:53 UTC
On Tue, 24 Feb 2015 13:55:15 +1000
Post by Peter Hutterer
Post by Bryce Harrington
Post by Pekka Paalanen
On Fri, 20 Feb 2015 14:29:18 -0800
Post by Bryce Harrington
Post by Pekka Paalanen
On Mon, 16 Feb 2015 12:52:27 -0800
Post by Bill Spitzak
Post by Bryce Harrington
http://wayland.freedesktop.org/docs/html/
It looks like these pages have not been updated to the newest output,
in particular apa.html, which does not have the "object" replaced
with the actual types and the cross-reference links.
Hi,
I generated the docs from Wayland 1.7.0 and pushed them to
wayland.fd.o. Is it ok now?
If you add this step to the end of the releasing.txt document, I can
make sure this gets done at least once a release going forward.
I wonder... I do a 'make install' to a prefix and then just 'scp -r'
the right sub-dir. Maybe there's a better way?
I suppose we could also write a 'make publish-docs' that would do it if
ssh is set up right.
Cairo has a "make release-publish" step[1] which essentially does
release.sh plus updates the website, and generates and uploads
documentation.
Their makefile snippet[2] includes a bunch of logic for maintaining old
versions of the docs and linking to the latest via symblinks, but
essentially they're creating a tarball, scping it, and unpacking it on
doc-publish-versioned: doc
rm -rf ./$(MANUAL_VERSIONED) cp -a doc/public/html$(MANUAL_VERSIONED)
tar czf $(MANUAL_TAR_FILE)$(MANUAL_VERSIONED)
scp $(MANUAL_TAR_FILE)$(RELEASE_UPLOAD_HOST):$(MANUAL_UPLOAD_DIR) ssh$(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && tar xzf$(MANUAL_TAR_FILE) && ln -sf $(MANUAL_TAR_FILE) cairo-$(MANUAL_TAR_FILE)"
It'd be nifty if we could fold in similar logic, as well as the
auto-updating of the Downloads page on the website (which is currently
done manually for wayland).
http://cgit.freedesktop.org/wayland/libinput/tree/tools/publish-doc
(libevdev uses the same-ish script, to little suprise)
Needs to be run manually, but usually it doesn't matter if it's out of date
a little on master. and then on every release I just do a cp -a latest 0.11
on the server directly.
That sounds nice. I think I'd leave it to our release manager Bryce to
pick the way that best suits him. All I ask is a simple way to publish
docs from master also without a release. Is this ok?

Thanks,
pq
Daniel Stone
2015-02-24 16:59:06 UTC
Hi,
Post by Pekka Paalanen
On Fri, 20 Feb 2015 14:29:18 -0800
Post by Bryce Harrington
Alternatively, maybe we would want the displayed docs to match current
git? If so, then maybe a cronjob would be in order?
Hmm. That'd be almost like a CI service except it also pushes the docs.
Daniel, suggestions?
Yes very much please. If someone makes a script which does the push,
I'll get it set up to trigger on every commit.

(Relatedly: do we have some kind of strict switch to doxygen which
would force doc generation to bomb on make check for warnings such as
undefined references?)

Cheers,
Daniel
Bryce Harrington
2015-05-28 19:30:58 UTC
Post by Daniel Stone
Hi,
Post by Pekka Paalanen
On Fri, 20 Feb 2015 14:29:18 -0800
Post by Bryce Harrington
Alternatively, maybe we would want the displayed docs to match current
git? If so, then maybe a cronjob would be in order?
Hmm. That'd be almost like a CI service except it also pushes the docs.
Daniel, suggestions?
Yes very much please. If someone makes a script which does the push,
I'll get it set up to trigger on every commit.
This now exists in the wayland repo.
Post by Daniel Stone
(Relatedly: do we have some kind of strict switch to doxygen which
would force doc generation to bomb on make check for warnings such as
undefined references?)
Bryce