wayvnc

A VNC server for wlroots based Wayland compositors

ISC License

Stars
1.1K
Committers
30

Bot releases are visible (Hide)

wayvnc - v0.8.0 Latest Release

Published by any1 8 months ago

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
wayvnc - v0.8-rc0

Published by any1 10 months ago

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
wayvnc - v0.7.2

Published by any1 12 months ago

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
wayvnc -

Published by any1 about 1 year ago

This fixes the version requirement for Neat VNC.

wayvnc - v0.7.0

Published by any1 about 1 year ago

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
wayvnc - v0.6.2

Published by any1 over 1 year ago

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

wayvnc - v0.6.1

Published by any1 over 1 year ago

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

wayvnc - v0.6.0

Published by any1 over 1 year ago

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
wayvnc -

Published by any1 over 2 years ago

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
wayvnc - v0.4.1

Published by any1 almost 3 years ago

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
wayvnc -

Published by any1 almost 4 years ago

Highlights

  • PAM Authentication, thanks to Nicholas Sica.
  • Faking of modifiers to match keyboard symbols not found at the current shift
    level.
  • QEMU extended key event, which uses key codes instead of key symbols. This
    bypasses the need for reverse keyboard symbol mapping for clients that
    support the extension, so the server doesn't need to know about keyboard
    layouts.
  • Xkb config parameters have been added.

Shortlog

Aisha Tammy (1):
      make systemtap optional

Andri Yngvason (23):
      man: Update description for --keyboard option
      Limit usage text to 80 characters per line
      Add contributing guide
      CONTRIBUTING: Fix markdown for links
      README: Trim down installation instructions
      README: Add PAM to runtime dependency list
      .gitignore: Add .vimrc
      keyboard: Extract function 'keyboard_feed_code()'
      Add handler for raw key events
      meson: Depend on neatvnc >=v0.4.0
      keyboard: Split keyboard_feed_code() into more functions
      keyboard: Match shift levels to keycodes when needed
      keyboard: Pass struct xkb_rule_names to keyboard_init
      Add xkb config options
      Document xbk config options
      Document how to enable the compose key
      keyboard: Always use layout index 0
      logging: Add warning log level
      keyboard: Show warning when multiple layouts are specified
      meson: Require xkbcommon >= 1.0.0
      README: Mention the GitHub discussion page
      Also exit on ECONNRESET
      Release v0.4.0

Antonin Décimo (2):
      Remove unused ALIGN_UP macro
      Fix use-after-free in error path

Arnavion (1):
      Don't free the front buffer if screencopy fails

Flakebi (1):
      Fix de-neo layout

NickSica (1):
      Add PAM authentication
wayvnc -

Published by any1 about 4 years ago

New features since v0.2.0:

  • Copy & paste, thanks to Scott Moreau.
  • wayvnc now has man page.
  • wayvnc now exits if authentication is enabled but fails.
Alexander Graul (1):
      Add openSUSE Tumbleweed installation instruction

Andri Yngvason (15):
      buffer: Fix buffer attribute comparison
      README: Use "yay" in archlinux installation instructions
      Exit if enabling auth fails
      Clean up config on exit
      Clean up aml on nvnc init failure
      data-control: Make offer handling asynchronous
      data-control: Don't free data-control-manager twice
      data-control: Clean up whole receive context in aml_free_fn
      data-control: Destroy data device on exit
      Don't init data_control if it's not supported by compositor
      Write a man page
      Generate and install a man page
      man-page: Fix wording
      FAQ: Remove outdated Q
      Release v3.0.0

Jan Beich (1):
      shm: guard fallback on FreeBSD < 13 as well

Jony (1):
      add Void Linux install command to README.md

Scott Moreau (1):
      Add basic clipboard support
wayvnc - v0.2.0

Published by any1 about 4 years ago

New features since v0.1.2:

  • The OpenGL ES 2.0 based renderer has now been replaced with a pixman based
    renderer. The new renderer is both simpler and performs better on devices
    with poor memory bandwidth such as the Raspberry Pi 3.
  • Extra damage checking is now done using a fash-hash (murmur3) based method,
    rather than comparing frames. This saves memory bandwidth.
  • Experimental support for GPU side wlr-screencopy (wlroots 0.11.0 is
    required).
  • dtrace probes have been added for latency measurements.

Bugs that have been fixed since v0.1.2:

  • Output transformations are now in line with wlroots's output transformation
    behaviour.
  • Shared memory files are now allocated with the correct size rather than zero.
  • Keyboard modifiers no longer get stuck.
  • Wayvnc exits when the compositor goes away rather than crashing.
  • Wayvnc exits when the selected seat or output goes away rather than crashing.

Other changes:

  • The default frame rate limit has been changed from 20 to 30 FPS, but it can
    also be changed using the --max-fps command line option.

This release is also affected by changes made to NeatVNC, e.g. much improved
tight encoding. See: https://github.com/any1/neatvnc/releases/tag/v0.2.0

Andri Yngvason (149):
      Merge pull request #20 from cherusk/fed_deps
      README: Clean up build dependencies for fedora
      README: Add build dependency package list for archlinux
      README: Add installation instructions for archlinux
      Replace libuv with aml
      README: Upgrade build instructions to include aml
      Exit when compositor goes away
      renderer: Use FBO instead of pbuffer
      Renderer: Keep last texture
      renderer: Split buffer import and rendering
      renderer: Move shader setup into render()
      renderer: Add u_tex1 to shaders
      renderer: Show error message when shader compilation failse
      renderer: Show error when linking shaders fails
      renderer: Set up texture bindings on render()
      renderer: Add damage shaders
      renderer: Add damage renderer
      renderer: Render to texture
      renderer: Save previous rendered frame rather than previous imported frame
      shaders: Fix damage vertex shader
      shaders: damage: Flip vertically
      renderer: Swap FPOs rather than textures
      Implement damage buffer conversion
      Move rendering calls into frame-capture
      damage: Add asynchronous damage checking
      Use GPU damage checker
      Join process_frame() and update_vnc()
      damage: Respect frame boundaries
      Only copy the damaged region from GPU
      Blit the whole frame when a new client connects
      FAQ: Answer some questions
      FAQ: Fix typo
      Rotate NeatVNC framebuffers rather than allocating new ones
      Make sure damage buffer is properly aligned
      renderer: Use ATTR_INDEX_ constants for glEnableVertex*
      Add dtrace probe infrastructure
      screencopy: Add dtrace probes
      renderer: Add dtrace probes
      Create a script for processing trace data
      Add script to run perf trace with USDT
      util: latency_report: Add sending fbs to report
      Make sure that frames being written to are not in use by the encoder
      Capture a new frame immediately when a client requests a whole frame
      Merge frames rather than dropping them when encoder is too slow
      Report error when binding to address fails
      Merge pull request #31 from myfreeweb/shmem
      Redesign update/rendering loop
      Fix transformations
      Merge pull request #32 from myfreeweb/keymap
      README: Add installation instructions for FreeBSD
      shm: Add copyright notice
      Add copyright notice to strlcpy.h
      shaders: Add copyright notices
      Remove call to nvnc_set_dimensions()
      Align with NeatVNC interface changes
      README: Remove clause about setting the buildtype
      dmabuf: Remove rate limiting
      dmabuf: Add dtrace probes
      util: latency-report: Add dmabuf
      timeutil: Add timespec conversion helpers
      time-util return uint64_t from gettime_ms()
      dmabuf: Show a debug message when frames are held for too long.
      renderer: Run glFinish() after rendering dmabuf frame
      renderer: Run glFinish() before glReadPixels()
      keyboard: Log keyboard symbol lookup errors
      keyboard: Relax matching criteria on shift level
      dmabuf: Limit rate to 30 FPS
      meson: Set -DNDEBUG if not building debug rather than when building release or plain
      Merge pull request #40 from bhepple/patch-1
      Add some unit test macros
      Create a unit test for the damage checker
      damage: Fix uninitialised value
      renderer: Set GL_PACK_ALIGNMENT to 1
      Improve error handling in wayland dispatch
      keyboard: Fix comparison of signed and unsigned value
      keyboard: Ignore shift level on modifiers
      renderer: Add more error messages
      Exit when main selected seat/output goes away
      Align with aml API changes
      Create a buffer abstraction
      Render using pixman
      Extract pixel format conversion into own file
      buffer: Leave pixman out of buffers
      Create pixman renderer
      Add utilities for managing output transforms
      Transform damage coordinates
      pixman-renderer: Use negative stride for y-inversion
      Fix damage transform
      Create hash based damage checker
      damage-refinery: Use negative stride to handle y-inversion
      damage-refinery: Hash directly instead of copying
      damage-refinery: Use damage hint
      main: Refine damage hints
      buffer: Add buffer type to interface
      buffer: Add specific handling for different buffers
      protocols: add linux-dmabuf
      buffer: Add DMA-BUFs
      buffer: Use create_immed
      protocols: Use screencopy v3
      main: Add gbm and linux-dmabuf
      screencopy: Use linux-dmabuf if available
      buffer: Unmap before release/destroy
      screencopy: map dmabuf after it's ready
      buffer: Fix error check and use non-linear
      buffer: Fix pool release/acquire
      Remove dead code
      Remove shaders
      README: Update dependencies
      .gitignore: Add .pem files
      buffer: Add damage field
      Move damage hints into buffer abstraction
      Remove frame-capture abstraction
      screencopy: Set the rate limit to 30 Hz
      screencopy: Actually use y-inversion flag
      damage-refinery: Add copyright notice
      buffer: Add copyright notice
      pixman-renderer: Add copyright notice
      util: Add copyright notice
      transform-util: Add copyright notice
      Clean up gbm device on exit
      util: Add valgrind suppressions and a helper script
      Clean up damage refinery on exit
      buffer: Cleanup dmabuf params after use
      pixels: Add copyright notice
      Exit on mode change intead of crashing
      pixels: Add more formats and take into account endianness
      Use native pixel format
      Destroy wl_registry on exit
      Add dtrace probes for rendering and damage checking
      util: latency_report: Update probes
      Allow the user to adjust the FPS limit
      Align with aml API changes
      pixels: Fix more endienness macros
      pixels: Add function to convert from wl_shm format to fourcc
      screencopy: Fix pixel format of shm buffers
      screencopy: Don't delay if time_left == 0
      screencopy: Disable linux-dmabuf code path
      pixels: Fix endian macros, take 3
      output: Add callbacks for change notification
      screencopy: Release front buffer on screencopy_stop()
      Resize buffers on modeset
      Add performance counters
      Add documentation for performance counters
      Report average damaged area per frame in performance ticker
      Add a way to learn the version of wayvnc and its dependencies
      keyboard: suppress unused variable warnings in release build
      main: Suppress unused variable warnings in release build
      buffer: Add function to get available buffer types
      Add build option for enabling screencopy-dmabuf

Bob Hepple (1):
      Update README.md

Greg V (5):
      keyboard: allocate shm with correct size
      shm: support memfd and SHM_ANON
      keyboard: allocate shm with *actually* correct size
      keyboard: check that write finished writing everything
      keyboard: rename keymap_len to keymap_size

Jan Beich (1):
      pixels: detect endianness via compiler defines

Matthias Tafelmeier (1):
      doc: giving explicit build deps for fedora 31