Message ID | 1509367204-12966-1-git-send-email-stefan.froberg@petroprogram.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [v2,1/1] turbovnc: new package | expand |
Hi Stefan, On Mon, Oct 30, 2017 at 12:40:04PM +0000, Stefan Fröberg wrote: > Signed-off-by: Stefan Fröberg <stefan.froberg@petroprogram.com> > > 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 > > diff --git a/package/Config.in b/package/Config.in > index dbfb288..2ab14bf 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -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" > diff --git a/package/turbovnc/Config.in b/package/turbovnc/Config.in > new file mode 100644 > index 0000000..0b98073 > --- /dev/null > +++ b/package/turbovnc/Config.in > @@ -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. > + 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. > + 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 > diff --git a/package/turbovnc/turbovnc.hash b/package/turbovnc/turbovnc.hash > new file mode 100644 > index 0000000..3dc092a > --- /dev/null > +++ b/package/turbovnc/turbovnc.hash > @@ -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 Since the license files hashes are locally calculated, having only sha256 for each file should be enough. > diff --git a/package/turbovnc/turbovnc.mk b/package/turbovnc/turbovnc.mk > new file mode 100644 > index 0000000..34208e3 > --- /dev/null > +++ b/package/turbovnc/turbovnc.mk > @@ -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)) baruch
Hello, On Wed, 1 Nov 2017 08:06:57 +0200, Baruch Siach wrote: > > +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. 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. > > + 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 > Since the license files hashes are locally calculated, having only sha256 for > each file should be enough. Agreed. > > +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? > > + 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
Hi Baruch Okay, will sleep little and then make 3rd version of patch. Thanks. 1.11.2017, 8:06, Baruch Siach kirjoitti: > Hi Stefan, > > On Mon, Oct 30, 2017 at 12:40:04PM +0000, Stefan Fröberg wrote: >> Signed-off-by: Stefan Fröberg <stefan.froberg@petroprogram.com> >> >> 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 >> >> diff --git a/package/Config.in b/package/Config.in >> index dbfb288..2ab14bf 100644 >> --- a/package/Config.in >> +++ b/package/Config.in >> @@ -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" >> diff --git a/package/turbovnc/Config.in b/package/turbovnc/Config.in >> new file mode 100644 >> index 0000000..0b98073 >> --- /dev/null >> +++ b/package/turbovnc/Config.in >> @@ -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. > >> + 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. > >> + 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 >> diff --git a/package/turbovnc/turbovnc.hash b/package/turbovnc/turbovnc.hash >> new file mode 100644 >> index 0000000..3dc092a >> --- /dev/null >> +++ b/package/turbovnc/turbovnc.hash >> @@ -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 > Since the license files hashes are locally calculated, having only sha256 for > each file should be enough. > >> diff --git a/package/turbovnc/turbovnc.mk b/package/turbovnc/turbovnc.mk >> new file mode 100644 >> index 0000000..34208e3 >> --- /dev/null >> +++ b/package/turbovnc/turbovnc.mk >> @@ -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)) > baruch >
Hi Thomas 1.11.2017, 11:53, Thomas Petazzoni kirjoitti: > Why does it bundle freetype? Can it use an external Freetype instead? >>> + 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-
Hello, On Thu, 02 Nov 2017 23:21:45 +0200, Stefan Fröberg wrote: > 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? > 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. Thanks. Let's see what upstream says. Best regards, Thomas
Hi 2.11.2017, 23:28, Thomas Petazzoni kirjoitti: >> 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-
Hi 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: > Hello, > > On Thu, 02 Nov 2017 23:21:45 +0200, Stefan Fröberg wrote: > > >> 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? > >> 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. > Thanks. Let's see what upstream says. > > Best regards, > > Thomas
Hi 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: > Hello, > > On Thu, 02 Nov 2017 23:21:45 +0200, Stefan Fröberg wrote: > > >> 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? > >> 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. > Thanks. Let's see what upstream says. > > Best regards, > > Thomas
Hi Stefan, On Mon, Nov 06, 2017 at 03:13:21PM +0200, Stefan Fröberg wrote: > 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
Hello, On Mon, 6 Nov 2017 21:59:34 +0200, Baruch Siach wrote: > On Mon, Nov 06, 2017 at 03:13:21PM +0200, Stefan Fröberg wrote: > > 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. 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
On 06-11-17 14:13, Stefan Fröberg wrote: > 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? Yes, there is no other way. However, please do add a comment (separately from the toolchain comments) that it needs jpeg-turbo. Regards, Arnout
Hello, On Mon, 6 Nov 2017 23:19:00 +0100, Arnout Vandecappelle wrote: > > 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? > > 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
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.h TJPEG_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.h turbojpeg.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: > Hello, > > On Mon, 6 Nov 2017 23:19:00 +0100, Arnout Vandecappelle wrote: > >>> 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? >> 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
diff --git a/package/Config.in b/package/Config.in index dbfb288..2ab14bf 100644 --- a/package/Config.in +++ b/package/Config.in @@ -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" diff --git a/package/turbovnc/Config.in b/package/turbovnc/Config.in new file mode 100644 index 0000000..0b98073 --- /dev/null +++ b/package/turbovnc/Config.in @@ -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 diff --git a/package/turbovnc/turbovnc.hash b/package/turbovnc/turbovnc.hash new file mode 100644 index 0000000..3dc092a --- /dev/null +++ b/package/turbovnc/turbovnc.hash @@ -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 diff --git a/package/turbovnc/turbovnc.mk b/package/turbovnc/turbovnc.mk new file mode 100644 index 0000000..34208e3 --- /dev/null +++ b/package/turbovnc/turbovnc.mk @@ -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))
Signed-off-by: Stefan Fröberg <stefan.froberg@petroprogram.com> 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