版本发布 8
This release fixes buffer allocation on FreeBSD.
### Highlights * The new ext-image-copy-capture-v1 protocol has been implemented for output capturing. * A file descriptor created by a parent process can be used for listening for new connections, thanks to Attila Fidan. * Clipboard handling has been made more robust, thanks again to Attila Fidan. * WayVNC can now allocate CMA backed pixel buffers. They are required for hardware encoding on Raspberry Pi. * Keyboard LED state can be passed to clients. See [Neat VNC's release notes](https://github.com/any1/neatvnc/releases/tag/v0.9.0) for more highlights. ### Bug fixes * Output power management is now only enabled while capturing. ### Acknowledgments Special thanks go to Raspberry Pi Ltd. for sponsoring some of the work that's gone into this release. If you run a business and would like to accelerate the development of this project, feel free to contact me. ### Shortlog ``` Andri Yngvason (61): README: Use ECDSA instead of RSA ctl: Emit event when output is added/removed meson: Bump version to 0.9 buffer: Allocate DMA-BUFs via CMA where available util: Add ALIGN_UP macro buffer: Align CMA buffers up to nearest multiple of 16 FUNDING.yml: Add github sponsors test: integration: Disable multi-output test buffer: Only include linux/dma-heap.h where available README: Update builds.sr.ht badge path keyboard: Pass keyboard LED state to client Initialise VNC last buffer: Fix dma head feature guard macros Fix show-performance option name Manage power only during capturing table-printer: Make left column width constant main: Make external-listener-fd option boolean ctl-client: Remove unused code buffer: Create a global buffer registry Move calculate_region_area to pixels.c Create abstract screencopy interface Implement ext-image-copy-capture-v1 protocols: Add ext-foreign-toplevel-list-v1 ext-image-copy-capture: Remove bogus header Use render node supplied by ext-image-copy-capture buffer: Save render node device id into buffer ext-image-copy-capture: Pass modifiers ext-image-copy-capture: Release pointer object after use Clean up various memory leaks README: Update sr.ht build status badge buffer: Remove use of major()/minor() .gitignore: Add sandbox directory cfg: Fix double-free on failure buffer: Keep gbm device alive while buffer lives output-management: Destroy config head objects ext-image-copy-capture: Add pts buffer: Fix build with disable dmabuf image-copy-capture: Fix unused variable warning main: Remove unused variable main: Fix show-performance option Order command line options by the alphabet Add option to disable resizing buffer: Fix copying of modifiers from config buffer: Pass multi-planar buffers to compositor buffer: Fix error check in gbm device creation buffer: Log a debug message when reconfiguring ext-image-copy-capture: Select optimal format & modifier ext-image-copy-capture: Split buffer config into smaller functions ext-image-copy-capture: Check if preferred format changed on every frame ext-image-copy-capture: Remove superfluous logging Add missing ifdefs for screencopy-dmabuf man: Alphabetise options man: Add missing command line options output-management: Fix unused variable warning in release build ext-image-copy-capture: Fix unused variable warning in release build meson: Fix deprecation warnings man: Fix repeated words buffer: Fix result type in find_render_node buffer: Don't open render node for shm ext-image-copy-capture: Fall back to SHM if DMA-BUF pool config fails main: Stop capture retry timer when detaching Attila Fidan (16): FAQ: Add example disabling floating_modifier in passthrough mode main: Use info.address_storage to compose client addr strings main: Fix transient-seat option naming in an error man: Fix inconsistent spacing between short/long opts main: Allow starting server from a bound socket fd data-control: Ignore our own offers via custom MIME type data-control: Stop receive handlers on destroy data-control: Directly reference server in receive_context main: Ignore SIGPIPE signal data-control: Do error checking for read/write data-control: Set O_NONBLOCK on the receive and send fd data-control: Fallback to asynchronous source send data-control: Destroy offer object in selection callback data-control: Dedup common cleanup code data-control: Remove unnecessary wl_display_flush() main: Fix double nvnc_close() Jan Beich (1): ctl: Add missing header after 42494fbbe463 Ontje Lünsdorf (1): main: Do not access screencopy in detached mode Simon Ser (1): meson: Specify check arg in run_command() guylamar2006 (1): Fix node16 deprecation error ```
### Highlights * Transient seats via the new `ext-transient-seat-v1` protocol. These are not implemented in any compositor yet, but will hopefully be a part of sway 0.10 * Automatic server-side resizing of headless outputs, by courtesy of Consolatis * Detached mode, which allows wayvnc to attach to and detach from a running compositor ### Bugfixes * A crash when trying to attach to a non-wlroots compositor has been fixed. Attaching fails, but it doesn't crash. These have already been released as a part of the v0.7 branch, but they will also be enumerated here: * Missing documentation for the websocket flag * Null-dereferencing when input is disabled * Out-of-bounds memory access when compositors submit out-of-bounds damage * Too strict authentication related config parameter sanitation ### Shortlog ``` Andri Yngvason (27): Set version for next release meson: Bump Neat VNC version requirement Don't use tag for git version Add transient seats Fix copy-pasta from last commit ctl-server: Add null-check for info.seat Sanitise buffer damage from compositor Relax auth parameter sanitation Implement detached mode Detach instead of exiting when compositor goes away Emit "detached" control event examples: Add script to auto attach to any compositor builds: archlinux: Add python cryptodomex Detach instead of exiting if all outputs go away main: Only one client is allowed to resize output: NOOP is another name for HEADLESS output-management: Force normal transform on headless main: Remove wayland fd handler on detach output-management: Clean up and init resources on destroy pam_auth: Correct use of calloc() main: Fix ctl-server use after free meson: Pre-release v0.8-rc0 main: Pass error messages to control socket main: Fix crashes with non-wlroots compositors ctl: Replace hostname with IP address Merge branch 'master' into v0.8 Release v0.8.0 Christopher Snowhill (1): Add null seat pointer checks Consolatis (2): Add wlr-output-management protocol Automatically resize headless outputs on client request Lucas Servén Marín (1): man: document websocket flag ```
This pre-release adds the following new features: * Transient seats via the new `ext-transient-seat-v1` protocol * Automatic server-side resizing of headless outputs, by courtesy of Consolatis * Detached mode, which allows wayvnc to attach to and detach from a running compositor ### Changes ``` Andri Yngvason (22): Set version for next release meson: Bump Neat VNC version requirement Don't use tag for git version Add transient seats Fix copy-pasta from last commit ctl-server: Add null-check for info.seat Sanitise buffer damage from compositor Relax auth parameter sanitation Implement detached mode Detach instead of exiting when compositor goes away Emit "detached" control event examples: Add script to auto attach to any compositor builds: archlinux: Add python cryptodomex Detach instead of exiting if all outputs go away main: Only one client is allowed to resize output: NOOP is another name for HEADLESS output-management: Force normal transform on headless main: Remove wayland fd handler on detach output-management: Clean up and init resources on destroy pam_auth: Correct use of calloc() main: Fix ctl-server use after free Christopher Snowhill (1): Add null seat pointer checks Consolatis (2): Add wlr-output-management protocol Automatically resize headless outputs on client request Lucas Servén Marín (1): man: document websocket flag ```
This release fixes the following issues: * Missing documentation for the websocket flag * Null-dereferencing when input is disabled * Out-of-bounds memory access when compositors submit out-of-bounds damage * Too strict authentication related config parameter sanitation ### Changes ``` Andri Yngvason (4): ctl-server: Add null-check for info.seat Sanitise buffer damage from compositor Relax auth parameter sanitation Christopher Snowhill (1): Add null seat pointer checks Lucas Servén Marín (1): man: document websocket flag ```
This fixes the version requirement for Neat VNC.
As usual, most of the work takes place in Neat VNC, and there is more to see in the release notes for Neat VNC: https://github.com/any1/neatvnc/releases/tag/v0.7.0 ### Highlights * Each client can now have its own seat, i.e. it's own cursor and separate keyboard focus * A new option to create a websocket instead of a regular TCP socket * Software pixel buffers with fewer bits per pixel than 32 are now supported, thanks to MazTheMan * A new RSA based authentication method with encryption has been added * A config file can now reference files relative to the directory in which it resides ### Bugfixes * The `unix-socket` option is fixed * Various kinks in `wayvncctl` have been ironed out ### Changes ``` Andri Yngvason (29): ctl-client: Use EAGAIN instead of ENODATA Add sr.ht build manifest .github: Add issue templates CONTRIBUTING.md: Add extra commit message rule CONTRIBUTING.md: Summarise coding style guide .github: Add pull request template .github: template: bug: Improve clarity Prepare for per-client seats main: Increase access to per-client seats Show seat in client list Iterate over clients instead of listing Remove unnecessary copying when listing clients Add seat name to client-connected event seat: Add occupancy count Assign clients to unoccupied seats main: Add websockets README: Remove "installing" section main: Use 1 client cleanup function Add non-tls authentication Add config parameter for RSA private key file Use new Neat VNC authentication API man: Add new auth config entries README: Document RSA-AES Add config option to make paths relative to config file man: Document use_relative_paths parameter README: Use relative paths in config examples Allow use of absolute paths with config relative paths main: Add rsa to command sanity checker util: valgrind.sh: Find suppressions regardless of current dir Benjamin Richter (1): main: Fix unix-socket option parsing Jim Ramsay (14): Add build status badges to README Fix all non-parameterized IPCs Add initial integration test to CI Fix indenting and unlicense example scripts Update build deps for fedora Add vncdotool for integration tests Add verbosity to integration test timeout loops Add event check to integration test Harden wayvncctl client json message parsing Harden wayvncctl --reconnect Fix 'wayvncctl wayvnc-exit' return code test: tidy up integration tests test: Add multi-output integration test Updated documentation for integration tests MazTheMan (1): get pixel size from fourcc to calculate pixel stride Michael Vetter (2): Dont include ctrl-server.h in client file Add packaging status badge to README ```
This fixes control commands that don't take any parameters.