- Update to 0.9.4:

* The last release leaked client resources and would keep capturing
    after all clients closed their connection. This release fixes
    that and a double-free on exit.

OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/neatvnc?expand=0&rev=36
This commit is contained in:
Michael Vetter 2025-03-03 08:10:18 +00:00 committed by Git OBS Bridge
commit 088941ea8e
13 changed files with 407 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

15
_service Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/any1/neatvnc.git</param>
<param name="revision">af5811b75e63f53d1d1f1f3f337387553a96786a</param>
<param name="versionformat">0.9.4</param>
</service>
<service name="tar" mode="manual"/>
<service name="recompress" mode="manual">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="manual" />
</services>

13
fix-build-in-15.6.patch Normal file
View File

@ -0,0 +1,13 @@
Index: neatvnc-0.9.2/meson.build
===================================================================
--- neatvnc-0.9.2.orig/meson.build
+++ neatvnc-0.9.2/meson.build
@@ -54,7 +54,7 @@ libturbojpeg = dependency('libturbojpeg'
gnutls = dependency('gnutls', required: get_option('tls'))
nettle = dependency('nettle', required: get_option('nettle'))
hogweed = dependency('hogweed', required: get_option('nettle'))
-gmp = dependency('gmp', required: get_option('nettle'))
+gmp = cc.find_library('gmp')
zlib = dependency('zlib')
gbm = dependency('gbm', required: get_option('gbm'))
libdrm = dependency('libdrm', required: get_option('h264'))

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:746b5a1bc20d3a50b167adaa5e743ac2cee51ab3d3c131551a6e6b2f46284d8a
size 1491468

3
neatvnc-0.9.2.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:310f33ff7ba0a2cf248e12e18557efd1374dac4a256ae3ee2f9dcd71d3e4600d
size 785168

3
neatvnc-0.9.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:684f052ecb53db8b438b64bfe0b43795db08da5bb90fddf3b207910face5b55a
size 785344

3
neatvnc-0.9.4.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:19d15aebc8579938a2108d5d307e843312895e69a7def44e96469614e1a6c418
size 785396

248
neatvnc.changes Normal file
View File

@ -0,0 +1,248 @@
-------------------------------------------------------------------
Mon Mar 3 08:09:46 UTC 2025 - Michael Vetter <mvetter@suse.com>
- Update to 0.9.4:
* The last release leaked client resources and would keep capturing
after all clients closed their connection. This release fixes
that and a double-free on exit.
-------------------------------------------------------------------
Sun Feb 23 18:23:21 UTC 2025 - Michael Vetter <mvetter@suse.com>
- Update to 0.9.3:
* Fix some instances of use-after-free that can be reached before
authentication takes place. Those should be viewed as potential
vulnerabilities, so it would be prudent to upgrade ASAP if you're
running Neat VNC on the internet.
* Fix a few issues with WebSockets. One of those bugs will allow
an unauthenticated client to put the server into an endless
loop when parsing HTTP headers. There were also problems with
ping message handling and the way some legacy clients/browsers
were being dealt with that he fixed.
-------------------------------------------------------------------
Mon Dec 30 11:06:23 UTC 2024 - Michael Vetter <mvetter@suse.com>
- Update to 0.9.2:
* This patch release adds missing bounds checks.
Two buffer overflow vulnerabilities were reported by Frederik
Reiter who also provided patches to fix them.
There are potential security implications, but only authenticated
clients would be able to exploit these vulnerabilities, if at all.
Nevertheless, it is prudent to update as soon as possible.
-------------------------------------------------------------------
Mon Dec 30 11:05:56 UTC 2024 - Michael Vetter <mvetter@suse.com>
- Update to 0.9.1:
* Fix a data type mismatch in the clipboard code that caused the
build to fail for 32 bit architectures.
-------------------------------------------------------------------
Mon Dec 30 11:05:23 UTC 2024 - Michael Vetter <mvetter@suse.com>
- Update to 0.9.0:
Highlights:
* A v4l2m2m based H.264 encoder that works on Raspberry Pi 1 to 4,
sponsored by Raspberry Pi Ltd.
* Extended clipboard for UTF-8 text was implemented by Attila Fidan.
* Listening on a pre-bound file descriptor, implemented by Attila Fidan.
* The continuous updates extension was implemented by Philipp Zabel.
* We now have simple bandwidth estimation and improved frame pacing.
* Methods for rating pixel formats and modifiers have according to Neat VNC's
preferences have been added.
* The Qemu/VMWare LED state extensions have been implemented.
* H.264 encoders will now encode the correct colour space into the elementary
stream.
Bug fixes:
* Some memory leaks and reference counting errors have been eradicated.
* A race between resizing events and framebuffer updates that would cause a
buffer with the previous size to be sent after a resize event has been fixed.
* Buffers with 24 bits per pixel will now result in 32 bpp being reported to
the client because 24 bpp is not allowed by the protocol. Nvidia users should
now be able to use a wider selection of clients as a result of this change.
- Update fix-build-in-15.6.patch
15e56b8e444532d299598b753f760cf0d4d9a4e2 added the LIBAVFILTER_VERSION_INT
-------------------------------------------------------------------
Wed Oct 23 07:57:14 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Update to 0.8.1+git20241008.b539421 adding a _service file to
get the sources from git. This fixes a FTBFS with ffmpeg-7 in
Factory. Note that we can't use @PARENT_TAG@ in the _service
file because 0.8.1 was branched from the v0.8 branch so using it
would look like going back to 0.8.0.
- Add a patch to keep building with older ffmpeg versions too
as well as find the gmp dependency, which can't be found using
pkgconfig in 15.6:
* fix-build-in-15.6.patch
-------------------------------------------------------------------
Fri Aug 2 06:25:29 UTC 2024 - Michael Vetter <mvetter@suse.com>
- bsc#1228777 (CVE-2024-42458)
Update to 0.8.1:
* Add sanity check for chosen security type
-------------------------------------------------------------------
Mon Feb 26 07:10:51 UTC 2024 - Michael Vetter <mvetter@suse.com>
- Update to 0.8.0:
Highlights:
* The colour map pixel format as described in RFC 6143 has been
implemented. Before, the client would just get disconnected if
they requested it. Now they get a map that emulates RGB332.
* Momentary interception of log messages. The user can now set a
thread-local log hander and then set it back to the default.
* Philip Zabel made the code more consistent with the style guide.
Breaking Changes:
* nvnc_client_get_hostname has been replaced with nvnc_client_get_address
Bugfixes:
* Apple's Diffie-Hellman authentication (security type 30) has been fixed.
* A new client connection no longer causes a DNS lookup.
-------------------------------------------------------------------
Sat Feb 3 06:40:46 UTC 2024 - Michael Vetter <mvetter@suse.com>
- Update to 0.7.2:
* Clients are now allowed to request more than 32 encodings (#108)
* Zlib streams are now preserved when a client switches between
encodings (#109)
-------------------------------------------------------------------
Mon Nov 6 07:58:22 UTC 2023 - Michael Vetter <mvetter@suse.com>
- Update to 0.7.1:
* Apple's Diffie-Hellman authentication (security type 30) has been fixed.
* A new client connection no longer causes a DNS lookup.
-------------------------------------------------------------------
Thu Oct 5 07:44:56 UTC 2023 - Michael Vetter <mvetter@suse.com>
- Update to 0.7.0:
* Desktop resizing
* Software pixel buffers with less than 32 bits per pixel are now supported
* The server may now choose to open a websocket instead of a regular TCP socket
* The RSA-AES and RSA-AES-256 security types have now been implemented
* A Diffie-Hellman based security type frame Apple is also implemented,
although not recommended
* Murmurhash in the damage refinery has been replaced with xxHash,
which performs much better in my tests so far
* Users should now get proper feedback when authentication fails
-------------------------------------------------------------------
Mon Jan 23 16:37:06 UTC 2023 - Michael Vetter <mvetter@suse.com>
- Update to 0.6.0:
Highlights:
* The client now has control over h264 quality settings
* Left & right scrolling is now supported
* A custom framebuffer allocator function can now be assigned
* The following functions have been added
+ A function for querying client side cursor support
+ A function to get the hostname of a connected client
+ A function to get the credentials of an authenticated client
+ A function for listing connected clients
+ A function for disconnecting a client
Bug fixes:
* A race condition when a client tries to resize the display before it has an encoder
* Cursor buffers are now freed on close
* Various race conditions in encoders
* Spurious exits due to SIGPIPE
* Occasional leaked buffers when clients disconnect
* Clients no longer linger on exit with TLS
-------------------------------------------------------------------
Mon Dec 12 11:00:02 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
- "Pkgconfigify" BuildRequires, align with what meson checks for.
- Modernize spec.
-------------------------------------------------------------------
Mon Nov 7 22:50:04 UTC 2022 - Michael Vetter <mvetter@suse.com>
- Update to 0.5.4:
* This fixes stalling during h264 encoding. The FFmpeg devs
seem to think that it's normal to change the default behaviour
of their code, so this needs to be fixed here instead.
-------------------------------------------------------------------
Mon Nov 7 22:49:49 UTC 2022 - Michael Vetter <mvetter@suse.com>
- Update to 0.5.3:
* Revert "h264-encoder: Add 30 bit color depth formats"
* server: Fix encoding selection for sw frames
-------------------------------------------------------------------
Mon Nov 7 22:49:33 UTC 2022 - Michael Vetter <mvetter@suse.com>
- Update to 0.5.2:
* stream: Remove stray ampersand in tls handshake failure code path
* resampler: Use transformed width as destination stride
-------------------------------------------------------------------
Mon Nov 7 22:49:16 UTC 2022 - Michael Vetter <mvetter@suse.com>
- Update to 0.5.1:
* meson: Use partial_dependency() for libdrm cflags
* test: meson: Add missing libdrm_inc dependency
* server: add missing header after f20ffb5e1efe
-------------------------------------------------------------------
Mon Nov 7 22:48:50 UTC 2022 - Michael Vetter <mvetter@suse.com>
- Update to 0.5.0:
* H.264 Encoding
* UNIX Sockets
* New framebuffer submission API
* Automatic buffer transforms
* Client side cursor rendering
* Now accepts DMA-BUFs
* Presentation time stamps
* New internal encoder abstraction layer
-------------------------------------------------------------------
Sun Feb 28 20:42:39 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 0.4.0:
* This release adds support for the qemu extended key event. When this is
also supported by the client, key codes will be used instead of symbols
which eliminates the need for reverse key code lookup on the server-side.
-------------------------------------------------------------------
Wed Sep 30 08:28:57 UTC 2020 - Dirk Mueller <dmueller@suse.com>
- update to 0.3.2:
* This release fixes a crash due to incorrect handling of fragmented packets
and adds copy & paste support.
* This release fixes a bug with tight encoding reported by Jeroen Hofstee
-------------------------------------------------------------------
Tue Jul 28 09:08:39 UTC 2020 - Alexander Graul <alexander.graul@suse.com>
- Update to version 0.2.0
- Tight encoding is no longer experimental and also more complete.
+ The encoder employs multiple CPU cores, both for lossy and lossless
compression, which makes it considerably faster than ZRLE, even with
lossless compression.
+ Supports both lossy (JPEG) and lossless (DEFLATE) compression.
+ Allows the client to choose the JPEG "quality" level.
+ Allows the client to choose whether to enable lossy compression or not.
- Service-side resizing: the server can notify the client and resize buffers
when a different display mode is set
- The API has been prepared for adding multi-display suppport. It has not been
implemented, but the (hopefully) won't have to change when it is.
- Version info is baked into the library, so applications linking to neatvnc
can report the version to the user.
- The server can now looks up the address to which to bind using getaddrinfo
-------------------------------------------------------------------
Sat Jun 6 11:52:41 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Trim redundancies and conjecture from descriptions.
-------------------------------------------------------------------
Wed Jun 3 05:04:00 UTC 2020 - Michael Vetter <mvetter@suse.com>
- Initial package of neatvnc in version 0.1.0 for openSUSE

4
neatvnc.obsinfo Normal file
View File

@ -0,0 +1,4 @@
name: neatvnc
version: 0.9.4
mtime: 1740304370
commit: af5811b75e63f53d1d1f1f3f337387553a96786a

85
neatvnc.spec Normal file
View File

@ -0,0 +1,85 @@
#
# spec file for package neatvnc
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define libsoname libneatvnc0
Name: neatvnc
Version: 0.9.4
Release: 0
Summary: A VNC server library
License: ISC
Group: System/GUI/Other
URL: https://github.com/any1/neatvnc
Source0: %{name}-%{version}.tar.xz
Patch0: fix-build-in-15.6.patch
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: pkgconfig(aml) >= 0.3.0
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(gnutls)
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavfilter)
BuildRequires: pkgconfig(libavutil)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libturbojpeg)
BuildRequires: pkgconfig(pixman-1)
BuildRequires: pkgconfig(zlib)
%description
This is a VNC server library.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries/C and C++
Requires: %libsoname = %{version}
%description devel
Development files and headers for %{name}.
%package -n %libsoname
Summary: A VNC server library
Group: System/Libraries
%description -n %libsoname
A VNC server library.
%prep
%autosetup -p1
%build
%meson
%meson_build
%install
%meson_install
%ldconfig_scriptlets -n %libsoname
%files devel
%license COPYING
%doc README.md
%{_includedir}/neatvnc.h
%{_libdir}/libneatvnc.so
%{_libdir}/pkgconfig/neatvnc.pc
%files -n %libsoname
%{_libdir}/libneatvnc.so.*
%changelog

3
v0.8.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6c0feff5d8de20d1f47938936fd2c0e99dc56c28033e2149863cf70ce6cfcc5c
size 661726

3
v0.8.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:51ef4d02f1621c947d58f2454e8fd4582a66439f09d409c103424c9d34839757
size 661911