Releases: any1/wayvnc
Releases · any1/wayvnc
Release list
v0.10.1
This patch release fixes typos in the man page, string truncation issues in the control ipc code and various issues with detached mode.
Shortlog
Andri Yngvason (9):
main: Defer detach when last output goes away
main: Cancel deferred detach on output added
main: Remove extraneous nvnc_remove_display
main: Fix output image source type check
main: Bail early if attach fails
json-ipc: Truncate vsnprintf output length
json-ipc: Bump jvprintf's buffer to 256
output: Treat failed power state as ON
Release v0.10.1
Olivia Lee (1):
man: Fix typo in private_key_file config docs
dmotte (1):
man: Fix some typos and formatting issues
v0.10.0
Highlights
- Multiple outputs can now be captured using the
--desktopflag. They will
all be composited into one large framebuffer based on the compositor's
layout. - It is now possible to listen on multiple endpoints by setting multiple
listening addresses. See the man page for more information. - A custom desktop name can now be set thanks to Attila Fidan. The desktop name
is usually displayed in the title bar or the VNC client. - Legacy DES authentication has been implemented by Andrian Budantsov along
with support for older versions including 3.3 and 3.7. This allows people to
connect using legacy software such as Remote Desktop on Mac OS. - The forward and back mouse buttons should now work on clients that support
them.
Shortlog
Andri Yngvason (119):
meson: Bump version to 0.10-dev
main: Use new neatvnc listen api
option-parser: Add repeating positional arguments
main: Implement multi-address listening
main: Accept multiple addresses from config
buffer: Require environment variable to enable CMA
ext-image-copy-capture: Check for buffer allocation failure
pointer: Add forward and back buttons
Provide more thorough bug-report instructions
Fix typo in bug report template
main: Improve deinitialisation order
Return error in output control commands when detached
Use aml v1
data-control: Demote 0-length error to debug message
ext-image-copy-capture: Only keep session while capturing
Validate log-level and fix verbose option
screencopy: Remove average capture delay
Remove exponential smoother
screencopy: Use start time for rate limit
ext-image-copy-capture: Simplify rate limiting
main: Add global rate limiter
main: Add a comment to explain rate limiting
Clear cursor when screen blanking
meson: Use new pkgconfig for aml1
keyboard: Implement multiple layouts
ext-image-copy-capture: Calculate correct stride
Introduce abstract image-source for capturing
Implement toplevel capture
Remove output dimension change callback
output: Remove unused code
Move point transform function
Fall back to using last frame for dimensions
Bundle sys/queue.h
Implement observer pattern
image-source: Use observer for power_change
image-source: Remove output-added notifier
toplevel: Make impl static
Add multi-output desktop capture
output: Make output_destroy alias for image_source_destroy
screencopy: Make starts idempotent
main: Add log-filter option
screencopy: Turn caps into method
man: Add new options
output: Use logical width & height
main: Set logical size on nvnc displays
Extract wayland connection class from main
buffer: Make wl_buffer inert on detach
image-source: Add geometry change observable
main: Observe desktop dimension changes
image-source: Add destroyed observable
main: Remove nvnc displays when outputs disappear
main: Add new nvnc displays when outputs appear
output: Add method to get last output in list
main: Allow resizing single output desktop
main: Use transformed dimension in geometry change handler
main: Use correct desktop output dimensions
buffer: Unlink destroyed pool from inflight buffers
main: Remove exit on capture failure
main: Only exit when there are no desktop outputs left
desktop: Make sc inert when desktop is destroyed
main: Fix sc and image source resource management issues
Remove buffer domains
main: Fix null-pointer dereference in desktop_output_destroyed
main: Add missing error check for wayland_connect
Consolidate wayland attach & detach
desktop: Implement cursor capture
main: Pass display to init_wayland
main: Use local display dimensions for placeholder frame
main: Fix keyboard parsing constness warning
data-control: Use vec instead of memstream
data-control: Make listener callback structs static
Implement ext-data-control-v1
data-control: Deduplicate
Copy dynamic buffer from Neat VNC
CONTRIBUTING.md: Add section on LLMs
Align with new nvnc auth API
test: integration: Colorise report
wayland: Remove output & seat after notifying
test: integration: Fix multi-output tests
output: Return NULL from output_{first,last} when empty
test: integration: Add a simple detached mode test
test: integration: Add a smoke test for desktop capture
Use new nvnc_buffer_pool
buffer: Use pixel stride instead of byte stride
main: Drop width & height from nvnc_set_cursor
Use normalised pointer coordinates
image-source: Add methods to get buffer size
main: Apply image source scale to cursor
buffer: Fix UAF on release
buffer: Clear frame damage on release
main: Release cursor buffer after use
buffer: Make buffer link inert when pool goes away
image-source: Rename size getters
output: Rename width & height struct members
output: Latch output state on done event
output: Use getter methods for output state and consolidate sizes
desktop: Remove image_source_get_buffer_size
Grow logical coordinate space to eliminate downsampling
output-management: Bind to version 3
output-management: Clean up head and mode objects
wayland: Add checks for min bind version
test: integration: Use pixman renderer
.builds: archlinux: Add python-cryptography
Move Ubuntu CI to sourcehut
test: integration: Get backtrace when wayvnc crashes
desktop: Handle cursor capture failure
.builds: Enable debug, tests and examples
.builds: freebsd: Add py-cryptography
man: Remove irrelevant paragraph about DES
main: Set NVNC_AUTH_REQUIRE_USERNAME when PAM is enabled
main: Add null-string check when attaching to wayland
Align with latest neatvnc API changes
Align with new neatvnc auth API
API: Rename NVNC_FB_UNSPEC -> NVNC_BUFFER_UNSPEC
Implement full desktop resizing
main: Align with neatvnc auth API changes
Align with neatvnc userdata API changes
man: Document address arguments
Release v0.10.0
Andrian Budantsov (2):
main: Add DES authentication support
main: Remove display from server on destroy
Attila Fidan (2):
main: Add option to set a custom desktop name
ctl: Add command to set the desktop name
Greg Darke (1):
main: Allow websockets to use fd and unix sockets
Michael Taubert (1):
main: Add option to exit on last disconnect
Thilo Bangert (1):
add usage example
matt335672 (1):
client-resize: Stop rate_limiter timer
v0.9.1
v0.9.0
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 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
v0.8.0
Highlights
- Transient seats via the new
ext-transient-seat-v1protocol. 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
v0.8-rc0
This pre-release adds the following new features:
- Transient seats via the new
ext-transient-seat-v1protocol - 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
v0.7.2
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
v0.7.1
v0.7.0
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-socketoption is fixed - Various kinks in
wayvncctlhave 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