Skip to content

Releases: any1/wayvnc

v0.8.0

25 Feb 12:10
Compare
Choose a tag to compare

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

10 Dec 19:43
Compare
Choose a tag to compare
v0.8-rc0 Pre-release
Pre-release

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

05 Nov 21:23
Compare
Choose a tag to compare

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

04 Oct 22:54
Compare
Choose a tag to compare

This fixes the version requirement for Neat VNC.

v0.7.0

04 Oct 22:15
Compare
Choose a tag to compare

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

27 Jan 08:43
Compare
Choose a tag to compare

This fixes control commands that don't take any parameters.

v0.6.1

23 Jan 22:33
Compare
Choose a tag to compare

This fixes compatibility issues with FreeBSD and a few other systems.

v0.6.0

23 Jan 10:37
Compare
Choose a tag to compare

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

v0.5.0

09 Jul 18:26
Compare
Choose a tag to compare

The most significant addition for this release is H.264 encoding via the
Open H.264 RFB protocol extension. Clients that have implemented Open H.264
at this time are TigerVNC and wlvncc, of which only the latter uses hardware
accelerated decoding.

H.264 encoding is hardware accelerated and requires the --gpu command line
flag to be enabled. It isn't particularly useful without hardware acceleration,
so it's better to stick with "Tight" encoding if you don't have GPU rendering.

Highlights

  • H.264 Encoding
  • Input can now be disabled
  • UNIX Sockets
  • Screen-capturing via DMA-BUF is now a command line flag (--gpu)
  • Improved logging and error messages

Shortlog

Andri Yngvason (26):
      Display Patreon account on GitHub page
      README: Update installation steps for archlinux
      README: IRC channel has moved to libera.chat
      Use new NeatVNC buffer submission API
      Align with nvnc_fb_pool API change
      Let neatvnc handle buffer transforms
      Remove damage-refinery
      Remove left-over #include
      Correct transform for y-inverted buffers
      main: Pin wl_output version to 3
      screencopy: Set upper bounds on protocol version
      main: Set upper bounds on pointer manager version
      README: Clarify that Gnome and KDE are not supported
      README: Emphasize the "not" in "not supported"
      main: Exit on failed keyboard initialisation
      FAQ: Mention WAYLAND_DISPLAY
      pixels: Remove unused function
      Clean up input managers and input backends separately
      screencopy: Attach pts to nvnc fbs
      main: Add a placeholder buffer
      main: Extract input related object binding into function
      main: Disallow setting seat name and disabling input
      main: Add options to change log level
      Use neatvnc logging facilities
      screencopy: Add pts to dtrace probes
      Make enabling of screencopy-dmabuf a runtime option

Consolatis (1):
      Function without virtual keyboard, mouse protocol

Gunnar Wolf (1):
      Documented wayvnc is now available in Debian as well

Joel Jensen (1):
      When remote input is disabled, also disable clipboard management

Matthias Braun (1):
      Fix typos in README.md

Ryan Farley (1):
      Support UNIX domain sockets

shironeko (2):
      Disable seat completely when using disable-input
      main: check data_control exist before using it

v0.4.1

16 Dec 20:22
Compare
Choose a tag to compare

This release fixes wayland protocol version binding bugs. These fixes are needed for the upcoming wlroots release.

Andri Yngvason (3):
      main: Pin wl_output version to 3
      screencopy: Set upper bounds on protocol version
      main: Set upper bounds on pointer manager version