Skip to content

Releases: any1/wayvnc

v0.10.1

Choose a tag to compare

@any1 any1 released this 09 Jul 18:52

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

Choose a tag to compare

@any1 any1 released this 28 Apr 08:48

Highlights

  • Multiple outputs can now be captured using the --desktop flag. 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

Choose a tag to compare

@any1 any1 released this 20 Nov 22:53

This release fixes buffer allocation on FreeBSD.

v0.9.0

Choose a tag to compare

@any1 any1 released this 19 Nov 11:20

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

Choose a tag to compare

@any1 any1 released this 25 Feb 12:10

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

v0.8-rc0 Pre-release
Pre-release

Choose a tag to compare

@any1 any1 released this 10 Dec 19:43

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

Choose a tag to compare

@any1 any1 released this 05 Nov 21:23

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

Choose a tag to compare

@any1 any1 released this 04 Oct 22:54

This fixes the version requirement for Neat VNC.

v0.7.0

Choose a tag to compare

@any1 any1 released this 04 Oct 22:15

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

Choose a tag to compare

@any1 any1 released this 27 Jan 08:43

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