Releases: any1/wayvnc
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-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
v0.8-rc0
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
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-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
v0.6.2
v0.6.1
v0.6.0
Thanks to Jim Ramsay, we now have a new control command named wayvncctl
that can be used to configure the server while it's running. A non-exhaustive list of new features that are enabled by this addition are the following:
- The captured output can be changed on the fly
- Connected clients can be listed and managed
- Various events can be monitored
See the man page for wayvncctl(1)
for more information.
The control interface may change in future versions, and that includes the names of commands and events.
Highlights
- Control interface, mentioned above.
- Screen capturing is paused when no client is connected
- Screen capturing is paused for outputs that are powered off
- Horizontal scrolling
- Each client now gets its own set of virtual inputs. This helps with state tracking.
- Symbol to key code mapping now works better with xwayland
Changes
Ahmad Fatoum (1):
README: note that Weston is not supported
Andri Yngvason (45):
main: Fix typo in help text
pointer: Add horizontal scrolling
Align man-page with help-text
util: trace.sh: Fix chown and event serialisation
keyboard: Prefer lower keycodes
man page: Add FAQ entry about unsupported protocols
main: Refer users to man page when screencopy is missing
main: Suggest to enable debug logging when address binding fails
Adapt to aml api change
Normal exiting conditions should not yield warning
wayvnc manpage: Fix typo
Create option parser interface
ctl-server: Fix sign-compare warning
main: Add per-client state
Create separate input for each client
Create separate data-control for each client
Fixup previous commit
meson: Set default warning level to 2
buffer: Add braces to side-step bogus fallthrough warning
ctl-server: Fix sign compare warning
main: Use stronger error checking for client ids
ctl: Fix sign compare warnings
Move control command schemas into own files
output: Abort on invalid power state
output: The name the "unknown" power state is "UNKNOWN"
Implement custom option parser
Add meson.build for unit tests
main: Don't init render node with gpu disabled
ctl-client: Align log messages with other log messages
ctl-client: Rename WARNING log level to ERROR
ctl-client: Add a few vertical spaces + style changes
ctl-client: Use more descriptive response error message
ctl-client: Rename print_as_yaml -> print_for_human
ctl-client: Remove messages about how many clients/outputs there are
ctl-client: Remove decorations in client/output lists
ctl-client: Don't print "<<null>" for events with no params
ctl-client: Print trailing newline for events
ctl-server: Fix segfault in error path
ctl-server: Improve error messages for missing arguments
ctl-commands: Capitalise "VNC"
ctl-commands: Fix typo
ctl-client: Replace = with : in event description
ctl-commands: Use slightly more helpful schemas
meson: Require specific versions of aml and neatvnc
Release v0.6.0
Consolatis (2):
Prevent capture and performance counter when idle
main: Prevent capture restart if idle
Jim Ramsay (85):
Log the listening address and port
Log removal of seats and outputs
Add manpage section about multiple outputs
Log signal handler
Log output selection and list of outputs
Refactor pointer initialization code
Refactor output selection code
Add output_cycle to get next/prev outputs
Add functions to switch outputs on the fly
Switch to previous output if current output disappears
Add json-ipc message plumbing
Add ctl control socket and initial command infrastructure
Refactor some common utilities out of main
Add ctl-client code
Add initial wayvncctl executable
Add wayvnctl help command
Add wayvncctl version command
Manpage updates for wayvnc and wayvncctl
Allow 'wayvncctl foo --help' syntax
Add wayvncctl human-readable output
Clarify the various wayvncctl 'help' modes
Ensure fatal errors are sent first
Add jsonipc event message constructor
Add server event infrastructure
Added event help text
Introduce an event loop mode in wayvncctl
Add example event-watcher script
Cleanup stale unix socket, iff inactive
Git: ignore .cache/
Fix wayvncctl usage and manpage typos
Add wayvncctl --wait option
Add wayvncctl --reconnect option
Clean up wayvncctl logging
Introduce wayvncctl startup amd shutdown events
Introduce a simple CI that builds wayvnc
Fix segfault if running wayvncctl with no args
Make better client IDs for wayvncctl
Add wayvncctl get-clients command
Start capture on output switch iff clients are connected
Add wayvncctl get-outputs command
Ensure cmd parsing never mis-sets the type
Add wayvncctl disconnect-client command
Cleanup magic strings in event sending code
Add wayvncctl capture-changed event
Add wayvncctl wayvnc-exit command
Add a brief timeout between a capture failure and the retry
Add more libraries to the build CI environment
Add power management state to the output object
Don't attempt capture if an output is powered off
Turn output power on when starting capture
Blank the capture screen when output power turns off
Switch wayvncctl to use option_parser
Refactor comand and event name parsing
Handle all wayvncctl help commands locally
Add output power state to get_outputs ipc command
Refresh and cleanup README.md
Fix trace logging assert crash
Fix segfault after hot-plugging outputs
Improve error message for client receive buffer overflow
Increase client receive buffer size
Force a wayland round-trip after an output appears
Add single-output-sway helper script
Add more error logs for wayland init failures
Fixup buffer.c compiler warning
Add unit tests to github CI
Run github CI on a ci-test branch too
Enable unit tests by default
Cleanup CI reporting and step names
Convert wayvncctl subcommands to use option-parser
Fix segfault for wayvncctl help --command=bad-name
Remove 'help' command and clean up help output
Add help text for wayvncctl-only events
Refactor option-parser table printing code for reuse
Add command and event details to help output
Rename and reorder all wayvncctl commands
Split wayvnctl output-set into output-set and output-cycle
CI: Run apt-get update before install
Allow positional args for single-param commands
Add help output for wayvncctl positional arguments
Add description and argument help to wayvnc --help
Add 'schema' to wayvncctl command parameters
Add option_parser_print_usage
Allow reflow of multiline text
Autoprint option default values
Clean up command summary printing
Simon Ser (1):
readme: remove link to compatibility table