Skip to content

Releases: any1/wayvnc

v0.9.1

20 Nov 22:53
Compare
Choose a tag to compare

This release fixes buffer allocation on FreeBSD.

v0.9.0

19 Nov 11:20
Compare
Choose a tag to compare

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

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