turbovnc: new package
PATCH v2 1/1 turbovnc: new package
Changes v1 -> v2:
- Actually selecting the needed dependencies (by Baruch)
- Dropped run-time dependencies perl and xfont_font-misc-misc (by Baruch)
- Made linux-pam optional dependency
- Added README.txt to license files (by Baruch)
- Added hashes for all license files (by Baruch)
--- package/Config.in | 1 + package/turbovnc/Config.in | 24 ++++++++++++++++++++++++ package/turbovnc/turbovnc.hash | 25 +++++++++++++++++++++++++ package/turbovnc/turbovnc.mk | 25 +++++++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 package/turbovnc/Config.in create mode 100644 package/turbovnc/turbovnc.hash create mode 100644 package/turbovnc/turbovnc.mk
package/Config.in +1 -0
@@ -330,6 +330,7 @@ comment "X applications" source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" + source "package/turbovnc/Config.in" source "package/wmctrl/Config.in" source "package/x11vnc/Config.in" source "package/xdotool/Config.in"
package/turbovnc/Config.in new file +24 -0
@@ -0,0 +1,24 @@ +config BR2_PACKAGE_TURBOVNC + bool "turbovnc" + select BR2_PACKAGE_JPEG_TURBO + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_XLIB_LIBICE + select BR2_PACKAGE_XLIB_LIBSM + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_LIBXAU + select BR2_PACKAGE_XLIB_LIBXDMCP + help + TurboVNC is a high-performance, enterprise-quality version + of VNC based on TightVNC, TigerVNC, and X.org. + It contains a variant of Tight encoding that is tuned for + maximum performance and compression with 3D applications + (VirtualGL), video, and other image-intensive workloads. + TurboVNC, in combination with VirtualGL, provides a + complete solution for remotely displaying 3D applications + with interactive performance. TurboVNC's high-speed encoding + methods have been adopted by TigerVNC and libvncserver, + and TurboVNC is also compatible with any other TightVNC + derivative. + + https://turbovnc.org
package/turbovnc/turbovnc.hash new file +25 -0
@@ -0,0 +1,25 @@ +# From https://sourceforge.net/projects/turbovnc/files/2.1.2/ +md5 9d04b26d40664d0d8072e8b1828f69c4 turbovnc-2.1.2.tar.gz +sha1 cd99a27cee86f0680410133beb25da1d6f35a3ea turbovnc-2.1.2.tar.gz +# Locally computed +sha256 2389f76eafc48412b980a61280ffb8d111dacd9e51d5e3df2112f505558b48d4 turbovnc-2.1.2.tar.gz + +md5 b234ee4d69f5fce4486a80fdaf4a4263 doc/LICENSE.txt +sha1 4cc77b90af91e615a64ae04893fdffa7939db84c doc/LICENSE.txt +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 doc/LICENSE.txt + +md5 f1fbc9578354b488efd1c7e276855c6a doc/LICENSE-PuTTY.txt +sha1 a069392e138032b7ebb156bad71035146916821f doc/LICENSE-PuTTY.txt +sha256 867b1e03a9a1bd0131b5ab7cb0cc617750cbd9edec9dee1903e15b306bb8f94b doc/LICENSE-PuTTY.txt + +md5 c017ff17fc6f0794adf93db5559ccd56 unix/Xvnc/extras/freetype2/docs/LICENSE.TXT +sha1 265206b28e7c1b750b7e6ea27cc527a6cc6e7644 unix/Xvnc/extras/freetype2/docs/LICENSE.TXT +sha256 f6333b3a9106f10190e96d9f994f934deb7a5632851a1aaf846b94651a80f4da unix/Xvnc/extras/freetype2/docs/LICENSE.TXT + +md5 ddeb76cd34e791893c0f539fdab879bb unix/Xvnc/lib/bzip2/LICENSE +sha1 1c0c6888759a63c32bca7eb63353af2cd9bd5d9e unix/Xvnc/lib/bzip2/LICENSE +sha256 4919cfb14a73cd64fcef67b107613970cf1659a09aa675dba31314f373bc7204 unix/Xvnc/lib/bzip2/LICENSE + +md5 009fb6d6593627afd6064fa51ca8d986 README.txt +sha1 aa41dc5b5268417e32fc280077b25e715e6d18f3 README.txt +sha256 6d38c387215532019f457f9b0050f24bcccdda2e8f2524014a79d294730735db README.txt
package/turbovnc/turbovnc.mk new file +25 -0
@@ -0,0 +1,25 @@ +################################################################################ +# +# turbovnc +# +################################################################################ + +TURBOVNC_VERSION = 2.1.2 +TURBOVNC_SOURCE = turbovnc-$(TURBOVNC_VERSION).tar.gz +TURBOVNC_SITE = https://downloads.sourceforge.net/project/turbovnc/$(TURBOVNC_VERSION) +TURBOVNC_DEPENDENCIES = jpeg-turbo openssl xlib_libICE xlib_libSM xlib_libX11 \ + xlib_libXext xlib_libXau xlib_libXdmcp +TURBOVNC_LICENSE = GPL-2.0, MIT (putty), Dual FTL/GPL-2.0+ (freetype) \ + bzip2 license (bzip2), Zlib (zlib) +TURBOVNC_LICENSE_FILES = doc/LICENSE.txt doc/LICENSE-PuTTY.txt \ + unix/Xvnc/extras/freetype2/doc/LICENSE.txt \ + unix/Xvnc/lib/bzip2/LICENSE README.txt + +# Build just server +TURBOVNC_CONF_OPTS += -DTVNC_BUILDJAVA=0 -DTVNC_BUILDNATIVE=0 + +ifeq ($(BR2_PACKAGE_LINUX_PAM),y) +TURBOVNC_DEPENDENCIES += linux-pam +endif + +$(eval $(cmake-package))
Signature · 1 line
2.7.3
PATCH v2 1/1 turbovnc: new package
Hi Stefan,
Quoted 37 lines · Stefan Fr?berg
Signed-off-by Stefan Fr?berg <[email protected]>Changes v1 -> v2:
- Actually selecting the needed dependencies (by Baruch)
- Dropped run-time dependencies perl and xfont_font-misc-misc (by Baruch)
- Made linux-pam optional dependency
- Added README.txt to license files (by Baruch)
- Added hashes for all license files (by Baruch)--- package/Config.in | 1 + package/turbovnc/Config.in | 24 ++++++++++++++++++++++++ package/turbovnc/turbovnc.hash | 25 +++++++++++++++++++++++++ package/turbovnc/turbovnc.mk | 25 +++++++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 package/turbovnc/Config.in create mode 100644 package/turbovnc/turbovnc.hash create mode 100644 package/turbovnc/turbovnc.mkpackage/Config.in +1
-0@@ -330,6 +330,7 @@ comment "X applications" source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" + source "package/turbovnc/Config.in" source "package/wmctrl/Config.in" source "package/x11vnc/Config.in" source "package/xdotool/Config.in"package/turbovnc/Config.in new file +0
-0
package/turbovnc/Config.in line 3
Quoted 3 lines
package/turbovnc/Config.in new file +3
-0@@ -0,0 +1,24 @@ +config BR2_PACKAGE_TURBOVNC + bool "turbovnc" + select BR2_PACKAGE_JPEG_TURBO
You also need to select BR2_PACKAGE_JPEG because BR2_PACKAGE_JPEG_TURBO depends on BR2_PACKAGE_JPEG.
package/turbovnc/Config.in line 10
Quoted 7 lines
package/turbovnc/Config.in new file +7
-0+ select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_XLIB_LIBICE + select BR2_PACKAGE_XLIB_LIBSM + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_LIBXAU + select BR2_PACKAGE_XLIB_LIBXDMCP
The perl and xfont_font-misc-misc run-time dependencies are missing here.
Quoted 35 lines
package/turbovnc/Config.in new file +14
-0+ help + TurboVNC is a high-performance, enterprise-quality version + of VNC based on TightVNC, TigerVNC, and X.org. + It contains a variant of Tight encoding that is tuned for + maximum performance and compression with 3D applications + (VirtualGL), video, and other image-intensive workloads. + TurboVNC, in combination with VirtualGL, provides a + complete solution for remotely displaying 3D applications + with interactive performance. TurboVNC's high-speed encoding + methods have been adopted by TigerVNC and libvncserver, + and TurboVNC is also compatible with any other TightVNC + derivative. + + https://turbovnc.orgpackage/turbovnc/turbovnc.hash new file +15
-0@@ -0,0 +1,25 @@ +# From https://sourceforge.net/projects/turbovnc/files/2.1.2/ +md5 9d04b26d40664d0d8072e8b1828f69c4 turbovnc-2.1.2.tar.gz +sha1 cd99a27cee86f0680410133beb25da1d6f35a3ea turbovnc-2.1.2.tar.gz +# Locally computed +sha256 2389f76eafc48412b980a61280ffb8d111dacd9e51d5e3df2112f505558b48d4 turbovnc-2.1.2.tar.gz + +md5 b234ee4d69f5fce4486a80fdaf4a4263 doc/LICENSE.txt +sha1 4cc77b90af91e615a64ae04893fdffa7939db84c doc/LICENSE.txt +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 doc/LICENSE.txt + +md5 f1fbc9578354b488efd1c7e276855c6a doc/LICENSE-PuTTY.txt +sha1 a069392e138032b7ebb156bad71035146916821f doc/LICENSE-PuTTY.txt +sha256 867b1e03a9a1bd0131b5ab7cb0cc617750cbd9edec9dee1903e15b306bb8f94b doc/LICENSE-PuTTY.txt + +md5 c017ff17fc6f0794adf93db5559ccd56 unix/Xvnc/extras/freetype2/docs/LICENSE.TXT
package/turbovnc/turbovnc.hash line 25
Quoted 10 lines
package/turbovnc/turbovnc.hash new file +10
-0+sha1 265206b28e7c1b750b7e6ea27cc527a6cc6e7644 unix/Xvnc/extras/freetype2/docs/LICENSE.TXT +sha256 f6333b3a9106f10190e96d9f994f934deb7a5632851a1aaf846b94651a80f4da unix/Xvnc/extras/freetype2/docs/LICENSE.TXT + +md5 ddeb76cd34e791893c0f539fdab879bb unix/Xvnc/lib/bzip2/LICENSE +sha1 1c0c6888759a63c32bca7eb63353af2cd9bd5d9e unix/Xvnc/lib/bzip2/LICENSE +sha256 4919cfb14a73cd64fcef67b107613970cf1659a09aa675dba31314f373bc7204 unix/Xvnc/lib/bzip2/LICENSE + +md5 009fb6d6593627afd6064fa51ca8d986 README.txt +sha1 aa41dc5b5268417e32fc280077b25e715e6d18f3 README.txt +sha256 6d38c387215532019f457f9b0050f24bcccdda2e8f2524014a79d294730735db README.txt
Since the license files hashes are locally calculated, having only sha256 for each file should be enough.
Quoted 21 lines
package/turbovnc/turbovnc.mk new file +15
-0@@ -0,0 +1,25 @@ +################################################################################ +# +# turbovnc +# +################################################################################ + +TURBOVNC_VERSION = 2.1.2 +TURBOVNC_SOURCE = turbovnc-$(TURBOVNC_VERSION).tar.gz +TURBOVNC_SITE = https://downloads.sourceforge.net/project/turbovnc/$(TURBOVNC_VERSION) +TURBOVNC_DEPENDENCIES = jpeg-turbo openssl xlib_libICE xlib_libSM xlib_libX11 \ + xlib_libXext xlib_libXau xlib_libXdmcp +TURBOVNC_LICENSE = GPL-2.0, MIT (putty), Dual FTL/GPL-2.0+ (freetype) \ + bzip2 license (bzip2), Zlib (zlib) +TURBOVNC_LICENSE_FILES = doc/LICENSE.txt doc/LICENSE-PuTTY.txt \ + unix/Xvnc/extras/freetype2/doc/LICENSE.txt \
package/turbovnc/turbovnc.mk line 25
Quoted 10 lines
package/turbovnc/turbovnc.mk new file +10
-0+ unix/Xvnc/lib/bzip2/LICENSE README.txt + +# Build just server +TURBOVNC_CONF_OPTS += -DTVNC_BUILDJAVA=0 -DTVNC_BUILDNATIVE=0 + +ifeq ($(BR2_PACKAGE_LINUX_PAM),y) +TURBOVNC_DEPENDENCIES += linux-pam +endif + +$(eval $(cmake-package))
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH v2 1/1 turbovnc: new package
Hello,
Quoted 6 lines · Baruch Siach
package/turbovnc/Config.in line 3
Quoted 3 lines
package/turbovnc/Config.in new file +3
-0+config BR2_PACKAGE_TURBOVNC + bool "turbovnc" + select BR2_PACKAGE_JPEG_TURBOYou also need to select
BR2_PACKAGE_JPEGbecauseBR2_PACKAGE_JPEG_TURBOdepends onBR2_PACKAGE_JPEG.
No, you cannot do that, because BR2_PACKAGE_JPEG_TURBO is part of a choice, and you cannot select options in a choice.
I don't see why TurboVNC would need jpeg-turbo specifically, as it's API compatible with libjpeg. Therefore, please select BR2_PACKAGE_JPEG here, and let the user decide whether jpeg-turbo or libjpeg should be used.
Quoted 7 lines
package/turbovnc/Config.in line 10
Quoted 7 lines
package/turbovnc/Config.in new file +7
-0+ select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_XLIB_LIBICE + select BR2_PACKAGE_XLIB_LIBSM + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_LIBXAU + select BR2_PACKAGE_XLIB_LIBXDMCP
If you select those libraries, you need to add a:
depends on BR2_PACKAGE_XORG7
Quoted 2 lines
Since the license files hashes are locally calculated, having only sha256 for each file should be enough.
Agreed.
Quoted 6 lines
package/turbovnc/turbovnc.mk line 12
Quoted 6 lines
package/turbovnc/turbovnc.mk new file +6
-0+TURBOVNC_VERSION = 2.1.2 +TURBOVNC_SOURCE = turbovnc-$(TURBOVNC_VERSION).tar.gz +TURBOVNC_SITE = https://downloads.sourceforge.net/project/turbovnc/$(TURBOVNC_VERSION) +TURBOVNC_DEPENDENCIES = jpeg-turbo openssl xlib_libICE xlib_libSM xlib_libX11 \ + xlib_libXext xlib_libXau xlib_libXdmcp +TURBOVNC_LICENSE = GPL-2.0, MIT (putty), Dual FTL/GPL-2.0+ (freetype) \
Missing comma at the end of this line.
Why does it bundle freetype? Can it use an external Freetype instead?
Quoted 1 line
package/turbovnc/turbovnc.mk line 13
Quoted 1 line
package/turbovnc/turbovnc.mk new file +1
-0+ bzip2 license (bzip2), Zlib (zlib)
The SPDX license code for bzip2 license is bzip2-1.0.5 or bzip2-1.0.6, see https://spdx.org/licenses/.
Also, why does it bundle Zlib ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 1/1 turbovnc: new package
Hi Thomas
1.11.2017, 11:53, Thomas Petazzoni kirjoitti:
Quoted 6 lines
Why does it bundle freetype? Can it use an external Freetype instead?
Quoted 1 line
package/turbovnc/turbovnc.mk line 13
Quoted 1 line
package/turbovnc/turbovnc.mk new file +1
-0+ bzip2 license (bzip2), Zlib (zlib)The SPDX license code for bzip2 license is bzip2-1.0.5 or bzip2-1.0.6, see https://spdx.org/licenses/.
Also, why does it bundle Zlib ?
I honestly have not the faintest idea why it want's to use it's own, bundled versions of bzip2,freetype2 and zlib.
On my 64-bit Intel box these are produced under lib directory:
libbzip2.a libfontenc.a librandr.a libXau.a libxkb.a libcomposite.a libfreetype2.a librender.a libXdmcp.a libXNVCtrl.a libdamage.a libmain.a libsha1.a libXext-server.a libzlib.a libdamageext.a libmi.a libsync.a libxfixes.a libdix.a libos.a libvnc.a libXfont.a libfb.a libpixman.a libvncauth.a libXi.a
But then doing ldd for Xvnc binary gives this:
Xvnc:
linux-vdso.so.1 (0x00007fffbbffe000)
libturbojpeg.so.0 => /usr/lib64/libturbojpeg.so.0
(0x00007f1d221b8000)
libm.so.6 => /lib64/libm.so.6 (0x00007f1d21eba000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1d21c9e000)
libpam.so.0 => /lib64/libpam.so.0 (0x00007f1d21a90000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f1d2188c000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f1d21683000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f1d21466000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f1d21124000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f1d20f12000)
libc.so.6 => /lib64/libc.so.6 (0x00007f1d20b76000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1d2242b000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f1d20971000)
libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007f1d2075b000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f1d20532000)
librt.so.1 => /lib64/librt.so.1 (0x00007f1d2032a000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f1d20126000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f1d1ff20000)So it builds a static versions of libXau.a libXdmcp.a for example, but then does not use them anyway in the final link but instead the system wide versions ?
I posted question to github if bzip2, freetype2 and zlib can be external dependencies or if they contain some TurboVNC specific stuff.
-S-
PATCH v2 1/1 turbovnc: new package
Hello,
Quoted 6 lines · Stefan Fr?berg
libbzip2.a libfontenc.a librandr.a libXau.a libxkb.a libcomposite.a libfreetype2.a librender.a libXdmcp.a libXNVCtrl.a libdamage.a libmain.a libsha1.a libXext-server.a libzlib.a libdamageext.a libmi.a libsync.a libxfixes.a libdix.a libos.a libvnc.a libXfont.a libfb.a libpixman.a libvncauth.a libXi.a
That's a lot of static libraries, but I'm sure TurboVNC didn't duplicate the source code for all of these. Perhaps it is copying them from their system-wide location to its build directory, for some funky reason?
Quoted 22 lines
But then doing ldd for Xvnc binary gives this:
Xvnc:linux-vdso.so.1 (0x00007fffbbffe000) libturbojpeg.so.0 => /usr/lib64/libturbojpeg.so.0 (0x00007f1d221b8000) libm.so.6 => /lib64/libm.so.6 (0x00007f1d21eba000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1d21c9e000) libpam.so.0 => /lib64/libpam.so.0 (0x00007f1d21a90000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f1d2188c000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f1d21683000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f1d21466000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f1d21124000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f1d20f12000) libc.so.6 => /lib64/libc.so.6 (0x00007f1d20b76000) /lib64/ld-linux-x86-64.so.2 (0x00007f1d2242b000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f1d20971000) libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007f1d2075b000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f1d20532000) librt.so.1 => /lib64/librt.so.1 (0x00007f1d2032a000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f1d20126000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f1d1ff20000)
Quoted 6 lines
So it builds a static versions of libXau.a libXdmcp.a for example, but then does not use them anyway in the final link but instead the system wide versions ?
I posted question to github if bzip2, freetype2 and zlib can be external dependencies or if they contain some TurboVNC specific stuff.
Thanks. Let's see what upstream says.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 1/1 turbovnc: new package
Hi
2.11.2017, 23:28, Thomas Petazzoni kirjoitti:
Quoted 7 lines
Quoted 2 lines
I posted question to github if bzip2, freetype2 and zlib can be external dependencies or if they contain some TurboVNC specific stuff.
Thanks. Let's see what upstream says.
Best regards,
Thomas
Yeah. Im actually pretty excited to test and see how well TurboVNC server will perform with
Raspberry Pi 2 or 3 after reading about TurboVNCs possibility of using multithreading on multi-core systems and other acceleration tricks.
https://github.com/TurboVNC/turbovnc/blob/master/doc/performance.txt
And then there is this:
https://github.com/TurboVNC/turbovnc/issues/95
I did not even know that there are 3 different implementations of SIMD-accelerated zlib's out there.
:-O
-S-
PATCH v2 1/1 turbovnc: new package
In reply to Thomas PetazzoniHi
Upstream was very helpfull and fast :-)
https://github.com/TurboVNC/turbovnc/issues/111
So system-wide bzip2,freetype and zlib should be possible with version 2.1.3
:-)
https://github.com/TurboVNC/turbovnc/commit/88fae55850b4888e4aef6512e183a959d73df1e7
But the following raises a tought:
"On RHEL 7 & Fedora, I can generate a fully system-specific build of TurboVNC like so:
cmake -G"Unix Makefiles" -DTVNC_SYSTEMLIBS=1 -DTVNC_SYSTEMX11=1 -DTVNC_DLOPENSSL=0 -DTJPEG_INCLUDE_DIR=/usr/include -DTJPEG_LIBRARY=-lturbojpeg
Generally TVNC_SYSTEMX11 won't work unless the system is using the same version of X.org as the TurboVNC Server, or a newer version."
So how should I check, if using -DTVNC_SYSTEMX11=1 switch, that the builded system Xorg headers/libs and the
TurboVNC bundled Xorg are at least same version ???
-S-
2.11.2017, 23:28, Thomas Petazzoni kirjoitti:
Quoted 49 lines
Hello,
Quoted 6 lines · Stefan Fr?berg
libbzip2.a libfontenc.a librandr.a libXau.a libxkb.a libcomposite.a libfreetype2.a librender.a libXdmcp.a libXNVCtrl.a libdamage.a libmain.a libsha1.a libXext-server.a libzlib.a libdamageext.a libmi.a libsync.a libxfixes.a libdix.a libos.a libvnc.a libXfont.a libfb.a libpixman.a libvncauth.a libXi.aThat's a lot of static libraries, but I'm sure TurboVNC didn't duplicate the source code for all of these. Perhaps it is copying them from their system-wide location to its build directory, for some funky reason?
Quoted 22 lines
But then doing ldd for Xvnc binary gives this:
Xvnc:linux-vdso.so.1 (0x00007fffbbffe000) libturbojpeg.so.0 => /usr/lib64/libturbojpeg.so.0 (0x00007f1d221b8000) libm.so.6 => /lib64/libm.so.6 (0x00007f1d21eba000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1d21c9e000) libpam.so.0 => /lib64/libpam.so.0 (0x00007f1d21a90000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f1d2188c000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f1d21683000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f1d21466000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f1d21124000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f1d20f12000) libc.so.6 => /lib64/libc.so.6 (0x00007f1d20b76000) /lib64/ld-linux-x86-64.so.2 (0x00007f1d2242b000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f1d20971000) libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007f1d2075b000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f1d20532000) librt.so.1 => /lib64/librt.so.1 (0x00007f1d2032a000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f1d20126000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f1d1ff20000)Quoted 6 lines
So it builds a static versions of libXau.a libXdmcp.a for example, but then does not use them anyway in the final link but instead the system wide versions ?
I posted question to github if bzip2, freetype2 and zlib can be external dependencies or if they contain some TurboVNC specific stuff.
Thanks. Let's see what upstream says.
Best regards,
Thomas
PATCH v2 1/1 turbovnc: new package
In reply to Thomas PetazzoniHi
I have now successfully compiled latest TurboVNC from git and with bzip2,freetype and zlib as
external dependencies, also, libXau, libXdmcp and libXfont are now external.
But there are two issues that need resolving:
1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so fast.
So for now I have made it "depends on BR2_PACKAGE_JPEG_TURBO" so that turbovnc
package will only appear to menu only if jpeg-turbo has been also selected. Is that okay?
2. TurboVNC (Xvnc binary) really is two servers rolled into one. Actual normally working,
altought TurboVNC patched Xorg server and VNC server.
So, maybe the right place for turbovnc in the menus would be below "Alternate X servers",
below Xvfb.
And then I just copy dependencies from xorg package, so that if the user want's both
VNC and Xorg then he just selects the turbovnc without needing to waste space for
the real, vanilla Xorg installation.
Is that okay?
Maybe in future, there could be even virtual package virtual-xvnc, like "Xvnc --->" below Xvfb in the
menu where user could select what Xvnc implementation (TurboVNC, TightVNC, TigerVNC etc...)
he/she want's to use.
Tought?
-S-
2.11.2017, 23:28, Thomas Petazzoni kirjoitti:
Quoted 49 lines
Hello,
Quoted 6 lines · Stefan Fr?berg
libbzip2.a libfontenc.a librandr.a libXau.a libxkb.a libcomposite.a libfreetype2.a librender.a libXdmcp.a libXNVCtrl.a libdamage.a libmain.a libsha1.a libXext-server.a libzlib.a libdamageext.a libmi.a libsync.a libxfixes.a libdix.a libos.a libvnc.a libXfont.a libfb.a libpixman.a libvncauth.a libXi.aThat's a lot of static libraries, but I'm sure TurboVNC didn't duplicate the source code for all of these. Perhaps it is copying them from their system-wide location to its build directory, for some funky reason?
Quoted 22 lines
But then doing ldd for Xvnc binary gives this:
Xvnc:linux-vdso.so.1 (0x00007fffbbffe000) libturbojpeg.so.0 => /usr/lib64/libturbojpeg.so.0 (0x00007f1d221b8000) libm.so.6 => /lib64/libm.so.6 (0x00007f1d21eba000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1d21c9e000) libpam.so.0 => /lib64/libpam.so.0 (0x00007f1d21a90000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f1d2188c000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f1d21683000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f1d21466000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f1d21124000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f1d20f12000) libc.so.6 => /lib64/libc.so.6 (0x00007f1d20b76000) /lib64/ld-linux-x86-64.so.2 (0x00007f1d2242b000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f1d20971000) libbsd.so.0 => /usr/lib64/libbsd.so.0 (0x00007f1d2075b000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f1d20532000) librt.so.1 => /lib64/librt.so.1 (0x00007f1d2032a000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f1d20126000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f1d1ff20000)Quoted 6 lines
So it builds a static versions of libXau.a libXdmcp.a for example, but then does not use them anyway in the final link but instead the system wide versions ?
I posted question to github if bzip2, freetype2 and zlib can be external dependencies or if they contain some TurboVNC specific stuff.
Thanks. Let's see what upstream says.
Best regards,
Thomas
PATCH v2 1/1 turbovnc: new package
Hi Stefan,
Quoted 4 lines · Stefan Fr?berg
1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so fast. So for now I have made it "depends on
BR2_PACKAGE_JPEG_TURBO" so that turbovnc package will only appear to menu only if jpeg-turbo has been also selected. Is that okay?
I don't think so.
The manual (?17.2.3) says you should "use a select type of dependency for dependencies on libraries", and conversely "use a depends on type of dependency when the user really needs to be aware of the dependency". In this case there is nothing obvious about having to enable turbo-jpeg for turbovnc, IMO.
baruch
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -PATCH v2 1/1 turbovnc: new package
Hello,
Quoted 6 lines · Baruch Siach
Quoted 4 lines · Stefan Fr?berg
1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so fast. So for now I have made it "depends on
BR2_PACKAGE_JPEG_TURBO" so that turbovnc package will only appear to menu only if jpeg-turbo has been also selected. Is that okay?
Quoted 7 lines
I don't think so.
The manual (?17.2.3) says you should "use a select type of dependency for dependencies on libraries", and conversely "use a depends on type of dependency when the user really needs to be aware of the dependency". In this case there is nothing obvious about having to enable turbo-jpeg for turbovnc, IMO.
Yes, but Stefan cannot select jpeg-turbo, because it is part of a choice, and you can't "select" one item of a choice. So this suggestion from the manual doesn't apply in this specific case.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 1/1 turbovnc: new package
In reply to Stefan FröbergQuoted 5 lines · Stefan Fr?berg
1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so fast.
So for now I have made it "depends onBR2_PACKAGE_JPEG_TURBO" so that turbovnc package will only appear to menu only if jpeg-turbo has been also selected. Is that okay?
Yes, there is no other way. However, please do add a comment (separately from
the toolchain comments) that it needs jpeg-turbo.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v2 1/1 turbovnc: new package
Hello,
Quoted 8 lines · Arnout Vandecappelle
Quoted 5 lines
1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so fast.
So for now I have made it "depends onBR2_PACKAGE_JPEG_TURBO" so that turbovnc package will only appear to menu only if jpeg-turbo has been also selected. Is that okay?Yes, there is no other way. However, please do add a comment (separately from
the toolchain comments) that it needs jpeg-turbo.
I still would like to challenge why it needs jpeg-turbo. libjpeg and jpeg-turbo are supposed to be API compatible, so how can TurboVNC need one rather than the other? I can understand that TurboVNC's performance might be horrible with the regular libjpeg, but I don't get why it wouldn't work.
Stefan?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 1/1 turbovnc: new package
Hi
Well, the only reason seems to be that TurboVNC configuration is not happy untill the following
conditions are met:
TJPEG_INCLUDE_DIR = <path_to_include>/turbojepg.hTJPEG_LIBRARY = <path_to_lib>/libturbojpeg
So why is it looking those and not jpeg,h or libjpeg ? Let's do some detective work :-)
First, looking from my gentoo installation (that only has libjpeg-turbo) I can see that:/usr/include
-----------------jpeglib.hturbojpeg.h
and/usr/lib
----------------
libjpeg.so -> libjpeg.so.62.2.0
libjpeg.so.62 -> libjpeg.so.62.2.0
libjpeg.so.62.2.0
libturbojpeg.so -> libturbojpeg.so.0.1.0
libturbojepg.so.0 -> libturbojpeg.so.0.1.0
libturbojpeg.so.0.1.0
Funny, I always tought that jpeglib.h and all the libjpeg.* would be just symlinks to turbojpeg.h and libturbojpeg
So why does my gentoo libjpeg-turbo installation have separate jpeg.h and libjpeg.* files instead of just symlinks?
It appears to be that libjpeg-turbo library contains actually *two* JPEG API's!
jpeg.h and libjpeg.* being the standard (but SIMD accelerated), API compatible
implementation like you mentioned and that can just be dropped to replace vanilla jpeg.
And then there is another API called TurboJPEG (turbojpeg.h and libturbojpeg.*) that is
also bundled with libjpeg-turbo library and that's what the TurboVNC is using.
Performance wise there is no difference between the two API's but according to below link,
TurboJPEG API provides some features that are not easy to implement with standard libjpeg API
https://libjpeg-turbo.org/About/TurboJPEG
So what now?
Try to ask upstream if can use SIMD accelerated, standard libjpeg API (jpeg.h, libjpeg.*) instead of
TurboJPEG API ??? (maybe not possible if TurboVNC indeed needs some of the TurboJPEG API's stuff)
Dang .... maybe I just try to temporarily symlink turbojpeg.h libturbojpeg.* to libjpeg API using version
of the accelerated library and see where it starts to complaining ....
-S-
7.11.2017, 0:38, Thomas Petazzoni kirjoitti:
Quoted 20 lines
Hello,
Quoted 7 lines · Arnout Vandecappelle
Quoted 5 lines
1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so fast.
So for now I have made it "depends onBR2_PACKAGE_JPEG_TURBO" so that turbovnc package will only appear to menu only if jpeg-turbo has been also selected. Is that okay?Yes, there is no other way. However, please do add a comment (separately from
the toolchain comments) that it needs jpeg-turbo.I still would like to challenge why it needs jpeg-turbo. libjpeg and jpeg-turbo are supposed to be API compatible, so how can TurboVNC need one rather than the other? I can understand that TurboVNC's performance might be horrible with the regular libjpeg, but I don't get why it wouldn't work.
Stefan?
Thomas
PATCH v2 1/1 turbovnc: new package
In reply to Baruch SiachHi Baruch
Okay, will sleep little and then make 3rd version of patch. Thanks.
1.11.2017, 8:06, Baruch Siach kirjoitti:
Quoted 136 lines
Hi Stefan,
Quoted 37 lines · Stefan Fr?berg
Signed-off-by Stefan Fr?berg <[email protected]>Changes v1 -> v2:
- Actually selecting the needed dependencies (by Baruch)
- Dropped run-time dependencies perl and xfont_font-misc-misc (by Baruch)
- Made linux-pam optional dependency
- Added README.txt to license files (by Baruch)
- Added hashes for all license files (by Baruch)--- package/Config.in | 1 + package/turbovnc/Config.in | 24 ++++++++++++++++++++++++ package/turbovnc/turbovnc.hash | 25 +++++++++++++++++++++++++ package/turbovnc/turbovnc.mk | 25 +++++++++++++++++++++++++ 4 files changed, 75 insertions(+)create mode 100644 package/turbovnc/Config.in create mode 100644 package/turbovnc/turbovnc.hash create mode 100644
package/turbovnc/turbovnc.mkpackage/Config.in +1
-0@@ -330,6 +330,7 @@ comment "X applications" source "package/qt-webkit-kiosk/Config.in" source "package/rdesktop/Config.in" source "package/synergy/Config.in" + source "package/turbovnc/Config.in" source "package/wmctrl/Config.in" source "package/x11vnc/Config.in" source "package/xdotool/Config.in"package/turbovnc/Config.in new file +0
-0package/turbovnc/Config.in line 3
Quoted 3 lines
package/turbovnc/Config.in new file +3
-0@@ -0,0 +1,24 @@ +config BR2_PACKAGE_TURBOVNC + bool "turbovnc" + select BR2_PACKAGE_JPEG_TURBOYou also need to select
BR2_PACKAGE_JPEGbecauseBR2_PACKAGE_JPEG_TURBOdepends onBR2_PACKAGE_JPEG.package/turbovnc/Config.in line 10
Quoted 7 lines
package/turbovnc/Config.in new file +7
-0+ select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_XLIB_LIBICE + select BR2_PACKAGE_XLIB_LIBSM + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXEXT + select BR2_PACKAGE_XLIB_LIBXAU + select BR2_PACKAGE_XLIB_LIBXDMCPThe perl and xfont_font-misc-misc run-time dependencies are missing here.
Quoted 35 lines
package/turbovnc/Config.in new file +14
-0+ help + TurboVNC is a high-performance, enterprise-quality version + of VNC based on TightVNC, TigerVNC, and X.org. + It contains a variant of Tight encoding that is tuned for + maximum performance and compression with 3D applications + (VirtualGL), video, and other image-intensive workloads. + TurboVNC, in combination with VirtualGL, provides a + complete solution for remotely displaying 3D applications + with interactive performance. TurboVNC's high-speed encoding + methods have been adopted by TigerVNC and libvncserver, + and TurboVNC is also compatible with any other TightVNC + derivative. + + https://turbovnc.orgpackage/turbovnc/turbovnc.hash new file +15
-0@@ -0,0 +1,25 @@ +# From https://sourceforge.net/projects/turbovnc/files/2.1.2/ +md5 9d04b26d40664d0d8072e8b1828f69c4 turbovnc-2.1.2.tar.gz +sha1 cd99a27cee86f0680410133beb25da1d6f35a3ea turbovnc-2.1.2.tar.gz +# Locally computed +sha256 2389f76eafc48412b980a61280ffb8d111dacd9e51d5e3df2112f505558b48d4 turbovnc-2.1.2.tar.gz + +md5 b234ee4d69f5fce4486a80fdaf4a4263 doc/LICENSE.txt +sha1 4cc77b90af91e615a64ae04893fdffa7939db84c doc/LICENSE.txt +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 doc/LICENSE.txt + +md5 f1fbc9578354b488efd1c7e276855c6a doc/LICENSE-PuTTY.txt +sha1 a069392e138032b7ebb156bad71035146916821f doc/LICENSE-PuTTY.txt +sha256 867b1e03a9a1bd0131b5ab7cb0cc617750cbd9edec9dee1903e15b306bb8f94b doc/LICENSE-PuTTY.txt + +md5 c017ff17fc6f0794adf93db5559ccd56 unix/Xvnc/extras/freetype2/docs/LICENSE.TXTpackage/turbovnc/turbovnc.hash line 25
Quoted 10 lines
package/turbovnc/turbovnc.hash new file +10
-0+sha1 265206b28e7c1b750b7e6ea27cc527a6cc6e7644 unix/Xvnc/extras/freetype2/docs/LICENSE.TXT +sha256 f6333b3a9106f10190e96d9f994f934deb7a5632851a1aaf846b94651a80f4da unix/Xvnc/extras/freetype2/docs/LICENSE.TXT + +md5 ddeb76cd34e791893c0f539fdab879bb unix/Xvnc/lib/bzip2/LICENSE +sha1 1c0c6888759a63c32bca7eb63353af2cd9bd5d9e unix/Xvnc/lib/bzip2/LICENSE +sha256 4919cfb14a73cd64fcef67b107613970cf1659a09aa675dba31314f373bc7204 unix/Xvnc/lib/bzip2/LICENSE + +md5 009fb6d6593627afd6064fa51ca8d986 README.txt +sha1 aa41dc5b5268417e32fc280077b25e715e6d18f3 README.txt +sha256 6d38c387215532019f457f9b0050f24bcccdda2e8f2524014a79d294730735db README.txtSince the license files hashes are locally calculated, having only sha256 for each file should be enough.
Quoted 21 lines
package/turbovnc/turbovnc.mk new file +15
-0@@ -0,0 +1,25 @@ +################################################################################ +# +# turbovnc +# +################################################################################ + +TURBOVNC_VERSION = 2.1.2 +TURBOVNC_SOURCE = turbovnc-$(TURBOVNC_VERSION).tar.gz +TURBOVNC_SITE = https://downloads.sourceforge.net/project/turbovnc/$(TURBOVNC_VERSION) +TURBOVNC_DEPENDENCIES = jpeg-turbo openssl xlib_libICE xlib_libSM xlib_libX11 \ + xlib_libXext xlib_libXau xlib_libXdmcp +TURBOVNC_LICENSE = GPL-2.0, MIT (putty), Dual FTL/GPL-2.0+ (freetype) \ + bzip2 license (bzip2), Zlib (zlib) +TURBOVNC_LICENSE_FILES = doc/LICENSE.txt doc/LICENSE-PuTTY.txt \ + unix/Xvnc/extras/freetype2/doc/LICENSE.txt \package/turbovnc/turbovnc.mk line 25
Quoted 10 lines
package/turbovnc/turbovnc.mk new file +10
-0+ unix/Xvnc/lib/bzip2/LICENSE README.txt + +# Build just server +TURBOVNC_CONF_OPTS += -DTVNC_BUILDJAVA=0 -DTVNC_BUILDNATIVE=0 + +ifeq ($(BR2_PACKAGE_LINUX_PAM),y) +TURBOVNC_DEPENDENCIES += linux-pam +endif + +$(eval $(cmake-package))baruch