From 48c82810715011513dc38dc1fd39d67134d899c5 Mon Sep 17 00:00:00 2001 From: Marcelo Boveto Shima Date: Mon, 9 Feb 2015 11:57:55 +0100 Subject: Description: gcc43 fix (005_nxcomp_gcc43.full+lite.patch) Use builtin includes to build with gcc43. --- nxcomp/Message.cpp | 4 ++-- nxcomp/Misc.cpp | 8 ++++---- nxcomp/Misc.h | 4 ++-- nxcomp/Proxy.cpp | 4 ++-- nxcomp/Split.cpp | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Message.cpp b/nxcomp/Message.cpp index 72d4fff3d..188ed9a0e 100644 --- a/nxcomp/Message.cpp +++ b/nxcomp/Message.cpp @@ -15,9 +15,9 @@ /* */ /**************************************************************************/ -#include +#include #include -#include +#include #include diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index 2c72259e3..7303c595b 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -15,11 +15,11 @@ /* */ /**************************************************************************/ -#include -#include -#include +#include +#include +#include #include -#include +#include #include #include diff --git a/nxcomp/Misc.h b/nxcomp/Misc.h index 200831757..3f37836f5 100644 --- a/nxcomp/Misc.h +++ b/nxcomp/Misc.h @@ -21,8 +21,8 @@ #include #include -#include -#include +#include +#include #ifdef __sun diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index 3b4df7eb6..d6c67e0e8 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -15,9 +15,9 @@ /* */ /**************************************************************************/ -#include +#include #include -#include +#include #include #include diff --git a/nxcomp/Split.cpp b/nxcomp/Split.cpp index 50627e793..35a4ed4a2 100644 --- a/nxcomp/Split.cpp +++ b/nxcomp/Split.cpp @@ -16,7 +16,7 @@ /**************************************************************************/ #include -#include +#include #include #include #include -- cgit v1.2.3 From f27e7424fc314e50f826036fd078ca64fe3f31ba Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 9 Feb 2015 14:16:10 +0100 Subject: Fix building against libpng 1.5 (006_nxcomp_libpng15.full+lite.patch). From the libpng homepage... The libpng 1.5.x series continues the evolution of the libpng API, finally hiding the contents of the venerable and hoary png_struct and png_info data structures inside private (i.e., non-installed) header files. Instead of direct struct-access, applications should be using the various png_get_xxx() and png_set_xxx() accessor functions, which have existed for almost as long as libpng itself. (Apps that compiled against libpng 1.4 without warnings about deprecated features should happily compile against 1.5, too. Patch origin: Fedora packagers of libXcomp3. --- debian/patches/006_nxcomp_libpng15.full+lite.patch | 43 ---------------------- debian/patches/series | 1 - nxcomp/Pgn.cpp | 6 +-- 3 files changed, 3 insertions(+), 47 deletions(-) delete mode 100644 debian/patches/006_nxcomp_libpng15.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/006_nxcomp_libpng15.full+lite.patch b/debian/patches/006_nxcomp_libpng15.full+lite.patch deleted file mode 100644 index a75c59bac..000000000 --- a/debian/patches/006_nxcomp_libpng15.full+lite.patch +++ /dev/null @@ -1,43 +0,0 @@ -Description: Fix building against libpng 1.5. - From the libpng homepage... - - The libpng 1.5.x series continues the evolution of the libpng API, - finally hiding the contents of the venerable and hoary png_struct and - png_info data structures inside private (i.e., non-installed) header - files. Instead of direct struct-access, applications should be using - the various png_get_xxx() and png_set_xxx() accessor functions, which - have existed for almost as long as libpng itself. (Apps that compiled - against libpng 1.4 without warnings about deprecated features should - happily compile against 1.5, too. -Forwarded: pending... -Author: Fedora packagers of NX -Last-Update: 2012-02-06 ---- a/nxcomp/Pgn.cpp 2010-03-01 19:18:59.000000000 +0200 -+++ b/nxcomp/Pgn.cpp 2011-09-13 16:35:12.000000000 +0300 -@@ -414,7 +414,7 @@ - - png_read_info(pngPtr, infoPtr); - -- if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE) -+ if (png_get_color_type(pngPtr, infoPtr) == PNG_COLOR_TYPE_PALETTE) - { - png_set_expand(pngPtr); - } -@@ -565,7 +565,7 @@ - - png_read_info( pngPtr, infoPtr ) ; - -- if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE) -+ if (png_get_color_type(pngPtr, infoPtr) == PNG_COLOR_TYPE_PALETTE) - { - png_set_expand(pngPtr); - } -@@ -709,7 +709,7 @@ - png_read_info(pngPtr, infoPtr) ; - - -- if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE) -+ if (png_get_color_type(pngPtr, infoPtr) == PNG_COLOR_TYPE_PALETTE) - { - png_set_expand(pngPtr); - } diff --git a/debian/patches/series b/debian/patches/series index 9779715e4..f82c87bf0 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -006_nxcomp_libpng15.full+lite.patch 007_nxcompshad_clean-gch-files.full.patch 008_nxcomp_sa-restorer.full+lite.patch 009_nxproxy_add-man-page.full+lite.patch diff --git a/nxcomp/Pgn.cpp b/nxcomp/Pgn.cpp index a68373441..af26724ef 100644 --- a/nxcomp/Pgn.cpp +++ b/nxcomp/Pgn.cpp @@ -414,7 +414,7 @@ int DecompressPng16(unsigned char *compressedData, int compressedLen, png_read_info(pngPtr, infoPtr); - if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE) + if (png_get_color_type(pngPtr, infoPtr) == PNG_COLOR_TYPE_PALETTE) { png_set_expand(pngPtr); } @@ -565,7 +565,7 @@ int DecompressPng24(unsigned char *compressedData, int compressedLen, png_read_info( pngPtr, infoPtr ) ; - if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE) + if (png_get_color_type(pngPtr, infoPtr) == PNG_COLOR_TYPE_PALETTE) { png_set_expand(pngPtr); } @@ -709,7 +709,7 @@ int DecompressPng32(unsigned char *compressedData, int compressedLen, png_read_info(pngPtr, infoPtr) ; - if (infoPtr -> color_type == PNG_COLOR_TYPE_PALETTE) + if (png_get_color_type(pngPtr, infoPtr) == PNG_COLOR_TYPE_PALETTE) { png_set_expand(pngPtr); } -- cgit v1.2.3 From a0b2fd836883e8ec429d5f31779c61f31b1a204d Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 9 Feb 2015 14:20:22 +0100 Subject: sa_restorer vs. memset (008_nxcomp_sa-restorer.full+lite.patch). Use memset instead of setting sa_restorer to NULL. Original-Author: Alexander Morozov --- .../patches/008_nxcomp_sa-restorer.full+lite.patch | 46 ---------------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 23 ++--------- 3 files changed, 4 insertions(+), 66 deletions(-) delete mode 100644 debian/patches/008_nxcomp_sa-restorer.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/008_nxcomp_sa-restorer.full+lite.patch b/debian/patches/008_nxcomp_sa-restorer.full+lite.patch deleted file mode 100644 index f1447ccb0..000000000 --- a/debian/patches/008_nxcomp_sa-restorer.full+lite.patch +++ /dev/null @@ -1,46 +0,0 @@ -Description: sa_restorer vs. memset - Use memset instead of setting sa_restorer to NULL. -Forwarded: pending -Author: Alexander Morozov -Last-Update: 2012-02-07 ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -5884,20 +5884,9 @@ - - struct sigaction newAction; - -- newAction.sa_handler = HandleSignal; -- -- // -- // This field doesn't exist on most OSes except -- // Linux. We keep setting the field to NULL to -- // avoid side-effects in the case the field is -- // a value return. -- // -+ memset(&newAction, 0, sizeof(newAction)); - -- #if defined(__linux__) -- -- newAction.sa_restorer = NULL; -- -- #endif -+ newAction.sa_handler = HandleSignal; - - sigemptyset(&(newAction.sa_mask)); - -@@ -6509,13 +6498,9 @@ - - struct sigaction action; - -- action.sa_handler = HandleTimer; -- -- #if defined(__linux__) -+ memset(&action, 0, sizeof(action)); - -- action.sa_restorer = NULL; -- -- #endif -+ action.sa_handler = HandleTimer; - - sigemptyset(&action.sa_mask); - diff --git a/debian/patches/series b/debian/patches/series index 81a71d3a1..9f56169bf 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -008_nxcomp_sa-restorer.full+lite.patch 009_nxproxy_add-man-page.full+lite.patch 009_nxagent_add-man-page.full.patch 010_nxauth_fix-binary-name-in-man-page.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 92b6fc28f..14e5ee795 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -5884,20 +5884,9 @@ void InstallSignal(int signal, int action) struct sigaction newAction; - newAction.sa_handler = HandleSignal; - - // - // This field doesn't exist on most OSes except - // Linux. We keep setting the field to NULL to - // avoid side-effects in the case the field is - // a value return. - // + memset(&newAction, 0, sizeof(newAction)); - #if defined(__linux__) - - newAction.sa_restorer = NULL; - - #endif + newAction.sa_handler = HandleSignal; sigemptyset(&(newAction.sa_mask)); @@ -6509,13 +6498,9 @@ void SetTimer(int value) struct sigaction action; - action.sa_handler = HandleTimer; - - #if defined(__linux__) + memset(&action, 0, sizeof(action)); - action.sa_restorer = NULL; - - #endif + action.sa_handler = HandleTimer; sigemptyset(&action.sa_mask); -- cgit v1.2.3 From 4bc550e867f6168c1090aa4e1959a22238be84f1 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 9 Feb 2015 14:26:02 +0100 Subject: nxcomp*,nxproxy: Add clean rules to Makefile.in templates. --- ...omp_makefile-uninstall+autoconf.full+lite.patch | 74 ---------------------- ...xcompext_makefile-uninstall+autoconf.full.patch | 66 ------------------- ...compshad_makefile-uninstall+autoconf.full.patch | 70 -------------------- .../015_nxproxy_makefile-uninstall.full+lite.patch | 40 ------------ debian/patches/series | 4 -- nxcomp/Makefile.in | 39 +++++++++++- nxcompext/Makefile.in | 31 ++++++++- nxcompshad/Makefile.in | 35 +++++++++- nxproxy/Makefile.in | 17 ++++- 9 files changed, 115 insertions(+), 261 deletions(-) delete mode 100644 debian/patches/012_nxcomp_makefile-uninstall+autoconf.full+lite.patch delete mode 100644 debian/patches/013_nxcompext_makefile-uninstall+autoconf.full.patch delete mode 100644 debian/patches/014_nxcompshad_makefile-uninstall+autoconf.full.patch delete mode 100644 debian/patches/015_nxproxy_makefile-uninstall.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/012_nxcomp_makefile-uninstall+autoconf.full+lite.patch b/debian/patches/012_nxcomp_makefile-uninstall+autoconf.full+lite.patch deleted file mode 100644 index af778fefc..000000000 --- a/debian/patches/012_nxcomp_makefile-uninstall+autoconf.full+lite.patch +++ /dev/null @@ -1,74 +0,0 @@ -Description: Add install and uninstall stanzas to nxcomp/Makefile, honor ac dirs - Provide install and uninstall functionality in nxcomp/Makefile. - . - Honor autoconf's libdir (and includedir, while at it). This is a - must-have for multiarch platforms like x86_64 et al where multiple - forms of libraries can be installed at the same time. -Forwarded: pending... -Author: Mike Gabriel -Author: Jan Engelhardt -Last-Update: 2012-02-14 ---- a/nxcomp/Makefile.in -+++ b/nxcomp/Makefile.in -@@ -64,10 +64,15 @@ - bindir = @bindir@ - man1dir = @mandir@/man1 - VPATH = @srcdir@ -+libdir = @libdir@ -+includedir = @includedir@ - - INSTALL = @INSTALL@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_LINK = cp -av -+DESTDIR = -+RM_FILE = rm -f - - # - # This should be autodetected. -@@ -264,12 +269,44 @@ - fi - touch depend.status - --install: install.bin install.man -+install: install.bin install.lib install.man - - install.bin: - -+install.lib: all -+ ./mkinstalldirs $(DESTDIR)${libdir} -+ ./mkinstalldirs $(DESTDIR)${includedir}/nx -+ $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} -+ $(INSTALL_LINK) libXcomp.so.3 $(DESTDIR)${libdir} -+ $(INSTALL_LINK) libXcomp.so $(DESTDIR)${libdir} -+ $(INSTALL_DATA) libXcomp.a $(DESTDIR)${libdir} -+ $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx -+ $(INSTALL_DATA) MD5.h $(DESTDIR)${includedir}/nx -+ echo "Running ldconfig tool, this may take a while..." && ldconfig || true -+ - install.man: - -+uninstall: uninstall.bin uninstall.lib uninstall.man -+ -+uninstall.bin: -+ -+uninstall.lib: -+ $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.so.3 -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.so -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.a -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXalert.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NX.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXmitshm.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXpack.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXproto.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXrender.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXvars.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/MD5.h -+ echo "Running ldconfig tool, this may take a while..." && ldconfig || true -+ -+uninstall.man: -+ - clean: - -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* \ - @ALL@ diff --git a/debian/patches/013_nxcompext_makefile-uninstall+autoconf.full.patch b/debian/patches/013_nxcompext_makefile-uninstall+autoconf.full.patch deleted file mode 100644 index 300c0a39e..000000000 --- a/debian/patches/013_nxcompext_makefile-uninstall+autoconf.full.patch +++ /dev/null @@ -1,66 +0,0 @@ -Description: Add install and uninstall stanzas to nxcompext/Makefile, honor autoconf dirs. - Provide install and uninstall functionality in nxcompext/Makefile. - . - Honor autoconf's libdir (and includedir, while at it). This is a - must-have for multiarch platforms like x86_64 et al where multiple - forms of libraries can be installed at the same time. -Forwarded: pending... -Author: Mike Gabriel -Author: Jan Engelhardt -Last-Update: 2012-02-14 ---- a/nxcompext/Makefile.in -+++ b/nxcompext/Makefile.in -@@ -56,11 +56,15 @@ - bindir = @bindir@ - man1dir = @mandir@/man1 - VPATH = @srcdir@ -+libdir = @libdir@ -+includedir = @includedir@ - - INSTALL = @INSTALL@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_DATA = @INSTALL_DATA@ -- -+INSTALL_LINK = cp -av -+DESTDIR = -+RM_FILE = rm -f - # - # This should be autodetected. - # -@@ -147,12 +151,35 @@ - fi - touch depend.status - --install: install.bin install.man -+install: install.bin install.lib install.man - - install.bin: - -+install.lib: all -+ ./mkinstalldirs $(DESTDIR)${libdir} -+ ./mkinstalldirs $(DESTDIR)${includedir}/nx -+ $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} -+ $(INSTALL_LINK) libXcompext.so.3 $(DESTDIR)${libdir} -+ $(INSTALL_LINK) libXcompext.so $(DESTDIR)${libdir} -+ $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx -+ echo "Running ldconfig tool, this may take a while..." && ldconfig || true -+ - install.man: - -+uninstall: uninstall.bin uninstall.lib uninstall.man -+ -+uninstall.bin: -+ -+uninstall.lib: -+ $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcompext.so.3 -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcompext.so -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlib.h -+ $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlibint.h -+ echo "Running ldconfig tool, this may take a while..." && ldconfig || true -+ -+uninstall.man: -+ - clean: - -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* \ - @ALL@ diff --git a/debian/patches/014_nxcompshad_makefile-uninstall+autoconf.full.patch b/debian/patches/014_nxcompshad_makefile-uninstall+autoconf.full.patch deleted file mode 100644 index 921eccc4f..000000000 --- a/debian/patches/014_nxcompshad_makefile-uninstall+autoconf.full.patch +++ /dev/null @@ -1,70 +0,0 @@ -Description: Add install and uninstall stanzas to nxcompshad/Makefile, honor autoconf dirs - Provide install and uninstall functionality in nxcompshad/Makefile. - . - Honor autoconf's libdir (and includedir, while at it). This is a - must-have for multiarch platforms like x86_64 et al where multiple - forms of libraries can be installed at the same time. -Forwarded: pending... -Author: Mike Gabriel -Author: Jan Engelhardt -Last-Update: 2012-02-14 ---- a/nxcompshad/Makefile.in -+++ b/nxcompshad/Makefile.in -@@ -74,10 +74,17 @@ - bindir = @bindir@ - man1dir = @mandir@/man1 - VPATH = @srcdir@ -+libdir = @libdir@ -+includedir = @includedir@ - - INSTALL = @INSTALL@ -+INSTALL_DIR = $(INSTALL) -d -o root -g root -m 0755 - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_DATA = @INSTALL_DATA@ -+INSTALL_LINK = cp -av -+DESTDIR = -+RM_FILE = rm -f -+RM_DIR = rmdir -p --ignore-fail-on-non-empty - - # - # This should be autodetected. -@@ -178,12 +185,38 @@ - fi - touch depend.status - --install: install.bin install.man -+install: install.bin install.lib install.man - - install.bin: - -+install.lib: all -+ $(INSTALL_DIR) $(DESTDIR)${libdir} -+ $(INSTALL_DIR) $(DESTDIR)${includedir}/nx -+ $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} -+ $(INSTALL_LINK) libXcompshad.so.3 $(DESTDIR)${libdir} -+ $(INSTALL_LINK) libXcompshad.so $(DESTDIR)${libdir} -+ $(INSTALL_DATA) *.a $(DESTDIR)${libdir} -+ $(INSTALL_DATA) *.h $(DESTDIR)${includedir}/nx -+ echo "Running ldconfig tool, this may take a while..." && ldconfig || true -+ - install.man: - -+uninstall: uninstall.bin uninstall.lib uninstall.man -+ -+uninstall.bin: -+ -+uninstall.lib: -+ $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.so.3 -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.so -+ $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.a -+ for header in *.h; do $(RM_FILE) $(DESTDIR)${includedir}/nx/$$header; done -+ $(RM_DIR) $(DESTDIR)${libdir}/nx/ -+ $(RM_DIR) $(DESTDIR)${includedir}/nx/ -+ echo "Running ldconfig tool, this may take a while..." && ldconfig || true -+ -+uninstall.man: -+ - clean: - -rm -f *~ *.o *.gch *.bak st?????? core core.* *.out.* *.exe.stackdump \ - $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) $(LIBDLL) $(LIBDLLSTATIC) $(PROGRAM) $(PROGRAM).exe diff --git a/debian/patches/015_nxproxy_makefile-uninstall.full+lite.patch b/debian/patches/015_nxproxy_makefile-uninstall.full+lite.patch deleted file mode 100644 index 554c86aa4..000000000 --- a/debian/patches/015_nxproxy_makefile-uninstall.full+lite.patch +++ /dev/null @@ -1,40 +0,0 @@ -Description: Add install and uninstall stanzas to nxcomp/Makefile - Provide install and uninstall functionality in nxcomp/Makefile. -Forwarded: pending... -Author: Mike Gabriel -Last-Update: 2011-12-31 ---- a/nxproxy/Makefile.in -+++ b/nxproxy/Makefile.in -@@ -41,6 +41,8 @@ - INSTALL = @INSTALL@ - INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_DATA = @INSTALL_DATA@ -+DESTDIR = -+RM_FILE = rm -f - - # - # This should be autodetected. -@@ -87,11 +89,20 @@ - install: install.bin install.man - - install.bin: $(PROGRAM) -- $(srcdir)/mkinstalldirs $(bindir) -- $(INSTALL) $(PROGRAM) $(bindir)/$(PROGRAM) -+ $(srcdir)/mkinstalldirs $(DESTDIR)$(bindir) -+ $(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(bindir)/$(PROGRAM) - - install.man: -- $(srcdir)/mkinstalldirs $(man1dir) -+ $(srcdir)/mkinstalldirs $(DESTDIR)$(man1dir) -+ $(INSTALL_DATA) man/$(PROGRAM).1 $(DESTDIR)$(man1dir)/$(PROGRAM).1 -+ -+uninstall: uninstall.bin uninstall.man -+ -+uninstall.bin: -+ $(RM_FILE) $(DESTDIR)$(bindir)/$(PROGRAM) -+ -+uninstall.man: -+ $(RM_FILE) $(DESTDIR)$(man1dir)/nxproxy.1 - - clean: - -rm -f *~ *.o *.bak st?????? core core.* *.out.* \ diff --git a/debian/patches/series b/debian/patches/series index 8bbb69182..f3678f428 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,7 +1,3 @@ -012_nxcomp_makefile-uninstall+autoconf.full+lite.patch -013_nxcompext_makefile-uninstall+autoconf.full.patch -014_nxcompshad_makefile-uninstall+autoconf.full.patch -015_nxproxy_makefile-uninstall.full+lite.patch 016_nx-X11_install-location.full.patch 024_fix-make-clean.full.patch 024_fix-make-clean.full+lite.patch diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 434118b4e..d291c3967 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -64,10 +64,15 @@ exec_prefix = @exec_prefix@ bindir = @bindir@ man1dir = @mandir@/man1 VPATH = @srcdir@ +libdir = @libdir@ +includedir = @includedir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +INSTALL_LINK = cp -av +DESTDIR = +RM_FILE = rm -f # # This should be autodetected. @@ -264,12 +269,44 @@ depend.status: fi touch depend.status -install: install.bin install.man +install: install.bin install.lib install.man install.bin: +install.lib: all + ./mkinstalldirs $(DESTDIR)${libdir} + ./mkinstalldirs $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} + $(INSTALL_LINK) libXcomp.so.3 $(DESTDIR)${libdir} + $(INSTALL_LINK) libXcomp.so $(DESTDIR)${libdir} + $(INSTALL_DATA) libXcomp.a $(DESTDIR)${libdir} + $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) MD5.h $(DESTDIR)${includedir}/nx + echo "Running ldconfig tool, this may take a while..." && ldconfig || true + install.man: +uninstall: uninstall.bin uninstall.lib uninstall.man + +uninstall.bin: + +uninstall.lib: + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) + $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.so.3 + $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.so + $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.a + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXalert.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NX.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXmitshm.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXpack.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXproto.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXrender.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXvars.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/MD5.h + echo "Running ldconfig tool, this may take a while..." && ldconfig || true + +uninstall.man: + clean: -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* \ @ALL@ diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index cdf0b1cd9..51bc06ed2 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -56,11 +56,15 @@ exec_prefix = @exec_prefix@ bindir = @bindir@ man1dir = @mandir@/man1 VPATH = @srcdir@ +libdir = @libdir@ +includedir = @includedir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ - +INSTALL_LINK = cp -av +DESTDIR = +RM_FILE = rm -f # # This should be autodetected. # @@ -147,12 +151,35 @@ depend.status: fi touch depend.status -install: install.bin install.man +install: install.bin install.lib install.man install.bin: +install.lib: all + ./mkinstalldirs $(DESTDIR)${libdir} + ./mkinstalldirs $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} + $(INSTALL_LINK) libXcompext.so.3 $(DESTDIR)${libdir} + $(INSTALL_LINK) libXcompext.so $(DESTDIR)${libdir} + $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx + echo "Running ldconfig tool, this may take a while..." && ldconfig || true + install.man: +uninstall: uninstall.bin uninstall.lib uninstall.man + +uninstall.bin: + +uninstall.lib: + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) + $(RM_FILE) $(DESTDIR)${libdir}/libXcompext.so.3 + $(RM_FILE) $(DESTDIR)${libdir}/libXcompext.so + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlib.h + $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlibint.h + echo "Running ldconfig tool, this may take a while..." && ldconfig || true + +uninstall.man: + clean: -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* \ @ALL@ diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index caf9eb14c..26a92bdce 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -74,10 +74,17 @@ exec_prefix = @exec_prefix@ bindir = @bindir@ man1dir = @mandir@/man1 VPATH = @srcdir@ +libdir = @libdir@ +includedir = @includedir@ INSTALL = @INSTALL@ +INSTALL_DIR = $(INSTALL) -d -o root -g root -m 0755 INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +INSTALL_LINK = cp -av +DESTDIR = +RM_FILE = rm -f +RM_DIR = rmdir -p --ignore-fail-on-non-empty # # This should be autodetected. @@ -178,12 +185,38 @@ depend.status: fi touch depend.status -install: install.bin install.man +install: install.bin install.lib install.man install.bin: +install.lib: all + $(INSTALL_DIR) $(DESTDIR)${libdir} + $(INSTALL_DIR) $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} + $(INSTALL_LINK) libXcompshad.so.3 $(DESTDIR)${libdir} + $(INSTALL_LINK) libXcompshad.so $(DESTDIR)${libdir} + $(INSTALL_DATA) *.a $(DESTDIR)${libdir} + $(INSTALL_DATA) *.h $(DESTDIR)${includedir}/nx + echo "Running ldconfig tool, this may take a while..." && ldconfig || true + install.man: +uninstall: uninstall.bin uninstall.lib uninstall.man + +uninstall.bin: + +uninstall.lib: + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) + $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.so.3 + $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.so + $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.a + for header in *.h; do $(RM_FILE) $(DESTDIR)${includedir}/nx/$$header; done + $(RM_DIR) $(DESTDIR)${libdir}/nx/ + $(RM_DIR) $(DESTDIR)${includedir}/nx/ + echo "Running ldconfig tool, this may take a while..." && ldconfig || true + +uninstall.man: + clean: -rm -f *~ *.o *.gch *.bak st?????? core core.* *.out.* *.exe.stackdump \ $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) $(LIBDLL) $(LIBDLLSTATIC) $(PROGRAM) $(PROGRAM).exe diff --git a/nxproxy/Makefile.in b/nxproxy/Makefile.in index 928e0d34e..5d78972b9 100644 --- a/nxproxy/Makefile.in +++ b/nxproxy/Makefile.in @@ -41,6 +41,8 @@ VPATH = @srcdir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +DESTDIR = +RM_FILE = rm -f # # This should be autodetected. @@ -87,11 +89,20 @@ depend.status: install: install.bin install.man install.bin: $(PROGRAM) - $(srcdir)/mkinstalldirs $(bindir) - $(INSTALL) $(PROGRAM) $(bindir)/$(PROGRAM) + $(srcdir)/mkinstalldirs $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(bindir)/$(PROGRAM) install.man: - $(srcdir)/mkinstalldirs $(man1dir) + $(srcdir)/mkinstalldirs $(DESTDIR)$(man1dir) + $(INSTALL_DATA) man/$(PROGRAM).1 $(DESTDIR)$(man1dir)/$(PROGRAM).1 + +uninstall: uninstall.bin uninstall.man + +uninstall.bin: + $(RM_FILE) $(DESTDIR)$(bindir)/$(PROGRAM) + +uninstall.man: + $(RM_FILE) $(DESTDIR)$(man1dir)/nxproxy.1 clean: -rm -f *~ *.o *.bak st?????? core core.* *.out.* \ -- cgit v1.2.3 From 236ee4ffa8e4fa92bb748301986307841ef060ab Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 9 Feb 2015 15:16:30 +0100 Subject: nxcomp*, nxproxy: Fix clean-up of source tree via Makefile.in templates. 024_fix-make-clean.full.patch 024_fix-make-clean.full+lite.patch --- debian/patches/024_fix-make-clean.full+lite.patch | 19 --------- debian/patches/024_fix-make-clean.full.patch | 51 ----------------------- debian/patches/series | 2 - nx-X11/Makefile | 10 ++++- nxcomp/Makefile.in | 2 +- nxcompext/Makefile.in | 2 +- nxcompshad/Makefile.in | 2 +- nxproxy/Makefile.in | 2 +- 8 files changed, 12 insertions(+), 78 deletions(-) delete mode 100644 debian/patches/024_fix-make-clean.full+lite.patch delete mode 100644 debian/patches/024_fix-make-clean.full.patch (limited to 'nxcomp') diff --git a/debian/patches/024_fix-make-clean.full+lite.patch b/debian/patches/024_fix-make-clean.full+lite.patch deleted file mode 100644 index 7f0b327cf..000000000 --- a/debian/patches/024_fix-make-clean.full+lite.patch +++ /dev/null @@ -1,19 +0,0 @@ -Description: fix clean rule in nxcomp's Makefile.in -Author: Mike Gabriel - ---- a/nxcomp/Makefile.in -+++ b/nxcomp/Makefile.in -@@ -313,4 +313,4 @@ - - distclean: clean - -rm -rf autom4te.cache config.status config.log \ -- config.cache depend.status Makefile tags -+ config.cache depend.status Makefile tags configure ---- a/nxproxy/Makefile.in -+++ b/nxproxy/Makefile.in -@@ -109,4 +109,4 @@ - $(PROGRAM) $(PROGRAM).exe $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) - - distclean: clean -- -rm -f config.status config.log config.cache depend.status Makefile tags -+ -rm -rf autom4te.cache config.status config.log config.cache depend.status Makefile tags configure diff --git a/debian/patches/024_fix-make-clean.full.patch b/debian/patches/024_fix-make-clean.full.patch deleted file mode 100644 index 356ce47d8..000000000 --- a/debian/patches/024_fix-make-clean.full.patch +++ /dev/null @@ -1,51 +0,0 @@ -Description: Provide main Makefile for whole source tree - By design this patch is not needed to be sent upstream. -Forwarded: not-needed -Author: Mike Gabriel -Last-Update: 2012-10-19 ---- a/nx-X11/Makefile -+++ b/nx-X11/Makefile -@@ -138,6 +138,7 @@ - - xmakefile: Imakefile - $(RM) xmakefile -+ @rm -f $(IRULESRC)/date.def; echo "" > $(IRULESRC)/date.def; - $(IMAKE_CMD) -s xmakefile -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) - - World.Win32: -@@ -197,11 +198,16 @@ - # a copy of every rule that might be invoked at top level - - clean: -- $(MAKE_CMD) $@ -+ -$(MAKE_CMD) $@ -+ find config -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done -+ find lib -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done -+ find programs -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done -+ find include -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done -+ rm -f config/cf/{version.def,date.def} - dangerous_strip_clean: - $(MAKE_CMD) $@ - distclean: -- $(MAKE_CMD) $@ -+ -$(MAKE_CMD) $@ - $(RM) xmakefile $(IRULESRC)/version.def $(IRULESRC)/date.def - depend: - $(MAKE_CMD) $@ ---- a/nxcompext/Makefile.in -+++ b/nxcompext/Makefile.in -@@ -185,5 +185,5 @@ - @ALL@ - - distclean: clean -- -rm -rf autom4te.cache config.status config.log \ -+ -rm -rf autom4te.cache config.status config.log configure \ - config.cache depend.status Makefile tags ---- a/nxcompshad/Makefile.in -+++ b/nxcompshad/Makefile.in -@@ -222,4 +222,4 @@ - $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) $(LIBDLL) $(LIBDLLSTATIC) $(PROGRAM) $(PROGRAM).exe - - distclean: clean -- -rm -rf config.status config.log config.cache depend.status Makefile tags autom4te.cache -+ -rm -rf config.status config.log config.cache depend.status Makefile tags autom4te.cache configure diff --git a/debian/patches/series b/debian/patches/series index 70c573c38..63bc3dc43 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,3 @@ -024_fix-make-clean.full.patch -024_fix-make-clean.full+lite.patch 025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch 026_nxcompext_honour-optflags.full.patch 026_nxcomp_honour-optflags.full+lite.patch diff --git a/nx-X11/Makefile b/nx-X11/Makefile index 3aefb7974..7c4090a95 100644 --- a/nx-X11/Makefile +++ b/nx-X11/Makefile @@ -138,6 +138,7 @@ Makefile:: xmakefile: Imakefile $(RM) xmakefile + @rm -f $(IRULESRC)/date.def; echo "" > $(IRULESRC)/date.def; $(IMAKE_CMD) -s xmakefile -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) World.Win32: @@ -197,11 +198,16 @@ World.OS2: # a copy of every rule that might be invoked at top level clean: - $(MAKE_CMD) $@ + -$(MAKE_CMD) $@ + find config -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done + find lib -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done + find programs -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done + find include -type f | egrep '.*/Makefile$$' | while read makefile; do rm -f $$makefile; done + rm -f config/cf/{version.def,date.def} dangerous_strip_clean: $(MAKE_CMD) $@ distclean: - $(MAKE_CMD) $@ + -$(MAKE_CMD) $@ $(RM) xmakefile $(IRULESRC)/version.def $(IRULESRC)/date.def depend: $(MAKE_CMD) $@ diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index d291c3967..1be928167 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -313,4 +313,4 @@ clean: distclean: clean -rm -rf autom4te.cache config.status config.log \ - config.cache depend.status Makefile tags + config.cache depend.status Makefile tags configure diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index 51bc06ed2..9fd2c7d7d 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -185,5 +185,5 @@ clean: @ALL@ distclean: clean - -rm -rf autom4te.cache config.status config.log \ + -rm -rf autom4te.cache config.status config.log configure \ config.cache depend.status Makefile tags diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 26a92bdce..00bca25c9 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -222,4 +222,4 @@ clean: $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) $(LIBDLL) $(LIBDLLSTATIC) $(PROGRAM) $(PROGRAM).exe distclean: clean - -rm -rf config.status config.log config.cache depend.status Makefile tags autom4te.cache + -rm -rf config.status config.log config.cache depend.status Makefile tags autom4te.cache configure diff --git a/nxproxy/Makefile.in b/nxproxy/Makefile.in index 5d78972b9..c00df91dc 100644 --- a/nxproxy/Makefile.in +++ b/nxproxy/Makefile.in @@ -109,4 +109,4 @@ clean: $(PROGRAM) $(PROGRAM).exe $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) distclean: clean - -rm -f config.status config.log config.cache depend.status Makefile tags + -rm -rf autom4te.cache config.status config.log config.cache depend.status Makefile tags configure -- cgit v1.2.3 From 78efa8bf9889a006cd5c0a34a22d458de59ee60a Mon Sep 17 00:00:00 2001 From: Gabriel Marcano Date: Mon, 9 Feb 2015 15:19:12 +0100 Subject: Fix FTBFS against libjpeg9a (025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch). --- ...nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch | 40 ---------------------- debian/patches/series | 1 - nxcomp/Jpeg.cpp | 8 ++--- 3 files changed, 4 insertions(+), 45 deletions(-) delete mode 100644 debian/patches/025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch b/debian/patches/025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch deleted file mode 100644 index 66ca8c33e..000000000 --- a/debian/patches/025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch +++ /dev/null @@ -1,40 +0,0 @@ -Description: Fix FTBFS when built against libjpeg9a -Author: Gabriel Marcano ---- a/nxcomp/Jpeg.cpp 2014-08-19 22:23:36.139072400 -0400 -+++ b/nxcomp/Jpeg.cpp 2014-08-19 22:25:24.323182800 -0400 -@@ -440,7 +440,7 @@ - - JpegSetSrcManager(&cinfo, compressedData, compressedLen); - -- jpeg_read_header(&cinfo, 1); -+ jpeg_read_header(&cinfo, TRUE); - - if (jpegError) goto AbortDecompressJpeg16; - -@@ -581,7 +581,7 @@ - - JpegSetSrcManager(&cinfo, compressedData, compressedLen); - -- jpeg_read_header(&cinfo, 1); -+ jpeg_read_header(&cinfo, TRUE); - - if (jpegError) goto AbortDecompressJpeg24; - -@@ -718,7 +718,7 @@ - - JpegSetSrcManager(&cinfo, compressedData, compressedLen); - -- jpeg_read_header(&cinfo, 1); -+ jpeg_read_header(&cinfo, TRUE); - - if (jpegError) goto AbortDecompressJpeg32; - -@@ -833,7 +833,7 @@ - jpegSrcManager.bytes_in_buffer = jpegBufferLen; - jpegSrcManager.next_input_byte = (JOCTET *)jpegBufferPtr; - -- return 1; -+ return TRUE; - } - - static void JpegSkipInputData(j_decompress_ptr cinfo, long num_bytes) diff --git a/debian/patches/series b/debian/patches/series index 63bc3dc43..6eadd7bd9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch 026_nxcompext_honour-optflags.full.patch 026_nxcomp_honour-optflags.full+lite.patch 026_nxcompshad_honour-optflags.full.patch diff --git a/nxcomp/Jpeg.cpp b/nxcomp/Jpeg.cpp index b3973227c..9f71cbadf 100644 --- a/nxcomp/Jpeg.cpp +++ b/nxcomp/Jpeg.cpp @@ -440,7 +440,7 @@ int DecompressJpeg16(unsigned char *compressedData, int compressedLen, JpegSetSrcManager(&cinfo, compressedData, compressedLen); - jpeg_read_header(&cinfo, 1); + jpeg_read_header(&cinfo, TRUE); if (jpegError) goto AbortDecompressJpeg16; @@ -581,7 +581,7 @@ int DecompressJpeg24(unsigned char *compressedData, int compressedLen, JpegSetSrcManager(&cinfo, compressedData, compressedLen); - jpeg_read_header(&cinfo, 1); + jpeg_read_header(&cinfo, TRUE); if (jpegError) goto AbortDecompressJpeg24; @@ -718,7 +718,7 @@ int DecompressJpeg32(unsigned char *compressedData, int compressedLen, JpegSetSrcManager(&cinfo, compressedData, compressedLen); - jpeg_read_header(&cinfo, 1); + jpeg_read_header(&cinfo, TRUE); if (jpegError) goto AbortDecompressJpeg32; @@ -833,7 +833,7 @@ static boolean JpegFillInputBuffer(j_decompress_ptr cinfo) jpegSrcManager.bytes_in_buffer = jpegBufferLen; jpegSrcManager.next_input_byte = (JOCTET *)jpegBufferPtr; - return 1; + return TRUE; } static void JpegSkipInputData(j_decompress_ptr cinfo, long num_bytes) -- cgit v1.2.3 From 3384aba386c44ec26d3f131b897f77da440324d7 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Mon, 9 Feb 2015 15:22:07 +0100 Subject: Honour compiler/linker option flags. 026_nxcompext_honour-optflags.full.patch 026_nxcomp_honour-optflags.full+lite.patch 026_nxcompshad_honour-optflags.full.patch --- .../026_nxcomp_honour-optflags.full+lite.patch | 31 ---------------------- .../026_nxcompext_honour-optflags.full.patch | 17 ------------ .../026_nxcompshad_honour-optflags.full.patch | 17 ------------ debian/patches/series | 3 --- nxcomp/configure.in | 4 +-- nxcompext/configure.in | 4 +-- nxcompshad/configure.in | 4 +-- nxproxy/configure.in | 4 +-- 8 files changed, 8 insertions(+), 76 deletions(-) delete mode 100644 debian/patches/026_nxcomp_honour-optflags.full+lite.patch delete mode 100644 debian/patches/026_nxcompext_honour-optflags.full.patch delete mode 100644 debian/patches/026_nxcompshad_honour-optflags.full.patch (limited to 'nxcomp') diff --git a/debian/patches/026_nxcomp_honour-optflags.full+lite.patch b/debian/patches/026_nxcomp_honour-optflags.full+lite.patch deleted file mode 100644 index a2713a1bc..000000000 --- a/debian/patches/026_nxcomp_honour-optflags.full+lite.patch +++ /dev/null @@ -1,31 +0,0 @@ -Description: Honour compiler/linker option flags -Forwarded: pending -Author: Orion Poplawski -diff -up a/nxcomp/configure.in b/nxcomp/configure.in ---- a/nxcomp/configure.in 2012-11-10 06:40:55.000000000 -0700 -+++ b/nxcomp/configure.in 2012-12-11 13:13:19.390229196 -0700 -@@ -7,8 +7,8 @@ AC_PREREQ(2.13) - - dnl Set our default compilation flags. - --CXXFLAGS="-O3 -fno-rtti -fno-exceptions" --CFLAGS="-O3" -+CXXFLAGS="$CXXFLAGS -O3 -fno-rtti -fno-exceptions" -+CFLAGS="$CFLAGS -O3" - - dnl Reset default linking directives. - -diff -up a/nxproxy/configure.in b/nxproxy/configure.in ---- a/nxproxy/configure.in 2012-11-10 06:40:55.000000000 -0700 -+++ b/nxproxy/configure.in 2012-12-11 13:16:19.955301045 -0700 -@@ -7,8 +7,8 @@ AC_PREREQ(2.13) - - dnl Reset default compilation flags. - --CXXFLAGS="-O3" --CPPFLAGS="-O3" -+CXXFLAGS="$CXXFLAGS -O3" -+CPPFLAGS="$CPPFLAGS -O3" - - dnl Prefer headers and libraries from nx-X11 if present. - diff --git a/debian/patches/026_nxcompext_honour-optflags.full.patch b/debian/patches/026_nxcompext_honour-optflags.full.patch deleted file mode 100644 index 4d5df3e6b..000000000 --- a/debian/patches/026_nxcompext_honour-optflags.full.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: Honour compiler/linker option flags -Forwarded: pending -Author: Orion Poplawski -diff -up a/nxcompext/configure.in b/nxcompext/configure.in ---- a/nxcompext/configure.in 2012-11-10 06:40:55.000000000 -0700 -+++ b/nxcompext/configure.in 2012-12-11 13:15:26.712576302 -0700 -@@ -7,8 +7,8 @@ AC_PREREQ(2.13) - - dnl Reset default compilation flags. - --CXXFLAGS="-O3" --CFLAGS="-O3" -+CXXFLAGS="$CXXFLAGS -O3" -+CFLAGS="$CFLAGS -O3" - - dnl Reset default linking directives. - diff --git a/debian/patches/026_nxcompshad_honour-optflags.full.patch b/debian/patches/026_nxcompshad_honour-optflags.full.patch deleted file mode 100644 index ea1d2ad80..000000000 --- a/debian/patches/026_nxcompshad_honour-optflags.full.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: Honour compiler/linker option flags -Forwarded: pending -Author: Orion Poplawski -diff -up a/nxcompshad/configure.in b/nxcompshad/configure.in ---- a/nxcompshad/configure.in 2012-11-10 06:40:56.000000000 -0700 -+++ b/nxcompshad/configure.in 2012-12-11 13:13:25.915196300 -0700 -@@ -7,8 +7,8 @@ AC_PREREQ(2.13) - - dnl Reset default compilation flags. - --CXXFLAGS="-O3" --CPPFLAGS="-O3" -+CXXFLAGS="$CXXFLAGS -O3" -+CPPFLAGS="$CPPFLAGS -O3" - - dnl Reset default linking directives. - diff --git a/debian/patches/series b/debian/patches/series index 6eadd7bd9..ca6b6dcdc 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,6 +1,3 @@ -026_nxcompext_honour-optflags.full.patch -026_nxcomp_honour-optflags.full+lite.patch -026_nxcompshad_honour-optflags.full.patch 027_nxcomp_abstract-X11-socket.full+lite.patch 028_nx-X11_abstract-kernel-sockets.full.patch 029_nxcomp_ppc64.full+lite.patch diff --git a/nxcomp/configure.in b/nxcomp/configure.in index e9ab81da8..6fa9757a7 100644 --- a/nxcomp/configure.in +++ b/nxcomp/configure.in @@ -7,8 +7,8 @@ AC_PREREQ(2.13) dnl Set our default compilation flags. -CXXFLAGS="-O3 -fno-rtti -fno-exceptions" -CFLAGS="-O3" +CXXFLAGS="$CXXFLAGS -O3 -fno-rtti -fno-exceptions" +CFLAGS="$CFLAGS -O3" dnl Reset default linking directives. diff --git a/nxcompext/configure.in b/nxcompext/configure.in index fe5abf7cb..08c48a751 100644 --- a/nxcompext/configure.in +++ b/nxcompext/configure.in @@ -7,8 +7,8 @@ AC_PREREQ(2.13) dnl Reset default compilation flags. -CXXFLAGS="-O3" -CFLAGS="-O3" +CXXFLAGS="$CXXFLAGS -O3" +CFLAGS="$CFLAGS -O3" dnl Reset default linking directives. diff --git a/nxcompshad/configure.in b/nxcompshad/configure.in index f0bdecd12..13149b3a0 100644 --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -7,8 +7,8 @@ AC_PREREQ(2.13) dnl Reset default compilation flags. -CXXFLAGS="-O3" -CPPFLAGS="-O3" +CXXFLAGS="$CXXFLAGS -O3" +CPPFLAGS="$CPPFLAGS -O3" dnl Reset default linking directives. diff --git a/nxproxy/configure.in b/nxproxy/configure.in index bd930f166..b86828d02 100644 --- a/nxproxy/configure.in +++ b/nxproxy/configure.in @@ -7,8 +7,8 @@ AC_PREREQ(2.13) dnl Reset default compilation flags. -CXXFLAGS="-O3" -CPPFLAGS="-O3" +CXXFLAGS="$CXXFLAGS -O3" +CPPFLAGS="$CPPFLAGS -O3" dnl Prefer headers and libraries from nx-X11 if present. -- cgit v1.2.3 From aaf4a59e4c4ec54a26283bce6bf25281e12f0424 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 9 Feb 2015 15:27:46 +0100 Subject: Add X11 abstract socket support to nxcomp/nxproxy (027_nxcomp_abstract-X11-socket.full+lite.patch). --- .../027_nxcomp_abstract-X11-socket.full+lite.patch | 59 ---------------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 38 ++++++++++++++ 3 files changed, 38 insertions(+), 60 deletions(-) delete mode 100644 debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch b/debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch deleted file mode 100644 index 4c457c5d5..000000000 --- a/debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch +++ /dev/null @@ -1,59 +0,0 @@ -Description: Add X11 abstract socket support to nxcomp/nxproxy -Author: Mike Gabriel - -diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp -index 92b6fc2..d86809d 100644 ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -4250,6 +4250,39 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, - // where the socket will be created. - // - -+ // Try abstract X11 socket first (via a test connect), if that fails -+ // fall back to Unix domain socket file. -+ -+ #ifdef __linux__ -+ int testSocketFD; -+ testSocketFD = socket(xServerAddrFamily, SOCK_STREAM, PF_UNSPEC); -+ -+ int len = sprintf(unixSocketName + 1, "/tmp/.X11-unix/X%d", xPort); -+ unixSocketName[0] = '\0'; -+ -+ sockaddr_un *xServerAddrABSTRACT = new sockaddr_un; -+ memset(xServerAddrABSTRACT, 0, xServerAddrLength); -+ xServerAddrABSTRACT -> sun_family = AF_UNIX; -+ memcpy(xServerAddrABSTRACT -> sun_path, unixSocketName, len+1); -+ xServerAddrLength = len +3; -+ -+ int ret = connect(testSocketFD, (struct sockaddr *) xServerAddrABSTRACT, xServerAddrLength); -+ if (ret == 0) { -+ -+ cerr << "Info" << ": Using abstract X11 socket in kernel namespace " -+ << "for accessing DISPLAY=:" << xPort << ".\n"; -+ -+ close(testSocketFD); -+ xServerAddr = (sockaddr *) xServerAddrABSTRACT; -+ return 1; -+ -+ } else { -+ -+ cerr << "Info" << ": Falling back to file system X11 socket " -+ << "for accessing DISPLAY=:" << xPort << ".\n"; -+ -+ #endif -+ - struct stat statInfo; - - char unixSocketDir[DEFAULT_STRING_LENGTH]; -@@ -4322,6 +4355,11 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, - - xServerAddr = (sockaddr *) xServerAddrUNIX; - xServerAddrLength = sizeof(sockaddr_un); -+ -+ #ifdef __linux__ -+ -+ } -+ #endif - } - else - { diff --git a/debian/patches/series b/debian/patches/series index ca6b6dcdc..8da3bdbf9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -027_nxcomp_abstract-X11-socket.full+lite.patch 028_nx-X11_abstract-kernel-sockets.full.patch 029_nxcomp_ppc64.full+lite.patch 030_nx-X11_configure-args.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 14e5ee795..6fd772912 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -4250,6 +4250,39 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, // where the socket will be created. // + // Try abstract X11 socket first (via a test connect), if that fails + // fall back to Unix domain socket file. + + #ifdef __linux__ + int testSocketFD; + testSocketFD = socket(xServerAddrFamily, SOCK_STREAM, PF_UNSPEC); + + int len = sprintf(unixSocketName + 1, "/tmp/.X11-unix/X%d", xPort); + unixSocketName[0] = '\0'; + + sockaddr_un *xServerAddrABSTRACT = new sockaddr_un; + memset(xServerAddrABSTRACT, 0, xServerAddrLength); + xServerAddrABSTRACT -> sun_family = AF_UNIX; + memcpy(xServerAddrABSTRACT -> sun_path, unixSocketName, len+1); + xServerAddrLength = len +3; + + int ret = connect(testSocketFD, (struct sockaddr *) xServerAddrABSTRACT, xServerAddrLength); + if (ret == 0) { + + cerr << "Info" << ": Using abstract X11 socket in kernel namespace " + << "for accessing DISPLAY=:" << xPort << ".\n"; + + close(testSocketFD); + xServerAddr = (sockaddr *) xServerAddrABSTRACT; + return 1; + + } else { + + cerr << "Info" << ": Falling back to file system X11 socket " + << "for accessing DISPLAY=:" << xPort << ".\n"; + + #endif + struct stat statInfo; char unixSocketDir[DEFAULT_STRING_LENGTH]; @@ -4322,6 +4355,11 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, xServerAddr = (sockaddr *) xServerAddrUNIX; xServerAddrLength = sizeof(sockaddr_un); + + #ifdef __linux__ + + } + #endif } else { -- cgit v1.2.3 From bd10fe5919594afe37d0019bf58c359e79b54979 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Mon, 9 Feb 2015 15:31:46 +0100 Subject: Fix BIGENDIAN issue in nxcomp (relevant on PPC64 arch) (029_nxcomp_ppc64.full+lite.patch) --- debian/patches/029_nxcomp_ppc64.full+lite.patch | 17 ----------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 4 ++-- 3 files changed, 2 insertions(+), 20 deletions(-) delete mode 100644 debian/patches/029_nxcomp_ppc64.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/029_nxcomp_ppc64.full+lite.patch b/debian/patches/029_nxcomp_ppc64.full+lite.patch deleted file mode 100644 index 9d454d5db..000000000 --- a/debian/patches/029_nxcomp_ppc64.full+lite.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: Fix BIGENDIAN issue in nxcomp (relevant on PPC64 arch) -Author: Mihai Moldovan - ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -6832,9 +6832,9 @@ - { - sockaddr_in newAddr; - -- size_t addrLen = sizeof(sockaddr_in); -+ socklen_t addrLen = sizeof(sockaddr_in); - -- newFD = accept(proxyFD, (sockaddr *) &newAddr, (socklen_t *) &addrLen); -+ newFD = accept(proxyFD, (sockaddr *) &newAddr, &addrLen); - - if (newFD == -1) - { diff --git a/debian/patches/series b/debian/patches/series index b184a1fb0..de6e0905a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -029_nxcomp_ppc64.full+lite.patch 030_nx-X11_configure-args.full.patch 031_nx-X11_parallel-make.full.patch 051_nxcomp_macos105-fdisset.full+lite.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 6fd772912..7e2b990de 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -6832,9 +6832,9 @@ int WaitForRemote(int portNum) { sockaddr_in newAddr; - size_t addrLen = sizeof(sockaddr_in); + socklen_t addrLen = sizeof(sockaddr_in); - newFD = accept(proxyFD, (sockaddr *) &newAddr, (socklen_t *) &addrLen); + newFD = accept(proxyFD, (sockaddr *) &newAddr, &addrLen); if (newFD == -1) { -- cgit v1.2.3 From 9054786947b2f6b82078f6e5f965c3b0b629c880 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Mon, 9 Feb 2015 15:41:35 +0100 Subject: workaround for Mac OS X 10.5 (051_nxcomp_macos105-fdisset.full+lite.patch( The Mac OS X 10.5 SDK requires the second argument of FD_ISSET to be writeable, although it does only access the data. Given that we have a const pointer for a const struct, copy and pass that. . Note that this is merely a workaround for OS X 10.5, as 10.6 and later define the second argument of FD_ISSET as const struct const *foo, too. . It is safe, as data is accessed read-only by FD_ISSET, even on 10.5. --- .../051_nxcomp_macos105-fdisset.full+lite.patch | 82 ---------------------- debian/patches/series | 1 - nxcomp/Agent.h | 28 +++++--- 3 files changed, 20 insertions(+), 91 deletions(-) delete mode 100644 debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch b/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch deleted file mode 100644 index 6b78a6bc2..000000000 --- a/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch +++ /dev/null @@ -1,82 +0,0 @@ -Description: workaround for Mac OS X 10.5 - The Mac OS X 10.5 SDK requires the second argument of FD_ISSET to be - writeable, although it does only access the data. Given that we have a - const pointer for a const struct, copy and pass that. - . - Note that this is merely a workaround for OS X 10.5, as 10.6 and later - define the second argument of FD_ISSET as const struct const *foo, too. - . - It is safe, as data is accessed read-only by FD_ISSET, even on 10.5. -Forward: pending -Author: Mihai Moldovan ---- - nxcomp/Agent.h | 28 ++++++++++++++++++++-------- - 1 files changed, 20 insertions(+), 8 deletions(-) - ---- a/nxcomp/Agent.h -+++ b/nxcomp/Agent.h -@@ -149,30 +149,38 @@ - - int remoteCanRead(const fd_set * const readSet) - { -+ // OS X 10.5 requires the second argument to be non-const, so copy readSet. -+ // It's safe though, as FD_ISSET does not operate on it. -+ fd_set readWorkSet = *readSet; -+ - #if defined(TEST) || defined(INFO) - *logofs << "Agent: remoteCanRead() is " << -- (FD_ISSET(remoteFd_, readSet) && transport_ -> dequeuable() != 0) -- << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, readSet) -+ (FD_ISSET(remoteFd_, &readWorkSet) && transport_ -> dequeuable() != 0) -+ << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, &readWorkSet) - << " and dequeuable " << transport_ -> dequeuable() - << ".\n" << logofs_flush; - #endif - -- return (FD_ISSET(remoteFd_, readSet) && -+ return (FD_ISSET(remoteFd_, &readWorkSet) && - transport_ -> dequeuable() != 0); - } - - int remoteCanWrite(const fd_set * const writeSet) - { -+ // OS X 10.5 requires the second argument to be non-const, so copy writeSet. -+ // It's safe though, as FD_ISSET does not operate on it. -+ fd_set writeWorkSet = *writeSet; -+ - #if defined(TEST) || defined(INFO) - *logofs << "Agent: remoteCanWrite() is " << -- (FD_ISSET(remoteFd_, writeSet) && transport_ -> -+ (FD_ISSET(remoteFd_, &writeWorkSet) && transport_ -> - queuable() != 0 && canRead_ == 1) << " with FD_ISSET() " -- << (int) FD_ISSET(remoteFd_, writeSet) << " queueable " -+ << (int) FD_ISSET(remoteFd_, &writeWorkSet) << " queueable " - << transport_ -> queuable() << " channel can read " - << canRead_ << ".\n" << logofs_flush; - #endif - -- return (FD_ISSET(remoteFd_, writeSet) && -+ return (FD_ISSET(remoteFd_, &writeWorkSet) && - transport_ -> queuable() != 0 && - canRead_ == 1); - } -@@ -203,13 +211,17 @@ - - int proxyCanRead(const fd_set * const readSet) - { -+ // OS X 10.5 requires the second argument to be non-const, so copy readSet. -+ // It's safe though, as FD_ISSET does not operate on it. -+ fd_set readWorkSet = *readSet; -+ - #if defined(TEST) || defined(INFO) - *logofs << "Agent: proxyCanRead() is " -- << ((int) FD_ISSET(proxy -> getFd(), readSet) -+ << ((int) FD_ISSET(proxy -> getFd(), &readWorkSet) - << ".\n" << logofs_flush; - #endif - -- return (FD_ISSET(proxy -> getFd(), readSet)); -+ return (FD_ISSET(proxy -> getFd(), &readWorkSet)); - } - - int enqueueData(const char *data, const int size) const diff --git a/debian/patches/series b/debian/patches/series index 2c9811e29..214bf6a69 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -051_nxcomp_macos105-fdisset.full+lite.patch 052_nxcomp_macos10-nxauth-location.full+lite.patch 053_nx-X11_no-xcomp1-install-target.full.patch 054_nx-X11_ppc64-ftbfs.full.patch diff --git a/nxcomp/Agent.h b/nxcomp/Agent.h index fac5acd43..ded344d84 100644 --- a/nxcomp/Agent.h +++ b/nxcomp/Agent.h @@ -149,30 +149,38 @@ class Agent int remoteCanRead(const fd_set * const readSet) { + // OS X 10.5 requires the second argument to be non-const, so copy readSet. + // It's safe though, as FD_ISSET does not operate on it. + fd_set readWorkSet = *readSet; + #if defined(TEST) || defined(INFO) *logofs << "Agent: remoteCanRead() is " << - (FD_ISSET(remoteFd_, readSet) && transport_ -> dequeuable() != 0) - << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, readSet) + (FD_ISSET(remoteFd_, &readWorkSet) && transport_ -> dequeuable() != 0) + << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, &readWorkSet) << " and dequeuable " << transport_ -> dequeuable() << ".\n" << logofs_flush; #endif - return (FD_ISSET(remoteFd_, readSet) && + return (FD_ISSET(remoteFd_, &readWorkSet) && transport_ -> dequeuable() != 0); } int remoteCanWrite(const fd_set * const writeSet) { + // OS X 10.5 requires the second argument to be non-const, so copy writeSet. + // It's safe though, as FD_ISSET does not operate on it. + fd_set writeWorkSet = *writeSet; + #if defined(TEST) || defined(INFO) *logofs << "Agent: remoteCanWrite() is " << - (FD_ISSET(remoteFd_, writeSet) && transport_ -> + (FD_ISSET(remoteFd_, &writeWorkSet) && transport_ -> queuable() != 0 && canRead_ == 1) << " with FD_ISSET() " - << (int) FD_ISSET(remoteFd_, writeSet) << " queueable " + << (int) FD_ISSET(remoteFd_, &writeWorkSet) << " queueable " << transport_ -> queuable() << " channel can read " << canRead_ << ".\n" << logofs_flush; #endif - return (FD_ISSET(remoteFd_, writeSet) && + return (FD_ISSET(remoteFd_, &writeWorkSet) && transport_ -> queuable() != 0 && canRead_ == 1); } @@ -203,13 +211,17 @@ class Agent int proxyCanRead(const fd_set * const readSet) { + // OS X 10.5 requires the second argument to be non-const, so copy readSet. + // It's safe though, as FD_ISSET does not operate on it. + fd_set readWorkSet = *readSet; + #if defined(TEST) || defined(INFO) *logofs << "Agent: proxyCanRead() is " - << ((int) FD_ISSET(proxy -> getFd(), readSet) + << ((int) FD_ISSET(proxy -> getFd(), &readWorkSet) << ".\n" << logofs_flush; #endif - return (FD_ISSET(proxy -> getFd(), readSet)); + return (FD_ISSET(proxy -> getFd(), &readWorkSet)); } int enqueueData(const char *data, const int size) const -- cgit v1.2.3 From e736fff09871bbbc6101f3da444afbccd473a915 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Mon, 9 Feb 2015 15:45:33 +0100 Subject: Fix nxauth location on Mac OS X 10 (052_nxcomp_macos10-nxauth-location.full+lite.patch) --- ..._nxcomp_macos10-nxauth-location.full+lite.patch | 41 ---------------------- debian/patches/series | 1 - nxcomp/Auth.cpp | 17 ++++++--- 3 files changed, 13 insertions(+), 46 deletions(-) delete mode 100644 debian/patches/052_nxcomp_macos10-nxauth-location.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/052_nxcomp_macos10-nxauth-location.full+lite.patch b/debian/patches/052_nxcomp_macos10-nxauth-location.full+lite.patch deleted file mode 100644 index 813363e69..000000000 --- a/debian/patches/052_nxcomp_macos10-nxauth-location.full+lite.patch +++ /dev/null @@ -1,41 +0,0 @@ -Description: Fix nxauth location on Mac OS X 10 -Author: Mihai Moldovan - ---- a/nxcomp/Auth.cpp -+++ b/nxcomp/Auth.cpp -@@ -217,22 +217,31 @@ - - // - // Use the nxauth command on Windows and the Mac, xauth -- // on all the other platforms. On Windows and on the Mac -- // we assume that the nxauth command is located under -- // bin in the client installation directory. On all the -+ // on all the other platforms. On Windows we assume that -+ // the nxauth command is located under bin in the client -+ // installation directory. On Mac OS X we assume that the -+ // command is located directly in the client installation -+ // directory, to make bundle shipping easier. On all the - // other platforms we use the default xauth command that - // is in our path. - // - - char command[DEFAULT_STRING_LIMIT]; - -- #if defined(__CYGWIN32__) || defined(__APPLE__) -+ #if defined(__CYGWIN32__) - - snprintf(command, DEFAULT_STRING_LIMIT - 1, - "%s/bin/nxauth", control -> SystemPath); - - *(command + DEFAULT_STRING_LIMIT - 1) = '\0'; - -+ #elif defined(__APPLE__) -+ -+ snprintf(command, DEFAULT_STRING_LIMIT - 1, -+ "%s/nxauth", control -> SystemPath); -+ -+ *(command + DEFAULT_STRING_LIMIT - 1) = '\0'; -+ - #else - - strcpy(command, "xauth"); diff --git a/debian/patches/series b/debian/patches/series index 214bf6a69..138d87ae9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -052_nxcomp_macos10-nxauth-location.full+lite.patch 053_nx-X11_no-xcomp1-install-target.full.patch 054_nx-X11_ppc64-ftbfs.full.patch 055_nx-X11_imake-Werror-format-security.full.patch diff --git a/nxcomp/Auth.cpp b/nxcomp/Auth.cpp index d8e999132..c52392a51 100644 --- a/nxcomp/Auth.cpp +++ b/nxcomp/Auth.cpp @@ -217,22 +217,31 @@ int Auth::getCookie() // // Use the nxauth command on Windows and the Mac, xauth - // on all the other platforms. On Windows and on the Mac - // we assume that the nxauth command is located under - // bin in the client installation directory. On all the + // on all the other platforms. On Windows we assume that + // the nxauth command is located under bin in the client + // installation directory. On Mac OS X we assume that the + // command is located directly in the client installation + // directory, to make bundle shipping easier. On all the // other platforms we use the default xauth command that // is in our path. // char command[DEFAULT_STRING_LIMIT]; - #if defined(__CYGWIN32__) || defined(__APPLE__) + #if defined(__CYGWIN32__) snprintf(command, DEFAULT_STRING_LIMIT - 1, "%s/bin/nxauth", control -> SystemPath); *(command + DEFAULT_STRING_LIMIT - 1) = '\0'; + #elif defined(__APPLE__) + + snprintf(command, DEFAULT_STRING_LIMIT - 1, + "%s/nxauth", control -> SystemPath); + + *(command + DEFAULT_STRING_LIMIT - 1) = '\0'; + #else strcpy(command, "xauth"); -- cgit v1.2.3 From 8c1b852abf692af4898368132292eb8c7278a7c2 Mon Sep 17 00:00:00 2001 From: Oleksandr Shneyder Date: Tue, 10 Feb 2015 19:43:41 +0100 Subject: Save session state in file. 210_nxagent_save_session_state.full.patch 210_nxcomp_save_session_state.full+lite.patch This patch adds a "state" option to NX (agent) which allows one to specify a file where nxagent will write its session state into. --- .../210_nxagent_save_session_state.full.patch | 176 --------------------- .../210_nxcomp_save_session_state.full+lite.patch | 15 -- debian/patches/series | 2 - nx-X11/programs/Xserver/hw/nxagent/Args.c | 11 ++ nx-X11/programs/Xserver/hw/nxagent/Init.c | 3 +- nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 33 ++++ nx-X11/programs/Xserver/hw/nxagent/Reconnect.h | 2 + nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c | 3 + nxcomp/Loop.cpp | 3 +- 9 files changed, 53 insertions(+), 195 deletions(-) delete mode 100644 debian/patches/210_nxagent_save_session_state.full.patch delete mode 100644 debian/patches/210_nxcomp_save_session_state.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/210_nxagent_save_session_state.full.patch b/debian/patches/210_nxagent_save_session_state.full.patch deleted file mode 100644 index 223d0bc7a..000000000 --- a/debian/patches/210_nxagent_save_session_state.full.patch +++ /dev/null @@ -1,176 +0,0 @@ -Description: Save session state in file -Author: Oleksandr Shneyder - ---- a/nx-X11/programs/Xserver/hw/nxagent/Args.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c -@@ -60,6 +60,7 @@ - #endif - #include "Handlers.h" - #include "Error.h" -+#include "Reconnect.h" - - /* - * NX includes and definitions. -@@ -1090,6 +1091,11 @@ - - return; - } -+ else if (!strcmp(name, "state")) -+ { -+ setStatePath(value); -+ return; -+ } - else if (!strcmp(name, "fullscreen")) - { - if (nxagentReconnectTrap == True) -@@ -1369,6 +1375,11 @@ - validateString(nxagentOptionFile)); - #endif - -+ /* -+ * Init statePath -+ */ -+ setStatePath(""); -+ - if (nxagentOptionFile == NULL) - { - return; ---- a/nx-X11/programs/Xserver/hw/nxagent/Init.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c -@@ -63,7 +63,7 @@ - - #include "NX.h" - #include "NXlib.h" -- -+#include "Reconnect.h" - /* - * Set here the required log level. - */ -@@ -233,6 +233,7 @@ - fprintf(stderr, "Info: Agent running with pid '%d'.\n", getpid()); - - fprintf(stderr, "Session: Starting session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("STARTING"); - } - - /* ---- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c -@@ -118,6 +118,33 @@ - - static enum RECONNECTION_STEP failedStep; - -+#include -+ -+/* -+ * Path of state File -+ */ -+char stateFile[PATH_MAX]; -+ -+ -+void setStatePath(char* path) -+{ -+ strncpy(stateFile, path, PATH_MAX-1); -+} -+ -+void saveAgentState(char* state) -+{ -+ FILE* fptr; -+ if(strlen(stateFile)) -+ { -+ fptr=fopen(stateFile, "w"); -+ if(!fptr) -+ return; -+ fprintf(fptr,"%s", state); -+ fclose(fptr); -+ } -+} -+ -+ - int nxagentHandleConnectionStates(void) - { - #ifdef TEST -@@ -211,6 +238,7 @@ - fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); - - fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("SUSPENDING"); - } - - nxagentDisconnectSession(); -@@ -265,6 +293,7 @@ - fprintf(stderr, "Session: Session suspended at '%s'.\n", GetTimeAsString()); - #endif - } -+ saveAgentState("SUSPENDED"); - - nxagentResetDisplayHandlers(); - -@@ -622,6 +651,7 @@ - #else - fprintf(stderr, "Session: Session resumed at '%s'.\n", GetTimeAsString()); - #endif -+ saveAgentState("RUNNING"); - - nxagentRemoveSplashWindow(NULL); - -@@ -785,12 +815,14 @@ - if (nxagentSessionState == SESSION_GOING_DOWN) - { - fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("SUSPENDING"); - - nxagentDisconnectSession(); - } - else if (nxagentSessionState == SESSION_GOING_UP) - { - fprintf(stderr, "Session: Resuming session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("RESUMING"); - - if (nxagentReconnectSession()) - { -@@ -803,6 +835,7 @@ - fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); - - fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("SUSPENDING"); - - nxagentDisconnectSession(); - } ---- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h -+++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h -@@ -34,6 +34,8 @@ - Bool nxagentReconnectSession(void); - int nxagentHandleConnectionStates(void); - void nxagentHandleConnectionChanges(void); -+void setStatePath(char*); -+void saveAgentState(char*); - - enum SESSION_STATE - { ---- a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c -+++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c -@@ -609,6 +609,7 @@ - #endif - - nxagentSessionState = SESSION_UP; -+ saveAgentState("RUNNING"); - } - - #ifdef BLOCKS -@@ -823,6 +824,7 @@ - */ - - fprintf(stderr, "Session: Terminating session at '%s'.\n", GetTimeAsString()); -+ saveAgentState("TERMINATING"); - - nxagentWaitDisplay(); - -@@ -833,6 +835,7 @@ - { - NXShadowDestroy(); - } -+ saveAgentState("TERMINATED"); - - KillAllClients(); - DEALLOCATE_LOCAL(clientReady); diff --git a/debian/patches/210_nxcomp_save_session_state.full+lite.patch b/debian/patches/210_nxcomp_save_session_state.full+lite.patch deleted file mode 100644 index 1ef4440d8..000000000 --- a/debian/patches/210_nxcomp_save_session_state.full+lite.patch +++ /dev/null @@ -1,15 +0,0 @@ -Description: Ignore state= option in nxproxy/nxcomp -Author: Oleksandr Shneyder - ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -8872,7 +8872,8 @@ - } - else if (strcasecmp(name, "defer") == 0 || - strcasecmp(name, "tile") == 0 || -- strcasecmp(name, "menu") == 0) -+ strcasecmp(name, "menu") == 0 || -+ strcasecmp(name, "state") == 0 ) - { - #ifdef DEBUG - *logofs << "Loop: Ignoring agent option '" << name diff --git a/debian/patches/series b/debian/patches/series index 48b9abddc..9e0e64701 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,3 @@ -210_nxagent_save_session_state.full.patch -210_nxcomp_save_session_state.full+lite.patch 211_nxcomp_set_default_options.full+lite.patch 212_nxcomp_build-on-Android.full+lite.patch 220_nxproxy_bind-loopback-only.full+lite.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index c72b9c4e8..7074a1818 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -60,6 +60,7 @@ is" without express or implied warranty. #endif #include "Handlers.h" #include "Error.h" +#include "Reconnect.h" /* * NX includes and definitions. @@ -1090,6 +1091,11 @@ static void nxagentParseOptions(char *name, char *value) return; } + else if (!strcmp(name, "state")) + { + setStatePath(value); + return; + } else if (!strcmp(name, "fullscreen")) { if (nxagentReconnectTrap == True) @@ -1369,6 +1375,11 @@ void nxagentProcessOptionsFile() validateString(nxagentOptionFile)); #endif + /* + * Init statePath + */ + setStatePath(""); + if (nxagentOptionFile == NULL) { return; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.c b/nx-X11/programs/Xserver/hw/nxagent/Init.c index 1794f1551..8d4eed2b6 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Init.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c @@ -63,7 +63,7 @@ is" without express or implied warranty. #include "NX.h" #include "NXlib.h" - +#include "Reconnect.h" /* * Set here the required log level. */ @@ -233,6 +233,7 @@ void InitOutput(ScreenInfo *screenInfo, int argc, char *argv[]) fprintf(stderr, "Info: Agent running with pid '%d'.\n", getpid()); fprintf(stderr, "Session: Starting session at '%s'.\n", GetTimeAsString()); + saveAgentState("STARTING"); } /* diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index 3c576c6e0..b26fa9cfe 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -118,6 +118,33 @@ void *reconnectLossyLevel[STEP_NONE]; static enum RECONNECTION_STEP failedStep; +#include + +/* + * Path of state File + */ +char stateFile[PATH_MAX]; + + +void setStatePath(char* path) +{ + strncpy(stateFile, path, PATH_MAX-1); +} + +void saveAgentState(char* state) +{ + FILE* fptr; + if(strlen(stateFile)) + { + fptr=fopen(stateFile, "w"); + if(!fptr) + return; + fprintf(fptr,"%s", state); + fclose(fptr); + } +} + + int nxagentHandleConnectionStates(void) { #ifdef TEST @@ -211,6 +238,7 @@ TODO: This should be reset only when fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); + saveAgentState("SUSPENDING"); } nxagentDisconnectSession(); @@ -265,6 +293,7 @@ TODO: This should be reset only when fprintf(stderr, "Session: Session suspended at '%s'.\n", GetTimeAsString()); #endif } + saveAgentState("SUSPENDED"); nxagentResetDisplayHandlers(); @@ -622,6 +651,7 @@ Bool nxagentReconnectSession(void) #else fprintf(stderr, "Session: Session resumed at '%s'.\n", GetTimeAsString()); #endif + saveAgentState("RUNNING"); nxagentRemoveSplashWindow(NULL); @@ -785,12 +815,14 @@ void nxagentHandleConnectionChanges() if (nxagentSessionState == SESSION_GOING_DOWN) { fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); + saveAgentState("SUSPENDING"); nxagentDisconnectSession(); } else if (nxagentSessionState == SESSION_GOING_UP) { fprintf(stderr, "Session: Resuming session at '%s'.\n", GetTimeAsString()); + saveAgentState("RESUMING"); if (nxagentReconnectSession()) { @@ -803,6 +835,7 @@ void nxagentHandleConnectionChanges() fprintf(stderr, "Session: Display failure detected at '%s'.\n", GetTimeAsString()); fprintf(stderr, "Session: Suspending session at '%s'.\n", GetTimeAsString()); + saveAgentState("SUSPENDING"); nxagentDisconnectSession(); } diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h index c321bfada..5be2928b8 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.h @@ -34,6 +34,8 @@ void nxagentInitReconnector(void); Bool nxagentReconnectSession(void); int nxagentHandleConnectionStates(void); void nxagentHandleConnectionChanges(void); +void setStatePath(char*); +void saveAgentState(char*); enum SESSION_STATE { diff --git a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c index 69ad30d2d..f18c09fe4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c @@ -609,6 +609,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio #endif nxagentSessionState = SESSION_UP; + saveAgentState("RUNNING"); } #ifdef BLOCKS @@ -823,6 +824,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio */ fprintf(stderr, "Session: Terminating session at '%s'.\n", GetTimeAsString()); + saveAgentState("TERMINATING"); nxagentWaitDisplay(); @@ -833,6 +835,7 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio { NXShadowDestroy(); } + saveAgentState("TERMINATED"); KillAllClients(); DEALLOCATE_LOCAL(clientReady); diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 7e2b990de..12a858b0f 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8872,7 +8872,8 @@ int ParseEnvironmentOptions(const char *env, int force) } else if (strcasecmp(name, "defer") == 0 || strcasecmp(name, "tile") == 0 || - strcasecmp(name, "menu") == 0) + strcasecmp(name, "menu") == 0 || + strcasecmp(name, "state") == 0 ) { #ifdef DEBUG *logofs << "Loop: Ignoring agent option '" << name -- cgit v1.2.3 From 46c2aebca5196ad4c10bb4f6f2558d656c22f5d9 Mon Sep 17 00:00:00 2001 From: Oleksandr Shneyder Date: Tue, 10 Feb 2015 19:46:04 +0100 Subject: Set default pack and link options to avoid damage of session (211_nxcomp_set_default_options.full+lite.patch). --- .../211_nxcomp_set_default_options.full+lite.patch | 27 ---------------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 8 +++---- 3 files changed, 4 insertions(+), 32 deletions(-) delete mode 100644 debian/patches/211_nxcomp_set_default_options.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/211_nxcomp_set_default_options.full+lite.patch b/debian/patches/211_nxcomp_set_default_options.full+lite.patch deleted file mode 100644 index 7bd8a781d..000000000 --- a/debian/patches/211_nxcomp_set_default_options.full+lite.patch +++ /dev/null @@ -1,27 +0,0 @@ -Description: Set default pack and link options to avoid damage of session. -Author: Oleksandr Shneyder - ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -8328,8 +8328,8 @@ - - cerr << "Error" << ": Can't identify 'link' option in string '" - << value << "'.\n"; -- -- return -1; -+ if (ParseLinkOption("adsl") < 0) -+ return -1; - } - } - else if (strcasecmp(name, "limit") == 0) -@@ -8783,8 +8783,8 @@ - - cerr << "Error" << ": Can't identify pack method for string '" - << value << "'.\n"; -- -- return -1; -+ if (ParsePackOption("nopack")<0) -+ return -1; - } - } - else if (strcasecmp(name, "core") == 0) diff --git a/debian/patches/series b/debian/patches/series index 9e0e64701..0174ca194 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -211_nxcomp_set_default_options.full+lite.patch 212_nxcomp_build-on-Android.full+lite.patch 220_nxproxy_bind-loopback-only.full+lite.patch 300_nxagent_set-wm-class.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 12a858b0f..d5c8eb25d 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8328,8 +8328,8 @@ int ParseEnvironmentOptions(const char *env, int force) cerr << "Error" << ": Can't identify 'link' option in string '" << value << "'.\n"; - - return -1; + if (ParseLinkOption("adsl") < 0) + return -1; } } else if (strcasecmp(name, "limit") == 0) @@ -8783,8 +8783,8 @@ int ParseEnvironmentOptions(const char *env, int force) cerr << "Error" << ": Can't identify pack method for string '" << value << "'.\n"; - - return -1; + if (ParsePackOption("nopack")<0) + return -1; } } else if (strcasecmp(name, "core") == 0) -- cgit v1.2.3 From 79f218b563f6a4d3b17e92ee85ad242575daf8da Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Tue, 10 Feb 2015 19:47:58 +0100 Subject: Fix FTBFS of nxproxy/nxcomp on Android (212_nxcomp_build-on-Android.full+lite.patch). --- .../212_nxcomp_build-on-Android.full+lite.patch | 253 --------------------- debian/patches/series | 1 - nxcomp/Jpeg.cpp | 3 + nxcomp/Loop.cpp | 12 +- nxcomp/Pgn.cpp | 3 + nxcomp/Proxy.cpp | 7 + nxcomp/ServerChannel.cpp | 52 ++++- 7 files changed, 64 insertions(+), 267 deletions(-) delete mode 100644 debian/patches/212_nxcomp_build-on-Android.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/212_nxcomp_build-on-Android.full+lite.patch b/debian/patches/212_nxcomp_build-on-Android.full+lite.patch deleted file mode 100644 index 528d33b74..000000000 --- a/debian/patches/212_nxcomp_build-on-Android.full+lite.patch +++ /dev/null @@ -1,253 +0,0 @@ -Author: Nito Martinez -Description: Fix FTBFS of nxproxy/nxcomp on Android - ---- a/nxcomp/Jpeg.cpp -+++ b/nxcomp/Jpeg.cpp -@@ -17,6 +17,9 @@ - - #include - -+#ifdef ANDROID -+#include -+#endif - #include - #include - #include ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -4187,7 +4187,7 @@ - - #endif - -- char *separator = rindex(display, ':'); -+ char *separator = strrchr(display, ':'); - - if ((separator == NULL) || !isdigit(*(separator + 1))) - { -@@ -8240,7 +8240,7 @@ - char *name; - char *value; - -- value = rindex(nextOpts, ':'); -+ value = strrchr(nextOpts, ':'); - - if (value != NULL) - { -@@ -11010,7 +11010,7 @@ - packMethod == PACK_LOSSLESS || - packMethod == PACK_ADAPTIVE) - { -- const char *dash = rindex(opt, '-'); -+ const char *dash = strrchr(opt, '-'); - - if (dash != NULL && strlen(dash) == 2 && - *(dash + 1) >= '0' && *(dash + 1) <= '9') -@@ -12275,6 +12275,10 @@ - control -> ShmemServer = 0; - } - -+ // For android, no shared memory available -+ control -> ShmemServer = 0; -+ control -> ShmemClientSize = 0; -+ - return 1; - } - -@@ -13525,7 +13529,7 @@ - - int newPort = port; - -- const char *separator = rindex(opt, ':'); -+ const char *separator = strrchr(opt, ':'); - - if (separator != NULL) - { ---- a/nxcomp/Pgn.cpp -+++ b/nxcomp/Pgn.cpp -@@ -23,6 +23,9 @@ - - #include - -+#ifdef ANDROID -+#include -+#endif - #include - #include - #include ---- a/nxcomp/Proxy.cpp -+++ b/nxcomp/Proxy.cpp -@@ -20,6 +20,11 @@ - #include - #include - #include -+#ifdef ANDROID -+#include -+#include -+#include -+#endif - - #include "Misc.h" - -@@ -31,9 +36,11 @@ - #include - #endif - -+#ifndef ANDROID - #include - #include - #include -+#endif - - #if defined(__EMX__ ) || defined(__CYGWIN32__) - ---- a/nxcomp/ServerChannel.cpp -+++ b/nxcomp/ServerChannel.cpp -@@ -18,7 +18,9 @@ - #include - #include - #include -+#ifndef ANDROID - #include -+#endif - - #include - #include -@@ -1079,7 +1081,6 @@ - - priority_++; - } -- - // - // Account this data to the original opcode. - // -@@ -1500,7 +1501,6 @@ - continue; - } - } -- - // - // Check if user pressed the CTRL+ALT+SHIFT+ESC key - // sequence because was unable to kill the session -@@ -5475,7 +5475,7 @@ - *logofs << "handleColormap: Dumping colormap entries:\n" - << logofs_flush; - -- const unsigned char *p = unpackState_[resource] -> colormap -> data; -+ const unsigned char *p = (const unsigned char *) unpackState_[resource] -> colormap -> data; - - for (unsigned int i = 0; i < unpackState_[resource] -> - colormap -> entries; i++) -@@ -7100,7 +7100,12 @@ - { - encodeBuffer.encodeValue(stage, 2); - -+#ifndef ANDROID - shmemState_ -> present = *(buffer + 8); -+#else -+ shmemState_ -> present = 0; -+ cerr << "Info: handleShmemReply: In android no shared memory. Setting present to 0 hardcoded\n"; -+#endif - shmemState_ -> opcode = *(buffer + 9); - shmemState_ -> event = *(buffer + 10); - shmemState_ -> error = *(buffer + 11); -@@ -7128,7 +7133,12 @@ - cerr << "Info" << ": Using shared memory parameters 1/" - << (shmemState_ -> size / 1024) << "K.\n"; - -+#ifndef ANDROID - shmemState_ -> enabled = 1; -+#else -+ cerr << "Info: handleShmemReply: In android no shared memory. Setting enabled to -1. This should not be displayed\n"; -+ shmemState_ -> enabled = -1; -+#endif - - encodeBuffer.encodeBoolValue(1); - } -@@ -7241,7 +7251,7 @@ - // memory support is disabled by the - // user. - // -- -+#ifndef ANDROID - if (control -> ShmemServer == 1 && - control -> ShmemServerSize > 0 && - enableServer == 1) -@@ -7252,8 +7262,12 @@ - { - memcpy(buffer + 8, "NO-MIT-", 7); - } -+#else -+ cerr << "Info: handleShmemRequest: In android no shared memory. Returning NO-MIT- answer\n"; - -- sequenceQueue_.push(clientSequence_, opcode, -+ memcpy(buffer + 8, "NO-MIT-", 7); -+#endif -+ sequenceQueue_.push(clientSequence_, opcode, - opcodeStore_ -> getShmemParameters, stage); - - // -@@ -7289,9 +7303,13 @@ - - shmemState_ -> size = control -> ShmemServerSize; - -+#ifndef ANDROID - shmemState_ -> id = shmget(IPC_PRIVATE, shmemState_ -> size, - IPC_CREAT | permissions); -- -+#else -+ cerr << "Info: handleShmemReqyest: In android no shared memory (shmget). This message should not be displayed present should never be 1 in android\n"; -+ shmemState_ -> id = -1; -+#endif - if (shmemState_ -> id >= 0) - { - #if defined(TEST) || defined(INFO) -@@ -7302,8 +7320,12 @@ - #endif - - -+#ifndef ANDROID - shmemState_ -> address = shmat(shmemState_ -> id, 0, 0); -- -+#else -+ cerr << "Info: handleShmemReqyest: In android no shared memory (shmat). This message should not be displayed. present should never be 1 in android\n"; -+ shmemState_ -> address = NULL; -+#endif - if (shmemState_ -> address != NULL) - { - #ifdef TEST -@@ -7437,6 +7459,10 @@ - - return 0; - } -+#ifdef ANDROID -+ cerr << "Info: handleShmem: In android no shared memory. enabled should never be 1. This should not be displayed\n"; -+ return 0; -+#endif - - // - // Ignore null requests and requests that will not result -@@ -8054,14 +8080,22 @@ - { - if (shmemState_ != NULL) - { -- if (shmemState_ -> address != NULL) -+ if (shmemState_ -> address != NULL) - { -- shmdt((char *) shmemState_ -> address); -+#ifndef ANDROID -+ shmdt((char *) shmemState_ -> address); -+#else -+ cerr << "Info: handleShmemStateRemove: In android no shared memory. This should not be displayed. address should always be NULL\n"; -+#endif - } - - if (shmemState_ -> id > 0) - { -+#ifndef ANDROID - shmctl(shmemState_ -> id, IPC_RMID, 0); -+#else -+ cerr << "Info: handleShmemStateRemove: In android no shared memory. This should not be displayed. id should always be 0\n"; -+#endif - } - - delete shmemState_; diff --git a/debian/patches/series b/debian/patches/series index 0174ca194..b6a467730 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -212_nxcomp_build-on-Android.full+lite.patch 220_nxproxy_bind-loopback-only.full+lite.patch 300_nxagent_set-wm-class.full.patch 301_nx-X11_use-shared-libs.full.patch diff --git a/nxcomp/Jpeg.cpp b/nxcomp/Jpeg.cpp index 9f71cbadf..414d373ef 100644 --- a/nxcomp/Jpeg.cpp +++ b/nxcomp/Jpeg.cpp @@ -17,6 +17,9 @@ #include +#ifdef ANDROID +#include +#endif #include #include #include diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index d5c8eb25d..05b514570 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -4187,7 +4187,7 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, #endif - char *separator = rindex(display, ':'); + char *separator = strrchr(display, ':'); if ((separator == NULL) || !isdigit(*(separator + 1))) { @@ -8240,7 +8240,7 @@ int ParseEnvironmentOptions(const char *env, int force) char *name; char *value; - value = rindex(nextOpts, ':'); + value = strrchr(nextOpts, ':'); if (value != NULL) { @@ -11010,7 +11010,7 @@ int ParsePackOption(const char *opt) packMethod == PACK_LOSSLESS || packMethod == PACK_ADAPTIVE) { - const char *dash = rindex(opt, '-'); + const char *dash = strrchr(opt, '-'); if (dash != NULL && strlen(dash) == 2 && *(dash + 1) >= '0' && *(dash + 1) <= '9') @@ -12275,6 +12275,10 @@ int SetShmem() control -> ShmemServer = 0; } + // For android, no shared memory available + control -> ShmemServer = 0; + control -> ShmemClientSize = 0; + return 1; } @@ -13525,7 +13529,7 @@ int ParseHostOption(const char *opt, char *host, int &port) int newPort = port; - const char *separator = rindex(opt, ':'); + const char *separator = strrchr(opt, ':'); if (separator != NULL) { diff --git a/nxcomp/Pgn.cpp b/nxcomp/Pgn.cpp index af26724ef..cdcde84ce 100644 --- a/nxcomp/Pgn.cpp +++ b/nxcomp/Pgn.cpp @@ -23,6 +23,9 @@ #include +#ifdef ANDROID +#include +#endif #include #include #include diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index d6c67e0e8..9b38661b4 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -20,6 +20,11 @@ #include #include #include +#ifdef ANDROID +#include +#include +#include +#endif #include "Misc.h" @@ -31,9 +36,11 @@ #include #endif +#ifndef ANDROID #include #include #include +#endif #if defined(__EMX__ ) || defined(__CYGWIN32__) diff --git a/nxcomp/ServerChannel.cpp b/nxcomp/ServerChannel.cpp index 4e6dea324..0f3a3e552 100644 --- a/nxcomp/ServerChannel.cpp +++ b/nxcomp/ServerChannel.cpp @@ -18,7 +18,9 @@ #include #include #include +#ifndef ANDROID #include +#endif #include #include @@ -1079,7 +1081,6 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m priority_++; } - // // Account this data to the original opcode. // @@ -1500,7 +1501,6 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m continue; } } - // // Check if user pressed the CTRL+ALT+SHIFT+ESC key // sequence because was unable to kill the session @@ -5475,7 +5475,7 @@ int ServerChannel::handleColormap(unsigned char &opcode, unsigned char *&buffer, *logofs << "handleColormap: Dumping colormap entries:\n" << logofs_flush; - const unsigned char *p = unpackState_[resource] -> colormap -> data; + const unsigned char *p = (const unsigned char *) unpackState_[resource] -> colormap -> data; for (unsigned int i = 0; i < unpackState_[resource] -> colormap -> entries; i++) @@ -7100,7 +7100,12 @@ int ServerChannel::handleShmemReply(EncodeBuffer &encodeBuffer, const unsigned c { encodeBuffer.encodeValue(stage, 2); +#ifndef ANDROID shmemState_ -> present = *(buffer + 8); +#else + shmemState_ -> present = 0; + cerr << "Info: handleShmemReply: In android no shared memory. Setting present to 0 hardcoded\n"; +#endif shmemState_ -> opcode = *(buffer + 9); shmemState_ -> event = *(buffer + 10); shmemState_ -> error = *(buffer + 11); @@ -7128,7 +7133,12 @@ int ServerChannel::handleShmemReply(EncodeBuffer &encodeBuffer, const unsigned c cerr << "Info" << ": Using shared memory parameters 1/" << (shmemState_ -> size / 1024) << "K.\n"; +#ifndef ANDROID shmemState_ -> enabled = 1; +#else + cerr << "Info: handleShmemReply: In android no shared memory. Setting enabled to -1. This should not be displayed\n"; + shmemState_ -> enabled = -1; +#endif encodeBuffer.encodeBoolValue(1); } @@ -7241,7 +7251,7 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char // memory support is disabled by the // user. // - +#ifndef ANDROID if (control -> ShmemServer == 1 && control -> ShmemServerSize > 0 && enableServer == 1) @@ -7252,8 +7262,12 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char { memcpy(buffer + 8, "NO-MIT-", 7); } +#else + cerr << "Info: handleShmemRequest: In android no shared memory. Returning NO-MIT- answer\n"; - sequenceQueue_.push(clientSequence_, opcode, + memcpy(buffer + 8, "NO-MIT-", 7); +#endif + sequenceQueue_.push(clientSequence_, opcode, opcodeStore_ -> getShmemParameters, stage); // @@ -7289,9 +7303,13 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char shmemState_ -> size = control -> ShmemServerSize; +#ifndef ANDROID shmemState_ -> id = shmget(IPC_PRIVATE, shmemState_ -> size, IPC_CREAT | permissions); - +#else + cerr << "Info: handleShmemReqyest: In android no shared memory (shmget). This message should not be displayed present should never be 1 in android\n"; + shmemState_ -> id = -1; +#endif if (shmemState_ -> id >= 0) { #if defined(TEST) || defined(INFO) @@ -7302,8 +7320,12 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char #endif +#ifndef ANDROID shmemState_ -> address = shmat(shmemState_ -> id, 0, 0); - +#else + cerr << "Info: handleShmemReqyest: In android no shared memory (shmat). This message should not be displayed. present should never be 1 in android\n"; + shmemState_ -> address = NULL; +#endif if (shmemState_ -> address != NULL) { #ifdef TEST @@ -7437,6 +7459,10 @@ int ServerChannel::handleShmem(unsigned char &opcode, unsigned char *&buffer, return 0; } +#ifdef ANDROID + cerr << "Info: handleShmem: In android no shared memory. enabled should never be 1. This should not be displayed\n"; + return 0; +#endif // // Ignore null requests and requests that will not result @@ -8054,14 +8080,22 @@ void ServerChannel::handleShmemStateRemove() { if (shmemState_ != NULL) { - if (shmemState_ -> address != NULL) + if (shmemState_ -> address != NULL) { - shmdt((char *) shmemState_ -> address); +#ifndef ANDROID + shmdt((char *) shmemState_ -> address); +#else + cerr << "Info: handleShmemStateRemove: In android no shared memory. This should not be displayed. address should always be NULL\n"; +#endif } if (shmemState_ -> id > 0) { +#ifndef ANDROID shmctl(shmemState_ -> id, IPC_RMID, 0); +#else + cerr << "Info: handleShmemStateRemove: In android no shared memory. This should not be displayed. id should always be 0\n"; +#endif } delete shmemState_; -- cgit v1.2.3 From 1be1c4a21bb54e60ec60456374d9ef55aaf55e2f Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 10 Feb 2015 21:11:27 +0100 Subject: Force NX proxy to bind to loopback devices only (loopback option) (220_nxproxy_bind-loopback-only.full+lite.patch). --- .../220_nxproxy_bind-loopback-only.full+lite.patch | 130 --------------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 41 ++++++- nxcomp/Misc.cpp | 10 ++ nxcomp/Misc.h | 8 ++ 5 files changed, 55 insertions(+), 135 deletions(-) delete mode 100644 debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch b/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch deleted file mode 100644 index c65b85501..000000000 --- a/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch +++ /dev/null @@ -1,130 +0,0 @@ -Description: Force NX proxy to bind to loopback devices only (loopback option) -Author: Mike Gabriel ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -952,6 +952,7 @@ - static char displayHost[DEFAULT_STRING_LENGTH] = { 0 }; - static char authCookie[DEFAULT_STRING_LENGTH] = { 0 }; - -+static int loopbackBind = DEFAULT_LOOPBACK_BIND; - static int proxyPort = DEFAULT_NX_PROXY_PORT; - static int xPort = DEFAULT_NX_X_PORT; - -@@ -3959,7 +3960,14 @@ - - tcpAddr.sin_family = AF_INET; - tcpAddr.sin_port = htons(proxyPortTCP); -- tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ } - - if (bind(tcpFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) - { -@@ -4550,7 +4558,14 @@ - - tcpAddr.sin_family = AF_INET; - tcpAddr.sin_port = htons(portTCP); -- tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ } - - if (bind(newFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) - { -@@ -6718,7 +6733,14 @@ - - #ifdef __APPLE__ - -- tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); -+ } - - #else - -@@ -8397,6 +8419,10 @@ - - listenPort = ValidateArg("local", name, value); - } -+ else if (strcasecmp(name, "loopback") == 0) -+ { -+ loopbackBind = ValidateArg("local", name, value); -+ } - else if (strcasecmp(name, "accept") == 0) - { - if (*connectHost != '\0') -@@ -13778,7 +13804,14 @@ - } - else - { -- address = htonl(INADDR_ANY); -+ if ( loopbackBind ) -+ { -+ address = htonl(INADDR_LOOPBACK); -+ } -+ else -+ { -+ address = htonl(INADDR_ANY); -+ } - } - } - else ---- a/nxcomp/Misc.cpp -+++ b/nxcomp/Misc.cpp -@@ -42,6 +42,14 @@ - #undef DEBUG - - // -+// By default nxproxy binds to all network interfaces, setting -+// DEFAULT_LOOPBACK_BIND to 1 enables binding to the loopback -+// device only. -+// -+ -+const int DEFAULT_LOOPBACK_BIND = 0; -+ -+// - // TCP port offset applied to any NX port specification. - // - -@@ -137,6 +145,8 @@ - \n\ - listen=n Local port used for accepting the proxy connection.\n\ - \n\ -+ loopback=b Bind to the loopback device only.\n\ -+\n\ - accept=s Name or IP of host that can connect to the proxy.\n\ - \n\ - connect=s Name or IP of host that the proxy will connect to.\n\ ---- a/nxcomp/Misc.h -+++ b/nxcomp/Misc.h -@@ -90,6 +90,14 @@ - extern const int DEFAULT_NX_SLAVE_PORT_SERVER_OFFSET; - - // -+// NX proxy binds to all network interfaces by default -+// With the -loopback parameter, you can switch -+// over to binding to the loopback device only. -+// -+ -+extern const int DEFAULT_LOOPBACK_BIND; -+ -+// - // Return strings containing various info. - // - diff --git a/debian/patches/series b/debian/patches/series index b6a467730..30ed936f9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -220_nxproxy_bind-loopback-only.full+lite.patch 300_nxagent_set-wm-class.full.patch 301_nx-X11_use-shared-libs.full.patch 302_nx-X11_xkbbasedir-detection.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 05b514570..77b0c806c 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -952,6 +952,7 @@ static char listenHost[DEFAULT_STRING_LENGTH] = { 0 }; static char displayHost[DEFAULT_STRING_LENGTH] = { 0 }; static char authCookie[DEFAULT_STRING_LENGTH] = { 0 }; +static int loopbackBind = DEFAULT_LOOPBACK_BIND; static int proxyPort = DEFAULT_NX_PROXY_PORT; static int xPort = DEFAULT_NX_X_PORT; @@ -3959,7 +3960,14 @@ int SetupTcpSocket() tcpAddr.sin_family = AF_INET; tcpAddr.sin_port = htons(proxyPortTCP); - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + if ( loopbackBind ) + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } if (bind(tcpFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) { @@ -4550,7 +4558,14 @@ int ListenConnection(int port, const char *label) tcpAddr.sin_family = AF_INET; tcpAddr.sin_port = htons(portTCP); - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + if ( loopbackBind ) + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } if (bind(newFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) { @@ -6718,7 +6733,14 @@ int WaitForRemote(int portNum) #ifdef __APPLE__ - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + if ( loopbackBind ) + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else + { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } #else @@ -8397,6 +8419,10 @@ int ParseEnvironmentOptions(const char *env, int force) listenPort = ValidateArg("local", name, value); } + else if (strcasecmp(name, "loopback") == 0) + { + loopbackBind = ValidateArg("local", name, value); + } else if (strcasecmp(name, "accept") == 0) { if (*connectHost != '\0') @@ -13778,7 +13804,14 @@ int ParseListenOption(int &address) } else { - address = htonl(INADDR_ANY); + if ( loopbackBind ) + { + address = htonl(INADDR_LOOPBACK); + } + else + { + address = htonl(INADDR_ANY); + } } } else diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index 7303c595b..0095eaa74 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -41,6 +41,14 @@ #undef TEST #undef DEBUG +// +// By default nxproxy binds to all network interfaces, setting +// DEFAULT_LOOPBACK_BIND to 1 enables binding to the loopback +// device only. +// + +const int DEFAULT_LOOPBACK_BIND = 0; + // // TCP port offset applied to any NX port specification. // @@ -136,6 +144,8 @@ static const char UsageInfo[] = to be forwarded by the proxy running on the client.\n\ \n\ listen=n Local port used for accepting the proxy connection.\n\ +\n\ + loopback=b Bind to the loopback device only.\n\ \n\ accept=s Name or IP of host that can connect to the proxy.\n\ \n\ diff --git a/nxcomp/Misc.h b/nxcomp/Misc.h index 3f37836f5..21a503082 100644 --- a/nxcomp/Misc.h +++ b/nxcomp/Misc.h @@ -89,6 +89,14 @@ extern const int DEFAULT_NX_FONT_PORT_OFFSET; extern const int DEFAULT_NX_SLAVE_PORT_CLIENT_OFFSET; extern const int DEFAULT_NX_SLAVE_PORT_SERVER_OFFSET; +// +// NX proxy binds to all network interfaces by default +// With the -loopback parameter, you can switch +// over to binding to the loopback device only. +// + +extern const int DEFAULT_LOOPBACK_BIND; + // // Return strings containing various info. // -- cgit v1.2.3 From d4d3fe0e6e77a58e68defc5895a589a681d7d092 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Fri, 13 Feb 2015 13:26:27 +0100 Subject: Allow version 4-digit version comparison/handshake (400_nxcomp-version.full+lite.patch). --- debian/patches/400_nxcomp-version.full+lite.patch | 240 ---------------------- debian/patches/series | 1 - nxcomp/Control.cpp | 40 +--- nxcomp/Control.h | 9 + nxcomp/Loop.cpp | 3 +- nxcomp/Makefile.in | 3 +- nxcomp/NX.h | 6 + 7 files changed, 26 insertions(+), 276 deletions(-) delete mode 100644 debian/patches/400_nxcomp-version.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/400_nxcomp-version.full+lite.patch b/debian/patches/400_nxcomp-version.full+lite.patch deleted file mode 100644 index 703cec823..000000000 --- a/debian/patches/400_nxcomp-version.full+lite.patch +++ /dev/null @@ -1,240 +0,0 @@ -Description: Allow version 4-digit version comparison/handshake -Author: Nito Martinez ---- a/nxcomp/Control.cpp -+++ b/nxcomp/Control.cpp -@@ -15,6 +15,7 @@ - /* */ - /**************************************************************************/ - -+#include "NX.h" - #include "NXpack.h" - - #include "Control.h" -@@ -594,44 +595,17 @@ - RemoteVersionMajor = -1; - RemoteVersionMinor = -1; - RemoteVersionPatch = -1; -+ RemoteVersionMaintenancePatch = -1; - - CompatVersionMajor = -1; - CompatVersionMinor = -1; - CompatVersionPatch = -1; -+ CompatVersionMaintenancePatch = -1; - -- char version[32]; -- -- strcpy(version, VERSION); -- -- char *value; -- -- value = strtok(version, "."); -- -- for (int i = 0; value != NULL && i < 3; i++) -- { -- switch (i) -- { -- case 0: -- -- LocalVersionMajor = atoi(value); -- -- break; -- -- case 1: -- -- LocalVersionMinor = atoi(value); -- -- break; -- -- case 2: -- -- LocalVersionPatch = atoi(value); -- -- break; -- } -- -- value = strtok(NULL, "."); -- } -+ LocalVersionMajor = NXMajorVersion(); -+ LocalVersionMinor = NXMinorVersion(); -+ LocalVersionPatch = NXPatchVersion(); -+ LocalVersionMaintenancePatch = NXMaintenancePatchVersion(); - - #ifdef TEST - *logofs << "Control: Major version is " << LocalVersionMajor ---- a/nxcomp/Control.h -+++ b/nxcomp/Control.h -@@ -299,17 +299,26 @@ - // Version number of local and remote proxy. - // - -+ /* -+ * LocalVersionMaintenancePatch, RemoteVersionMaintenancePatch -+ * CompatVersionMaintenancePatch -+ * -+ * currently not used, for future compatibility checks -+ */ - int LocalVersionMajor; - int LocalVersionMinor; - int LocalVersionPatch; -+ int LocalVersionMaintenancePatch; - - int RemoteVersionMajor; - int RemoteVersionMinor; - int RemoteVersionPatch; -+ int RemoteVersionMaintenancePatch; - - int CompatVersionMajor; - int CompatVersionMinor; - int CompatVersionPatch; -+ int CompatVersionMaintenancePatch; - - // - // Which unpack methods are implemented in proxy? ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -14250,7 +14250,8 @@ - cerr << "NXPROXY - " << "Version " - << control -> LocalVersionMajor << "." - << control -> LocalVersionMinor << "." -- << control -> LocalVersionPatch; -+ << control -> LocalVersionPatch << "." -+ << control -> LocalVersionMaintenancePatch; - - cerr << endl; - } ---- a/nxcomp/Makefile.in -+++ b/nxcomp/Makefile.in -@@ -105,7 +105,8 @@ - - CSRC = MD5.c \ - Pack.c \ -- Vars.c -+ Vars.c \ -+ Version.c - - CXXSRC = Loop.cpp \ - Children.cpp \ ---- a/nxcomp/NX.h -+++ b/nxcomp/NX.h -@@ -442,6 +442,12 @@ - - extern void NXTransCleanup(void) __attribute__((noreturn)); - -+extern const char* NXVersion(); -+extern int NXMajorVersion(); -+extern int NXMinorVersion(); -+extern int NXPatchVersion(); -+extern int NXMaintenancePatchVersion(); -+ - #ifdef __cplusplus - } - #endif ---- /dev/null -+++ b/nxcomp/Version.c -@@ -0,0 +1,106 @@ -+/**************************************************************************/ -+/* */ -+/* Copyright (C) 2014 Qindel http://qindel.com and QVD http://theqvd.com */ -+/* */ -+/* This program is free software; you can redistribute it and/or modify */ -+/* it under the terms of the GNU General Public License as published by */ -+/* the Free Software Foundation; either version 3 of the License, or (at */ -+/* your option) any later version. */ -+/* */ -+/* This program is distributed in the hope that it will be useful, but */ -+/* WITHOUT ANY WARRANTY; without even the implied warranty of */ -+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ -+/* See the GNU General Public License for more details. */ -+/* */ -+/* You should have received a copy of the GNU General Public License */ -+/* along with this program; if not, see . */ -+/* */ -+/* Additional permission under GNU GPL version 3 section 7 */ -+/* */ -+/* If you modify this Program, or any covered work, by linking or */ -+/* combining it with [name of library] (or a modified version of that */ -+/* library), containing parts covered by the terms of [name of library's */ -+/* license], the licensors of this Program grant you additional */ -+/* permission to convey the resulting work. {Corresponding Source for a */ -+/* non-source form of such a combination shall include the source code */ -+/* for the parts of [name of library] used as well as that of the covered */ -+/* work.} */ -+/* */ -+/* */ -+/**************************************************************************/ -+ -+#include -+#include -+#include -+#include "NX.h" -+ -+ -+static int _NXVersionMajor = -1; -+static int _NXVersionMinor = -1; -+static int _NXVersionPatch = -1; -+static int _NXVersionMaintenancePatch = -1; -+ -+ -+const char* NXVersion() { -+ const char *version = VERSION; -+ return version; -+} -+ -+void _parseNXVersion() { -+ char version[32]; -+ int i; -+ strcpy(version, VERSION); -+ -+ char *value; -+ /* Reset values to 0 if undefined */ -+ _NXVersionMajor = _NXVersionMinor = _NXVersionPatch = _NXVersionMaintenancePatch = 0; -+ -+ -+#define NXVERSIONSEPARATOR "." -+ value = strtok(version, NXVERSIONSEPARATOR); -+ -+ for (i = 0; value != NULL && i < 4; i++) -+ { -+ switch (i) -+ { -+ case 0: -+ _NXVersionMajor = atoi(value); -+ break; -+ -+ case 1: -+ _NXVersionMinor = atoi(value); -+ break; -+ -+ case 2: -+ _NXVersionPatch = atoi(value); -+ break; -+ -+ case 3: -+ _NXVersionMaintenancePatch = atoi(value); -+ break; -+ } -+ -+ value = strtok(NULL, NXVERSIONSEPARATOR); -+ } -+} -+ -+int NXMajorVersion() { -+ if (_NXVersionMajor == -1) -+ _parseNXVersion(); -+ return _NXVersionMajor; -+} -+int NXMinorVersion() { -+ if (_NXVersionMinor == -1) -+ _parseNXVersion(); -+ return _NXVersionMinor; -+} -+int NXPatchVersion() { -+ if (_NXVersionPatch == -1) -+ _parseNXVersion(); -+ return _NXVersionPatch; -+} -+int NXMaintenancePatchVersion() { -+ if (_NXVersionMaintenancePatch == -1) -+ _parseNXVersion(); -+ return _NXVersionMaintenancePatch; -+} diff --git a/debian/patches/series b/debian/patches/series index 86575ece8..b00553eed 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -400_nxcomp-version.full+lite.patch #401_nxcomp_bigrequests-and-genericevent-extensions.full+lite.patch 600_nx-X11+nxcompext+nxcompshad_unique-libnames.full.patch 601_nx-X11_build-option-changes-to-not-use-bundled-libraries.full.patch diff --git a/nxcomp/Control.cpp b/nxcomp/Control.cpp index ce99567d7..062654235 100644 --- a/nxcomp/Control.cpp +++ b/nxcomp/Control.cpp @@ -15,6 +15,7 @@ /* */ /**************************************************************************/ +#include "NX.h" #include "NXpack.h" #include "Control.h" @@ -594,44 +595,17 @@ Control::Control() RemoteVersionMajor = -1; RemoteVersionMinor = -1; RemoteVersionPatch = -1; + RemoteVersionMaintenancePatch = -1; CompatVersionMajor = -1; CompatVersionMinor = -1; CompatVersionPatch = -1; + CompatVersionMaintenancePatch = -1; - char version[32]; - - strcpy(version, VERSION); - - char *value; - - value = strtok(version, "."); - - for (int i = 0; value != NULL && i < 3; i++) - { - switch (i) - { - case 0: - - LocalVersionMajor = atoi(value); - - break; - - case 1: - - LocalVersionMinor = atoi(value); - - break; - - case 2: - - LocalVersionPatch = atoi(value); - - break; - } - - value = strtok(NULL, "."); - } + LocalVersionMajor = NXMajorVersion(); + LocalVersionMinor = NXMinorVersion(); + LocalVersionPatch = NXPatchVersion(); + LocalVersionMaintenancePatch = NXMaintenancePatchVersion(); #ifdef TEST *logofs << "Control: Major version is " << LocalVersionMajor diff --git a/nxcomp/Control.h b/nxcomp/Control.h index c21477544..71f357c4a 100644 --- a/nxcomp/Control.h +++ b/nxcomp/Control.h @@ -299,17 +299,26 @@ class Control // Version number of local and remote proxy. // + /* + * LocalVersionMaintenancePatch, RemoteVersionMaintenancePatch + * CompatVersionMaintenancePatch + * + * currently not used, for future compatibility checks + */ int LocalVersionMajor; int LocalVersionMinor; int LocalVersionPatch; + int LocalVersionMaintenancePatch; int RemoteVersionMajor; int RemoteVersionMinor; int RemoteVersionPatch; + int RemoteVersionMaintenancePatch; int CompatVersionMajor; int CompatVersionMinor; int CompatVersionPatch; + int CompatVersionMaintenancePatch; // // Which unpack methods are implemented in proxy? diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 77b0c806c..c8c95bd72 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -14250,7 +14250,8 @@ void PrintVersionInfo() cerr << "NXPROXY - " << "Version " << control -> LocalVersionMajor << "." << control -> LocalVersionMinor << "." - << control -> LocalVersionPatch; + << control -> LocalVersionPatch << "." + << control -> LocalVersionMaintenancePatch; cerr << endl; } diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 1be928167..93bb0b38c 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -105,7 +105,8 @@ MSRC = CSRC = MD5.c \ Pack.c \ - Vars.c + Vars.c \ + Version.c CXXSRC = Loop.cpp \ Children.cpp \ diff --git a/nxcomp/NX.h b/nxcomp/NX.h index d98af79bb..2dbf68662 100644 --- a/nxcomp/NX.h +++ b/nxcomp/NX.h @@ -442,6 +442,12 @@ extern int NXTransParseEnvironment(const char *env, int force); extern void NXTransCleanup(void) __attribute__((noreturn)); +extern const char* NXVersion(); +extern int NXMajorVersion(); +extern int NXMinorVersion(); +extern int NXPatchVersion(); +extern int NXMaintenancePatchVersion(); + #ifdef __cplusplus } #endif -- cgit v1.2.3 From 415b20b6fbf562d4132fca90a00b6c32d94040ed Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 13 Feb 2015 13:32:17 +0100 Subject: Be compliant with POS36-C: Observe correct revocation order while relinquishing privileges (602_nx-X11_initgroups.full.patch). The Fedora review of NX (redistributed) caught the following rpmlint issue: This executable is calling setuid and setgid without setgroups or initgroups. There is a high probability this mean it didn't relinquish all groups, and this would be a potential security issue to be fixed. Seek POS36-C on the web for details about the problem. Ref POS36-C: https://www.securecoding.cert.org/confluence/display/seccode/POS36-C.+Observe+correct+revocation+order+while+relinquishing+privileges This patch adds initgroups() calls to the code to initialize the supplemental group list. --- debian/patches/602_nx-X11_initgroups.full.patch | 67 ------------------------- debian/patches/series | 1 - nx-X11/programs/Xserver/os/utils.c | 7 +++ nxcomp/Pipe.cpp | 3 ++ 4 files changed, 10 insertions(+), 68 deletions(-) delete mode 100644 debian/patches/602_nx-X11_initgroups.full.patch (limited to 'nxcomp') diff --git a/debian/patches/602_nx-X11_initgroups.full.patch b/debian/patches/602_nx-X11_initgroups.full.patch deleted file mode 100644 index 182b378dc..000000000 --- a/debian/patches/602_nx-X11_initgroups.full.patch +++ /dev/null @@ -1,67 +0,0 @@ -Description: Be compliant with POS36-C: Observe correct revocation order while relinquishing privileges -Author: Orion Poplawski -Abstract: - The Fedora review of NX (redistributed) caught the following rpmlint issue: - . - This executable is calling setuid and setgid without setgroups or initgroups. - There is a high probability this mean it didn't relinquish all groups, and this - would be a potential security issue to be fixed. Seek POS36-C on the web for - details about the problem. - . - Ref POS36-C: - https://www.securecoding.cert.org/confluence/display/seccode/POS36-C.+Observe+correct+revocation+order+while+relinquishing+privileges - . - This patch adds initgroups() calls to the code to initialize the supplemental group list. -diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c -index 7e62654..9b2431a 100644 ---- a/nx-X11/programs/Xserver/os/utils.c -+++ b/nx-X11/programs/Xserver/os/utils.c -@@ -112,6 +112,9 @@ OR PERFORMANCE OF THIS SOFTWARE. - #include - #include /* for isspace */ - #include -+#include -+#include -+#include - - #if defined(DGUX) - #include -@@ -1770,6 +1773,7 @@ System(char *command) - void (*csig)(int); - #endif - int status; -+ struct passwd *pwent; - - if (!command) - return(1); -@@ -1791,6 +1795,9 @@ System(char *command) - case -1: /* error */ - p = -1; - case 0: /* child */ -+ pwent = getpwuid(getuid()); -+ if (initgroups(pwent->pw_name,getgid()) == -1) -+ _exit(127); - if (setgid(getgid()) == -1) - _exit(127); - if (setuid(getuid()) == -1) -diff --git a/nxcomp/Pipe.cpp b/nxcomp/Pipe.cpp -index 7238d0c..aacbbae 100644 ---- a/nxcomp/Pipe.cpp -+++ b/nxcomp/Pipe.cpp -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - - #include "Pipe.h" - #include "Misc.h" -@@ -234,6 +235,8 @@ FILE *Popen(char * const parameters[], const char *type) - // Child. - // - -+ struct passwd *pwent = getpwuid(getuid()); -+ if (pwent) initgroups(pwent->pw_name,getgid()); - setgid(getgid()); - setuid(getuid()); - diff --git a/debian/patches/series b/debian/patches/series index 21cf21d53..c80570682 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,4 @@ #401_nxcomp_bigrequests-and-genericevent-extensions.full+lite.patch -602_nx-X11_initgroups.full.patch 603_nx-X11_compilation_warnings.full.patch 605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch 606_nx-X11_build-on-aarch64.full.patch diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index 7e626542e..9b2431af7 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -112,6 +112,9 @@ OR PERFORMANCE OF THIS SOFTWARE. #include #include /* for isspace */ #include +#include +#include +#include #if defined(DGUX) #include @@ -1770,6 +1773,7 @@ System(char *command) void (*csig)(int); #endif int status; + struct passwd *pwent; if (!command) return(1); @@ -1791,6 +1795,9 @@ System(char *command) case -1: /* error */ p = -1; case 0: /* child */ + pwent = getpwuid(getuid()); + if (initgroups(pwent->pw_name,getgid()) == -1) + _exit(127); if (setgid(getgid()) == -1) _exit(127); if (setuid(getuid()) == -1) diff --git a/nxcomp/Pipe.cpp b/nxcomp/Pipe.cpp index 7238d0c73..aacbbaeb3 100644 --- a/nxcomp/Pipe.cpp +++ b/nxcomp/Pipe.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "Pipe.h" #include "Misc.h" @@ -234,6 +235,8 @@ FILE *Popen(char * const parameters[], const char *type) // Child. // + struct passwd *pwent = getpwuid(getuid()); + if (pwent) initgroups(pwent->pw_name,getgid()); setgid(getgid()); setuid(getuid()); -- cgit v1.2.3 From ab8d1276f5c7ebef6f959cfb691cce5fff6867b4 Mon Sep 17 00:00:00 2001 From: Clemens Lang Date: Fri, 13 Feb 2015 13:35:40 +0100 Subject: In Types.h, don't use STL internals on libc++ (605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch). The nx-libs-lite package does not compile on OS X Mavericks because Apple's clang compilers now default to compiling against the libc++ STL rather than (their outdated copy of) libstdc++. While the compiler still allows changing that, we should not rely on this being possible forever. The compiler chokes in Types.h, specifically the clear() methods in subclasses of vectors that use implementation details of the GNU STL. The attached patch fixes these compilation issues by not overriding the clear() method when compiling against libc++, since the libc++ headers seem to do essentially the same as the overriden method. --- ...ont-use-STL-internals-on-libc++.full+lite.patch | 52 ---------------------- debian/patches/series | 1 - nxcomp/Types.h | 8 ++++ 3 files changed, 8 insertions(+), 53 deletions(-) delete mode 100644 debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch deleted file mode 100644 index 60f33ce3f..000000000 --- a/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch +++ /dev/null @@ -1,52 +0,0 @@ -Description: In Types.h, don't use STL internals on libc++. -Author: Clemens Lang -Abstract: - The nx-libs-lite package does not compile on OS X Mavericks because - Apple's clang compilers now default to compiling against the libc++ STL - rather than (their outdated copy of) libstdc++. - . - While the compiler still allows changing that, we should not rely on - this being possible forever. - . - The compiler chokes in Types.h, specifically the clear() methods in - subclasses of vectors that use implementation details of the GNU STL. - The attached patch fixes these compilation issues by not overriding the - clear() method when compiling against libc++, since the libc++ headers - seem to do essentially the same as the overriden method. ---- a/nxcomp/Types.h 2013-11-05 01:35:22.000000000 +0100 -+++ b/nxcomp/Types.h 2013-11-05 01:37:30.000000000 +0100 -@@ -55,6 +55,9 @@ - return &*(vector < unsigned char >::begin()); - } - -+ // Avoid overriding clear() when using libc++. Fiddling with STL internals -+ // doesn't really seem like a good idea to me anyway. -+ #ifndef _LIBCPP_VECTOR - void clear() - { - #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) -@@ -95,12 +98,16 @@ - - #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ - } -+ #endif /* #ifdef _LIBCPP_VECTOR */ - }; - - class T_messages : public vector < Message * > - { - public: - -+ // Avoid overriding clear() when using libc++. Fiddling with STL internals -+ // doesn't really seem like a good idea to me anyway. -+ #ifndef _LIBCPP_VECTOR - void clear() - { - #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) -@@ -141,6 +148,7 @@ - - #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ - } -+ #endif /* #ifndef _LIBCPP_VECTOR */ - }; - - typedef md5_byte_t * T_checksum; diff --git a/debian/patches/series b/debian/patches/series index 1d0f53bf9..ee95c5b49 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,4 @@ #401_nxcomp_bigrequests-and-genericevent-extensions.full+lite.patch -605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch 606_nx-X11_build-on-aarch64.full.patch 607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch 990_fix-DEBUG-and-TEST-builds.full.patch diff --git a/nxcomp/Types.h b/nxcomp/Types.h index 05f62bd00..b3fe40e31 100644 --- a/nxcomp/Types.h +++ b/nxcomp/Types.h @@ -55,6 +55,9 @@ class T_data : public vector < unsigned char > return &*(vector < unsigned char >::begin()); } + // Avoid overriding clear() when using libc++. Fiddling with STL internals + // doesn't really seem like a good idea to me anyway. + #ifndef _LIBCPP_VECTOR void clear() { #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) @@ -95,12 +98,16 @@ class T_data : public vector < unsigned char > #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ } + #endif /* #ifdef _LIBCPP_VECTOR */ }; class T_messages : public vector < Message * > { public: + // Avoid overriding clear() when using libc++. Fiddling with STL internals + // doesn't really seem like a good idea to me anyway. + #ifndef _LIBCPP_VECTOR void clear() { #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) @@ -141,6 +148,7 @@ class T_messages : public vector < Message * > #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ } + #endif /* #ifndef _LIBCPP_VECTOR */ }; typedef md5_byte_t * T_checksum; -- cgit v1.2.3 From a8fb7d4f5149e28216ffd38838af1cbfd6527002 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 13 Feb 2015 13:38:39 +0100 Subject: Detection for Mac OS X's launchd service on Mac OS X 10.10 and beyond (607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch). --- ...comp_macosx-X11-launcher-in-private-tmp.full+lite.patch | 14 -------------- debian/patches/series | 1 - nxcomp/Loop.cpp | 2 +- 3 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 debian/patches/607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch (limited to 'nxcomp') diff --git a/debian/patches/607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch b/debian/patches/607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch deleted file mode 100644 index 535671fef..000000000 --- a/debian/patches/607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch +++ /dev/null @@ -1,14 +0,0 @@ -Description: Detection for Mac OS X's launchd service on Mac OS X 10.10 and beyond -Author: Mike Gabriel - ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -4183,7 +4183,7 @@ - - #ifdef __APPLE__ - -- if (strncasecmp(display, "/tmp/launch", 11) == 0) -+ if ((strncasecmp(display, "/tmp/launch", 11) == 0) || (strncasecmp(display, "/private/tmp/com.apple.launchd", 30) == 0)) - { - #ifdef TEST - *logofs << "Loop: Using launchd service on socket '" diff --git a/debian/patches/series b/debian/patches/series index e975e3cac..0c9d34366 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,4 @@ #401_nxcomp_bigrequests-and-genericevent-extensions.full+lite.patch -607_nxcomp_macosx-X11-launcher-in-private-tmp.full+lite.patch 990_fix-DEBUG-and-TEST-builds.full.patch 991_fix-hr-typos.full+lite.patch 991_fix-hr-typos.full.patch diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index c8c95bd72..7bc154f36 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -4183,7 +4183,7 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, #ifdef __APPLE__ - if (strncasecmp(display, "/tmp/launch", 11) == 0) + if ((strncasecmp(display, "/tmp/launch", 11) == 0) || (strncasecmp(display, "/private/tmp/com.apple.launchd", 30) == 0)) { #ifdef TEST *logofs << "Loop: Using launchd service on socket '" -- cgit v1.2.3 From 23fb617551f7d89dbc1fc9e216b7f12d2936e1a2 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 13 Feb 2015 13:43:54 +0100 Subject: Fix several typos in nxcomp. Former patch file names: 991_fix-hr-typos.full+lite.patch 991_fix-hr-typos.full.patch --- debian/patches/991_fix-hr-typos.full+lite.patch | 97 ----------------------- debian/patches/991_fix-hr-typos.full.patch | 36 --------- debian/patches/series | 2 - nx-X11/ChangeLog.X.org | 2 +- nx-X11/extras/Mesa/src/mesa/main/debug.c | 2 +- nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c | 2 +- nxcomp/CHANGELOG | 2 +- nxcomp/ClientReadBuffer.cpp | 2 +- nxcomp/EncodeBuffer.cpp | 4 +- nxcomp/GenericChannel.cpp | 2 +- nxcomp/ProxyReadBuffer.cpp | 2 +- nxcomp/ServerReadBuffer.cpp | 2 +- nxcomp/Transport.h | 2 +- nxcomp/Types.h | 2 +- 14 files changed, 12 insertions(+), 147 deletions(-) delete mode 100644 debian/patches/991_fix-hr-typos.full+lite.patch delete mode 100644 debian/patches/991_fix-hr-typos.full.patch (limited to 'nxcomp') diff --git a/debian/patches/991_fix-hr-typos.full+lite.patch b/debian/patches/991_fix-hr-typos.full+lite.patch deleted file mode 100644 index 4ff18462e..000000000 --- a/debian/patches/991_fix-hr-typos.full+lite.patch +++ /dev/null @@ -1,97 +0,0 @@ -Description: Fix several typos in nxcomp -Author: Mike Gabriel - ---- a/nxcomp/CHANGELOG -+++ b/nxcomp/CHANGELOG -@@ -668,7 +668,7 @@ - - nxcomp-2.0.0-69 - --- Changed the format of the persistent cache to accomodate the new -+- Changed the format of the persistent cache to accommodate the new - encoding of the render opcodes. Caches from the 1.4.0 and 1.5.0 - should be still loaded and saved correctly when connected to and - old version of the library. ---- a/nxcomp/ClientReadBuffer.cpp -+++ b/nxcomp/ClientReadBuffer.cpp -@@ -29,7 +29,7 @@ - // - // Even if the pending data is not - // enough to make a complete message, -- // resize the buffer to accomodate -+ // resize the buffer to accommodate - // it all. - // - ---- a/nxcomp/EncodeBuffer.cpp -+++ b/nxcomp/EncodeBuffer.cpp -@@ -505,12 +505,12 @@ - { - #ifdef PANIC - *logofs << "EncodeBuffer: PANIC! Error in context [C] " -- << "growing buffer to accomodate " << numBytes -+ << "growing buffer to accommodate " << numBytes - << " bytes .\n" << logofs_flush; - #endif - - cerr << "Error" << ": Error in context [C] " -- << "growing encode buffer to accomodate " -+ << "growing encode buffer to accommodate " - << numBytes << " bytes.\n"; - - HandleAbort(); ---- a/nxcomp/GenericChannel.cpp -+++ b/nxcomp/GenericChannel.cpp -@@ -210,7 +210,7 @@ - // All data has been read from the read buffer. - // We still need to mark the end of the encode - // buffer just before sending the frame. This -- // allows us to accomodate multiple reads in -+ // allows us to accommodate multiple reads in - // a single frame. - // - ---- a/nxcomp/ProxyReadBuffer.cpp -+++ b/nxcomp/ProxyReadBuffer.cpp -@@ -50,7 +50,7 @@ - // - // Even if the readable data is not - // enough to make a complete message, -- // resize the buffer to accomodate -+ // resize the buffer to accommodate - // it all. - // - ---- a/nxcomp/ServerReadBuffer.cpp -+++ b/nxcomp/ServerReadBuffer.cpp -@@ -46,7 +46,7 @@ - // - // Even if the readable data is not - // enough to make a complete message, -- // resize the buffer to accomodate -+ // resize the buffer to accommodate - // it all. - // - ---- a/nxcomp/Transport.h -+++ b/nxcomp/Transport.h -@@ -226,7 +226,7 @@ - protected: - - // -- // Make room in the buffer to accomodate -+ // Make room in the buffer to accommodate - // at least size bytes. - // - ---- a/nxcomp/Types.h -+++ b/nxcomp/Types.h -@@ -179,7 +179,7 @@ - typedef list < int > T_list; - - // --// Used to accomodate data to be read and -+// Used to accommodate data to be read and - // written to a socket. - // - diff --git a/debian/patches/991_fix-hr-typos.full.patch b/debian/patches/991_fix-hr-typos.full.patch deleted file mode 100644 index 3836adf55..000000000 --- a/debian/patches/991_fix-hr-typos.full.patch +++ /dev/null @@ -1,36 +0,0 @@ -Description: Fix several typos in nx-X11 -Author: Mike Gabriel - ---- a/nx-X11/extras/Mesa/src/mesa/main/debug.c -+++ b/nx-X11/extras/Mesa/src/mesa/main/debug.c -@@ -43,7 +43,7 @@ - "GL_QUAD_STRIP", - "GL_POLYGON", - "outside begin/end", -- "inside unkown primitive", -+ "inside unknown primitive", - "unknown state" - }; - ---- a/nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c -+++ b/nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c -@@ -4106,7 +4106,7 @@ - if (*inst++ != REVISION) { - _mesa_set_program_error (ctx, 0, "Grammar version mismatch"); - _mesa_error(ctx, GL_INVALID_OPERATION, -- "glProgramStringARB(Grammar verison mismatch)"); -+ "glProgramStringARB(Grammar version mismatch)"); - err = GL_TRUE; - } - else { ---- a/nx-X11/ChangeLog.X.org -+++ b/nx-X11/ChangeLog.X.org -@@ -12733,7 +12733,7 @@ - * programs/xkill/xkill.c: (get_window_id): - Changed cursor for the 'kill' action from XC_draped_box to - XC_Pirate. If you don't like it we can change it back -- (original author unkown). -+ (original author unknown). - - * programs/xman/vendor.h: - Added 'pic' to the man page rendering command pipeline diff --git a/debian/patches/series b/debian/patches/series index 76709c4ad..3ee62f39c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,6 +1,4 @@ #401_nxcomp_bigrequests-and-genericevent-extensions.full+lite.patch -991_fix-hr-typos.full+lite.patch -991_fix-hr-typos.full.patch 999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch 016_nx-X11_install-location.debian.patch 102_xserver-xext_set-securitypolicy-path.debian.patch diff --git a/nx-X11/ChangeLog.X.org b/nx-X11/ChangeLog.X.org index bb0bbb0fb..5c49bba13 100644 --- a/nx-X11/ChangeLog.X.org +++ b/nx-X11/ChangeLog.X.org @@ -12733,7 +12733,7 @@ Mon Jan 3 12:45:10 2005 Søren Sandmann * programs/xkill/xkill.c: (get_window_id): Changed cursor for the 'kill' action from XC_draped_box to XC_Pirate. If you don't like it we can change it back - (original author unkown). + (original author unknown). * programs/xman/vendor.h: Added 'pic' to the man page rendering command pipeline diff --git a/nx-X11/extras/Mesa/src/mesa/main/debug.c b/nx-X11/extras/Mesa/src/mesa/main/debug.c index edc32b1f9..43b119239 100644 --- a/nx-X11/extras/Mesa/src/mesa/main/debug.c +++ b/nx-X11/extras/Mesa/src/mesa/main/debug.c @@ -43,7 +43,7 @@ const char *_mesa_prim_name[GL_POLYGON+4] = { "GL_QUAD_STRIP", "GL_POLYGON", "outside begin/end", - "inside unkown primitive", + "inside unknown primitive", "unknown state" }; diff --git a/nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c b/nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c index ed1cbd908..c998f7c66 100644 --- a/nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c +++ b/nx-X11/extras/Mesa/src/mesa/shader/arbprogparse.c @@ -4106,7 +4106,7 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len, if (*inst++ != REVISION) { _mesa_set_program_error (ctx, 0, "Grammar version mismatch"); _mesa_error(ctx, GL_INVALID_OPERATION, - "glProgramStringARB(Grammar verison mismatch)"); + "glProgramStringARB(Grammar version mismatch)"); err = GL_TRUE; } else { diff --git a/nxcomp/CHANGELOG b/nxcomp/CHANGELOG index b7ef0d97a..b0323d4a7 100644 --- a/nxcomp/CHANGELOG +++ b/nxcomp/CHANGELOG @@ -668,7 +668,7 @@ nxcomp-2.0.0-70 nxcomp-2.0.0-69 -- Changed the format of the persistent cache to accomodate the new +- Changed the format of the persistent cache to accommodate the new encoding of the render opcodes. Caches from the 1.4.0 and 1.5.0 should be still loaded and saved correctly when connected to and old version of the library. diff --git a/nxcomp/ClientReadBuffer.cpp b/nxcomp/ClientReadBuffer.cpp index b32033b17..14aca3240 100644 --- a/nxcomp/ClientReadBuffer.cpp +++ b/nxcomp/ClientReadBuffer.cpp @@ -29,7 +29,7 @@ unsigned int ClientReadBuffer::suggestedLength(unsigned int pendingLength) // // Even if the pending data is not // enough to make a complete message, - // resize the buffer to accomodate + // resize the buffer to accommodate // it all. // diff --git a/nxcomp/EncodeBuffer.cpp b/nxcomp/EncodeBuffer.cpp index 466a1d7a0..12a57180e 100644 --- a/nxcomp/EncodeBuffer.cpp +++ b/nxcomp/EncodeBuffer.cpp @@ -505,12 +505,12 @@ void EncodeBuffer::growBuffer(unsigned int numBytes) { #ifdef PANIC *logofs << "EncodeBuffer: PANIC! Error in context [C] " - << "growing buffer to accomodate " << numBytes + << "growing buffer to accommodate " << numBytes << " bytes .\n" << logofs_flush; #endif cerr << "Error" << ": Error in context [C] " - << "growing encode buffer to accomodate " + << "growing encode buffer to accommodate " << numBytes << " bytes.\n"; HandleAbort(); diff --git a/nxcomp/GenericChannel.cpp b/nxcomp/GenericChannel.cpp index 641ad36d4..bf72bf091 100644 --- a/nxcomp/GenericChannel.cpp +++ b/nxcomp/GenericChannel.cpp @@ -210,7 +210,7 @@ int GenericChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char * // All data has been read from the read buffer. // We still need to mark the end of the encode // buffer just before sending the frame. This - // allows us to accomodate multiple reads in + // allows us to accommodate multiple reads in // a single frame. // diff --git a/nxcomp/ProxyReadBuffer.cpp b/nxcomp/ProxyReadBuffer.cpp index b0de14921..99c3cbaa2 100644 --- a/nxcomp/ProxyReadBuffer.cpp +++ b/nxcomp/ProxyReadBuffer.cpp @@ -50,7 +50,7 @@ unsigned int ProxyReadBuffer::suggestedLength(unsigned int pendingLength) // // Even if the readable data is not // enough to make a complete message, - // resize the buffer to accomodate + // resize the buffer to accommodate // it all. // diff --git a/nxcomp/ServerReadBuffer.cpp b/nxcomp/ServerReadBuffer.cpp index 53c1dec57..96c146b77 100644 --- a/nxcomp/ServerReadBuffer.cpp +++ b/nxcomp/ServerReadBuffer.cpp @@ -46,7 +46,7 @@ unsigned int ServerReadBuffer::suggestedLength(unsigned int pendingLength) // // Even if the readable data is not // enough to make a complete message, - // resize the buffer to accomodate + // resize the buffer to accommodate // it all. // diff --git a/nxcomp/Transport.h b/nxcomp/Transport.h index 2f313b29f..a2efa5270 100644 --- a/nxcomp/Transport.h +++ b/nxcomp/Transport.h @@ -226,7 +226,7 @@ class Transport protected: // - // Make room in the buffer to accomodate + // Make room in the buffer to accommodate // at least size bytes. // diff --git a/nxcomp/Types.h b/nxcomp/Types.h index b3fe40e31..b7506124e 100644 --- a/nxcomp/Types.h +++ b/nxcomp/Types.h @@ -179,7 +179,7 @@ typedef set < File *, T_older > T_files; typedef list < int > T_list; // -// Used to accomodate data to be read and +// Used to accommodate data to be read and // written to a socket. // -- cgit v1.2.3 From 823450515591369d1899e85ab86a8780ed3d995b Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 14 Feb 2015 14:43:13 +0100 Subject: nxcomp: Add Version.c file. Fix for commit d4d3fe0e6e77a58e68defc5895a589a681d7d092. --- nxcomp/Version.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 nxcomp/Version.c (limited to 'nxcomp') diff --git a/nxcomp/Version.c b/nxcomp/Version.c new file mode 100644 index 000000000..2b431532b --- /dev/null +++ b/nxcomp/Version.c @@ -0,0 +1,106 @@ +/**************************************************************************/ +/* */ +/* Copyright (C) 2014 Qindel http://qindel.com and QVD http://theqvd.com */ +/* */ +/* This program is free software; you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation; either version 3 of the License, or (at */ +/* your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, but */ +/* WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ +/* See the GNU General Public License for more details. */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program; if not, see . */ +/* */ +/* Additional permission under GNU GPL version 3 section 7 */ +/* */ +/* If you modify this Program, or any covered work, by linking or */ +/* combining it with [name of library] (or a modified version of that */ +/* library), containing parts covered by the terms of [name of library's */ +/* license], the licensors of this Program grant you additional */ +/* permission to convey the resulting work. {Corresponding Source for a */ +/* non-source form of such a combination shall include the source code */ +/* for the parts of [name of library] used as well as that of the covered */ +/* work.} */ +/* */ +/* */ +/**************************************************************************/ + +#include +#include +#include +#include "NX.h" + + +static int _NXVersionMajor = -1; +static int _NXVersionMinor = -1; +static int _NXVersionPatch = -1; +static int _NXVersionMaintenancePatch = -1; + + +const char* NXVersion() { + const char *version = VERSION; + return version; +} + +void _parseNXVersion() { + char version[32]; + int i; + strcpy(version, VERSION); + + char *value; + /* Reset values to 0 if undefined */ + _NXVersionMajor = _NXVersionMinor = _NXVersionPatch = _NXVersionMaintenancePatch = 0; + + +#define NXVERSIONSEPARATOR "." + value = strtok(version, NXVERSIONSEPARATOR); + + for (i = 0; value != NULL && i < 4; i++) + { + switch (i) + { + case 0: + _NXVersionMajor = atoi(value); + break; + + case 1: + _NXVersionMinor = atoi(value); + break; + + case 2: + _NXVersionPatch = atoi(value); + break; + + case 3: + _NXVersionMaintenancePatch = atoi(value); + break; + } + + value = strtok(NULL, NXVERSIONSEPARATOR); + } +} + +int NXMajorVersion() { + if (_NXVersionMajor == -1) + _parseNXVersion(); + return _NXVersionMajor; +} +int NXMinorVersion() { + if (_NXVersionMinor == -1) + _parseNXVersion(); + return _NXVersionMinor; +} +int NXPatchVersion() { + if (_NXVersionPatch == -1) + _parseNXVersion(); + return _NXVersionPatch; +} +int NXMaintenancePatchVersion() { + if (_NXVersionMaintenancePatch == -1) + _parseNXVersion(); + return _NXVersionMaintenancePatch; +} -- cgit v1.2.3 From ce531230f148a8c586a6e29c340e2db03d7bd3bb Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sat, 14 Feb 2015 15:14:23 +0100 Subject: VERSION file: master VERSION file is in base folder, symlinked from nx*/VERSION and hw/nxagent/VERSION. This commit removes the debian/VERSION file at makes it now unnecessary to copy/symlink the VERSION file at build time. These build scripts got adapted: debian/roll-tarballs.sh debian/rules nx-libs.spec Furthermore, all NX component now use the main VERSION file as reference. typechange: nxcomp/VERSION typechange: nxcompext/VERSION typechange: nxcompshad/VERSION typechange: nxproxy/VERSION --- VERSION | 1 + VERSION.x2goagent | 1 + debian/VERSION | 1 - debian/roll-tarballs.sh | 2 -- debian/rules | 6 +----- nx-X11/programs/Xserver/hw/nxagent/VERSION | 1 + nx-libs.spec | 2 -- nxcomp/VERSION | 2 +- nxcompext/VERSION | 2 +- nxcompshad/VERSION | 2 +- nxproxy/VERSION | 2 +- 11 files changed, 8 insertions(+), 14 deletions(-) create mode 100644 VERSION create mode 120000 VERSION.x2goagent delete mode 100644 debian/VERSION create mode 120000 nx-X11/programs/Xserver/hw/nxagent/VERSION mode change 100644 => 120000 nxcomp/VERSION mode change 100644 => 120000 nxcompext/VERSION mode change 100644 => 120000 nxcompshad/VERSION mode change 100644 => 120000 nxproxy/VERSION (limited to 'nxcomp') diff --git a/VERSION b/VERSION new file mode 100644 index 000000000..9af1780f9 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +3.5.99.0 diff --git a/VERSION.x2goagent b/VERSION.x2goagent new file mode 120000 index 000000000..974cf28e0 --- /dev/null +++ b/VERSION.x2goagent @@ -0,0 +1 @@ +VERSION \ No newline at end of file diff --git a/debian/VERSION b/debian/VERSION deleted file mode 100644 index 9af1780f9..000000000 --- a/debian/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.5.99.0 diff --git a/debian/roll-tarballs.sh b/debian/roll-tarballs.sh index 02a25dff5..03ab6778b 100755 --- a/debian/roll-tarballs.sh +++ b/debian/roll-tarballs.sh @@ -90,7 +90,6 @@ if [ "x$MODE" = "xfull" ]; then cp -v debian/rgb ./etc/ cp -v debian/nxagent.keyboard ./etc/ cp -v debian/x2goagent.keyboard ./etc/ - cp -v debian/VERSION ./VERSION.x2goagent else rm -Rf "nxcompshad"* rm -Rf "nxcompext"* @@ -101,7 +100,6 @@ else echo ${file##*/} >> doc/applied-patches/series done fi -cp -v debian/VERSION ./nxcomp/VERSION cp -v debian/COPYING.full+lite COPYING cp -v debian/nxagent.keyboard nxagent.keyboard cp -v debian/x2goagent.keyboard x2goagent.keyboard diff --git a/debian/rules b/debian/rules index ad9ddded6..e0b4166f5 100755 --- a/debian/rules +++ b/debian/rules @@ -24,10 +24,9 @@ override_dh_clean: rm -f nx-X11/programs/Xserver/hw/nxagent/changelog rm -f nx-X11/programs/nxauth/changelog . ./replace.sh; set -x; ls debian/*.install.in | while read file; do rm -f $$(string_rep $$file .install.in .install); done - rm -fR bin etc/rgb VERSION.x2goagent etc/keystrokes.cfg etc/nxagent.keyboard etc/x2goagent.keyboard + rm -fR bin etc/rgb etc/keystrokes.cfg etc/nxagent.keyboard etc/x2goagent.keyboard rm -f debian/libnx-xinerama1.postinst rm -fR .preserve/ - if [ -f nxcomp/.VERSION.NoMachine ]; then mv nxcomp/.VERSION.NoMachine nxcomp/VERSION; fi dh_clean override_dh_installchangelog: @@ -91,7 +90,6 @@ override_dh_auto_build: # create copies of upstream changelogs so that names apply to Debian policy... cp -a nx-X11/CHANGELOG nx-X11/changelog cp -a nxcomp/CHANGELOG nxcomp/changelog - if [ -f nxcomp/VERSION ]; then cp nxcomp/VERSION nxcomp/.VERSION.NoMachine; fi cp -a nxcompext/CHANGELOG nxcompext/changelog cp -a nxcompshad/CHANGELOG nxcompshad/changelog cp -a nx-X11/programs/Xserver/hw/nxagent/CHANGELOG nx-X11/programs/Xserver/hw/nxagent/changelog @@ -105,8 +103,6 @@ override_dh_auto_build: ln -s ../debian/x2goagent.keyboard etc/x2goagent.keyboard mkdir -p doc/ ln -s ../debian/changelog doc/changelog - ln -sf debian/VERSION VERSION.x2goagent - ln -sf ../debian/VERSION nxcomp/VERSION # let's prep the libnx-xinerama1.postinst script with the value of the build systems's DEB_BUILD_MULTIARCH variable sed debian/libnx-xinerama1.postinst.in -e 's/#DEB_BUILD_MULTIARCH#/$(DEB_BUILD_MULTIARCH)/' > debian/libnx-xinerama1.postinst diff --git a/nx-X11/programs/Xserver/hw/nxagent/VERSION b/nx-X11/programs/Xserver/hw/nxagent/VERSION new file mode 120000 index 000000000..9ca2cfb9d --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/VERSION @@ -0,0 +1 @@ +../../../../../VERSION \ No newline at end of file diff --git a/nx-libs.spec b/nx-libs.spec index b5ac8d92f..c037a2662 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -668,8 +668,6 @@ cp -v debian/keystrokes.cfg etc/keystrokes.cfg cp -v debian/rgb etc/rgb cp -v debian/nxagent.keyboard etc/nxagent.keyboard cp -v debian/x2goagent.keyboard etc/x2goagent.keyboard -cp -v debian/VERSION VERSION.x2goagent -cp -v debian/VERSION nxcomp/VERSION # remove build cruft that is in Git (also taken from roll-tarball.sh) rm -Rf nx*/configure nx*/autom4te.cache* diff --git a/nxcomp/VERSION b/nxcomp/VERSION deleted file mode 100644 index 1545d9665..000000000 --- a/nxcomp/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.5.0 diff --git a/nxcomp/VERSION b/nxcomp/VERSION new file mode 120000 index 000000000..6ff19de4b --- /dev/null +++ b/nxcomp/VERSION @@ -0,0 +1 @@ +../VERSION \ No newline at end of file diff --git a/nxcompext/VERSION b/nxcompext/VERSION deleted file mode 100644 index 1545d9665..000000000 --- a/nxcompext/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.5.0 diff --git a/nxcompext/VERSION b/nxcompext/VERSION new file mode 120000 index 000000000..6ff19de4b --- /dev/null +++ b/nxcompext/VERSION @@ -0,0 +1 @@ +../VERSION \ No newline at end of file diff --git a/nxcompshad/VERSION b/nxcompshad/VERSION deleted file mode 100644 index 1545d9665..000000000 --- a/nxcompshad/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.5.0 diff --git a/nxcompshad/VERSION b/nxcompshad/VERSION new file mode 120000 index 000000000..6ff19de4b --- /dev/null +++ b/nxcompshad/VERSION @@ -0,0 +1 @@ +../VERSION \ No newline at end of file diff --git a/nxproxy/VERSION b/nxproxy/VERSION deleted file mode 100644 index 1545d9665..000000000 --- a/nxproxy/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.5.0 diff --git a/nxproxy/VERSION b/nxproxy/VERSION new file mode 120000 index 000000000..6ff19de4b --- /dev/null +++ b/nxproxy/VERSION @@ -0,0 +1 @@ +../VERSION \ No newline at end of file -- cgit v1.2.3 From 5464a6dba5742a9f22ba18c9b307d4ee42394378 Mon Sep 17 00:00:00 2001 From: Clemens Lang Date: Sun, 15 Mar 2015 17:22:38 +0100 Subject: nx{comp{,ext,shad},proxy}: use path discovery for finding makedepend. Remove old cruft. --- debian/changelog | 4 ++-- nxcomp/configure.in | 15 +-------------- nxcompext/configure.in | 15 +-------------- nxcompshad/configure.in | 15 +-------------- nxproxy/configure.in | 15 +-------------- 5 files changed, 6 insertions(+), 58 deletions(-) (limited to 'nxcomp') diff --git a/debian/changelog b/debian/changelog index 3b4175f92..664717898 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,8 +12,8 @@ nx-libs (2:3.5.99.0-0~build1) UNRELEASED; urgency=medium nx-libs (2:3.5.0.31-0x2go1) UNRELEASED; urgency=low - [ X2Go Release Manager ] - * Continue development + [ Clemens Lang ] + * Use path discovery for finding makedepend. Remove old cruft. -- X2Go Release Manager Sun, 15 Mar 2015 00:48:06 +0100 diff --git a/nxcomp/configure.in b/nxcomp/configure.in index 6fa9757a7..2378a9398 100644 --- a/nxcomp/configure.in +++ b/nxcomp/configure.in @@ -362,20 +362,7 @@ fi dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) - -if test -x "../nx-X11/config/makedepend/makedepend" ; then - MAKEDEPEND=../nx-X11/config/makedepend/makedepend -else - if test -x "/usr/X11R6/bin/makedepend" ; then - MAKEDEPEND=/usr/X11R6/bin/makedepend - else - if test -x "/usr/openwin/bin/makedepend" ; then - MAKEDEPEND=/usr/openwin/bin/makedepend - else - MAKEDEPEND=/usr/bin/makedepend - fi - fi -fi +MAKEDEPEND="$(which makedepend)" dnl Determine what to build based on the platform. dnl Override the LIBS settings on Cygwin32 so that diff --git a/nxcompext/configure.in b/nxcompext/configure.in index 08c48a751..6159e84c1 100644 --- a/nxcompext/configure.in +++ b/nxcompext/configure.in @@ -219,20 +219,7 @@ CFLAGS="$CFLAGS -DVERSION=\\\"${VERSION}\\\"" dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) - -if test -x "../nx-X11/config/makedepend/makedepend" ; then - MAKEDEPEND=../nx-X11/config/makedepend/makedepend -else - if test -x "/usr/X11R6/bin/makedepend" ; then - MAKEDEPEND=/usr/X11R6/bin/makedepend - else - if test -x "/usr/openwin/bin/makedepend" ; then - MAKEDEPEND=/usr/openwin/bin/makedepend - else - MAKEDEPEND=/usr/bin/makedepend - fi - fi -fi +MAKEDEPEND="$(which makedepend)" dnl Determine what to build based on the platform. dnl Override the LIBS settings on Cygwin32 so that diff --git a/nxcompshad/configure.in b/nxcompshad/configure.in index 13149b3a0..a76c6b9a1 100644 --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -269,19 +269,6 @@ fi dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) - -if test -x "../nx-X11/config/makedepend/makedepend" ; then - MAKEDEPEND=../nx-X11/config/makedepend/makedepend -else - if test -x "/usr/X11R6/bin/makedepend" ; then - MAKEDEPEND=/usr/X11R6/bin/makedepend - else - if test -x "/usr/openwin/bin/makedepend" ; then - MAKEDEPEND=/usr/openwin/bin/makedepend - else - MAKEDEPEND=makedepend - fi - fi -fi +MAKEDEPEND="$(which makedepend)" AC_OUTPUT(Makefile) diff --git a/nxproxy/configure.in b/nxproxy/configure.in index b86828d02..914e70738 100644 --- a/nxproxy/configure.in +++ b/nxproxy/configure.in @@ -167,19 +167,6 @@ fi dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) - -if test -x "../nx-X11/config/makedepend/makedepend" ; then - MAKEDEPEND=../nx-X11/config/makedepend/makedepend -else - if test -x "/usr/X11R6/bin/makedepend" ; then - MAKEDEPEND=/usr/X11R6/bin/makedepend - else - if test -x "/usr/openwin/bin/makedepend" ; then - MAKEDEPEND=/usr/openwin/bin/makedepend - else - MAKEDEPEND=makedepend - fi - fi -fi +MAKEDEPEND="$(which makedepend)" AC_OUTPUT(Makefile) -- cgit v1.2.3 From ad7e12ed39cc4091ff878ea2b3e748e0147dd57f Mon Sep 17 00:00:00 2001 From: Clemens Lang Date: Sun, 15 Mar 2015 17:26:24 +0100 Subject: nxcomp{,shad}: fix dynamic library linking on OS X. Use -dynamiclib instead of -bundle. --- debian/changelog | 1 + nxcomp/configure.in | 4 ++-- nxcompshad/configure.in | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'nxcomp') diff --git a/debian/changelog b/debian/changelog index 664717898..771139d9a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,7 @@ nx-libs (2:3.5.0.31-0x2go1) UNRELEASED; urgency=low [ Clemens Lang ] * Use path discovery for finding makedepend. Remove old cruft. + * Fix dynamic library linking on OS X. Use -dynamiclib instead of -bundle. -- X2Go Release Manager Sun, 15 Mar 2015 00:48:06 +0100 diff --git a/nxcomp/configure.in b/nxcomp/configure.in index 2378a9398..07c88df77 100644 --- a/nxcomp/configure.in +++ b/nxcomp/configure.in @@ -183,11 +183,11 @@ if test "$FreeBSD" = yes; then fi dnl Under Darwin we don't have support for -soname option and -dnl we need the -bundle flag. Under Solaris, instead, we need +dnl we need the -dynamiclib flag. Under Solaris, instead, we need dnl the options -G -h. if test "$DARWIN" = yes; then - LDFLAGS="$LDFLAGS -bundle" + LDFLAGS="$LDFLAGS -dynamiclib" elif test "$SUN" = yes; then LDFLAGS="$LDFLAGS -G -h \$(LIBLOAD)" else diff --git a/nxcompshad/configure.in b/nxcompshad/configure.in index a76c6b9a1..4e91361ff 100644 --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -175,11 +175,11 @@ if test "$FreeBSD" = yes; then fi dnl Under Darwin we don't have support for -soname option and -dnl we need the -bundle flag. Under Solaris, instead, we need +dnl we need the -dynamiclib flag. Under Solaris, instead, we need dnl the options -G -h. if test "$DARWIN" = yes; then - LDFLAGS="$LDFLAGS -bundle" + LDFLAGS="$LDFLAGS -dynamiclib" elif test "$SUN" = yes; then LDFLAGS="$LDFLAGS -G -h \$(LIBLOAD)" else -- cgit v1.2.3 From 638e31c2f33723123d35ce65db88071a1be5cdb0 Mon Sep 17 00:00:00 2001 From: Clemens Lang Date: Sun, 15 Mar 2015 17:29:50 +0100 Subject: nxcomp{,ext,shad}: use the correct library naming scheme on OS X. It differs from other UNIX-based systems. --- debian/changelog | 2 ++ nxcomp/Makefile.in | 22 +++++++++++++++------- nxcompext/Makefile.in | 18 +++++++++++++----- nxcompshad/Makefile.in | 22 +++++++++++++++------- 4 files changed, 45 insertions(+), 19 deletions(-) (limited to 'nxcomp') diff --git a/debian/changelog b/debian/changelog index 771139d9a..197b257a1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,8 @@ nx-libs (2:3.5.0.31-0x2go1) UNRELEASED; urgency=low [ Clemens Lang ] * Use path discovery for finding makedepend. Remove old cruft. * Fix dynamic library linking on OS X. Use -dynamiclib instead of -bundle. + * Use the correct library naming scheme on OS X. It differs from other + UNIX-based systems. -- X2Go Release Manager Sun, 15 Mar 2015 00:48:06 +0100 diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 93bb0b38c..2234474ec 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -91,9 +91,17 @@ DEPENDINCLUDES = -I/usr/include/c++ -I/usr/include/g++ -I/usr/include/g++-3 LIBRARY = Xcomp LIBNAME = lib$(LIBRARY) +ifeq ($(shell uname),Darwin) +LIBFULL = lib$(LIBRARY).$(VERSION).dylib +LIBLOAD = lib$(LIBRARY).$(LIBVERSION).dylib +LIBSHARED = lib$(LIBRARY).dylib +LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(VERSION) +else LIBFULL = lib$(LIBRARY).so.$(VERSION) LIBLOAD = lib$(LIBRARY).so.$(LIBVERSION) LIBSHARED = lib$(LIBRARY).so +LIBFLAGS = +endif LIBARCHIVE = lib$(LIBRARY).a LIBCYGSHARED = cyg$(LIBRARY).dll @@ -232,7 +240,7 @@ COBJ = $(CSRC:.c=.o) CXXOBJ = $(CXXSRC:.cpp=.o) $(LIBFULL): $(CXXOBJ) $(COBJ) - $(CXX) -o $@ $(LDFLAGS) $(CXXOBJ) $(COBJ) $(LIBS) + $(CXX) -o $@ $(LDFLAGS) $(LIBFLAGS) $(CXXOBJ) $(COBJ) $(LIBS) $(LIBLOAD): $(LIBFULL) rm -f $(LIBLOAD) @@ -278,9 +286,9 @@ install.lib: all ./mkinstalldirs $(DESTDIR)${libdir} ./mkinstalldirs $(DESTDIR)${includedir}/nx $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} - $(INSTALL_LINK) libXcomp.so.3 $(DESTDIR)${libdir} - $(INSTALL_LINK) libXcomp.so $(DESTDIR)${libdir} - $(INSTALL_DATA) libXcomp.a $(DESTDIR)${libdir} + $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} + $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} + $(INSTALL_DATA) $(LIBARCHIVE) $(DESTDIR)${libdir} $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx $(INSTALL_DATA) MD5.h $(DESTDIR)${includedir}/nx echo "Running ldconfig tool, this may take a while..." && ldconfig || true @@ -293,9 +301,9 @@ uninstall.bin: uninstall.lib: $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) - $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.so.3 - $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.so - $(RM_FILE) $(DESTDIR)${libdir}/libXcomp.a + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBLOAD) + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBSHARED) + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBARCHIVE) $(RM_FILE) $(DESTDIR)${includedir}/nx/NXalert.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NX.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXmitshm.h diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index 7987c7563..8777ceeed 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -82,9 +82,17 @@ DEPENDINCLUDES = -I/usr/include/c++ -I/usr/include/g++ -I/usr/include/g++-3 LIBRARY = Xcompext LIBNAME = lib$(LIBRARY) +ifeq ($(shell uname),Darwin) +LIBFULL = lib$(LIBRARY).$(VERSION).dylib +LIBLOAD = lib$(LIBRARY).$(LIBVERSION).dylib +LIBSHARED = lib$(LIBRARY).dylib +LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(VERSION) +else LIBFULL = lib$(LIBRARY).so.$(VERSION) LIBLOAD = lib$(LIBRARY).so.$(LIBVERSION) LIBSHARED = lib$(LIBRARY).so +LIBFLAGS = +endif LIBARCHIVE = lib$(LIBRARY).a LIBCYGSHARED = cyg$(LIBRARY).dll @@ -113,7 +121,7 @@ COBJ = $(CSRC:.c=.o) CXXOBJ = $(CXXSRC:.cpp=.o) $(LIBFULL): $(CXXOBJ) $(COBJ) - $(CXX) -o $@ $(LDFLAGS) $(CXXOBJ) $(COBJ) $(LIBS) + $(CXX) -o $@ $(LDFLAGS) $(LIBFLAGS) $(CXXOBJ) $(COBJ) $(LIBS) $(LIBLOAD): $(LIBFULL) rm -f $(LIBLOAD) @@ -159,8 +167,8 @@ install.lib: all ./mkinstalldirs $(DESTDIR)${libdir} ./mkinstalldirs $(DESTDIR)${includedir}/nx $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} - $(INSTALL_LINK) libXcompext.so.3 $(DESTDIR)${libdir} - $(INSTALL_LINK) libXcompext.so $(DESTDIR)${libdir} + $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} + $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx echo "Running ldconfig tool, this may take a while..." && ldconfig || true @@ -172,8 +180,8 @@ uninstall.bin: uninstall.lib: $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) - $(RM_FILE) $(DESTDIR)${libdir}/libXcompext.so.3 - $(RM_FILE) $(DESTDIR)${libdir}/libXcompext.so + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBLOAD) + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBSHARED) $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlib.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlibint.h echo "Running ldconfig tool, this may take a while..." && ldconfig || true diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index f7e89a6f2..2f6e50bf9 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -103,9 +103,17 @@ DEPENDINCLUDES = -I/usr/include/g++ -I/usr/include/g++-3 LIBRARY = Xcompshad LIBNAME = lib$(LIBRARY) +ifeq ($(shell uname),Darwin) +LIBFULL = lib$(LIBRARY).$(VERSION).dylib +LIBLOAD = lib$(LIBRARY).$(LIBVERSION).dylib +LIBSHARED = lib$(LIBRARY).dylib +LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(VERSION) +else LIBFULL = lib$(LIBRARY).so.$(VERSION) LIBLOAD = lib$(LIBRARY).so.$(LIBVERSION) LIBSHARED = lib$(LIBRARY).so +LIBFLAGS = +endif LIBARCHIVE = lib$(LIBRARY).a MSRC = Main.c @@ -146,7 +154,7 @@ all: depend $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) endif $(LIBFULL): $(CXXOBJ) $(COBJ) - $(CXX) -o $@ $(LDFLAGS) $(CXXOBJ) $(COBJ) $(LIBS) $(EXTRALIBS) + $(CXX) -o $@ $(LDFLAGS) $(LIBFLAGS) $(CXXOBJ) $(COBJ) $(LIBS) $(EXTRALIBS) $(LIBLOAD): $(LIBFULL) rm -f $(LIBLOAD) @@ -193,9 +201,9 @@ install.lib: all $(INSTALL_DIR) $(DESTDIR)${libdir} $(INSTALL_DIR) $(DESTDIR)${includedir}/nx $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} - $(INSTALL_LINK) libXcompshad.so.3 $(DESTDIR)${libdir} - $(INSTALL_LINK) libXcompshad.so $(DESTDIR)${libdir} - $(INSTALL_DATA) *.a $(DESTDIR)${libdir} + $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} + $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} + $(INSTALL_DATA) $(LIBARCHIVE) $(DESTDIR)${libdir} $(INSTALL_DATA) *.h $(DESTDIR)${includedir}/nx echo "Running ldconfig tool, this may take a while..." && ldconfig || true @@ -207,9 +215,9 @@ uninstall.bin: uninstall.lib: $(RM_FILE) $(DESTDIR)${libdir}/$(LIBFULL) - $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.so.3 - $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.so - $(RM_FILE) $(DESTDIR)${libdir}/libXcompshad.a + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBLOAD) + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBSHARED) + $(RM_FILE) $(DESTDIR)${libdir}/$(LIBARCHIVE) for header in *.h; do $(RM_FILE) $(DESTDIR)${includedir}/nx/$$header; done $(RM_DIR) $(DESTDIR)${libdir}/nx/ $(RM_DIR) $(DESTDIR)${includedir}/nx/ -- cgit v1.2.3 From d8de5928e1e7a0677ed2d38fa4d9f53a58514ebe Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Mon, 16 Mar 2015 03:29:16 +0100 Subject: nx{comp{,ext,shad},proxy}: try really hard to find makedepend. Do not fail if it is not available. --- nxcomp/Makefile.in | 4 ++-- nxcomp/configure.in | 10 ++++++++++ nxcompext/Makefile.in | 4 ++-- nxcompext/configure.in | 10 ++++++++++ nxcompshad/Makefile.in | 4 ++-- nxcompshad/configure.in | 10 ++++++++++ nxproxy/Makefile.in | 4 ++-- nxproxy/configure.in | 10 ++++++++++ 8 files changed, 48 insertions(+), 8 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 2234474ec..e571b3c90 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -271,9 +271,9 @@ depends: depend.status depend: depend.status depend.status: - if [ -x $(MAKEDEPEND) ] ; then \ + if [ -n "$(MAKEDEPEND)" ] && [ -x "$(MAKEDEPEND)" ] ; then \ $(MAKEDEPEND) $(CXXINCLUDES) $(CCINCLUDES) \ - $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) \ + $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) \ $(CXXSRC) 2>/dev/null; \ fi touch depend.status diff --git a/nxcomp/configure.in b/nxcomp/configure.in index 07c88df77..43b51573a 100644 --- a/nxcomp/configure.in +++ b/nxcomp/configure.in @@ -364,6 +364,16 @@ dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) MAKEDEPEND="$(which makedepend)" +# Try to desperately find makedepend. +# Set MAKEDEPEND to the shipped makedepend binary. This will not +# exist in nx-libs-lite, though, in which case MAKEDEPEND +# will stay empty. +if test -z "${MAKEDEPEND}"; then + if test -x "../nx-X11/config/makedepend/makedepend"; then + MAKEDEPEND="../nx-X11/config/makedepend/makedepend" + fi +fi + dnl Determine what to build based on the platform. dnl Override the LIBS settings on Cygwin32 so that dnl we always link with the exact set of libraries. diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index 8777ceeed..da464bd6d 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -152,9 +152,9 @@ depends: depend.status depend: depend.status depend.status: - if [ -x $(MAKEDEPEND) ] ; then \ + if [ -n "$(MAKEDEPEND)" ] && [ -x "$(MAKEDEPEND)" ] ; then \ $(MAKEDEPEND) $(CXXINCLUDES) $(CCINCLUDES) \ - $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) \ + $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) \ $(CXXSRC) 2>/dev/null; \ fi touch depend.status diff --git a/nxcompext/configure.in b/nxcompext/configure.in index 6159e84c1..e6f13c0ea 100644 --- a/nxcompext/configure.in +++ b/nxcompext/configure.in @@ -221,6 +221,16 @@ dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) MAKEDEPEND="$(which makedepend)" +# Try to desperately find makedepend. +# Set MAKEDEPEND to the shipped makedepend binary. This will not +# exist in nx-libs-lite, though, in which case MAKEDEPEND +# will stay empty. +if test -z "${MAKEDEPEND}"; then + if test -x "../nx-X11/config/makedepend/makedepend"; then + MAKEDEPEND="../nx-X11/config/makedepend/makedepend" + fi +fi + dnl Determine what to build based on the platform. dnl Override the LIBS settings on Cygwin32 so that dnl we always link with the exact set of libraries. diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 2f6e50bf9..5ea286395 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -187,9 +187,9 @@ depends: depend.status depend: depend.status depend.status: - if [ -x $(MAKEDEPEND) ] ; then \ + if [ -n "$(MAKEDEPEND)" ] && [ -x "$(MAKEDEPEND)" ] ; then \ $(MAKEDEPEND) $(CXXINCLUDES) $(CCINCLUDES) \ - $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) $(CXXSRC) 2>/dev/null; \ + $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) $(CXXSRC) 2>/dev/null; \ fi touch depend.status diff --git a/nxcompshad/configure.in b/nxcompshad/configure.in index 4e91361ff..8dd1b2e21 100644 --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -271,4 +271,14 @@ dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) MAKEDEPEND="$(which makedepend)" +# Try to desperately find makedepend. +# Set MAKEDEPEND to the shipped makedepend binary. This will not +# exist in nx-libs-lite, though, in which case MAKEDEPEND +# will stay empty. +if test -z "${MAKEDEPEND}"; then + if test -x "../nx-X11/config/makedepend/makedepend"; then + MAKEDEPEND="../nx-X11/config/makedepend/makedepend" + fi +fi + AC_OUTPUT(Makefile) diff --git a/nxproxy/Makefile.in b/nxproxy/Makefile.in index c00df91dc..3a27cbd29 100644 --- a/nxproxy/Makefile.in +++ b/nxproxy/Makefile.in @@ -80,9 +80,9 @@ depends: depend.status depend: depend.status depend.status: - if [ -x $(MAKEDEPEND) ] ; then \ + if [ -n "$(MAKEDEPEND)" ] && [ -x "$(MAKEDEPEND)" ] ; then \ $(MAKEDEPEND) $(CXXINCLUDES) $(CCINCLUDES) \ - $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) $(CXXSRC) 2>/dev/null; \ + $(DEPENDINCLUDES) -f Makefile $(MSRC) $(CSRC) $(CXXSRC) 2>/dev/null; \ fi touch depend.status diff --git a/nxproxy/configure.in b/nxproxy/configure.in index 914e70738..268584216 100644 --- a/nxproxy/configure.in +++ b/nxproxy/configure.in @@ -169,4 +169,14 @@ dnl Find makedepend somewhere. AC_SUBST(MAKEDEPEND) MAKEDEPEND="$(which makedepend)" +# Try to desperately find makedepend. +# Set MAKEDEPEND to the shipped makedepend binary. This will not +# exist in nx-libs-lite, though, in which case MAKEDEPEND +# will stay empty. +if test -z "${MAKEDEPEND}"; then + if test -x "../nx-X11/config/makedepend/makedepend"; then + MAKEDEPEND="../nx-X11/config/makedepend/makedepend" + fi +fi + AC_OUTPUT(Makefile) -- cgit v1.2.3 From d86ce9c7a44118082612c3cfb3a866b9f8f6098f Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Thu, 26 Mar 2015 00:32:27 +0100 Subject: nxcomp{,ext,shad}: only use the first three numbers in the full version for current_version on OS X. ld(1) on 10.6 fails otherwise. --- nxcomp/Makefile.in | 3 ++- nxcompext/Makefile.in | 3 ++- nxcompshad/Makefile.in | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index e571b3c90..6022747cb 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -95,7 +95,8 @@ ifeq ($(shell uname),Darwin) LIBFULL = lib$(LIBRARY).$(VERSION).dylib LIBLOAD = lib$(LIBRARY).$(LIBVERSION).dylib LIBSHARED = lib$(LIBRARY).dylib -LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(VERSION) +COMP_VER = $(shell echo '$(VERSION)' | cut -d '.' -f 1-3) +LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(COMP_VER) else LIBFULL = lib$(LIBRARY).so.$(VERSION) LIBLOAD = lib$(LIBRARY).so.$(LIBVERSION) diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index da464bd6d..b33c5aaf3 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -86,7 +86,8 @@ ifeq ($(shell uname),Darwin) LIBFULL = lib$(LIBRARY).$(VERSION).dylib LIBLOAD = lib$(LIBRARY).$(LIBVERSION).dylib LIBSHARED = lib$(LIBRARY).dylib -LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(VERSION) +COMP_VER = $(shell echo '$(VERSION)' | cut -d '.' -f 1-3) +LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(COMP_VER) else LIBFULL = lib$(LIBRARY).so.$(VERSION) LIBLOAD = lib$(LIBRARY).so.$(LIBVERSION) diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 5ea286395..41d644f5e 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -107,7 +107,8 @@ ifeq ($(shell uname),Darwin) LIBFULL = lib$(LIBRARY).$(VERSION).dylib LIBLOAD = lib$(LIBRARY).$(LIBVERSION).dylib LIBSHARED = lib$(LIBRARY).dylib -LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(VERSION) +COMP_VER = $(shell echo '$(VERSION)' | cut -d '.' -f 1-3) +LIBFLAGS = -install_name $(libdir)/$(LIBLOAD) -compatibility_version $(LIBVERSION) -current_version $(COMP_VER) else LIBFULL = lib$(LIBRARY).so.$(VERSION) LIBLOAD = lib$(LIBRARY).so.$(LIBVERSION) -- cgit v1.2.3 From 4fefe352c9d93b0a51ed2e7c34f47a0d951413db Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Fri, 15 May 2015 15:20:52 +0200 Subject: This patch allows to cleanup the nxcomp resources to allow for a second connection inside the same process, instead of a new process as is the nxproxy case. This involves creating a new API call void NXTransCleanupForReconnect(void); which basically cleans up the global state for the connection but does not exit the process. Background ========== This is needed for the IOS platform, where the nxproxy model of forking does not work. Also NX handles most of the errors with an "exit" call which in IOS cannot be easily handled. --- nxcomp/Loop.cpp | 27 +++++++++++++++++++++++++++ nxcomp/Misc.h | 1 + nxcomp/NX.h | 8 ++++++++ 3 files changed, 36 insertions(+) (limited to 'nxcomp') diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 7bc154f36..f25aed353 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -1311,6 +1311,11 @@ void NXTransCleanup() HandleCleanup(); } +void NXTransCleanupForReconnect() +{ + HandleCleanupForReconnect(); +} + // // Check the parameters for subsequent // initialization of the NX transport. @@ -4873,6 +4878,28 @@ int StartKeeper() return 1; } +void HandleCleanupForReconnect() +{ + #ifdef TEST + *logofs << "Loop: Going to clean up system resources for Reconnect " + << "in process '" << getpid() << "'.\n" + << logofs_flush; + #endif + handleTerminatedInLoop(); + DisableSignals(); + if (control) + CleanupChildren(); + CleanupListeners(); + CleanupSockets(); + CleanupKeeper(); + CleanupStreams(); + CleanupLocal(); + CleanupGlobal(); + RestoreSignals(); + ServerCache::lastInitReply.set(0,NULL); + ServerCache::lastKeymap.set(0,NULL); + ServerCache::getKeyboardMappingLastMap.set(0,NULL); +} void HandleCleanup(int code) { #ifdef TEST diff --git a/nxcomp/Misc.h b/nxcomp/Misc.h index 21a503082..0cc396933 100644 --- a/nxcomp/Misc.h +++ b/nxcomp/Misc.h @@ -140,6 +140,7 @@ void HandleShutdown() __attribute__((noreturn)); extern "C" { void HandleCleanup(int code = 0) __attribute__((noreturn)); + void HandleCleanupForReconnect(); } // diff --git a/nxcomp/NX.h b/nxcomp/NX.h index 2dbf68662..0e4734e5f 100644 --- a/nxcomp/NX.h +++ b/nxcomp/NX.h @@ -442,6 +442,14 @@ extern int NXTransParseEnvironment(const char *env, int force); extern void NXTransCleanup(void) __attribute__((noreturn)); +/* + * Cleans up the global and local state + * (the same way as NXTransCleanup does) + * but does not exit the process + * Needed for IOS platform + */ +extern void NXTransCleanupForReconnect(void); + extern const char* NXVersion(); extern int NXMajorVersion(); extern int NXMinorVersion(); -- cgit v1.2.3 From cf4ed917e2d7d6b3683ba1aa4ea4662538b69516 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Fri, 15 May 2015 22:40:05 +0200 Subject: This patch is some code fixes to debug some debuging macro usage in the NX code. Particularly the following macros have been tested -DTEST -DDEBUG -DDUMP -DFLUSH -DTOKEN -DSPLIT -DPING -DMIXED -DMATCH -DTIME --- nxcomp/Agent.h | 2 +- nxcomp/ClearArea.cpp | 2 +- nxcomp/Proxy.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Agent.h b/nxcomp/Agent.h index ded344d84..2c5badf53 100644 --- a/nxcomp/Agent.h +++ b/nxcomp/Agent.h @@ -217,7 +217,7 @@ class Agent #if defined(TEST) || defined(INFO) *logofs << "Agent: proxyCanRead() is " - << ((int) FD_ISSET(proxy -> getFd(), &readWorkSet) + << ((int) FD_ISSET(proxy -> getFd(), &readWorkSet)) << ".\n" << logofs_flush; #endif diff --git a/nxcomp/ClearArea.cpp b/nxcomp/ClearArea.cpp index 223a3b3e1..83b728158 100644 --- a/nxcomp/ClearArea.cpp +++ b/nxcomp/ClearArea.cpp @@ -92,7 +92,7 @@ void ClearAreaStore::dumpIdentity(const Message *message) const ClearAreaMessage *clearArea = (ClearAreaMessage *) message; - *logofs << name() << ": Identity exposures " << clearArea -> (unsigned int) exposures + *logofs << name() << ": Identity exposures " << (unsigned int) clearArea -> exposures << ", window " << clearArea -> window << ", x " << clearArea -> x << ", y " << clearArea -> y << ", width " << clearArea -> width << ", height " << clearArea -> height << ", size " << clearArea -> size_ diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index 9b38661b4..4eb99cf45 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -5176,7 +5176,7 @@ char *Proxy::handleSaveAllStores(const char *savePath) const *(cacheDumpName + DEFAULT_STRING_LENGTH - 1) = '\0'; - mode_t fileMode = umask(0077); + fileMode = umask(0077); cacheDump = new ofstream(cacheDumpName, ios::out); -- cgit v1.2.3 From f982cbc85e9ffff24a6a348c3637b54a7e8cbc34 Mon Sep 17 00:00:00 2001 From: Vadim Troshchinskiy Date: Wed, 20 May 2015 15:47:45 +0200 Subject: Fix negotiation in stage 10 error Problem fixed by adding a select() call to implement a timeout, and retrying writes if needed. --- nxcomp/Loop.cpp | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'nxcomp') diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index f25aed353..0ab0dd988 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8100,16 +8100,52 @@ int ReadRemoteData(int fd, char *buffer, int size, char stop) int WriteLocalData(int fd, const char *buffer, int size) { int position = 0; + int ret = 0; + fd_set writeSet; + struct timeval selectTs = {30, 0}; while (position < size) { + + // A write to a non-blocking socket may fail with EAGAIN. The problem is + // that cache data is done in several writes, and there's no easy way + // to handle failure without rewriting a significant amount of code. + // + // Bailing out of the outer loop would result in restarting the sending + // of the entire cache list, which would confuse the other side. + + FD_ZERO(&writeSet); + FD_SET(fd, &writeSet); + + ret = select(fd+1, NULL, &writeSet, NULL, &selectTs); + + #ifdef DEBUG + *logofs << "Loop: WriteLocalData: select() returned with a code of " << ret << " and remaining timeout of " + << selectTs.tv_sec << " sec, " << selectTs.tv_usec << "usec\n" << logofs_flush; + #endif + + if ( ret < 0 ) + { + *logofs << "Loop: Error in select() when writing data to FD#" << fd << ": " << strerror(EGET()) << "\n" << logofs_flush; + + if ( EGET() == EINTR ) + continue; + + return -1; + } + else if ( ret == 0 ) + { + *logofs << "Loop: Timeout expired in select() when writing data to FD#" << fd << ": " << strerror(EGET()) << "\n" << logofs_flush; + return -1; + } + int result = write(fd, buffer + position, size - position); getNewTimestamp(); if (result <= 0) { - if (result < 0 && EGET() == EINTR) + if (result < 0 && (EGET() == EINTR || EGET() == EAGAIN || EGET() == EWOULDBLOCK)) { continue; } -- cgit v1.2.3 From 1f44331574bdbe4069d13e4c26df18094b49e658 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Thu, 21 May 2015 12:25:13 +0200 Subject: Document retroactive re-licensing of the original DXPC code (closes #30). * Update nxcomp/LICENSE. * Add nxcomp/README.on-retroactive-DXPC-license, giving a short overview of the flow of discussions * Add "modified or unmodified" to the license information printed out to stdout in nxcomp/Misc.cpp * Fix copyright year (2006->2003) for Gian Filippo Pinzari (and move him to the GPL-2 section). * Add the complete .mbox file of Debian bug #748565. --- doc/DXPC_re-licensed::debbug_784565.mbox | 3769 +++++++++++++++++++++++++++++ nxcomp/LICENSE | 59 +- nxcomp/Misc.cpp | 6 +- nxcomp/README.on-retroactive-DXPC-license | 269 ++ 4 files changed, 4097 insertions(+), 6 deletions(-) create mode 100644 doc/DXPC_re-licensed::debbug_784565.mbox create mode 100644 nxcomp/README.on-retroactive-DXPC-license (limited to 'nxcomp') diff --git a/doc/DXPC_re-licensed::debbug_784565.mbox b/doc/DXPC_re-licensed::debbug_784565.mbox new file mode 100644 index 000000000..be813246c --- /dev/null +++ b/doc/DXPC_re-licensed::debbug_784565.mbox @@ -0,0 +1,3769 @@ +From invernomuto@paranoici.org Wed May 06 17:36:12 2015 +Received: (at submit) by bugs.debian.org; 6 May 2015 17:36:12 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_PACKAGE,SPF_HELO_PASS,SPF_PASS, + XMAILER_REPORTBUG autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 79; spammy, + 0. spammytokens: hammytokens:0.000-+--H*M:reportbug, 0.000-+--H*MI:reportbug, + 0.000-+--H*x:reportbug, 0.000-+--H*UA:reportbug, 0.000-+--H*x:6.6.3 +Return-path: +Received: from perdizione.investici.org ([94.23.50.208]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1Yq3Ex-0001dB-Ks + for submit@bugs.debian.org; Wed, 06 May 2015 17:36:11 +0000 +Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 3987C120F77; + Wed, 6 May 2015 17:36:07 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1430933767; + bh=QAdaIheSnzoHI301+0HPUrAK62wjbKWg7iWEzGzlOTs=; + h=From:To:Subject:Date; + b=X/2YGWFWL2KRAVqONR2Q6Q6HuMii+1WfGCbSpf8XvQesaf7qWlvY2u1IVKgKVpN2m + Baq+3OrQ1adlmdHQQJm7tLfv37vRZVNOUpP3lyKQX4v3B/Gos63+1GqfyJ7qGkvQha + 4qwytZrPI20VmUswHf7qhgSGIVQmy0COEZZX0PF8= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1Yq3EK-0001ye-Bx; Wed, 06 May 2015 19:35:32 +0200 +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +From: "Francesco Poli \(wintermute\)" +To: Debian Bug Tracking System +Subject: nx-libs-lite: parts are derived from non-free code +Message-ID: <20150506173532.7531.31389.reportbug@homebrew> +X-Mailer: reportbug 6.6.3 +Date: Wed, 06 May 2015 19:35:32 +0200 +Delivered-To: submit@bugs.debian.org + +Package: nx-libs-lite +Version: 3.5.0.27-1 +Severity: serious +Justification: Policy 2.2.1 + +Hello and thanks for maintaining this package in Debian! + +I noticed that the debian/copyright states: + +[...] +| Parts of this software are derived from DXPC project. These copyright +| notices apply to original DXPC code: +| +| Redistribution and use in source and binary forms are permitted provided +| that the above copyright notice and this paragraph are duplicated in all +| such forms. +| +| THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +| WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +| MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +| +| Copyright (c) 1995,1996 Brian Pane +| Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +| Copyright (c) 1999 Kevin Vigor and Brian Pane +| Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +[...] + +This license lacks the permission to modify the DXPC code. +Hence, the original DXPC code does not appear to comply with the +DFSG. And the nx-libs-lite is in part derived from DXPC code. + +This basically means that nx-libs-lite includes parts which are +non-free (as they are derived from non-modifiable code) and +are also possibly legally undistributable (as they are non-modifiable, +but actually modified). The combination with the rest of nx-libs-lite +(which is GPL-licensed) may also be legally undistributable (since +the license with no permission to modify is GPL-incompatible). + + +If there's anything I misunderstood, please clarify. + +Otherwise, please address this issue as soon as possible. +The copyright owners for the original DXPC code should be +contacted and persuaded to re-license under GPL-compatible +terms. + +Thanks for your time. +Bye. + + + +From mike.gabriel@das-netzwerkteam.de Mon May 11 09:07:54 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 09:07:54 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 203; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Yrjgn-0001o6-MP + for 784565@bugs.debian.org; Mon, 11 May 2015 09:07:54 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 85F37E4B; + Mon, 11 May 2015 11:07:49 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id F1CFF3C20D; + Mon, 11 May 2015 11:07:48 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id wKYnujH8-HJ8; Mon, 11 May 2015 11:07:48 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 960E33C18A; + Mon, 11 May 2015 11:07:48 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Mon, 11 May 2015 09:07:48 +0000 +Date: Mon, 11 May 2015 09:07:48 +0000 +Message-ID: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: "Francesco Poli (wintermute)" , + 784565@bugs.debian.org +Cc: x2go-dev@lists.x2go.org, Nito Martinez , + opensource@gznianguan.com, dktrkranz@debian.org +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_ALb-1vQm6P3YAYx12TU2SQ1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_ALb-1vQm6P3YAYx12TU2SQ1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Francesco, +Cc:ing a couple of people/groups being affected by the below. + +On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote: + +> Package: nx-libs-lite +> Version: 3.5.0.27-1 +> Severity: serious +> Justification: Policy 2.2.1 +> +> Hello and thanks for maintaining this package in Debian! +> +> I noticed that the debian/copyright states: +> +> [...] +> | Parts of this software are derived from DXPC project. These copyright +> | notices apply to original DXPC code: +> | +> | Redistribution and use in source and binary forms are permitted prov= +ided +> | that the above copyright notice and this paragraph are duplicated in= + all +> | such forms. +> | +> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI= +ED +> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +> | +> | Copyright (c) 1995,1996 Brian Pane +> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +> | Copyright (c) 1999 Kevin Vigor and Brian Pane +> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +> [...] +> +> This license lacks the permission to modify the DXPC code. +> Hence, the original DXPC code does not appear to comply with the +> DFSG. And the nx-libs-lite is in part derived from DXPC code. +> +> This basically means that nx-libs-lite includes parts which are +> non-free (as they are derived from non-modifiable code) and +> are also possibly legally undistributable (as they are non-modifiable, +> but actually modified). The combination with the rest of nx-libs-lite +> (which is GPL-licensed) may also be legally undistributable (since +> the license with no permission to modify is GPL-incompatible). +> +> +> If there's anything I misunderstood, please clarify. +> +> Otherwise, please address this issue as soon as possible. +> The copyright owners for the original DXPC code should be +> contacted and persuaded to re-license under GPL-compatible +> terms. +> +> Thanks for your time. +> Bye. + +I/we will investigate this asap. Thanks for bringing this up. + +Greets, +Mike +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_ALb-1vQm6P3YAYx12TU2SQ1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVUHFkAAoJEJr0azAldxsxbNYP/jqxwacIBSYlAhaZEf62JFtt +ObBSEqUQfjljkolnzeaf2K4lBT6dl1x9VxGvIM5S8y9H/qpbFW+XWNHIR1BpdAsw +TgKuqb6giM+28V9pMaHuqwPwMQ7YnFsfSKf/YCEs0AvJJKsf5jSUbeHAJ/RHwC4Z +iGOj/KRqQ3tqIZJbzV2TCMNYnPm4sttcvKcRIOnBLDEVn1CRhlYX93v/pP87iPok +wvvnbPpM+D2oq1JjS6mR2JbVHspc9/ZGq5I100Cdo5r3Y3upunNyG4IRCL0ttBzg +nRjEiktViU/hhBB2xjYRaDsEpRFSsOeItLWss2PNYER2uIYuimvUsJzhtj7IwsV8 +4J8wlvn0uRZRiQwSWI/UaL1r1eqI4AlMA4hzDnWR7cBB4nTNE6YWzTpYYhsqNVfJ +jURTKIwGzDVVcpU5UZZhEtPcD5utkd8eYn4fA68pvkje3OFpLjfQnFWUcjIn5ywb +mejuW08cnsdfB0he+NTFXpK4p4wiu92pqul/EqPKW3Dm1w7FZXPHpIkN6VQ03LdY +kSXOOpITg8cHESsHlvyKIZITaLDrNAPB4RHkRxyWhRpZWgEM35FasE6hIRTbszQ9 +jpuXcrG11L7HbITi599U8ZAo4qK9OgWfzJEsBdQKXBHEqCjiv4GvdXvgJyR2Eukp +OIldtig78B5JgGKDLKjY +=G+R6 +-----END PGP SIGNATURE----- + +--=_ALb-1vQm6P3YAYx12TU2SQ1-- + + + + +From X2Go-ML-1@baur-itcs.de Mon May 11 09:21:13 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 09:21:13 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-9.4 required=4.0 tests=BAYES_00,DIGITS_LETTERS, + FOURLA,FVGT_m_MULTI_ODD,HAS_BUG_NUMBER,MONEY,PGPSIGNATURE,RCVD_IN_DNSWL_NONE, + RCVD_IN_MSPIKE_H2,STOCKLIKE autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 67; hammy, 149; neutral, 240; spammy, + 1. spammytokens:0.997-1--jjng hammytokens:0.000-+--sk:iqecbae, + 0.000-+--sk:iQEcBAE, 0.000-+--sha256, 0.000-+--SHA256, 0.000-+--H*UA:31.6.0 +Return-path: +Received: from mout.kundenserver.de ([212.227.17.10]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1Yrjtg-0003AA-Jy + for 784565@bugs.debian.org; Mon, 11 May 2015 09:21:13 +0000 +Received: from [192.168.0.171] ([78.43.125.82]) by mrelayeu.kundenserver.de + (mreue102) with ESMTPSA (Nemesis) id 0MBke7-1Z2Qat2SRz-00AqUz; Mon, 11 May + 2015 11:20:48 +0200 +Message-ID: <5550746E.1040707@baur-itcs.de> +Date: Mon, 11 May 2015 11:20:46 +0200 +From: Stefan Baur +User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 +MIME-Version: 1.0 +To: Mike Gabriel , + "Francesco Poli (wintermute)" , + 784565@bugs.debian.org +CC: opensource@gznianguan.com, Nito Martinez , + dktrkranz@debian.org, x2go-dev@lists.x2go.org +Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are + derived from non-free code +References: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> +In-Reply-To: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252 +Content-Transfer-Encoding: 8bit +X-Provags-ID: V03:K0:1hGpzbQ6YusgDW3LQNBHFEMw92BwlVIDUv6GGAN1bbqSykY6aoQ + ekoiYjWtMWz72yWg8Xd5/k/PEjXU7VxzZNBzxoyEx46ughI6kPZG/kS6r+aMsjf3KVXNi4U + da367A2ZowOeet1s6/LouBbblzzvjx7LF9SFO2TW4oakOyxhNCWEhVpveTV9FQPnavxZzhL + D5GN1YjxQGdnacFHIIuSQ== +X-UI-Out-Filterresults: notjunk:1; + +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +hi everyone, + +looking at the current homepage of DXPC, the following can be found in +their changelog http://www.vigor.nu/dxpc/CHANGES: + + +3.8.1 Release: + +[...] + +Changed license to BSD license. + +- -Stefan + +Am 11.05.2015 um 11:07 schrieb Mike Gabriel: +> Hi Francesco, Cc:ing a couple of people/groups being affected by +> the below. +> +> On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) +> wrote: +> +>> Package: nx-libs-lite Version: 3.5.0.27-1 Severity: serious +>> Justification: Policy 2.2.1 +>> +>> Hello and thanks for maintaining this package in Debian! +>> +>> I noticed that the debian/copyright states: +>> +>> [...] | Parts of this software are derived from DXPC project. +>> These copyright | notices apply to original DXPC code: | | +>> Redistribution and use in source and binary forms are permitted +>> provided | that the above copyright notice and this paragraph +>> are duplicated in all | such forms. | | THIS SOFTWARE IS +>> PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED | +>> WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES +>> OF | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | | +>> Copyright (c) 1995,1996 Brian Pane | Copyright (c) 1996,1997 +>> Zachary Vonler and Brian Pane | Copyright (c) 1999 Kevin Vigor +>> and Brian Pane | Copyright (c) 2000,2001 Gian Filippo Pinzari +>> and Brian Pane [...] +>> +>> This license lacks the permission to modify the DXPC code. Hence, +>> the original DXPC code does not appear to comply with the DFSG. +>> And the nx-libs-lite is in part derived from DXPC code. +>> +>> This basically means that nx-libs-lite includes parts which are +>> non-free (as they are derived from non-modifiable code) and are +>> also possibly legally undistributable (as they are +>> non-modifiable, but actually modified). The combination with the +>> rest of nx-libs-lite (which is GPL-licensed) may also be legally +>> undistributable (since the license with no permission to modify +>> is GPL-incompatible). +>> +>> +>> If there's anything I misunderstood, please clarify. +>> +>> Otherwise, please address this issue as soon as possible. The +>> copyright owners for the original DXPC code should be contacted +>> and persuaded to re-license under GPL-compatible terms. +>> +>> Thanks for your time. Bye. +> +> I/we will investigate this asap. Thanks for bringing this up. +> +> Greets, Mike +> +> +> _______________________________________________ x2go-dev mailing +> list x2go-dev@lists.x2go.org +> http://lists.x2go.org/listinfo/x2go-dev +> + + +- -- +BAUR-ITCS UG (haftungsbeschränkt) +Geschäftsführer: Stefan Baur +Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 +Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQEcBAEBCAAGBQJVUHRuAAoJEG7d9BjNvlEZsCYH/i0GArfIg0xNQ91srhMtMxVf +NcaQ5uOJLLZ+e0WOcRMm5Kprg9f6uKQNFRo1dv9NCFNxjrpdR/5/LMmeSYxafIQA +beoYbnuMMRBvcjoUN5ScGD/jjng/9VCiwviBVjUc6AhDebGjVone2OtaIXPoMELI +ClKnDShC41qQpSUgEESUYHiIIptkkmSrIJS6Ostsby5rhT1mApv7ulBqVvADUKCX +OtNZmG+O6Bvur63G2fBTrdQwZAed0+Q6/XlhfOkf5QNG4I9fd5KlrMDpSmO8w7Cm +h4rVnveLS5+0afZXs9sImhNW4I7Ah8zh5sAUFNCGXEuO60XRRysUO4i1WjRgnZw= +=sgsA +-----END PGP SIGNATURE----- + + + +From mike.gabriel@das-netzwerkteam.de Mon May 11 09:26:40 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 09:26:40 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 246; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Yrjyx-0003n8-Sv + for 784565@bugs.debian.org; Mon, 11 May 2015 09:26:40 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B938DE53; + Mon, 11 May 2015 11:26:37 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 564F73C20D; + Mon, 11 May 2015 11:26:37 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id zA86M1U+gj03; Mon, 11 May 2015 11:26:37 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id E81223BF5A; + Mon, 11 May 2015 11:26:36 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Mon, 11 May 2015 09:26:36 +0000 +Date: Mon, 11 May 2015 09:26:36 +0000 +Message-ID: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: "Francesco Poli (wintermute)" , + 784565@bugs.debian.org +Cc: x2go-dev@lists.x2go.org, nito.martinez@qindel.com, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_8dL5yJABYXdTfUqhzQkNVg1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_8dL5yJABYXdTfUqhzQkNVg1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Francesco, + +On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote: + +> Package: nx-libs-lite +> Version: 3.5.0.27-1 +> Severity: serious +> Justification: Policy 2.2.1 +> +> Hello and thanks for maintaining this package in Debian! +> +> I noticed that the debian/copyright states: +> +> [...] +> | Parts of this software are derived from DXPC project. These copyright +> | notices apply to original DXPC code: +> | +> | Redistribution and use in source and binary forms are permitted prov= +ided +> | that the above copyright notice and this paragraph are duplicated in= + all +> | such forms. +> | +> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI= +ED +> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +> | +> | Copyright (c) 1995,1996 Brian Pane +> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +> | Copyright (c) 1999 Kevin Vigor and Brian Pane +> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +> [...] +> +> This license lacks the permission to modify the DXPC code. +> Hence, the original DXPC code does not appear to comply with the +> DFSG. And the nx-libs-lite is in part derived from DXPC code. +> +> This basically means that nx-libs-lite includes parts which are +> non-free (as they are derived from non-modifiable code) and +> are also possibly legally undistributable (as they are non-modifiable, +> but actually modified). The combination with the rest of nx-libs-lite +> (which is GPL-licensed) may also be legally undistributable (since +> the license with no permission to modify is GPL-incompatible). +> +> +> If there's anything I misunderstood, please clarify. +> +> Otherwise, please address this issue as soon as possible. +> The copyright owners for the original DXPC code should be +> contacted and persuaded to re-license under GPL-compatible +> terms. +> +> Thanks for your time. +> Bye. + +Please follow-up with reading [1]. + +As it seems, dxpc has been long ago relicensed to BSD-2-clause (for=20=20 +v3.8.1=20in/around 2002). + +I have no exact clue, if NoMachine forked prior to that (if they quote=20= +=20 +the=20old licensing terms, then probably they did). + +However, how do you see the situation considering that upstream=20=20 +changed=20to BSD-2-clause a long time ago. What approach do you propose=20= +=20 +for=20nx-libs-lite to get the issue fully fixed? + +Mike + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028 + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_8dL5yJABYXdTfUqhzQkNVg1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVUHXMAAoJEJr0azAldxsxls4P/RyFv6ghemJhfrHNbAUEDmNz +kyY2Q4Jt6pIDXX3U3yThYCeyG1nVAwKJI2B/q7q/YWWdzea8RzTTXrj3DubYplOZ +PatD30FhlKdL+rsohmLFrA5dHVcwFbJA4GqrR2Y8y6NSLEtifYE4EDIDKLqvX6Dy +msvHyLl+3AXg2gR4Wmu9lOLC8MrPA3A7nwlw/wCa6kwf3i6FUsAB2nzUsj3yUX1f +4iXzcZhjGCJli9otPLlYFjPuc0HjwBgoOx5tEOL1hgVYP+yiQCw24LOKwHTnDogZ +ONio1VdS+VPUbhVTlBfYD29lSDO8pgBGk43325b7Bmo56Ica+HCr8TznMVASidvJ +dbAXZQOMuHxBofP9sm89q2lIXjPmJFWspG76OEM8dAIMKo87gQNuOTNPuOK0Zj8T +Ua+40fIc5/C7CyRgGO8wqb6dYjD4Q6HxbjSQJrlxsHdjKIozv+MXGV+if/bKSXM8 +tIAh9JzcwgYtRVlVQXCmpk+yP9DntWFs5WeOEGBqKZw+was5OSXSlpjukNn9us2a +bWj0E84zMlIu61KVZ8ot14OMIzgUxzymIt/LzWHKiiSezb20S22LJGBaKLxbqplp +9Gi8g9rEhjn5Pgpt9B3MlIWQTKhpAa71GCD9Okt9vhPsBiKE57fSjCYgQR83lhDy +kbLoUbByjixBA+TXUYM8 +=NW/2 +-----END PGP SIGNATURE----- + +--=_8dL5yJABYXdTfUqhzQkNVg1-- + + + + +From invernomuto@paranoici.org Mon May 11 19:37:54 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 19:37:54 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.5 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE, + SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 9; hammy, 150; neutral, 119; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from perdizione.investici.org ([94.23.50.208]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YrtWT-0004t9-Ty + for 784565@bugs.debian.org; Mon, 11 May 2015 19:37:54 +0000 +Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9C4DF120408; + Mon, 11 May 2015 19:37:46 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1431373066; + bh=vGWv2ZFJgWpWShHOYFcPN0r6i8IFunsxG5IJHqxpdbk=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=JQRMmMDPSZFkJ21FEn1TdsCco0YtUFBII0CsMLxdl3mxM5SzGN9flVttwlZ+5RrgR + a7/u/VUVPzv0ZcdVKwrC+Nq6imwd5hzUj80C+e6KLZQoovz6shmhuIdKtga2OIl7lm + cF0ONDqjdq0pI158Ws5hz0MiwJkzF6V5VbIEk3SY= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1YrtVj-0001Cl-NV; Mon, 11 May 2015 21:37:07 +0200 +Date: Mon, 11 May 2015 21:36:59 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +Message-Id: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +In-Reply-To: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH" + +--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: + +[...] +> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for =20 +> v3.8.1 in/around 2002). + +This is great news, indeed! + +>=20 +> I have no exact clue, if NoMachine forked prior to that (if they quote =20 +> the old licensing terms, then probably they did). + +Yep, it's plausible... + +>=20 +> However, how do you see the situation considering that upstream =20 +> changed to BSD-2-clause a long time ago. What approach do you propose =20 +> for nx-libs-lite to get the issue fully fixed? + +If the fork has been performed before the DXPC re-licensing (as it's +likely), I see two possible strategies: + + (A) someone gets in touch with DXPC copyright owners and asks them +whether the re-licensing may be considered retroactive (applicable to +older versions of DXPC); in case the answer is negative, DXPC copyright +owners should be persuaded to make the re-licensing retroactive + + (B) nx-libs-lite upstream developers re-fork from scratch, basing the +new code on a BSD-licensed version of DXPC (I suspect this may turn out +to be somewhat painful...) + + +Obviously, the optimal solution is (A). I hope it may work... + +Thanks for your time and for your prompt and kind replies. + + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVUQTgAAoJED4cJ+Efab/+Mx4QAMLmPwqnPYyI0Bl6sZgxP3nA +Yfrf7m2+swTrNz3M2xNepx1KoylRNlz2DiCuG7QWABNupSK60ACtIuAvWIAPSYNt +wlHDRGiVrpCKBKzB4N3zjB0MN1VELhdWqrap8Yw5nnwohJ2jXoAUaqorwEba6YBg +VK1BsGvlqcwSYt8eWt+ugpaRR43DbZTCpAvBn3t9DdYe8LwtlJDTCatbJfovlTJ9 +P19TNbwxiEoj8uWbmpOO/kLvvMed0avTEsvgAROQKF/dnWCnB1dh5QGd06IHdAY7 +KfnoZc4HUM8BB/ylWsaV13Cd8UA/2B2FKp3xbab3ry8gWeMe6dnk/pFa+pv6TGeT +I+6VxWOMT/hc4AwBOl+R7yqp2AkcNO+KP2o5i04+yENcbgrGxyCQU2aVsHkJsVYi +N5myXypSZY3tF6TnAm/UYP2GgiMCo0FXptwVoLiGSJkBw0tn13I25pYSqjYZlq4q +4RQYuTEHEkV16tCdEdy+DSuI0GsABYUkY3a3A3TLj9LjiPPEDwLOxHjZlLbeyXP+ +xtmC3d82YvMmLXUiqItuhiBYjCRFq8piGGCDRX7wp1B+t6xHUcR8UV5O4s554iMX ++r2m1mLzM285PoKwP/Smd6BXU5RfhT4svmxvaMSSvADNo8X4ddNd2Hiq/Gib2ftH +mYKFpBE7IMwQqfrOpAW5 +=Bt09 +-----END PGP SIGNATURE----- + +--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH-- + + + +From mike.gabriel@das-netzwerkteam.de Tue May 12 03:59:27 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 03:59:27 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 21; hammy, 150; neutral, 206; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Ys1Lq-0000j4-Sf + for 784565@bugs.debian.org; Tue, 12 May 2015 03:59:27 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B4F9BAA3; + Tue, 12 May 2015 05:59:21 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 299233C21D; + Tue, 12 May 2015 05:59:21 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id G2j6l6YtFs0q; Tue, 12 May 2015 05:59:21 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id C67023BF5A; + Tue, 12 May 2015 05:59:20 +0200 (CEST) +Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de + [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Tue, 12 May 2015 03:59:20 +0000 +Date: Tue, 12 May 2015 03:59:20 +0000 +Message-ID: <20150512035920.Horde.JnI2DWx-AAFvzpbQFqakJw3@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Francesco Poli +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 91.59.146.91 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_kYZkQgyfaSLUTLVIkzgq8w1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_kYZkQgyfaSLUTLVIkzgq8w1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Francesco, + +On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: + +> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +> +> [...] +>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +>> v3.8.1 in/around 2002). +> +> This is great news, indeed! +> +>> +>> I have no exact clue, if NoMachine forked prior to that (if they quote +>> the old licensing terms, then probably they did). +> +> Yep, it's plausible... +> +>> +>> However, how do you see the situation considering that upstream +>> changed to BSD-2-clause a long time ago. What approach do you propose +>> for nx-libs-lite to get the issue fully fixed? +> +> If the fork has been performed before the DXPC re-licensing (as it's +> likely), I see two possible strategies: +> +> (A) someone gets in touch with DXPC copyright owners and asks them +> whether the re-licensing may be considered retroactive (applicable to +> older versions of DXPC); in case the answer is negative, DXPC copyright +> owners should be persuaded to make the re-licensing retroactive + +This is the way to go, I will pull in Kevin Vigor (the upstream author=20= +=20 +of=20DXPC) into this thread with my next email. + +> (B) nx-libs-lite upstream developers re-fork from scratch, basing the +> new code on a BSD-licensed version of DXPC (I suspect this may turn out +> to be somewhat painful...) + +Yeah, indeed painful. + +> Obviously, the optimal solution is (A). I hope it may work... +> +> Thanks for your time and for your prompt and kind replies. + +Also, Michael DePaulo, one of the upstream NX maintainers noted that=20=20 +DXPC=20simply used a previous version of the BSD license, see [1]. The=20= +=20 +weakness=20of that ancient license template is that modification is not=20= +=20 +explictily=20allowed, but neither forbidden. + +I think, regarding the historical usage of the BSD license predecessor=20= +=20 +and=20the switch to BSD-2-clause should be fine already (I am not a=20=20 +lawyer,=20though). I will contact DXPC upstream nonetheless and ask for=20= +=20 +a=20statement. + +Greets, +Mike + +[1] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_kYZkQgyfaSLUTLVIkzgq8w1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIbBAABAgAGBQJVUXqYAAoJEJr0azAldxsxYVAP+Pg4A2zg6TEs+vk/mknbLwV2 +dOv/tQiarKfb6JJRcm1j6rzGBhGzO4iwj/Uk8wmbFvIJgxs6mM93kfOPa0lJYM1N +D0YcKPPsHqgxcyVW8pIyawhnW5IsIDSaugjsandx1hbfl+J5SBCAtSovhz5F+Fkf +fs1wvgYcGKtWGNTxV5Qy48EnzSzAVz2r4GKBYUdRiCNpXtl/M8jJFIfm/cmJ7PJq +ycY8Diu6x3mVvPdvap/0pOOY0uqg256XX7dcFJUtTNZoai4oGOuwR1o4g9jztyd/ +4JJ2E1MigAjGSYPpTnQGhORA86yDLQrk/NlLG/2/J8meG7Nsky6xmf3zBhuG/0G0 +3TZYQcoFrFS3EWQs0uKiGKGylchODCfXHZgF0y5NT5iqr4DMT51AlUeQl3MWhxf8 +j8OMjK86jsPMrSjL0l4uYbs+znMdlVpgjBSYsKoXg3tIc3WJpj77qyPUbfwO8hys +5Q2j4lDaGV5NAnSmZ//p9lPwRu8oAMwSkrMkRTaJwLVhcmDzgoujZEpEPj64lIEy +HD3p/5dSJF+RsYT6286JkWAZm+XvXeFpEqGZ7xAVsrYSY1qFm3g0se1oHxxcVWyN +PEsQBOt8WXgYmtz7RLaBDbBQVMmeRMxbPCkC1xCHCU+Vq3y9dW/3TyOW4Oz1YoZR +3YATO+YehUKVdM5teyg= +=884K +-----END PGP SIGNATURE----- + +--=_kYZkQgyfaSLUTLVIkzgq8w1-- + + + + +From mike.gabriel@das-netzwerkteam.de Tue May 12 04:46:43 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 04:46:44 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 27; hammy, 149; neutral, 375; spammy, + 1. spammytokens:0.998-1--arctica hammytokens:0.000-+--IIRC, + 0.000-+--H*c:pgp-signature, 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, + 0.000-+--H*c:signed +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Ys25b-0004lf-4r + for 784565@bugs.debian.org; Tue, 12 May 2015 04:46:43 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 6AB7617F5; + Tue, 12 May 2015 06:46:40 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 71D923BC0D; + Tue, 12 May 2015 06:46:38 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id TYvbPGLabTH7; Tue, 12 May 2015 06:46:38 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 0669F3BA08; + Tue, 12 May 2015 06:46:38 +0200 (CEST) +Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de + [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Tue, 12 May 2015 04:46:37 +0000 +Date: Tue, 12 May 2015 04:46:37 +0000 +Message-ID: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Kevin Vigor +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli + +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 91.59.146.91 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_9zX_XixEpAdR4NT64zJguA1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_9zX_XixEpAdR4NT64zJguA1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Dear Kevin, + +(I Cc: several people involved in this, also the X2Go development=20=20 +mailing=20list...) + +[If you feel unconfortable with discussing the details / the impact of=20= +=20 +the=20below in public, feel free to answer to me directly first with=20=20 +questions=20and concerns, before answering to all people who are listed=20= +=20 +in=20Cc:.] + +Someone from the Debian legal team recently brought up a license issue=20= +=20 +discovered=20in nx-libs 3.x series. + +TL;DR; Suggested by Francesco Poli from the Debian legal team: """ +(A) someone gets in touch with DXPC copyright owners and asks them +whether the re-licensing [in 2002] may be considered retroactive=20=20 +(applicable=20to +older versions of DXPC); in case the answer is negative, DXPC copyright +owners should be persuaded to make the re-licensing retroactive +""" + +The person contacting you about the above question is me. Mike=20=20 +Gabriel,=20Debian Developer and one of the current upstream maintainers=20= +=20 +of=20nx-libs 3.x (previously also know as "NX redistributed" for X2Go)=20= +=20 +[1]. + +This=20issue requires some time of reading from you and (hopefully) a=20=20 +public=20statement, that the original DXPC code can be considered as=20=20 +BSD-2-clause=20(the current license) also for released versions prior=20=20 +2002=20when the ancient BSD license template [2] was still shipped with=20= +=20 +DXPC. + +For=20a complete follow-up, please check Debian bug #784565 [3]. + +We are aware that NoMachine forked DXPC at some early stage around the=20= +=20 +year=202000 and wrote their own commercial product around it. Obviously,=20= +=20 +this=20fork happened before 2002 (i.e., before DXPC release 3.8.1), as=20= +=20 +libxcomp3=20in NoMachine's NX ships the previously used BSD license=20=20 +template.=20I am not sure, if that fork was easy for you or actually a=20= +=20 +nuisance.=20I may only guess at this point. I'd be happy to know more=20=20 +(maybe=20not in this mail thread, though). + +NoMachine has stopped publishing NXv3 updates a couple of years ago=20=20 +(2011=20IIRC), now. The maintenance has been moved into the hands of the=20= +=20 +currently=20available FLOSS projects "X2Go", "Arctica Project" [NEW] and=20= +=20 +"TheQVD".=20Some of us are running a business model on top of that=20=20 +(consultancy,=20support contracts, feature development contracts), some=20= +=20 +of=20us spend a lot of their free time on improving / maintaining=20=20 +nx-libs=20(as we call NoMachine's NXv3 at the moment). + +To outline the impact of my mail clearly: If you say that it was not=20=20 +legal=20by NoMachine to fork DXPC at the given time (before 2002), then=20= +=20 +all=20FLOSS remote desktop / remote application would be in real=20=20 +trouble,=20because then the core component of their software projects=20=20 +could=20not be considered as free (as in DFSG, Debian free software=20=20 +guidelines[4])=20anymore. Also the code changes originally performed by=20= +=20 +NoMachine=20might have been illegal in the first place. All current=20=20 +maintenance=20activities and also planned future development on nx-libs=20= +=20 +would=20become questionable. + +Thus, I hope you can chime in on this: Dear developers of nx-libs,=20=20 +please=20assume the BSD-2-license as retroactive and applicable to DXPC=20= +=20 +version=20earlier than 3.8.1. As the copyright holder, I agree with=20=20 +modifications=20of code bases that originate before the change to=20=20 +BSD-2-clause=20license got introduced in 3.8.1 of DXPC. + +And... I will bring up that question later (but it is burning under my=20= +=20 +nails)...=20Be sure: The nx-libs maintainers would be happy to have the=20= +=20 +original=20DXPC author on the nx-libs developer team. But I will bring=20= +=20 +up=20that question later (when this very issue is settled). ;-) + +Greets, +Mike + +[1] https://github.com/ArcticaProject/nx-libs +[2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license +[3] http://bugs.debian.org/784565 +[4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines + +On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: + +> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +> +> [...] +>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +>> v3.8.1 in/around 2002). +> +> This is great news, indeed! +> +>> +>> I have no exact clue, if NoMachine forked prior to that (if they quote +>> the old licensing terms, then probably they did). +> +> Yep, it's plausible... +> +>> +>> However, how do you see the situation considering that upstream +>> changed to BSD-2-clause a long time ago. What approach do you propose +>> for nx-libs-lite to get the issue fully fixed? +> +> If the fork has been performed before the DXPC re-licensing (as it's +> likely), I see two possible strategies: +> +> (A) someone gets in touch with DXPC copyright owners and asks them +> whether the re-licensing may be considered retroactive (applicable to +> older versions of DXPC); in case the answer is negative, DXPC copyright +> owners should be persuaded to make the re-licensing retroactive +> +> (B) nx-libs-lite upstream developers re-fork from scratch, basing the +> new code on a BSD-licensed version of DXPC (I suspect this may turn out +> to be somewhat painful...) +> +> +> Obviously, the optimal solution is (A). I hope it may work... +> +> Thanks for your time and for your prompt and kind replies. + + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_9zX_XixEpAdR4NT64zJguA1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVUYWtAAoJEJr0azAldxsxEMcP/0mjNHW4k/IiNjSbrm1j7pIQ +k6yVqJ8cMW/71H0/VLuzS6roL02JAXMzToMzAcbPGqeV5rjhLDJNjcOuuADhb8HI +Izisai5ABzHiclnITalVTsF4i5+MsTXI+6eNez9sv3Es8pwFuLkvAlqKsheO33mP +dz83ZqDmCGKcCCbZmhbhGHdhScS8GMSyU7cBm6xu0TMh8rOtcECBG/+wfohVeR2I +vy0GeYR0ZF0yIxcBGXYvjiocStjsxaqnD9QCt8JAfewVO3jY/Ye6DIEI92moS/Nz +6iTA9GspZyYNqL7QsOraG2HF6TmIfK5xBaUjDrLH+HfKm2K6Dxp0wo6Y6VDY9mIi +svCFCoIQ3RBihcsOp7k1v1eZl+WJJ2XXilQr3SrtlOiZAK0/FtbkUwhk4DLu5o3R +CBHwy6F14szo8F4ChFGqqbOlODGJOiCONfOShRZQLgAgHciRirrgTKF4b25cspNU +v7ag47K4WN3YNtkA5DO5Bj2NKAP8oWyvlTpO0uIuUZo/pj+7sHnWG8QSDJiyunVt +3VxMLM4h3C02k+EtR2uvtKKqVFf+JgiwRGDhFx2ldUwWFg0+3IeWKuuTxRt6NcR+ +ZdDN2tR0PWpe4v+jsUqSD3YJNRoK1oyj9kMYriTkHTvhr/XcKr5KYNsWMC6nvqps +JDhKCpypB1iR9N13NpeX +=HDe/ +-----END PGP SIGNATURE----- + +--=_9zX_XixEpAdR4NT64zJguA1-- + + + + +From kevin@vigor.nu Tue May 12 15:07:38 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 15:07:38 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 34; hammy, 150; neutral, 395; spammy, + 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*f:sk:2015050, + 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, 0.000-+--H*u:x86_64 +Return-path: +Received: from gateway30.websitewelcome.com ([192.185.184.48]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YsBmT-0007o6-Qg + for 784565@bugs.debian.org; Tue, 12 May 2015 15:07:38 +0000 +Received: by gateway30.websitewelcome.com (Postfix, from userid 500) + id 69AEB573DA20; Tue, 12 May 2015 09:55:02 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway30.websitewelcome.com (Postfix) with ESMTP id 677E2573DA04 + for <784565@bugs.debian.org>; Tue, 12 May 2015 09:55:02 -0500 (CDT) +Received: from [63.158.132.10] (port=46206 helo=[10.50.3.84]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YsBaH-0003xr-Ii; Tue, 12 May 2015 09:55:01 -0500 +Message-ID: <55521444.9090407@vigor.nu> +Date: Tue, 12 May 2015 08:55:00 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 +MIME-Version: 1.0 +To: Mike Gabriel +CC: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com, + Francesco Poli +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> +In-Reply-To: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 63.158.132.10 +X-Exim-ID: 1YsBaH-0003xr-Ii +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:46206 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 2 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 379 seconds by postgrey-1.34 at buxtehude; Tue, 12 May 2015 15:07:37 UTC + +Hi Mike, et al, + + I am not the original author of dxpc, that being Brian Pane. However, I took over maintenance circa 1999 and am still the primary maintainer (though the project has effectively been dead for most of a decade now). + + As you are aware, when I inherited the code, it was licensed under a variant of the BSD license that did not include the 'with modification' clause. To the best of my recollection, somebody from the FSF contacted me circa 2001 regarding this and as a result, subsequent releases were done under a standard 2-clause BSD license with the modification clause. Again, to the best of my recollection, I contacted Brian about this change and he offered no objection. + + Further, I recall distinctly that NoMachine contacted me and explicitly asked permission before including DXPC code in NX, which I happily granted with no new conditions beyond the BSD license already in play. + + It is possible, though by no means certain, that I could dig up ancient email to corroborate this account if necessary. However, I am more than willing to publicly state that I believe NoMachine's use of DXPC code to be both legal and ethical, and that my intent when changing the license to 2-clause BSD was simply to clarity the existing intent and that it ought therefore be considered retroactive. + + Yours, + Kevin Vigor + +On 05/11/15 22:46, Mike Gabriel wrote: +> Dear Kevin, +> +> (I Cc: several people involved in this, also the X2Go development mailing list...) +> +> [If you feel unconfortable with discussing the details / the impact of the below in public, feel free to answer to me directly first with questions and concerns, before answering to all people who are listed in Cc:.] +> +> Someone from the Debian legal team recently brought up a license issue discovered in nx-libs 3.x series. +> +> TL;DR; Suggested by Francesco Poli from the Debian legal team: """ +> (A) someone gets in touch with DXPC copyright owners and asks them +> whether the re-licensing [in 2002] may be considered retroactive (applicable to +> older versions of DXPC); in case the answer is negative, DXPC copyright +> owners should be persuaded to make the re-licensing retroactive +> """ +> +> The person contacting you about the above question is me. Mike Gabriel, Debian Developer and one of the current upstream maintainers of nx-libs 3.x (previously also know as "NX redistributed" for X2Go) [1]. +> +> This issue requires some time of reading from you and (hopefully) a public statement, that the original DXPC code can be considered as BSD-2-clause (the current license) also for released versions prior 2002 when the ancient BSD license template [2] was still shipped with DXPC. +> +> For a complete follow-up, please check Debian bug #784565 [3]. +> +> We are aware that NoMachine forked DXPC at some early stage around the year 2000 and wrote their own commercial product around it. Obviously, this fork happened before 2002 (i.e., before DXPC release 3.8.1), as libxcomp3 in NoMachine's NX ships the previously used BSD license template. I am not sure, if that fork was easy for you or actually a nuisance. I may only guess at this point. I'd be happy to know more (maybe not in this mail thread, though). +> +> NoMachine has stopped publishing NXv3 updates a couple of years ago (2011 IIRC), now. The maintenance has been moved into the hands of the currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and "TheQVD". Some of us are running a business model on top of that (consultancy, support contracts, feature development contracts), some of us spend a lot of their free time on improving / maintaining nx-libs (as we call NoMachine's NXv3 at the moment). +> +> To outline the impact of my mail clearly: If you say that it was not legal by NoMachine to fork DXPC at the given time (before 2002), then all FLOSS remote desktop / remote application would be in real trouble, because then the core component of their software projects could not be considered as free (as in DFSG, Debian free software guidelines[4]) anymore. Also the code changes originally performed by NoMachine might have been illegal in the first place. All current maintenance activities and also planned future development on nx-libs would become questionable. +> +> Thus, I hope you can chime in on this: Dear developers of nx-libs, please assume the BSD-2-license as retroactive and applicable to DXPC version earlier than 3.8.1. As the copyright holder, I agree with modifications of code bases that originate before the change to BSD-2-clause license got introduced in 3.8.1 of DXPC. +> +> And... I will bring up that question later (but it is burning under my nails)... Be sure: The nx-libs maintainers would be happy to have the original DXPC author on the nx-libs developer team. But I will bring up that question later (when this very issue is settled). ;-) +> +> Greets, +> Mike +> +> [1] https://github.com/ArcticaProject/nx-libs +> [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license +> [3] http://bugs.debian.org/784565 +> [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines +> +> On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: +> +>> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +>> +>> [...] +>>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +>>> v3.8.1 in/around 2002). +>> +>> This is great news, indeed! +>> +>>> +>>> I have no exact clue, if NoMachine forked prior to that (if they quote +>>> the old licensing terms, then probably they did). +>> +>> Yep, it's plausible... +>> +>>> +>>> However, how do you see the situation considering that upstream +>>> changed to BSD-2-clause a long time ago. What approach do you propose +>>> for nx-libs-lite to get the issue fully fixed? +>> +>> If the fork has been performed before the DXPC re-licensing (as it's +>> likely), I see two possible strategies: +>> +>> (A) someone gets in touch with DXPC copyright owners and asks them +>> whether the re-licensing may be considered retroactive (applicable to +>> older versions of DXPC); in case the answer is negative, DXPC copyright +>> owners should be persuaded to make the re-licensing retroactive +>> +>> (B) nx-libs-lite upstream developers re-fork from scratch, basing the +>> new code on a BSD-licensed version of DXPC (I suspect this may turn out +>> to be somewhat painful...) +>> +>> +>> Obviously, the optimal solution is (A). I hope it may work... +>> +>> Thanks for your time and for your prompt and kind replies. +> +> + + + + +From mike.gabriel@das-netzwerkteam.de Tue May 12 15:42:13 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 15:42:13 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 28; hammy, 150; neutral, 444; spammy, + 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*RU:sk:grimnir, + 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98, + 0.000-+--H*RU:88.198.48.199 +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YsCJx-0003Fj-12 + for 784565@bugs.debian.org; Tue, 12 May 2015 15:42:13 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AB2291F6 + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 0899C3BFDA + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id tKjFu527nUiq for <784565@bugs.debian.org>; + Tue, 12 May 2015 17:42:07 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 558633C022 + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 1F4393BFDA + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST) +Received: from [10.215.43.89] (unknown [46.115.20.43]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 867C23BA87; + Tue, 12 May 2015 17:42:02 +0200 (CEST) +From: Mike Gabriel +Reply-To: Mike Gabriel +To: Kevin Vigor +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +X-Mailer: Modest 3.2 +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> +In-Reply-To: <55521444.9090407@vigor.nu> +Content-Type: text/plain; charset=utf-8 +Content-ID: <1431445315.4712.6.camel@Nokia-N900> +Date: Tue, 12 May 2015 17:41:55 +0200 +Message-Id: <1431445315.4712.7.camel@Nokia-N900> +Mime-Version: 1.0 +Content-Transfer-Encoding: 8bit + +Hi Kevin, + +thanks for your feedback. Let us wait for Francesco, our expert on license issues, and see what he thinks about your feedback. + +Thank you very much for providing info and sharing pieces of nx-libs's history. + +As you sent your reply to the Debian bug tracker already, this will public statement enough, I guess. + +Thanks a lot, +Mike + +-- + +DAS-NETZWERKTEAM +mike gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976148 + +GnuPG Key ID 0x25771B13 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + + +----- Original message ----- +> Hi Mike, et al, +> +>        I am not the original author of dxpc, that being Brian Pane. +> However, I took over maintenance circa 1999 and am still the primary +> maintainer (though the project has effectively been dead for most of a +> decade now). +> +>        As you are aware, when I inherited the code, it was licensed under a +> variant of the BSD license that did not include the 'with modification' +> clause. To the best of my recollection, somebody from the FSF contacted +> me circa 2001 regarding this and as a result, subsequent releases were +> done under a standard 2-clause BSD license with the modification clause. +> Again, to the best of my recollection, I contacted Brian about this +> change and he offered no objection. +> +>        Further, I recall distinctly that NoMachine contacted me and +> explicitly asked permission before including DXPC code in NX, which I +> happily granted with no new conditions beyond the BSD license already in +> play. +> +>        It is possible, though by no means certain, that I could dig up +> ancient email to corroborate this account if necessary. However, I am +> more than willing to publicly state that I believe NoMachine's use of +> DXPC code to be both legal and ethical, and that my intent when changing +> the license to 2-clause BSD was simply to clarity the existing intent +> and that it ought therefore be considered retroactive. +> +>        Yours, +>              Kevin Vigor +> +> On 05/11/15 22:46, Mike Gabriel wrote: +> > Dear Kevin, +> > +> > (I Cc: several people involved in this, also the X2Go development +> > mailing list...) +> > +> > [If you feel unconfortable with discussing the details / the impact of +> > the below in public, feel free to answer to me directly first with +> > questions and concerns, before answering to all people who are listed +> > in Cc:.] +> > +> > Someone from the Debian legal team recently brought up a license issue +> > discovered in nx-libs 3.x series. +> > +> > TL;DR; Suggested by Francesco Poli from the Debian legal team: """ +> > (A) someone gets in touch with DXPC copyright owners and asks them +> > whether the re-licensing [in 2002] may be considered retroactive +> > (applicable to older versions of DXPC); in case the answer is +> > negative, DXPC copyright owners should be persuaded to make the +> > re-licensing retroactive """ +> > +> > The person contacting you about the above question is me. Mike +> > Gabriel, Debian Developer and one of the current upstream maintainers +> > of nx-libs 3.x (previously also know as  "NX redistributed" for X2Go) +> > [1]. +> > +> > This issue requires some time of reading from you and (hopefully) a +> > public statement, that the original DXPC code can be considered as +> > BSD-2-clause (the current license) also for released versions prior +> > 2002 when the ancient BSD license template [2] was still shipped with +> > DXPC. +> > +> > For a complete follow-up, please check Debian bug #784565 [3]. +> > +> > We are aware that NoMachine forked DXPC at some early stage around the +> > year 2000 and wrote their own commercial product around it. Obviously, +> > this fork happened before 2002 (i.e., before DXPC release 3.8.1), as +> > libxcomp3 in NoMachine's NX ships the previously used BSD license +> > template. I am not sure, if that fork was easy for you or actually a +> > nuisance. I may only guess at this point. I'd be happy to know more +> > (maybe not in this mail thread, though). +> > +> > NoMachine has stopped publishing NXv3 updates a couple of years ago +> > (2011 IIRC), now. The maintenance has been moved into the hands of the +> > currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and +> > "TheQVD". Some of us are running a business model on top of that +> > (consultancy, support contracts, feature development contracts), some +> > of us spend a lot of their free time on improving / maintaining +> > nx-libs (as we call NoMachine's NXv3 at the moment). +> > +> > To outline the impact of my mail clearly: If you say that it was not +> > legal by NoMachine to fork DXPC at the given time (before 2002), then +> > all FLOSS remote desktop / remote application would be in real +> > trouble, because then the core component of their software projects +> > could not be considered as free (as in DFSG, Debian free software +> > guidelines[4]) anymore. Also the code changes originally performed by +> > NoMachine might have been illegal in the first place. All current +> > maintenance activities and also planned future development on nx-libs +> > would become questionable. +> > +> > Thus, I hope you can chime in on this: Dear developers of nx-libs, +> > please assume the BSD-2-license as retroactive and applicable to DXPC +> > version earlier than 3.8.1. As the copyright holder, I agree with +> > modifications of code bases that originate before the change to +> > BSD-2-clause license got introduced in 3.8.1 of DXPC. +> > +> > And... I will bring up that question later (but it is burning under my +> > nails)... Be sure: The nx-libs maintainers would be happy to have the +> > original DXPC author on the nx-libs developer team. But I will bring +> > up that question later (when this very issue is settled). ;-) +> > +> > Greets, +> > Mike +> > +> > [1] https://github.com/ArcticaProject/nx-libs +> > [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license +> > [3] http://bugs.debian.org/784565 +> > [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines +> > +> > On  Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: +> > +> > > On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +> > > +> > > [...] +> > > > As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +> > > > v3.8.1 in/around 2002). +> > > +> > > This is great news, indeed! +> > > +> > > > +> > > > I have no exact clue, if NoMachine forked prior to that (if they +> > > > quote the old licensing terms, then probably they did). +> > > +> > > Yep, it's plausible... +> > > +> > > > +> > > > However, how do you see the situation considering that upstream +> > > > changed to BSD-2-clause a long time ago. What approach do you +> > > > propose for nx-libs-lite to get the issue fully fixed? +> > > +> > > If the fork has been performed before the DXPC re-licensing (as it's +> > > likely), I see two possible strategies: +> > > +> > > (A) someone gets in touch with DXPC copyright owners and asks them +> > > whether the re-licensing may be considered retroactive (applicable to +> > > older versions of DXPC); in case the answer is negative, DXPC +> > > copyright owners should be persuaded to make the re-licensing +> > > retroactive +> > > +> > > (B) nx-libs-lite upstream developers re-fork from scratch, basing the +> > > new code on a BSD-licensed version of DXPC (I suspect this may turn +> > > out to be somewhat painful...) +> > > +> > > +> > > Obviously, the optimal solution is (A). I hope it may work... +> > > +> > > Thanks for your time and for your prompt and kind replies. +> > +> > +> + + + + +From invernomuto@paranoici.org Tue May 12 21:42:01 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 21:42:01 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, + SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 119; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from perdizione.investici.org ([94.23.50.208]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YsHw8-0008Hh-DT + for 784565@bugs.debian.org; Tue, 12 May 2015 21:42:01 +0000 +Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9E73512097E; + Tue, 12 May 2015 21:41:55 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1431466915; + bh=w0yVuJLtWq+0cj6zbjNb4THkJk0Xq3N9SMQ1+u0ZZnk=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=RRQcr33uMGnEaupGoWl0nXectE2hPbUghdie73/SnVp5Ax5QWxqK90ic5VPUE7RsN + RsJ6HcYccQEzYLzm37W24u9eQZFa+Oc1CZaJBvFgOg9MAvh6tHaLUgOuFGkYXhn5R0 + Nlq5WHCpVKi9YvGfj/aAtfe84CJPt2HIKAqPXb5w= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1YsHvP-00019Q-D1; Tue, 12 May 2015 23:41:15 +0200 +Date: Tue, 12 May 2015 23:40:48 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: Kevin Vigor , 784565@bugs.debian.org, + x2go-dev@lists.x2go.org, nito.martinez@qindel.com, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +Message-Id: <20150512234048.054319a449ffadcf87577425@paranoici.org> +In-Reply-To: <1431445315.4712.7.camel@Nokia-N900> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> + <1431445315.4712.7.camel@Nokia-N900> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk" + +--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: + +> Hi Kevin, + +Hello Mike, hello Kevin, hello to all the other recipients. + +First of all, I wish to express my gratitude to Kevin for his prompt, +kind and generous response. + +>=20 +> thanks for your feedback. Let us wait for Francesco, our expert on licens= +e issues, and see what he thinks about your feedback. + +I think that this is an important first step to solve this issue for +the best. +Kevin Vigor is one of the copyright owners of the code that was forked +before the re-licensing. +We now know that he intended the re-licensing to be retroactive and +this is really good. + +I think that now it would be useful to ascertain that the other +copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are +also OK with this interpretation of the re-licensing operation. + +Maybe Kevin is able to dig the original conversations (assuming they +were carried on by e-mail or similar archived means) or otherwise to +get in touch with them and check? Or, alternatively, Kevin could help +Mike to get in touch with them? + +I hope everything may be settled for the best soon. +Thanks a lot to everyone involved. + + + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVUnNlAAoJED4cJ+Efab/+CBQP/33+SjLcIk2VZbjeeyCxhCAo +kmgg9BDtqce1Dy22ONotywDNQ187suqlmkEa6yAAdglB0M3CYMFKSIsZHn2C0uGb +B45HnzXE7PJd/j/WOXuCIvDe70iGJ7Ubk16DCjyRuKsF70cr2DcsbieiwZh8Wi4v +GXNOxpm5Nv2bs1vQnRzYFc7GLWny3eCqcWF23XisqvxQecOHopoGWr9F6NuS5ymz +NQ8Z7eanEPaqE86GYFIqJyt9Wcz+fM2r1d/IrNmYaTVBJPrqndQKnXJAViwYhtaM +V8+CIKDuttcIYMto9dyE9+vr6wgtDyepVatQIHyVA2LpzR9jub8MGelXMdA7em3i +/H3gz3H/tQti3T3HoHu+4CSAEWsXdtkHq2RWU9k3+HQuWB00z7WDr404xzs7k2Wg +h6VR9c+VjV92KnMvDqWjE4VBYjrn6Ag5u/0Cf6HMx5RAGFNL8ROjOGbQSskfUogo +GnWX2b8yLIe8ojg3AVowWV2oKVlWzsjZVHH9lp0M/lqGmnPVEJk0mh6DKbZPjK8O +P2dpZ8IlSa18R2CvMWnf7HXKRR/s2ef7rUmBkT2sFnTwsT5PeDSU45/7ZuWbNIpw +8/Y5q38c36Axeng1J0OCR8YX47dH0PubVnBzYEqoun3GucR1jifOiNzWLyM2ZxNe +0JSSqn5ddFC8/iuGpFDI +=ZqCl +-----END PGP SIGNATURE----- + +--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk-- + + + +From niels@thykier.net Wed May 13 16:04:21 2015 +Received: (at control) by bugs.debian.org; 13 May 2015 16:04:21 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-3.9 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4, + RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 6; hammy, 61; neutral, 18; spammy, 0. + spammytokens: hammytokens:0.000-+--H*u:devscripts, 0.000-+--H*u:bts, + 0.000-+--H*UA:bts, 0.000-+--H*UA:devscripts, 0.000-+--H*MI:thykier +Return-path: +Received: from mailrelay11.public.one.com ([195.47.247.189]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YsZ8u-0002Ch-RD + for control@bugs.debian.org; Wed, 13 May 2015 16:04:21 +0000 +X-HalOne-Cookie: 4652f81fa62fa9da4dd9249e7484054c41bc782d +X-HalOne-ID: b22b9887-f989-11e4-950a-b82a72d06996 +DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; + d=thykier.net; s=20140924; + h=from:subject:date:message-id:to; + bh=EysymZxJFEX8N6fIBUIaFmFP7WdtVLf5PrmWzWVb22Y=; + b=Ur7nNbvtl3pu7O1YKIHwSM8MHIW+JPWJKM1GBE23FB4sLbENnBM2V0rmU5++qyolEv7hHAhvKkWFO + lH4tbbHCyoYVdUE76nRT/1HEb5/X+pxjrsC1qTXWWXkekbuLNcDwIl0+WdVVEd5B4LYpW7igVWi4AH + XncGXx/MNYDQvFiU= +Received: from thykier.net (unknown [80.62.116.219]) + by smtpfilter3.public.one.com (Halon Mail Gateway) with ESMTPSA + for ; Wed, 13 May 2015 16:04:12 +0000 (GMT) +Received: by thykier.net (Postfix, from userid 1000) + id 985EB4BB; Wed, 13 May 2015 18:04:10 +0200 (CEST) +From: Niels Thykier +To: control@bugs.debian.org +Subject: tagging 784565 +Date: Wed, 13 May 2015 18:04:10 +0200 +User-Agent: devscripts bts/2.15.4 +Message-ID: <1431533050-371-bts-niels@thykier.net> +Delivered-To: control@bugs.debian.org + +# distributable +tags 784565 + jessie-ignore +thanks + + + + +From mike.gabriel@das-netzwerkteam.de Thu May 14 04:58:16 2015 +Received: (at 784565) by bugs.debian.org; 14 May 2015 04:58:16 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 22; hammy, 150; neutral, 339; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YslDr-0000NV-Ur + for 784565@bugs.debian.org; Thu, 14 May 2015 04:58:16 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id A03C82B5; + Thu, 14 May 2015 06:58:11 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id E89E93BD2E; + Thu, 14 May 2015 06:58:10 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 5m6G8sqwjlfJ; Thu, 14 May 2015 06:58:10 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 5713E3BB3A; + Thu, 14 May 2015 06:58:10 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 14 May 2015 04:58:10 +0000 +Date: Thu, 14 May 2015 04:58:09 +0000 +Message-ID: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Francesco Poli +Cc: Kevin Vigor , 784565@bugs.debian.org, + x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> +In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_SHoEHYV8bfary9lJHYP1lQ1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_SHoEHYV8bfary9lJHYP1lQ1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi all, + +there has been an off-list mail exchange between Francesco and Kevin=20=20 +(and=20me in Cc:) which I will quote at the end of this mail (as it was=20= +=20 +not=20meant to be private and we should fully document the flow on this=20= +=20 +issue). + +@Kevin:=20I will take you off this mail thread's Cc: field with my next=20= +=20 +post.=20Feel free to follow-up via #784565 [1] on the Debian bug=20=20 +tracker.=20Thanks a lot for being so responsive and generous with=20=20 +providing=20information. + +On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote: + +> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: + +> I think that now it would be useful to ascertain that the other +> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are +> also OK with this interpretation of the re-licensing operation. + +As stated by Kevin, Gian Filippo worked/works on the NoMachine side. I=20= +=20 +will=20include him in Cc:. + +For Brian Pane we also found and e-Mail address, for Zach Vonler, I=20=20 +will=20use the mail address provided in DXPC code (which might be=20=20 +outdated),=20but I think I actually have found his phone number on the=20= +=20 +web,=20so if that mail address bounces I will give him a ring. + +> Maybe Kevin is able to dig the original conversations (assuming they +> were carried on by e-mail or similar archived means) or otherwise to +> get in touch with them and check? Or, alternatively, Kevin could help + +As stated in the forwarded messages below, Kevin was unable to dig out=20= +=20 +any=20mails from backups. So we switch to plan B: contact Brian, Zach=20=20 +and=20Gian Filippo. + +> Mike to get in touch with them? + +I will do that. + +> I hope everything may be settled for the best soon. +> Thanks a lot to everyone involved. + +/me, too. + +light+love +Mike + +[1] http://bugs.debian.org/784565 + + +----- Weitergeleitete Nachricht von Kevin Vigor ----- + Datum: Wed, 13 May 2015 09:01:27 -0600 + Von: Kevin Vigor +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Francesco Poli + Cc: Mike Gabriel + +On 05/12/15 15:40, Francesco Poli wrote: + +> Maybe Kevin is able to dig the original conversations (assuming they +> were carried on by e-mail or similar archived means) or otherwise to +> get in touch with them and check? Or, alternatively, Kevin could help +> Mike to get in touch with them? + +I'm afraid I was not able to dig anything out of old backups last=20=20 +night.=20I still have a stack of CDs to look through, but don't hold=20=20 +your=20breath. Sorry about that. + +I have never had any contact with Zachary Vonler or Gian Filippo=20=20 +Pinzari,=20and have not spoken with Brian Pane in many years, so I have=20= +=20 +no=20recent contact information for any of them. However, a quick google=20= +=20 +turns=20up: + +https://www.linkedin.com/profile/view?id=3D728859 +http://www.brianp.net/contact/ + +which is almost certainly the right Brian Pane (he was at CNet at the=20=20 +proper=20time). + + + Good luck, + Kevin + +----- Ende der weitergeleiteten Nachricht ----- + +----- Weitergeleitete Nachricht von Francesco Poli=20=20 +=20----- + Datum: Wed, 13 May 2015 19:43:44 +0200 + Von: Francesco Poli +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Kevin Vigor + Cc: Mike Gabriel + +On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: + +> On 05/12/15 15:40, Francesco Poli wrote: +> +> > Maybe Kevin is able to dig the original conversations (assuming they +> > were carried on by e-mail or similar archived means) or otherwise to +> > get in touch with them and check? Or, alternatively, Kevin could help +> > Mike to get in touch with them? +> +> I'm afraid I was not able to dig anything out of old backups last=20=20 +>=20night. I still have a stack of CDs to look through, but don't hold=20= +=20 +>=20your breath. Sorry about that. + +Thanks a lot for searching: this is really appreciated, at least from +my side. + +> +> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari, + +Then I wonder how it was possible to re-license DXPC in 2002... +:-| + +> and have not spoken with Brian Pane in many years, so I have no recent +contact information for any of them. However, a quick google turns up: +> +> https://www.linkedin.com/profile/view?id=3D728859 +> http://www.brianp.net/contact/ +> +> which is almost certainly the right Brian Pane (he was at CNet at=20=20 +>=20the proper time). + +This could be really useful, thank you very much! + +Mike, I hope the search may go on from there: Brian should be asked +about the retroactive nature of the re-licensing of DXPC and maybe he +also knows how to get in touch with Zachary and/or Gian Filippo... + + +P.S.: Kevin, any special reason why you dropped several addresses from +the Cc list? Should this part of our conversation be kept private for +the time being? Please clarify. Thanks! + +----- Ende der weitergeleiteten Nachricht ----- + +----- Weitergeleitete Nachricht von Kevin Vigor ----- + Datum: Wed, 13 May 2015 14:08:48 -0600 + Von: Kevin Vigor +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Francesco Poli + Cc: Mike Gabriel + +On 05/13/15 11:43, Francesco Poli wrote: +> On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: + +>> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari= +, +> +> Then I wonder how it was possible to re-license DXPC in 2002... +> :-| +> + +I believe Gian worked on the NoMachine code; he has never contributed=20=20 +to=20DXPC directly. + +Zachary Vonler was allegedly the maintainer of DXPC for a while circa=20=20 +1999,=20but never responded to any email when I attempted to contact=20=20 +him,=20which is how I came to take over maintenance. + + +> P.S.: Kevin, any special reason why you dropped several addresses from +> the Cc list? Should this part of our conversation be kept private for +> the time being? Please clarify. Thanks! + +No, I was just trying to keep from spamming email lists unnecessarily.=20= +=20 +I=20do not consider any part of this conversation private. + +----- Ende der weitergeleiteten Nachricht ----- + +----- Weitergeleitete Nachricht von Francesco Poli=20=20 +=20----- + Datum: Wed, 13 May 2015 22:50:32 +0200 + Von: Francesco Poli +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Kevin Vigor + Cc: Mike Gabriel + +On Wed, 13 May 2015 14:08:48 -0600 Kevin Vigor wrote: + +> On 05/13/15 11:43, Francesco Poli wrote: +> > On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: +> +> >> I have never had any contact with Zachary Vonler or Gian Filippo Pinza= +ri, +> > +> > Then I wonder how it was possible to re-license DXPC in 2002... +> > :-| +> > +> +> I believe Gian worked on the NoMachine code; he has never=20=20 +>=20contributed to DXPC directly. + +Good, then only Zachary has to be tracked down. + +> +> Zachary Vonler was allegedly the maintainer of DXPC for a while=20=20 +>=20circa 1999, but never responded to any email when I attempted to=20=20 +>=20contact him, which is how I came to take over maintenance. + +Let's hope Brian is able to help Mike in getting in touch with +Zachary... + +> +> +> > P.S.: Kevin, any special reason why you dropped several addresses from +> > the Cc list? Should this part of our conversation be kept private for +> > the time being? Please clarify. Thanks! +> +> No, I was just trying to keep from spamming email lists=20=20 +>=20unnecessarily. I do not consider any part of this conversation=20=20 +>=20private. +> + +OK, thanks for clarifying. + +----- Ende der weitergeleiteten Nachricht ----- + +--=20 + +DAS-NETZWERKTEAM +mike gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_SHoEHYV8bfary9lJHYP1lQ1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVCthAAoJEJr0azAldxsx3KUP/2997X9KnhVEedREGxsuqvQn +Dp5oGK2JPf0Z2MZui1FVehvakoHQD0MuhpVs7ZktnshwNvAgxyhW5esC617a9gsz +jJvaJz0S0MPHfSM4Dz8Yg2t0u0DpueVZBpOeDOlt9W9ECXkpe2YPk5AOialHwTPX +OP5KKfMSLEGFreUL7U0WeetC/To5zm54Ivx1a0wx2I+HdPJ0YXTxIC7JvUSNejFE +0+yhK1thXf38juOeb2pxTvRQXcj1IoDMRSc0k7KHeNGmP1NF38fh1illPlBABG1u +wa3hn+1uMe3+On8LJkDtIHtsXrR2RUuOP+0FbI4rTRo5SOeVFNRSl1ldp2ywl8rQ +9WkK623cuurOydsHjj+fIlcb7GN/OgrTay8VRS3jUjy9tlQ7PCpF5W1m7kMPHrCP +nh6/hUa6ep8qE+86dosQS4FxvOgSHOEpbNZ8ulEib/ClHr9wsnWpjxQtvRnZsBTl +PAIXKvdiHUCgyfs4efSWYtR8QUJTYmPDrGr2V8jWAtzZOo6NSa09c2Yc2OxLRDpP +HBGVSLUOrocvbb3wPAgnsogxtYCpzo/ga1Rnx2LdIfLNaTv62sek+nHqJzICqtcH +SdMajeJTVksKQCmHqIQS7C2V44cDYizTe9exZIl75OKT6TDujuW/KZiPQK6VCCNv +eEgOxmCOHlc8YLLz0dEP +=N9IW +-----END PGP SIGNATURE----- + +--=_SHoEHYV8bfary9lJHYP1lQ1-- + + + + +From mike.gabriel@das-netzwerkteam.de Thu May 14 05:55:46 2015 +Received: (at 784565) by bugs.debian.org; 14 May 2015 05:55:46 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 23; hammy, 150; neutral, 392; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Ysm7W-0005fv-3I + for 784565@bugs.debian.org; Thu, 14 May 2015 05:55:46 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id BDB433282; + Thu, 14 May 2015 07:55:43 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 20DC03BD2E; + Thu, 14 May 2015 07:55:43 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 3Dt4TKuxIMPh; Thu, 14 May 2015 07:55:43 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 871AB3B9EA; + Thu, 14 May 2015 07:55:42 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 14 May 2015 05:55:42 +0000 +Date: Thu, 14 May 2015 05:55:42 +0000 +Message-ID: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Zach Vonler , Brian Pane , + Gian Filippo Pinzari +Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com, 784565@bugs.debian.org, Francesco Poli + +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> +In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_whjzG6t3RqUoHnRlD0aGiA1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_whjzG6t3RqUoHnRlD0aGiA1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Dear Brian, dear Zachary, dear Gian Filippo, + +(Find a TL;DR; at the end of this mail...) + +I am contacting you on a licensing issue related to the DXPC code that=20= +=20 +you=20worked on at the end of the nineties. I'd highly appreciate it if=20= +=20 +you=20could take a little time to read this mail and get back to me,=20=20 +either=20privately or in public. +[I have actually Cc:ed quite a number of people in this mail (thread).=20= +=20 +All=20of them will be affected by the outcome of this license issue to=20= +=20 +some=20lesser or greater extent. If you feel inconvenient with replying=20= +=20 +to=20so many people you don't know, really don't hesitate to get back to=20= +=20 +me=20in private first, so that we can sort things out. Thank you.] + +Before I continue, let me shortly introduce myself. My name is Mike=20=20 +Gabriel,=20I work for the Debian project [1.1, 1.2] (which brings forth=20= +=20 +one=20of the major GNU/Linux distributions world-wide. I am also the=20=20 +upstream=20code maintainer of a software project called nx-libs [2]. The=20= +=20 +nx-libs=20code has been derived from several of NoMachine's NXv3 [11]=20=20 +components=20(namely: nx-X11, nxagent, nxcomp, nxcompext and nxcompshad). + +A member of the Debian legal team [3] (Francesco Poli) made us (i.e.,=20=20 +the=20nx-libs developers, users, package maintainers) aware of an issue=20= +=20 +[4]=20in the nx-libs component NXCOMP (which has been derived from DXPC=20= +=20 +[5]).=20Please read Message #5 of the brought up issue on the Debian bug=20= +=20 +tracker=20(#784565) [4] before you continue reading. Thanks. + +I will now jump into the below quoted mail and continue inline... + +On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote: + +> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: +> +>> Hi Kevin, +> +> Hello Mike, hello Kevin, hello to all the other recipients. +> +> First of all, I wish to express my gratitude to Kevin for his prompt, +> kind and generous response. + +>> thanks for your feedback. Let us wait for Francesco, our expert on=20=20 +>>=20license issues, and see what he thinks about your feedback. +> +> I think that this is an important first step to solve this issue for +> the best. +> Kevin Vigor is one of the copyright owners of the code that was forked +> before the re-licensing. +> We now know that he intended the re-licensing to be retroactive and +> this is really good. + +We are currently in the process of contacting all DXPC related=20=20 +copyright=20holders mentioned in the NXCOMP license file [6]. We already=20= +=20 +received=20some feedback from Kevin Vigor [7], but we also need to=20=20 +address=20you (Brian, Zachary, Gian Filippo) with this. (The mail=20=20 +address=20I have from Zachary may be outdated, so any current contact=20=20 +address=20is highly welcome, in case the mail address being used will=20=20 +bounce=20back). + +At the moment, NXCOMP (and thus nx-libs, but also NoMachine's NXv3=20=20 +code)=20cannot be considered as fully free software, until this issue is=20= +=20 +settled.=20The DXPC license before DXPC v3.8.1 was an ancient BSD style=20= +=20 +license=20that failed in explicitly mentioning, that it is allowed to=20=20 +modify=20the DXPC code in derivative works. In 2002, DXPC 3.8.1 got=20=20 +released=20[12], using a more compliant license (BSD-2-clause). As Kevin=20= +=20 +told=20us, this license change [8,9] was done after the FSF [10] had=20=20 +contacted=20the DXPC developers. + +However, the NXCOMP code in NXv3 got forked from DXPC before 2002, as=20=20 +it=20seems. So unfortunately, the modifications of DXPC as found in=20=20 +NoMachine's=20NXCOMP product are not compliant with the pre-3.8.1=20=20 +license=20of DXPC. + +> I think that now it would be useful to ascertain that the other +> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are +> also OK with this interpretation of the re-licensing operation. + +TL;DR; So here comes my actual question: are you (Brian Pane, Zachary=20=20 +Vonler,=20Gian Filippo Pinzari) ok with retroactively regarding=20=20 +pre-3.8.1=20code of DXPC (that you probably all worked on at that time)=20= +=20 +as=20BSD-2-clause? Are you ok with others having taken or taking the=20=20 +pre-3.8.1=20DXPC code and distribute it in a modified form? + +A yes from all of you as DXPC copyright holders is essential for the=20=20 +continuation=20of nx-libs development under a free license. This may=20=20 +also=20possibly be an issue for NXv4 in case parts of it have been=20=20 +derived=20from DXPC. + +Thanks to all of you for taking your time. + +light+love +Mike + +[1.1] http://www.debian.org +[1.2] https://qa.debian.org/developer.php?login=3Dsunweaver%40debian.org +[2] https://github.com/ArcticaProject/nx-libs +[3] https://www.debian.org/legal/ +[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#5 +[5] http://www.vigor.nu/dxpc/ +[6] https://github.com/ArcticaProject/nx-libs/blob/3.6.x/nxcomp/LICENSE#L32 +[7] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#40 +[8] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D72020 +[9] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028 +[10] http://www.fsf.org/ +[11] https://www.nomachine.com/version-3 +[12] http://www.vigor.nu/dxpc/CHANGES +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_whjzG6t3RqUoHnRlD0aGiA1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVDjeAAoJEJr0azAldxsx1JUP/RdzhmQ3HU+6x479AoGBTKxV +onR3XPlq8Iw9f6dU0TjqlAHCOGeftJ+X7A3HamiTFsr5wUqlrTuKeYnVd4hTa08e +ge9WIODczQfnoHm47siTjlMfQuHFIGDnHuJ+3GbvojMI7QXWrM9wgxGo2B/2UUQS +tFlYPbvfAGhCyUVx/zLRFqDVzzdo+UCVoLLYKE1pkwjhpnGGamY1xd/KFjCgi0Vx +f/Nx9w28EqmRFZCTmxghLngkTlQwrtBkSUAhLS3ntxV12RrrQQ2verXPWbW1DU9C +3TZypNZSMc4O8etJ244YUk7wAvspUtJnXyvxoQ2Padw0ogGFayIdLtC8HStCy+Mx +Q/FIND8+aGdYALNTbQfTCpJ1fmg06Id4hn96rdZOhpT80M3vTuY9HpIyf2dDCdHu +OmHEjUKnMRgjPbVoIU5lz8s4X/ET7hzxb2psXSwscxI+qqlSrADzC98QB23djJii +O9qPVB/HqJXwNNXlwiScrLC/q4ro0QgdurKmIDQq1zjdFXyBDEwMzxLNlVSJiEeG +gMSiXD9lD8J1KBDp35P4wxmOcCSymILU11Lpvf5N22ID7cfk8x58+Fsik+RkQZcm +94ll8p4XU0xOt8pgzGOVL4rLBsjcPGzuTjUoDsB8zmZLSgEgrISZNQC7pRhEXTRW +3g7fQuF635IMObwgVJJB +=c1td +-----END PGP SIGNATURE----- + +--=_whjzG6t3RqUoHnRlD0aGiA1-- + + + + +From mike.gabriel@das-netzwerkteam.de Thu May 14 06:20:24 2015 +Received: (at 784565) by bugs.debian.org; 14 May 2015 06:20:24 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 149; neutral, 94; spammy, + 1. spammytokens:0.997-1--sk:austin. hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YsmVL-0008TY-AE + for 784565@bugs.debian.org; Thu, 14 May 2015 06:20:24 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AA82B3282; + Thu, 14 May 2015 08:20:19 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id A8B823BD2E; + Thu, 14 May 2015 08:20:18 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id LyPILriO4mkm; Thu, 14 May 2015 08:20:18 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 4BB463BB3A; + Thu, 14 May 2015 08:20:18 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 14 May 2015 06:20:18 +0000 +Date: Thu, 14 May 2015 06:20:18 +0000 +Message-ID: <20150514062018.Horde.T6fBfDEHTv_IkVi4n506ew5@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Brian Pane , Gian Filippo Pinzari + +Cc: opensource@gznianguan.com, 784565@bugs.debian.org, + nito.martinez@qindel.com, Francesco Poli , + x2go-dev@lists.x2go.org +Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: Bug#784565: + nx-libs-lite: parts are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> +In-Reply-To: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_FXxC2VoubfzELdkXQu84zQ1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_FXxC2VoubfzELdkXQu84zQ1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi again, + +On Do 14 Mai 2015 07:55:42 CEST, Mike Gabriel wrote: + +> [...] (The mail address I have from Zachary may be outdated, so any=20=20 +>=20current contact address is highly welcome, in case the mail address=20= +=20 +>=20being used will bounce back). + +As it seems, the publicly known mail address of Zachary Vonler at=20=20 +austin.utexas.edu=20is outdated. + +@Brian: if you happen to have a recent mail address of Zachary, could=20=20 +you=20please provide it to me privately? Thanks. + +Mike +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_FXxC2VoubfzELdkXQu84zQ1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVD6iAAoJEJr0azAldxsx4+8QAI9fbkDu0G/1NpC4+MDJ3HtH +wzfUUIIoBAPTahr1ZGrGK4ZMH5+RvXtwX2OBTwRRgKlZOqsdU35bj2HKi01KNLGx +9NXXnLz97CuTrXJrzis3C+pzCIpR6cR/SPhDdExdhjR8nawXcejfFhPUnbVvPvxY +jYN43cYFScovk5f5bUtIAybVZZCpdRZwDRevD+1qTTs+WtDf/9PXL7CX9A7j7r6T +XQIURSVQq/FVXcJHSdZcYZza/4JHIZbEQTeX3FaUK+zkdHlBbbmRwzN0YLP/XQiY +06tQXFjgjqjjkoxTE5gQrlN3kyxNH2WpXj2eeAqQarkCOnKgiuFEYxhTCYnZHCmk +WVYhb2/78VbRlRbDJH0jJ0KKNOi9fbXGcVa36IOgV2dLN+tnNorAQjHm7LkBDhyi +c3EmzEPtDTmcb5XuPYwwbNGn2EE47UsTx3UjPFWAQVQ2LwMXoFb+iH+WWSQ8KW1b +xKRDOtarACd06rbW/sKQVdzNytydvFkZZn//AHHA7KP7jmqhl/bub8EyEf9cCTVr +92XB5bbI1rLfEo1D3FTUaCt1tUEumhgRzwlJteX5/vbpf0fJ3QcWMUQSQWYqbhEm +LnlGOM44jZDtQ7QonezcB/+lQDu2/0Q7fZtgqtr9bxkJ5URr8/ByTI+E3K2bxdme +jQAQL6yyRC5s419MIJTr +=6/Dc +-----END PGP SIGNATURE----- + +--=_FXxC2VoubfzELdkXQu84zQ1-- + + + + +From mike.gabriel@das-netzwerkteam.de Sat May 16 09:19:18 2015 +Received: (at 784565) by bugs.debian.org; 16 May 2015 09:19:18 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-10.9 required=4.0 tests=BAYES_00,DIGITS_LETTERS, + FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 31; hammy, 150; neutral, 208; spammy, + 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YtYFZ-0006BP-Mo + for 784565@bugs.debian.org; Sat, 16 May 2015 09:19:18 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 434CF3D4F; + Sat, 16 May 2015 11:19:13 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 9294C3BB55; + Sat, 16 May 2015 11:19:12 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id a-GW73-71I6N; Sat, 16 May 2015 11:19:12 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 224123BB3B; + Sat, 16 May 2015 11:19:12 +0200 (CEST) +Received: from 176.4.79.4 ([176.4.79.4]) by mail.das-netzwerkteam.de (Horde + Framework) with HTTP; Sat, 16 May 2015 09:19:12 +0000 +Date: Sat, 16 May 2015 09:19:12 +0000 +Message-ID: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: 784565@bugs.debian.org, Francesco Poli +Cc: Kevin Vigor , nito.martinez@qindel.com, + x2go-dev@lists.x2go.org, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> +In-Reply-To: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 176.4.79.4 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_n6jEwcfiXkrvf2B-ZGaJrw3"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_n6jEwcfiXkrvf2B-ZGaJrw3 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi all, esp. Kevin, + +On Do 14 Mai 2015 06:58:09 CEST, Mike Gabriel wrote: + +I looked at dxpc releases (I obtained upstream tarballs from=20=20 +snapshot.debian.org). + +I=20currently have: + +""" +[mike@minobo dxpc.nxrebase (upstream-nxrebase)]$ git log +commit 0676a768a96383641a73a72ecd2e1083322e6abe +Author: Mike Gabriel +Date: Sat May 16 10:52:24 2015 +0200 + + Imported Upstream version 3.9.2 + +commit 4ccf34b2c4763dfb01dceb8588b204b0d029cc3d +Author: Mike Gabriel +Date: Sat May 16 10:51:04 2015 +0200 + + Imported Upstream version 3.9.1 + +commit dd8f60ce63c70ed605a2e1717feb7128e59fb8e6 +Author: Mike Gabriel +Date: Sat May 16 10:49:19 2015 +0200 + + Imported Upstream version 3.9.0 + +commit 01c990099aea802405f8d39c0b819ee1742c185c +Author: Mike Gabriel +Date: Sat May 16 10:32:06 2015 +0200 + + Imported Upstream version 3.8.2 + +commit 48df60b3b946a08541ee48371634f074e875adda +Author: Mike Gabriel +Date: Sat May 16 10:31:57 2015 +0200 + + Imported Upstream version 3.8.0 + +commit 11d81444d0f86a67f9b8483cbfa33343714b26e9 +Author: Mike Gabriel +Date: Sat May 16 10:31:53 2015 +0200 + + Imported Upstream version 3.7.0 + +commit e4f550abd4cd49ecc2381e717a55a9940087a376 +Author: Mike Gabriel +Date: Sat May 16 10:31:44 2015 +0200 + + Imported Upstream version 3.5.0 +""" + +> @Kevin: I will take you off this mail thread's Cc: field with my=20=20 +>=20next post. Feel free to follow-up via #784565 [1] on the Debian bug=20= +=20 +>=20tracker. Thanks a lot for being so responsive and generous with=20=20 +>=20providing information. + +With this post I actually reincluded you because it becomes technical=20=20 +from=20here on and I probably will need your expertise on DXPC. Not sure=20= +=20 +if=20you have time or prio or are willing to provide that. Would you be=20= +=20 +open=20for answering technical questions on DXPC and esp. the changes=20=20 +between=203.7.0 and 3.8.1/3.8.2? I'd highly appreciate that. + +As I have not heard back neither from Brian Pane, Zachary Vonler nor=20=20 +Gian=20Filippo Pinzari (we had Ascension Day and maybe a prolonged=20=20 +weekend=20that people used for going on VAC), I will try looking at the=20= +=20 +DXPC=20changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked=20=20 +NXCOMP=20from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0. + +Questions to Kevin: + + o Is there any SVN upstream repo still online + (I saw it in one of the tarballs, that SVN was + used for 3.9.0). + o Do you have any tarballs documenting the + changes between 3.7.0 and 3.8.0? Do you also + have the 3.8.1 tarball? + o Did the 3.8.0 version of DXPC break proto + compatibility (i.e., you could not use client + 3.7.0 and server 3.8.0 and vice versa with + each other)? + +Any help on this is appreciated. Thanks. + +Mike + + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_n6jEwcfiXkrvf2B-ZGaJrw3 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVwuPAAoJEJr0azAldxsxAqoQAI1IOApnU8WLZH+VT1GIgtvx +XxuBALPeR8KobmGRfJd4bSzeIpAqw+JSGa0/XApTwjYbpsIUKnMrEfoHfS0wt4Tb +ZmSiHL4XCYa6SCGOAbSe89QXNA8kS4ewQMSaPTZhGvoR6wIjdNfxXDN5aO6TkUlw +qw786fMKYcj9htNnshlq264uSfkrMusFEw614dnfKEVnx8YrIUU5lNY9AInShO9S +K0vy1vn53/Ie5Fec1FK0WUsT4xTu7NW80Ch0+IgopURIl9NmlomJVRwoDLbR47Ox +6dFVGJ5VKmOt+oW2g4YAdti8YNhSYteyPgTAPMdtU4XqkHV5/RepCoV/6gr3/YR1 +To63WGpt2B+jl2d4OAPuWWdTRucB2QYsCz/jCvLKeLcg2ODHZJXhSzVYlIie0uFY +SRvqM8qW+WyuYek2vZDneKvDB2eUqMhRb5dmSeod9UR+3RYTq+JrFUoDq65PONbM +A0QZ+cG0EkQdxG/1V8yZoMRgxPOtb+AZcMIjC5NikWUsyIkGjMHNHSbJCboJBlyM +DdyRCTxuM09cpzNxS7Ph0z0iSdQZAl2D7vPCAY1jwyLdu7Xra/p3aM6pqeYuIaWh +OpoF/sRq08CjWmgVe7MdfkgxZQxW4qIdOeNYGUDIADzzj6cHdNV+WP13ISizeoyO +u4cspyl/6lFu3TyMWkh8 +=fu9u +-----END PGP SIGNATURE----- + +--=_n6jEwcfiXkrvf2B-ZGaJrw3-- + + + + +From zvonler@gmail.com Mon May 18 15:05:45 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 15:05:46 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-5.3 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,FREEMAIL_FROM,HAS_BUG_NUMBER,HTML_MESSAGE, + MULTALT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS + autolearn=ham autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 14; hammy, 104; neutral, 41; spammy, + 1. spammytokens:0.940-+--H*c:alternative + hammytokens:0.000-+--D*das-netzwerkteam.de, 0.000-+--sk:mikega, + 0.000-+--sk:mike.ga, 0.000-+--U*mike.gabriel, + 0.000-+--mike.gabriel@das-netzwerkteam.de +Return-path: +Received: from mail-ob0-f181.google.com ([209.85.214.181]) + by buxtehude.debian.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) + (Exim 4.80) + (envelope-from ) + id 1YuMbx-0004SF-RZ + for 784565@bugs.debian.org; Mon, 18 May 2015 15:05:45 +0000 +Received: by obblk2 with SMTP id lk2so127830096obb.0 + for <784565@bugs.debian.org>; Mon, 18 May 2015 08:05:39 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=gmail.com; s=20120113; + h=mime-version:date:message-id:subject:from:to:content-type; + bh=nHgAzYNhWTJXAXb1d3jfmZVOFHEEaolqyRCNmCThusM=; + b=ilsboi8m+iXF7pVv2MVsvJqi8Es4/o3Awnfg5nSzWVB34kDB0g7zczoEfC4d9km/Bn + WDerLV30mJ+OfaRA5elHld2CsY9ByX2MuU73jj2kNenlEV15s7LdJxYsWiZeKM4AEeOw + gGF3oU3A/FfhVUrhoPjcGXiF7xjXh1kkPGjkmXFJgthTnyJQjrL6Kw6jfsqhQtbEpqnc + 5hsWFCNR7O780T1pkf+MisASrWFXI3oolY4EV8/P6OeEWmmKd7L9h8YHPegOdFq543qZ + na9coEvmwpnReWORK79ycOgZa1DwiX1h2SvS+wgigQx8j9ZlJld5SpJFTcV3vSJxmICQ + i7Wg== +MIME-Version: 1.0 +X-Received: by 10.202.89.131 with SMTP id n125mr19222614oib.91.1431961538959; + Mon, 18 May 2015 08:05:38 -0700 (PDT) +Received: by 10.202.212.10 with HTTP; Mon, 18 May 2015 08:05:38 -0700 (PDT) +Date: Mon, 18 May 2015 10:05:38 -0500 +Message-ID: +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts are + derived from non-free code +From: Zach Vonler +To: 784565@bugs.debian.org +Content-Type: multipart/alternative; boundary=001a113d381edcb3e205165c863b + +--001a113d381edcb3e205165c863b +Content-Type: text/plain; charset=UTF-8 + +On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel < +mike.gabriel@das-netzwerkteam.de> wrote: + +> +> TL;DR; So here comes my actual question: are you (Brian Pane, Zachary +> Vonler, Gian Filippo Pinzari) ok with retroactively regarding +> pre-3.8.1 code of DXPC (that you probably all worked on at that time) +> as BSD-2-clause? Are you ok with others having taken or taking the +> pre-3.8.1 DXPC code and distribute it in a modified form? +> + + +> A yes from all of you as DXPC copyright holders is essential for the +> continuation of nx-libs development under a free license. This may +> also possibly be an issue for NXv4 in case parts of it have been +> derived from DXPC. + + +Yes, I am fine with considering the license change to be retroactive to +cover the time I was the maintainer. + +I have no objections to others distributing modified versions of that code. + +Zach + +--001a113d381edcb3e205165c863b +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable + +
On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel <mike.gabriel@das-netzwerkteam= +.de> wrote:

TL;DR; So here comes my act= +ual question: are you (Brian Pane, Zachary =C2=A0
Vonler, Gian Filippo P= +inzari) ok with retroactively regarding =C2=A0
pre-3.8.1 code of DXPC (t= +hat you probably all worked on at that time) =C2=A0
as BSD-2-clause? Are= + you ok with others having taken or taking the =C2=A0
pre-3.8.1 DXPC cod= +e and distribute it in a modified form?
=C2=A0
A yes from all of you as DXPC copyright holders is essential= + for the =C2=A0
continuation of nx-libs development under a free license= +. This may =C2=A0
also possibly be an issue for NXv4 in case parts of it= + have been =C2=A0
derived from DXPC.
=C2=A0
= +
Yes, I am fine with considering the license change to be retroactive t= +o cover the time I was the maintainer.

I have no o= +bjections to others distributing modified versions of that code.
= +
Zach
+ +--001a113d381edcb3e205165c863b-- + + + +From kevin@vigor.nu Mon May 18 21:26:12 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 21:26:12 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 16; hammy, 150; neutral, 121; spammy, + 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*f:sk:2015050, + 0.000-+--3.9.0, 0.000-+--3.8.0, 0.000-+--H*UA:31.0 +Return-path: +Received: from gateway13.websitewelcome.com ([69.56.148.12]) + by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YuSY8-0004Mq-9I + for 784565@bugs.debian.org; Mon, 18 May 2015 21:26:12 +0000 +Received: by gateway13.websitewelcome.com (Postfix, from userid 5007) + id 248D59C09927E; Mon, 18 May 2015 15:38:28 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway13.websitewelcome.com (Postfix) with ESMTP id 1EB399C099246 + for <784565@bugs.debian.org>; Mon, 18 May 2015 15:38:28 -0500 (CDT) +Received: from [63.158.132.10] (port=43192 helo=[10.50.3.84]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YuRnv-0001VU-8i; Mon, 18 May 2015 15:38:27 -0500 +Message-ID: <555A4DC1.2040900@vigor.nu> +Date: Mon, 18 May 2015 14:38:25 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 +MIME-Version: 1.0 +To: Mike Gabriel , + 784565@bugs.debian.org, Francesco Poli +CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 63.158.132.10 +X-Exim-ID: 1YuRnv-0001VU-8i +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:43192 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 2 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 1495 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:26:12 UTC + +On 05/16/15 03:19, Mike Gabriel wrote: + As I have not heard back neither from Brian Pane, Zachary Vonler nor Gian Filippo Pinzari (we had Ascension Day and maybe a prolonged weekend that people used for going on VAC), I will try looking at the DXPC changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked NXCOMP from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0. +> +> Questions to Kevin: +> +> o Is there any SVN upstream repo still online +> (I saw it in one of the tarballs, that SVN was +> used for 3.9.0). + +I'm afraid not. There was never an online repo available, and if I used one personally it is lost to the mists of time. + +> o Do you have any tarballs documenting the +> changes between 3.7.0 and 3.8.0? Do you also +> have the 3.8.1 tarball? + +I have the source tarballs to each of those (including the 3.8.1 version). The 3.8.0 release includes a README-3.8.0 file which documents the changes between 3.7.0 and 3.8.0 reasonably well. + +As will be (unfortunately) obvious from examining the deltas between 3.7.0 (the last release by Brian and/or Zachary) and 3.8.0 (the first release by me), I inherited a significant majority of the code. + +> o Did the 3.8.0 version of DXPC break proto +> compatibility (i.e., you could not use client +> 3.7.0 and server 3.8.0 and vice versa with +> each other)? + +Yes, minor version number bumps were used to indicate compatibility. 3.8.x was incompatible with 3.7.x (and also with 3.9.x). + + + + +From kevin@vigor.nu Mon May 18 21:34:50 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 21:34:50 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 39; hammy, 146; neutral, 132; spammy, + 4. spammytokens:0.999-1--tecnologies, 0.993-1--H*RU:67.18.68.12, + 0.987-1--D*ascend.com, 0.987-1--H*r:34828 hammytokens:0.000-+--H*f:sk:2015050, + 0.000-+--3.8.0, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, + 0.000-+--H*f:sk:2015051 +Return-path: +Received: from gateway15.websitewelcome.com ([67.18.68.12]) + by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YuSgU-0005Jq-92 + for 784565@bugs.debian.org; Mon, 18 May 2015 21:34:50 +0000 +Received: by gateway15.websitewelcome.com (Postfix, from userid 5007) + id 8BB94ED5E6912; Mon, 18 May 2015 16:11:44 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway15.websitewelcome.com (Postfix) with ESMTP id 84825ED5E68F2 + for <784565@bugs.debian.org>; Mon, 18 May 2015 16:11:44 -0500 (CDT) +Received: from [63.158.132.10] (port=34828 helo=[10.50.3.84]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YuSK7-00005R-B6; Mon, 18 May 2015 16:11:43 -0500 +Message-ID: <555A558E.1020703@vigor.nu> +Date: Mon, 18 May 2015 15:11:42 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 +MIME-Version: 1.0 +To: Mike Gabriel , + 784565@bugs.debian.org, Francesco Poli +CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 63.158.132.10 +X-Exim-ID: 1YuSK7-00005R-B6 +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:34828 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 2 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 1383 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:34:50 UTC + +By the way, poking around the interwebs I find there is an archive of the old DXPC mailing list available at: + +http://marc.info/?l=dxpc&r=1&w=2 + +I think you will find this of particular interest: + + +http://marc.info/?l=dxpc&m=93093790813555&w=2 + + +List: dxpc +Subject: Re: future tecnologies +From: Brian Pane +Date: 1999-07-02 16:42:18 +[Download message RAW] + +Kevin Vigor wrote: +> On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: +> > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc +> > code itself under GPL, or are they going to use the original dxpc's +> > licensing? +> +> No, as you can probably guess, I am no fan of the GPL. For stuff on +> this level, where my hacking is pretty simple and probably devoid of +> commercial value, I'll just release my changes to the public domain and +> give up even a copyright interest in them. +> +> Your and Zach's copyrights still stand, of course. +> +> I *think* that fact that we use the LZO library and API, but do not +> directly incorporate the code, allows us to escape the clutch of the GPL +> virus. +> +> btw, is there an original dxpc license? I haven't seen anything but a +> copyright notice, which to my non-lawyerly mind translates as "free to +> all the world as is, negotiate with copyright owner if modifying or +> including in some other product". + +The copyright banner in the Readme is all the documentation there's ever +been. My intent was to allow _any_ distribution, use, and modification +of the source, without imposing restrictions on the licensing style of +any system into which others might incorporate the code. We probably +should start stating this clearly in the distributions. + +-brian + +[prev in list] [next in list] [prev in thread] [next in thread] + + + +From mike.gabriel@das-netzwerkteam.de Mon May 18 21:49:10 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 21:49:10 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 35; hammy, 150; neutral, 281; spammy, + 0. spammytokens: hammytokens:0.000-+--H*RU:sk:grimnir, + 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98, + 0.000-+--H*RU:88.198.48.199, 0.000-+--H*RU:sk:freya.d +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YuSuK-0007oj-Hh + for 784565@bugs.debian.org; Mon, 18 May 2015 21:49:10 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 253493049 + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:04 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id ACC2E3BD6C + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id Hh79XOiBkYIp for <784565@bugs.debian.org>; + Mon, 18 May 2015 23:49:03 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 6CC483BC0D + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 2100C3BD6C + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) +Received: from [10.139.193.227] (unknown [176.0.38.193]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 453F63BB1E; + Mon, 18 May 2015 23:48:59 +0200 (CEST) +From: Mike Gabriel +Reply-To: Mike Gabriel +To: Kevin Vigor , 784565@bugs.debian.org, Francesco Poli +Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +X-Mailer: Modest 3.2 +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> +In-Reply-To: <555A558E.1020703@vigor.nu> +Content-Type: text/plain; charset=utf-8 +Content-ID: <1431985731.1406.1.camel@Nokia-N900> +Date: Mon, 18 May 2015 23:48:51 +0200 +Message-Id: <1431985731.1406.2.camel@Nokia-N900> +Mime-Version: 1.0 +Content-Transfer-Encoding: 8bit + +Hi Kevin, hi Zach, hi Francesco, hi all, + +@Francesco, please review the recent posts and sum up what to do next. + +----- Original message ----- +> By the way, poking around the interwebs I find there is an archive of +> the old DXPC mailing list available at: +> +> http://marc.info/?l=dxpc&r=1&w=2 +> +> I think you will find this of particular interest: +> +> +> http://marc.info/?l=dxpc&m=93093790813555&w=2 + + +> +> +> List:            dxpc +> Subject:      Re: future tecnologies +> From:            Brian Pane +> Date:            1999-07-02 16:42:18 +> [Download message RAW] +> +> Kevin Vigor wrote: +> > On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: +> > > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc +> > > code itself under GPL, or are they going to use the original dxpc's +> > > licensing? +> > +> > No, as you can probably guess, I am no fan of the GPL. For stuff on +> > this level, where my hacking is pretty simple and probably devoid of +> > commercial value, I'll just release my changes to the public domain and +> > give up even a copyright interest in them. +> > +> > Your and Zach's copyrights still stand, of course. +> > +> > I *think* that fact that we use the LZO library and API, but do not +> > directly incorporate the code, allows us to escape the clutch of the +> > GPL virus. +> > +> > btw, is there an original dxpc license? I haven't seen anything but a +> > copyright notice, which to my non-lawyerly mind translates as "free to +> > all the world as is, negotiate with copyright owner if modifying or +> > including in some other product". +> +> The copyright banner in the Readme is all the documentation there's ever +> been.  My intent was to allow _any_ distribution, use, and modification +> of the source, without imposing restrictions on the licensing style of +> any system into which others might incorporate the code.  We probably +> should start stating this clearly in the distributions. +> +> -brian +> +> [prev in list] [next in list] [prev in thread] [next in thread] + +@Kevin: You are very awesome! + +@Francesco: that old post from Brian should be the statement we need, right? As Brian has not answered back, so far, does that post suffice? + +I also had a mail from Zach in my mailbox this morning. I managed to get hold of him via phone over the weekend. He posted his agreement to this Debian bug (as message #77) [1] earlier today. @Zach: thanks a lot for that!!! + +@Francesco: by looking at [2], I cannot see any hint for Gian Filippo Pinzari being a copyright holder of DXPC. This is stated in the NoMachine files at at least one place, but not in the latest DXPC upstream release. I am on my mobile right now, need to check old versions of DXPC, but if Gian Filippo Pinzari is not listed in the DXPC 3.7.0 release (where nxcomp obviously got forked from), then I think that we don't require his feedback, right? + +To my opinion, this issue can be settled. We have direct feedback from Kevin and Zach and Kevin dug out an old post from Brian stating the retroactive nature of the BSD-2-clause while Gian Filippo probably not being a real copyright holder of the original DXPC code. Right? + +light+love, +Mike + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=77;att=0;bug=784565 +[2] http://www.vigor.nu/dxpc/README + + +-- + +DAS-NETZWERKTEAM +mike gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976148 + +GnuPG Key ID 0x25771B13 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + + + + +From invernomuto@paranoici.org Mon May 18 22:15:14 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 22:15:14 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, + SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 220; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from latitanza.investici.org ([82.94.249.234]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YuTJa-0002xP-0G + for 784565@bugs.debian.org; Mon, 18 May 2015 22:15:14 +0000 +Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 921B3120546; + Mon, 18 May 2015 22:15:05 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1431987305; + bh=RQEA/1bkAQ71T0PpK/7XelDXEZBLyoVavVl9tpWLzWY=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=sO+MOEv4mZZNK2g5Om9IC7Og5k2qPAvFepN+ei+3/jCixgNBbvaLuRpMgJw6l1yjD + hpqRYIxtNgyVywgpuiFVACFBuDn1ksfdFrEPNAcgRl//Sert2aOjetbZcKi1VouhXi + eexR8IP81C0C1UjzjeC7zEmF5V+wSyhVs9jKvKfg= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1YuTIi-0002Se-TN; Tue, 19 May 2015 00:14:20 +0200 +Date: Tue, 19 May 2015 00:14:08 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: Kevin Vigor , 784565@bugs.debian.org, + nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com, zvonler@gmail.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +Message-Id: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> +In-Reply-To: <1431985731.1406.2.camel@Nokia-N900> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> + <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> + <1431985731.1406.2.camel@Nokia-N900> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx" + +--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Mon, 18 May 2015 23:48:51 +0200 Mike Gabriel wrote: + +[...] +> @Francesco: that old post from Brian should be the statement we need, +> right? As Brian has not answered back, so far, does that post suffice? + +Yes, I am under the impression that it may be considered as evidence +that Brian had always meant to grant permission to modify, despite not +being overly clear until DXPC version 3.8.1. +In other words, it seems that the re-licensing was more intended to be +a clarification, rather than a change of mind. + +>=20 +> I also had a mail from Zach in my mailbox this morning. I managed to +> get hold of him via phone over the weekend. He posted his agreement +> to this Debian bug (as message #77) [1] earlier today. @Zach: thanks +> a lot for that!!! + +This is really great! + +>=20 +> @Francesco: by looking at [2], I cannot see any hint for Gian Filippo +> Pinzari being a copyright holder of DXPC. This is stated in the +> NoMachine files at at least one place, but not in the latest DXPC +> upstream release. I am on my mobile right now, need to check old +> versions of DXPC, but if Gian Filippo Pinzari is not listed in +> the DXPC 3.7.0 release (where nxcomp obviously got forked from), +> then I think that we don't require his feedback, right? + +If it is confirmed that Gian Filippo contributed to the forking of DXPC +within the NoMachine project, but not directly to DXPC, then I think +that he made his contributions available under the terms of the GPL v2 +of the NoMachine project. +If this is the case, no feedback should be required from his side. + +>=20 +> To my opinion, this issue can be settled. We have direct feedback +> from Kevin and Zach and Kevin dug out an old post from Brian stating +> the retroactive nature of the BSD-2-clause while Gian Filippo probably +> not being a real copyright holder of the original DXPC code. Right? + +Yes, I agree with this analysis. +The only missing check is the one about Gian Filippo's involvement (as +explained above). + +Thanks a lot to everyone involved in this license fixing effort! +Bye. + +>=20 +> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;att=3D0;bug=3D= +784565 +> [2] http://www.vigor.nu/dxpc/README + + + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVWmQ1AAoJED4cJ+Efab/+FowQALSZya0Xp8IXNA+d0gjQBLGQ +7eDzaX+kPVKkbYdb7ZDlQF+ZVTwjOnqjf1dDLXWSHwcXYhFd3DeeFB11QfAKXptI +GyzOt/vrh+w1K2zMb4rR9lxyUKIrKmVI6aOxyRTP7ojqkqqFvpF7ZVkDJZBFCSvx +LXdAWTaz5NLIH5R4lzvTcTFYmC3JhBtf8m58l4jT3GC1pxoqlYQk0svWOrdlULQZ +zh1dy6Sf0guwMuOH4pfreTKlNIizFj7BwanoN+tNvYG1sbQnyIwNRKUfG+v5/13P +3tyjknNDTTE67T40qSv6pcZs46vqMTevL8E+s+wGfcvdKQ5Y2fPQ8Q9yxS6cVxH2 +DXsLV97RFCcdD+ys+7P9j7xYG0e38juu61sU42cNmrb5iU0woB3SJtFvABhioGZg +TLFi/OxOT6ZTHcZtfwqozVyB1fOesqx3nvwCEE3pNuf58ErxRy1sIXwoChNL4+eo +ET1kojXBXHER6W6EHno0yz600sJXHE8rco+fv5b5qGBHdLEJ0k80YXQI4FhJQT69 +I8FyASmNX4u6HvH6hRVm2BwE9WrZTUUQRb0m/pEfZVVroiRrqTl/ntvWchXvI2Tt +IGfoDMtmVbSkh+2DQmsG9oDqiG1pCt3eNkLa1oftlQ7oIQem2MajCOS4QN20PMpU +d/smtrrNvkmiWuQrjwDF +=R0ou +-----END PGP SIGNATURE----- + +--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx-- + + + +From kevin@vigor.nu Tue May 19 01:41:18 2015 +Received: (at 784565) by bugs.debian.org; 19 May 2015 01:41:18 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 26; hammy, 131; neutral, 46; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:31.6.0, 0.000-+--H*u:31.6.0, + 0.000-+--H*f:sk:2015050, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0 +Return-path: +Received: from gateway32.websitewelcome.com ([192.185.145.107]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YuWX0-0002lG-Du + for 784565@bugs.debian.org; Tue, 19 May 2015 01:41:18 +0000 +Received: by gateway32.websitewelcome.com (Postfix, from userid 500) + id 311BBD143B8C; Mon, 18 May 2015 20:16:29 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway32.websitewelcome.com (Postfix) with ESMTP id 2F036D143B72 + for <784565@bugs.debian.org>; Mon, 18 May 2015 20:16:29 -0500 (CDT) +Received: from [98.202.128.111] (port=49655 helo=[192.168.7.118]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YuW8y-0004Tt-DX; Mon, 18 May 2015 20:16:28 -0500 +Message-ID: <555A8EE9.9000503@vigor.nu> +Date: Mon, 18 May 2015 19:16:25 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 +MIME-Version: 1.0 +To: Francesco Poli , + Mike Gabriel +CC: 784565@bugs.debian.org, nito.martinez@qindel.com, + x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> +In-Reply-To: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 98.202.128.111 +X-Exim-ID: 1YuW8y-0004Tt-DX +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([192.168.7.118]) [98.202.128.111]:49655 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 3 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 1487 seconds by postgrey-1.34 at buxtehude; Tue, 19 May 2015 01:41:18 UTC + +On 5/18/2015 4:14 PM, Francesco Poli wrote: +> If it is confirmed that Gian Filippo contributed to the forking of +> DXPC within the NoMachine project, but not directly to DXPC, then I +> think that he made his contributions available under the terms of the +> GPL v2 of the NoMachine project. If this is the case, no feedback +> should be required from his side. +I can confirm that Gian Fillippo never contributed directly to DXPC. +You'll note his name does not appear in the DXPC README, and never has. + + + +From mike.gabriel@das-netzwerkteam.de Tue May 19 08:15:28 2015 +Received: (at 784565) by bugs.debian.org; 19 May 2015 08:15:28 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 195; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YucgR-0008T9-K0 + for 784565@bugs.debian.org; Tue, 19 May 2015 08:15:28 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 7D1773C96; + Tue, 19 May 2015 10:15:23 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 08FEE3BFD5; + Tue, 19 May 2015 10:15:23 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id MW9pv+xO3WwY; Tue, 19 May 2015 10:15:22 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 97FCC3C2AA; + Tue, 19 May 2015 10:15:12 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Tue, 19 May 2015 08:15:12 +0000 +Date: Tue, 19 May 2015 08:15:12 +0000 +Message-ID: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Kevin Vigor , 784565@bugs.debian.org, Francesco Poli + +Cc: opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com, + x2go-dev@lists.x2go.org +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: + nx-libs-lite: parts are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> + <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> + <555A8EE9.9000503@vigor.nu> +In-Reply-To: <555A8EE9.9000503@vigor.nu> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_AI4511z4pP7yPmTeeGgEoA6"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_AI4511z4pP7yPmTeeGgEoA6 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Kevin, hi Frederico, + +On Di 19 Mai 2015 03:16:25 CEST, Kevin Vigor wrote: + +> On 5/18/2015 4:14 PM, Francesco Poli wrote: +>> If it is confirmed that Gian Filippo contributed to the forking of=20=20 +>>=20DXPC within the NoMachine project, but not directly to DXPC, then I=20= +=20 +>>=20think that he made his contributions available under the terms of=20= +=20 +>>=20the GPL v2 of the NoMachine project. If this is the case, no=20=20 +>>=20feedback should be required from his side. + +> I can confirm that Gian Fillippo never contributed directly to DXPC.=20= +=20 +>=20You'll note his name does not appear in the DXPC README, and never=20= +=20 +>=20has. + +@Kevin: This is again good news for sorting out this issue. Thanks a=20=20 +lot=20for your help, Kevin. + +@Frederico: I guess we are through then. Thanks for helping with=20=20 +clarifying=20the situation (and bringing it up in the first place). + +For fixing this issue (in terms of closing the bug), I propose this=20=20 +for=20downstream (i.e., Debian): + + o copy bug_784565.mbox [1] into the debian/ folder of the=20=20 +nx-libs-lite=20package + o upload some latest release of nx-libs-lite 3.5.0.x to unstable + o update debian/copyright accordingly + o close this bug via debian/changelog + +For upstream, I propose this: + + o copy bug_784565.mbox into the docs/ folder + o update copyright information in nxcomp/ subfolder + o provide some README or such that shortly explains our last weeks' proc= +ess + o this will be for the upcoming 3.6.x release series of nx-libs + + o this should also be backported to the 3.5.x release series + +Once the mbox file and README are upstreamed, I will drop that content=20= +=20 +from=20the debian/ folder in the Debian package nx-libs-lite (as it will=20= +=20 +be=20in the upstream tarball of nx-libs-lite). + +Feedback (esp. from Frederico), concerns, other suggestions? + +Greets, +Mike + + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?mbox=3Dyes;bug=3D784565 +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_AI4511z4pP7yPmTeeGgEoA6 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVWvEQAAoJEJr0azAldxsxiZgP/1MhcK1h2or3zG3P9h3oOqFk +rsknSn/0paY8HlzggWh5N4juLU9ET/VyO+xMCbVFDXb9jv5ryRI0MinPGwp6ujTl +DxHAz5q5YrC/NYH9IU0PqL2Zja952xbjlVPgf64+iLT0kqFmY7L48bkxVXd4cKnJ +flflATeaPTcVgIVcfFte2q/NJV7AAGjwb/tEOOMbqrRYOu1hKLozWnRSLZ/rdl5V +OmktCjfAfw6Cvy4/IN6pCjG4uqFvsWvzjMofR53MLuy8cwQhtpvK9KPLCZlo9Efm +KyrFNl866Egmc/HTLQkSaOJOKartANw+Ev7qsVi30OJOEWh9T1fDjnFvLn6hesKf +9pAS/+mkuCUVNjLI/ATZAwY93bzBS+vo7fya2D/DxDk8FoLIe7XdI9GABdTE2U0H +eyNLb/Lq485BEQEu9ThtvACZYH3F3UqA7OcFfLKyVw2lsOJV7SN3KCl76te4iNcf +UlVzVr211lKhGTV9hLF3daKntu1H3jQku9zLK9ShJR6bYTpCAsGi2h2xzZm5PLDE +9tbf+qUmDn3lp4uMaBtBdtq+yt47Wk95iS41x/qyvy0PK/RdnPxTpfdbriu4+1l2 +ij6Dq5bb7GckZDmpVjSsGSr4jjWtJ5QrnZbpv/u/v3+wliZL0c+CScrA+5I/qJeI +eGXnQIwqcWE/2/AcAz2r +=Q2/H +-----END PGP SIGNATURE----- + +--=_AI4511z4pP7yPmTeeGgEoA6-- + + + + +From invernomuto@paranoici.org Wed May 20 18:04:34 2015 +Received: (at 784565) by bugs.debian.org; 20 May 2015 18:04:34 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, + SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 11; hammy, 150; neutral, 212; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from latitanza.investici.org ([82.94.249.234]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1Yv8M4-00011u-4i + for 784565@bugs.debian.org; Wed, 20 May 2015 18:04:34 +0000 +Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id C5F33121147; + Wed, 20 May 2015 18:04:24 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1432145064; + bh=kDc9DoBw4hJZuuDTXyurpbInn9fdFF6IfH4jMVGqQB4=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=frjvhV6NrKV9TyZSGeK6evsHeI9sAgoPOPboFwSAIij0bPp1G5rCLaVWFjD1RtFsK + j+6I/XZ60KTIjiXaQGqqznF3jU2dQ/lzPkj1VYKa9Kmt1pw4UhJvU+mbyrO6cX2mSi + 52Wi1of3M+l/UT9DYKjXgzMRuWkYoAq4tmsOe9jY= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1Yv8LB-0001gi-7y; Wed, 20 May 2015 20:03:37 +0200 +Date: Wed, 20 May 2015 20:03:25 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: Kevin Vigor , 784565@bugs.debian.org, + opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com, + x2go-dev@lists.x2go.org +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: + nx-libs-lite: parts are derived from non-free code +Message-Id: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> +In-Reply-To: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> + <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> + <1431985731.1406.2.camel@Nokia-N900> + <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> + <555A8EE9.9000503@vigor.nu> + <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV" + +--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote: + +[...] +> @Frederico: I guess we are through then. + +Yes, it seems so (I'm assuming you meant to direct this question to +me...). + +> Thanks for helping with =20 +> clarifying the situation (and bringing it up in the first place). + +You're welcome! +Thanks to you and all the involved people for helping to solve this +issue. + +>=20 +> For fixing this issue (in terms of closing the bug), I propose this =20 +> for downstream (i.e., Debian): +>=20 +> o copy bug_784565.mbox [1] into the debian/ folder of the =20 +> nx-libs-lite package + +Maybe the entire bug log is an overkill... +I would include the relevant replies only. For instance: +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D784= +565 +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D784= +565 +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D784= +565 +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D78= +4565 + +> o upload some latest release of nx-libs-lite 3.5.0.x to unstable +> o update debian/copyright accordingly + +In the debian/copyright file the license for the original DXPC code +should be replaced with the 2-clause BSD license (currently adopted for +DXPC) with a comment saying something like: + + The original DXPC code used to be available under a license which + failed to explicitly grant the permission to modify, but was later + retroactively re-licensed under the 2-clause BSD license (see + debian/bug_784565_*.mbox for the copyright owners' statements; see + for more details) + +Moreover, the copyright notice of Gian Filippo Pinzari should be +documented in some more appropriate part of the debian/copyright file, +associated with the NoMachine license (GPL v2 or later). + +> o close this bug via debian/changelog +>=20 +> For upstream, I propose this: +>=20 +> o copy bug_784565.mbox into the docs/ folder + +Again, I would not include the entire bug log, but only the relevant +messages (see above)... + +> o update copyright information in nxcomp/ subfolder +> o provide some README or such that shortly explains our last weeks' pr= +ocess +> o this will be for the upcoming 3.6.x release series of nx-libs +>=20 +> o this should also be backported to the 3.5.x release series + + +Thanks to everyone involved! +Bye. + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVXMxyAAoJED4cJ+Efab/+yUsP/RWzC9NoVGF7UnEIEpJODu0u +hVkX1zjpJ+iMByHVlatR90ulKwkvVb4d354YJqyI0VM2wUtif6XBoroB0K3i6vZE +DsxugBlzhnH8jgpPVKbOyBKshpKKZsUbvDdEXM20ZkfI4xwokymiSdHOKoHH4ZHS +WN9q+i6OezfWvZSKQ+VCbe7QiQABAcB+zCdVvUWevhNqMDKdhsDC03Ju+5YZQbse +QbgYSazZvJouLPamivquh8nBdjGpPxqAJGrlUu3SR5slJxRojRvl2cl/CDFEQEQR +gbLMnnr2nj1hF4JI2WaWCSX90NrGTfGxCN4IdNd7tmjtkg5lB+KFx63YjHbLmUl/ +k87XAyXxSWyGvc7M2xyIXBQQrHtRxtK0rdN+e7ht9PcXYyxUtQzr7vfPwvI+B2GV +M23ZUoyV1rFp5JymbUL4Vk6pq/hLnv9FzwOySNVcj6Pt8eT+BcoSbwOI1AMq1P1S +wCs/PhEGBA3TDWERXF0Fb7x24NEf7EdjmzKTGGdXTCfSkacxkGzsMaRpWb0D6IaV +tSI6CmBQ9uOdkbiNDhGX4esosyJZJQ9GrnWX9d/lTs9wXUHHykvnYRbDzpkChZdI +ICqc+IxnPmX6HU2kyq2ZAzfhx/drqLizcv0gQlyY6APjRu3EQ3tapR9kYB6BcuGU +cMLlO0549ekk8/s3Zk0i +=9Hew +-----END PGP SIGNATURE----- + +--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV-- + + + +From mike.gabriel@das-netzwerkteam.de Thu May 21 09:35:35 2015 +Received: (at 784565) by bugs.debian.org; 21 May 2015 09:35:35 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 222; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YvMt4-0006Ry-Ri + for 784565@bugs.debian.org; Thu, 21 May 2015 09:35:35 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 89FD21F2; + Thu, 21 May 2015 11:35:31 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id C86AC3BAE9; + Thu, 21 May 2015 11:35:30 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id GqfEjOoeH2CA; Thu, 21 May 2015 11:35:30 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 615DC3BAB2; + Thu, 21 May 2015 11:35:30 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 21 May 2015 09:35:30 +0000 +Date: Thu, 21 May 2015 09:35:30 +0000 +Message-ID: <20150521093530.Horde.Oeys0xv-mTUN5U5IZtdeLA1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Francesco Poli , 784565@bugs.debian.org +Cc: nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: + Bug#784565: nx-libs-lite: parts are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> + <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> + <555A8EE9.9000503@vigor.nu> + <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> + <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> +In-Reply-To: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_5hM8_j7kivGPCYTZql9Fug5"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_5hM8_j7kivGPCYTZql9Fug5 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Control: forwarded -1 https://github.com/ArcticaProject/nx-libs/issues/30 + +Hi Francesco, + +On Mi 20 Mai 2015 20:03:25 CEST, Francesco Poli wrote: + +> On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote: +> +> [...] +>> @Frederico: I guess we are through then. +> +> Yes, it seems so (I'm assuming you meant to direct this question to +> me...). + +Yes. :-) + +>> For fixing this issue (in terms of closing the bug), I propose this +>> for downstream (i.e., Debian): +>> +>> o copy bug_784565.mbox [1] into the debian/ folder of the +>> nx-libs-lite package +> +> Maybe the entire bug log is an overkill... +> I would include the relevant replies only. For instance: +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D7= +84565 +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D7= +84565 +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D7= +84565 +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D= +784565 + +ACK. + +>> o upload some latest release of nx-libs-lite 3.5.0.x to unstable +>> o update debian/copyright accordingly +> +> In the debian/copyright file the license for the original DXPC code +> should be replaced with the 2-clause BSD license (currently adopted for +> DXPC) with a comment saying something like: +> +> The original DXPC code used to be available under a license which +> failed to explicitly grant the permission to modify, but was later +> retroactively re-licensed under the 2-clause BSD license (see +> debian/bug_784565_*.mbox for the copyright owners' statements; see +> for more details) +> +> Moreover, the copyright notice of Gian Filippo Pinzari should be +> documented in some more appropriate part of the debian/copyright file, +> associated with the NoMachine license (GPL v2 or later). +> +>> o close this bug via debian/changelog +>> +>> For upstream, I propose this: +>> +>> o copy bug_784565.mbox into the docs/ folder +> +> Again, I would not include the entire bug log, but only the relevant +> messages (see above)... +> +>> o update copyright information in nxcomp/ subfolder +>> o provide some README or such that shortly explains our last=20=20 +>>=20weeks' process +>> o this will be for the upcoming 3.6.x release series of nx-libs +>> +>> o this should also be backported to the 3.5.x release series + +Doing all the above now. + +Thanks to all, +Mike + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_5hM8_j7kivGPCYTZql9Fug5 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVXabiAAoJEJr0azAldxsxd4cP/in26lIPvdANMyDaqq3zQOMh +n/Q+oZK5SYnHQP7vaS4mOWjTw5tCbfcUMcKwu1KpbgpUGOl9e1c/oKGxR3j5GWh3 +XiqQhPWEMf64OsM4vW5prJFrx0VNqfxykMWbGzQfs6Dz9ihJ6+HzVudOk3bfHwj2 +GahCflRo7xA1hJjwz5cIX1/WJaAF25TVSQ43jVpPu0pnAYOWvhOAZMpTJTZqRbgT +peuFaiKE+NOb4C/WO9mkuO3wlEBZ5Ef/RinKQDlbV5/CZElEs1f42A4t5q909EVi +U2PpaEis8BJAIKetl8g/bPoHh9u6X3tbeOKJlZBo5l2SMyLUG0sYsoAyhJKJtIvk +gwdGdO71A7HLEJ6DfvE8vYXUPy9JEOQ6hhL2qeZOtJG2DZ2Qcoll9eK5scg2YutW +ZXHRTYcCQeS4PQpvQPlCR5LuFTJeNBwJ0cWgtfXYPIrPMyeEZj/VP+Ypm82hBT+I +JFjo80QjOEJ7uEM1wmn8nD0rbbP/NVf6ot/UcwlejC/XaYIlWDW5FrXf18UbGsvu +VzaHkLbhbGUYedwsb50Uu6Nn4IX8IEcF3zbwnqmB5IlbPYV0UokjgtnKEIQbdmF4 +fQ5xe5u/p2aZTnQwt39vey2W/RxJVOHRjVVrYGv0eqgda8TYOWzI3UIjSYGfuLcU +kDRest50Qfy4tmilPx3z +=Cf5/ +-----END PGP SIGNATURE----- + +--=_5hM8_j7kivGPCYTZql9Fug5-- + + + + diff --git a/nxcomp/LICENSE b/nxcomp/LICENSE index 2b3203474..02ab0e272 100644 --- a/nxcomp/LICENSE +++ b/nxcomp/LICENSE @@ -1,4 +1,5 @@ -Copyright (c) 2001, 2010 NoMachine - http://www.nomachine.com/. +Copyright (c) 2001,2010 NoMachine - http://www.nomachine.com/. +Copyright (c) 2000,2003 Gian Filippo Pinzari NXCOMP library and NX extensions to X are copyright of NoMachine. Redistribution and use of this software is allowed according to the @@ -18,6 +19,8 @@ along with this program; if not, you can request a copy to NoMachine or write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +============================================================================== + Parts of this software are derived from DXPC project. These copyright notices apply to original DXPC code: @@ -29,9 +32,59 @@ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -Copyright (c) 1995,1996 Brian Pane +Copyright (c) 1995,1996,2000,2006 Brian Pane Copyright (c) 1996,1997 Zachary Vonler and Brian Pane Copyright (c) 1999 Kevin Vigor and Brian Pane -Copyright (c) 2000,2006 Gian Filippo Pinzari and Brian Pane +Copyright (c) 2000,2006 Gian Filippo Pinzari and Brian Pane + +All rights reserved. + +============================================================================== + +Update 2015-05-21 on the nature of the original DXPC license: The +original DXPC code used to be available under a license which failed to +explicitly grant the permission to modify, but was later retroactively +re-licensed under the 2-clause BSD license (see +README.on-retroactive-DXPC-license for the copyright owners' statements; +see for more details). + +In the course of discussion, it also became evident that Gian Filippo +Pinzari never participated in any of the official DXPC releases, but +rather worked on the forked code on the NoMachine side. Thus, we +crossed-out his name in the above copyright notice and moved him to the +top list of copyright holders associated with the GPL-2 re-licensing done +by NoMachine. +Thus, the version of DXPC where NXCOMP got forked from (most likely some +DXPC version between release 3.7.0 and release 3.8.0) can be considered +as BSD-2-clause, as quoted below: + +Copyright (c) 1995,1996 Brian Pane +Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +Copyright (c) 1999-2002 Kevin Vigor and Brian Pane All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index 0095eaa74..5d53524cf 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -384,9 +384,9 @@ static const char CopyrightInfo[] = Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/.\n\ \n\ NXCOMP, NX protocol compression and NX extensions to this software \n\ -are copyright of NoMachine. Redistribution and use of the present\n\ -software is allowed according to terms specified in the file LICENSE\n\ -which comes in the source distribution.\n\ +are copyright of NoMachine. Redistribution (modified or unmodified) and +use of the present\n\ software is allowed according to terms specified in +the file LICENSE\n\ which comes in the source distribution.\n\ \n\ Check http://www.nomachine.com/licensing.html for applicability.\n\ \n\ diff --git a/nxcomp/README.on-retroactive-DXPC-license b/nxcomp/README.on-retroactive-DXPC-license new file mode 100644 index 000000000..d7fc8c560 --- /dev/null +++ b/nxcomp/README.on-retroactive-DXPC-license @@ -0,0 +1,269 @@ +On DXPC retroactive relicensing as BSD-2-clause +=============================================== + +TL;DR; In May 2015, all versions of DXPC released before version 3.8.1 (sometime +in 2002) have retroactively been re-licensed by all previous maintainers +of DXPC as BSD-2-clause. + +This README file gives an overview of the discussion thread that lead to +the retroactive re-licensing of DXPC. + +For the full discussion, see doc/DXPC_re-licensed::debbug_784565.mbox in +this source project or #784565 on the Debian bug tracker [1]. + +light+love, +20150521, Mike Gabriel + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784565 + +------------------------------------------------------------------------------ + +STEP 1 +====== + +In May 2015, a serious license issue around the nxcomp code shipped in +this source project was raised and solved on the Debian bug tracker (thanks to +Francesco Poli and many others): http://bugs.debian.org/784565 + +""" +From: "Francesco Poli \(wintermute\)" +To: Debian Bug Tracking System +Date: Wed, 06 May 2015 19:35:32 +0200 + +I noticed that the debian/copyright states: + +[...] +| Parts of this software are derived from DXPC project. These copyright +| notices apply to original DXPC code: +| +| Redistribution and use in source and binary forms are permitted provided +| that the above copyright notice and this paragraph are duplicated in all +| such forms. +| +| THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +| WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +| MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +| +| Copyright (c) 1995,1996 Brian Pane +| Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +| Copyright (c) 1999 Kevin Vigor and Brian Pane +| Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +[...] + +This license lacks the permission to modify the DXPC code. +Hence, the original DXPC code does not appear to comply with the +DFSG. And the nx-libs-lite is in part derived from DXPC code. + +This basically means that nx-libs-lite includes parts which are +non-free (as they are derived from non-modifiable code) and +are also possibly legally undistributable (as they are non-modifiable, +but actually modified). The combination with the rest of nx-libs-lite +(which is GPL-licensed) may also be legally undistributable (since +the license with no permission to modify is GPL-incompatible). + + +If there's anything I misunderstood, please clarify. + +Otherwise, please address this issue as soon as possible. +The copyright owners for the original DXPC code should be +contacted and persuaded to re-license under GPL-compatible +terms. +""" +The issue has been settled by asking all recent maintainers (i.e., +copyright holders) of DXPC, to agree on considering the BSD-2-clause +license (as introduced in DXPC 3.8.1) retro-actively as the license of +all pre-3.8.1 DXPC releases. +""" + +STEP 2: +======= + +Kevin Vigor, the (at that time being) latest known maintainer of DXPC +replied back immediately and provided the info given below. He also +stated that he agrees to applying BSD-2-clause retroactively to all +pre-3.8.1 releases of DXPC. + +""" +From: Kevin Vigor +To: Mike Gabriel +CC: 784565@bugs.debian.org, [...] +Subject: Re: Bug#784565: nx-libs-lite: parts are derived from non-free code + +Hi Mike, et al, + + I am not the original author of dxpc, that being Brian Pane. However, + I took over maintenance circa 1999 and am still the primary maintainer + (though the project has effectively been dead for most of a decade + now). + + As you are aware, when I inherited the code, it was licensed under a + variant of the BSD license that did not include the 'with + modification' clause. To the best of my recollection, somebody from + the FSF contacted me circa 2001 regarding this and as a result, + subsequent releases were done under a standard 2-clause BSD license + with the modification clause. Again, to the best of my recollection, I + contacted Brian about this change and he offered no objection. + + Further, I recall distinctly that NoMachine contacted me and + explicitly asked permission before including DXPC code in NX, which I + happily granted with no new conditions beyond the BSD license already + in play. + + It is possible, though by no means certain, that I could dig up + ancient email to corroborate this account if necessary. However, I am + more than willing to publicly state that I believe NoMachine's use of + DXPC code to be both legal and ethical, and that my intent when + changing the license to 2-clause BSD was simply to clarity the + existing intent and that it ought therefore be considered retroactive. + + Yours, + Kevin Vigor + +[...] +""" + +STEP 3: +------- + +We were not able to dig out any recent mail address of Zachary Volner, +another of the DXPC copyright holders, but a phone number. + +On Friday, May 15th, I (Mike Gabriel) called that phone number and left a +message on - hopefully - Zach's voicebox, asking him to mail me, so I +could explain everything. He mailed back and later on posted the below +statement to the Debian BTS, also expressing his agreement to the +retroactive re-licensing of DXPC. + +""" +Date: Mon, 18 May 2015 10:05:38 -0500 +Subject: Re: Bug#784565: nx-libs-lite: parts are derived from non-free code +From: Zach Vonler +To: 784565@bugs.debian.org + +On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel < +mike.gabriel@das-netzwerkteam.de> wrote: + +> +> TL;DR; So here comes my actual question: are you (Brian Pane, Zachary +> Vonler, Gian Filippo Pinzari) ok with retroactively regarding +> pre-3.8.1 code of DXPC (that you probably all worked on at that time) +> as BSD-2-clause? Are you ok with others having taken or taking the +> pre-3.8.1 DXPC code and distribute it in a modified form? +> + + +> A yes from all of you as DXPC copyright holders is essential for the +> continuation of nx-libs development under a free license. This may +> also possibly be an issue for NXv4 in case parts of it have been +> derived from DXPC. + + +Yes, I am fine with considering the license change to be retroactive to +cover the time I was the maintainer. + +I have no objections to others distributing modified versions of that code. + +Zach +""" + +STEP 4: +------- + +By 18th May 2015, Brian Pane had not mailed back to us. Hoping he is well +and alive. Giving my personal gratitude to him for his work on DXPC back +in the nighties. + +However, Kevin found an old archive of the DXPC mailing lists, esp. a +post by Brian expressing openness to modifications of all DXPC code +versions. + +We refer to this regarding his consent on the re-licensing. + +""" +Date: Mon, 18 May 2015 15:11:42 -0600 +From: Kevin Vigor +To: Mike Gabriel , 784565@bugs.debian.org, Francesco Poli +CC: [...] +Subject: Re: Bug#784565: nx-libs-lite: parts are derived from non-free code + +By the way, poking around the interwebs I find there is an archive of the old DXPC mailing list available at: + +http://marc.info/?l=dxpc&r=1&w=2 + +I think you will find this of particular interest: + + +http://marc.info/?l=dxpc&m=93093790813555&w=2 + + +List: dxpc +Subject: Re: future tecnologies +From: Brian Pane +Date: 1999-07-02 16:42:18 +[Download message RAW] + +Kevin Vigor wrote: +> On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: +> > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc +> > code itself under GPL, or are they going to use the original dxpc's +> > licensing? +> +> No, as you can probably guess, I am no fan of the GPL. For stuff on +> this level, where my hacking is pretty simple and probably devoid of +> commercial value, I'll just release my changes to the public domain and +> give up even a copyright interest in them. +> +> Your and Zach's copyrights still stand, of course. +> +> I *think* that fact that we use the LZO library and API, but do not +> directly incorporate the code, allows us to escape the clutch of the GPL +> virus. +> +> btw, is there an original dxpc license? I haven't seen anything but a +> copyright notice, which to my non-lawyerly mind translates as "free to +> all the world as is, negotiate with copyright owner if modifying or +> including in some other product". + +The copyright banner in the Readme is all the documentation there's ever +been. My intent was to allow _any_ distribution, use, and modification +of the source, without imposing restrictions on the licensing style of +any system into which others might incorporate the code. We probably +should start stating this clearly in the distributions. + +-brian + +[prev in list] [next in list] [prev in thread] [next in thread] +""" + +STEP 5: +------- + +Last but not least, Kevin informed us that Gian Filippo Pinzari never +contributed any code to any of the official DPXC releases. So we assumed +that his copyrights on the code stem from the time where he - under the +NoMachine umbrella - worked on the code and should probably be associated +with the GPL-2 re-licensing of the code later on done by NoMachine +(which we did in the LICENSE file). + +It also appears, that there has been an incongruity between the copyright +statement in nxcomp/Misc.cpp and nxcomp/LICENSE for Gian Filippo Pinzari. +We used the copyright years (2000,2003) from nxcomp/Misc.cpp instead of +those originally given in nxcomp/LICENSE (2000,2006). + +""" +Date: Mon, 18 May 2015 19:16:25 -0600 +From: Kevin Vigor +To: Francesco Poli , + Mike Gabriel +CC: 784565@bugs.debian.org, [...] +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts are derived from non-free code + +On 5/18/2015 4:14 PM, Francesco Poli wrote: +> If it is confirmed that Gian Filippo contributed to the forking of +> DXPC within the NoMachine project, but not directly to DXPC, then I +> think that he made his contributions available under the terms of the +> GPL v2 of the NoMachine project. If this is the case, no feedback +> should be required from his side. +I can confirm that Gian Fillippo never contributed directly to DXPC. +You'll note his name does not appear in the DXPC README, and never has. +""" -- cgit v1.2.3 From 5bc91ad49ffaf48af7240871aa2cdf50d07c6ecc Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Thu, 28 May 2015 22:36:59 +0200 Subject: nxcomp/Misc.cpp: fix build failure introduced in 1f44331574bdbe4069d13e4c26df18094b49e658. --- nxcomp/Misc.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index 5d53524cf..3297d8ee8 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -384,9 +384,9 @@ static const char CopyrightInfo[] = Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/.\n\ \n\ NXCOMP, NX protocol compression and NX extensions to this software \n\ -are copyright of NoMachine. Redistribution (modified or unmodified) and -use of the present\n\ software is allowed according to terms specified in -the file LICENSE\n\ which comes in the source distribution.\n\ +are copyright of NoMachine. Redistribution (modified or unmodified) and\n\ +use of the present software is allowed according to terms specified in\n\ +the file LICENSE which comes in the source distribution.\n\ \n\ Check http://www.nomachine.com/licensing.html for applicability.\n\ \n\ -- cgit v1.2.3 From 4ed85e8ef572130d7862b155d3ee9c1e52743230 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 29 May 2015 11:15:19 +0200 Subject: nxcomp/README.on-retroactive-DXPC-license: Some layout and interpunctuation fixes. --- nxcomp/README.on-retroactive-DXPC-license | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nxcomp') diff --git a/nxcomp/README.on-retroactive-DXPC-license b/nxcomp/README.on-retroactive-DXPC-license index d7fc8c560..9ff3c1db6 100644 --- a/nxcomp/README.on-retroactive-DXPC-license +++ b/nxcomp/README.on-retroactive-DXPC-license @@ -69,11 +69,11 @@ The copyright owners for the original DXPC code should be contacted and persuaded to re-license under GPL-compatible terms. """ + The issue has been settled by asking all recent maintainers (i.e., copyright holders) of DXPC, to agree on considering the BSD-2-clause license (as introduced in DXPC 3.8.1) retro-actively as the license of all pre-3.8.1 DXPC releases. -""" STEP 2: ======= -- cgit v1.2.3 From 5a64974cc5f0e9001cb0ddba4cb2c956ba43f7df Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Tue, 16 Jun 2015 22:43:21 +0200 Subject: nxcomp/Loop.cpp: tiny whitespace fix. No functional change. --- nxcomp/Loop.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nxcomp') diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 0ab0dd988..7d17c19c8 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8120,7 +8120,7 @@ int WriteLocalData(int fd, const char *buffer, int size) ret = select(fd+1, NULL, &writeSet, NULL, &selectTs); #ifdef DEBUG - *logofs << "Loop: WriteLocalData: select() returned with a code of " << ret << " and remaining timeout of " + *logofs << "Loop: WriteLocalData: select() returned with a code of " << ret << " and remaining timeout of " << selectTs.tv_sec << " sec, " << selectTs.tv_usec << "usec\n" << logofs_flush; #endif -- cgit v1.2.3 From 00cec4924157db9498d56e5c1fbde852e8eb3717 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sun, 12 Jul 2015 01:52:29 +0200 Subject: Add pkg-config support to nxcomp, nxcompext and nxcompshad --- nxcomp/Makefile.in | 19 +++++++++++-------- nxcomp/configure.in | 5 ++++- nxcomp/nxcomp.pc.in | 15 +++++++++++++++ nxcompext/Makefile.in | 19 +++++++++++-------- nxcompext/configure.in | 5 ++++- nxcompext/nxcompext.pc.in | 13 +++++++++++++ nxcompshad/Makefile.in | 19 +++++++++++-------- nxcompshad/configure.in | 5 ++++- nxcompshad/nxcompshad.pc.in | 13 +++++++++++++ 9 files changed, 86 insertions(+), 27 deletions(-) create mode 100644 nxcomp/nxcomp.pc.in create mode 100644 nxcompext/nxcompext.pc.in create mode 100644 nxcompshad/nxcompshad.pc.in (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 6022747cb..a8647cead 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -58,14 +58,15 @@ LIBS = @LIBS@ # Other autoconfigured settings, not used at the moment. # -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -man1dir = @mandir@/man1 -VPATH = @srcdir@ -libdir = @libdir@ -includedir = @includedir@ +srcdir = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +man1dir = @mandir@/man1 +VPATH = @srcdir@ +libdir = @libdir@ +includedir = @includedir@ +pkgconfigdir = @pkgconfigdir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -292,6 +293,7 @@ install.lib: all $(INSTALL_DATA) $(LIBARCHIVE) $(DESTDIR)${libdir} $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx $(INSTALL_DATA) MD5.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) nxcomp.pc $(DESTDIR)${pkgconfigdir} echo "Running ldconfig tool, this may take a while..." && ldconfig || true install.man: @@ -313,6 +315,7 @@ uninstall.lib: $(RM_FILE) $(DESTDIR)${includedir}/nx/NXrender.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXvars.h $(RM_FILE) $(DESTDIR)${includedir}/nx/MD5.h + $(RM_FILE) $(DESTDIR)${pkgconfigdir}/nxcomp.pc echo "Running ldconfig tool, this may take a while..." && ldconfig || true uninstall.man: diff --git a/nxcomp/configure.in b/nxcomp/configure.in index 43b51573a..206df2ec7 100644 --- a/nxcomp/configure.in +++ b/nxcomp/configure.in @@ -5,6 +5,9 @@ dnl Prolog AC_INIT(NX.h) AC_PREREQ(2.13) +pkgconfigdir=${libdir}/pkgconfig +AC_SUBST(pkgconfigdir) + dnl Set our default compilation flags. CXXFLAGS="$CXXFLAGS -O3 -fno-rtti -fno-exceptions" @@ -387,4 +390,4 @@ else ALL="\$(LIBFULL) \$(LIBLOAD) \$(LIBSHARED) \$(LIBARCHIVE)" fi -AC_OUTPUT(Makefile) +AC_OUTPUT(Makefile nxcomp.pc) diff --git a/nxcomp/nxcomp.pc.in b/nxcomp/nxcomp.pc.in new file mode 100644 index 000000000..f4d3a7efb --- /dev/null +++ b/nxcomp/nxcomp.pc.in @@ -0,0 +1,15 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: nxcomp +Description: NX Compression Library +Version: @VERSION@ +#libjepg does not provide a pkgconfig-file, zlib does not provide it for older versions +#Requires: libjpeg zlib +Requires: libpng +Requires.private: x11 +Cflags: -I${includedir} -I${includedir}/nx +Libs: -L${libdir} -lXcomp + diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index b33c5aaf3..b66a4c361 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -50,14 +50,15 @@ LIBS = @LIBS@ -lz -lNX_X11 -lXcomp # LIBS = @LIBS@ -lz -ljpeg -lpthread -lNX_X11 -lXcomp # -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -man1dir = @mandir@/man1 -VPATH = @srcdir@ -libdir = @libdir@ -includedir = @includedir@ +srcdir = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +man1dir = @mandir@/man1 +VPATH = @srcdir@ +libdir = @libdir@ +includedir = @includedir@ +pkgconfigdir = @pkgconfigdir@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -171,6 +172,7 @@ install.lib: all $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) nxcompext.pc $(DESTDIR)${pkgconfigdir} echo "Running ldconfig tool, this may take a while..." && ldconfig || true install.man: @@ -185,6 +187,7 @@ uninstall.lib: $(RM_FILE) $(DESTDIR)${libdir}/$(LIBSHARED) $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlib.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXlibint.h + $(RM_FILE) $(DESTDIR)${pkgconfigdir}/nxcompext.pc echo "Running ldconfig tool, this may take a while..." && ldconfig || true uninstall.man: diff --git a/nxcompext/configure.in b/nxcompext/configure.in index e6f13c0ea..eb6604dba 100644 --- a/nxcompext/configure.in +++ b/nxcompext/configure.in @@ -5,6 +5,9 @@ dnl Prolog AC_INIT(NXlib.h) AC_PREREQ(2.13) +pkgconfigdir=${libdir}/pkgconfig +AC_SUBST(pkgconfigdir) + dnl Reset default compilation flags. CXXFLAGS="$CXXFLAGS -O3" @@ -243,4 +246,4 @@ else ALL="\$(LIBFULL) \$(LIBLOAD) \$(LIBSHARED) \$(LIBARCHIVE)" fi -AC_OUTPUT(Makefile) +AC_OUTPUT(Makefile nxcompext.pc) diff --git a/nxcompext/nxcompext.pc.in b/nxcompext/nxcompext.pc.in new file mode 100644 index 000000000..669397af6 --- /dev/null +++ b/nxcompext/nxcompext.pc.in @@ -0,0 +1,13 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: nxcompext +Description: Extension for NX Compression Library +Version: @VERSION@ +Requires: nxcomp +Requires.private: x11 +Cflags: -I${includedir} -I${includedir}/nx +Libs: -L${libdir} -lXcompext + diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 3e5c33a22..5b1abebed 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -68,14 +68,15 @@ LIBS = @LIBS@ -lNX_X11 # LIBS = $(LIBS) -lmpatrol -lbfd -liberty # -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -man1dir = @mandir@/man1 -VPATH = @srcdir@ -libdir = @libdir@ -includedir = @includedir@ +srcdir = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +man1dir = @mandir@/man1 +VPATH = @srcdir@ +libdir = @libdir@ +includedir = @includedir@ +pkgconfigdir = @pkgconfigdir@ INSTALL = @INSTALL@ INSTALL_DIR = $(INSTALL) -d -o root -g root -m 0755 @@ -206,6 +207,7 @@ install.lib: all $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} $(INSTALL_DATA) $(LIBARCHIVE) $(DESTDIR)${libdir} $(INSTALL_DATA) *.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) nxcompshad.pc $(DESTDIR)${pkgconfigdir} echo "Running ldconfig tool, this may take a while..." && ldconfig || true install.man: @@ -222,6 +224,7 @@ uninstall.lib: for header in *.h; do $(RM_FILE) $(DESTDIR)${includedir}/nx/$$header; done $(RM_DIR) $(DESTDIR)${libdir}/nx/ $(RM_DIR) $(DESTDIR)${includedir}/nx/ + $(RM_FILE) $(DESTDIR)${pkgconfigdir}/nxcompshad.pc echo "Running ldconfig tool, this may take a while..." && ldconfig || true uninstall.man: diff --git a/nxcompshad/configure.in b/nxcompshad/configure.in index 8dd1b2e21..8468b4733 100644 --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -5,6 +5,9 @@ dnl Prolog AC_INIT(Shadow.h) AC_PREREQ(2.13) +pkgconfigdir=${libdir}/pkgconfig +AC_SUBST(pkgconfigdir) + dnl Reset default compilation flags. CXXFLAGS="$CXXFLAGS -O3" @@ -281,4 +284,4 @@ if test -z "${MAKEDEPEND}"; then fi fi -AC_OUTPUT(Makefile) +AC_OUTPUT(Makefile nxcompshad.pc) diff --git a/nxcompshad/nxcompshad.pc.in b/nxcompshad/nxcompshad.pc.in new file mode 100644 index 000000000..4d4265c76 --- /dev/null +++ b/nxcompshad/nxcompshad.pc.in @@ -0,0 +1,13 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: nxcompshad +Description: Shadow Session Support for NX Compression Library +Version: @VERSION@ +Requires: nxcomp +Requires.private: x11 +Cflags: -I${includedir} -I${includedir}/nx +Libs: -L${libdir} -lXcompshad + -- cgit v1.2.3 From 39ae817885b1555a3a660b5c80a2d45c1ff29568 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 14 Jul 2015 01:39:17 +0200 Subject: nxcomp{,shad,ext}: Remove nxcomp*.pc file on clean and distclean. --- nxcomp/Makefile.in | 2 +- nxcompext/Makefile.in | 2 +- nxcompshad/Makefile.in | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index a8647cead..f01d47b4f 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -321,7 +321,7 @@ uninstall.lib: uninstall.man: clean: - -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* \ + -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* *.pc \ @ALL@ distclean: clean diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index b66a4c361..7a83b4fd1 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -193,7 +193,7 @@ uninstall.lib: uninstall.man: clean: - -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* \ + -rm -f *~ *.o *.bak *.orig *.rej st?????? core core.* *.out.* *.pc \ @ALL@ distclean: clean diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 5b1abebed..9068b1a30 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -230,7 +230,7 @@ uninstall.lib: uninstall.man: clean: - -rm -f *~ *.o *.gch *.bak st?????? core core.* *.out.* *.exe.stackdump \ + -rm -f *~ *.o *.gch *.bak st?????? core core.* *.out.* *.exe.stackdump *.pc \ $(LIBFULL) $(LIBLOAD) $(LIBSHARED) $(LIBARCHIVE) $(LIBDLL) $(LIBDLLSTATIC) $(PROGRAM) $(PROGRAM).exe distclean: clean -- cgit v1.2.3 From ee0ed871a0ba1de21dbd3c035ebdddd2ff248469 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 14 Jul 2015 14:43:34 +0200 Subject: nxcomp{,ext,shad}/Makefile.in: Create pkgconfigdir before putting files in it. --- nxcomp/Makefile.in | 1 + nxcompext/Makefile.in | 1 + nxcompshad/Makefile.in | 1 + 3 files changed, 3 insertions(+) (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index f01d47b4f..b4d11e53b 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -287,6 +287,7 @@ install.bin: install.lib: all ./mkinstalldirs $(DESTDIR)${libdir} ./mkinstalldirs $(DESTDIR)${includedir}/nx + ./mkinstalldirs $(DESTDIR)${pkgconfigdir} $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index 7a83b4fd1..a8a94353b 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -168,6 +168,7 @@ install.bin: install.lib: all ./mkinstalldirs $(DESTDIR)${libdir} ./mkinstalldirs $(DESTDIR)${includedir}/nx + ./mkinstalldirs $(DESTDIR)${pkgconfigdir} $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 9068b1a30..3b4dc0745 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -202,6 +202,7 @@ install.bin: install.lib: all $(INSTALL_DIR) $(DESTDIR)${libdir} $(INSTALL_DIR) $(DESTDIR)${includedir}/nx + $(INSTALL_DIR) $(DESTDIR)${pkgconfigdir} $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} -- cgit v1.2.3 From 6615de8dd9a08dd3c6cd0d6bebdb6158b32844f6 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 26 Aug 2015 00:29:14 +0200 Subject: create pkgcnfig dir before copying anything --- nxcomp/Makefile.in | 1 + nxcompext/Makefile.in | 1 + nxcompshad/Makefile.in | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index a8647cead..83da1ec4f 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -287,6 +287,7 @@ install.bin: install.lib: all ./mkinstalldirs $(DESTDIR)${libdir} ./mkinstalldirs $(DESTDIR)${includedir}/nx + ./mkinstalldirs $(DESTDIR)${pkgconfigdir} $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index b66a4c361..66388f86d 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -167,6 +167,7 @@ install.bin: install.lib: all ./mkinstalldirs $(DESTDIR)${libdir} + ./mkinstalldirs $(DESTDIR)${pkgconfigdir} ./mkinstalldirs $(DESTDIR)${includedir}/nx $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 5b1abebed..da10f7cad 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -76,7 +76,7 @@ man1dir = @mandir@/man1 VPATH = @srcdir@ libdir = @libdir@ includedir = @includedir@ -pkgconfigdir = @pkgconfigdir@ +pkgconfigdir = @libdir@/pkgconfig INSTALL = @INSTALL@ INSTALL_DIR = $(INSTALL) -d -o root -g root -m 0755 @@ -201,6 +201,7 @@ install.bin: install.lib: all $(INSTALL_DIR) $(DESTDIR)${libdir} + $(INSTALL_DIR) $(DESTDIR)${pkgconfigdir} $(INSTALL_DIR) $(DESTDIR)${includedir}/nx $(INSTALL_DATA) $(LIBFULL) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} -- cgit v1.2.3 From 96a1c5edf09d9a613f142f20599696352aee51fb Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 26 Aug 2015 01:02:34 +0200 Subject: Fix "Makefile.in seems to ignore the --datarootdir setting" warning --- nxcomp/Makefile.in | 2 ++ nxcompext/Makefile.in | 2 ++ nxcompshad/Makefile.in | 2 ++ 3 files changed, 6 insertions(+) (limited to 'nxcomp') diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 83da1ec4f..675a71d72 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -60,6 +60,8 @@ LIBS = @LIBS@ srcdir = @srcdir@ prefix = @prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ exec_prefix = @exec_prefix@ bindir = @bindir@ man1dir = @mandir@/man1 diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index 66388f86d..62dda4482 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -52,6 +52,8 @@ LIBS = @LIBS@ -lz -lNX_X11 -lXcomp srcdir = @srcdir@ prefix = @prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ exec_prefix = @exec_prefix@ bindir = @bindir@ man1dir = @mandir@/man1 diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index da10f7cad..d13ad9fc7 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -70,6 +70,8 @@ LIBS = @LIBS@ -lNX_X11 srcdir = @srcdir@ prefix = @prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ exec_prefix = @exec_prefix@ bindir = @bindir@ man1dir = @mandir@/man1 -- cgit v1.2.3 From 0297567cd501b6fc012c41ff4a1ae27304ff6a10 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 7 Oct 2015 20:51:12 +0200 Subject: Provide support for re-enabling Xinerama on session resumptions. By design, when resuming a session, Xinerama can only be re-enabled by NX option parsing. Thus, this change introduces a "xinerama" NX option that can be loaded via an options file into NX agent when resuming a session. The new xinerame NX session option also allows switching on Xinerama at session startup via an option file. When implementing the new NX Xinerama support into clients (like TheQVD, X2Go Client, etc., this new xinerama NX option should be used for activating Xinerama in the NX / QVD / X2Go session. --- nx-X11/programs/Xserver/hw/nxagent/Args.c | 31 ++++++++++++++++++++++++++ nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 6 +++-- nxcomp/Misc.cpp | 1 + 4 files changed, 37 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index 5c5a1e8f8..309f08d0e 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -42,6 +42,7 @@ is" without express or implied warranty. #include "screenint.h" #include "input.h" #include "misc.h" +#include "globals.h" #include "scrnintstr.h" #include "dixstruct.h" #include "servermd.h" @@ -1202,6 +1203,36 @@ static void nxagentParseOptions(char *name, char *value) return; } + else if (!strcmp(name, "xinerama")) + { +#ifdef PANORAMIX + if (!PanoramiXExtensionDisabledHack) + { + if (!strcmp(value, "1")) + { + nxagentChangeOption(Xinerama, 1); + } + else if (!strcmp(value, "0")) + { + nxagentChangeOption(Xinerama, 0); + } + else + { + fprintf(stderr, "Warning: Ignoring bad value '%s' for option 'xinerama'.\n", + validateString(value)); + } + } + else + { + nxagentChangeOption(Xinerama, 0); + fprintf(stderr, "Warning: Xinerama extension has been disabled via -disablexineramaextension cmdline switch.\n"); + } +#else + nxagentChangeOption(Xinerama, 0); + fprintf(stderr, "Warning: No Xinerama support compiled into nxagent.\n") +#endif /* of PANORAMIX */ + return; + } else if (!strcmp(name, "resize")) { if (nxagentOption(DesktopResize) == 0 || strcmp(value, "0") == 0) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index b26fa9cfe..660d30863 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -624,7 +624,7 @@ Bool nxagentReconnectSession(void) nxagentRedirectDefaultWindows(); - if (nxagentResizeDesktopAtStartup || nxagentOption(Rootless) == True) + if (nxagentResizeDesktopAtStartup || nxagentOption(Rootless) == True || nxagentOption(Xinerama) == True) { nxagentChangeScreenConfig(0, nxagentOption(RootWidth), nxagentOption(RootHeight), 0, 0); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 087f3f41a..17e749a6b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -1113,8 +1113,10 @@ Bool nxagentOpenScreen(int index, ScreenPtr pScreen, nxagentChangeOption(ViewportXSpan, nxagentOption(Width) - nxagentOption(RootWidth)); nxagentChangeOption(ViewportYSpan, nxagentOption(Height) - nxagentOption(RootHeight)); - /* store the user's preference provided via cmdline */ - nxagentOption(Xinerama) = !noPanoramiXExtension; + /* PanoramiXExtension enabled via cmdline, turn on Xinerama in nxagent + */ + if( (!noPanoramiXExtension) && (!PanoramiXExtensionDisabledHack) ) + nxagentOption(Xinerama) = True; if (nxagentReconnectTrap == 0) { diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index 3297d8ee8..ee73f19d8 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -306,6 +306,7 @@ clipboard=n\n\ streaming=n\n\ backingstore=n\n\ composite=n\n\ +xinerama=n\n\ shmem=b\n\ shpix=b\n\ kbtype=s\n\ -- cgit v1.2.3 From fa497ac95937b9fc06ff12638d9ae5057c0534ec Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 30 Dec 2015 19:25:08 +0100 Subject: nxcomp: Make nxcomp/nxproxy aware of nxagent's xinerama option in the $DISPLAY variable. --- nxcomp/Loop.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'nxcomp') diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 7d17c19c8..79d753dea 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -8951,7 +8951,8 @@ int ParseEnvironmentOptions(const char *env, int force) strcasecmp(name, "shadow") == 0 || strcasecmp(name, "shadowuid") == 0 || strcasecmp(name, "shadowmode") == 0 || - strcasecmp(name, "clients") == 0) + strcasecmp(name, "clients") == 0 || + strcasecmp(name, "xinerama") == 0) { #ifdef DEBUG *logofs << "Loop: Ignoring agent option '" << name -- cgit v1.2.3 From b8c5f677c7f56024a14db457f99eda12d8e809fb Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Wed, 2 Mar 2016 09:33:13 +0100 Subject: Rename file for windows environments, Fixes #96 --- doc/DXPC_re-licensed::debbug_784565.mbox | 3769 ----------------------------- doc/DXPC_re-licensed_debug_784565.mbox | 3769 +++++++++++++++++++++++++++++ nxcomp/README.on-retroactive-DXPC-license | 2 +- 3 files changed, 3770 insertions(+), 3770 deletions(-) delete mode 100644 doc/DXPC_re-licensed::debbug_784565.mbox create mode 100644 doc/DXPC_re-licensed_debug_784565.mbox (limited to 'nxcomp') diff --git a/doc/DXPC_re-licensed::debbug_784565.mbox b/doc/DXPC_re-licensed::debbug_784565.mbox deleted file mode 100644 index be813246c..000000000 --- a/doc/DXPC_re-licensed::debbug_784565.mbox +++ /dev/null @@ -1,3769 +0,0 @@ -From invernomuto@paranoici.org Wed May 06 17:36:12 2015 -Received: (at submit) by bugs.debian.org; 6 May 2015 17:36:12 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_PACKAGE,SPF_HELO_PASS,SPF_PASS, - XMAILER_REPORTBUG autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 79; spammy, - 0. spammytokens: hammytokens:0.000-+--H*M:reportbug, 0.000-+--H*MI:reportbug, - 0.000-+--H*x:reportbug, 0.000-+--H*UA:reportbug, 0.000-+--H*x:6.6.3 -Return-path: -Received: from perdizione.investici.org ([94.23.50.208]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1Yq3Ex-0001dB-Ks - for submit@bugs.debian.org; Wed, 06 May 2015 17:36:11 +0000 -Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 3987C120F77; - Wed, 6 May 2015 17:36:07 +0000 (UTC) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; - s=stigmate; t=1430933767; - bh=QAdaIheSnzoHI301+0HPUrAK62wjbKWg7iWEzGzlOTs=; - h=From:To:Subject:Date; - b=X/2YGWFWL2KRAVqONR2Q6Q6HuMii+1WfGCbSpf8XvQesaf7qWlvY2u1IVKgKVpN2m - Baq+3OrQ1adlmdHQQJm7tLfv37vRZVNOUpP3lyKQX4v3B/Gos63+1GqfyJ7qGkvQha - 4qwytZrPI20VmUswHf7qhgSGIVQmy0COEZZX0PF8= -Received: from frx by homebrew with local (Exim 4.85) - (envelope-from ) - id 1Yq3EK-0001ye-Bx; Wed, 06 May 2015 19:35:32 +0200 -Content-Type: text/plain; charset="us-ascii" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -From: "Francesco Poli \(wintermute\)" -To: Debian Bug Tracking System -Subject: nx-libs-lite: parts are derived from non-free code -Message-ID: <20150506173532.7531.31389.reportbug@homebrew> -X-Mailer: reportbug 6.6.3 -Date: Wed, 06 May 2015 19:35:32 +0200 -Delivered-To: submit@bugs.debian.org - -Package: nx-libs-lite -Version: 3.5.0.27-1 -Severity: serious -Justification: Policy 2.2.1 - -Hello and thanks for maintaining this package in Debian! - -I noticed that the debian/copyright states: - -[...] -| Parts of this software are derived from DXPC project. These copyright -| notices apply to original DXPC code: -| -| Redistribution and use in source and binary forms are permitted provided -| that the above copyright notice and this paragraph are duplicated in all -| such forms. -| -| THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED -| WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -| MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -| -| Copyright (c) 1995,1996 Brian Pane -| Copyright (c) 1996,1997 Zachary Vonler and Brian Pane -| Copyright (c) 1999 Kevin Vigor and Brian Pane -| Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane -[...] - -This license lacks the permission to modify the DXPC code. -Hence, the original DXPC code does not appear to comply with the -DFSG. And the nx-libs-lite is in part derived from DXPC code. - -This basically means that nx-libs-lite includes parts which are -non-free (as they are derived from non-modifiable code) and -are also possibly legally undistributable (as they are non-modifiable, -but actually modified). The combination with the rest of nx-libs-lite -(which is GPL-licensed) may also be legally undistributable (since -the license with no permission to modify is GPL-incompatible). - - -If there's anything I misunderstood, please clarify. - -Otherwise, please address this issue as soon as possible. -The copyright owners for the original DXPC code should be -contacted and persuaded to re-license under GPL-compatible -terms. - -Thanks for your time. -Bye. - - - -From mike.gabriel@das-netzwerkteam.de Mon May 11 09:07:54 2015 -Received: (at 784565) by bugs.debian.org; 11 May 2015 09:07:54 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 203; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1Yrjgn-0001o6-MP - for 784565@bugs.debian.org; Mon, 11 May 2015 09:07:54 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 85F37E4B; - Mon, 11 May 2015 11:07:49 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id F1CFF3C20D; - Mon, 11 May 2015 11:07:48 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id wKYnujH8-HJ8; Mon, 11 May 2015 11:07:48 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 960E33C18A; - Mon, 11 May 2015 11:07:48 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Mon, 11 May 2015 09:07:48 +0000 -Date: Mon, 11 May 2015 09:07:48 +0000 -Message-ID: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: "Francesco Poli (wintermute)" , - 784565@bugs.debian.org -Cc: x2go-dev@lists.x2go.org, Nito Martinez , - opensource@gznianguan.com, dktrkranz@debian.org -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_ALb-1vQm6P3YAYx12TU2SQ1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_ALb-1vQm6P3YAYx12TU2SQ1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi Francesco, -Cc:ing a couple of people/groups being affected by the below. - -On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote: - -> Package: nx-libs-lite -> Version: 3.5.0.27-1 -> Severity: serious -> Justification: Policy 2.2.1 -> -> Hello and thanks for maintaining this package in Debian! -> -> I noticed that the debian/copyright states: -> -> [...] -> | Parts of this software are derived from DXPC project. These copyright -> | notices apply to original DXPC code: -> | -> | Redistribution and use in source and binary forms are permitted prov= -ided -> | that the above copyright notice and this paragraph are duplicated in= - all -> | such forms. -> | -> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI= -ED -> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -> | -> | Copyright (c) 1995,1996 Brian Pane -> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane -> | Copyright (c) 1999 Kevin Vigor and Brian Pane -> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane -> [...] -> -> This license lacks the permission to modify the DXPC code. -> Hence, the original DXPC code does not appear to comply with the -> DFSG. And the nx-libs-lite is in part derived from DXPC code. -> -> This basically means that nx-libs-lite includes parts which are -> non-free (as they are derived from non-modifiable code) and -> are also possibly legally undistributable (as they are non-modifiable, -> but actually modified). The combination with the rest of nx-libs-lite -> (which is GPL-licensed) may also be legally undistributable (since -> the license with no permission to modify is GPL-incompatible). -> -> -> If there's anything I misunderstood, please clarify. -> -> Otherwise, please address this issue as soon as possible. -> The copyright owners for the original DXPC code should be -> contacted and persuaded to re-license under GPL-compatible -> terms. -> -> Thanks for your time. -> Bye. - -I/we will investigate this asap. Thanks for bringing this up. - -Greets, -Mike ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_ALb-1vQm6P3YAYx12TU2SQ1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVUHFkAAoJEJr0azAldxsxbNYP/jqxwacIBSYlAhaZEf62JFtt -ObBSEqUQfjljkolnzeaf2K4lBT6dl1x9VxGvIM5S8y9H/qpbFW+XWNHIR1BpdAsw -TgKuqb6giM+28V9pMaHuqwPwMQ7YnFsfSKf/YCEs0AvJJKsf5jSUbeHAJ/RHwC4Z -iGOj/KRqQ3tqIZJbzV2TCMNYnPm4sttcvKcRIOnBLDEVn1CRhlYX93v/pP87iPok -wvvnbPpM+D2oq1JjS6mR2JbVHspc9/ZGq5I100Cdo5r3Y3upunNyG4IRCL0ttBzg -nRjEiktViU/hhBB2xjYRaDsEpRFSsOeItLWss2PNYER2uIYuimvUsJzhtj7IwsV8 -4J8wlvn0uRZRiQwSWI/UaL1r1eqI4AlMA4hzDnWR7cBB4nTNE6YWzTpYYhsqNVfJ -jURTKIwGzDVVcpU5UZZhEtPcD5utkd8eYn4fA68pvkje3OFpLjfQnFWUcjIn5ywb -mejuW08cnsdfB0he+NTFXpK4p4wiu92pqul/EqPKW3Dm1w7FZXPHpIkN6VQ03LdY -kSXOOpITg8cHESsHlvyKIZITaLDrNAPB4RHkRxyWhRpZWgEM35FasE6hIRTbszQ9 -jpuXcrG11L7HbITi599U8ZAo4qK9OgWfzJEsBdQKXBHEqCjiv4GvdXvgJyR2Eukp -OIldtig78B5JgGKDLKjY -=G+R6 ------END PGP SIGNATURE----- - ---=_ALb-1vQm6P3YAYx12TU2SQ1-- - - - - -From X2Go-ML-1@baur-itcs.de Mon May 11 09:21:13 2015 -Received: (at 784565) by bugs.debian.org; 11 May 2015 09:21:13 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-9.4 required=4.0 tests=BAYES_00,DIGITS_LETTERS, - FOURLA,FVGT_m_MULTI_ODD,HAS_BUG_NUMBER,MONEY,PGPSIGNATURE,RCVD_IN_DNSWL_NONE, - RCVD_IN_MSPIKE_H2,STOCKLIKE autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 67; hammy, 149; neutral, 240; spammy, - 1. spammytokens:0.997-1--jjng hammytokens:0.000-+--sk:iqecbae, - 0.000-+--sk:iQEcBAE, 0.000-+--sha256, 0.000-+--SHA256, 0.000-+--H*UA:31.6.0 -Return-path: -Received: from mout.kundenserver.de ([212.227.17.10]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1Yrjtg-0003AA-Jy - for 784565@bugs.debian.org; Mon, 11 May 2015 09:21:13 +0000 -Received: from [192.168.0.171] ([78.43.125.82]) by mrelayeu.kundenserver.de - (mreue102) with ESMTPSA (Nemesis) id 0MBke7-1Z2Qat2SRz-00AqUz; Mon, 11 May - 2015 11:20:48 +0200 -Message-ID: <5550746E.1040707@baur-itcs.de> -Date: Mon, 11 May 2015 11:20:46 +0200 -From: Stefan Baur -User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 -MIME-Version: 1.0 -To: Mike Gabriel , - "Francesco Poli (wintermute)" , - 784565@bugs.debian.org -CC: opensource@gznianguan.com, Nito Martinez , - dktrkranz@debian.org, x2go-dev@lists.x2go.org -Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are - derived from non-free code -References: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> -In-Reply-To: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> -Content-Type: text/plain; charset=windows-1252 -Content-Transfer-Encoding: 8bit -X-Provags-ID: V03:K0:1hGpzbQ6YusgDW3LQNBHFEMw92BwlVIDUv6GGAN1bbqSykY6aoQ - ekoiYjWtMWz72yWg8Xd5/k/PEjXU7VxzZNBzxoyEx46ughI6kPZG/kS6r+aMsjf3KVXNi4U - da367A2ZowOeet1s6/LouBbblzzvjx7LF9SFO2TW4oakOyxhNCWEhVpveTV9FQPnavxZzhL - D5GN1YjxQGdnacFHIIuSQ== -X-UI-Out-Filterresults: notjunk:1; - ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - -hi everyone, - -looking at the current homepage of DXPC, the following can be found in -their changelog http://www.vigor.nu/dxpc/CHANGES: - - -3.8.1 Release: - -[...] - -Changed license to BSD license. - -- -Stefan - -Am 11.05.2015 um 11:07 schrieb Mike Gabriel: -> Hi Francesco, Cc:ing a couple of people/groups being affected by -> the below. -> -> On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) -> wrote: -> ->> Package: nx-libs-lite Version: 3.5.0.27-1 Severity: serious ->> Justification: Policy 2.2.1 ->> ->> Hello and thanks for maintaining this package in Debian! ->> ->> I noticed that the debian/copyright states: ->> ->> [...] | Parts of this software are derived from DXPC project. ->> These copyright | notices apply to original DXPC code: | | ->> Redistribution and use in source and binary forms are permitted ->> provided | that the above copyright notice and this paragraph ->> are duplicated in all | such forms. | | THIS SOFTWARE IS ->> PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED | ->> WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES ->> OF | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | | ->> Copyright (c) 1995,1996 Brian Pane | Copyright (c) 1996,1997 ->> Zachary Vonler and Brian Pane | Copyright (c) 1999 Kevin Vigor ->> and Brian Pane | Copyright (c) 2000,2001 Gian Filippo Pinzari ->> and Brian Pane [...] ->> ->> This license lacks the permission to modify the DXPC code. Hence, ->> the original DXPC code does not appear to comply with the DFSG. ->> And the nx-libs-lite is in part derived from DXPC code. ->> ->> This basically means that nx-libs-lite includes parts which are ->> non-free (as they are derived from non-modifiable code) and are ->> also possibly legally undistributable (as they are ->> non-modifiable, but actually modified). The combination with the ->> rest of nx-libs-lite (which is GPL-licensed) may also be legally ->> undistributable (since the license with no permission to modify ->> is GPL-incompatible). ->> ->> ->> If there's anything I misunderstood, please clarify. ->> ->> Otherwise, please address this issue as soon as possible. The ->> copyright owners for the original DXPC code should be contacted ->> and persuaded to re-license under GPL-compatible terms. ->> ->> Thanks for your time. Bye. -> -> I/we will investigate this asap. Thanks for bringing this up. -> -> Greets, Mike -> -> -> _______________________________________________ x2go-dev mailing -> list x2go-dev@lists.x2go.org -> http://lists.x2go.org/listinfo/x2go-dev -> - - -- -- -BAUR-ITCS UG (haftungsbeschränkt) -Geschäftsführer: Stefan Baur -Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 -Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQEcBAEBCAAGBQJVUHRuAAoJEG7d9BjNvlEZsCYH/i0GArfIg0xNQ91srhMtMxVf -NcaQ5uOJLLZ+e0WOcRMm5Kprg9f6uKQNFRo1dv9NCFNxjrpdR/5/LMmeSYxafIQA -beoYbnuMMRBvcjoUN5ScGD/jjng/9VCiwviBVjUc6AhDebGjVone2OtaIXPoMELI -ClKnDShC41qQpSUgEESUYHiIIptkkmSrIJS6Ostsby5rhT1mApv7ulBqVvADUKCX -OtNZmG+O6Bvur63G2fBTrdQwZAed0+Q6/XlhfOkf5QNG4I9fd5KlrMDpSmO8w7Cm -h4rVnveLS5+0afZXs9sImhNW4I7Ah8zh5sAUFNCGXEuO60XRRysUO4i1WjRgnZw= -=sgsA ------END PGP SIGNATURE----- - - - -From mike.gabriel@das-netzwerkteam.de Mon May 11 09:26:40 2015 -Received: (at 784565) by bugs.debian.org; 11 May 2015 09:26:40 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 246; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1Yrjyx-0003n8-Sv - for 784565@bugs.debian.org; Mon, 11 May 2015 09:26:40 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B938DE53; - Mon, 11 May 2015 11:26:37 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 564F73C20D; - Mon, 11 May 2015 11:26:37 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id zA86M1U+gj03; Mon, 11 May 2015 11:26:37 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id E81223BF5A; - Mon, 11 May 2015 11:26:36 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Mon, 11 May 2015 09:26:36 +0000 -Date: Mon, 11 May 2015 09:26:36 +0000 -Message-ID: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: "Francesco Poli (wintermute)" , - 784565@bugs.debian.org -Cc: x2go-dev@lists.x2go.org, nito.martinez@qindel.com, - opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_8dL5yJABYXdTfUqhzQkNVg1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_8dL5yJABYXdTfUqhzQkNVg1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi Francesco, - -On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote: - -> Package: nx-libs-lite -> Version: 3.5.0.27-1 -> Severity: serious -> Justification: Policy 2.2.1 -> -> Hello and thanks for maintaining this package in Debian! -> -> I noticed that the debian/copyright states: -> -> [...] -> | Parts of this software are derived from DXPC project. These copyright -> | notices apply to original DXPC code: -> | -> | Redistribution and use in source and binary forms are permitted prov= -ided -> | that the above copyright notice and this paragraph are duplicated in= - all -> | such forms. -> | -> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI= -ED -> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -> | -> | Copyright (c) 1995,1996 Brian Pane -> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane -> | Copyright (c) 1999 Kevin Vigor and Brian Pane -> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane -> [...] -> -> This license lacks the permission to modify the DXPC code. -> Hence, the original DXPC code does not appear to comply with the -> DFSG. And the nx-libs-lite is in part derived from DXPC code. -> -> This basically means that nx-libs-lite includes parts which are -> non-free (as they are derived from non-modifiable code) and -> are also possibly legally undistributable (as they are non-modifiable, -> but actually modified). The combination with the rest of nx-libs-lite -> (which is GPL-licensed) may also be legally undistributable (since -> the license with no permission to modify is GPL-incompatible). -> -> -> If there's anything I misunderstood, please clarify. -> -> Otherwise, please address this issue as soon as possible. -> The copyright owners for the original DXPC code should be -> contacted and persuaded to re-license under GPL-compatible -> terms. -> -> Thanks for your time. -> Bye. - -Please follow-up with reading [1]. - -As it seems, dxpc has been long ago relicensed to BSD-2-clause (for=20=20 -v3.8.1=20in/around 2002). - -I have no exact clue, if NoMachine forked prior to that (if they quote=20= -=20 -the=20old licensing terms, then probably they did). - -However, how do you see the situation considering that upstream=20=20 -changed=20to BSD-2-clause a long time ago. What approach do you propose=20= -=20 -for=20nx-libs-lite to get the issue fully fixed? - -Mike - -[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028 - ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_8dL5yJABYXdTfUqhzQkNVg1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVUHXMAAoJEJr0azAldxsxls4P/RyFv6ghemJhfrHNbAUEDmNz -kyY2Q4Jt6pIDXX3U3yThYCeyG1nVAwKJI2B/q7q/YWWdzea8RzTTXrj3DubYplOZ -PatD30FhlKdL+rsohmLFrA5dHVcwFbJA4GqrR2Y8y6NSLEtifYE4EDIDKLqvX6Dy -msvHyLl+3AXg2gR4Wmu9lOLC8MrPA3A7nwlw/wCa6kwf3i6FUsAB2nzUsj3yUX1f -4iXzcZhjGCJli9otPLlYFjPuc0HjwBgoOx5tEOL1hgVYP+yiQCw24LOKwHTnDogZ -ONio1VdS+VPUbhVTlBfYD29lSDO8pgBGk43325b7Bmo56Ica+HCr8TznMVASidvJ -dbAXZQOMuHxBofP9sm89q2lIXjPmJFWspG76OEM8dAIMKo87gQNuOTNPuOK0Zj8T -Ua+40fIc5/C7CyRgGO8wqb6dYjD4Q6HxbjSQJrlxsHdjKIozv+MXGV+if/bKSXM8 -tIAh9JzcwgYtRVlVQXCmpk+yP9DntWFs5WeOEGBqKZw+was5OSXSlpjukNn9us2a -bWj0E84zMlIu61KVZ8ot14OMIzgUxzymIt/LzWHKiiSezb20S22LJGBaKLxbqplp -9Gi8g9rEhjn5Pgpt9B3MlIWQTKhpAa71GCD9Okt9vhPsBiKE57fSjCYgQR83lhDy -kbLoUbByjixBA+TXUYM8 -=NW/2 ------END PGP SIGNATURE----- - ---=_8dL5yJABYXdTfUqhzQkNVg1-- - - - - -From invernomuto@paranoici.org Mon May 11 19:37:54 2015 -Received: (at 784565) by bugs.debian.org; 11 May 2015 19:37:54 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.5 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE, - SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 9; hammy, 150; neutral, 119; spammy, - 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, - 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, - 0.000-+--H*c:pgp-signature -Return-path: -Received: from perdizione.investici.org ([94.23.50.208]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1YrtWT-0004t9-Ty - for 784565@bugs.debian.org; Mon, 11 May 2015 19:37:54 +0000 -Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9C4DF120408; - Mon, 11 May 2015 19:37:46 +0000 (UTC) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; - s=stigmate; t=1431373066; - bh=vGWv2ZFJgWpWShHOYFcPN0r6i8IFunsxG5IJHqxpdbk=; - h=Date:From:To:Cc:Subject:In-Reply-To:References; - b=JQRMmMDPSZFkJ21FEn1TdsCco0YtUFBII0CsMLxdl3mxM5SzGN9flVttwlZ+5RrgR - a7/u/VUVPzv0ZcdVKwrC+Nq6imwd5hzUj80C+e6KLZQoovz6shmhuIdKtga2OIl7lm - cF0ONDqjdq0pI158Ws5hz0MiwJkzF6V5VbIEk3SY= -Received: from frx by homebrew with local (Exim 4.85) - (envelope-from ) - id 1YrtVj-0001Cl-NV; Mon, 11 May 2015 21:37:07 +0200 -Date: Mon, 11 May 2015 21:36:59 +0200 -From: Francesco Poli -To: Mike Gabriel -Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, - nito.martinez@qindel.com, opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -Message-Id: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> -In-Reply-To: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> -X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) -Mime-Version: 1.0 -Content-Type: multipart/signed; protocol="application/pgp-signature"; - micalg="PGP-SHA256"; - boundary="Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH" - ---Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH -Content-Type: text/plain; charset=US-ASCII -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: - -[...] -> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for =20 -> v3.8.1 in/around 2002). - -This is great news, indeed! - ->=20 -> I have no exact clue, if NoMachine forked prior to that (if they quote =20 -> the old licensing terms, then probably they did). - -Yep, it's plausible... - ->=20 -> However, how do you see the situation considering that upstream =20 -> changed to BSD-2-clause a long time ago. What approach do you propose =20 -> for nx-libs-lite to get the issue fully fixed? - -If the fork has been performed before the DXPC re-licensing (as it's -likely), I see two possible strategies: - - (A) someone gets in touch with DXPC copyright owners and asks them -whether the re-licensing may be considered retroactive (applicable to -older versions of DXPC); in case the answer is negative, DXPC copyright -owners should be persuaded to make the re-licensing retroactive - - (B) nx-libs-lite upstream developers re-fork from scratch, basing the -new code on a BSD-licensed version of DXPC (I suspect this may turn out -to be somewhat painful...) - - -Obviously, the optimal solution is (A). I hope it may work... - -Thanks for your time and for your prompt and kind replies. - - ---=20 - http://www.inventati.org/frx/ - There's not a second to spare! To the laboratory! -..................................................... Francesco Poli . - GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE - ---Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH -Content-Type: application/pgp-signature - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAEBCAAGBQJVUQTgAAoJED4cJ+Efab/+Mx4QAMLmPwqnPYyI0Bl6sZgxP3nA -Yfrf7m2+swTrNz3M2xNepx1KoylRNlz2DiCuG7QWABNupSK60ACtIuAvWIAPSYNt -wlHDRGiVrpCKBKzB4N3zjB0MN1VELhdWqrap8Yw5nnwohJ2jXoAUaqorwEba6YBg -VK1BsGvlqcwSYt8eWt+ugpaRR43DbZTCpAvBn3t9DdYe8LwtlJDTCatbJfovlTJ9 -P19TNbwxiEoj8uWbmpOO/kLvvMed0avTEsvgAROQKF/dnWCnB1dh5QGd06IHdAY7 -KfnoZc4HUM8BB/ylWsaV13Cd8UA/2B2FKp3xbab3ry8gWeMe6dnk/pFa+pv6TGeT -I+6VxWOMT/hc4AwBOl+R7yqp2AkcNO+KP2o5i04+yENcbgrGxyCQU2aVsHkJsVYi -N5myXypSZY3tF6TnAm/UYP2GgiMCo0FXptwVoLiGSJkBw0tn13I25pYSqjYZlq4q -4RQYuTEHEkV16tCdEdy+DSuI0GsABYUkY3a3A3TLj9LjiPPEDwLOxHjZlLbeyXP+ -xtmC3d82YvMmLXUiqItuhiBYjCRFq8piGGCDRX7wp1B+t6xHUcR8UV5O4s554iMX -+r2m1mLzM285PoKwP/Smd6BXU5RfhT4svmxvaMSSvADNo8X4ddNd2Hiq/Gib2ftH -mYKFpBE7IMwQqfrOpAW5 -=Bt09 ------END PGP SIGNATURE----- - ---Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH-- - - - -From mike.gabriel@das-netzwerkteam.de Tue May 12 03:59:27 2015 -Received: (at 784565) by bugs.debian.org; 12 May 2015 03:59:27 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 21; hammy, 150; neutral, 206; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1Ys1Lq-0000j4-Sf - for 784565@bugs.debian.org; Tue, 12 May 2015 03:59:27 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B4F9BAA3; - Tue, 12 May 2015 05:59:21 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 299233C21D; - Tue, 12 May 2015 05:59:21 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id G2j6l6YtFs0q; Tue, 12 May 2015 05:59:21 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id C67023BF5A; - Tue, 12 May 2015 05:59:20 +0200 (CEST) -Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de - [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Tue, 12 May 2015 03:59:20 +0000 -Date: Tue, 12 May 2015 03:59:20 +0000 -Message-ID: <20150512035920.Horde.JnI2DWx-AAFvzpbQFqakJw3@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Francesco Poli -Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, - nito.martinez@qindel.com, opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> -In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 91.59.146.91 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_kYZkQgyfaSLUTLVIkzgq8w1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_kYZkQgyfaSLUTLVIkzgq8w1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi Francesco, - -On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: - -> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: -> -> [...] ->> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for ->> v3.8.1 in/around 2002). -> -> This is great news, indeed! -> ->> ->> I have no exact clue, if NoMachine forked prior to that (if they quote ->> the old licensing terms, then probably they did). -> -> Yep, it's plausible... -> ->> ->> However, how do you see the situation considering that upstream ->> changed to BSD-2-clause a long time ago. What approach do you propose ->> for nx-libs-lite to get the issue fully fixed? -> -> If the fork has been performed before the DXPC re-licensing (as it's -> likely), I see two possible strategies: -> -> (A) someone gets in touch with DXPC copyright owners and asks them -> whether the re-licensing may be considered retroactive (applicable to -> older versions of DXPC); in case the answer is negative, DXPC copyright -> owners should be persuaded to make the re-licensing retroactive - -This is the way to go, I will pull in Kevin Vigor (the upstream author=20= -=20 -of=20DXPC) into this thread with my next email. - -> (B) nx-libs-lite upstream developers re-fork from scratch, basing the -> new code on a BSD-licensed version of DXPC (I suspect this may turn out -> to be somewhat painful...) - -Yeah, indeed painful. - -> Obviously, the optimal solution is (A). I hope it may work... -> -> Thanks for your time and for your prompt and kind replies. - -Also, Michael DePaulo, one of the upstream NX maintainers noted that=20=20 -DXPC=20simply used a previous version of the BSD license, see [1]. The=20= -=20 -weakness=20of that ancient license template is that modification is not=20= -=20 -explictily=20allowed, but neither forbidden. - -I think, regarding the historical usage of the BSD license predecessor=20= -=20 -and=20the switch to BSD-2-clause should be fine already (I am not a=20=20 -lawyer,=20though). I will contact DXPC upstream nonetheless and ask for=20= -=20 -a=20statement. - -Greets, -Mike - -[1] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license - ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_kYZkQgyfaSLUTLVIkzgq8w1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIbBAABAgAGBQJVUXqYAAoJEJr0azAldxsxYVAP+Pg4A2zg6TEs+vk/mknbLwV2 -dOv/tQiarKfb6JJRcm1j6rzGBhGzO4iwj/Uk8wmbFvIJgxs6mM93kfOPa0lJYM1N -D0YcKPPsHqgxcyVW8pIyawhnW5IsIDSaugjsandx1hbfl+J5SBCAtSovhz5F+Fkf -fs1wvgYcGKtWGNTxV5Qy48EnzSzAVz2r4GKBYUdRiCNpXtl/M8jJFIfm/cmJ7PJq -ycY8Diu6x3mVvPdvap/0pOOY0uqg256XX7dcFJUtTNZoai4oGOuwR1o4g9jztyd/ -4JJ2E1MigAjGSYPpTnQGhORA86yDLQrk/NlLG/2/J8meG7Nsky6xmf3zBhuG/0G0 -3TZYQcoFrFS3EWQs0uKiGKGylchODCfXHZgF0y5NT5iqr4DMT51AlUeQl3MWhxf8 -j8OMjK86jsPMrSjL0l4uYbs+znMdlVpgjBSYsKoXg3tIc3WJpj77qyPUbfwO8hys -5Q2j4lDaGV5NAnSmZ//p9lPwRu8oAMwSkrMkRTaJwLVhcmDzgoujZEpEPj64lIEy -HD3p/5dSJF+RsYT6286JkWAZm+XvXeFpEqGZ7xAVsrYSY1qFm3g0se1oHxxcVWyN -PEsQBOt8WXgYmtz7RLaBDbBQVMmeRMxbPCkC1xCHCU+Vq3y9dW/3TyOW4Oz1YoZR -3YATO+YehUKVdM5teyg= -=884K ------END PGP SIGNATURE----- - ---=_kYZkQgyfaSLUTLVIkzgq8w1-- - - - - -From mike.gabriel@das-netzwerkteam.de Tue May 12 04:46:43 2015 -Received: (at 784565) by bugs.debian.org; 12 May 2015 04:46:44 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 27; hammy, 149; neutral, 375; spammy, - 1. spammytokens:0.998-1--arctica hammytokens:0.000-+--IIRC, - 0.000-+--H*c:pgp-signature, 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, - 0.000-+--H*c:signed -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1Ys25b-0004lf-4r - for 784565@bugs.debian.org; Tue, 12 May 2015 04:46:43 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 6AB7617F5; - Tue, 12 May 2015 06:46:40 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 71D923BC0D; - Tue, 12 May 2015 06:46:38 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id TYvbPGLabTH7; Tue, 12 May 2015 06:46:38 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 0669F3BA08; - Tue, 12 May 2015 06:46:38 +0200 (CEST) -Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de - [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Tue, 12 May 2015 04:46:37 +0000 -Date: Tue, 12 May 2015 04:46:37 +0000 -Message-ID: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Kevin Vigor -Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, - nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli - -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> -In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 91.59.146.91 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_9zX_XixEpAdR4NT64zJguA1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_9zX_XixEpAdR4NT64zJguA1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Dear Kevin, - -(I Cc: several people involved in this, also the X2Go development=20=20 -mailing=20list...) - -[If you feel unconfortable with discussing the details / the impact of=20= -=20 -the=20below in public, feel free to answer to me directly first with=20=20 -questions=20and concerns, before answering to all people who are listed=20= -=20 -in=20Cc:.] - -Someone from the Debian legal team recently brought up a license issue=20= -=20 -discovered=20in nx-libs 3.x series. - -TL;DR; Suggested by Francesco Poli from the Debian legal team: """ -(A) someone gets in touch with DXPC copyright owners and asks them -whether the re-licensing [in 2002] may be considered retroactive=20=20 -(applicable=20to -older versions of DXPC); in case the answer is negative, DXPC copyright -owners should be persuaded to make the re-licensing retroactive -""" - -The person contacting you about the above question is me. Mike=20=20 -Gabriel,=20Debian Developer and one of the current upstream maintainers=20= -=20 -of=20nx-libs 3.x (previously also know as "NX redistributed" for X2Go)=20= -=20 -[1]. - -This=20issue requires some time of reading from you and (hopefully) a=20=20 -public=20statement, that the original DXPC code can be considered as=20=20 -BSD-2-clause=20(the current license) also for released versions prior=20=20 -2002=20when the ancient BSD license template [2] was still shipped with=20= -=20 -DXPC. - -For=20a complete follow-up, please check Debian bug #784565 [3]. - -We are aware that NoMachine forked DXPC at some early stage around the=20= -=20 -year=202000 and wrote their own commercial product around it. Obviously,=20= -=20 -this=20fork happened before 2002 (i.e., before DXPC release 3.8.1), as=20= -=20 -libxcomp3=20in NoMachine's NX ships the previously used BSD license=20=20 -template.=20I am not sure, if that fork was easy for you or actually a=20= -=20 -nuisance.=20I may only guess at this point. I'd be happy to know more=20=20 -(maybe=20not in this mail thread, though). - -NoMachine has stopped publishing NXv3 updates a couple of years ago=20=20 -(2011=20IIRC), now. The maintenance has been moved into the hands of the=20= -=20 -currently=20available FLOSS projects "X2Go", "Arctica Project" [NEW] and=20= -=20 -"TheQVD".=20Some of us are running a business model on top of that=20=20 -(consultancy,=20support contracts, feature development contracts), some=20= -=20 -of=20us spend a lot of their free time on improving / maintaining=20=20 -nx-libs=20(as we call NoMachine's NXv3 at the moment). - -To outline the impact of my mail clearly: If you say that it was not=20=20 -legal=20by NoMachine to fork DXPC at the given time (before 2002), then=20= -=20 -all=20FLOSS remote desktop / remote application would be in real=20=20 -trouble,=20because then the core component of their software projects=20=20 -could=20not be considered as free (as in DFSG, Debian free software=20=20 -guidelines[4])=20anymore. Also the code changes originally performed by=20= -=20 -NoMachine=20might have been illegal in the first place. All current=20=20 -maintenance=20activities and also planned future development on nx-libs=20= -=20 -would=20become questionable. - -Thus, I hope you can chime in on this: Dear developers of nx-libs,=20=20 -please=20assume the BSD-2-license as retroactive and applicable to DXPC=20= -=20 -version=20earlier than 3.8.1. As the copyright holder, I agree with=20=20 -modifications=20of code bases that originate before the change to=20=20 -BSD-2-clause=20license got introduced in 3.8.1 of DXPC. - -And... I will bring up that question later (but it is burning under my=20= -=20 -nails)...=20Be sure: The nx-libs maintainers would be happy to have the=20= -=20 -original=20DXPC author on the nx-libs developer team. But I will bring=20= -=20 -up=20that question later (when this very issue is settled). ;-) - -Greets, -Mike - -[1] https://github.com/ArcticaProject/nx-libs -[2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license -[3] http://bugs.debian.org/784565 -[4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines - -On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: - -> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: -> -> [...] ->> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for ->> v3.8.1 in/around 2002). -> -> This is great news, indeed! -> ->> ->> I have no exact clue, if NoMachine forked prior to that (if they quote ->> the old licensing terms, then probably they did). -> -> Yep, it's plausible... -> ->> ->> However, how do you see the situation considering that upstream ->> changed to BSD-2-clause a long time ago. What approach do you propose ->> for nx-libs-lite to get the issue fully fixed? -> -> If the fork has been performed before the DXPC re-licensing (as it's -> likely), I see two possible strategies: -> -> (A) someone gets in touch with DXPC copyright owners and asks them -> whether the re-licensing may be considered retroactive (applicable to -> older versions of DXPC); in case the answer is negative, DXPC copyright -> owners should be persuaded to make the re-licensing retroactive -> -> (B) nx-libs-lite upstream developers re-fork from scratch, basing the -> new code on a BSD-licensed version of DXPC (I suspect this may turn out -> to be somewhat painful...) -> -> -> Obviously, the optimal solution is (A). I hope it may work... -> -> Thanks for your time and for your prompt and kind replies. - - ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_9zX_XixEpAdR4NT64zJguA1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVUYWtAAoJEJr0azAldxsxEMcP/0mjNHW4k/IiNjSbrm1j7pIQ -k6yVqJ8cMW/71H0/VLuzS6roL02JAXMzToMzAcbPGqeV5rjhLDJNjcOuuADhb8HI -Izisai5ABzHiclnITalVTsF4i5+MsTXI+6eNez9sv3Es8pwFuLkvAlqKsheO33mP -dz83ZqDmCGKcCCbZmhbhGHdhScS8GMSyU7cBm6xu0TMh8rOtcECBG/+wfohVeR2I -vy0GeYR0ZF0yIxcBGXYvjiocStjsxaqnD9QCt8JAfewVO3jY/Ye6DIEI92moS/Nz -6iTA9GspZyYNqL7QsOraG2HF6TmIfK5xBaUjDrLH+HfKm2K6Dxp0wo6Y6VDY9mIi -svCFCoIQ3RBihcsOp7k1v1eZl+WJJ2XXilQr3SrtlOiZAK0/FtbkUwhk4DLu5o3R -CBHwy6F14szo8F4ChFGqqbOlODGJOiCONfOShRZQLgAgHciRirrgTKF4b25cspNU -v7ag47K4WN3YNtkA5DO5Bj2NKAP8oWyvlTpO0uIuUZo/pj+7sHnWG8QSDJiyunVt -3VxMLM4h3C02k+EtR2uvtKKqVFf+JgiwRGDhFx2ldUwWFg0+3IeWKuuTxRt6NcR+ -ZdDN2tR0PWpe4v+jsUqSD3YJNRoK1oyj9kMYriTkHTvhr/XcKr5KYNsWMC6nvqps -JDhKCpypB1iR9N13NpeX -=HDe/ ------END PGP SIGNATURE----- - ---=_9zX_XixEpAdR4NT64zJguA1-- - - - - -From kevin@vigor.nu Tue May 12 15:07:38 2015 -Received: (at 784565) by bugs.debian.org; 12 May 2015 15:07:38 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,MDO_CABLE_TV3,SPF_PASS autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 34; hammy, 150; neutral, 395; spammy, - 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*f:sk:2015050, - 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, 0.000-+--H*u:x86_64 -Return-path: -Received: from gateway30.websitewelcome.com ([192.185.184.48]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1YsBmT-0007o6-Qg - for 784565@bugs.debian.org; Tue, 12 May 2015 15:07:38 +0000 -Received: by gateway30.websitewelcome.com (Postfix, from userid 500) - id 69AEB573DA20; Tue, 12 May 2015 09:55:02 -0500 (CDT) -Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) - by gateway30.websitewelcome.com (Postfix) with ESMTP id 677E2573DA04 - for <784565@bugs.debian.org>; Tue, 12 May 2015 09:55:02 -0500 (CDT) -Received: from [63.158.132.10] (port=46206 helo=[10.50.3.84]) - by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) - (Exim 4.82) - (envelope-from ) - id 1YsBaH-0003xr-Ii; Tue, 12 May 2015 09:55:01 -0500 -Message-ID: <55521444.9090407@vigor.nu> -Date: Tue, 12 May 2015 08:55:00 -0600 -From: Kevin Vigor -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 -MIME-Version: 1.0 -To: Mike Gabriel -CC: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, - nito.martinez@qindel.com, opensource@gznianguan.com, - Francesco Poli -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> -In-Reply-To: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> -Content-Type: text/plain; charset=windows-1252; format=flowed -Content-Transfer-Encoding: 7bit -X-AntiAbuse: This header was added to track abuse, please include it with any abuse report -X-AntiAbuse: Primary Hostname - gator4058.hostgator.com -X-AntiAbuse: Original Domain - bugs.debian.org -X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] -X-AntiAbuse: Sender Address Domain - vigor.nu -X-BWhitelist: no -X-Source-IP: 63.158.132.10 -X-Exim-ID: 1YsBaH-0003xr-Ii -X-Source: -X-Source-Args: -X-Source-Dir: -X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:46206 -X-Source-Auth: kevin@vigor.nu -X-Email-Count: 2 -X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== -X-Greylist: delayed 379 seconds by postgrey-1.34 at buxtehude; Tue, 12 May 2015 15:07:37 UTC - -Hi Mike, et al, - - I am not the original author of dxpc, that being Brian Pane. However, I took over maintenance circa 1999 and am still the primary maintainer (though the project has effectively been dead for most of a decade now). - - As you are aware, when I inherited the code, it was licensed under a variant of the BSD license that did not include the 'with modification' clause. To the best of my recollection, somebody from the FSF contacted me circa 2001 regarding this and as a result, subsequent releases were done under a standard 2-clause BSD license with the modification clause. Again, to the best of my recollection, I contacted Brian about this change and he offered no objection. - - Further, I recall distinctly that NoMachine contacted me and explicitly asked permission before including DXPC code in NX, which I happily granted with no new conditions beyond the BSD license already in play. - - It is possible, though by no means certain, that I could dig up ancient email to corroborate this account if necessary. However, I am more than willing to publicly state that I believe NoMachine's use of DXPC code to be both legal and ethical, and that my intent when changing the license to 2-clause BSD was simply to clarity the existing intent and that it ought therefore be considered retroactive. - - Yours, - Kevin Vigor - -On 05/11/15 22:46, Mike Gabriel wrote: -> Dear Kevin, -> -> (I Cc: several people involved in this, also the X2Go development mailing list...) -> -> [If you feel unconfortable with discussing the details / the impact of the below in public, feel free to answer to me directly first with questions and concerns, before answering to all people who are listed in Cc:.] -> -> Someone from the Debian legal team recently brought up a license issue discovered in nx-libs 3.x series. -> -> TL;DR; Suggested by Francesco Poli from the Debian legal team: """ -> (A) someone gets in touch with DXPC copyright owners and asks them -> whether the re-licensing [in 2002] may be considered retroactive (applicable to -> older versions of DXPC); in case the answer is negative, DXPC copyright -> owners should be persuaded to make the re-licensing retroactive -> """ -> -> The person contacting you about the above question is me. Mike Gabriel, Debian Developer and one of the current upstream maintainers of nx-libs 3.x (previously also know as "NX redistributed" for X2Go) [1]. -> -> This issue requires some time of reading from you and (hopefully) a public statement, that the original DXPC code can be considered as BSD-2-clause (the current license) also for released versions prior 2002 when the ancient BSD license template [2] was still shipped with DXPC. -> -> For a complete follow-up, please check Debian bug #784565 [3]. -> -> We are aware that NoMachine forked DXPC at some early stage around the year 2000 and wrote their own commercial product around it. Obviously, this fork happened before 2002 (i.e., before DXPC release 3.8.1), as libxcomp3 in NoMachine's NX ships the previously used BSD license template. I am not sure, if that fork was easy for you or actually a nuisance. I may only guess at this point. I'd be happy to know more (maybe not in this mail thread, though). -> -> NoMachine has stopped publishing NXv3 updates a couple of years ago (2011 IIRC), now. The maintenance has been moved into the hands of the currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and "TheQVD". Some of us are running a business model on top of that (consultancy, support contracts, feature development contracts), some of us spend a lot of their free time on improving / maintaining nx-libs (as we call NoMachine's NXv3 at the moment). -> -> To outline the impact of my mail clearly: If you say that it was not legal by NoMachine to fork DXPC at the given time (before 2002), then all FLOSS remote desktop / remote application would be in real trouble, because then the core component of their software projects could not be considered as free (as in DFSG, Debian free software guidelines[4]) anymore. Also the code changes originally performed by NoMachine might have been illegal in the first place. All current maintenance activities and also planned future development on nx-libs would become questionable. -> -> Thus, I hope you can chime in on this: Dear developers of nx-libs, please assume the BSD-2-license as retroactive and applicable to DXPC version earlier than 3.8.1. As the copyright holder, I agree with modifications of code bases that originate before the change to BSD-2-clause license got introduced in 3.8.1 of DXPC. -> -> And... I will bring up that question later (but it is burning under my nails)... Be sure: The nx-libs maintainers would be happy to have the original DXPC author on the nx-libs developer team. But I will bring up that question later (when this very issue is settled). ;-) -> -> Greets, -> Mike -> -> [1] https://github.com/ArcticaProject/nx-libs -> [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license -> [3] http://bugs.debian.org/784565 -> [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines -> -> On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: -> ->> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: ->> ->> [...] ->>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for ->>> v3.8.1 in/around 2002). ->> ->> This is great news, indeed! ->> ->>> ->>> I have no exact clue, if NoMachine forked prior to that (if they quote ->>> the old licensing terms, then probably they did). ->> ->> Yep, it's plausible... ->> ->>> ->>> However, how do you see the situation considering that upstream ->>> changed to BSD-2-clause a long time ago. What approach do you propose ->>> for nx-libs-lite to get the issue fully fixed? ->> ->> If the fork has been performed before the DXPC re-licensing (as it's ->> likely), I see two possible strategies: ->> ->> (A) someone gets in touch with DXPC copyright owners and asks them ->> whether the re-licensing may be considered retroactive (applicable to ->> older versions of DXPC); in case the answer is negative, DXPC copyright ->> owners should be persuaded to make the re-licensing retroactive ->> ->> (B) nx-libs-lite upstream developers re-fork from scratch, basing the ->> new code on a BSD-licensed version of DXPC (I suspect this may turn out ->> to be somewhat painful...) ->> ->> ->> Obviously, the optimal solution is (A). I hope it may work... ->> ->> Thanks for your time and for your prompt and kind replies. -> -> - - - - -From mike.gabriel@das-netzwerkteam.de Tue May 12 15:42:13 2015 -Received: (at 784565) by bugs.debian.org; 12 May 2015 15:42:13 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,MDO_CABLE_TV3,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 28; hammy, 150; neutral, 444; spammy, - 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*RU:sk:grimnir, - 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98, - 0.000-+--H*RU:88.198.48.199 -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YsCJx-0003Fj-12 - for 784565@bugs.debian.org; Tue, 12 May 2015 15:42:13 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AB2291F6 - for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 0899C3BFDA - for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id tKjFu527nUiq for <784565@bugs.debian.org>; - Tue, 12 May 2015 17:42:07 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 558633C022 - for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 1F4393BFDA - for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST) -Received: from [10.215.43.89] (unknown [46.115.20.43]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 867C23BA87; - Tue, 12 May 2015 17:42:02 +0200 (CEST) -From: Mike Gabriel -Reply-To: Mike Gabriel -To: Kevin Vigor -Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -X-Mailer: Modest 3.2 -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> -In-Reply-To: <55521444.9090407@vigor.nu> -Content-Type: text/plain; charset=utf-8 -Content-ID: <1431445315.4712.6.camel@Nokia-N900> -Date: Tue, 12 May 2015 17:41:55 +0200 -Message-Id: <1431445315.4712.7.camel@Nokia-N900> -Mime-Version: 1.0 -Content-Transfer-Encoding: 8bit - -Hi Kevin, - -thanks for your feedback. Let us wait for Francesco, our expert on license issues, and see what he thinks about your feedback. - -Thank you very much for providing info and sharing pieces of nx-libs's history. - -As you sent your reply to the Debian bug tracker already, this will public statement enough, I guess. - -Thanks a lot, -Mike - --- - -DAS-NETZWERKTEAM -mike gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976148 - -GnuPG Key ID 0x25771B13 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - - ------ Original message ----- -> Hi Mike, et al, -> ->        I am not the original author of dxpc, that being Brian Pane. -> However, I took over maintenance circa 1999 and am still the primary -> maintainer (though the project has effectively been dead for most of a -> decade now). -> ->        As you are aware, when I inherited the code, it was licensed under a -> variant of the BSD license that did not include the 'with modification' -> clause. To the best of my recollection, somebody from the FSF contacted -> me circa 2001 regarding this and as a result, subsequent releases were -> done under a standard 2-clause BSD license with the modification clause. -> Again, to the best of my recollection, I contacted Brian about this -> change and he offered no objection. -> ->        Further, I recall distinctly that NoMachine contacted me and -> explicitly asked permission before including DXPC code in NX, which I -> happily granted with no new conditions beyond the BSD license already in -> play. -> ->        It is possible, though by no means certain, that I could dig up -> ancient email to corroborate this account if necessary. However, I am -> more than willing to publicly state that I believe NoMachine's use of -> DXPC code to be both legal and ethical, and that my intent when changing -> the license to 2-clause BSD was simply to clarity the existing intent -> and that it ought therefore be considered retroactive. -> ->        Yours, ->              Kevin Vigor -> -> On 05/11/15 22:46, Mike Gabriel wrote: -> > Dear Kevin, -> > -> > (I Cc: several people involved in this, also the X2Go development -> > mailing list...) -> > -> > [If you feel unconfortable with discussing the details / the impact of -> > the below in public, feel free to answer to me directly first with -> > questions and concerns, before answering to all people who are listed -> > in Cc:.] -> > -> > Someone from the Debian legal team recently brought up a license issue -> > discovered in nx-libs 3.x series. -> > -> > TL;DR; Suggested by Francesco Poli from the Debian legal team: """ -> > (A) someone gets in touch with DXPC copyright owners and asks them -> > whether the re-licensing [in 2002] may be considered retroactive -> > (applicable to older versions of DXPC); in case the answer is -> > negative, DXPC copyright owners should be persuaded to make the -> > re-licensing retroactive """ -> > -> > The person contacting you about the above question is me. Mike -> > Gabriel, Debian Developer and one of the current upstream maintainers -> > of nx-libs 3.x (previously also know as  "NX redistributed" for X2Go) -> > [1]. -> > -> > This issue requires some time of reading from you and (hopefully) a -> > public statement, that the original DXPC code can be considered as -> > BSD-2-clause (the current license) also for released versions prior -> > 2002 when the ancient BSD license template [2] was still shipped with -> > DXPC. -> > -> > For a complete follow-up, please check Debian bug #784565 [3]. -> > -> > We are aware that NoMachine forked DXPC at some early stage around the -> > year 2000 and wrote their own commercial product around it. Obviously, -> > this fork happened before 2002 (i.e., before DXPC release 3.8.1), as -> > libxcomp3 in NoMachine's NX ships the previously used BSD license -> > template. I am not sure, if that fork was easy for you or actually a -> > nuisance. I may only guess at this point. I'd be happy to know more -> > (maybe not in this mail thread, though). -> > -> > NoMachine has stopped publishing NXv3 updates a couple of years ago -> > (2011 IIRC), now. The maintenance has been moved into the hands of the -> > currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and -> > "TheQVD". Some of us are running a business model on top of that -> > (consultancy, support contracts, feature development contracts), some -> > of us spend a lot of their free time on improving / maintaining -> > nx-libs (as we call NoMachine's NXv3 at the moment). -> > -> > To outline the impact of my mail clearly: If you say that it was not -> > legal by NoMachine to fork DXPC at the given time (before 2002), then -> > all FLOSS remote desktop / remote application would be in real -> > trouble, because then the core component of their software projects -> > could not be considered as free (as in DFSG, Debian free software -> > guidelines[4]) anymore. Also the code changes originally performed by -> > NoMachine might have been illegal in the first place. All current -> > maintenance activities and also planned future development on nx-libs -> > would become questionable. -> > -> > Thus, I hope you can chime in on this: Dear developers of nx-libs, -> > please assume the BSD-2-license as retroactive and applicable to DXPC -> > version earlier than 3.8.1. As the copyright holder, I agree with -> > modifications of code bases that originate before the change to -> > BSD-2-clause license got introduced in 3.8.1 of DXPC. -> > -> > And... I will bring up that question later (but it is burning under my -> > nails)... Be sure: The nx-libs maintainers would be happy to have the -> > original DXPC author on the nx-libs developer team. But I will bring -> > up that question later (when this very issue is settled). ;-) -> > -> > Greets, -> > Mike -> > -> > [1] https://github.com/ArcticaProject/nx-libs -> > [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license -> > [3] http://bugs.debian.org/784565 -> > [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines -> > -> > On  Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: -> > -> > > On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: -> > > -> > > [...] -> > > > As it seems, dxpc has been long ago relicensed to BSD-2-clause (for -> > > > v3.8.1 in/around 2002). -> > > -> > > This is great news, indeed! -> > > -> > > > -> > > > I have no exact clue, if NoMachine forked prior to that (if they -> > > > quote the old licensing terms, then probably they did). -> > > -> > > Yep, it's plausible... -> > > -> > > > -> > > > However, how do you see the situation considering that upstream -> > > > changed to BSD-2-clause a long time ago. What approach do you -> > > > propose for nx-libs-lite to get the issue fully fixed? -> > > -> > > If the fork has been performed before the DXPC re-licensing (as it's -> > > likely), I see two possible strategies: -> > > -> > > (A) someone gets in touch with DXPC copyright owners and asks them -> > > whether the re-licensing may be considered retroactive (applicable to -> > > older versions of DXPC); in case the answer is negative, DXPC -> > > copyright owners should be persuaded to make the re-licensing -> > > retroactive -> > > -> > > (B) nx-libs-lite upstream developers re-fork from scratch, basing the -> > > new code on a BSD-licensed version of DXPC (I suspect this may turn -> > > out to be somewhat painful...) -> > > -> > > -> > > Obviously, the optimal solution is (A). I hope it may work... -> > > -> > > Thanks for your time and for your prompt and kind replies. -> > -> > -> - - - - -From invernomuto@paranoici.org Tue May 12 21:42:01 2015 -Received: (at 784565) by bugs.debian.org; 12 May 2015 21:42:01 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, - SPF_PASS autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 119; spammy, - 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, - 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, - 0.000-+--H*c:pgp-signature -Return-path: -Received: from perdizione.investici.org ([94.23.50.208]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1YsHw8-0008Hh-DT - for 784565@bugs.debian.org; Tue, 12 May 2015 21:42:01 +0000 -Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9E73512097E; - Tue, 12 May 2015 21:41:55 +0000 (UTC) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; - s=stigmate; t=1431466915; - bh=w0yVuJLtWq+0cj6zbjNb4THkJk0Xq3N9SMQ1+u0ZZnk=; - h=Date:From:To:Cc:Subject:In-Reply-To:References; - b=RRQcr33uMGnEaupGoWl0nXectE2hPbUghdie73/SnVp5Ax5QWxqK90ic5VPUE7RsN - RsJ6HcYccQEzYLzm37W24u9eQZFa+Oc1CZaJBvFgOg9MAvh6tHaLUgOuFGkYXhn5R0 - Nlq5WHCpVKi9YvGfj/aAtfe84CJPt2HIKAqPXb5w= -Received: from frx by homebrew with local (Exim 4.85) - (envelope-from ) - id 1YsHvP-00019Q-D1; Tue, 12 May 2015 23:41:15 +0200 -Date: Tue, 12 May 2015 23:40:48 +0200 -From: Francesco Poli -To: Mike Gabriel -Cc: Kevin Vigor , 784565@bugs.debian.org, - x2go-dev@lists.x2go.org, nito.martinez@qindel.com, - opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -Message-Id: <20150512234048.054319a449ffadcf87577425@paranoici.org> -In-Reply-To: <1431445315.4712.7.camel@Nokia-N900> -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> - <1431445315.4712.7.camel@Nokia-N900> -X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) -Mime-Version: 1.0 -Content-Type: multipart/signed; protocol="application/pgp-signature"; - micalg="PGP-SHA256"; - boundary="Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk" - ---Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk -Content-Type: text/plain; charset=US-ASCII -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: - -> Hi Kevin, - -Hello Mike, hello Kevin, hello to all the other recipients. - -First of all, I wish to express my gratitude to Kevin for his prompt, -kind and generous response. - ->=20 -> thanks for your feedback. Let us wait for Francesco, our expert on licens= -e issues, and see what he thinks about your feedback. - -I think that this is an important first step to solve this issue for -the best. -Kevin Vigor is one of the copyright owners of the code that was forked -before the re-licensing. -We now know that he intended the re-licensing to be retroactive and -this is really good. - -I think that now it would be useful to ascertain that the other -copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are -also OK with this interpretation of the re-licensing operation. - -Maybe Kevin is able to dig the original conversations (assuming they -were carried on by e-mail or similar archived means) or otherwise to -get in touch with them and check? Or, alternatively, Kevin could help -Mike to get in touch with them? - -I hope everything may be settled for the best soon. -Thanks a lot to everyone involved. - - - ---=20 - http://www.inventati.org/frx/ - There's not a second to spare! To the laboratory! -..................................................... Francesco Poli . - GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE - ---Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk -Content-Type: application/pgp-signature - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAEBCAAGBQJVUnNlAAoJED4cJ+Efab/+CBQP/33+SjLcIk2VZbjeeyCxhCAo -kmgg9BDtqce1Dy22ONotywDNQ187suqlmkEa6yAAdglB0M3CYMFKSIsZHn2C0uGb -B45HnzXE7PJd/j/WOXuCIvDe70iGJ7Ubk16DCjyRuKsF70cr2DcsbieiwZh8Wi4v -GXNOxpm5Nv2bs1vQnRzYFc7GLWny3eCqcWF23XisqvxQecOHopoGWr9F6NuS5ymz -NQ8Z7eanEPaqE86GYFIqJyt9Wcz+fM2r1d/IrNmYaTVBJPrqndQKnXJAViwYhtaM -V8+CIKDuttcIYMto9dyE9+vr6wgtDyepVatQIHyVA2LpzR9jub8MGelXMdA7em3i -/H3gz3H/tQti3T3HoHu+4CSAEWsXdtkHq2RWU9k3+HQuWB00z7WDr404xzs7k2Wg -h6VR9c+VjV92KnMvDqWjE4VBYjrn6Ag5u/0Cf6HMx5RAGFNL8ROjOGbQSskfUogo -GnWX2b8yLIe8ojg3AVowWV2oKVlWzsjZVHH9lp0M/lqGmnPVEJk0mh6DKbZPjK8O -P2dpZ8IlSa18R2CvMWnf7HXKRR/s2ef7rUmBkT2sFnTwsT5PeDSU45/7ZuWbNIpw -8/Y5q38c36Axeng1J0OCR8YX47dH0PubVnBzYEqoun3GucR1jifOiNzWLyM2ZxNe -0JSSqn5ddFC8/iuGpFDI -=ZqCl ------END PGP SIGNATURE----- - ---Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk-- - - - -From niels@thykier.net Wed May 13 16:04:21 2015 -Received: (at control) by bugs.debian.org; 13 May 2015 16:04:21 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-3.9 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4, - RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 6; hammy, 61; neutral, 18; spammy, 0. - spammytokens: hammytokens:0.000-+--H*u:devscripts, 0.000-+--H*u:bts, - 0.000-+--H*UA:bts, 0.000-+--H*UA:devscripts, 0.000-+--H*MI:thykier -Return-path: -Received: from mailrelay11.public.one.com ([195.47.247.189]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1YsZ8u-0002Ch-RD - for control@bugs.debian.org; Wed, 13 May 2015 16:04:21 +0000 -X-HalOne-Cookie: 4652f81fa62fa9da4dd9249e7484054c41bc782d -X-HalOne-ID: b22b9887-f989-11e4-950a-b82a72d06996 -DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; - d=thykier.net; s=20140924; - h=from:subject:date:message-id:to; - bh=EysymZxJFEX8N6fIBUIaFmFP7WdtVLf5PrmWzWVb22Y=; - b=Ur7nNbvtl3pu7O1YKIHwSM8MHIW+JPWJKM1GBE23FB4sLbENnBM2V0rmU5++qyolEv7hHAhvKkWFO - lH4tbbHCyoYVdUE76nRT/1HEb5/X+pxjrsC1qTXWWXkekbuLNcDwIl0+WdVVEd5B4LYpW7igVWi4AH - XncGXx/MNYDQvFiU= -Received: from thykier.net (unknown [80.62.116.219]) - by smtpfilter3.public.one.com (Halon Mail Gateway) with ESMTPSA - for ; Wed, 13 May 2015 16:04:12 +0000 (GMT) -Received: by thykier.net (Postfix, from userid 1000) - id 985EB4BB; Wed, 13 May 2015 18:04:10 +0200 (CEST) -From: Niels Thykier -To: control@bugs.debian.org -Subject: tagging 784565 -Date: Wed, 13 May 2015 18:04:10 +0200 -User-Agent: devscripts bts/2.15.4 -Message-ID: <1431533050-371-bts-niels@thykier.net> -Delivered-To: control@bugs.debian.org - -# distributable -tags 784565 + jessie-ignore -thanks - - - - -From mike.gabriel@das-netzwerkteam.de Thu May 14 04:58:16 2015 -Received: (at 784565) by bugs.debian.org; 14 May 2015 04:58:16 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 22; hammy, 150; neutral, 339; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YslDr-0000NV-Ur - for 784565@bugs.debian.org; Thu, 14 May 2015 04:58:16 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id A03C82B5; - Thu, 14 May 2015 06:58:11 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id E89E93BD2E; - Thu, 14 May 2015 06:58:10 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id 5m6G8sqwjlfJ; Thu, 14 May 2015 06:58:10 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 5713E3BB3A; - Thu, 14 May 2015 06:58:10 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Thu, 14 May 2015 04:58:10 +0000 -Date: Thu, 14 May 2015 04:58:09 +0000 -Message-ID: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Francesco Poli -Cc: Kevin Vigor , 784565@bugs.debian.org, - x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived - from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> -In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_SHoEHYV8bfary9lJHYP1lQ1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_SHoEHYV8bfary9lJHYP1lQ1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi all, - -there has been an off-list mail exchange between Francesco and Kevin=20=20 -(and=20me in Cc:) which I will quote at the end of this mail (as it was=20= -=20 -not=20meant to be private and we should fully document the flow on this=20= -=20 -issue). - -@Kevin:=20I will take you off this mail thread's Cc: field with my next=20= -=20 -post.=20Feel free to follow-up via #784565 [1] on the Debian bug=20=20 -tracker.=20Thanks a lot for being so responsive and generous with=20=20 -providing=20information. - -On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote: - -> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: - -> I think that now it would be useful to ascertain that the other -> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are -> also OK with this interpretation of the re-licensing operation. - -As stated by Kevin, Gian Filippo worked/works on the NoMachine side. I=20= -=20 -will=20include him in Cc:. - -For Brian Pane we also found and e-Mail address, for Zach Vonler, I=20=20 -will=20use the mail address provided in DXPC code (which might be=20=20 -outdated),=20but I think I actually have found his phone number on the=20= -=20 -web,=20so if that mail address bounces I will give him a ring. - -> Maybe Kevin is able to dig the original conversations (assuming they -> were carried on by e-mail or similar archived means) or otherwise to -> get in touch with them and check? Or, alternatively, Kevin could help - -As stated in the forwarded messages below, Kevin was unable to dig out=20= -=20 -any=20mails from backups. So we switch to plan B: contact Brian, Zach=20=20 -and=20Gian Filippo. - -> Mike to get in touch with them? - -I will do that. - -> I hope everything may be settled for the best soon. -> Thanks a lot to everyone involved. - -/me, too. - -light+love -Mike - -[1] http://bugs.debian.org/784565 - - ------ Weitergeleitete Nachricht von Kevin Vigor ----- - Datum: Wed, 13 May 2015 09:01:27 -0600 - Von: Kevin Vigor -Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 -derived=20from non-free code - An: Francesco Poli - Cc: Mike Gabriel - -On 05/12/15 15:40, Francesco Poli wrote: - -> Maybe Kevin is able to dig the original conversations (assuming they -> were carried on by e-mail or similar archived means) or otherwise to -> get in touch with them and check? Or, alternatively, Kevin could help -> Mike to get in touch with them? - -I'm afraid I was not able to dig anything out of old backups last=20=20 -night.=20I still have a stack of CDs to look through, but don't hold=20=20 -your=20breath. Sorry about that. - -I have never had any contact with Zachary Vonler or Gian Filippo=20=20 -Pinzari,=20and have not spoken with Brian Pane in many years, so I have=20= -=20 -no=20recent contact information for any of them. However, a quick google=20= -=20 -turns=20up: - -https://www.linkedin.com/profile/view?id=3D728859 -http://www.brianp.net/contact/ - -which is almost certainly the right Brian Pane (he was at CNet at the=20=20 -proper=20time). - - - Good luck, - Kevin - ------ Ende der weitergeleiteten Nachricht ----- - ------ Weitergeleitete Nachricht von Francesco Poli=20=20 -=20----- - Datum: Wed, 13 May 2015 19:43:44 +0200 - Von: Francesco Poli -Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 -derived=20from non-free code - An: Kevin Vigor - Cc: Mike Gabriel - -On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: - -> On 05/12/15 15:40, Francesco Poli wrote: -> -> > Maybe Kevin is able to dig the original conversations (assuming they -> > were carried on by e-mail or similar archived means) or otherwise to -> > get in touch with them and check? Or, alternatively, Kevin could help -> > Mike to get in touch with them? -> -> I'm afraid I was not able to dig anything out of old backups last=20=20 ->=20night. I still have a stack of CDs to look through, but don't hold=20= -=20 ->=20your breath. Sorry about that. - -Thanks a lot for searching: this is really appreciated, at least from -my side. - -> -> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari, - -Then I wonder how it was possible to re-license DXPC in 2002... -:-| - -> and have not spoken with Brian Pane in many years, so I have no recent -contact information for any of them. However, a quick google turns up: -> -> https://www.linkedin.com/profile/view?id=3D728859 -> http://www.brianp.net/contact/ -> -> which is almost certainly the right Brian Pane (he was at CNet at=20=20 ->=20the proper time). - -This could be really useful, thank you very much! - -Mike, I hope the search may go on from there: Brian should be asked -about the retroactive nature of the re-licensing of DXPC and maybe he -also knows how to get in touch with Zachary and/or Gian Filippo... - - -P.S.: Kevin, any special reason why you dropped several addresses from -the Cc list? Should this part of our conversation be kept private for -the time being? Please clarify. Thanks! - ------ Ende der weitergeleiteten Nachricht ----- - ------ Weitergeleitete Nachricht von Kevin Vigor ----- - Datum: Wed, 13 May 2015 14:08:48 -0600 - Von: Kevin Vigor -Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 -derived=20from non-free code - An: Francesco Poli - Cc: Mike Gabriel - -On 05/13/15 11:43, Francesco Poli wrote: -> On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: - ->> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari= -, -> -> Then I wonder how it was possible to re-license DXPC in 2002... -> :-| -> - -I believe Gian worked on the NoMachine code; he has never contributed=20=20 -to=20DXPC directly. - -Zachary Vonler was allegedly the maintainer of DXPC for a while circa=20=20 -1999,=20but never responded to any email when I attempted to contact=20=20 -him,=20which is how I came to take over maintenance. - - -> P.S.: Kevin, any special reason why you dropped several addresses from -> the Cc list? Should this part of our conversation be kept private for -> the time being? Please clarify. Thanks! - -No, I was just trying to keep from spamming email lists unnecessarily.=20= -=20 -I=20do not consider any part of this conversation private. - ------ Ende der weitergeleiteten Nachricht ----- - ------ Weitergeleitete Nachricht von Francesco Poli=20=20 -=20----- - Datum: Wed, 13 May 2015 22:50:32 +0200 - Von: Francesco Poli -Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 -derived=20from non-free code - An: Kevin Vigor - Cc: Mike Gabriel - -On Wed, 13 May 2015 14:08:48 -0600 Kevin Vigor wrote: - -> On 05/13/15 11:43, Francesco Poli wrote: -> > On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: -> -> >> I have never had any contact with Zachary Vonler or Gian Filippo Pinza= -ri, -> > -> > Then I wonder how it was possible to re-license DXPC in 2002... -> > :-| -> > -> -> I believe Gian worked on the NoMachine code; he has never=20=20 ->=20contributed to DXPC directly. - -Good, then only Zachary has to be tracked down. - -> -> Zachary Vonler was allegedly the maintainer of DXPC for a while=20=20 ->=20circa 1999, but never responded to any email when I attempted to=20=20 ->=20contact him, which is how I came to take over maintenance. - -Let's hope Brian is able to help Mike in getting in touch with -Zachary... - -> -> -> > P.S.: Kevin, any special reason why you dropped several addresses from -> > the Cc list? Should this part of our conversation be kept private for -> > the time being? Please clarify. Thanks! -> -> No, I was just trying to keep from spamming email lists=20=20 ->=20unnecessarily. I do not consider any part of this conversation=20=20 ->=20private. -> - -OK, thanks for clarifying. - ------ Ende der weitergeleiteten Nachricht ----- - ---=20 - -DAS-NETZWERKTEAM -mike gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_SHoEHYV8bfary9lJHYP1lQ1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVVCthAAoJEJr0azAldxsx3KUP/2997X9KnhVEedREGxsuqvQn -Dp5oGK2JPf0Z2MZui1FVehvakoHQD0MuhpVs7ZktnshwNvAgxyhW5esC617a9gsz -jJvaJz0S0MPHfSM4Dz8Yg2t0u0DpueVZBpOeDOlt9W9ECXkpe2YPk5AOialHwTPX -OP5KKfMSLEGFreUL7U0WeetC/To5zm54Ivx1a0wx2I+HdPJ0YXTxIC7JvUSNejFE -0+yhK1thXf38juOeb2pxTvRQXcj1IoDMRSc0k7KHeNGmP1NF38fh1illPlBABG1u -wa3hn+1uMe3+On8LJkDtIHtsXrR2RUuOP+0FbI4rTRo5SOeVFNRSl1ldp2ywl8rQ -9WkK623cuurOydsHjj+fIlcb7GN/OgrTay8VRS3jUjy9tlQ7PCpF5W1m7kMPHrCP -nh6/hUa6ep8qE+86dosQS4FxvOgSHOEpbNZ8ulEib/ClHr9wsnWpjxQtvRnZsBTl -PAIXKvdiHUCgyfs4efSWYtR8QUJTYmPDrGr2V8jWAtzZOo6NSa09c2Yc2OxLRDpP -HBGVSLUOrocvbb3wPAgnsogxtYCpzo/ga1Rnx2LdIfLNaTv62sek+nHqJzICqtcH -SdMajeJTVksKQCmHqIQS7C2V44cDYizTe9exZIl75OKT6TDujuW/KZiPQK6VCCNv -eEgOxmCOHlc8YLLz0dEP -=N9IW ------END PGP SIGNATURE----- - ---=_SHoEHYV8bfary9lJHYP1lQ1-- - - - - -From mike.gabriel@das-netzwerkteam.de Thu May 14 05:55:46 2015 -Received: (at 784565) by bugs.debian.org; 14 May 2015 05:55:46 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 23; hammy, 150; neutral, 392; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1Ysm7W-0005fv-3I - for 784565@bugs.debian.org; Thu, 14 May 2015 05:55:46 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id BDB433282; - Thu, 14 May 2015 07:55:43 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 20DC03BD2E; - Thu, 14 May 2015 07:55:43 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id 3Dt4TKuxIMPh; Thu, 14 May 2015 07:55:43 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 871AB3B9EA; - Thu, 14 May 2015 07:55:42 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Thu, 14 May 2015 05:55:42 +0000 -Date: Thu, 14 May 2015 05:55:42 +0000 -Message-ID: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Zach Vonler , Brian Pane , - Gian Filippo Pinzari -Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, - opensource@gznianguan.com, 784565@bugs.debian.org, Francesco Poli - -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> -In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_whjzG6t3RqUoHnRlD0aGiA1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_whjzG6t3RqUoHnRlD0aGiA1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Dear Brian, dear Zachary, dear Gian Filippo, - -(Find a TL;DR; at the end of this mail...) - -I am contacting you on a licensing issue related to the DXPC code that=20= -=20 -you=20worked on at the end of the nineties. I'd highly appreciate it if=20= -=20 -you=20could take a little time to read this mail and get back to me,=20=20 -either=20privately or in public. -[I have actually Cc:ed quite a number of people in this mail (thread).=20= -=20 -All=20of them will be affected by the outcome of this license issue to=20= -=20 -some=20lesser or greater extent. If you feel inconvenient with replying=20= -=20 -to=20so many people you don't know, really don't hesitate to get back to=20= -=20 -me=20in private first, so that we can sort things out. Thank you.] - -Before I continue, let me shortly introduce myself. My name is Mike=20=20 -Gabriel,=20I work for the Debian project [1.1, 1.2] (which brings forth=20= -=20 -one=20of the major GNU/Linux distributions world-wide. I am also the=20=20 -upstream=20code maintainer of a software project called nx-libs [2]. The=20= -=20 -nx-libs=20code has been derived from several of NoMachine's NXv3 [11]=20=20 -components=20(namely: nx-X11, nxagent, nxcomp, nxcompext and nxcompshad). - -A member of the Debian legal team [3] (Francesco Poli) made us (i.e.,=20=20 -the=20nx-libs developers, users, package maintainers) aware of an issue=20= -=20 -[4]=20in the nx-libs component NXCOMP (which has been derived from DXPC=20= -=20 -[5]).=20Please read Message #5 of the brought up issue on the Debian bug=20= -=20 -tracker=20(#784565) [4] before you continue reading. Thanks. - -I will now jump into the below quoted mail and continue inline... - -On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote: - -> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: -> ->> Hi Kevin, -> -> Hello Mike, hello Kevin, hello to all the other recipients. -> -> First of all, I wish to express my gratitude to Kevin for his prompt, -> kind and generous response. - ->> thanks for your feedback. Let us wait for Francesco, our expert on=20=20 ->>=20license issues, and see what he thinks about your feedback. -> -> I think that this is an important first step to solve this issue for -> the best. -> Kevin Vigor is one of the copyright owners of the code that was forked -> before the re-licensing. -> We now know that he intended the re-licensing to be retroactive and -> this is really good. - -We are currently in the process of contacting all DXPC related=20=20 -copyright=20holders mentioned in the NXCOMP license file [6]. We already=20= -=20 -received=20some feedback from Kevin Vigor [7], but we also need to=20=20 -address=20you (Brian, Zachary, Gian Filippo) with this. (The mail=20=20 -address=20I have from Zachary may be outdated, so any current contact=20=20 -address=20is highly welcome, in case the mail address being used will=20=20 -bounce=20back). - -At the moment, NXCOMP (and thus nx-libs, but also NoMachine's NXv3=20=20 -code)=20cannot be considered as fully free software, until this issue is=20= -=20 -settled.=20The DXPC license before DXPC v3.8.1 was an ancient BSD style=20= -=20 -license=20that failed in explicitly mentioning, that it is allowed to=20=20 -modify=20the DXPC code in derivative works. In 2002, DXPC 3.8.1 got=20=20 -released=20[12], using a more compliant license (BSD-2-clause). As Kevin=20= -=20 -told=20us, this license change [8,9] was done after the FSF [10] had=20=20 -contacted=20the DXPC developers. - -However, the NXCOMP code in NXv3 got forked from DXPC before 2002, as=20=20 -it=20seems. So unfortunately, the modifications of DXPC as found in=20=20 -NoMachine's=20NXCOMP product are not compliant with the pre-3.8.1=20=20 -license=20of DXPC. - -> I think that now it would be useful to ascertain that the other -> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are -> also OK with this interpretation of the re-licensing operation. - -TL;DR; So here comes my actual question: are you (Brian Pane, Zachary=20=20 -Vonler,=20Gian Filippo Pinzari) ok with retroactively regarding=20=20 -pre-3.8.1=20code of DXPC (that you probably all worked on at that time)=20= -=20 -as=20BSD-2-clause? Are you ok with others having taken or taking the=20=20 -pre-3.8.1=20DXPC code and distribute it in a modified form? - -A yes from all of you as DXPC copyright holders is essential for the=20=20 -continuation=20of nx-libs development under a free license. This may=20=20 -also=20possibly be an issue for NXv4 in case parts of it have been=20=20 -derived=20from DXPC. - -Thanks to all of you for taking your time. - -light+love -Mike - -[1.1] http://www.debian.org -[1.2] https://qa.debian.org/developer.php?login=3Dsunweaver%40debian.org -[2] https://github.com/ArcticaProject/nx-libs -[3] https://www.debian.org/legal/ -[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#5 -[5] http://www.vigor.nu/dxpc/ -[6] https://github.com/ArcticaProject/nx-libs/blob/3.6.x/nxcomp/LICENSE#L32 -[7] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#40 -[8] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D72020 -[9] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028 -[10] http://www.fsf.org/ -[11] https://www.nomachine.com/version-3 -[12] http://www.vigor.nu/dxpc/CHANGES ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_whjzG6t3RqUoHnRlD0aGiA1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVVDjeAAoJEJr0azAldxsx1JUP/RdzhmQ3HU+6x479AoGBTKxV -onR3XPlq8Iw9f6dU0TjqlAHCOGeftJ+X7A3HamiTFsr5wUqlrTuKeYnVd4hTa08e -ge9WIODczQfnoHm47siTjlMfQuHFIGDnHuJ+3GbvojMI7QXWrM9wgxGo2B/2UUQS -tFlYPbvfAGhCyUVx/zLRFqDVzzdo+UCVoLLYKE1pkwjhpnGGamY1xd/KFjCgi0Vx -f/Nx9w28EqmRFZCTmxghLngkTlQwrtBkSUAhLS3ntxV12RrrQQ2verXPWbW1DU9C -3TZypNZSMc4O8etJ244YUk7wAvspUtJnXyvxoQ2Padw0ogGFayIdLtC8HStCy+Mx -Q/FIND8+aGdYALNTbQfTCpJ1fmg06Id4hn96rdZOhpT80M3vTuY9HpIyf2dDCdHu -OmHEjUKnMRgjPbVoIU5lz8s4X/ET7hzxb2psXSwscxI+qqlSrADzC98QB23djJii -O9qPVB/HqJXwNNXlwiScrLC/q4ro0QgdurKmIDQq1zjdFXyBDEwMzxLNlVSJiEeG -gMSiXD9lD8J1KBDp35P4wxmOcCSymILU11Lpvf5N22ID7cfk8x58+Fsik+RkQZcm -94ll8p4XU0xOt8pgzGOVL4rLBsjcPGzuTjUoDsB8zmZLSgEgrISZNQC7pRhEXTRW -3g7fQuF635IMObwgVJJB -=c1td ------END PGP SIGNATURE----- - ---=_whjzG6t3RqUoHnRlD0aGiA1-- - - - - -From mike.gabriel@das-netzwerkteam.de Thu May 14 06:20:24 2015 -Received: (at 784565) by bugs.debian.org; 14 May 2015 06:20:24 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 149; neutral, 94; spammy, - 1. spammytokens:0.997-1--sk:austin. hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YsmVL-0008TY-AE - for 784565@bugs.debian.org; Thu, 14 May 2015 06:20:24 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AA82B3282; - Thu, 14 May 2015 08:20:19 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id A8B823BD2E; - Thu, 14 May 2015 08:20:18 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id LyPILriO4mkm; Thu, 14 May 2015 08:20:18 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 4BB463BB3A; - Thu, 14 May 2015 08:20:18 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Thu, 14 May 2015 06:20:18 +0000 -Date: Thu, 14 May 2015 06:20:18 +0000 -Message-ID: <20150514062018.Horde.T6fBfDEHTv_IkVi4n506ew5@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Brian Pane , Gian Filippo Pinzari - -Cc: opensource@gznianguan.com, 784565@bugs.debian.org, - nito.martinez@qindel.com, Francesco Poli , - x2go-dev@lists.x2go.org -Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: Bug#784565: - nx-libs-lite: parts are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> -In-Reply-To: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_FXxC2VoubfzELdkXQu84zQ1"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_FXxC2VoubfzELdkXQu84zQ1 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi again, - -On Do 14 Mai 2015 07:55:42 CEST, Mike Gabriel wrote: - -> [...] (The mail address I have from Zachary may be outdated, so any=20=20 ->=20current contact address is highly welcome, in case the mail address=20= -=20 ->=20being used will bounce back). - -As it seems, the publicly known mail address of Zachary Vonler at=20=20 -austin.utexas.edu=20is outdated. - -@Brian: if you happen to have a recent mail address of Zachary, could=20=20 -you=20please provide it to me privately? Thanks. - -Mike ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_FXxC2VoubfzELdkXQu84zQ1 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVVD6iAAoJEJr0azAldxsx4+8QAI9fbkDu0G/1NpC4+MDJ3HtH -wzfUUIIoBAPTahr1ZGrGK4ZMH5+RvXtwX2OBTwRRgKlZOqsdU35bj2HKi01KNLGx -9NXXnLz97CuTrXJrzis3C+pzCIpR6cR/SPhDdExdhjR8nawXcejfFhPUnbVvPvxY -jYN43cYFScovk5f5bUtIAybVZZCpdRZwDRevD+1qTTs+WtDf/9PXL7CX9A7j7r6T -XQIURSVQq/FVXcJHSdZcYZza/4JHIZbEQTeX3FaUK+zkdHlBbbmRwzN0YLP/XQiY -06tQXFjgjqjjkoxTE5gQrlN3kyxNH2WpXj2eeAqQarkCOnKgiuFEYxhTCYnZHCmk -WVYhb2/78VbRlRbDJH0jJ0KKNOi9fbXGcVa36IOgV2dLN+tnNorAQjHm7LkBDhyi -c3EmzEPtDTmcb5XuPYwwbNGn2EE47UsTx3UjPFWAQVQ2LwMXoFb+iH+WWSQ8KW1b -xKRDOtarACd06rbW/sKQVdzNytydvFkZZn//AHHA7KP7jmqhl/bub8EyEf9cCTVr -92XB5bbI1rLfEo1D3FTUaCt1tUEumhgRzwlJteX5/vbpf0fJ3QcWMUQSQWYqbhEm -LnlGOM44jZDtQ7QonezcB/+lQDu2/0Q7fZtgqtr9bxkJ5URr8/ByTI+E3K2bxdme -jQAQL6yyRC5s419MIJTr -=6/Dc ------END PGP SIGNATURE----- - ---=_FXxC2VoubfzELdkXQu84zQ1-- - - - - -From mike.gabriel@das-netzwerkteam.de Sat May 16 09:19:18 2015 -Received: (at 784565) by bugs.debian.org; 16 May 2015 09:19:18 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-10.9 required=4.0 tests=BAYES_00,DIGITS_LETTERS, - FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 31; hammy, 150; neutral, 208; spammy, - 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YtYFZ-0006BP-Mo - for 784565@bugs.debian.org; Sat, 16 May 2015 09:19:18 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 434CF3D4F; - Sat, 16 May 2015 11:19:13 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 9294C3BB55; - Sat, 16 May 2015 11:19:12 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id a-GW73-71I6N; Sat, 16 May 2015 11:19:12 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 224123BB3B; - Sat, 16 May 2015 11:19:12 +0200 (CEST) -Received: from 176.4.79.4 ([176.4.79.4]) by mail.das-netzwerkteam.de (Horde - Framework) with HTTP; Sat, 16 May 2015 09:19:12 +0000 -Date: Sat, 16 May 2015 09:19:12 +0000 -Message-ID: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: 784565@bugs.debian.org, Francesco Poli -Cc: Kevin Vigor , nito.martinez@qindel.com, - x2go-dev@lists.x2go.org, opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> -In-Reply-To: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 176.4.79.4 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_n6jEwcfiXkrvf2B-ZGaJrw3"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_n6jEwcfiXkrvf2B-ZGaJrw3 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi all, esp. Kevin, - -On Do 14 Mai 2015 06:58:09 CEST, Mike Gabriel wrote: - -I looked at dxpc releases (I obtained upstream tarballs from=20=20 -snapshot.debian.org). - -I=20currently have: - -""" -[mike@minobo dxpc.nxrebase (upstream-nxrebase)]$ git log -commit 0676a768a96383641a73a72ecd2e1083322e6abe -Author: Mike Gabriel -Date: Sat May 16 10:52:24 2015 +0200 - - Imported Upstream version 3.9.2 - -commit 4ccf34b2c4763dfb01dceb8588b204b0d029cc3d -Author: Mike Gabriel -Date: Sat May 16 10:51:04 2015 +0200 - - Imported Upstream version 3.9.1 - -commit dd8f60ce63c70ed605a2e1717feb7128e59fb8e6 -Author: Mike Gabriel -Date: Sat May 16 10:49:19 2015 +0200 - - Imported Upstream version 3.9.0 - -commit 01c990099aea802405f8d39c0b819ee1742c185c -Author: Mike Gabriel -Date: Sat May 16 10:32:06 2015 +0200 - - Imported Upstream version 3.8.2 - -commit 48df60b3b946a08541ee48371634f074e875adda -Author: Mike Gabriel -Date: Sat May 16 10:31:57 2015 +0200 - - Imported Upstream version 3.8.0 - -commit 11d81444d0f86a67f9b8483cbfa33343714b26e9 -Author: Mike Gabriel -Date: Sat May 16 10:31:53 2015 +0200 - - Imported Upstream version 3.7.0 - -commit e4f550abd4cd49ecc2381e717a55a9940087a376 -Author: Mike Gabriel -Date: Sat May 16 10:31:44 2015 +0200 - - Imported Upstream version 3.5.0 -""" - -> @Kevin: I will take you off this mail thread's Cc: field with my=20=20 ->=20next post. Feel free to follow-up via #784565 [1] on the Debian bug=20= -=20 ->=20tracker. Thanks a lot for being so responsive and generous with=20=20 ->=20providing information. - -With this post I actually reincluded you because it becomes technical=20=20 -from=20here on and I probably will need your expertise on DXPC. Not sure=20= -=20 -if=20you have time or prio or are willing to provide that. Would you be=20= -=20 -open=20for answering technical questions on DXPC and esp. the changes=20=20 -between=203.7.0 and 3.8.1/3.8.2? I'd highly appreciate that. - -As I have not heard back neither from Brian Pane, Zachary Vonler nor=20=20 -Gian=20Filippo Pinzari (we had Ascension Day and maybe a prolonged=20=20 -weekend=20that people used for going on VAC), I will try looking at the=20= -=20 -DXPC=20changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked=20=20 -NXCOMP=20from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0. - -Questions to Kevin: - - o Is there any SVN upstream repo still online - (I saw it in one of the tarballs, that SVN was - used for 3.9.0). - o Do you have any tarballs documenting the - changes between 3.7.0 and 3.8.0? Do you also - have the 3.8.1 tarball? - o Did the 3.8.0 version of DXPC break proto - compatibility (i.e., you could not use client - 3.7.0 and server 3.8.0 and vice versa with - each other)? - -Any help on this is appreciated. Thanks. - -Mike - - ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_n6jEwcfiXkrvf2B-ZGaJrw3 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVVwuPAAoJEJr0azAldxsxAqoQAI1IOApnU8WLZH+VT1GIgtvx -XxuBALPeR8KobmGRfJd4bSzeIpAqw+JSGa0/XApTwjYbpsIUKnMrEfoHfS0wt4Tb -ZmSiHL4XCYa6SCGOAbSe89QXNA8kS4ewQMSaPTZhGvoR6wIjdNfxXDN5aO6TkUlw -qw786fMKYcj9htNnshlq264uSfkrMusFEw614dnfKEVnx8YrIUU5lNY9AInShO9S -K0vy1vn53/Ie5Fec1FK0WUsT4xTu7NW80Ch0+IgopURIl9NmlomJVRwoDLbR47Ox -6dFVGJ5VKmOt+oW2g4YAdti8YNhSYteyPgTAPMdtU4XqkHV5/RepCoV/6gr3/YR1 -To63WGpt2B+jl2d4OAPuWWdTRucB2QYsCz/jCvLKeLcg2ODHZJXhSzVYlIie0uFY -SRvqM8qW+WyuYek2vZDneKvDB2eUqMhRb5dmSeod9UR+3RYTq+JrFUoDq65PONbM -A0QZ+cG0EkQdxG/1V8yZoMRgxPOtb+AZcMIjC5NikWUsyIkGjMHNHSbJCboJBlyM -DdyRCTxuM09cpzNxS7Ph0z0iSdQZAl2D7vPCAY1jwyLdu7Xra/p3aM6pqeYuIaWh -OpoF/sRq08CjWmgVe7MdfkgxZQxW4qIdOeNYGUDIADzzj6cHdNV+WP13ISizeoyO -u4cspyl/6lFu3TyMWkh8 -=fu9u ------END PGP SIGNATURE----- - ---=_n6jEwcfiXkrvf2B-ZGaJrw3-- - - - - -From zvonler@gmail.com Mon May 18 15:05:45 2015 -Received: (at 784565) by bugs.debian.org; 18 May 2015 15:05:46 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-5.3 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,FOURLA,FREEMAIL_FROM,HAS_BUG_NUMBER,HTML_MESSAGE, - MULTALT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS - autolearn=ham autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 14; hammy, 104; neutral, 41; spammy, - 1. spammytokens:0.940-+--H*c:alternative - hammytokens:0.000-+--D*das-netzwerkteam.de, 0.000-+--sk:mikega, - 0.000-+--sk:mike.ga, 0.000-+--U*mike.gabriel, - 0.000-+--mike.gabriel@das-netzwerkteam.de -Return-path: -Received: from mail-ob0-f181.google.com ([209.85.214.181]) - by buxtehude.debian.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) - (Exim 4.80) - (envelope-from ) - id 1YuMbx-0004SF-RZ - for 784565@bugs.debian.org; Mon, 18 May 2015 15:05:45 +0000 -Received: by obblk2 with SMTP id lk2so127830096obb.0 - for <784565@bugs.debian.org>; Mon, 18 May 2015 08:05:39 -0700 (PDT) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=gmail.com; s=20120113; - h=mime-version:date:message-id:subject:from:to:content-type; - bh=nHgAzYNhWTJXAXb1d3jfmZVOFHEEaolqyRCNmCThusM=; - b=ilsboi8m+iXF7pVv2MVsvJqi8Es4/o3Awnfg5nSzWVB34kDB0g7zczoEfC4d9km/Bn - WDerLV30mJ+OfaRA5elHld2CsY9ByX2MuU73jj2kNenlEV15s7LdJxYsWiZeKM4AEeOw - gGF3oU3A/FfhVUrhoPjcGXiF7xjXh1kkPGjkmXFJgthTnyJQjrL6Kw6jfsqhQtbEpqnc - 5hsWFCNR7O780T1pkf+MisASrWFXI3oolY4EV8/P6OeEWmmKd7L9h8YHPegOdFq543qZ - na9coEvmwpnReWORK79ycOgZa1DwiX1h2SvS+wgigQx8j9ZlJld5SpJFTcV3vSJxmICQ - i7Wg== -MIME-Version: 1.0 -X-Received: by 10.202.89.131 with SMTP id n125mr19222614oib.91.1431961538959; - Mon, 18 May 2015 08:05:38 -0700 (PDT) -Received: by 10.202.212.10 with HTTP; Mon, 18 May 2015 08:05:38 -0700 (PDT) -Date: Mon, 18 May 2015 10:05:38 -0500 -Message-ID: -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts are - derived from non-free code -From: Zach Vonler -To: 784565@bugs.debian.org -Content-Type: multipart/alternative; boundary=001a113d381edcb3e205165c863b - ---001a113d381edcb3e205165c863b -Content-Type: text/plain; charset=UTF-8 - -On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel < -mike.gabriel@das-netzwerkteam.de> wrote: - -> -> TL;DR; So here comes my actual question: are you (Brian Pane, Zachary -> Vonler, Gian Filippo Pinzari) ok with retroactively regarding -> pre-3.8.1 code of DXPC (that you probably all worked on at that time) -> as BSD-2-clause? Are you ok with others having taken or taking the -> pre-3.8.1 DXPC code and distribute it in a modified form? -> - - -> A yes from all of you as DXPC copyright holders is essential for the -> continuation of nx-libs development under a free license. This may -> also possibly be an issue for NXv4 in case parts of it have been -> derived from DXPC. - - -Yes, I am fine with considering the license change to be retroactive to -cover the time I was the maintainer. - -I have no objections to others distributing modified versions of that code. - -Zach - ---001a113d381edcb3e205165c863b -Content-Type: text/html; charset=UTF-8 -Content-Transfer-Encoding: quoted-printable - -
On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel <mike.gabriel@das-netzwerkteam= -.de> wrote:

TL;DR; So here comes my act= -ual question: are you (Brian Pane, Zachary =C2=A0
Vonler, Gian Filippo P= -inzari) ok with retroactively regarding =C2=A0
pre-3.8.1 code of DXPC (t= -hat you probably all worked on at that time) =C2=A0
as BSD-2-clause? Are= - you ok with others having taken or taking the =C2=A0
pre-3.8.1 DXPC cod= -e and distribute it in a modified form?
=C2=A0
A yes from all of you as DXPC copyright holders is essential= - for the =C2=A0
continuation of nx-libs development under a free license= -. This may =C2=A0
also possibly be an issue for NXv4 in case parts of it= - have been =C2=A0
derived from DXPC.
=C2=A0
= -
Yes, I am fine with considering the license change to be retroactive t= -o cover the time I was the maintainer.

I have no o= -bjections to others distributing modified versions of that code.
= -
Zach
- ---001a113d381edcb3e205165c863b-- - - - -From kevin@vigor.nu Mon May 18 21:26:12 2015 -Received: (at 784565) by bugs.debian.org; 18 May 2015 21:26:12 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 16; hammy, 150; neutral, 121; spammy, - 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*f:sk:2015050, - 0.000-+--3.9.0, 0.000-+--3.8.0, 0.000-+--H*UA:31.0 -Return-path: -Received: from gateway13.websitewelcome.com ([69.56.148.12]) - by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YuSY8-0004Mq-9I - for 784565@bugs.debian.org; Mon, 18 May 2015 21:26:12 +0000 -Received: by gateway13.websitewelcome.com (Postfix, from userid 5007) - id 248D59C09927E; Mon, 18 May 2015 15:38:28 -0500 (CDT) -Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) - by gateway13.websitewelcome.com (Postfix) with ESMTP id 1EB399C099246 - for <784565@bugs.debian.org>; Mon, 18 May 2015 15:38:28 -0500 (CDT) -Received: from [63.158.132.10] (port=43192 helo=[10.50.3.84]) - by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) - (Exim 4.82) - (envelope-from ) - id 1YuRnv-0001VU-8i; Mon, 18 May 2015 15:38:27 -0500 -Message-ID: <555A4DC1.2040900@vigor.nu> -Date: Mon, 18 May 2015 14:38:25 -0600 -From: Kevin Vigor -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 -MIME-Version: 1.0 -To: Mike Gabriel , - 784565@bugs.debian.org, Francesco Poli -CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, - opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> -In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> -Content-Type: text/plain; charset=windows-1252; format=flowed -Content-Transfer-Encoding: 7bit -X-AntiAbuse: This header was added to track abuse, please include it with any abuse report -X-AntiAbuse: Primary Hostname - gator4058.hostgator.com -X-AntiAbuse: Original Domain - bugs.debian.org -X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] -X-AntiAbuse: Sender Address Domain - vigor.nu -X-BWhitelist: no -X-Source-IP: 63.158.132.10 -X-Exim-ID: 1YuRnv-0001VU-8i -X-Source: -X-Source-Args: -X-Source-Dir: -X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:43192 -X-Source-Auth: kevin@vigor.nu -X-Email-Count: 2 -X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== -X-Greylist: delayed 1495 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:26:12 UTC - -On 05/16/15 03:19, Mike Gabriel wrote: - As I have not heard back neither from Brian Pane, Zachary Vonler nor Gian Filippo Pinzari (we had Ascension Day and maybe a prolonged weekend that people used for going on VAC), I will try looking at the DXPC changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked NXCOMP from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0. -> -> Questions to Kevin: -> -> o Is there any SVN upstream repo still online -> (I saw it in one of the tarballs, that SVN was -> used for 3.9.0). - -I'm afraid not. There was never an online repo available, and if I used one personally it is lost to the mists of time. - -> o Do you have any tarballs documenting the -> changes between 3.7.0 and 3.8.0? Do you also -> have the 3.8.1 tarball? - -I have the source tarballs to each of those (including the 3.8.1 version). The 3.8.0 release includes a README-3.8.0 file which documents the changes between 3.7.0 and 3.8.0 reasonably well. - -As will be (unfortunately) obvious from examining the deltas between 3.7.0 (the last release by Brian and/or Zachary) and 3.8.0 (the first release by me), I inherited a significant majority of the code. - -> o Did the 3.8.0 version of DXPC break proto -> compatibility (i.e., you could not use client -> 3.7.0 and server 3.8.0 and vice versa with -> each other)? - -Yes, minor version number bumps were used to indicate compatibility. 3.8.x was incompatible with 3.7.x (and also with 3.9.x). - - - - -From kevin@vigor.nu Mon May 18 21:34:50 2015 -Received: (at 784565) by bugs.debian.org; 18 May 2015 21:34:50 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 39; hammy, 146; neutral, 132; spammy, - 4. spammytokens:0.999-1--tecnologies, 0.993-1--H*RU:67.18.68.12, - 0.987-1--D*ascend.com, 0.987-1--H*r:34828 hammytokens:0.000-+--H*f:sk:2015050, - 0.000-+--3.8.0, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, - 0.000-+--H*f:sk:2015051 -Return-path: -Received: from gateway15.websitewelcome.com ([67.18.68.12]) - by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YuSgU-0005Jq-92 - for 784565@bugs.debian.org; Mon, 18 May 2015 21:34:50 +0000 -Received: by gateway15.websitewelcome.com (Postfix, from userid 5007) - id 8BB94ED5E6912; Mon, 18 May 2015 16:11:44 -0500 (CDT) -Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) - by gateway15.websitewelcome.com (Postfix) with ESMTP id 84825ED5E68F2 - for <784565@bugs.debian.org>; Mon, 18 May 2015 16:11:44 -0500 (CDT) -Received: from [63.158.132.10] (port=34828 helo=[10.50.3.84]) - by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) - (Exim 4.82) - (envelope-from ) - id 1YuSK7-00005R-B6; Mon, 18 May 2015 16:11:43 -0500 -Message-ID: <555A558E.1020703@vigor.nu> -Date: Mon, 18 May 2015 15:11:42 -0600 -From: Kevin Vigor -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 -MIME-Version: 1.0 -To: Mike Gabriel , - 784565@bugs.debian.org, Francesco Poli -CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, - opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> -In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> -Content-Type: text/plain; charset=windows-1252; format=flowed -Content-Transfer-Encoding: 7bit -X-AntiAbuse: This header was added to track abuse, please include it with any abuse report -X-AntiAbuse: Primary Hostname - gator4058.hostgator.com -X-AntiAbuse: Original Domain - bugs.debian.org -X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] -X-AntiAbuse: Sender Address Domain - vigor.nu -X-BWhitelist: no -X-Source-IP: 63.158.132.10 -X-Exim-ID: 1YuSK7-00005R-B6 -X-Source: -X-Source-Args: -X-Source-Dir: -X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:34828 -X-Source-Auth: kevin@vigor.nu -X-Email-Count: 2 -X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== -X-Greylist: delayed 1383 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:34:50 UTC - -By the way, poking around the interwebs I find there is an archive of the old DXPC mailing list available at: - -http://marc.info/?l=dxpc&r=1&w=2 - -I think you will find this of particular interest: - - -http://marc.info/?l=dxpc&m=93093790813555&w=2 - - -List: dxpc -Subject: Re: future tecnologies -From: Brian Pane -Date: 1999-07-02 16:42:18 -[Download message RAW] - -Kevin Vigor wrote: -> On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: -> > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc -> > code itself under GPL, or are they going to use the original dxpc's -> > licensing? -> -> No, as you can probably guess, I am no fan of the GPL. For stuff on -> this level, where my hacking is pretty simple and probably devoid of -> commercial value, I'll just release my changes to the public domain and -> give up even a copyright interest in them. -> -> Your and Zach's copyrights still stand, of course. -> -> I *think* that fact that we use the LZO library and API, but do not -> directly incorporate the code, allows us to escape the clutch of the GPL -> virus. -> -> btw, is there an original dxpc license? I haven't seen anything but a -> copyright notice, which to my non-lawyerly mind translates as "free to -> all the world as is, negotiate with copyright owner if modifying or -> including in some other product". - -The copyright banner in the Readme is all the documentation there's ever -been. My intent was to allow _any_ distribution, use, and modification -of the source, without imposing restrictions on the licensing style of -any system into which others might incorporate the code. We probably -should start stating this clearly in the distributions. - --brian - -[prev in list] [next in list] [prev in thread] [next in thread] - - - -From mike.gabriel@das-netzwerkteam.de Mon May 18 21:49:10 2015 -Received: (at 784565) by bugs.debian.org; 18 May 2015 21:49:10 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 35; hammy, 150; neutral, 281; spammy, - 0. spammytokens: hammytokens:0.000-+--H*RU:sk:grimnir, - 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98, - 0.000-+--H*RU:88.198.48.199, 0.000-+--H*RU:sk:freya.d -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YuSuK-0007oj-Hh - for 784565@bugs.debian.org; Mon, 18 May 2015 21:49:10 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 253493049 - for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:04 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id ACC2E3BD6C - for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id Hh79XOiBkYIp for <784565@bugs.debian.org>; - Mon, 18 May 2015 23:49:03 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 6CC483BC0D - for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 2100C3BD6C - for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) -Received: from [10.139.193.227] (unknown [176.0.38.193]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 453F63BB1E; - Mon, 18 May 2015 23:48:59 +0200 (CEST) -From: Mike Gabriel -Reply-To: Mike Gabriel -To: Kevin Vigor , 784565@bugs.debian.org, Francesco Poli -Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -X-Mailer: Modest 3.2 -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> - <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> - <555A558E.1020703@vigor.nu> -In-Reply-To: <555A558E.1020703@vigor.nu> -Content-Type: text/plain; charset=utf-8 -Content-ID: <1431985731.1406.1.camel@Nokia-N900> -Date: Mon, 18 May 2015 23:48:51 +0200 -Message-Id: <1431985731.1406.2.camel@Nokia-N900> -Mime-Version: 1.0 -Content-Transfer-Encoding: 8bit - -Hi Kevin, hi Zach, hi Francesco, hi all, - -@Francesco, please review the recent posts and sum up what to do next. - ------ Original message ----- -> By the way, poking around the interwebs I find there is an archive of -> the old DXPC mailing list available at: -> -> http://marc.info/?l=dxpc&r=1&w=2 -> -> I think you will find this of particular interest: -> -> -> http://marc.info/?l=dxpc&m=93093790813555&w=2 - - -> -> -> List:            dxpc -> Subject:      Re: future tecnologies -> From:            Brian Pane -> Date:            1999-07-02 16:42:18 -> [Download message RAW] -> -> Kevin Vigor wrote: -> > On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: -> > > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc -> > > code itself under GPL, or are they going to use the original dxpc's -> > > licensing? -> > -> > No, as you can probably guess, I am no fan of the GPL. For stuff on -> > this level, where my hacking is pretty simple and probably devoid of -> > commercial value, I'll just release my changes to the public domain and -> > give up even a copyright interest in them. -> > -> > Your and Zach's copyrights still stand, of course. -> > -> > I *think* that fact that we use the LZO library and API, but do not -> > directly incorporate the code, allows us to escape the clutch of the -> > GPL virus. -> > -> > btw, is there an original dxpc license? I haven't seen anything but a -> > copyright notice, which to my non-lawyerly mind translates as "free to -> > all the world as is, negotiate with copyright owner if modifying or -> > including in some other product". -> -> The copyright banner in the Readme is all the documentation there's ever -> been.  My intent was to allow _any_ distribution, use, and modification -> of the source, without imposing restrictions on the licensing style of -> any system into which others might incorporate the code.  We probably -> should start stating this clearly in the distributions. -> -> -brian -> -> [prev in list] [next in list] [prev in thread] [next in thread] - -@Kevin: You are very awesome! - -@Francesco: that old post from Brian should be the statement we need, right? As Brian has not answered back, so far, does that post suffice? - -I also had a mail from Zach in my mailbox this morning. I managed to get hold of him via phone over the weekend. He posted his agreement to this Debian bug (as message #77) [1] earlier today. @Zach: thanks a lot for that!!! - -@Francesco: by looking at [2], I cannot see any hint for Gian Filippo Pinzari being a copyright holder of DXPC. This is stated in the NoMachine files at at least one place, but not in the latest DXPC upstream release. I am on my mobile right now, need to check old versions of DXPC, but if Gian Filippo Pinzari is not listed in the DXPC 3.7.0 release (where nxcomp obviously got forked from), then I think that we don't require his feedback, right? - -To my opinion, this issue can be settled. We have direct feedback from Kevin and Zach and Kevin dug out an old post from Brian stating the retroactive nature of the BSD-2-clause while Gian Filippo probably not being a real copyright holder of the original DXPC code. Right? - -light+love, -Mike - -[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=77;att=0;bug=784565 -[2] http://www.vigor.nu/dxpc/README - - --- - -DAS-NETZWERKTEAM -mike gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976148 - -GnuPG Key ID 0x25771B13 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - - - - -From invernomuto@paranoici.org Mon May 18 22:15:14 2015 -Received: (at 784565) by bugs.debian.org; 18 May 2015 22:15:14 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, - SPF_PASS autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 220; spammy, - 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, - 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, - 0.000-+--H*c:pgp-signature -Return-path: -Received: from latitanza.investici.org ([82.94.249.234]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1YuTJa-0002xP-0G - for 784565@bugs.debian.org; Mon, 18 May 2015 22:15:14 +0000 -Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 921B3120546; - Mon, 18 May 2015 22:15:05 +0000 (UTC) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; - s=stigmate; t=1431987305; - bh=RQEA/1bkAQ71T0PpK/7XelDXEZBLyoVavVl9tpWLzWY=; - h=Date:From:To:Cc:Subject:In-Reply-To:References; - b=sO+MOEv4mZZNK2g5Om9IC7Og5k2qPAvFepN+ei+3/jCixgNBbvaLuRpMgJw6l1yjD - hpqRYIxtNgyVywgpuiFVACFBuDn1ksfdFrEPNAcgRl//Sert2aOjetbZcKi1VouhXi - eexR8IP81C0C1UjzjeC7zEmF5V+wSyhVs9jKvKfg= -Received: from frx by homebrew with local (Exim 4.85) - (envelope-from ) - id 1YuTIi-0002Se-TN; Tue, 19 May 2015 00:14:20 +0200 -Date: Tue, 19 May 2015 00:14:08 +0200 -From: Francesco Poli -To: Mike Gabriel -Cc: Kevin Vigor , 784565@bugs.debian.org, - nito.martinez@qindel.com, x2go-dev@lists.x2go.org, - opensource@gznianguan.com, zvonler@gmail.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -Message-Id: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> -In-Reply-To: <1431985731.1406.2.camel@Nokia-N900> -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> - <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> - <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> - <555A558E.1020703@vigor.nu> - <1431985731.1406.2.camel@Nokia-N900> -X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) -Mime-Version: 1.0 -Content-Type: multipart/signed; protocol="application/pgp-signature"; - micalg="PGP-SHA256"; - boundary="Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx" - ---Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx -Content-Type: text/plain; charset=US-ASCII -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -On Mon, 18 May 2015 23:48:51 +0200 Mike Gabriel wrote: - -[...] -> @Francesco: that old post from Brian should be the statement we need, -> right? As Brian has not answered back, so far, does that post suffice? - -Yes, I am under the impression that it may be considered as evidence -that Brian had always meant to grant permission to modify, despite not -being overly clear until DXPC version 3.8.1. -In other words, it seems that the re-licensing was more intended to be -a clarification, rather than a change of mind. - ->=20 -> I also had a mail from Zach in my mailbox this morning. I managed to -> get hold of him via phone over the weekend. He posted his agreement -> to this Debian bug (as message #77) [1] earlier today. @Zach: thanks -> a lot for that!!! - -This is really great! - ->=20 -> @Francesco: by looking at [2], I cannot see any hint for Gian Filippo -> Pinzari being a copyright holder of DXPC. This is stated in the -> NoMachine files at at least one place, but not in the latest DXPC -> upstream release. I am on my mobile right now, need to check old -> versions of DXPC, but if Gian Filippo Pinzari is not listed in -> the DXPC 3.7.0 release (where nxcomp obviously got forked from), -> then I think that we don't require his feedback, right? - -If it is confirmed that Gian Filippo contributed to the forking of DXPC -within the NoMachine project, but not directly to DXPC, then I think -that he made his contributions available under the terms of the GPL v2 -of the NoMachine project. -If this is the case, no feedback should be required from his side. - ->=20 -> To my opinion, this issue can be settled. We have direct feedback -> from Kevin and Zach and Kevin dug out an old post from Brian stating -> the retroactive nature of the BSD-2-clause while Gian Filippo probably -> not being a real copyright holder of the original DXPC code. Right? - -Yes, I agree with this analysis. -The only missing check is the one about Gian Filippo's involvement (as -explained above). - -Thanks a lot to everyone involved in this license fixing effort! -Bye. - ->=20 -> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;att=3D0;bug=3D= -784565 -> [2] http://www.vigor.nu/dxpc/README - - - ---=20 - http://www.inventati.org/frx/ - There's not a second to spare! To the laboratory! -..................................................... Francesco Poli . - GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE - ---Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx -Content-Type: application/pgp-signature - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAEBCAAGBQJVWmQ1AAoJED4cJ+Efab/+FowQALSZya0Xp8IXNA+d0gjQBLGQ -7eDzaX+kPVKkbYdb7ZDlQF+ZVTwjOnqjf1dDLXWSHwcXYhFd3DeeFB11QfAKXptI -GyzOt/vrh+w1K2zMb4rR9lxyUKIrKmVI6aOxyRTP7ojqkqqFvpF7ZVkDJZBFCSvx -LXdAWTaz5NLIH5R4lzvTcTFYmC3JhBtf8m58l4jT3GC1pxoqlYQk0svWOrdlULQZ -zh1dy6Sf0guwMuOH4pfreTKlNIizFj7BwanoN+tNvYG1sbQnyIwNRKUfG+v5/13P -3tyjknNDTTE67T40qSv6pcZs46vqMTevL8E+s+wGfcvdKQ5Y2fPQ8Q9yxS6cVxH2 -DXsLV97RFCcdD+ys+7P9j7xYG0e38juu61sU42cNmrb5iU0woB3SJtFvABhioGZg -TLFi/OxOT6ZTHcZtfwqozVyB1fOesqx3nvwCEE3pNuf58ErxRy1sIXwoChNL4+eo -ET1kojXBXHER6W6EHno0yz600sJXHE8rco+fv5b5qGBHdLEJ0k80YXQI4FhJQT69 -I8FyASmNX4u6HvH6hRVm2BwE9WrZTUUQRb0m/pEfZVVroiRrqTl/ntvWchXvI2Tt -IGfoDMtmVbSkh+2DQmsG9oDqiG1pCt3eNkLa1oftlQ7oIQem2MajCOS4QN20PMpU -d/smtrrNvkmiWuQrjwDF -=R0ou ------END PGP SIGNATURE----- - ---Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx-- - - - -From kevin@vigor.nu Tue May 19 01:41:18 2015 -Received: (at 784565) by bugs.debian.org; 19 May 2015 01:41:18 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,SPF_PASS autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 26; hammy, 131; neutral, 46; spammy, - 0. spammytokens: hammytokens:0.000-+--H*UA:31.6.0, 0.000-+--H*u:31.6.0, - 0.000-+--H*f:sk:2015050, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0 -Return-path: -Received: from gateway32.websitewelcome.com ([192.185.145.107]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1YuWX0-0002lG-Du - for 784565@bugs.debian.org; Tue, 19 May 2015 01:41:18 +0000 -Received: by gateway32.websitewelcome.com (Postfix, from userid 500) - id 311BBD143B8C; Mon, 18 May 2015 20:16:29 -0500 (CDT) -Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) - by gateway32.websitewelcome.com (Postfix) with ESMTP id 2F036D143B72 - for <784565@bugs.debian.org>; Mon, 18 May 2015 20:16:29 -0500 (CDT) -Received: from [98.202.128.111] (port=49655 helo=[192.168.7.118]) - by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) - (Exim 4.82) - (envelope-from ) - id 1YuW8y-0004Tt-DX; Mon, 18 May 2015 20:16:28 -0500 -Message-ID: <555A8EE9.9000503@vigor.nu> -Date: Mon, 18 May 2015 19:16:25 -0600 -From: Kevin Vigor -User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 -MIME-Version: 1.0 -To: Francesco Poli , - Mike Gabriel -CC: 784565@bugs.debian.org, nito.martinez@qindel.com, - x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts - are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> -In-Reply-To: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> -Content-Type: text/plain; charset=windows-1252; format=flowed -Content-Transfer-Encoding: 7bit -X-AntiAbuse: This header was added to track abuse, please include it with any abuse report -X-AntiAbuse: Primary Hostname - gator4058.hostgator.com -X-AntiAbuse: Original Domain - bugs.debian.org -X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] -X-AntiAbuse: Sender Address Domain - vigor.nu -X-BWhitelist: no -X-Source-IP: 98.202.128.111 -X-Exim-ID: 1YuW8y-0004Tt-DX -X-Source: -X-Source-Args: -X-Source-Dir: -X-Source-Sender: ([192.168.7.118]) [98.202.128.111]:49655 -X-Source-Auth: kevin@vigor.nu -X-Email-Count: 3 -X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== -X-Greylist: delayed 1487 seconds by postgrey-1.34 at buxtehude; Tue, 19 May 2015 01:41:18 UTC - -On 5/18/2015 4:14 PM, Francesco Poli wrote: -> If it is confirmed that Gian Filippo contributed to the forking of -> DXPC within the NoMachine project, but not directly to DXPC, then I -> think that he made his contributions available under the terms of the -> GPL v2 of the NoMachine project. If this is the case, no feedback -> should be required from his side. -I can confirm that Gian Fillippo never contributed directly to DXPC. -You'll note his name does not appear in the DXPC README, and never has. - - - -From mike.gabriel@das-netzwerkteam.de Tue May 19 08:15:28 2015 -Received: (at 784565) by bugs.debian.org; 19 May 2015 08:15:28 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 195; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YucgR-0008T9-K0 - for 784565@bugs.debian.org; Tue, 19 May 2015 08:15:28 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 7D1773C96; - Tue, 19 May 2015 10:15:23 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 08FEE3BFD5; - Tue, 19 May 2015 10:15:23 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id MW9pv+xO3WwY; Tue, 19 May 2015 10:15:22 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 97FCC3C2AA; - Tue, 19 May 2015 10:15:12 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Tue, 19 May 2015 08:15:12 +0000 -Date: Tue, 19 May 2015 08:15:12 +0000 -Message-ID: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Kevin Vigor , 784565@bugs.debian.org, Francesco Poli - -Cc: opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com, - x2go-dev@lists.x2go.org -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: - nx-libs-lite: parts are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> - <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> - <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> - <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> - <555A8EE9.9000503@vigor.nu> -In-Reply-To: <555A8EE9.9000503@vigor.nu> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_AI4511z4pP7yPmTeeGgEoA6"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_AI4511z4pP7yPmTeeGgEoA6 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Hi Kevin, hi Frederico, - -On Di 19 Mai 2015 03:16:25 CEST, Kevin Vigor wrote: - -> On 5/18/2015 4:14 PM, Francesco Poli wrote: ->> If it is confirmed that Gian Filippo contributed to the forking of=20=20 ->>=20DXPC within the NoMachine project, but not directly to DXPC, then I=20= -=20 ->>=20think that he made his contributions available under the terms of=20= -=20 ->>=20the GPL v2 of the NoMachine project. If this is the case, no=20=20 ->>=20feedback should be required from his side. - -> I can confirm that Gian Fillippo never contributed directly to DXPC.=20= -=20 ->=20You'll note his name does not appear in the DXPC README, and never=20= -=20 ->=20has. - -@Kevin: This is again good news for sorting out this issue. Thanks a=20=20 -lot=20for your help, Kevin. - -@Frederico: I guess we are through then. Thanks for helping with=20=20 -clarifying=20the situation (and bringing it up in the first place). - -For fixing this issue (in terms of closing the bug), I propose this=20=20 -for=20downstream (i.e., Debian): - - o copy bug_784565.mbox [1] into the debian/ folder of the=20=20 -nx-libs-lite=20package - o upload some latest release of nx-libs-lite 3.5.0.x to unstable - o update debian/copyright accordingly - o close this bug via debian/changelog - -For upstream, I propose this: - - o copy bug_784565.mbox into the docs/ folder - o update copyright information in nxcomp/ subfolder - o provide some README or such that shortly explains our last weeks' proc= -ess - o this will be for the upcoming 3.6.x release series of nx-libs - - o this should also be backported to the 3.5.x release series - -Once the mbox file and README are upstreamed, I will drop that content=20= -=20 -from=20the debian/ folder in the Debian package nx-libs-lite (as it will=20= -=20 -be=20in the upstream tarball of nx-libs-lite). - -Feedback (esp. from Frederico), concerns, other suggestions? - -Greets, -Mike - - -[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?mbox=3Dyes;bug=3D784565 ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_AI4511z4pP7yPmTeeGgEoA6 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVWvEQAAoJEJr0azAldxsxiZgP/1MhcK1h2or3zG3P9h3oOqFk -rsknSn/0paY8HlzggWh5N4juLU9ET/VyO+xMCbVFDXb9jv5ryRI0MinPGwp6ujTl -DxHAz5q5YrC/NYH9IU0PqL2Zja952xbjlVPgf64+iLT0kqFmY7L48bkxVXd4cKnJ -flflATeaPTcVgIVcfFte2q/NJV7AAGjwb/tEOOMbqrRYOu1hKLozWnRSLZ/rdl5V -OmktCjfAfw6Cvy4/IN6pCjG4uqFvsWvzjMofR53MLuy8cwQhtpvK9KPLCZlo9Efm -KyrFNl866Egmc/HTLQkSaOJOKartANw+Ev7qsVi30OJOEWh9T1fDjnFvLn6hesKf -9pAS/+mkuCUVNjLI/ATZAwY93bzBS+vo7fya2D/DxDk8FoLIe7XdI9GABdTE2U0H -eyNLb/Lq485BEQEu9ThtvACZYH3F3UqA7OcFfLKyVw2lsOJV7SN3KCl76te4iNcf -UlVzVr211lKhGTV9hLF3daKntu1H3jQku9zLK9ShJR6bYTpCAsGi2h2xzZm5PLDE -9tbf+qUmDn3lp4uMaBtBdtq+yt47Wk95iS41x/qyvy0PK/RdnPxTpfdbriu4+1l2 -ij6Dq5bb7GckZDmpVjSsGSr4jjWtJ5QrnZbpv/u/v3+wliZL0c+CScrA+5I/qJeI -eGXnQIwqcWE/2/AcAz2r -=Q2/H ------END PGP SIGNATURE----- - ---=_AI4511z4pP7yPmTeeGgEoA6-- - - - - -From invernomuto@paranoici.org Wed May 20 18:04:34 2015 -Received: (at 784565) by bugs.debian.org; 20 May 2015 18:04:34 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, - SPF_PASS autolearn=ham autolearn_force=no - version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 11; hammy, 150; neutral, 212; spammy, - 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, - 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, - 0.000-+--H*c:pgp-signature -Return-path: -Received: from latitanza.investici.org ([82.94.249.234]) - by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) - (Exim 4.80) - (envelope-from ) - id 1Yv8M4-00011u-4i - for 784565@bugs.debian.org; Wed, 20 May 2015 18:04:34 +0000 -Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id C5F33121147; - Wed, 20 May 2015 18:04:24 +0000 (UTC) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; - s=stigmate; t=1432145064; - bh=kDc9DoBw4hJZuuDTXyurpbInn9fdFF6IfH4jMVGqQB4=; - h=Date:From:To:Cc:Subject:In-Reply-To:References; - b=frjvhV6NrKV9TyZSGeK6evsHeI9sAgoPOPboFwSAIij0bPp1G5rCLaVWFjD1RtFsK - j+6I/XZ60KTIjiXaQGqqznF3jU2dQ/lzPkj1VYKa9Kmt1pw4UhJvU+mbyrO6cX2mSi - 52Wi1of3M+l/UT9DYKjXgzMRuWkYoAq4tmsOe9jY= -Received: from frx by homebrew with local (Exim 4.85) - (envelope-from ) - id 1Yv8LB-0001gi-7y; Wed, 20 May 2015 20:03:37 +0200 -Date: Wed, 20 May 2015 20:03:25 +0200 -From: Francesco Poli -To: Mike Gabriel -Cc: Kevin Vigor , 784565@bugs.debian.org, - opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com, - x2go-dev@lists.x2go.org -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: - nx-libs-lite: parts are derived from non-free code -Message-Id: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> -In-Reply-To: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> - <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> - <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> - <555A558E.1020703@vigor.nu> - <1431985731.1406.2.camel@Nokia-N900> - <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> - <555A8EE9.9000503@vigor.nu> - <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> -X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) -Mime-Version: 1.0 -Content-Type: multipart/signed; protocol="application/pgp-signature"; - micalg="PGP-SHA256"; - boundary="Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV" - ---Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV -Content-Type: text/plain; charset=US-ASCII -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote: - -[...] -> @Frederico: I guess we are through then. - -Yes, it seems so (I'm assuming you meant to direct this question to -me...). - -> Thanks for helping with =20 -> clarifying the situation (and bringing it up in the first place). - -You're welcome! -Thanks to you and all the involved people for helping to solve this -issue. - ->=20 -> For fixing this issue (in terms of closing the bug), I propose this =20 -> for downstream (i.e., Debian): ->=20 -> o copy bug_784565.mbox [1] into the debian/ folder of the =20 -> nx-libs-lite package - -Maybe the entire bug log is an overkill... -I would include the relevant replies only. For instance: -https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D784= -565 -https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D784= -565 -https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D784= -565 -https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D78= -4565 - -> o upload some latest release of nx-libs-lite 3.5.0.x to unstable -> o update debian/copyright accordingly - -In the debian/copyright file the license for the original DXPC code -should be replaced with the 2-clause BSD license (currently adopted for -DXPC) with a comment saying something like: - - The original DXPC code used to be available under a license which - failed to explicitly grant the permission to modify, but was later - retroactively re-licensed under the 2-clause BSD license (see - debian/bug_784565_*.mbox for the copyright owners' statements; see - for more details) - -Moreover, the copyright notice of Gian Filippo Pinzari should be -documented in some more appropriate part of the debian/copyright file, -associated with the NoMachine license (GPL v2 or later). - -> o close this bug via debian/changelog ->=20 -> For upstream, I propose this: ->=20 -> o copy bug_784565.mbox into the docs/ folder - -Again, I would not include the entire bug log, but only the relevant -messages (see above)... - -> o update copyright information in nxcomp/ subfolder -> o provide some README or such that shortly explains our last weeks' pr= -ocess -> o this will be for the upcoming 3.6.x release series of nx-libs ->=20 -> o this should also be backported to the 3.5.x release series - - -Thanks to everyone involved! -Bye. - ---=20 - http://www.inventati.org/frx/ - There's not a second to spare! To the laboratory! -..................................................... Francesco Poli . - GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE - ---Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV -Content-Type: application/pgp-signature - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAEBCAAGBQJVXMxyAAoJED4cJ+Efab/+yUsP/RWzC9NoVGF7UnEIEpJODu0u -hVkX1zjpJ+iMByHVlatR90ulKwkvVb4d354YJqyI0VM2wUtif6XBoroB0K3i6vZE -DsxugBlzhnH8jgpPVKbOyBKshpKKZsUbvDdEXM20ZkfI4xwokymiSdHOKoHH4ZHS -WN9q+i6OezfWvZSKQ+VCbe7QiQABAcB+zCdVvUWevhNqMDKdhsDC03Ju+5YZQbse -QbgYSazZvJouLPamivquh8nBdjGpPxqAJGrlUu3SR5slJxRojRvl2cl/CDFEQEQR -gbLMnnr2nj1hF4JI2WaWCSX90NrGTfGxCN4IdNd7tmjtkg5lB+KFx63YjHbLmUl/ -k87XAyXxSWyGvc7M2xyIXBQQrHtRxtK0rdN+e7ht9PcXYyxUtQzr7vfPwvI+B2GV -M23ZUoyV1rFp5JymbUL4Vk6pq/hLnv9FzwOySNVcj6Pt8eT+BcoSbwOI1AMq1P1S -wCs/PhEGBA3TDWERXF0Fb7x24NEf7EdjmzKTGGdXTCfSkacxkGzsMaRpWb0D6IaV -tSI6CmBQ9uOdkbiNDhGX4esosyJZJQ9GrnWX9d/lTs9wXUHHykvnYRbDzpkChZdI -ICqc+IxnPmX6HU2kyq2ZAzfhx/drqLizcv0gQlyY6APjRu3EQ3tapR9kYB6BcuGU -cMLlO0549ekk8/s3Zk0i -=9Hew ------END PGP SIGNATURE----- - ---Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV-- - - - -From mike.gabriel@das-netzwerkteam.de Thu May 21 09:35:35 2015 -Received: (at 784565) by bugs.debian.org; 21 May 2015 09:35:35 +0000 -X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 - (2014-02-07) on buxtehude.debian.org -X-Spam-Level: -X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, - HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham - autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 -X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 222; spammy, - 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, - 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, - 0.000-+--H*RU:sk:grimnir -Return-path: -Received: from freya.das-netzwerkteam.de ([88.198.48.199]) - by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) - (Exim 4.80) - (envelope-from ) - id 1YvMt4-0006Ry-Ri - for 784565@bugs.debian.org; Thu, 21 May 2015 09:35:35 +0000 -Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) - by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 89FD21F2; - Thu, 21 May 2015 11:35:31 +0200 (CEST) -Received: from localhost (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id C86AC3BAE9; - Thu, 21 May 2015 11:35:30 +0200 (CEST) -X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de -Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) - by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) - with ESMTP id GqfEjOoeH2CA; Thu, 21 May 2015 11:35:30 +0200 (CEST) -Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) - by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 615DC3BAB2; - Thu, 21 May 2015 11:35:30 +0200 (CEST) -Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de - [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; - Thu, 21 May 2015 09:35:30 +0000 -Date: Thu, 21 May 2015 09:35:30 +0000 -Message-ID: <20150521093530.Horde.Oeys0xv-mTUN5U5IZtdeLA1@mail.das-netzwerkteam.de> -From: Mike Gabriel -To: Francesco Poli , 784565@bugs.debian.org -Cc: nito.martinez@qindel.com, opensource@gznianguan.com -Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: - Bug#784565: nx-libs-lite: parts are derived from non-free code -References: <20150506173532.7531.31389.reportbug@homebrew> - <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> - <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> - <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> - <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> - <20150512234048.054319a449ffadcf87577425@paranoici.org> - <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> - <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> - <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> - <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> - <555A8EE9.9000503@vigor.nu> - <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> - <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> -In-Reply-To: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> -User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) -Accept-Language: de,en -Organization: DAS-NETZWERKTEAM -X-Originating-IP: 178.62.101.154 -X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 - Firefox/32.0 Iceweasel/32.0 -Content-Type: multipart/signed; boundary="=_5hM8_j7kivGPCYTZql9Fug5"; - protocol="application/pgp-signature"; micalg=pgp-sha1 -MIME-Version: 1.0 - -This message is in MIME format and has been PGP signed. - ---=_5hM8_j7kivGPCYTZql9Fug5 -Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable - -Control: forwarded -1 https://github.com/ArcticaProject/nx-libs/issues/30 - -Hi Francesco, - -On Mi 20 Mai 2015 20:03:25 CEST, Francesco Poli wrote: - -> On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote: -> -> [...] ->> @Frederico: I guess we are through then. -> -> Yes, it seems so (I'm assuming you meant to direct this question to -> me...). - -Yes. :-) - ->> For fixing this issue (in terms of closing the bug), I propose this ->> for downstream (i.e., Debian): ->> ->> o copy bug_784565.mbox [1] into the debian/ folder of the ->> nx-libs-lite package -> -> Maybe the entire bug log is an overkill... -> I would include the relevant replies only. For instance: -> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D7= -84565 -> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D7= -84565 -> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D7= -84565 -> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D= -784565 - -ACK. - ->> o upload some latest release of nx-libs-lite 3.5.0.x to unstable ->> o update debian/copyright accordingly -> -> In the debian/copyright file the license for the original DXPC code -> should be replaced with the 2-clause BSD license (currently adopted for -> DXPC) with a comment saying something like: -> -> The original DXPC code used to be available under a license which -> failed to explicitly grant the permission to modify, but was later -> retroactively re-licensed under the 2-clause BSD license (see -> debian/bug_784565_*.mbox for the copyright owners' statements; see -> for more details) -> -> Moreover, the copyright notice of Gian Filippo Pinzari should be -> documented in some more appropriate part of the debian/copyright file, -> associated with the NoMachine license (GPL v2 or later). -> ->> o close this bug via debian/changelog ->> ->> For upstream, I propose this: ->> ->> o copy bug_784565.mbox into the docs/ folder -> -> Again, I would not include the entire bug log, but only the relevant -> messages (see above)... -> ->> o update copyright information in nxcomp/ subfolder ->> o provide some README or such that shortly explains our last=20=20 ->>=20weeks' process ->> o this will be for the upcoming 3.6.x release series of nx-libs ->> ->> o this should also be backported to the 3.5.x release series - -Doing all the above now. - -Thanks to all, -Mike - ---=20 - -DAS-NETZWERKTEAM -mike=20gabriel, herweg 7, 24357 fleckeby -fon: +49 (1520) 1976 148 - -GnuPG Key ID 0x25771B31 -mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de - -freeBusy: -https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= -fb - ---=_5hM8_j7kivGPCYTZql9Fug5 -Content-Type: application/pgp-signature -Content-Description: Digitale PGP-Signatur -Content-Disposition: inline - ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJVXabiAAoJEJr0azAldxsxd4cP/in26lIPvdANMyDaqq3zQOMh -n/Q+oZK5SYnHQP7vaS4mOWjTw5tCbfcUMcKwu1KpbgpUGOl9e1c/oKGxR3j5GWh3 -XiqQhPWEMf64OsM4vW5prJFrx0VNqfxykMWbGzQfs6Dz9ihJ6+HzVudOk3bfHwj2 -GahCflRo7xA1hJjwz5cIX1/WJaAF25TVSQ43jVpPu0pnAYOWvhOAZMpTJTZqRbgT -peuFaiKE+NOb4C/WO9mkuO3wlEBZ5Ef/RinKQDlbV5/CZElEs1f42A4t5q909EVi -U2PpaEis8BJAIKetl8g/bPoHh9u6X3tbeOKJlZBo5l2SMyLUG0sYsoAyhJKJtIvk -gwdGdO71A7HLEJ6DfvE8vYXUPy9JEOQ6hhL2qeZOtJG2DZ2Qcoll9eK5scg2YutW -ZXHRTYcCQeS4PQpvQPlCR5LuFTJeNBwJ0cWgtfXYPIrPMyeEZj/VP+Ypm82hBT+I -JFjo80QjOEJ7uEM1wmn8nD0rbbP/NVf6ot/UcwlejC/XaYIlWDW5FrXf18UbGsvu -VzaHkLbhbGUYedwsb50Uu6Nn4IX8IEcF3zbwnqmB5IlbPYV0UokjgtnKEIQbdmF4 -fQ5xe5u/p2aZTnQwt39vey2W/RxJVOHRjVVrYGv0eqgda8TYOWzI3UIjSYGfuLcU -kDRest50Qfy4tmilPx3z -=Cf5/ ------END PGP SIGNATURE----- - ---=_5hM8_j7kivGPCYTZql9Fug5-- - - - - diff --git a/doc/DXPC_re-licensed_debug_784565.mbox b/doc/DXPC_re-licensed_debug_784565.mbox new file mode 100644 index 000000000..be813246c --- /dev/null +++ b/doc/DXPC_re-licensed_debug_784565.mbox @@ -0,0 +1,3769 @@ +From invernomuto@paranoici.org Wed May 06 17:36:12 2015 +Received: (at submit) by bugs.debian.org; 6 May 2015 17:36:12 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_PACKAGE,SPF_HELO_PASS,SPF_PASS, + XMAILER_REPORTBUG autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 79; spammy, + 0. spammytokens: hammytokens:0.000-+--H*M:reportbug, 0.000-+--H*MI:reportbug, + 0.000-+--H*x:reportbug, 0.000-+--H*UA:reportbug, 0.000-+--H*x:6.6.3 +Return-path: +Received: from perdizione.investici.org ([94.23.50.208]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1Yq3Ex-0001dB-Ks + for submit@bugs.debian.org; Wed, 06 May 2015 17:36:11 +0000 +Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 3987C120F77; + Wed, 6 May 2015 17:36:07 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1430933767; + bh=QAdaIheSnzoHI301+0HPUrAK62wjbKWg7iWEzGzlOTs=; + h=From:To:Subject:Date; + b=X/2YGWFWL2KRAVqONR2Q6Q6HuMii+1WfGCbSpf8XvQesaf7qWlvY2u1IVKgKVpN2m + Baq+3OrQ1adlmdHQQJm7tLfv37vRZVNOUpP3lyKQX4v3B/Gos63+1GqfyJ7qGkvQha + 4qwytZrPI20VmUswHf7qhgSGIVQmy0COEZZX0PF8= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1Yq3EK-0001ye-Bx; Wed, 06 May 2015 19:35:32 +0200 +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +From: "Francesco Poli \(wintermute\)" +To: Debian Bug Tracking System +Subject: nx-libs-lite: parts are derived from non-free code +Message-ID: <20150506173532.7531.31389.reportbug@homebrew> +X-Mailer: reportbug 6.6.3 +Date: Wed, 06 May 2015 19:35:32 +0200 +Delivered-To: submit@bugs.debian.org + +Package: nx-libs-lite +Version: 3.5.0.27-1 +Severity: serious +Justification: Policy 2.2.1 + +Hello and thanks for maintaining this package in Debian! + +I noticed that the debian/copyright states: + +[...] +| Parts of this software are derived from DXPC project. These copyright +| notices apply to original DXPC code: +| +| Redistribution and use in source and binary forms are permitted provided +| that the above copyright notice and this paragraph are duplicated in all +| such forms. +| +| THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +| WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +| MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +| +| Copyright (c) 1995,1996 Brian Pane +| Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +| Copyright (c) 1999 Kevin Vigor and Brian Pane +| Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +[...] + +This license lacks the permission to modify the DXPC code. +Hence, the original DXPC code does not appear to comply with the +DFSG. And the nx-libs-lite is in part derived from DXPC code. + +This basically means that nx-libs-lite includes parts which are +non-free (as they are derived from non-modifiable code) and +are also possibly legally undistributable (as they are non-modifiable, +but actually modified). The combination with the rest of nx-libs-lite +(which is GPL-licensed) may also be legally undistributable (since +the license with no permission to modify is GPL-incompatible). + + +If there's anything I misunderstood, please clarify. + +Otherwise, please address this issue as soon as possible. +The copyright owners for the original DXPC code should be +contacted and persuaded to re-license under GPL-compatible +terms. + +Thanks for your time. +Bye. + + + +From mike.gabriel@das-netzwerkteam.de Mon May 11 09:07:54 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 09:07:54 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 203; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Yrjgn-0001o6-MP + for 784565@bugs.debian.org; Mon, 11 May 2015 09:07:54 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 85F37E4B; + Mon, 11 May 2015 11:07:49 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id F1CFF3C20D; + Mon, 11 May 2015 11:07:48 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id wKYnujH8-HJ8; Mon, 11 May 2015 11:07:48 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 960E33C18A; + Mon, 11 May 2015 11:07:48 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Mon, 11 May 2015 09:07:48 +0000 +Date: Mon, 11 May 2015 09:07:48 +0000 +Message-ID: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: "Francesco Poli (wintermute)" , + 784565@bugs.debian.org +Cc: x2go-dev@lists.x2go.org, Nito Martinez , + opensource@gznianguan.com, dktrkranz@debian.org +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_ALb-1vQm6P3YAYx12TU2SQ1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_ALb-1vQm6P3YAYx12TU2SQ1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Francesco, +Cc:ing a couple of people/groups being affected by the below. + +On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote: + +> Package: nx-libs-lite +> Version: 3.5.0.27-1 +> Severity: serious +> Justification: Policy 2.2.1 +> +> Hello and thanks for maintaining this package in Debian! +> +> I noticed that the debian/copyright states: +> +> [...] +> | Parts of this software are derived from DXPC project. These copyright +> | notices apply to original DXPC code: +> | +> | Redistribution and use in source and binary forms are permitted prov= +ided +> | that the above copyright notice and this paragraph are duplicated in= + all +> | such forms. +> | +> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI= +ED +> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +> | +> | Copyright (c) 1995,1996 Brian Pane +> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +> | Copyright (c) 1999 Kevin Vigor and Brian Pane +> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +> [...] +> +> This license lacks the permission to modify the DXPC code. +> Hence, the original DXPC code does not appear to comply with the +> DFSG. And the nx-libs-lite is in part derived from DXPC code. +> +> This basically means that nx-libs-lite includes parts which are +> non-free (as they are derived from non-modifiable code) and +> are also possibly legally undistributable (as they are non-modifiable, +> but actually modified). The combination with the rest of nx-libs-lite +> (which is GPL-licensed) may also be legally undistributable (since +> the license with no permission to modify is GPL-incompatible). +> +> +> If there's anything I misunderstood, please clarify. +> +> Otherwise, please address this issue as soon as possible. +> The copyright owners for the original DXPC code should be +> contacted and persuaded to re-license under GPL-compatible +> terms. +> +> Thanks for your time. +> Bye. + +I/we will investigate this asap. Thanks for bringing this up. + +Greets, +Mike +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_ALb-1vQm6P3YAYx12TU2SQ1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVUHFkAAoJEJr0azAldxsxbNYP/jqxwacIBSYlAhaZEf62JFtt +ObBSEqUQfjljkolnzeaf2K4lBT6dl1x9VxGvIM5S8y9H/qpbFW+XWNHIR1BpdAsw +TgKuqb6giM+28V9pMaHuqwPwMQ7YnFsfSKf/YCEs0AvJJKsf5jSUbeHAJ/RHwC4Z +iGOj/KRqQ3tqIZJbzV2TCMNYnPm4sttcvKcRIOnBLDEVn1CRhlYX93v/pP87iPok +wvvnbPpM+D2oq1JjS6mR2JbVHspc9/ZGq5I100Cdo5r3Y3upunNyG4IRCL0ttBzg +nRjEiktViU/hhBB2xjYRaDsEpRFSsOeItLWss2PNYER2uIYuimvUsJzhtj7IwsV8 +4J8wlvn0uRZRiQwSWI/UaL1r1eqI4AlMA4hzDnWR7cBB4nTNE6YWzTpYYhsqNVfJ +jURTKIwGzDVVcpU5UZZhEtPcD5utkd8eYn4fA68pvkje3OFpLjfQnFWUcjIn5ywb +mejuW08cnsdfB0he+NTFXpK4p4wiu92pqul/EqPKW3Dm1w7FZXPHpIkN6VQ03LdY +kSXOOpITg8cHESsHlvyKIZITaLDrNAPB4RHkRxyWhRpZWgEM35FasE6hIRTbszQ9 +jpuXcrG11L7HbITi599U8ZAo4qK9OgWfzJEsBdQKXBHEqCjiv4GvdXvgJyR2Eukp +OIldtig78B5JgGKDLKjY +=G+R6 +-----END PGP SIGNATURE----- + +--=_ALb-1vQm6P3YAYx12TU2SQ1-- + + + + +From X2Go-ML-1@baur-itcs.de Mon May 11 09:21:13 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 09:21:13 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-9.4 required=4.0 tests=BAYES_00,DIGITS_LETTERS, + FOURLA,FVGT_m_MULTI_ODD,HAS_BUG_NUMBER,MONEY,PGPSIGNATURE,RCVD_IN_DNSWL_NONE, + RCVD_IN_MSPIKE_H2,STOCKLIKE autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 67; hammy, 149; neutral, 240; spammy, + 1. spammytokens:0.997-1--jjng hammytokens:0.000-+--sk:iqecbae, + 0.000-+--sk:iQEcBAE, 0.000-+--sha256, 0.000-+--SHA256, 0.000-+--H*UA:31.6.0 +Return-path: +Received: from mout.kundenserver.de ([212.227.17.10]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1Yrjtg-0003AA-Jy + for 784565@bugs.debian.org; Mon, 11 May 2015 09:21:13 +0000 +Received: from [192.168.0.171] ([78.43.125.82]) by mrelayeu.kundenserver.de + (mreue102) with ESMTPSA (Nemesis) id 0MBke7-1Z2Qat2SRz-00AqUz; Mon, 11 May + 2015 11:20:48 +0200 +Message-ID: <5550746E.1040707@baur-itcs.de> +Date: Mon, 11 May 2015 11:20:46 +0200 +From: Stefan Baur +User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 +MIME-Version: 1.0 +To: Mike Gabriel , + "Francesco Poli (wintermute)" , + 784565@bugs.debian.org +CC: opensource@gznianguan.com, Nito Martinez , + dktrkranz@debian.org, x2go-dev@lists.x2go.org +Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are + derived from non-free code +References: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> +In-Reply-To: <20150511090748.Horde.Edus-FOfuc519TjISGi1vQ2@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252 +Content-Transfer-Encoding: 8bit +X-Provags-ID: V03:K0:1hGpzbQ6YusgDW3LQNBHFEMw92BwlVIDUv6GGAN1bbqSykY6aoQ + ekoiYjWtMWz72yWg8Xd5/k/PEjXU7VxzZNBzxoyEx46ughI6kPZG/kS6r+aMsjf3KVXNi4U + da367A2ZowOeet1s6/LouBbblzzvjx7LF9SFO2TW4oakOyxhNCWEhVpveTV9FQPnavxZzhL + D5GN1YjxQGdnacFHIIuSQ== +X-UI-Out-Filterresults: notjunk:1; + +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +hi everyone, + +looking at the current homepage of DXPC, the following can be found in +their changelog http://www.vigor.nu/dxpc/CHANGES: + + +3.8.1 Release: + +[...] + +Changed license to BSD license. + +- -Stefan + +Am 11.05.2015 um 11:07 schrieb Mike Gabriel: +> Hi Francesco, Cc:ing a couple of people/groups being affected by +> the below. +> +> On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) +> wrote: +> +>> Package: nx-libs-lite Version: 3.5.0.27-1 Severity: serious +>> Justification: Policy 2.2.1 +>> +>> Hello and thanks for maintaining this package in Debian! +>> +>> I noticed that the debian/copyright states: +>> +>> [...] | Parts of this software are derived from DXPC project. +>> These copyright | notices apply to original DXPC code: | | +>> Redistribution and use in source and binary forms are permitted +>> provided | that the above copyright notice and this paragraph +>> are duplicated in all | such forms. | | THIS SOFTWARE IS +>> PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED | +>> WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES +>> OF | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | | +>> Copyright (c) 1995,1996 Brian Pane | Copyright (c) 1996,1997 +>> Zachary Vonler and Brian Pane | Copyright (c) 1999 Kevin Vigor +>> and Brian Pane | Copyright (c) 2000,2001 Gian Filippo Pinzari +>> and Brian Pane [...] +>> +>> This license lacks the permission to modify the DXPC code. Hence, +>> the original DXPC code does not appear to comply with the DFSG. +>> And the nx-libs-lite is in part derived from DXPC code. +>> +>> This basically means that nx-libs-lite includes parts which are +>> non-free (as they are derived from non-modifiable code) and are +>> also possibly legally undistributable (as they are +>> non-modifiable, but actually modified). The combination with the +>> rest of nx-libs-lite (which is GPL-licensed) may also be legally +>> undistributable (since the license with no permission to modify +>> is GPL-incompatible). +>> +>> +>> If there's anything I misunderstood, please clarify. +>> +>> Otherwise, please address this issue as soon as possible. The +>> copyright owners for the original DXPC code should be contacted +>> and persuaded to re-license under GPL-compatible terms. +>> +>> Thanks for your time. Bye. +> +> I/we will investigate this asap. Thanks for bringing this up. +> +> Greets, Mike +> +> +> _______________________________________________ x2go-dev mailing +> list x2go-dev@lists.x2go.org +> http://lists.x2go.org/listinfo/x2go-dev +> + + +- -- +BAUR-ITCS UG (haftungsbeschränkt) +Geschäftsführer: Stefan Baur +Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 +Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQEcBAEBCAAGBQJVUHRuAAoJEG7d9BjNvlEZsCYH/i0GArfIg0xNQ91srhMtMxVf +NcaQ5uOJLLZ+e0WOcRMm5Kprg9f6uKQNFRo1dv9NCFNxjrpdR/5/LMmeSYxafIQA +beoYbnuMMRBvcjoUN5ScGD/jjng/9VCiwviBVjUc6AhDebGjVone2OtaIXPoMELI +ClKnDShC41qQpSUgEESUYHiIIptkkmSrIJS6Ostsby5rhT1mApv7ulBqVvADUKCX +OtNZmG+O6Bvur63G2fBTrdQwZAed0+Q6/XlhfOkf5QNG4I9fd5KlrMDpSmO8w7Cm +h4rVnveLS5+0afZXs9sImhNW4I7Ah8zh5sAUFNCGXEuO60XRRysUO4i1WjRgnZw= +=sgsA +-----END PGP SIGNATURE----- + + + +From mike.gabriel@das-netzwerkteam.de Mon May 11 09:26:40 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 09:26:40 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 246; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Yrjyx-0003n8-Sv + for 784565@bugs.debian.org; Mon, 11 May 2015 09:26:40 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B938DE53; + Mon, 11 May 2015 11:26:37 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 564F73C20D; + Mon, 11 May 2015 11:26:37 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id zA86M1U+gj03; Mon, 11 May 2015 11:26:37 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id E81223BF5A; + Mon, 11 May 2015 11:26:36 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Mon, 11 May 2015 09:26:36 +0000 +Date: Mon, 11 May 2015 09:26:36 +0000 +Message-ID: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: "Francesco Poli (wintermute)" , + 784565@bugs.debian.org +Cc: x2go-dev@lists.x2go.org, nito.martinez@qindel.com, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +In-Reply-To: <20150506173532.7531.31389.reportbug@homebrew> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_8dL5yJABYXdTfUqhzQkNVg1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_8dL5yJABYXdTfUqhzQkNVg1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Francesco, + +On Mi 06 Mai 2015 19:35:32 CEST, Francesco Poli (wintermute) wrote: + +> Package: nx-libs-lite +> Version: 3.5.0.27-1 +> Severity: serious +> Justification: Policy 2.2.1 +> +> Hello and thanks for maintaining this package in Debian! +> +> I noticed that the debian/copyright states: +> +> [...] +> | Parts of this software are derived from DXPC project. These copyright +> | notices apply to original DXPC code: +> | +> | Redistribution and use in source and binary forms are permitted prov= +ided +> | that the above copyright notice and this paragraph are duplicated in= + all +> | such forms. +> | +> | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLI= +ED +> | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +> | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +> | +> | Copyright (c) 1995,1996 Brian Pane +> | Copyright (c) 1996,1997 Zachary Vonler and Brian Pane +> | Copyright (c) 1999 Kevin Vigor and Brian Pane +> | Copyright (c) 2000,2001 Gian Filippo Pinzari and Brian Pane +> [...] +> +> This license lacks the permission to modify the DXPC code. +> Hence, the original DXPC code does not appear to comply with the +> DFSG. And the nx-libs-lite is in part derived from DXPC code. +> +> This basically means that nx-libs-lite includes parts which are +> non-free (as they are derived from non-modifiable code) and +> are also possibly legally undistributable (as they are non-modifiable, +> but actually modified). The combination with the rest of nx-libs-lite +> (which is GPL-licensed) may also be legally undistributable (since +> the license with no permission to modify is GPL-incompatible). +> +> +> If there's anything I misunderstood, please clarify. +> +> Otherwise, please address this issue as soon as possible. +> The copyright owners for the original DXPC code should be +> contacted and persuaded to re-license under GPL-compatible +> terms. +> +> Thanks for your time. +> Bye. + +Please follow-up with reading [1]. + +As it seems, dxpc has been long ago relicensed to BSD-2-clause (for=20=20 +v3.8.1=20in/around 2002). + +I have no exact clue, if NoMachine forked prior to that (if they quote=20= +=20 +the=20old licensing terms, then probably they did). + +However, how do you see the situation considering that upstream=20=20 +changed=20to BSD-2-clause a long time ago. What approach do you propose=20= +=20 +for=20nx-libs-lite to get the issue fully fixed? + +Mike + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028 + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_8dL5yJABYXdTfUqhzQkNVg1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVUHXMAAoJEJr0azAldxsxls4P/RyFv6ghemJhfrHNbAUEDmNz +kyY2Q4Jt6pIDXX3U3yThYCeyG1nVAwKJI2B/q7q/YWWdzea8RzTTXrj3DubYplOZ +PatD30FhlKdL+rsohmLFrA5dHVcwFbJA4GqrR2Y8y6NSLEtifYE4EDIDKLqvX6Dy +msvHyLl+3AXg2gR4Wmu9lOLC8MrPA3A7nwlw/wCa6kwf3i6FUsAB2nzUsj3yUX1f +4iXzcZhjGCJli9otPLlYFjPuc0HjwBgoOx5tEOL1hgVYP+yiQCw24LOKwHTnDogZ +ONio1VdS+VPUbhVTlBfYD29lSDO8pgBGk43325b7Bmo56Ica+HCr8TznMVASidvJ +dbAXZQOMuHxBofP9sm89q2lIXjPmJFWspG76OEM8dAIMKo87gQNuOTNPuOK0Zj8T +Ua+40fIc5/C7CyRgGO8wqb6dYjD4Q6HxbjSQJrlxsHdjKIozv+MXGV+if/bKSXM8 +tIAh9JzcwgYtRVlVQXCmpk+yP9DntWFs5WeOEGBqKZw+was5OSXSlpjukNn9us2a +bWj0E84zMlIu61KVZ8ot14OMIzgUxzymIt/LzWHKiiSezb20S22LJGBaKLxbqplp +9Gi8g9rEhjn5Pgpt9B3MlIWQTKhpAa71GCD9Okt9vhPsBiKE57fSjCYgQR83lhDy +kbLoUbByjixBA+TXUYM8 +=NW/2 +-----END PGP SIGNATURE----- + +--=_8dL5yJABYXdTfUqhzQkNVg1-- + + + + +From invernomuto@paranoici.org Mon May 11 19:37:54 2015 +Received: (at 784565) by bugs.debian.org; 11 May 2015 19:37:54 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.5 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE, + SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 9; hammy, 150; neutral, 119; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from perdizione.investici.org ([94.23.50.208]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YrtWT-0004t9-Ty + for 784565@bugs.debian.org; Mon, 11 May 2015 19:37:54 +0000 +Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9C4DF120408; + Mon, 11 May 2015 19:37:46 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1431373066; + bh=vGWv2ZFJgWpWShHOYFcPN0r6i8IFunsxG5IJHqxpdbk=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=JQRMmMDPSZFkJ21FEn1TdsCco0YtUFBII0CsMLxdl3mxM5SzGN9flVttwlZ+5RrgR + a7/u/VUVPzv0ZcdVKwrC+Nq6imwd5hzUj80C+e6KLZQoovz6shmhuIdKtga2OIl7lm + cF0ONDqjdq0pI158Ws5hz0MiwJkzF6V5VbIEk3SY= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1YrtVj-0001Cl-NV; Mon, 11 May 2015 21:37:07 +0200 +Date: Mon, 11 May 2015 21:36:59 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +Message-Id: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +In-Reply-To: <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH" + +--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: + +[...] +> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for =20 +> v3.8.1 in/around 2002). + +This is great news, indeed! + +>=20 +> I have no exact clue, if NoMachine forked prior to that (if they quote =20 +> the old licensing terms, then probably they did). + +Yep, it's plausible... + +>=20 +> However, how do you see the situation considering that upstream =20 +> changed to BSD-2-clause a long time ago. What approach do you propose =20 +> for nx-libs-lite to get the issue fully fixed? + +If the fork has been performed before the DXPC re-licensing (as it's +likely), I see two possible strategies: + + (A) someone gets in touch with DXPC copyright owners and asks them +whether the re-licensing may be considered retroactive (applicable to +older versions of DXPC); in case the answer is negative, DXPC copyright +owners should be persuaded to make the re-licensing retroactive + + (B) nx-libs-lite upstream developers re-fork from scratch, basing the +new code on a BSD-licensed version of DXPC (I suspect this may turn out +to be somewhat painful...) + + +Obviously, the optimal solution is (A). I hope it may work... + +Thanks for your time and for your prompt and kind replies. + + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVUQTgAAoJED4cJ+Efab/+Mx4QAMLmPwqnPYyI0Bl6sZgxP3nA +Yfrf7m2+swTrNz3M2xNepx1KoylRNlz2DiCuG7QWABNupSK60ACtIuAvWIAPSYNt +wlHDRGiVrpCKBKzB4N3zjB0MN1VELhdWqrap8Yw5nnwohJ2jXoAUaqorwEba6YBg +VK1BsGvlqcwSYt8eWt+ugpaRR43DbZTCpAvBn3t9DdYe8LwtlJDTCatbJfovlTJ9 +P19TNbwxiEoj8uWbmpOO/kLvvMed0avTEsvgAROQKF/dnWCnB1dh5QGd06IHdAY7 +KfnoZc4HUM8BB/ylWsaV13Cd8UA/2B2FKp3xbab3ry8gWeMe6dnk/pFa+pv6TGeT +I+6VxWOMT/hc4AwBOl+R7yqp2AkcNO+KP2o5i04+yENcbgrGxyCQU2aVsHkJsVYi +N5myXypSZY3tF6TnAm/UYP2GgiMCo0FXptwVoLiGSJkBw0tn13I25pYSqjYZlq4q +4RQYuTEHEkV16tCdEdy+DSuI0GsABYUkY3a3A3TLj9LjiPPEDwLOxHjZlLbeyXP+ +xtmC3d82YvMmLXUiqItuhiBYjCRFq8piGGCDRX7wp1B+t6xHUcR8UV5O4s554iMX ++r2m1mLzM285PoKwP/Smd6BXU5RfhT4svmxvaMSSvADNo8X4ddNd2Hiq/Gib2ftH +mYKFpBE7IMwQqfrOpAW5 +=Bt09 +-----END PGP SIGNATURE----- + +--Signature=_Mon__11_May_2015_21_36_59_+0200_DweA9EbdD2ISBmUH-- + + + +From mike.gabriel@das-netzwerkteam.de Tue May 12 03:59:27 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 03:59:27 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 21; hammy, 150; neutral, 206; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Ys1Lq-0000j4-Sf + for 784565@bugs.debian.org; Tue, 12 May 2015 03:59:27 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id B4F9BAA3; + Tue, 12 May 2015 05:59:21 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 299233C21D; + Tue, 12 May 2015 05:59:21 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id G2j6l6YtFs0q; Tue, 12 May 2015 05:59:21 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id C67023BF5A; + Tue, 12 May 2015 05:59:20 +0200 (CEST) +Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de + [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Tue, 12 May 2015 03:59:20 +0000 +Date: Tue, 12 May 2015 03:59:20 +0000 +Message-ID: <20150512035920.Horde.JnI2DWx-AAFvzpbQFqakJw3@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Francesco Poli +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 91.59.146.91 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_kYZkQgyfaSLUTLVIkzgq8w1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_kYZkQgyfaSLUTLVIkzgq8w1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Francesco, + +On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: + +> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +> +> [...] +>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +>> v3.8.1 in/around 2002). +> +> This is great news, indeed! +> +>> +>> I have no exact clue, if NoMachine forked prior to that (if they quote +>> the old licensing terms, then probably they did). +> +> Yep, it's plausible... +> +>> +>> However, how do you see the situation considering that upstream +>> changed to BSD-2-clause a long time ago. What approach do you propose +>> for nx-libs-lite to get the issue fully fixed? +> +> If the fork has been performed before the DXPC re-licensing (as it's +> likely), I see two possible strategies: +> +> (A) someone gets in touch with DXPC copyright owners and asks them +> whether the re-licensing may be considered retroactive (applicable to +> older versions of DXPC); in case the answer is negative, DXPC copyright +> owners should be persuaded to make the re-licensing retroactive + +This is the way to go, I will pull in Kevin Vigor (the upstream author=20= +=20 +of=20DXPC) into this thread with my next email. + +> (B) nx-libs-lite upstream developers re-fork from scratch, basing the +> new code on a BSD-licensed version of DXPC (I suspect this may turn out +> to be somewhat painful...) + +Yeah, indeed painful. + +> Obviously, the optimal solution is (A). I hope it may work... +> +> Thanks for your time and for your prompt and kind replies. + +Also, Michael DePaulo, one of the upstream NX maintainers noted that=20=20 +DXPC=20simply used a previous version of the BSD license, see [1]. The=20= +=20 +weakness=20of that ancient license template is that modification is not=20= +=20 +explictily=20allowed, but neither forbidden. + +I think, regarding the historical usage of the BSD license predecessor=20= +=20 +and=20the switch to BSD-2-clause should be fine already (I am not a=20=20 +lawyer,=20though). I will contact DXPC upstream nonetheless and ask for=20= +=20 +a=20statement. + +Greets, +Mike + +[1] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_kYZkQgyfaSLUTLVIkzgq8w1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIbBAABAgAGBQJVUXqYAAoJEJr0azAldxsxYVAP+Pg4A2zg6TEs+vk/mknbLwV2 +dOv/tQiarKfb6JJRcm1j6rzGBhGzO4iwj/Uk8wmbFvIJgxs6mM93kfOPa0lJYM1N +D0YcKPPsHqgxcyVW8pIyawhnW5IsIDSaugjsandx1hbfl+J5SBCAtSovhz5F+Fkf +fs1wvgYcGKtWGNTxV5Qy48EnzSzAVz2r4GKBYUdRiCNpXtl/M8jJFIfm/cmJ7PJq +ycY8Diu6x3mVvPdvap/0pOOY0uqg256XX7dcFJUtTNZoai4oGOuwR1o4g9jztyd/ +4JJ2E1MigAjGSYPpTnQGhORA86yDLQrk/NlLG/2/J8meG7Nsky6xmf3zBhuG/0G0 +3TZYQcoFrFS3EWQs0uKiGKGylchODCfXHZgF0y5NT5iqr4DMT51AlUeQl3MWhxf8 +j8OMjK86jsPMrSjL0l4uYbs+znMdlVpgjBSYsKoXg3tIc3WJpj77qyPUbfwO8hys +5Q2j4lDaGV5NAnSmZ//p9lPwRu8oAMwSkrMkRTaJwLVhcmDzgoujZEpEPj64lIEy +HD3p/5dSJF+RsYT6286JkWAZm+XvXeFpEqGZ7xAVsrYSY1qFm3g0se1oHxxcVWyN +PEsQBOt8WXgYmtz7RLaBDbBQVMmeRMxbPCkC1xCHCU+Vq3y9dW/3TyOW4Oz1YoZR +3YATO+YehUKVdM5teyg= +=884K +-----END PGP SIGNATURE----- + +--=_kYZkQgyfaSLUTLVIkzgq8w1-- + + + + +From mike.gabriel@das-netzwerkteam.de Tue May 12 04:46:43 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 04:46:44 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 27; hammy, 149; neutral, 375; spammy, + 1. spammytokens:0.998-1--arctica hammytokens:0.000-+--IIRC, + 0.000-+--H*c:pgp-signature, 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, + 0.000-+--H*c:signed +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Ys25b-0004lf-4r + for 784565@bugs.debian.org; Tue, 12 May 2015 04:46:43 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 6AB7617F5; + Tue, 12 May 2015 06:46:40 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 71D923BC0D; + Tue, 12 May 2015 06:46:38 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id TYvbPGLabTH7; Tue, 12 May 2015 06:46:38 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 0669F3BA08; + Tue, 12 May 2015 06:46:38 +0200 (CEST) +Received: from p5B3B925B.dip0.t-ipconnect.de (p5B3B925B.dip0.t-ipconnect.de + [91.59.146.91]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Tue, 12 May 2015 04:46:37 +0000 +Date: Tue, 12 May 2015 04:46:37 +0000 +Message-ID: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Kevin Vigor +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli + +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +In-Reply-To: <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 91.59.146.91 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_9zX_XixEpAdR4NT64zJguA1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_9zX_XixEpAdR4NT64zJguA1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Dear Kevin, + +(I Cc: several people involved in this, also the X2Go development=20=20 +mailing=20list...) + +[If you feel unconfortable with discussing the details / the impact of=20= +=20 +the=20below in public, feel free to answer to me directly first with=20=20 +questions=20and concerns, before answering to all people who are listed=20= +=20 +in=20Cc:.] + +Someone from the Debian legal team recently brought up a license issue=20= +=20 +discovered=20in nx-libs 3.x series. + +TL;DR; Suggested by Francesco Poli from the Debian legal team: """ +(A) someone gets in touch with DXPC copyright owners and asks them +whether the re-licensing [in 2002] may be considered retroactive=20=20 +(applicable=20to +older versions of DXPC); in case the answer is negative, DXPC copyright +owners should be persuaded to make the re-licensing retroactive +""" + +The person contacting you about the above question is me. Mike=20=20 +Gabriel,=20Debian Developer and one of the current upstream maintainers=20= +=20 +of=20nx-libs 3.x (previously also know as "NX redistributed" for X2Go)=20= +=20 +[1]. + +This=20issue requires some time of reading from you and (hopefully) a=20=20 +public=20statement, that the original DXPC code can be considered as=20=20 +BSD-2-clause=20(the current license) also for released versions prior=20=20 +2002=20when the ancient BSD license template [2] was still shipped with=20= +=20 +DXPC. + +For=20a complete follow-up, please check Debian bug #784565 [3]. + +We are aware that NoMachine forked DXPC at some early stage around the=20= +=20 +year=202000 and wrote their own commercial product around it. Obviously,=20= +=20 +this=20fork happened before 2002 (i.e., before DXPC release 3.8.1), as=20= +=20 +libxcomp3=20in NoMachine's NX ships the previously used BSD license=20=20 +template.=20I am not sure, if that fork was easy for you or actually a=20= +=20 +nuisance.=20I may only guess at this point. I'd be happy to know more=20=20 +(maybe=20not in this mail thread, though). + +NoMachine has stopped publishing NXv3 updates a couple of years ago=20=20 +(2011=20IIRC), now. The maintenance has been moved into the hands of the=20= +=20 +currently=20available FLOSS projects "X2Go", "Arctica Project" [NEW] and=20= +=20 +"TheQVD".=20Some of us are running a business model on top of that=20=20 +(consultancy,=20support contracts, feature development contracts), some=20= +=20 +of=20us spend a lot of their free time on improving / maintaining=20=20 +nx-libs=20(as we call NoMachine's NXv3 at the moment). + +To outline the impact of my mail clearly: If you say that it was not=20=20 +legal=20by NoMachine to fork DXPC at the given time (before 2002), then=20= +=20 +all=20FLOSS remote desktop / remote application would be in real=20=20 +trouble,=20because then the core component of their software projects=20=20 +could=20not be considered as free (as in DFSG, Debian free software=20=20 +guidelines[4])=20anymore. Also the code changes originally performed by=20= +=20 +NoMachine=20might have been illegal in the first place. All current=20=20 +maintenance=20activities and also planned future development on nx-libs=20= +=20 +would=20become questionable. + +Thus, I hope you can chime in on this: Dear developers of nx-libs,=20=20 +please=20assume the BSD-2-license as retroactive and applicable to DXPC=20= +=20 +version=20earlier than 3.8.1. As the copyright holder, I agree with=20=20 +modifications=20of code bases that originate before the change to=20=20 +BSD-2-clause=20license got introduced in 3.8.1 of DXPC. + +And... I will bring up that question later (but it is burning under my=20= +=20 +nails)...=20Be sure: The nx-libs maintainers would be happy to have the=20= +=20 +original=20DXPC author on the nx-libs developer team. But I will bring=20= +=20 +up=20that question later (when this very issue is settled). ;-) + +Greets, +Mike + +[1] https://github.com/ArcticaProject/nx-libs +[2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license +[3] http://bugs.debian.org/784565 +[4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines + +On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: + +> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +> +> [...] +>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +>> v3.8.1 in/around 2002). +> +> This is great news, indeed! +> +>> +>> I have no exact clue, if NoMachine forked prior to that (if they quote +>> the old licensing terms, then probably they did). +> +> Yep, it's plausible... +> +>> +>> However, how do you see the situation considering that upstream +>> changed to BSD-2-clause a long time ago. What approach do you propose +>> for nx-libs-lite to get the issue fully fixed? +> +> If the fork has been performed before the DXPC re-licensing (as it's +> likely), I see two possible strategies: +> +> (A) someone gets in touch with DXPC copyright owners and asks them +> whether the re-licensing may be considered retroactive (applicable to +> older versions of DXPC); in case the answer is negative, DXPC copyright +> owners should be persuaded to make the re-licensing retroactive +> +> (B) nx-libs-lite upstream developers re-fork from scratch, basing the +> new code on a BSD-licensed version of DXPC (I suspect this may turn out +> to be somewhat painful...) +> +> +> Obviously, the optimal solution is (A). I hope it may work... +> +> Thanks for your time and for your prompt and kind replies. + + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_9zX_XixEpAdR4NT64zJguA1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVUYWtAAoJEJr0azAldxsxEMcP/0mjNHW4k/IiNjSbrm1j7pIQ +k6yVqJ8cMW/71H0/VLuzS6roL02JAXMzToMzAcbPGqeV5rjhLDJNjcOuuADhb8HI +Izisai5ABzHiclnITalVTsF4i5+MsTXI+6eNez9sv3Es8pwFuLkvAlqKsheO33mP +dz83ZqDmCGKcCCbZmhbhGHdhScS8GMSyU7cBm6xu0TMh8rOtcECBG/+wfohVeR2I +vy0GeYR0ZF0yIxcBGXYvjiocStjsxaqnD9QCt8JAfewVO3jY/Ye6DIEI92moS/Nz +6iTA9GspZyYNqL7QsOraG2HF6TmIfK5xBaUjDrLH+HfKm2K6Dxp0wo6Y6VDY9mIi +svCFCoIQ3RBihcsOp7k1v1eZl+WJJ2XXilQr3SrtlOiZAK0/FtbkUwhk4DLu5o3R +CBHwy6F14szo8F4ChFGqqbOlODGJOiCONfOShRZQLgAgHciRirrgTKF4b25cspNU +v7ag47K4WN3YNtkA5DO5Bj2NKAP8oWyvlTpO0uIuUZo/pj+7sHnWG8QSDJiyunVt +3VxMLM4h3C02k+EtR2uvtKKqVFf+JgiwRGDhFx2ldUwWFg0+3IeWKuuTxRt6NcR+ +ZdDN2tR0PWpe4v+jsUqSD3YJNRoK1oyj9kMYriTkHTvhr/XcKr5KYNsWMC6nvqps +JDhKCpypB1iR9N13NpeX +=HDe/ +-----END PGP SIGNATURE----- + +--=_9zX_XixEpAdR4NT64zJguA1-- + + + + +From kevin@vigor.nu Tue May 12 15:07:38 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 15:07:38 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 34; hammy, 150; neutral, 395; spammy, + 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*f:sk:2015050, + 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, 0.000-+--H*u:x86_64 +Return-path: +Received: from gateway30.websitewelcome.com ([192.185.184.48]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YsBmT-0007o6-Qg + for 784565@bugs.debian.org; Tue, 12 May 2015 15:07:38 +0000 +Received: by gateway30.websitewelcome.com (Postfix, from userid 500) + id 69AEB573DA20; Tue, 12 May 2015 09:55:02 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway30.websitewelcome.com (Postfix) with ESMTP id 677E2573DA04 + for <784565@bugs.debian.org>; Tue, 12 May 2015 09:55:02 -0500 (CDT) +Received: from [63.158.132.10] (port=46206 helo=[10.50.3.84]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YsBaH-0003xr-Ii; Tue, 12 May 2015 09:55:01 -0500 +Message-ID: <55521444.9090407@vigor.nu> +Date: Tue, 12 May 2015 08:55:00 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 +MIME-Version: 1.0 +To: Mike Gabriel +CC: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, + nito.martinez@qindel.com, opensource@gznianguan.com, + Francesco Poli +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> +In-Reply-To: <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 63.158.132.10 +X-Exim-ID: 1YsBaH-0003xr-Ii +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:46206 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 2 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 379 seconds by postgrey-1.34 at buxtehude; Tue, 12 May 2015 15:07:37 UTC + +Hi Mike, et al, + + I am not the original author of dxpc, that being Brian Pane. However, I took over maintenance circa 1999 and am still the primary maintainer (though the project has effectively been dead for most of a decade now). + + As you are aware, when I inherited the code, it was licensed under a variant of the BSD license that did not include the 'with modification' clause. To the best of my recollection, somebody from the FSF contacted me circa 2001 regarding this and as a result, subsequent releases were done under a standard 2-clause BSD license with the modification clause. Again, to the best of my recollection, I contacted Brian about this change and he offered no objection. + + Further, I recall distinctly that NoMachine contacted me and explicitly asked permission before including DXPC code in NX, which I happily granted with no new conditions beyond the BSD license already in play. + + It is possible, though by no means certain, that I could dig up ancient email to corroborate this account if necessary. However, I am more than willing to publicly state that I believe NoMachine's use of DXPC code to be both legal and ethical, and that my intent when changing the license to 2-clause BSD was simply to clarity the existing intent and that it ought therefore be considered retroactive. + + Yours, + Kevin Vigor + +On 05/11/15 22:46, Mike Gabriel wrote: +> Dear Kevin, +> +> (I Cc: several people involved in this, also the X2Go development mailing list...) +> +> [If you feel unconfortable with discussing the details / the impact of the below in public, feel free to answer to me directly first with questions and concerns, before answering to all people who are listed in Cc:.] +> +> Someone from the Debian legal team recently brought up a license issue discovered in nx-libs 3.x series. +> +> TL;DR; Suggested by Francesco Poli from the Debian legal team: """ +> (A) someone gets in touch with DXPC copyright owners and asks them +> whether the re-licensing [in 2002] may be considered retroactive (applicable to +> older versions of DXPC); in case the answer is negative, DXPC copyright +> owners should be persuaded to make the re-licensing retroactive +> """ +> +> The person contacting you about the above question is me. Mike Gabriel, Debian Developer and one of the current upstream maintainers of nx-libs 3.x (previously also know as "NX redistributed" for X2Go) [1]. +> +> This issue requires some time of reading from you and (hopefully) a public statement, that the original DXPC code can be considered as BSD-2-clause (the current license) also for released versions prior 2002 when the ancient BSD license template [2] was still shipped with DXPC. +> +> For a complete follow-up, please check Debian bug #784565 [3]. +> +> We are aware that NoMachine forked DXPC at some early stage around the year 2000 and wrote their own commercial product around it. Obviously, this fork happened before 2002 (i.e., before DXPC release 3.8.1), as libxcomp3 in NoMachine's NX ships the previously used BSD license template. I am not sure, if that fork was easy for you or actually a nuisance. I may only guess at this point. I'd be happy to know more (maybe not in this mail thread, though). +> +> NoMachine has stopped publishing NXv3 updates a couple of years ago (2011 IIRC), now. The maintenance has been moved into the hands of the currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and "TheQVD". Some of us are running a business model on top of that (consultancy, support contracts, feature development contracts), some of us spend a lot of their free time on improving / maintaining nx-libs (as we call NoMachine's NXv3 at the moment). +> +> To outline the impact of my mail clearly: If you say that it was not legal by NoMachine to fork DXPC at the given time (before 2002), then all FLOSS remote desktop / remote application would be in real trouble, because then the core component of their software projects could not be considered as free (as in DFSG, Debian free software guidelines[4]) anymore. Also the code changes originally performed by NoMachine might have been illegal in the first place. All current maintenance activities and also planned future development on nx-libs would become questionable. +> +> Thus, I hope you can chime in on this: Dear developers of nx-libs, please assume the BSD-2-license as retroactive and applicable to DXPC version earlier than 3.8.1. As the copyright holder, I agree with modifications of code bases that originate before the change to BSD-2-clause license got introduced in 3.8.1 of DXPC. +> +> And... I will bring up that question later (but it is burning under my nails)... Be sure: The nx-libs maintainers would be happy to have the original DXPC author on the nx-libs developer team. But I will bring up that question later (when this very issue is settled). ;-) +> +> Greets, +> Mike +> +> [1] https://github.com/ArcticaProject/nx-libs +> [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license +> [3] http://bugs.debian.org/784565 +> [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines +> +> On Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: +> +>> On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +>> +>> [...] +>>> As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +>>> v3.8.1 in/around 2002). +>> +>> This is great news, indeed! +>> +>>> +>>> I have no exact clue, if NoMachine forked prior to that (if they quote +>>> the old licensing terms, then probably they did). +>> +>> Yep, it's plausible... +>> +>>> +>>> However, how do you see the situation considering that upstream +>>> changed to BSD-2-clause a long time ago. What approach do you propose +>>> for nx-libs-lite to get the issue fully fixed? +>> +>> If the fork has been performed before the DXPC re-licensing (as it's +>> likely), I see two possible strategies: +>> +>> (A) someone gets in touch with DXPC copyright owners and asks them +>> whether the re-licensing may be considered retroactive (applicable to +>> older versions of DXPC); in case the answer is negative, DXPC copyright +>> owners should be persuaded to make the re-licensing retroactive +>> +>> (B) nx-libs-lite upstream developers re-fork from scratch, basing the +>> new code on a BSD-licensed version of DXPC (I suspect this may turn out +>> to be somewhat painful...) +>> +>> +>> Obviously, the optimal solution is (A). I hope it may work... +>> +>> Thanks for your time and for your prompt and kind replies. +> +> + + + + +From mike.gabriel@das-netzwerkteam.de Tue May 12 15:42:13 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 15:42:13 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.4 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,MDO_CABLE_TV3,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 28; hammy, 150; neutral, 444; spammy, + 0. spammytokens: hammytokens:0.000-+--IIRC, 0.000-+--H*RU:sk:grimnir, + 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98, + 0.000-+--H*RU:88.198.48.199 +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YsCJx-0003Fj-12 + for 784565@bugs.debian.org; Tue, 12 May 2015 15:42:13 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AB2291F6 + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 0899C3BFDA + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:08 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id tKjFu527nUiq for <784565@bugs.debian.org>; + Tue, 12 May 2015 17:42:07 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 558633C022 + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 1F4393BFDA + for <784565@bugs.debian.org>; Tue, 12 May 2015 17:42:07 +0200 (CEST) +Received: from [10.215.43.89] (unknown [46.115.20.43]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 867C23BA87; + Tue, 12 May 2015 17:42:02 +0200 (CEST) +From: Mike Gabriel +Reply-To: Mike Gabriel +To: Kevin Vigor +Cc: 784565@bugs.debian.org, x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com, Francesco Poli +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +X-Mailer: Modest 3.2 +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> +In-Reply-To: <55521444.9090407@vigor.nu> +Content-Type: text/plain; charset=utf-8 +Content-ID: <1431445315.4712.6.camel@Nokia-N900> +Date: Tue, 12 May 2015 17:41:55 +0200 +Message-Id: <1431445315.4712.7.camel@Nokia-N900> +Mime-Version: 1.0 +Content-Transfer-Encoding: 8bit + +Hi Kevin, + +thanks for your feedback. Let us wait for Francesco, our expert on license issues, and see what he thinks about your feedback. + +Thank you very much for providing info and sharing pieces of nx-libs's history. + +As you sent your reply to the Debian bug tracker already, this will public statement enough, I guess. + +Thanks a lot, +Mike + +-- + +DAS-NETZWERKTEAM +mike gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976148 + +GnuPG Key ID 0x25771B13 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + + +----- Original message ----- +> Hi Mike, et al, +> +>        I am not the original author of dxpc, that being Brian Pane. +> However, I took over maintenance circa 1999 and am still the primary +> maintainer (though the project has effectively been dead for most of a +> decade now). +> +>        As you are aware, when I inherited the code, it was licensed under a +> variant of the BSD license that did not include the 'with modification' +> clause. To the best of my recollection, somebody from the FSF contacted +> me circa 2001 regarding this and as a result, subsequent releases were +> done under a standard 2-clause BSD license with the modification clause. +> Again, to the best of my recollection, I contacted Brian about this +> change and he offered no objection. +> +>        Further, I recall distinctly that NoMachine contacted me and +> explicitly asked permission before including DXPC code in NX, which I +> happily granted with no new conditions beyond the BSD license already in +> play. +> +>        It is possible, though by no means certain, that I could dig up +> ancient email to corroborate this account if necessary. However, I am +> more than willing to publicly state that I believe NoMachine's use of +> DXPC code to be both legal and ethical, and that my intent when changing +> the license to 2-clause BSD was simply to clarity the existing intent +> and that it ought therefore be considered retroactive. +> +>        Yours, +>              Kevin Vigor +> +> On 05/11/15 22:46, Mike Gabriel wrote: +> > Dear Kevin, +> > +> > (I Cc: several people involved in this, also the X2Go development +> > mailing list...) +> > +> > [If you feel unconfortable with discussing the details / the impact of +> > the below in public, feel free to answer to me directly first with +> > questions and concerns, before answering to all people who are listed +> > in Cc:.] +> > +> > Someone from the Debian legal team recently brought up a license issue +> > discovered in nx-libs 3.x series. +> > +> > TL;DR; Suggested by Francesco Poli from the Debian legal team: """ +> > (A) someone gets in touch with DXPC copyright owners and asks them +> > whether the re-licensing [in 2002] may be considered retroactive +> > (applicable to older versions of DXPC); in case the answer is +> > negative, DXPC copyright owners should be persuaded to make the +> > re-licensing retroactive """ +> > +> > The person contacting you about the above question is me. Mike +> > Gabriel, Debian Developer and one of the current upstream maintainers +> > of nx-libs 3.x (previously also know as  "NX redistributed" for X2Go) +> > [1]. +> > +> > This issue requires some time of reading from you and (hopefully) a +> > public statement, that the original DXPC code can be considered as +> > BSD-2-clause (the current license) also for released versions prior +> > 2002 when the ancient BSD license template [2] was still shipped with +> > DXPC. +> > +> > For a complete follow-up, please check Debian bug #784565 [3]. +> > +> > We are aware that NoMachine forked DXPC at some early stage around the +> > year 2000 and wrote their own commercial product around it. Obviously, +> > this fork happened before 2002 (i.e., before DXPC release 3.8.1), as +> > libxcomp3 in NoMachine's NX ships the previously used BSD license +> > template. I am not sure, if that fork was easy for you or actually a +> > nuisance. I may only guess at this point. I'd be happy to know more +> > (maybe not in this mail thread, though). +> > +> > NoMachine has stopped publishing NXv3 updates a couple of years ago +> > (2011 IIRC), now. The maintenance has been moved into the hands of the +> > currently available FLOSS projects "X2Go", "Arctica Project" [NEW] and +> > "TheQVD". Some of us are running a business model on top of that +> > (consultancy, support contracts, feature development contracts), some +> > of us spend a lot of their free time on improving / maintaining +> > nx-libs (as we call NoMachine's NXv3 at the moment). +> > +> > To outline the impact of my mail clearly: If you say that it was not +> > legal by NoMachine to fork DXPC at the given time (before 2002), then +> > all FLOSS remote desktop / remote application would be in real +> > trouble, because then the core component of their software projects +> > could not be considered as free (as in DFSG, Debian free software +> > guidelines[4]) anymore. Also the code changes originally performed by +> > NoMachine might have been illegal in the first place. All current +> > maintenance activities and also planned future development on nx-libs +> > would become questionable. +> > +> > Thus, I hope you can chime in on this: Dear developers of nx-libs, +> > please assume the BSD-2-license as retroactive and applicable to DXPC +> > version earlier than 3.8.1. As the copyright holder, I agree with +> > modifications of code bases that originate before the change to +> > BSD-2-clause license got introduced in 3.8.1 of DXPC. +> > +> > And... I will bring up that question later (but it is burning under my +> > nails)... Be sure: The nx-libs maintainers would be happy to have the +> > original DXPC author on the nx-libs developer team. But I will bring +> > up that question later (when this very issue is settled). ;-) +> > +> > Greets, +> > Mike +> > +> > [1] https://github.com/ArcticaProject/nx-libs +> > [2] http://en.wikipedia.org/wiki/BSD_licenses#Previous_license +> > [3] http://bugs.debian.org/784565 +> > [4] http://de.wikipedia.org/wiki/Debian_Free_Software_Guidelines +> > +> > On  Mo 11 Mai 2015 21:36:59 CEST, Francesco Poli wrote: +> > +> > > On Mon, 11 May 2015 09:26:36 +0000 Mike Gabriel wrote: +> > > +> > > [...] +> > > > As it seems, dxpc has been long ago relicensed to BSD-2-clause (for +> > > > v3.8.1 in/around 2002). +> > > +> > > This is great news, indeed! +> > > +> > > > +> > > > I have no exact clue, if NoMachine forked prior to that (if they +> > > > quote the old licensing terms, then probably they did). +> > > +> > > Yep, it's plausible... +> > > +> > > > +> > > > However, how do you see the situation considering that upstream +> > > > changed to BSD-2-clause a long time ago. What approach do you +> > > > propose for nx-libs-lite to get the issue fully fixed? +> > > +> > > If the fork has been performed before the DXPC re-licensing (as it's +> > > likely), I see two possible strategies: +> > > +> > > (A) someone gets in touch with DXPC copyright owners and asks them +> > > whether the re-licensing may be considered retroactive (applicable to +> > > older versions of DXPC); in case the answer is negative, DXPC +> > > copyright owners should be persuaded to make the re-licensing +> > > retroactive +> > > +> > > (B) nx-libs-lite upstream developers re-fork from scratch, basing the +> > > new code on a BSD-licensed version of DXPC (I suspect this may turn +> > > out to be somewhat painful...) +> > > +> > > +> > > Obviously, the optimal solution is (A). I hope it may work... +> > > +> > > Thanks for your time and for your prompt and kind replies. +> > +> > +> + + + + +From invernomuto@paranoici.org Tue May 12 21:42:01 2015 +Received: (at 784565) by bugs.debian.org; 12 May 2015 21:42:01 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, + SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 119; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from perdizione.investici.org ([94.23.50.208]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YsHw8-0008Hh-DT + for 784565@bugs.debian.org; Tue, 12 May 2015 21:42:01 +0000 +Received: from [94.23.50.208] (perdizione [94.23.50.208]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 9E73512097E; + Tue, 12 May 2015 21:41:55 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1431466915; + bh=w0yVuJLtWq+0cj6zbjNb4THkJk0Xq3N9SMQ1+u0ZZnk=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=RRQcr33uMGnEaupGoWl0nXectE2hPbUghdie73/SnVp5Ax5QWxqK90ic5VPUE7RsN + RsJ6HcYccQEzYLzm37W24u9eQZFa+Oc1CZaJBvFgOg9MAvh6tHaLUgOuFGkYXhn5R0 + Nlq5WHCpVKi9YvGfj/aAtfe84CJPt2HIKAqPXb5w= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1YsHvP-00019Q-D1; Tue, 12 May 2015 23:41:15 +0200 +Date: Tue, 12 May 2015 23:40:48 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: Kevin Vigor , 784565@bugs.debian.org, + x2go-dev@lists.x2go.org, nito.martinez@qindel.com, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +Message-Id: <20150512234048.054319a449ffadcf87577425@paranoici.org> +In-Reply-To: <1431445315.4712.7.camel@Nokia-N900> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> + <1431445315.4712.7.camel@Nokia-N900> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk" + +--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: + +> Hi Kevin, + +Hello Mike, hello Kevin, hello to all the other recipients. + +First of all, I wish to express my gratitude to Kevin for his prompt, +kind and generous response. + +>=20 +> thanks for your feedback. Let us wait for Francesco, our expert on licens= +e issues, and see what he thinks about your feedback. + +I think that this is an important first step to solve this issue for +the best. +Kevin Vigor is one of the copyright owners of the code that was forked +before the re-licensing. +We now know that he intended the re-licensing to be retroactive and +this is really good. + +I think that now it would be useful to ascertain that the other +copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are +also OK with this interpretation of the re-licensing operation. + +Maybe Kevin is able to dig the original conversations (assuming they +were carried on by e-mail or similar archived means) or otherwise to +get in touch with them and check? Or, alternatively, Kevin could help +Mike to get in touch with them? + +I hope everything may be settled for the best soon. +Thanks a lot to everyone involved. + + + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVUnNlAAoJED4cJ+Efab/+CBQP/33+SjLcIk2VZbjeeyCxhCAo +kmgg9BDtqce1Dy22ONotywDNQ187suqlmkEa6yAAdglB0M3CYMFKSIsZHn2C0uGb +B45HnzXE7PJd/j/WOXuCIvDe70iGJ7Ubk16DCjyRuKsF70cr2DcsbieiwZh8Wi4v +GXNOxpm5Nv2bs1vQnRzYFc7GLWny3eCqcWF23XisqvxQecOHopoGWr9F6NuS5ymz +NQ8Z7eanEPaqE86GYFIqJyt9Wcz+fM2r1d/IrNmYaTVBJPrqndQKnXJAViwYhtaM +V8+CIKDuttcIYMto9dyE9+vr6wgtDyepVatQIHyVA2LpzR9jub8MGelXMdA7em3i +/H3gz3H/tQti3T3HoHu+4CSAEWsXdtkHq2RWU9k3+HQuWB00z7WDr404xzs7k2Wg +h6VR9c+VjV92KnMvDqWjE4VBYjrn6Ag5u/0Cf6HMx5RAGFNL8ROjOGbQSskfUogo +GnWX2b8yLIe8ojg3AVowWV2oKVlWzsjZVHH9lp0M/lqGmnPVEJk0mh6DKbZPjK8O +P2dpZ8IlSa18R2CvMWnf7HXKRR/s2ef7rUmBkT2sFnTwsT5PeDSU45/7ZuWbNIpw +8/Y5q38c36Axeng1J0OCR8YX47dH0PubVnBzYEqoun3GucR1jifOiNzWLyM2ZxNe +0JSSqn5ddFC8/iuGpFDI +=ZqCl +-----END PGP SIGNATURE----- + +--Signature=_Tue__12_May_2015_23_40_48_+0200_KqpLAiCdvC+4zCCk-- + + + +From niels@thykier.net Wed May 13 16:04:21 2015 +Received: (at control) by bugs.debian.org; 13 May 2015 16:04:21 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-3.9 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4, + RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 6; hammy, 61; neutral, 18; spammy, 0. + spammytokens: hammytokens:0.000-+--H*u:devscripts, 0.000-+--H*u:bts, + 0.000-+--H*UA:bts, 0.000-+--H*UA:devscripts, 0.000-+--H*MI:thykier +Return-path: +Received: from mailrelay11.public.one.com ([195.47.247.189]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YsZ8u-0002Ch-RD + for control@bugs.debian.org; Wed, 13 May 2015 16:04:21 +0000 +X-HalOne-Cookie: 4652f81fa62fa9da4dd9249e7484054c41bc782d +X-HalOne-ID: b22b9887-f989-11e4-950a-b82a72d06996 +DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; + d=thykier.net; s=20140924; + h=from:subject:date:message-id:to; + bh=EysymZxJFEX8N6fIBUIaFmFP7WdtVLf5PrmWzWVb22Y=; + b=Ur7nNbvtl3pu7O1YKIHwSM8MHIW+JPWJKM1GBE23FB4sLbENnBM2V0rmU5++qyolEv7hHAhvKkWFO + lH4tbbHCyoYVdUE76nRT/1HEb5/X+pxjrsC1qTXWWXkekbuLNcDwIl0+WdVVEd5B4LYpW7igVWi4AH + XncGXx/MNYDQvFiU= +Received: from thykier.net (unknown [80.62.116.219]) + by smtpfilter3.public.one.com (Halon Mail Gateway) with ESMTPSA + for ; Wed, 13 May 2015 16:04:12 +0000 (GMT) +Received: by thykier.net (Postfix, from userid 1000) + id 985EB4BB; Wed, 13 May 2015 18:04:10 +0200 (CEST) +From: Niels Thykier +To: control@bugs.debian.org +Subject: tagging 784565 +Date: Wed, 13 May 2015 18:04:10 +0200 +User-Agent: devscripts bts/2.15.4 +Message-ID: <1431533050-371-bts-niels@thykier.net> +Delivered-To: control@bugs.debian.org + +# distributable +tags 784565 + jessie-ignore +thanks + + + + +From mike.gabriel@das-netzwerkteam.de Thu May 14 04:58:16 2015 +Received: (at 784565) by bugs.debian.org; 14 May 2015 04:58:16 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 22; hammy, 150; neutral, 339; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YslDr-0000NV-Ur + for 784565@bugs.debian.org; Thu, 14 May 2015 04:58:16 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id A03C82B5; + Thu, 14 May 2015 06:58:11 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id E89E93BD2E; + Thu, 14 May 2015 06:58:10 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 5m6G8sqwjlfJ; Thu, 14 May 2015 06:58:10 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 5713E3BB3A; + Thu, 14 May 2015 06:58:10 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 14 May 2015 04:58:10 +0000 +Date: Thu, 14 May 2015 04:58:09 +0000 +Message-ID: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Francesco Poli +Cc: Kevin Vigor , 784565@bugs.debian.org, + x2go-dev@lists.x2go.org, nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are derived + from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> +In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_SHoEHYV8bfary9lJHYP1lQ1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_SHoEHYV8bfary9lJHYP1lQ1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi all, + +there has been an off-list mail exchange between Francesco and Kevin=20=20 +(and=20me in Cc:) which I will quote at the end of this mail (as it was=20= +=20 +not=20meant to be private and we should fully document the flow on this=20= +=20 +issue). + +@Kevin:=20I will take you off this mail thread's Cc: field with my next=20= +=20 +post.=20Feel free to follow-up via #784565 [1] on the Debian bug=20=20 +tracker.=20Thanks a lot for being so responsive and generous with=20=20 +providing=20information. + +On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote: + +> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: + +> I think that now it would be useful to ascertain that the other +> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are +> also OK with this interpretation of the re-licensing operation. + +As stated by Kevin, Gian Filippo worked/works on the NoMachine side. I=20= +=20 +will=20include him in Cc:. + +For Brian Pane we also found and e-Mail address, for Zach Vonler, I=20=20 +will=20use the mail address provided in DXPC code (which might be=20=20 +outdated),=20but I think I actually have found his phone number on the=20= +=20 +web,=20so if that mail address bounces I will give him a ring. + +> Maybe Kevin is able to dig the original conversations (assuming they +> were carried on by e-mail or similar archived means) or otherwise to +> get in touch with them and check? Or, alternatively, Kevin could help + +As stated in the forwarded messages below, Kevin was unable to dig out=20= +=20 +any=20mails from backups. So we switch to plan B: contact Brian, Zach=20=20 +and=20Gian Filippo. + +> Mike to get in touch with them? + +I will do that. + +> I hope everything may be settled for the best soon. +> Thanks a lot to everyone involved. + +/me, too. + +light+love +Mike + +[1] http://bugs.debian.org/784565 + + +----- Weitergeleitete Nachricht von Kevin Vigor ----- + Datum: Wed, 13 May 2015 09:01:27 -0600 + Von: Kevin Vigor +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Francesco Poli + Cc: Mike Gabriel + +On 05/12/15 15:40, Francesco Poli wrote: + +> Maybe Kevin is able to dig the original conversations (assuming they +> were carried on by e-mail or similar archived means) or otherwise to +> get in touch with them and check? Or, alternatively, Kevin could help +> Mike to get in touch with them? + +I'm afraid I was not able to dig anything out of old backups last=20=20 +night.=20I still have a stack of CDs to look through, but don't hold=20=20 +your=20breath. Sorry about that. + +I have never had any contact with Zachary Vonler or Gian Filippo=20=20 +Pinzari,=20and have not spoken with Brian Pane in many years, so I have=20= +=20 +no=20recent contact information for any of them. However, a quick google=20= +=20 +turns=20up: + +https://www.linkedin.com/profile/view?id=3D728859 +http://www.brianp.net/contact/ + +which is almost certainly the right Brian Pane (he was at CNet at the=20=20 +proper=20time). + + + Good luck, + Kevin + +----- Ende der weitergeleiteten Nachricht ----- + +----- Weitergeleitete Nachricht von Francesco Poli=20=20 +=20----- + Datum: Wed, 13 May 2015 19:43:44 +0200 + Von: Francesco Poli +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Kevin Vigor + Cc: Mike Gabriel + +On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: + +> On 05/12/15 15:40, Francesco Poli wrote: +> +> > Maybe Kevin is able to dig the original conversations (assuming they +> > were carried on by e-mail or similar archived means) or otherwise to +> > get in touch with them and check? Or, alternatively, Kevin could help +> > Mike to get in touch with them? +> +> I'm afraid I was not able to dig anything out of old backups last=20=20 +>=20night. I still have a stack of CDs to look through, but don't hold=20= +=20 +>=20your breath. Sorry about that. + +Thanks a lot for searching: this is really appreciated, at least from +my side. + +> +> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari, + +Then I wonder how it was possible to re-license DXPC in 2002... +:-| + +> and have not spoken with Brian Pane in many years, so I have no recent +contact information for any of them. However, a quick google turns up: +> +> https://www.linkedin.com/profile/view?id=3D728859 +> http://www.brianp.net/contact/ +> +> which is almost certainly the right Brian Pane (he was at CNet at=20=20 +>=20the proper time). + +This could be really useful, thank you very much! + +Mike, I hope the search may go on from there: Brian should be asked +about the retroactive nature of the re-licensing of DXPC and maybe he +also knows how to get in touch with Zachary and/or Gian Filippo... + + +P.S.: Kevin, any special reason why you dropped several addresses from +the Cc list? Should this part of our conversation be kept private for +the time being? Please clarify. Thanks! + +----- Ende der weitergeleiteten Nachricht ----- + +----- Weitergeleitete Nachricht von Kevin Vigor ----- + Datum: Wed, 13 May 2015 14:08:48 -0600 + Von: Kevin Vigor +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Francesco Poli + Cc: Mike Gabriel + +On 05/13/15 11:43, Francesco Poli wrote: +> On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: + +>> I have never had any contact with Zachary Vonler or Gian Filippo Pinzari= +, +> +> Then I wonder how it was possible to re-license DXPC in 2002... +> :-| +> + +I believe Gian worked on the NoMachine code; he has never contributed=20=20 +to=20DXPC directly. + +Zachary Vonler was allegedly the maintainer of DXPC for a while circa=20=20 +1999,=20but never responded to any email when I attempted to contact=20=20 +him,=20which is how I came to take over maintenance. + + +> P.S.: Kevin, any special reason why you dropped several addresses from +> the Cc list? Should this part of our conversation be kept private for +> the time being? Please clarify. Thanks! + +No, I was just trying to keep from spamming email lists unnecessarily.=20= +=20 +I=20do not consider any part of this conversation private. + +----- Ende der weitergeleiteten Nachricht ----- + +----- Weitergeleitete Nachricht von Francesco Poli=20=20 +=20----- + Datum: Wed, 13 May 2015 22:50:32 +0200 + Von: Francesco Poli +Betreff: Re: [pkg-x2go-devel] Bug#784565: nx-libs-lite: parts are=20=20 +derived=20from non-free code + An: Kevin Vigor + Cc: Mike Gabriel + +On Wed, 13 May 2015 14:08:48 -0600 Kevin Vigor wrote: + +> On 05/13/15 11:43, Francesco Poli wrote: +> > On Wed, 13 May 2015 09:01:27 -0600 Kevin Vigor wrote: +> +> >> I have never had any contact with Zachary Vonler or Gian Filippo Pinza= +ri, +> > +> > Then I wonder how it was possible to re-license DXPC in 2002... +> > :-| +> > +> +> I believe Gian worked on the NoMachine code; he has never=20=20 +>=20contributed to DXPC directly. + +Good, then only Zachary has to be tracked down. + +> +> Zachary Vonler was allegedly the maintainer of DXPC for a while=20=20 +>=20circa 1999, but never responded to any email when I attempted to=20=20 +>=20contact him, which is how I came to take over maintenance. + +Let's hope Brian is able to help Mike in getting in touch with +Zachary... + +> +> +> > P.S.: Kevin, any special reason why you dropped several addresses from +> > the Cc list? Should this part of our conversation be kept private for +> > the time being? Please clarify. Thanks! +> +> No, I was just trying to keep from spamming email lists=20=20 +>=20unnecessarily. I do not consider any part of this conversation=20=20 +>=20private. +> + +OK, thanks for clarifying. + +----- Ende der weitergeleiteten Nachricht ----- + +--=20 + +DAS-NETZWERKTEAM +mike gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_SHoEHYV8bfary9lJHYP1lQ1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVCthAAoJEJr0azAldxsx3KUP/2997X9KnhVEedREGxsuqvQn +Dp5oGK2JPf0Z2MZui1FVehvakoHQD0MuhpVs7ZktnshwNvAgxyhW5esC617a9gsz +jJvaJz0S0MPHfSM4Dz8Yg2t0u0DpueVZBpOeDOlt9W9ECXkpe2YPk5AOialHwTPX +OP5KKfMSLEGFreUL7U0WeetC/To5zm54Ivx1a0wx2I+HdPJ0YXTxIC7JvUSNejFE +0+yhK1thXf38juOeb2pxTvRQXcj1IoDMRSc0k7KHeNGmP1NF38fh1illPlBABG1u +wa3hn+1uMe3+On8LJkDtIHtsXrR2RUuOP+0FbI4rTRo5SOeVFNRSl1ldp2ywl8rQ +9WkK623cuurOydsHjj+fIlcb7GN/OgrTay8VRS3jUjy9tlQ7PCpF5W1m7kMPHrCP +nh6/hUa6ep8qE+86dosQS4FxvOgSHOEpbNZ8ulEib/ClHr9wsnWpjxQtvRnZsBTl +PAIXKvdiHUCgyfs4efSWYtR8QUJTYmPDrGr2V8jWAtzZOo6NSa09c2Yc2OxLRDpP +HBGVSLUOrocvbb3wPAgnsogxtYCpzo/ga1Rnx2LdIfLNaTv62sek+nHqJzICqtcH +SdMajeJTVksKQCmHqIQS7C2V44cDYizTe9exZIl75OKT6TDujuW/KZiPQK6VCCNv +eEgOxmCOHlc8YLLz0dEP +=N9IW +-----END PGP SIGNATURE----- + +--=_SHoEHYV8bfary9lJHYP1lQ1-- + + + + +From mike.gabriel@das-netzwerkteam.de Thu May 14 05:55:46 2015 +Received: (at 784565) by bugs.debian.org; 14 May 2015 05:55:46 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 23; hammy, 150; neutral, 392; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1Ysm7W-0005fv-3I + for 784565@bugs.debian.org; Thu, 14 May 2015 05:55:46 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id BDB433282; + Thu, 14 May 2015 07:55:43 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 20DC03BD2E; + Thu, 14 May 2015 07:55:43 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 3Dt4TKuxIMPh; Thu, 14 May 2015 07:55:43 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 871AB3B9EA; + Thu, 14 May 2015 07:55:42 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 14 May 2015 05:55:42 +0000 +Date: Thu, 14 May 2015 05:55:42 +0000 +Message-ID: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Zach Vonler , Brian Pane , + Gian Filippo Pinzari +Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com, 784565@bugs.debian.org, Francesco Poli + +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> +In-Reply-To: <20150512234048.054319a449ffadcf87577425@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_whjzG6t3RqUoHnRlD0aGiA1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_whjzG6t3RqUoHnRlD0aGiA1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Dear Brian, dear Zachary, dear Gian Filippo, + +(Find a TL;DR; at the end of this mail...) + +I am contacting you on a licensing issue related to the DXPC code that=20= +=20 +you=20worked on at the end of the nineties. I'd highly appreciate it if=20= +=20 +you=20could take a little time to read this mail and get back to me,=20=20 +either=20privately or in public. +[I have actually Cc:ed quite a number of people in this mail (thread).=20= +=20 +All=20of them will be affected by the outcome of this license issue to=20= +=20 +some=20lesser or greater extent. If you feel inconvenient with replying=20= +=20 +to=20so many people you don't know, really don't hesitate to get back to=20= +=20 +me=20in private first, so that we can sort things out. Thank you.] + +Before I continue, let me shortly introduce myself. My name is Mike=20=20 +Gabriel,=20I work for the Debian project [1.1, 1.2] (which brings forth=20= +=20 +one=20of the major GNU/Linux distributions world-wide. I am also the=20=20 +upstream=20code maintainer of a software project called nx-libs [2]. The=20= +=20 +nx-libs=20code has been derived from several of NoMachine's NXv3 [11]=20=20 +components=20(namely: nx-X11, nxagent, nxcomp, nxcompext and nxcompshad). + +A member of the Debian legal team [3] (Francesco Poli) made us (i.e.,=20=20 +the=20nx-libs developers, users, package maintainers) aware of an issue=20= +=20 +[4]=20in the nx-libs component NXCOMP (which has been derived from DXPC=20= +=20 +[5]).=20Please read Message #5 of the brought up issue on the Debian bug=20= +=20 +tracker=20(#784565) [4] before you continue reading. Thanks. + +I will now jump into the below quoted mail and continue inline... + +On Di 12 Mai 2015 23:40:48 CEST, Francesco Poli wrote: + +> On Tue, 12 May 2015 17:41:55 +0200 Mike Gabriel wrote: +> +>> Hi Kevin, +> +> Hello Mike, hello Kevin, hello to all the other recipients. +> +> First of all, I wish to express my gratitude to Kevin for his prompt, +> kind and generous response. + +>> thanks for your feedback. Let us wait for Francesco, our expert on=20=20 +>>=20license issues, and see what he thinks about your feedback. +> +> I think that this is an important first step to solve this issue for +> the best. +> Kevin Vigor is one of the copyright owners of the code that was forked +> before the re-licensing. +> We now know that he intended the re-licensing to be retroactive and +> this is really good. + +We are currently in the process of contacting all DXPC related=20=20 +copyright=20holders mentioned in the NXCOMP license file [6]. We already=20= +=20 +received=20some feedback from Kevin Vigor [7], but we also need to=20=20 +address=20you (Brian, Zachary, Gian Filippo) with this. (The mail=20=20 +address=20I have from Zachary may be outdated, so any current contact=20=20 +address=20is highly welcome, in case the mail address being used will=20=20 +bounce=20back). + +At the moment, NXCOMP (and thus nx-libs, but also NoMachine's NXv3=20=20 +code)=20cannot be considered as fully free software, until this issue is=20= +=20 +settled.=20The DXPC license before DXPC v3.8.1 was an ancient BSD style=20= +=20 +license=20that failed in explicitly mentioning, that it is allowed to=20=20 +modify=20the DXPC code in derivative works. In 2002, DXPC 3.8.1 got=20=20 +released=20[12], using a more compliant license (BSD-2-clause). As Kevin=20= +=20 +told=20us, this license change [8,9] was done after the FSF [10] had=20=20 +contacted=20the DXPC developers. + +However, the NXCOMP code in NXv3 got forked from DXPC before 2002, as=20=20 +it=20seems. So unfortunately, the modifications of DXPC as found in=20=20 +NoMachine's=20NXCOMP product are not compliant with the pre-3.8.1=20=20 +license=20of DXPC. + +> I think that now it would be useful to ascertain that the other +> copyright owners (Brian Pane, Zachary Vonler, Gian Filippo Pinzari) are +> also OK with this interpretation of the re-licensing operation. + +TL;DR; So here comes my actual question: are you (Brian Pane, Zachary=20=20 +Vonler,=20Gian Filippo Pinzari) ok with retroactively regarding=20=20 +pre-3.8.1=20code of DXPC (that you probably all worked on at that time)=20= +=20 +as=20BSD-2-clause? Are you ok with others having taken or taking the=20=20 +pre-3.8.1=20DXPC code and distribute it in a modified form? + +A yes from all of you as DXPC copyright holders is essential for the=20=20 +continuation=20of nx-libs development under a free license. This may=20=20 +also=20possibly be an issue for NXv4 in case parts of it have been=20=20 +derived=20from DXPC. + +Thanks to all of you for taking your time. + +light+love +Mike + +[1.1] http://www.debian.org +[1.2] https://qa.debian.org/developer.php?login=3Dsunweaver%40debian.org +[2] https://github.com/ArcticaProject/nx-libs +[3] https://www.debian.org/legal/ +[4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#5 +[5] http://www.vigor.nu/dxpc/ +[6] https://github.com/ArcticaProject/nx-libs/blob/3.6.x/nxcomp/LICENSE#L32 +[7] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D784565#40 +[8] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D72020 +[9] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D142028 +[10] http://www.fsf.org/ +[11] https://www.nomachine.com/version-3 +[12] http://www.vigor.nu/dxpc/CHANGES +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_whjzG6t3RqUoHnRlD0aGiA1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVDjeAAoJEJr0azAldxsx1JUP/RdzhmQ3HU+6x479AoGBTKxV +onR3XPlq8Iw9f6dU0TjqlAHCOGeftJ+X7A3HamiTFsr5wUqlrTuKeYnVd4hTa08e +ge9WIODczQfnoHm47siTjlMfQuHFIGDnHuJ+3GbvojMI7QXWrM9wgxGo2B/2UUQS +tFlYPbvfAGhCyUVx/zLRFqDVzzdo+UCVoLLYKE1pkwjhpnGGamY1xd/KFjCgi0Vx +f/Nx9w28EqmRFZCTmxghLngkTlQwrtBkSUAhLS3ntxV12RrrQQ2verXPWbW1DU9C +3TZypNZSMc4O8etJ244YUk7wAvspUtJnXyvxoQ2Padw0ogGFayIdLtC8HStCy+Mx +Q/FIND8+aGdYALNTbQfTCpJ1fmg06Id4hn96rdZOhpT80M3vTuY9HpIyf2dDCdHu +OmHEjUKnMRgjPbVoIU5lz8s4X/ET7hzxb2psXSwscxI+qqlSrADzC98QB23djJii +O9qPVB/HqJXwNNXlwiScrLC/q4ro0QgdurKmIDQq1zjdFXyBDEwMzxLNlVSJiEeG +gMSiXD9lD8J1KBDp35P4wxmOcCSymILU11Lpvf5N22ID7cfk8x58+Fsik+RkQZcm +94ll8p4XU0xOt8pgzGOVL4rLBsjcPGzuTjUoDsB8zmZLSgEgrISZNQC7pRhEXTRW +3g7fQuF635IMObwgVJJB +=c1td +-----END PGP SIGNATURE----- + +--=_whjzG6t3RqUoHnRlD0aGiA1-- + + + + +From mike.gabriel@das-netzwerkteam.de Thu May 14 06:20:24 2015 +Received: (at 784565) by bugs.debian.org; 14 May 2015 06:20:24 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 149; neutral, 94; spammy, + 1. spammytokens:0.997-1--sk:austin. hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YsmVL-0008TY-AE + for 784565@bugs.debian.org; Thu, 14 May 2015 06:20:24 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id AA82B3282; + Thu, 14 May 2015 08:20:19 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id A8B823BD2E; + Thu, 14 May 2015 08:20:18 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id LyPILriO4mkm; Thu, 14 May 2015 08:20:18 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 4BB463BB3A; + Thu, 14 May 2015 08:20:18 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 14 May 2015 06:20:18 +0000 +Date: Thu, 14 May 2015 06:20:18 +0000 +Message-ID: <20150514062018.Horde.T6fBfDEHTv_IkVi4n506ew5@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Brian Pane , Gian Filippo Pinzari + +Cc: opensource@gznianguan.com, 784565@bugs.debian.org, + nito.martinez@qindel.com, Francesco Poli , + x2go-dev@lists.x2go.org +Subject: Re: [X2Go-Dev] [pkg-x2go-devel] Bug#784565: Bug#784565: + nx-libs-lite: parts are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> +In-Reply-To: <20150514055542.Horde.LWDaJ7sgQHr-LCJySXbtvQ3@mail.das-netzwerkteam.de> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_FXxC2VoubfzELdkXQu84zQ1"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_FXxC2VoubfzELdkXQu84zQ1 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi again, + +On Do 14 Mai 2015 07:55:42 CEST, Mike Gabriel wrote: + +> [...] (The mail address I have from Zachary may be outdated, so any=20=20 +>=20current contact address is highly welcome, in case the mail address=20= +=20 +>=20being used will bounce back). + +As it seems, the publicly known mail address of Zachary Vonler at=20=20 +austin.utexas.edu=20is outdated. + +@Brian: if you happen to have a recent mail address of Zachary, could=20=20 +you=20please provide it to me privately? Thanks. + +Mike +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_FXxC2VoubfzELdkXQu84zQ1 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVD6iAAoJEJr0azAldxsx4+8QAI9fbkDu0G/1NpC4+MDJ3HtH +wzfUUIIoBAPTahr1ZGrGK4ZMH5+RvXtwX2OBTwRRgKlZOqsdU35bj2HKi01KNLGx +9NXXnLz97CuTrXJrzis3C+pzCIpR6cR/SPhDdExdhjR8nawXcejfFhPUnbVvPvxY +jYN43cYFScovk5f5bUtIAybVZZCpdRZwDRevD+1qTTs+WtDf/9PXL7CX9A7j7r6T +XQIURSVQq/FVXcJHSdZcYZza/4JHIZbEQTeX3FaUK+zkdHlBbbmRwzN0YLP/XQiY +06tQXFjgjqjjkoxTE5gQrlN3kyxNH2WpXj2eeAqQarkCOnKgiuFEYxhTCYnZHCmk +WVYhb2/78VbRlRbDJH0jJ0KKNOi9fbXGcVa36IOgV2dLN+tnNorAQjHm7LkBDhyi +c3EmzEPtDTmcb5XuPYwwbNGn2EE47UsTx3UjPFWAQVQ2LwMXoFb+iH+WWSQ8KW1b +xKRDOtarACd06rbW/sKQVdzNytydvFkZZn//AHHA7KP7jmqhl/bub8EyEf9cCTVr +92XB5bbI1rLfEo1D3FTUaCt1tUEumhgRzwlJteX5/vbpf0fJ3QcWMUQSQWYqbhEm +LnlGOM44jZDtQ7QonezcB/+lQDu2/0Q7fZtgqtr9bxkJ5URr8/ByTI+E3K2bxdme +jQAQL6yyRC5s419MIJTr +=6/Dc +-----END PGP SIGNATURE----- + +--=_FXxC2VoubfzELdkXQu84zQ1-- + + + + +From mike.gabriel@das-netzwerkteam.de Sat May 16 09:19:18 2015 +Received: (at 784565) by bugs.debian.org; 16 May 2015 09:19:18 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-10.9 required=4.0 tests=BAYES_00,DIGITS_LETTERS, + FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 31; hammy, 150; neutral, 208; spammy, + 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YtYFZ-0006BP-Mo + for 784565@bugs.debian.org; Sat, 16 May 2015 09:19:18 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 434CF3D4F; + Sat, 16 May 2015 11:19:13 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 9294C3BB55; + Sat, 16 May 2015 11:19:12 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id a-GW73-71I6N; Sat, 16 May 2015 11:19:12 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 224123BB3B; + Sat, 16 May 2015 11:19:12 +0200 (CEST) +Received: from 176.4.79.4 ([176.4.79.4]) by mail.das-netzwerkteam.de (Horde + Framework) with HTTP; Sat, 16 May 2015 09:19:12 +0000 +Date: Sat, 16 May 2015 09:19:12 +0000 +Message-ID: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: 784565@bugs.debian.org, Francesco Poli +Cc: Kevin Vigor , nito.martinez@qindel.com, + x2go-dev@lists.x2go.org, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> +In-Reply-To: <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 176.4.79.4 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_n6jEwcfiXkrvf2B-ZGaJrw3"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_n6jEwcfiXkrvf2B-ZGaJrw3 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi all, esp. Kevin, + +On Do 14 Mai 2015 06:58:09 CEST, Mike Gabriel wrote: + +I looked at dxpc releases (I obtained upstream tarballs from=20=20 +snapshot.debian.org). + +I=20currently have: + +""" +[mike@minobo dxpc.nxrebase (upstream-nxrebase)]$ git log +commit 0676a768a96383641a73a72ecd2e1083322e6abe +Author: Mike Gabriel +Date: Sat May 16 10:52:24 2015 +0200 + + Imported Upstream version 3.9.2 + +commit 4ccf34b2c4763dfb01dceb8588b204b0d029cc3d +Author: Mike Gabriel +Date: Sat May 16 10:51:04 2015 +0200 + + Imported Upstream version 3.9.1 + +commit dd8f60ce63c70ed605a2e1717feb7128e59fb8e6 +Author: Mike Gabriel +Date: Sat May 16 10:49:19 2015 +0200 + + Imported Upstream version 3.9.0 + +commit 01c990099aea802405f8d39c0b819ee1742c185c +Author: Mike Gabriel +Date: Sat May 16 10:32:06 2015 +0200 + + Imported Upstream version 3.8.2 + +commit 48df60b3b946a08541ee48371634f074e875adda +Author: Mike Gabriel +Date: Sat May 16 10:31:57 2015 +0200 + + Imported Upstream version 3.8.0 + +commit 11d81444d0f86a67f9b8483cbfa33343714b26e9 +Author: Mike Gabriel +Date: Sat May 16 10:31:53 2015 +0200 + + Imported Upstream version 3.7.0 + +commit e4f550abd4cd49ecc2381e717a55a9940087a376 +Author: Mike Gabriel +Date: Sat May 16 10:31:44 2015 +0200 + + Imported Upstream version 3.5.0 +""" + +> @Kevin: I will take you off this mail thread's Cc: field with my=20=20 +>=20next post. Feel free to follow-up via #784565 [1] on the Debian bug=20= +=20 +>=20tracker. Thanks a lot for being so responsive and generous with=20=20 +>=20providing information. + +With this post I actually reincluded you because it becomes technical=20=20 +from=20here on and I probably will need your expertise on DXPC. Not sure=20= +=20 +if=20you have time or prio or are willing to provide that. Would you be=20= +=20 +open=20for answering technical questions on DXPC and esp. the changes=20=20 +between=203.7.0 and 3.8.1/3.8.2? I'd highly appreciate that. + +As I have not heard back neither from Brian Pane, Zachary Vonler nor=20=20 +Gian=20Filippo Pinzari (we had Ascension Day and maybe a prolonged=20=20 +weekend=20that people used for going on VAC), I will try looking at the=20= +=20 +DXPC=20changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked=20=20 +NXCOMP=20from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0. + +Questions to Kevin: + + o Is there any SVN upstream repo still online + (I saw it in one of the tarballs, that SVN was + used for 3.9.0). + o Do you have any tarballs documenting the + changes between 3.7.0 and 3.8.0? Do you also + have the 3.8.1 tarball? + o Did the 3.8.0 version of DXPC break proto + compatibility (i.e., you could not use client + 3.7.0 and server 3.8.0 and vice versa with + each other)? + +Any help on this is appreciated. Thanks. + +Mike + + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_n6jEwcfiXkrvf2B-ZGaJrw3 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVVwuPAAoJEJr0azAldxsxAqoQAI1IOApnU8WLZH+VT1GIgtvx +XxuBALPeR8KobmGRfJd4bSzeIpAqw+JSGa0/XApTwjYbpsIUKnMrEfoHfS0wt4Tb +ZmSiHL4XCYa6SCGOAbSe89QXNA8kS4ewQMSaPTZhGvoR6wIjdNfxXDN5aO6TkUlw +qw786fMKYcj9htNnshlq264uSfkrMusFEw614dnfKEVnx8YrIUU5lNY9AInShO9S +K0vy1vn53/Ie5Fec1FK0WUsT4xTu7NW80Ch0+IgopURIl9NmlomJVRwoDLbR47Ox +6dFVGJ5VKmOt+oW2g4YAdti8YNhSYteyPgTAPMdtU4XqkHV5/RepCoV/6gr3/YR1 +To63WGpt2B+jl2d4OAPuWWdTRucB2QYsCz/jCvLKeLcg2ODHZJXhSzVYlIie0uFY +SRvqM8qW+WyuYek2vZDneKvDB2eUqMhRb5dmSeod9UR+3RYTq+JrFUoDq65PONbM +A0QZ+cG0EkQdxG/1V8yZoMRgxPOtb+AZcMIjC5NikWUsyIkGjMHNHSbJCboJBlyM +DdyRCTxuM09cpzNxS7Ph0z0iSdQZAl2D7vPCAY1jwyLdu7Xra/p3aM6pqeYuIaWh +OpoF/sRq08CjWmgVe7MdfkgxZQxW4qIdOeNYGUDIADzzj6cHdNV+WP13ISizeoyO +u4cspyl/6lFu3TyMWkh8 +=fu9u +-----END PGP SIGNATURE----- + +--=_n6jEwcfiXkrvf2B-ZGaJrw3-- + + + + +From zvonler@gmail.com Mon May 18 15:05:45 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 15:05:46 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-5.3 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,FREEMAIL_FROM,HAS_BUG_NUMBER,HTML_MESSAGE, + MULTALT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS + autolearn=ham autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 14; hammy, 104; neutral, 41; spammy, + 1. spammytokens:0.940-+--H*c:alternative + hammytokens:0.000-+--D*das-netzwerkteam.de, 0.000-+--sk:mikega, + 0.000-+--sk:mike.ga, 0.000-+--U*mike.gabriel, + 0.000-+--mike.gabriel@das-netzwerkteam.de +Return-path: +Received: from mail-ob0-f181.google.com ([209.85.214.181]) + by buxtehude.debian.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) + (Exim 4.80) + (envelope-from ) + id 1YuMbx-0004SF-RZ + for 784565@bugs.debian.org; Mon, 18 May 2015 15:05:45 +0000 +Received: by obblk2 with SMTP id lk2so127830096obb.0 + for <784565@bugs.debian.org>; Mon, 18 May 2015 08:05:39 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=gmail.com; s=20120113; + h=mime-version:date:message-id:subject:from:to:content-type; + bh=nHgAzYNhWTJXAXb1d3jfmZVOFHEEaolqyRCNmCThusM=; + b=ilsboi8m+iXF7pVv2MVsvJqi8Es4/o3Awnfg5nSzWVB34kDB0g7zczoEfC4d9km/Bn + WDerLV30mJ+OfaRA5elHld2CsY9ByX2MuU73jj2kNenlEV15s7LdJxYsWiZeKM4AEeOw + gGF3oU3A/FfhVUrhoPjcGXiF7xjXh1kkPGjkmXFJgthTnyJQjrL6Kw6jfsqhQtbEpqnc + 5hsWFCNR7O780T1pkf+MisASrWFXI3oolY4EV8/P6OeEWmmKd7L9h8YHPegOdFq543qZ + na9coEvmwpnReWORK79ycOgZa1DwiX1h2SvS+wgigQx8j9ZlJld5SpJFTcV3vSJxmICQ + i7Wg== +MIME-Version: 1.0 +X-Received: by 10.202.89.131 with SMTP id n125mr19222614oib.91.1431961538959; + Mon, 18 May 2015 08:05:38 -0700 (PDT) +Received: by 10.202.212.10 with HTTP; Mon, 18 May 2015 08:05:38 -0700 (PDT) +Date: Mon, 18 May 2015 10:05:38 -0500 +Message-ID: +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts are + derived from non-free code +From: Zach Vonler +To: 784565@bugs.debian.org +Content-Type: multipart/alternative; boundary=001a113d381edcb3e205165c863b + +--001a113d381edcb3e205165c863b +Content-Type: text/plain; charset=UTF-8 + +On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel < +mike.gabriel@das-netzwerkteam.de> wrote: + +> +> TL;DR; So here comes my actual question: are you (Brian Pane, Zachary +> Vonler, Gian Filippo Pinzari) ok with retroactively regarding +> pre-3.8.1 code of DXPC (that you probably all worked on at that time) +> as BSD-2-clause? Are you ok with others having taken or taking the +> pre-3.8.1 DXPC code and distribute it in a modified form? +> + + +> A yes from all of you as DXPC copyright holders is essential for the +> continuation of nx-libs development under a free license. This may +> also possibly be an issue for NXv4 in case parts of it have been +> derived from DXPC. + + +Yes, I am fine with considering the license change to be retroactive to +cover the time I was the maintainer. + +I have no objections to others distributing modified versions of that code. + +Zach + +--001a113d381edcb3e205165c863b +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable + +
On Thu, 14 May 2015 05:55:42 +0000 Mike Gabriel <mike.gabriel@das-netzwerkteam= +.de> wrote:

TL;DR; So here comes my act= +ual question: are you (Brian Pane, Zachary =C2=A0
Vonler, Gian Filippo P= +inzari) ok with retroactively regarding =C2=A0
pre-3.8.1 code of DXPC (t= +hat you probably all worked on at that time) =C2=A0
as BSD-2-clause? Are= + you ok with others having taken or taking the =C2=A0
pre-3.8.1 DXPC cod= +e and distribute it in a modified form?
=C2=A0
A yes from all of you as DXPC copyright holders is essential= + for the =C2=A0
continuation of nx-libs development under a free license= +. This may =C2=A0
also possibly be an issue for NXv4 in case parts of it= + have been =C2=A0
derived from DXPC.
=C2=A0
= +
Yes, I am fine with considering the license change to be retroactive t= +o cover the time I was the maintainer.

I have no o= +bjections to others distributing modified versions of that code.
= +
Zach
+ +--001a113d381edcb3e205165c863b-- + + + +From kevin@vigor.nu Mon May 18 21:26:12 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 21:26:12 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 16; hammy, 150; neutral, 121; spammy, + 0. spammytokens: hammytokens:0.000-+--tarballs, 0.000-+--H*f:sk:2015050, + 0.000-+--3.9.0, 0.000-+--3.8.0, 0.000-+--H*UA:31.0 +Return-path: +Received: from gateway13.websitewelcome.com ([69.56.148.12]) + by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YuSY8-0004Mq-9I + for 784565@bugs.debian.org; Mon, 18 May 2015 21:26:12 +0000 +Received: by gateway13.websitewelcome.com (Postfix, from userid 5007) + id 248D59C09927E; Mon, 18 May 2015 15:38:28 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway13.websitewelcome.com (Postfix) with ESMTP id 1EB399C099246 + for <784565@bugs.debian.org>; Mon, 18 May 2015 15:38:28 -0500 (CDT) +Received: from [63.158.132.10] (port=43192 helo=[10.50.3.84]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YuRnv-0001VU-8i; Mon, 18 May 2015 15:38:27 -0500 +Message-ID: <555A4DC1.2040900@vigor.nu> +Date: Mon, 18 May 2015 14:38:25 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 +MIME-Version: 1.0 +To: Mike Gabriel , + 784565@bugs.debian.org, Francesco Poli +CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 63.158.132.10 +X-Exim-ID: 1YuRnv-0001VU-8i +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:43192 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 2 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 1495 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:26:12 UTC + +On 05/16/15 03:19, Mike Gabriel wrote: + As I have not heard back neither from Brian Pane, Zachary Vonler nor Gian Filippo Pinzari (we had Ascension Day and maybe a prolonged weekend that people used for going on VAC), I will try looking at the DXPC changes between 3.7.0 and 3.8.1. Obviously, NoMachine forked NXCOMP from DXPC some time between DXPC 3.7.0 and DXPC 3.8.0. +> +> Questions to Kevin: +> +> o Is there any SVN upstream repo still online +> (I saw it in one of the tarballs, that SVN was +> used for 3.9.0). + +I'm afraid not. There was never an online repo available, and if I used one personally it is lost to the mists of time. + +> o Do you have any tarballs documenting the +> changes between 3.7.0 and 3.8.0? Do you also +> have the 3.8.1 tarball? + +I have the source tarballs to each of those (including the 3.8.1 version). The 3.8.0 release includes a README-3.8.0 file which documents the changes between 3.7.0 and 3.8.0 reasonably well. + +As will be (unfortunately) obvious from examining the deltas between 3.7.0 (the last release by Brian and/or Zachary) and 3.8.0 (the first release by me), I inherited a significant majority of the code. + +> o Did the 3.8.0 version of DXPC break proto +> compatibility (i.e., you could not use client +> 3.7.0 and server 3.8.0 and vice versa with +> each other)? + +Yes, minor version number bumps were used to indicate compatibility. 3.8.x was incompatible with 3.7.x (and also with 3.9.x). + + + + +From kevin@vigor.nu Mon May 18 21:34:50 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 21:34:50 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-8.0 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 39; hammy, 146; neutral, 132; spammy, + 4. spammytokens:0.999-1--tecnologies, 0.993-1--H*RU:67.18.68.12, + 0.987-1--D*ascend.com, 0.987-1--H*r:34828 hammytokens:0.000-+--H*f:sk:2015050, + 0.000-+--3.8.0, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0, + 0.000-+--H*f:sk:2015051 +Return-path: +Received: from gateway15.websitewelcome.com ([67.18.68.12]) + by buxtehude.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YuSgU-0005Jq-92 + for 784565@bugs.debian.org; Mon, 18 May 2015 21:34:50 +0000 +Received: by gateway15.websitewelcome.com (Postfix, from userid 5007) + id 8BB94ED5E6912; Mon, 18 May 2015 16:11:44 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway15.websitewelcome.com (Postfix) with ESMTP id 84825ED5E68F2 + for <784565@bugs.debian.org>; Mon, 18 May 2015 16:11:44 -0500 (CDT) +Received: from [63.158.132.10] (port=34828 helo=[10.50.3.84]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YuSK7-00005R-B6; Mon, 18 May 2015 16:11:43 -0500 +Message-ID: <555A558E.1020703@vigor.nu> +Date: Mon, 18 May 2015 15:11:42 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 +MIME-Version: 1.0 +To: Mike Gabriel , + 784565@bugs.debian.org, Francesco Poli +CC: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +In-Reply-To: <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 63.158.132.10 +X-Exim-ID: 1YuSK7-00005R-B6 +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([10.50.3.84]) [63.158.132.10]:34828 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 2 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 1383 seconds by postgrey-1.34 at buxtehude; Mon, 18 May 2015 21:34:50 UTC + +By the way, poking around the interwebs I find there is an archive of the old DXPC mailing list available at: + +http://marc.info/?l=dxpc&r=1&w=2 + +I think you will find this of particular interest: + + +http://marc.info/?l=dxpc&m=93093790813555&w=2 + + +List: dxpc +Subject: Re: future tecnologies +From: Brian Pane +Date: 1999-07-02 16:42:18 +[Download message RAW] + +Kevin Vigor wrote: +> On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: +> > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc +> > code itself under GPL, or are they going to use the original dxpc's +> > licensing? +> +> No, as you can probably guess, I am no fan of the GPL. For stuff on +> this level, where my hacking is pretty simple and probably devoid of +> commercial value, I'll just release my changes to the public domain and +> give up even a copyright interest in them. +> +> Your and Zach's copyrights still stand, of course. +> +> I *think* that fact that we use the LZO library and API, but do not +> directly incorporate the code, allows us to escape the clutch of the GPL +> virus. +> +> btw, is there an original dxpc license? I haven't seen anything but a +> copyright notice, which to my non-lawyerly mind translates as "free to +> all the world as is, negotiate with copyright owner if modifying or +> including in some other product". + +The copyright banner in the Readme is all the documentation there's ever +been. My intent was to allow _any_ distribution, use, and modification +of the source, without imposing restrictions on the licensing style of +any system into which others might incorporate the code. We probably +should start stating this clearly in the distributions. + +-brian + +[prev in list] [next in list] [prev in thread] [next in thread] + + + +From mike.gabriel@das-netzwerkteam.de Mon May 18 21:49:10 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 21:49:10 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 35; hammy, 150; neutral, 281; spammy, + 0. spammytokens: hammytokens:0.000-+--H*RU:sk:grimnir, + 0.000-+--H*r:sk:grimnir, 0.000-+--H*RU:78.46.204.98, + 0.000-+--H*RU:88.198.48.199, 0.000-+--H*RU:sk:freya.d +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YuSuK-0007oj-Hh + for 784565@bugs.debian.org; Mon, 18 May 2015 21:49:10 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 253493049 + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:04 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id ACC2E3BD6C + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id Hh79XOiBkYIp for <784565@bugs.debian.org>; + Mon, 18 May 2015 23:49:03 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 6CC483BC0D + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 2100C3BD6C + for <784565@bugs.debian.org>; Mon, 18 May 2015 23:49:03 +0200 (CEST) +Received: from [10.139.193.227] (unknown [176.0.38.193]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPSA id 453F63BB1E; + Mon, 18 May 2015 23:48:59 +0200 (CEST) +From: Mike Gabriel +Reply-To: Mike Gabriel +To: Kevin Vigor , 784565@bugs.debian.org, Francesco Poli +Cc: nito.martinez@qindel.com, x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +X-Mailer: Modest 3.2 +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> +In-Reply-To: <555A558E.1020703@vigor.nu> +Content-Type: text/plain; charset=utf-8 +Content-ID: <1431985731.1406.1.camel@Nokia-N900> +Date: Mon, 18 May 2015 23:48:51 +0200 +Message-Id: <1431985731.1406.2.camel@Nokia-N900> +Mime-Version: 1.0 +Content-Transfer-Encoding: 8bit + +Hi Kevin, hi Zach, hi Francesco, hi all, + +@Francesco, please review the recent posts and sum up what to do next. + +----- Original message ----- +> By the way, poking around the interwebs I find there is an archive of +> the old DXPC mailing list available at: +> +> http://marc.info/?l=dxpc&r=1&w=2 +> +> I think you will find this of particular interest: +> +> +> http://marc.info/?l=dxpc&m=93093790813555&w=2 + + +> +> +> List:            dxpc +> Subject:      Re: future tecnologies +> From:            Brian Pane +> Date:            1999-07-02 16:42:18 +> [Download message RAW] +> +> Kevin Vigor wrote: +> > On 01-Jul-99 dxpc@mcfeeley.cc.utexas.edu wrote: +> > > Speaking of licensing, are you putting your 3.8.0 changes to the dxpc +> > > code itself under GPL, or are they going to use the original dxpc's +> > > licensing? +> > +> > No, as you can probably guess, I am no fan of the GPL. For stuff on +> > this level, where my hacking is pretty simple and probably devoid of +> > commercial value, I'll just release my changes to the public domain and +> > give up even a copyright interest in them. +> > +> > Your and Zach's copyrights still stand, of course. +> > +> > I *think* that fact that we use the LZO library and API, but do not +> > directly incorporate the code, allows us to escape the clutch of the +> > GPL virus. +> > +> > btw, is there an original dxpc license? I haven't seen anything but a +> > copyright notice, which to my non-lawyerly mind translates as "free to +> > all the world as is, negotiate with copyright owner if modifying or +> > including in some other product". +> +> The copyright banner in the Readme is all the documentation there's ever +> been.  My intent was to allow _any_ distribution, use, and modification +> of the source, without imposing restrictions on the licensing style of +> any system into which others might incorporate the code.  We probably +> should start stating this clearly in the distributions. +> +> -brian +> +> [prev in list] [next in list] [prev in thread] [next in thread] + +@Kevin: You are very awesome! + +@Francesco: that old post from Brian should be the statement we need, right? As Brian has not answered back, so far, does that post suffice? + +I also had a mail from Zach in my mailbox this morning. I managed to get hold of him via phone over the weekend. He posted his agreement to this Debian bug (as message #77) [1] earlier today. @Zach: thanks a lot for that!!! + +@Francesco: by looking at [2], I cannot see any hint for Gian Filippo Pinzari being a copyright holder of DXPC. This is stated in the NoMachine files at at least one place, but not in the latest DXPC upstream release. I am on my mobile right now, need to check old versions of DXPC, but if Gian Filippo Pinzari is not listed in the DXPC 3.7.0 release (where nxcomp obviously got forked from), then I think that we don't require his feedback, right? + +To my opinion, this issue can be settled. We have direct feedback from Kevin and Zach and Kevin dug out an old post from Brian stating the retroactive nature of the BSD-2-clause while Gian Filippo probably not being a real copyright holder of the original DXPC code. Right? + +light+love, +Mike + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=77;att=0;bug=784565 +[2] http://www.vigor.nu/dxpc/README + + +-- + +DAS-NETZWERKTEAM +mike gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976148 + +GnuPG Key ID 0x25771B13 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + + + + +From invernomuto@paranoici.org Mon May 18 22:15:14 2015 +Received: (at 784565) by bugs.debian.org; 18 May 2015 22:15:14 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, + SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 12; hammy, 150; neutral, 220; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from latitanza.investici.org ([82.94.249.234]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YuTJa-0002xP-0G + for 784565@bugs.debian.org; Mon, 18 May 2015 22:15:14 +0000 +Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id 921B3120546; + Mon, 18 May 2015 22:15:05 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1431987305; + bh=RQEA/1bkAQ71T0PpK/7XelDXEZBLyoVavVl9tpWLzWY=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=sO+MOEv4mZZNK2g5Om9IC7Og5k2qPAvFepN+ei+3/jCixgNBbvaLuRpMgJw6l1yjD + hpqRYIxtNgyVywgpuiFVACFBuDn1ksfdFrEPNAcgRl//Sert2aOjetbZcKi1VouhXi + eexR8IP81C0C1UjzjeC7zEmF5V+wSyhVs9jKvKfg= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1YuTIi-0002Se-TN; Tue, 19 May 2015 00:14:20 +0200 +Date: Tue, 19 May 2015 00:14:08 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: Kevin Vigor , 784565@bugs.debian.org, + nito.martinez@qindel.com, x2go-dev@lists.x2go.org, + opensource@gznianguan.com, zvonler@gmail.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +Message-Id: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> +In-Reply-To: <1431985731.1406.2.camel@Nokia-N900> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> + <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> + <1431985731.1406.2.camel@Nokia-N900> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx" + +--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Mon, 18 May 2015 23:48:51 +0200 Mike Gabriel wrote: + +[...] +> @Francesco: that old post from Brian should be the statement we need, +> right? As Brian has not answered back, so far, does that post suffice? + +Yes, I am under the impression that it may be considered as evidence +that Brian had always meant to grant permission to modify, despite not +being overly clear until DXPC version 3.8.1. +In other words, it seems that the re-licensing was more intended to be +a clarification, rather than a change of mind. + +>=20 +> I also had a mail from Zach in my mailbox this morning. I managed to +> get hold of him via phone over the weekend. He posted his agreement +> to this Debian bug (as message #77) [1] earlier today. @Zach: thanks +> a lot for that!!! + +This is really great! + +>=20 +> @Francesco: by looking at [2], I cannot see any hint for Gian Filippo +> Pinzari being a copyright holder of DXPC. This is stated in the +> NoMachine files at at least one place, but not in the latest DXPC +> upstream release. I am on my mobile right now, need to check old +> versions of DXPC, but if Gian Filippo Pinzari is not listed in +> the DXPC 3.7.0 release (where nxcomp obviously got forked from), +> then I think that we don't require his feedback, right? + +If it is confirmed that Gian Filippo contributed to the forking of DXPC +within the NoMachine project, but not directly to DXPC, then I think +that he made his contributions available under the terms of the GPL v2 +of the NoMachine project. +If this is the case, no feedback should be required from his side. + +>=20 +> To my opinion, this issue can be settled. We have direct feedback +> from Kevin and Zach and Kevin dug out an old post from Brian stating +> the retroactive nature of the BSD-2-clause while Gian Filippo probably +> not being a real copyright holder of the original DXPC code. Right? + +Yes, I agree with this analysis. +The only missing check is the one about Gian Filippo's involvement (as +explained above). + +Thanks a lot to everyone involved in this license fixing effort! +Bye. + +>=20 +> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;att=3D0;bug=3D= +784565 +> [2] http://www.vigor.nu/dxpc/README + + + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVWmQ1AAoJED4cJ+Efab/+FowQALSZya0Xp8IXNA+d0gjQBLGQ +7eDzaX+kPVKkbYdb7ZDlQF+ZVTwjOnqjf1dDLXWSHwcXYhFd3DeeFB11QfAKXptI +GyzOt/vrh+w1K2zMb4rR9lxyUKIrKmVI6aOxyRTP7ojqkqqFvpF7ZVkDJZBFCSvx +LXdAWTaz5NLIH5R4lzvTcTFYmC3JhBtf8m58l4jT3GC1pxoqlYQk0svWOrdlULQZ +zh1dy6Sf0guwMuOH4pfreTKlNIizFj7BwanoN+tNvYG1sbQnyIwNRKUfG+v5/13P +3tyjknNDTTE67T40qSv6pcZs46vqMTevL8E+s+wGfcvdKQ5Y2fPQ8Q9yxS6cVxH2 +DXsLV97RFCcdD+ys+7P9j7xYG0e38juu61sU42cNmrb5iU0woB3SJtFvABhioGZg +TLFi/OxOT6ZTHcZtfwqozVyB1fOesqx3nvwCEE3pNuf58ErxRy1sIXwoChNL4+eo +ET1kojXBXHER6W6EHno0yz600sJXHE8rco+fv5b5qGBHdLEJ0k80YXQI4FhJQT69 +I8FyASmNX4u6HvH6hRVm2BwE9WrZTUUQRb0m/pEfZVVroiRrqTl/ntvWchXvI2Tt +IGfoDMtmVbSkh+2DQmsG9oDqiG1pCt3eNkLa1oftlQ7oIQem2MajCOS4QN20PMpU +d/smtrrNvkmiWuQrjwDF +=R0ou +-----END PGP SIGNATURE----- + +--Signature=_Tue__19_May_2015_00_14_08_+0200_Wl9eJ95DZcVokEvx-- + + + +From kevin@vigor.nu Tue May 19 01:41:18 2015 +Received: (at 784565) by bugs.debian.org; 19 May 2015 01:41:18 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-6.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 26; hammy, 131; neutral, 46; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:31.6.0, 0.000-+--H*u:31.6.0, + 0.000-+--H*f:sk:2015050, 0.000-+--H*UA:31.0, 0.000-+--H*u:31.0 +Return-path: +Received: from gateway32.websitewelcome.com ([192.185.145.107]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1YuWX0-0002lG-Du + for 784565@bugs.debian.org; Tue, 19 May 2015 01:41:18 +0000 +Received: by gateway32.websitewelcome.com (Postfix, from userid 500) + id 311BBD143B8C; Mon, 18 May 2015 20:16:29 -0500 (CDT) +Received: from gator4058.hostgator.com (gator4058.hostgator.com [192.185.4.69]) + by gateway32.websitewelcome.com (Postfix) with ESMTP id 2F036D143B72 + for <784565@bugs.debian.org>; Mon, 18 May 2015 20:16:29 -0500 (CDT) +Received: from [98.202.128.111] (port=49655 helo=[192.168.7.118]) + by gator4058.hostgator.com with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) + (Exim 4.82) + (envelope-from ) + id 1YuW8y-0004Tt-DX; Mon, 18 May 2015 20:16:28 -0500 +Message-ID: <555A8EE9.9000503@vigor.nu> +Date: Mon, 18 May 2015 19:16:25 -0600 +From: Kevin Vigor +User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 +MIME-Version: 1.0 +To: Francesco Poli , + Mike Gabriel +CC: 784565@bugs.debian.org, nito.martinez@qindel.com, + x2go-dev@lists.x2go.org, opensource@gznianguan.com, zvonler@gmail.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: nx-libs-lite: parts + are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> <20150512234048.054319a449ffadcf87577425@paranoici.org> <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> +In-Reply-To: <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> +Content-Type: text/plain; charset=windows-1252; format=flowed +Content-Transfer-Encoding: 7bit +X-AntiAbuse: This header was added to track abuse, please include it with any abuse report +X-AntiAbuse: Primary Hostname - gator4058.hostgator.com +X-AntiAbuse: Original Domain - bugs.debian.org +X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] +X-AntiAbuse: Sender Address Domain - vigor.nu +X-BWhitelist: no +X-Source-IP: 98.202.128.111 +X-Exim-ID: 1YuW8y-0004Tt-DX +X-Source: +X-Source-Args: +X-Source-Dir: +X-Source-Sender: ([192.168.7.118]) [98.202.128.111]:49655 +X-Source-Auth: kevin@vigor.nu +X-Email-Count: 3 +X-Source-Cap: a3ZpZ29yO2t2aWdvcjtnYXRvcjQwNTguaG9zdGdhdG9yLmNvbQ== +X-Greylist: delayed 1487 seconds by postgrey-1.34 at buxtehude; Tue, 19 May 2015 01:41:18 UTC + +On 5/18/2015 4:14 PM, Francesco Poli wrote: +> If it is confirmed that Gian Filippo contributed to the forking of +> DXPC within the NoMachine project, but not directly to DXPC, then I +> think that he made his contributions available under the terms of the +> GPL v2 of the NoMachine project. If this is the case, no feedback +> should be required from his side. +I can confirm that Gian Fillippo never contributed directly to DXPC. +You'll note his name does not appear in the DXPC README, and never has. + + + +From mike.gabriel@das-netzwerkteam.de Tue May 19 08:15:28 2015 +Received: (at 784565) by bugs.debian.org; 19 May 2015 08:15:28 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 24; hammy, 150; neutral, 195; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YucgR-0008T9-K0 + for 784565@bugs.debian.org; Tue, 19 May 2015 08:15:28 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 7D1773C96; + Tue, 19 May 2015 10:15:23 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id 08FEE3BFD5; + Tue, 19 May 2015 10:15:23 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id MW9pv+xO3WwY; Tue, 19 May 2015 10:15:22 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 97FCC3C2AA; + Tue, 19 May 2015 10:15:12 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Tue, 19 May 2015 08:15:12 +0000 +Date: Tue, 19 May 2015 08:15:12 +0000 +Message-ID: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Kevin Vigor , 784565@bugs.debian.org, Francesco Poli + +Cc: opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com, + x2go-dev@lists.x2go.org +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: + nx-libs-lite: parts are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> + <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> + <555A8EE9.9000503@vigor.nu> +In-Reply-To: <555A8EE9.9000503@vigor.nu> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_AI4511z4pP7yPmTeeGgEoA6"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_AI4511z4pP7yPmTeeGgEoA6 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Hi Kevin, hi Frederico, + +On Di 19 Mai 2015 03:16:25 CEST, Kevin Vigor wrote: + +> On 5/18/2015 4:14 PM, Francesco Poli wrote: +>> If it is confirmed that Gian Filippo contributed to the forking of=20=20 +>>=20DXPC within the NoMachine project, but not directly to DXPC, then I=20= +=20 +>>=20think that he made his contributions available under the terms of=20= +=20 +>>=20the GPL v2 of the NoMachine project. If this is the case, no=20=20 +>>=20feedback should be required from his side. + +> I can confirm that Gian Fillippo never contributed directly to DXPC.=20= +=20 +>=20You'll note his name does not appear in the DXPC README, and never=20= +=20 +>=20has. + +@Kevin: This is again good news for sorting out this issue. Thanks a=20=20 +lot=20for your help, Kevin. + +@Frederico: I guess we are through then. Thanks for helping with=20=20 +clarifying=20the situation (and bringing it up in the first place). + +For fixing this issue (in terms of closing the bug), I propose this=20=20 +for=20downstream (i.e., Debian): + + o copy bug_784565.mbox [1] into the debian/ folder of the=20=20 +nx-libs-lite=20package + o upload some latest release of nx-libs-lite 3.5.0.x to unstable + o update debian/copyright accordingly + o close this bug via debian/changelog + +For upstream, I propose this: + + o copy bug_784565.mbox into the docs/ folder + o update copyright information in nxcomp/ subfolder + o provide some README or such that shortly explains our last weeks' proc= +ess + o this will be for the upcoming 3.6.x release series of nx-libs + + o this should also be backported to the 3.5.x release series + +Once the mbox file and README are upstreamed, I will drop that content=20= +=20 +from=20the debian/ folder in the Debian package nx-libs-lite (as it will=20= +=20 +be=20in the upstream tarball of nx-libs-lite). + +Feedback (esp. from Frederico), concerns, other suggestions? + +Greets, +Mike + + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?mbox=3Dyes;bug=3D784565 +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_AI4511z4pP7yPmTeeGgEoA6 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVWvEQAAoJEJr0azAldxsxiZgP/1MhcK1h2or3zG3P9h3oOqFk +rsknSn/0paY8HlzggWh5N4juLU9ET/VyO+xMCbVFDXb9jv5ryRI0MinPGwp6ujTl +DxHAz5q5YrC/NYH9IU0PqL2Zja952xbjlVPgf64+iLT0kqFmY7L48bkxVXd4cKnJ +flflATeaPTcVgIVcfFte2q/NJV7AAGjwb/tEOOMbqrRYOu1hKLozWnRSLZ/rdl5V +OmktCjfAfw6Cvy4/IN6pCjG4uqFvsWvzjMofR53MLuy8cwQhtpvK9KPLCZlo9Efm +KyrFNl866Egmc/HTLQkSaOJOKartANw+Ev7qsVi30OJOEWh9T1fDjnFvLn6hesKf +9pAS/+mkuCUVNjLI/ATZAwY93bzBS+vo7fya2D/DxDk8FoLIe7XdI9GABdTE2U0H +eyNLb/Lq485BEQEu9ThtvACZYH3F3UqA7OcFfLKyVw2lsOJV7SN3KCl76te4iNcf +UlVzVr211lKhGTV9hLF3daKntu1H3jQku9zLK9ShJR6bYTpCAsGi2h2xzZm5PLDE +9tbf+qUmDn3lp4uMaBtBdtq+yt47Wk95iS41x/qyvy0PK/RdnPxTpfdbriu4+1l2 +ij6Dq5bb7GckZDmpVjSsGSr4jjWtJ5QrnZbpv/u/v3+wliZL0c+CScrA+5I/qJeI +eGXnQIwqcWE/2/AcAz2r +=Q2/H +-----END PGP SIGNATURE----- + +--=_AI4511z4pP7yPmTeeGgEoA6-- + + + + +From invernomuto@paranoici.org Wed May 20 18:04:34 2015 +Received: (at 784565) by bugs.debian.org; 20 May 2015 18:04:34 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-12.0 required=4.0 tests=BAYES_00,DKIM_SIGNED, + DKIM_VALID,DKIM_VALID_AU,FOURLA,HAS_BUG_NUMBER,PGPSIGNATURE,SPF_HELO_PASS, + SPF_PASS autolearn=ham autolearn_force=no + version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 11; hammy, 150; neutral, 212; spammy, + 0. spammytokens: hammytokens:0.000-+--H*UA:sk:x86_64-, + 0.000-+--H*x:sk:x86_64-, 0.000-+--H*c:PGP-SHA256, 0.000-+--H*c:SignHturH, + 0.000-+--H*c:pgp-signature +Return-path: +Received: from latitanza.investici.org ([82.94.249.234]) + by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) + (Exim 4.80) + (envelope-from ) + id 1Yv8M4-00011u-4i + for 784565@bugs.debian.org; Wed, 20 May 2015 18:04:34 +0000 +Received: from [82.94.249.234] (latitanza [82.94.249.234]) (Authenticated sender: invernomuto@paranoici.org) by localhost (Postfix) with ESMTPSA id C5F33121147; + Wed, 20 May 2015 18:04:24 +0000 (UTC) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paranoici.org; + s=stigmate; t=1432145064; + bh=kDc9DoBw4hJZuuDTXyurpbInn9fdFF6IfH4jMVGqQB4=; + h=Date:From:To:Cc:Subject:In-Reply-To:References; + b=frjvhV6NrKV9TyZSGeK6evsHeI9sAgoPOPboFwSAIij0bPp1G5rCLaVWFjD1RtFsK + j+6I/XZ60KTIjiXaQGqqznF3jU2dQ/lzPkj1VYKa9Kmt1pw4UhJvU+mbyrO6cX2mSi + 52Wi1of3M+l/UT9DYKjXgzMRuWkYoAq4tmsOe9jY= +Received: from frx by homebrew with local (Exim 4.85) + (envelope-from ) + id 1Yv8LB-0001gi-7y; Wed, 20 May 2015 20:03:37 +0200 +Date: Wed, 20 May 2015 20:03:25 +0200 +From: Francesco Poli +To: Mike Gabriel +Cc: Kevin Vigor , 784565@bugs.debian.org, + opensource@gznianguan.com, zvonler@gmail.com, nito.martinez@qindel.com, + x2go-dev@lists.x2go.org +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: + nx-libs-lite: parts are derived from non-free code +Message-Id: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> +In-Reply-To: <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> + <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> + <1431985731.1406.2.camel@Nokia-N900> + <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> + <555A8EE9.9000503@vigor.nu> + <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> +X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) +Mime-Version: 1.0 +Content-Type: multipart/signed; protocol="application/pgp-signature"; + micalg="PGP-SHA256"; + boundary="Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV" + +--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV +Content-Type: text/plain; charset=US-ASCII +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote: + +[...] +> @Frederico: I guess we are through then. + +Yes, it seems so (I'm assuming you meant to direct this question to +me...). + +> Thanks for helping with =20 +> clarifying the situation (and bringing it up in the first place). + +You're welcome! +Thanks to you and all the involved people for helping to solve this +issue. + +>=20 +> For fixing this issue (in terms of closing the bug), I propose this =20 +> for downstream (i.e., Debian): +>=20 +> o copy bug_784565.mbox [1] into the debian/ folder of the =20 +> nx-libs-lite package + +Maybe the entire bug log is an overkill... +I would include the relevant replies only. For instance: +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D784= +565 +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D784= +565 +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D784= +565 +https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D78= +4565 + +> o upload some latest release of nx-libs-lite 3.5.0.x to unstable +> o update debian/copyright accordingly + +In the debian/copyright file the license for the original DXPC code +should be replaced with the 2-clause BSD license (currently adopted for +DXPC) with a comment saying something like: + + The original DXPC code used to be available under a license which + failed to explicitly grant the permission to modify, but was later + retroactively re-licensed under the 2-clause BSD license (see + debian/bug_784565_*.mbox for the copyright owners' statements; see + for more details) + +Moreover, the copyright notice of Gian Filippo Pinzari should be +documented in some more appropriate part of the debian/copyright file, +associated with the NoMachine license (GPL v2 or later). + +> o close this bug via debian/changelog +>=20 +> For upstream, I propose this: +>=20 +> o copy bug_784565.mbox into the docs/ folder + +Again, I would not include the entire bug log, but only the relevant +messages (see above)... + +> o update copyright information in nxcomp/ subfolder +> o provide some README or such that shortly explains our last weeks' pr= +ocess +> o this will be for the upcoming 3.6.x release series of nx-libs +>=20 +> o this should also be backported to the 3.5.x release series + + +Thanks to everyone involved! +Bye. + +--=20 + http://www.inventati.org/frx/ + There's not a second to spare! To the laboratory! +..................................................... Francesco Poli . + GnuPG key fpr =3D=3D CA01 1147 9CD2 EFDF FB82 3925 3E1C 27E1 1F69 BFFE + +--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV +Content-Type: application/pgp-signature + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iQIcBAEBCAAGBQJVXMxyAAoJED4cJ+Efab/+yUsP/RWzC9NoVGF7UnEIEpJODu0u +hVkX1zjpJ+iMByHVlatR90ulKwkvVb4d354YJqyI0VM2wUtif6XBoroB0K3i6vZE +DsxugBlzhnH8jgpPVKbOyBKshpKKZsUbvDdEXM20ZkfI4xwokymiSdHOKoHH4ZHS +WN9q+i6OezfWvZSKQ+VCbe7QiQABAcB+zCdVvUWevhNqMDKdhsDC03Ju+5YZQbse +QbgYSazZvJouLPamivquh8nBdjGpPxqAJGrlUu3SR5slJxRojRvl2cl/CDFEQEQR +gbLMnnr2nj1hF4JI2WaWCSX90NrGTfGxCN4IdNd7tmjtkg5lB+KFx63YjHbLmUl/ +k87XAyXxSWyGvc7M2xyIXBQQrHtRxtK0rdN+e7ht9PcXYyxUtQzr7vfPwvI+B2GV +M23ZUoyV1rFp5JymbUL4Vk6pq/hLnv9FzwOySNVcj6Pt8eT+BcoSbwOI1AMq1P1S +wCs/PhEGBA3TDWERXF0Fb7x24NEf7EdjmzKTGGdXTCfSkacxkGzsMaRpWb0D6IaV +tSI6CmBQ9uOdkbiNDhGX4esosyJZJQ9GrnWX9d/lTs9wXUHHykvnYRbDzpkChZdI +ICqc+IxnPmX6HU2kyq2ZAzfhx/drqLizcv0gQlyY6APjRu3EQ3tapR9kYB6BcuGU +cMLlO0549ekk8/s3Zk0i +=9Hew +-----END PGP SIGNATURE----- + +--Signature=_Wed__20_May_2015_20_03_25_+0200__3Vr7Ml7uHmX7EzV-- + + + +From mike.gabriel@das-netzwerkteam.de Thu May 21 09:35:35 2015 +Received: (at 784565) by bugs.debian.org; 21 May 2015 09:35:35 +0000 +X-Spam-Checker-Version: SpamAssassin 3.4.0-bugs.debian.org_2005_01_02 + (2014-02-07) on buxtehude.debian.org +X-Spam-Level: +X-Spam-Status: No, score=-11.9 required=4.0 tests=BAYES_00,FOURLA, + HAS_BUG_NUMBER,PGPSIGNATURE,T_RP_MATCHES_RCVD autolearn=ham + autolearn_force=no version=3.4.0-bugs.debian.org_2005_01_02 +X-Spam-Bayes: score:0.0000 Tokens: new, 15; hammy, 150; neutral, 222; spammy, + 0. spammytokens: hammytokens:0.000-+--H*c:pgp-signature, + 0.000-+--H*c:protocol, 0.000-+--H*c:micalg, 0.000-+--H*c:signed, + 0.000-+--H*RU:sk:grimnir +Return-path: +Received: from freya.das-netzwerkteam.de ([88.198.48.199]) + by buxtehude.debian.org with esmtps (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) + (Exim 4.80) + (envelope-from ) + id 1YvMt4-0006Ry-Ri + for 784565@bugs.debian.org; Thu, 21 May 2015 09:35:35 +0000 +Received: from grimnir.das-netzwerkteam.de (grimnir.das-netzwerkteam.de [78.46.204.98]) + by freya.das-netzwerkteam.de (Postfix) with ESMTPS id 89FD21F2; + Thu, 21 May 2015 11:35:31 +0200 (CEST) +Received: from localhost (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTP id C86AC3BAE9; + Thu, 21 May 2015 11:35:30 +0200 (CEST) +X-Virus-Scanned: Debian amavisd-new at grimnir.das-netzwerkteam.de +Received: from grimnir.das-netzwerkteam.de ([127.0.0.1]) + by localhost (grimnir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id GqfEjOoeH2CA; Thu, 21 May 2015 11:35:30 +0200 (CEST) +Received: from grimnir.das-netzwerkteam.de (localhost [127.0.0.1]) + by grimnir.das-netzwerkteam.de (Postfix) with ESMTPS id 615DC3BAB2; + Thu, 21 May 2015 11:35:30 +0200 (CEST) +Received: from bifrost.das-netzwerkteam.de (bifrost.das-netzwerkteam.de + [178.62.101.154]) by mail.das-netzwerkteam.de (Horde Framework) with HTTP; + Thu, 21 May 2015 09:35:30 +0000 +Date: Thu, 21 May 2015 09:35:30 +0000 +Message-ID: <20150521093530.Horde.Oeys0xv-mTUN5U5IZtdeLA1@mail.das-netzwerkteam.de> +From: Mike Gabriel +To: Francesco Poli , 784565@bugs.debian.org +Cc: nito.martinez@qindel.com, opensource@gznianguan.com +Subject: Re: [pkg-x2go-devel] Bug#784565: Bug#784565: Bug#784565: + Bug#784565: nx-libs-lite: parts are derived from non-free code +References: <20150506173532.7531.31389.reportbug@homebrew> + <20150511092636.Horde.oj6sHKnvQDt85T3EW1WhVA1@mail.das-netzwerkteam.de> + <20150511213659.34dce0505c493c1e23d2c3ee@paranoici.org> + <20150512044637.Horde.8WHdvRpU7GS9Szy323gv_Q2@mail.das-netzwerkteam.de> + <55521444.9090407@vigor.nu> <1431445315.4712.7.camel@Nokia-N900> + <20150512234048.054319a449ffadcf87577425@paranoici.org> + <20150514045809.Horde.-3NIZzBnA5V5B6a721F2kg2@mail.das-netzwerkteam.de> + <20150516091912.Horde.W_1Szu5msccGYo-Ndwv3cg1@mail.das-netzwerkteam.de> + <555A558E.1020703@vigor.nu> <1431985731.1406.2.camel@Nokia-N900> + <20150519001408.8e5452a098db48d6867af6cb@paranoici.org> + <555A8EE9.9000503@vigor.nu> + <20150519081512.Horde.36QI-nOdkbpWsXrDE4E8Yw1@mail.das-netzwerkteam.de> + <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> +In-Reply-To: <20150520200325.6641876f5b4b2f483bdaea7d@paranoici.org> +User-Agent: Internet Messaging Program (IMP) H5 (6.2.2) +Accept-Language: de,en +Organization: DAS-NETZWERKTEAM +X-Originating-IP: 178.62.101.154 +X-Remote-Browser: Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 + Firefox/32.0 Iceweasel/32.0 +Content-Type: multipart/signed; boundary="=_5hM8_j7kivGPCYTZql9Fug5"; + protocol="application/pgp-signature"; micalg=pgp-sha1 +MIME-Version: 1.0 + +This message is in MIME format and has been PGP signed. + +--=_5hM8_j7kivGPCYTZql9Fug5 +Content-Type: text/plain; charset=us-ascii; format=flowed; DelSp=Yes +Content-Disposition: inline +Content-Transfer-Encoding: quoted-printable + +Control: forwarded -1 https://github.com/ArcticaProject/nx-libs/issues/30 + +Hi Francesco, + +On Mi 20 Mai 2015 20:03:25 CEST, Francesco Poli wrote: + +> On Tue, 19 May 2015 08:15:12 +0000 Mike Gabriel wrote: +> +> [...] +>> @Frederico: I guess we are through then. +> +> Yes, it seems so (I'm assuming you meant to direct this question to +> me...). + +Yes. :-) + +>> For fixing this issue (in terms of closing the bug), I propose this +>> for downstream (i.e., Debian): +>> +>> o copy bug_784565.mbox [1] into the debian/ folder of the +>> nx-libs-lite package +> +> Maybe the entire bug log is an overkill... +> I would include the relevant replies only. For instance: +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D40;mbox=3Dyes;bug=3D7= +84565 +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D77;mbox=3Dyes;bug=3D7= +84565 +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D87;mbox=3Dyes;bug=3D7= +84565 +> https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D102;mbox=3Dyes;bug=3D= +784565 + +ACK. + +>> o upload some latest release of nx-libs-lite 3.5.0.x to unstable +>> o update debian/copyright accordingly +> +> In the debian/copyright file the license for the original DXPC code +> should be replaced with the 2-clause BSD license (currently adopted for +> DXPC) with a comment saying something like: +> +> The original DXPC code used to be available under a license which +> failed to explicitly grant the permission to modify, but was later +> retroactively re-licensed under the 2-clause BSD license (see +> debian/bug_784565_*.mbox for the copyright owners' statements; see +> for more details) +> +> Moreover, the copyright notice of Gian Filippo Pinzari should be +> documented in some more appropriate part of the debian/copyright file, +> associated with the NoMachine license (GPL v2 or later). +> +>> o close this bug via debian/changelog +>> +>> For upstream, I propose this: +>> +>> o copy bug_784565.mbox into the docs/ folder +> +> Again, I would not include the entire bug log, but only the relevant +> messages (see above)... +> +>> o update copyright information in nxcomp/ subfolder +>> o provide some README or such that shortly explains our last=20=20 +>>=20weeks' process +>> o this will be for the upcoming 3.6.x release series of nx-libs +>> +>> o this should also be backported to the 3.5.x release series + +Doing all the above now. + +Thanks to all, +Mike + +--=20 + +DAS-NETZWERKTEAM +mike=20gabriel, herweg 7, 24357 fleckeby +fon: +49 (1520) 1976 148 + +GnuPG Key ID 0x25771B31 +mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de + +freeBusy: +https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.x= +fb + +--=_5hM8_j7kivGPCYTZql9Fug5 +Content-Type: application/pgp-signature +Content-Description: Digitale PGP-Signatur +Content-Disposition: inline + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iQIcBAABAgAGBQJVXabiAAoJEJr0azAldxsxd4cP/in26lIPvdANMyDaqq3zQOMh +n/Q+oZK5SYnHQP7vaS4mOWjTw5tCbfcUMcKwu1KpbgpUGOl9e1c/oKGxR3j5GWh3 +XiqQhPWEMf64OsM4vW5prJFrx0VNqfxykMWbGzQfs6Dz9ihJ6+HzVudOk3bfHwj2 +GahCflRo7xA1hJjwz5cIX1/WJaAF25TVSQ43jVpPu0pnAYOWvhOAZMpTJTZqRbgT +peuFaiKE+NOb4C/WO9mkuO3wlEBZ5Ef/RinKQDlbV5/CZElEs1f42A4t5q909EVi +U2PpaEis8BJAIKetl8g/bPoHh9u6X3tbeOKJlZBo5l2SMyLUG0sYsoAyhJKJtIvk +gwdGdO71A7HLEJ6DfvE8vYXUPy9JEOQ6hhL2qeZOtJG2DZ2Qcoll9eK5scg2YutW +ZXHRTYcCQeS4PQpvQPlCR5LuFTJeNBwJ0cWgtfXYPIrPMyeEZj/VP+Ypm82hBT+I +JFjo80QjOEJ7uEM1wmn8nD0rbbP/NVf6ot/UcwlejC/XaYIlWDW5FrXf18UbGsvu +VzaHkLbhbGUYedwsb50Uu6Nn4IX8IEcF3zbwnqmB5IlbPYV0UokjgtnKEIQbdmF4 +fQ5xe5u/p2aZTnQwt39vey2W/RxJVOHRjVVrYGv0eqgda8TYOWzI3UIjSYGfuLcU +kDRest50Qfy4tmilPx3z +=Cf5/ +-----END PGP SIGNATURE----- + +--=_5hM8_j7kivGPCYTZql9Fug5-- + + + + diff --git a/nxcomp/README.on-retroactive-DXPC-license b/nxcomp/README.on-retroactive-DXPC-license index 9ff3c1db6..563c82b69 100644 --- a/nxcomp/README.on-retroactive-DXPC-license +++ b/nxcomp/README.on-retroactive-DXPC-license @@ -8,7 +8,7 @@ of DXPC as BSD-2-clause. This README file gives an overview of the discussion thread that lead to the retroactive re-licensing of DXPC. -For the full discussion, see doc/DXPC_re-licensed::debbug_784565.mbox in +For the full discussion, see doc/DXPC_re-licensed_debug_784565.mbox in this source project or #784565 on the Debian bug tracker [1]. light+love, -- cgit v1.2.3 From 2ffe52c5ecb7cf6af111c685eee7f8fcfd1139a9 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 22 Mar 2016 20:03:42 +0100 Subject: nxcomp: Properly define NX*Version(void) prototypes in NX.h. Fixes ArcticaProject/nx-libs#104 --- nxcomp/NX.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/NX.h b/nxcomp/NX.h index 0e4734e5f..1ed8cb62d 100644 --- a/nxcomp/NX.h +++ b/nxcomp/NX.h @@ -450,11 +450,11 @@ extern void NXTransCleanup(void) __attribute__((noreturn)); */ extern void NXTransCleanupForReconnect(void); -extern const char* NXVersion(); -extern int NXMajorVersion(); -extern int NXMinorVersion(); -extern int NXPatchVersion(); -extern int NXMaintenancePatchVersion(); +extern const char* NXVersion(void); +extern int NXMajorVersion(void); +extern int NXMinorVersion(void); +extern int NXPatchVersion(void); +extern int NXMaintenancePatchVersion(void); #ifdef __cplusplus } -- cgit v1.2.3 From a9be6f59105b7cf29bb799556274dc2c3b3d2af8 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Tue, 12 Apr 2016 11:52:22 +0200 Subject: Remove compatibility code for nxcomp before 3.5.0 As a part of nxcomp's clean-up process, compatibility with old protocol versions has been set now at 3.5.0. This commit removes compatibility code from nxcomp so the minimum supported version changes from 1.5.0 (protocol step 6) to 3.5.0 (protocol step 10). At this moment the removal is not complete and it will be followed by some other commits, in order to get rid of several components and files that are no longer used as they were only needed to work with old protocol versions. Refs: ArcticaProject/nx-libs#108 --- nxcomp/Channel.cpp | 186 +++--------- nxcomp/ClientCache.cpp | 7 - nxcomp/ClientCache.h | 15 - nxcomp/ClientChannel.cpp | 525 +++++---------------------------- nxcomp/ClientChannel.h | 40 --- nxcomp/ClientProxy.h | 10 +- nxcomp/ClientStore.cpp | 24 +- nxcomp/Control.cpp | 107 ++----- nxcomp/Control.h | 50 ++-- nxcomp/CreateGC.cpp | 80 ++--- nxcomp/DecodeBuffer.cpp | 95 +----- nxcomp/DecodeBuffer.h | 12 - nxcomp/EncodeBuffer.cpp | 67 +---- nxcomp/EncodeBuffer.h | 12 - nxcomp/FillPoly.cpp | 16 +- nxcomp/FillPoly.h | 16 +- nxcomp/GenericChannel.h | 24 +- nxcomp/GenericReply.cpp | 7 +- nxcomp/GenericReply.h | 1 - nxcomp/GenericRequest.cpp | 9 +- nxcomp/GenericRequest.h | 1 - nxcomp/GetImageReply.cpp | 7 +- nxcomp/GetImageReply.h | 1 - nxcomp/GetPropertyReply.cpp | 7 +- nxcomp/GetPropertyReply.h | 1 - nxcomp/ListFontsReply.cpp | 7 +- nxcomp/ListFontsReply.h | 1 - nxcomp/Loop.cpp | 264 +++++------------ nxcomp/Message.cpp | 14 - nxcomp/Message.h | 21 -- nxcomp/PolyLine.cpp | 18 +- nxcomp/PolyPoint.cpp | 18 +- nxcomp/PositionCacheCompat.cpp | 17 -- nxcomp/Proxy.cpp | 280 +++++------------- nxcomp/Proxy.h | 5 - nxcomp/PutImage.cpp | 14 +- nxcomp/PutImage.h | 2 - nxcomp/PutPackedImage.cpp | 7 +- nxcomp/PutPackedImage.h | 1 - nxcomp/QueryFontReply.cpp | 7 +- nxcomp/QueryFontReply.h | 1 - nxcomp/RenderCompositeGlyphs.cpp | 166 ++++------- nxcomp/RenderCompositeGlyphs.h | 5 +- nxcomp/RenderExtension.cpp | 258 ++++------------ nxcomp/RenderExtension.h | 1 - nxcomp/ServerCache.cpp | 5 +- nxcomp/ServerCache.h | 8 - nxcomp/ServerChannel.cpp | 614 ++++++++------------------------------- nxcomp/ServerChannel.h | 15 - nxcomp/ServerProxy.h | 10 +- nxcomp/SetUnpackAlpha.cpp | 7 +- nxcomp/SetUnpackAlpha.h | 4 - nxcomp/SetUnpackColormap.cpp | 7 +- nxcomp/SetUnpackColormap.h | 3 - nxcomp/ShapeExtension.cpp | 7 +- nxcomp/ShapeExtension.h | 1 - nxcomp/Split.cpp | 23 +- nxcomp/Types.h | 10 +- 58 files changed, 649 insertions(+), 2492 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Channel.cpp b/nxcomp/Channel.cpp index 71b556b0d..93efa6343 100644 --- a/nxcomp/Channel.cpp +++ b/nxcomp/Channel.cpp @@ -386,16 +386,14 @@ int Channel::handleDecode(DecodeBuffer &decodeBuffer, ChannelCache *channelCache if (store -> enableSplit == 1) { - if (control -> isProtoStep7() == 1) - { - #ifdef DEBUG - *logofs << "handleDecode: " << store -> name() - << ": Checking if the message was split.\n" - << logofs_flush; - #endif + // Since ProtoStep7 (#issue 108) + #ifdef DEBUG + *logofs << "handleDecode: " << store -> name() + << ": Checking if the message was split.\n" + << logofs_flush; + #endif - decodeBuffer.decodeBoolValue(split); - } + decodeBuffer.decodeBoolValue(split); if (split == 1) { @@ -537,16 +535,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe if (control -> LocalDeltaCompression == 0 || enableCache_ == 0 || store -> enableCache == 0) { - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(is_discarded, - store -> lastActionCache); - } - else - { - encodeBuffer.encodeActionValueCompat(is_discarded, - store -> lastActionCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(is_discarded, + store -> lastActionCache); store -> lastAction = is_discarded; @@ -601,19 +592,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe store -> lastRemoved = position; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(is_removed, store -> lastRemoved, - store -> lastActionCache); - } - else - { - encodeBuffer.encodeActionValueCompat(is_removed, - store -> lastActionCacheCompat); - - encodeBuffer.encodePositionValueCompat(store -> lastRemoved, - store -> lastRemovedCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(is_removed, store -> lastRemoved, + store -> lastActionCache); #ifdef DEBUG *logofs << "handleEncodeCached: " << store -> name() << ": Going to " @@ -679,16 +660,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe << logofs_flush; #endif - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(is_discarded, - store -> lastActionCache); - } - else - { - encodeBuffer.encodeActionValueCompat(is_discarded, - store -> lastActionCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(is_discarded, + store -> lastActionCache); store -> lastAction = is_discarded; @@ -759,16 +733,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe << logofs_flush; #endif - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(is_discarded, - store -> lastActionCache); - } - else - { - encodeBuffer.encodeActionValueCompat(is_discarded, - store -> lastActionCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(is_discarded, + store -> lastActionCache); store -> lastAction = is_discarded; @@ -793,16 +760,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe cerr << "Warning" << ": Message of size " << store -> plainSize(position) << " at position " << position << " is locked.\n"; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(is_discarded, - store -> lastActionCache); - } - else - { - encodeBuffer.encodeActionValueCompat(is_discarded, - store -> lastActionCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(is_discarded, + store -> lastActionCache); store -> lastAction = is_discarded; @@ -843,20 +803,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe store -> lastAdded = position; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(IS_ADDED, store -> lastAdded, - store -> lastActionCache); - - } - else - { - encodeBuffer.encodeActionValueCompat(IS_ADDED, - store -> lastActionCacheCompat); - - encodeBuffer.encodePositionValueCompat(store -> lastAdded, - store -> lastAddedCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(IS_ADDED, store -> lastAdded, + store -> lastActionCache); return 0; } @@ -898,19 +847,9 @@ int Channel::handleEncodeCached(EncodeBuffer &encodeBuffer, ChannelCache *channe store -> lastHit = position; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeActionValue(IS_HIT, store -> lastHit, - store -> lastActionCache); - } - else - { - encodeBuffer.encodeActionValueCompat(IS_HIT, - store -> lastActionCacheCompat); - - encodeBuffer.encodePositionValueCompat(store -> lastHit, - store -> lastHitCacheCompat); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeActionValue(IS_HIT, store -> lastHit, + store -> lastActionCache); // // Send the field by field differences in @@ -997,16 +936,9 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe unsigned char action; unsigned short int position; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeActionValue(action, position, - store -> lastActionCache); - } - else - { - decodeBuffer.decodeActionValueCompat(action, - store -> lastActionCacheCompat); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeActionValue(action, position, + store -> lastActionCache); // // Clean operations must always come @@ -1015,15 +947,8 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe while (action == is_removed) { - if (control -> isProtoStep7() == 1) - { - store -> lastRemoved = position; - } - else - { - decodeBuffer.decodePositionValueCompat(store -> lastRemoved, - store -> lastRemovedCacheCompat); - } + // Since ProtoStep7 (#issue 108) + store -> lastRemoved = position; #ifdef DEBUG @@ -1046,16 +971,9 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe store -> remove(store -> lastRemoved, discard_checksum, use_data); - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeActionValue(action, position, - store -> lastActionCache); - } - else - { - decodeBuffer.decodeActionValueCompat(action, - store -> lastActionCacheCompat); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeActionValue(action, position, + store -> lastActionCache); } // @@ -1065,15 +983,8 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe if ((T_store_action) action == IS_HIT) { - if (control -> isProtoStep7() == 1) - { - store -> lastHit = position; - } - else - { - decodeBuffer.decodePositionValueCompat(store -> lastHit, - store -> lastHitCacheCompat); - } + // Since ProtoStep7 (#issue 108) + store -> lastHit = position; // // Get data from the cache at given position. @@ -1139,15 +1050,8 @@ int Channel::handleDecodeCached(DecodeBuffer &decodeBuffer, ChannelCache *channe } else if ((T_store_action) action == IS_ADDED) { - if (control -> isProtoStep7() == 1) - { - store -> lastAdded = position; - } - else - { - decodeBuffer.decodePositionValueCompat(store -> lastAdded, - store -> lastAddedCacheCompat); - } + // Since ProtoStep7 (#issue 108) + store -> lastAdded = position; #ifdef DEBUG *logofs << "handleDecodeCached: " << store -> name() @@ -2037,12 +1941,10 @@ Split *Channel::handleSplitCommitRemove(int request, int resource, int position) << ".\n" << logofs_flush; #endif - if ((control -> isProtoStep7() == 1 && - (resource != split -> getResource() || - request != split -> getRequest() || - position != split -> getPosition())) || - (request != split -> getRequest() || - position != split -> getPosition())) + // Since ProtoStep7 (#issue 108) + if (resource != split -> getResource() || + request != split -> getRequest() || + position != split -> getPosition()) { #ifdef PANIC *logofs << "handleSplitCommitRemove: PANIC! The data in " diff --git a/nxcomp/ClientCache.cpp b/nxcomp/ClientCache.cpp index 2a82009a3..ec37c69f6 100644 --- a/nxcomp/ClientCache.cpp +++ b/nxcomp/ClientCache.cpp @@ -25,7 +25,6 @@ ClientCache::ClientCache() : changePropertyPropertyCache(16), changePropertyTypeCache(16), changePropertyData32Cache(16), - changePropertyTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE), configureWindowBitmaskCache(4), @@ -53,17 +52,11 @@ ClientCache::ClientCache() : imageTextLengthCache(8), imageTextLastX(0), imageTextLastY(0), imageTextCacheX(8), imageTextCacheY(8), - imageTextTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE), - - internAtomTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE), - - openFontTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE), polySegmentCacheX(8), polySegmentCacheY(8), polySegmentCacheIndex(0), polyTextLastX(0), polyTextLastY(0), polyTextCacheX(8), polyTextCacheY(8), polyTextFontCache(8), - polyTextTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE), putImageWidthCache(8), putImageHeightCache(8), putImageLastX(0), putImageLastY(0), putImageXCache(8), putImageYCache(8), diff --git a/nxcomp/ClientCache.h b/nxcomp/ClientCache.h index 6702e5b66..3fa59f642 100644 --- a/nxcomp/ClientCache.h +++ b/nxcomp/ClientCache.h @@ -85,7 +85,6 @@ class ClientCache : public ChannelCache IntCache changePropertyPropertyCache; IntCache changePropertyTypeCache; IntCache changePropertyData32Cache; - TextCompressor changePropertyTextCompressor; // // ClearArea request. @@ -188,19 +187,6 @@ class ClientCache : public ChannelCache unsigned int imageTextLastY; IntCache imageTextCacheX; IntCache imageTextCacheY; - TextCompressor imageTextTextCompressor; - - // - // InternAtom request. - // - - TextCompressor internAtomTextCompressor; - - // - // OpenFont request. - // - - TextCompressor openFontTextCompressor; // // PolyFillRectangle request. @@ -251,7 +237,6 @@ class ClientCache : public ChannelCache IntCache polyTextCacheY; IntCache polyTextFontCache; CharCache polyTextDeltaCache; - TextCompressor polyTextTextCompressor; // // PutImage request. diff --git a/nxcomp/ClientChannel.cpp b/nxcomp/ClientChannel.cpp index 31d6d125a..813e83bee 100644 --- a/nxcomp/ClientChannel.cpp +++ b/nxcomp/ClientChannel.cpp @@ -154,13 +154,6 @@ ClientChannel::ClientChannel(Transport *transport, StaticCompressor *compressor) splitState_.commit = 0; splitState_.mode = split_none; - // - // Disable image streaming if the remote - // doesn't support our proxy version. - // - - handleSplitEnable(); - // // Number of outstanding tainted replies. // @@ -342,10 +335,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m // previous versions. // - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeValue(inputLength, 8); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeValue(inputLength, 8); for (unsigned int i = 0; i < inputLength; i++) { @@ -364,20 +355,6 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m #endif priority_++; - - // - // Due to the way the loop was implemented - // we can't encode multiple messages if we - // are encoding the first request. - // - - if (control -> isProtoStep7() == 0) - { - if (proxy -> handleAsyncInit() < 0) - { - return -1; - } - } } else { @@ -512,17 +489,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m const unsigned char *nextSrc = inputMessage + 24; if (format == 8) { - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, dataLength); - } - else - { - clientCache_ -> changePropertyTextCompressor.reset(); - for (unsigned int i = 0; i < dataLength; i++) - clientCache_ -> changePropertyTextCompressor. - encodeChar(*nextSrc++, encodeBuffer); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, dataLength); } else if (format == 32) { @@ -872,18 +840,11 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m break; } - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_), - clientCache_ -> lastId, clientCache_ -> lastIdCache, - clientCache_ -> gcCache, - clientCache_ -> freeGCCache); - } - else - { - encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, - bigEndian_), clientCache_ -> gcCache); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_), + clientCache_ -> lastId, clientCache_ -> lastIdCache, + clientCache_ -> gcCache, + clientCache_ -> freeGCCache); const unsigned char *nextSrc = inputMessage + 8; encodeBuffer.encodeXidValue(GetULONG(inputMessage + 8, @@ -1059,18 +1020,12 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeXidValue(GetULONG(inputMessage + 8, bigEndian_), clientCache_ -> windowCache); - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_), - clientCache_ -> lastId, clientCache_ -> lastIdCache, - clientCache_ -> windowCache, - clientCache_ -> freeWindowCache); - } - else - { - encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_), - clientCache_ -> windowCache); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeNewXidValue(GetULONG(inputMessage + 4, bigEndian_), + clientCache_ -> lastId, clientCache_ -> lastIdCache, + clientCache_ -> windowCache, + clientCache_ -> freeWindowCache); + const unsigned char *nextSrc = inputMessage + 12; for (unsigned int i = 0; i < 6; i++) { @@ -1140,16 +1095,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m unsigned int numPoints = ((inputLength - 16) >> 2); - if (control -> isProtoStep10() == 1) - { - encodeBuffer.encodeCachedValue(numPoints, 16, - clientCache_ -> fillPolyNumPointsCache, 4); - } - else - { - encodeBuffer.encodeCachedValue(numPoints, 14, - clientCache_ -> fillPolyNumPointsCache, 4); - } + // Since ProtoStep10 (#issue 108) + encodeBuffer.encodeCachedValue(numPoints, 16, + clientCache_ -> fillPolyNumPointsCache, 4); encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_), clientCache_ -> drawableCache); @@ -1270,16 +1218,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m #endif - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_), - clientCache_ -> freeGCCache); - } - else - { - encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_), - clientCache_ -> gcCache); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_), + clientCache_ -> freeGCCache); } break; case X_FreePixmap: @@ -1294,26 +1235,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m #endif - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_), - clientCache_ -> freeDrawableCache); - } - else - { - unsigned int pixmap = GetULONG(inputMessage + 4, bigEndian_); - unsigned int diff = pixmap - clientCache_ -> createPixmapLastId; - if (diff == 0) - { - encodeBuffer.encodeBoolValue(1); - } - else - { - encodeBuffer.encodeBoolValue(0); - clientCache_ -> createPixmapLastId = pixmap; - encodeBuffer.encodeValue(diff, 29, 4); - } - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_), + clientCache_ -> freeDrawableCache); } break; case X_GetAtomName: @@ -1536,18 +1460,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeCachedValue(*nextSrc++, 8, clientCache_ -> polyTextDeltaCache); - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, textLength); - - nextSrc += textLength; - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - for (unsigned int i = 0; i < textLength; i++) - clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, textLength); + nextSrc += textLength; } } encodeBuffer.encodeBoolValue(0); @@ -1620,18 +1535,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeCachedValue(*nextSrc++, 8, clientCache_ -> polyTextDeltaCache); - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, textLength * 2); - - nextSrc += textLength * 2; - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - for (unsigned int i = 0; i < textLength * 2; i++) - clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, textLength * 2); + nextSrc += textLength * 2; } } encodeBuffer.encodeBoolValue(0); @@ -1692,16 +1598,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m clientCache_ -> imageTextCacheY); const unsigned char *nextSrc = inputMessage + 16; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, textLength); - } - else - { - clientCache_ -> imageTextTextCompressor.reset(); - for (unsigned int j = 0; j < textLength; j++) - clientCache_ -> imageTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, textLength); } break; case X_ImageText16: @@ -1759,16 +1657,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m clientCache_ -> imageTextCacheY); const unsigned char *nextSrc = inputMessage + 16; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, textLength * 2); - } - else - { - clientCache_ -> imageTextTextCompressor.reset(); - for (unsigned int j = 0; j < textLength * 2; j++) - clientCache_ -> imageTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, textLength * 2); } break; case X_InternAtom: @@ -1800,18 +1690,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeBoolValue((unsigned int) inputMessage[1]); const unsigned char *nextSrc = inputMessage + 8; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, nameLength); - } - else - { - clientCache_ -> internAtomTextCompressor.reset(); - for (unsigned int i = 0; i < nameLength; i++) - { - clientCache_ -> internAtomTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, nameLength); sequenceQueue_.push(clientSequence_, inputOpcode); @@ -1832,18 +1712,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeValue(GetUINT(inputMessage + 4, bigEndian_), 16, 6); const unsigned char* nextSrc = inputMessage + 8; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, textLength); - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - for (unsigned int i = 0; i < textLength; i++) - { - clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, textLength); sequenceQueue_.push(clientSequence_, inputOpcode); @@ -1859,18 +1729,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m 29, clientCache_ -> colormapCache); const unsigned char *nextSrc = inputMessage + 12; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, textLength); - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - for (unsigned int i = 0; i < textLength; i++) - { - clientCache_ -> polyTextTextCompressor.encodeChar(*nextSrc++, encodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, textLength); sequenceQueue_.push(clientSequence_, inputOpcode); @@ -1900,8 +1760,9 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m #endif - if (inputOpcode == X_DestroyWindow && control -> isProtoStep7() == 1) + if (inputOpcode == X_DestroyWindow) { + // Since ProtoStep7 (#issue 108) encodeBuffer.encodeFreeXidValue(GetULONG(inputMessage + 4, bigEndian_), clientCache_ -> freeWindowCache); } @@ -1930,19 +1791,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m clientCache_ -> lastFont = font; const unsigned char *nextSrc = inputMessage + 12; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, nameLength); - } - else - { - clientCache_ -> openFontTextCompressor.reset(); - for (; nameLength; nameLength--) - { - clientCache_ -> openFontTextCompressor. - encodeChar(*nextSrc++, encodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, nameLength); } break; case X_PolyFillRectangle: @@ -2638,14 +2488,8 @@ int ClientChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m unsigned int numRectangles = ((inputLength - 12) >> 3); - if (control -> isProtoStep9() == 1) - { - encodeBuffer.encodeValue(numRectangles, 15, 4); - } - else - { - encodeBuffer.encodeValue(numRectangles, 13, 4); - } + // Since ProtoStep9 (#issue 108) + encodeBuffer.encodeValue(numRectangles, 15, 4); encodeBuffer.encodeValue((unsigned int) inputMessage[1], 2); encodeBuffer.encodeXidValue(GetULONG(inputMessage + 4, bigEndian_), @@ -3544,19 +3388,8 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length PutUINT(nameLength, outputMessage + 8, bigEndian_); unsigned char* nextDest = outputMessage + 32; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, nameLength); - } - else - { - serverCache_ -> getAtomNameTextCompressor.reset(); - for (unsigned int i = 0; i < nameLength; i++) - { - *nextDest++ = serverCache_ -> getAtomNameTextCompressor. - decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, nameLength); } break; case X_GetGeometry: @@ -3814,21 +3647,9 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length decodeBuffer.decodeValue(length, 8); *nextDest++ = (unsigned char)length; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, length); - - nextDest += length; - } - else - { - serverCache_ -> getPropertyTextCompressor.reset(); - for (; length; length--) - { - *nextDest++ = serverCache_ -> getPropertyTextCompressor. - decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, length); + nextDest += length; } handleSave(messageStore, outputMessage, outputLength); @@ -4243,35 +4064,11 @@ int ClientChannel::handleWrite(const unsigned char *message, unsigned int length serverCache_ -> visualCache); PutULONG(visual, outputMessage + 8, bigEndian_); - if (control -> isProtoStep8() == 0) - { - const unsigned char *compressedData = NULL; - unsigned int compressedDataSize = 0; + // Since ProtoStep8 (#issue 108) + handleCopy(decodeBuffer, requestOpcode, messageStore -> + dataOffset, outputMessage, outputLength); - int decompressed = handleDecompress(decodeBuffer, requestOpcode, messageStore -> dataOffset, - outputMessage, outputLength, compressedData, - compressedDataSize); - if (decompressed < 0) - { - return -1; - } - else if (decompressed > 0) - { - handleSave(messageStore, outputMessage, outputLength, - compressedData, compressedDataSize); - } - else - { - handleSave(messageStore, outputMessage, outputLength); - } - } - else - { - handleCopy(decodeBuffer, requestOpcode, messageStore -> - dataOffset, outputMessage, outputLength); - - handleSave(messageStore, outputMessage, outputLength); - } + handleSave(messageStore, outputMessage, outputLength); } break; case X_GetPointerMapping: @@ -5090,40 +4887,23 @@ int ClientChannel::handleSplit(EncodeBuffer &encodeBuffer, MessageStore *store, { #if defined(TEST) || defined(SPLIT) - if (control -> isProtoStep8() == 1) - { - *logofs << "handleSplit: PANIC! SPLIT! Split should " - << "not be enabled for message " << "OPCODE#" - << (unsigned int) store -> opcode() << ".\n" - << logofs_flush; + // Since ProtoStep8 (#issue 108) + *logofs << "handleSplit: PANIC! SPLIT! Split should " + << "not be enabled for message " << "OPCODE#" + << (unsigned int) store -> opcode() << ".\n" + << logofs_flush; - HandleCleanup(); - } + HandleCleanup(); #endif // - // Never split the message if connected to - // an old proxy version. Also refuse the - // split if we it is not introduced by a - // start split. + // Refuse the split if it is not introduced + // by a start split. // - if (control -> isProtoStep7() == 0) - { - #if defined(TEST) || defined(SPLIT) - *logofs << "handleSplit: SPLIT! Ignoring the split with " - << "an old proxy version.\n" << logofs_flush; - #endif - - if (action == IS_ADDED || action == is_discarded) - { - encodeBuffer.encodeBoolValue(0); - } - - return 0; - } - else if (splitState_.resource == nothing || enableSplit_ == 0) + // Since ProtoStep7 (#issue 108) + if (splitState_.resource == nothing || enableSplit_ == 0) { #if defined(TEST) || defined(SPLIT) *logofs << "handleSplit: SPLIT! Nothing to do for message " @@ -5875,16 +5655,7 @@ int ClientChannel::handleSplitEvent(DecodeBuffer &decodeBuffer) << strMsTimestamp() << ".\n" << logofs_flush; #endif - if (control -> isProtoStep7() == 0) - { - #ifdef PANIC - *logofs << "handleSplitEvent: PANIC! The split can't " - << "be aborted when connected to an old " - << "proxy version.\n" << logofs_flush; - #endif - - HandleCleanup(); - } + // Since ProtoStep7 (#issue 108) // // Decode the information about the @@ -6512,146 +6283,6 @@ int ClientChannel::handleRestart(T_sequence_mode mode, int resource) return 1; } -int ClientChannel::handleTaintCacheRequest(unsigned char &opcode, const unsigned char *&buffer, - unsigned int &size) -{ - #ifdef TEST - *logofs << "handleTaintCacheRequest: Tainting cache request " - << "for FD#" << fd_ << ".\n" << logofs_flush; - #endif - - // - // The save and load flags would affect - // the decoding side but the decoding - // side doesn't support the request. - // - - enableCache_ = *(buffer + 4); - enableSplit_ = *(buffer + 5); - - handleSplitEnable(); - - #ifdef TEST - *logofs << "handleTaintCacheRequest: Set cache parameters to " - << "cache " << enableCache_ << " split " << enableSplit_ - << " load " << enableLoad_ << " save " << enableSave_ - << ".\n" << logofs_flush; - #endif - - // - // Taint the request to a X_NoOperation. - // - - opcode = X_NoOperation; - - return 0; -} - -int ClientChannel::handleTaintFontRequest(unsigned char &opcode, const unsigned char *&buffer, - unsigned int &size) -{ - // - // The remote end doesn't support this - // request so generate an empty reply - // at the local side. - // - - #ifdef TEST - *logofs << "handleTaintFontRequest: Suppressing font " - << "request for FD#" << fd_ << ".\n" - << logofs_flush; - #endif - - // - // The client sequence number has not - // been incremented yet in the loop. - // - - unsigned int sequence = (clientSequence_ + 1) & 0xffff; - - #ifdef TEST - *logofs << "handleTaintFontRequest: Opcode is " << (unsigned) opcode - << " expected client sequence is " << sequence - << ".\n" << logofs_flush; - #endif - - unsigned char *reply = writeBuffer_.addMessage(36); - - *(reply + 0) = X_Reply; - - PutUINT(sequence, reply + 2, bigEndian_); - - PutULONG(1, reply + 4, bigEndian_); - - // - // Set the length of the returned - // path to 0. - // - - *(reply + 32) = 0; - - // - // Save the sequence number, not incremented - // yet, we used to auto-generate this reply. - // - - lastSequence_ = clientSequence_ + 1; - - #ifdef TEST - *logofs << "handleTaintFontRequest: Registered " << lastSequence_ - << " as last auto-generated sequence number.\n" - << logofs_flush; - #endif - - // - // Taint the request to a X_NoOperation. - // - - opcode = X_NoOperation; - - if (handleFlush(flush_if_any) < 0) - { - return -1; - } - - return 1; -} - -int ClientChannel::handleTaintSplitRequest(unsigned char &opcode, const unsigned char *&buffer, - unsigned int &size) -{ - #ifdef TEST - - if (opcode == opcodeStore_ -> abortSplit) - { - *logofs << "handleTaintSplitRequest: Tainting abort split " - << "request for FD#" << fd_ << ".\n" - << logofs_flush; - } - else if (opcode == opcodeStore_ -> finishSplit) - { - *logofs << "handleTaintSplitRequest: Tainting finish split " - << "request for FD#" << fd_ << ".\n" - << logofs_flush; - } - else - { - *logofs << "handleTaintSplitRequest: Tainting free split " - << "request for FD#" << fd_ << ".\n" - << logofs_flush; - } - - #endif - - // - // Taint the request to a X_NoOperation. - // - - opcode = X_NoOperation; - - return 1; -} - int ClientChannel::handleTaintLameRequest(unsigned char &opcode, const unsigned char *&buffer, unsigned int &size) { @@ -7485,12 +7116,12 @@ int ClientChannel::handleFastReadRequest(EncodeBuffer &encodeBuffer, const unsig // All the NX requests are handled in the // main message loop. The X_PutImage can // be handled here only if the split was - // not requested. + // not requested (since ProtoStep7 #issue 108). // if ((opcode >= X_NXFirstOpcode && opcode <= X_NXLastOpcode) || - (control -> isProtoStep7() == 1 && opcode == X_PutImage && - splitState_.resource != nothing) || opcode == X_ListExtensions || + (opcode == X_PutImage && splitState_.resource != nothing) || + opcode == X_ListExtensions || opcode == X_QueryExtension) { return 0; @@ -7977,8 +7608,6 @@ int ClientChannel::handleCacheRequest(EncodeBuffer &encodeBuffer, const unsigned enableSave_ = *(buffer + 6); enableLoad_ = *(buffer + 7); - handleSplitEnable(); - #ifdef TEST *logofs << "handleCacheRequest: Set cache parameters to " << " cache " << enableCache_ << " split " << enableSplit_ @@ -8068,11 +7697,9 @@ int ClientChannel::handleStartSplitRequest(EncodeBuffer &encodeBuffer, const uns // Send the selected resource to the remote. // - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeCachedValue(splitState_.resource, 8, - clientCache_ -> resourceCache); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeCachedValue(splitState_.resource, 8, + clientCache_ -> resourceCache); splitState_.mode = (T_split_mode) *(buffer + 4); @@ -8157,11 +7784,9 @@ int ClientChannel::handleEndSplitRequest(EncodeBuffer &encodeBuffer, const unsig // Send the selected resource to the remote. // - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeCachedValue(splitState_.resource, 8, - clientCache_ -> resourceCache); - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeCachedValue(splitState_.resource, 8, + clientCache_ -> resourceCache); // // Send the split notification events diff --git a/nxcomp/ClientChannel.h b/nxcomp/ClientChannel.h index 9924bb263..5ec55595c 100644 --- a/nxcomp/ClientChannel.h +++ b/nxcomp/ClientChannel.h @@ -158,23 +158,6 @@ class ClientChannel : public Channel int handleTaintRequest(unsigned char &opcode, const unsigned char *&buffer, unsigned int &size) { - if (control -> isProtoStep7() == 0) - { - if (opcode == X_NXFreeSplit || opcode == X_NXAbortSplit || - opcode == X_NXFinishSplit) - { - return handleTaintSplitRequest(opcode, buffer, size); - } - else if (opcode == X_NXSetCacheParameters) - { - return handleTaintCacheRequest(opcode, buffer, size); - } - else if (opcode == X_NXGetFontParameters) - { - return handleTaintFontRequest(opcode, buffer, size); - } - } - if (control -> TaintReplies > 0 && opcode == X_GetInputFocus) { @@ -190,15 +173,6 @@ class ClientChannel : public Channel return 0; } - int handleTaintCacheRequest(unsigned char &opcode, const unsigned char *&buffer, - unsigned int &size); - - int handleTaintFontRequest(unsigned char &opcode, const unsigned char *&buffer, - unsigned int &size); - - int handleTaintSplitRequest(unsigned char &opcode, const unsigned char *&buffer, - unsigned int &size); - int handleTaintLameRequest(unsigned char &opcode, const unsigned char *&buffer, unsigned int &size); @@ -261,20 +235,6 @@ class ClientChannel : public Channel int handleSplitChecksum(EncodeBuffer &encodeBuffer, T_checksum checksum); - void handleSplitEnable() - { - if (control -> isProtoStep7() == 0) - { - #if defined(TEST) || defined(SPLIT) - *logofs << "handleSplitEnable: WARNING! Disabling split " - << "with an old proxy version.\n" - << logofs_flush; - #endif - - enableSplit_ = 0; - } - } - void handleSplitPending(int resource) { if (splitState_.pending == 0) diff --git a/nxcomp/ClientProxy.h b/nxcomp/ClientProxy.h index 2b669ba2d..88d345f00 100644 --- a/nxcomp/ClientProxy.h +++ b/nxcomp/ClientProxy.h @@ -84,14 +84,8 @@ class ClientProxy : public Proxy virtual int checkLocalChannelMap(int channelId) { - if (control -> isProtoStep7() == 1) - { - return ((channelId & control -> ChannelMask) != 0); - } - else - { - return 1; - } + // Since ProtoStep7 (#issue 108) + return ((channelId & control -> ChannelMask) != 0); } // diff --git a/nxcomp/ClientStore.cpp b/nxcomp/ClientStore.cpp index be0e892b4..d56019258 100644 --- a/nxcomp/ClientStore.cpp +++ b/nxcomp/ClientStore.cpp @@ -54,11 +54,6 @@ #include "PutPackedImage.h" #include "GenericRequest.h" -#include "ChangeGCCompat.h" -#include "CreatePixmapCompat.h" -#include "SetUnpackColormapCompat.h" -#include "SetUnpackAlphaCompat.h" - // // Set the verbosity level. // @@ -111,20 +106,11 @@ ClientStore::ClientStore(StaticCompressor *compressor) requests_[X_NXSetUnpackGeometry] = new SetUnpackGeometryStore(compressor); requests_[X_NXPutPackedImage] = new PutPackedImageStore(compressor); - if (control -> isProtoStep7() == 1) - { - requests_[X_ChangeGC] = new ChangeGCStore(); - requests_[X_CreatePixmap] = new CreatePixmapStore(); - requests_[X_NXSetUnpackColormap] = new SetUnpackColormapStore(compressor); - requests_[X_NXSetUnpackAlpha] = new SetUnpackAlphaStore(compressor); - } - else - { - requests_[X_ChangeGC] = new ChangeGCCompatStore(); - requests_[X_CreatePixmap] = new CreatePixmapCompatStore(); - requests_[X_NXSetUnpackColormap] = new SetUnpackColormapCompatStore(compressor); - requests_[X_NXSetUnpackAlpha] = new SetUnpackAlphaCompatStore(compressor); - } + // Since ProtoStep7 (#issue 108) + requests_[X_ChangeGC] = new ChangeGCStore(); + requests_[X_CreatePixmap] = new CreatePixmapStore(); + requests_[X_NXSetUnpackColormap] = new SetUnpackColormapStore(compressor); + requests_[X_NXSetUnpackAlpha] = new SetUnpackAlphaStore(compressor); for (int i = 0; i < CHANNEL_STORE_RESOURCE_LIMIT; i++) { diff --git a/nxcomp/Control.cpp b/nxcomp/Control.cpp index 062654235..1bf2dbdd2 100644 --- a/nxcomp/Control.cpp +++ b/nxcomp/Control.cpp @@ -348,6 +348,14 @@ #define FILE_SIZE_CHECK_TIMEOUT 60000 +// +// Protocol version compatibility values +// + +const int Control::NX_MIN_PROTO_STEP = 10; +const int Control::NX_MAX_PROTO_STEP = 10; +const char* const Control::NXPROXY_COMPATIBILITY_VERSION = "3.5.0"; + // // Set defaults for control. They should be what // you get in case of 'local' connection. @@ -633,11 +641,7 @@ Control::Control() // time the session is negotiated. // - protoStep6_ = 0; - protoStep7_ = 0; - protoStep8_ = 0; - protoStep9_ = 0; - protoStep10_ = 0; + protoStep_ = 0; } Control::~Control() @@ -705,92 +709,27 @@ Control::~Control() void Control::setProtoStep(int step) { - switch (step) + if (isValidProtoStep(step)) { - case 6: - { - protoStep6_ = 1; - protoStep7_ = 0; - protoStep8_ = 0; - protoStep9_ = 0; - protoStep10_ = 0; - - break; - } - case 7: - { - protoStep6_ = 1; - protoStep7_ = 1; - protoStep8_ = 0; - protoStep9_ = 0; - protoStep10_ = 0; - - break; - } - case 8: - { - protoStep6_ = 1; - protoStep7_ = 1; - protoStep8_ = 1; - protoStep9_ = 0; - protoStep10_ = 0; - - break; - } - case 9: - { - protoStep6_ = 1; - protoStep7_ = 1; - protoStep8_ = 1; - protoStep9_ = 1; - protoStep10_ = 0; - - break; - } - case 10: - { - protoStep6_ = 1; - protoStep7_ = 1; - protoStep8_ = 1; - protoStep9_ = 1; - protoStep10_ = 1; - - break; - } - default: - { - #ifdef PANIC - *logofs << "Control: PANIC! Invalid protocol step " - << "with value " << step << ".\n" - << logofs_flush; - #endif - - HandleCleanup(); - } + protoStep_ = step; + } + else + { + #ifdef PANIC + *logofs << "Control: PANIC! Invalid protocol step " + << "with value " << step << ".\n" + << logofs_flush; + #endif + + HandleCleanup(); } } int Control::getProtoStep() { - if (protoStep10_ == 1) - { - return 10; - } - else if (protoStep9_ == 1) - { - return 9; - } - else if (protoStep8_ == 1) - { - return 8; - } - else if (protoStep7_ == 1) - { - return 7; - } - else if (protoStep6_ == 1) + if (isValidProtoStep(protoStep_)) { - return 6; + return protoStep_; } else { diff --git a/nxcomp/Control.h b/nxcomp/Control.h index 71f357c4a..b3552e091 100644 --- a/nxcomp/Control.h +++ b/nxcomp/Control.h @@ -320,6 +320,12 @@ class Control int CompatVersionPatch; int CompatVersionMaintenancePatch; + // + // Compatibility version for the proxy + // + + static const char* const NXPROXY_COMPATIBILITY_VERSION; + // // Which unpack methods are implemented in proxy? // @@ -713,26 +719,6 @@ class Control int getProtoStep(); - int isProtoStep7() - { - return protoStep7_; - } - - int isProtoStep8() - { - return protoStep8_; - } - - int isProtoStep9() - { - return protoStep9_; - } - - int isProtoStep10() - { - return protoStep10_; - } - private: // @@ -746,11 +732,25 @@ class Control // to the protocol version. // - int protoStep6_; - int protoStep7_; - int protoStep8_; - int protoStep9_; - int protoStep10_; + int protoStep_; + + // + // Min and max values allowed for protocol step + // depending on protocol version compatibility + // + + static const int NX_MIN_PROTO_STEP; + static const int NX_MAX_PROTO_STEP; + + // + // Check the validity of protocol step + // + + bool isValidProtoStep(int step) + { + return ((step >= NX_MIN_PROTO_STEP) && (step <= NX_MAX_PROTO_STEP)); + } + }; #endif /* Control_H */ diff --git a/nxcomp/CreateGC.cpp b/nxcomp/CreateGC.cpp index f1c10e69b..fab8bba10 100644 --- a/nxcomp/CreateGC.cpp +++ b/nxcomp/CreateGC.cpp @@ -146,39 +146,17 @@ void CreateGCStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *me ClientCache *clientCache = (ClientCache *) channelCache; - if (control -> isProtoStep7() == 1) - { - #ifdef TEST - *logofs << name() << ": Encoding value " << createGC -> gcontext - << " as gcontext field.\n" << logofs_flush; - #endif - - encodeBuffer.encodeNewXidValue(createGC -> gcontext, clientCache -> lastId, - clientCache -> lastIdCache, clientCache -> gcCache, - clientCache -> freeGCCache); - - cachedCreateGC -> gcontext = createGC -> gcontext; - } - else - { - #ifdef TEST - *logofs << name() << ": Encoding value " << createGC -> drawable - << " as drawable field.\n" << logofs_flush; - #endif - - encodeBuffer.encodeXidValue(createGC -> drawable, clientCache -> drawableCache); - - cachedCreateGC -> drawable = createGC -> drawable; - - #ifdef TEST - *logofs << name() << ": Encoding value " << createGC -> gcontext - << " as gcontext field.\n" << logofs_flush; - #endif + // Since ProtoStep7 (#issue 108) + #ifdef TEST + *logofs << name() << ": Encoding value " << createGC -> gcontext + << " as gcontext field.\n" << logofs_flush; + #endif - encodeBuffer.encodeXidValue(createGC -> gcontext, clientCache -> gcCache); + encodeBuffer.encodeNewXidValue(createGC -> gcontext, clientCache -> lastId, + clientCache -> lastIdCache, clientCache -> gcCache, + clientCache -> freeGCCache); - cachedCreateGC -> gcontext = createGC -> gcontext; - } + cachedCreateGC -> gcontext = createGC -> gcontext; } void CreateGCStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, @@ -190,37 +168,15 @@ void CreateGCStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *me unsigned int value; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeNewXidValue(value, clientCache -> lastId, - clientCache -> lastIdCache, clientCache -> gcCache, - clientCache -> freeGCCache); + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeNewXidValue(value, clientCache -> lastId, + clientCache -> lastIdCache, clientCache -> gcCache, + clientCache -> freeGCCache); - createGC -> gcontext = value; + createGC -> gcontext = value; - #ifdef TEST - *logofs << name() << ": Decoded value " << createGC -> gcontext - << " as gcontext field.\n" << logofs_flush; - #endif - } - else - { - decodeBuffer.decodeXidValue(value, clientCache -> drawableCache); - - createGC -> drawable = value; - - #ifdef TEST - *logofs << name() << ": Decoded value " << createGC -> drawable - << " as drawable field.\n" << logofs_flush; - #endif - - decodeBuffer.decodeXidValue(value, clientCache -> gcCache); - - createGC -> gcontext = value; - - #ifdef TEST - *logofs << name() << ": Decoded value " << createGC -> gcontext - << " as gcontext field.\n" << logofs_flush; - #endif - } + #ifdef TEST + *logofs << name() << ": Decoded value " << createGC -> gcontext + << " as gcontext field.\n" << logofs_flush; + #endif } diff --git a/nxcomp/DecodeBuffer.cpp b/nxcomp/DecodeBuffer.cpp index 077bfdfc0..28c656cb2 100644 --- a/nxcomp/DecodeBuffer.cpp +++ b/nxcomp/DecodeBuffer.cpp @@ -34,10 +34,8 @@ DecodeBuffer::DecodeBuffer(const unsigned char *data, unsigned int length) : buffer_(data), end_(buffer_ + length), nextSrc_(buffer_), srcMask_(0x80) { - if (control -> isProtoStep7() == 1) - { - end_ = buffer_ + length - DECODE_BUFFER_POSTFIX_SIZE; - } + // Since ProtoStep7 (#issue 108) + end_ = buffer_ + length - DECODE_BUFFER_POSTFIX_SIZE; } int DecodeBuffer::decodeValue(unsigned int &value, unsigned int numBits, @@ -277,63 +275,25 @@ int DecodeBuffer::decodeCachedValue(unsigned int &value, unsigned int numBits, if (index == 2) { - if (control -> isProtoStep8() == 1) - { - blockSize = cache.getBlockSize(blockSize); - - if (decodeValue(value, numBits, blockSize, endOkay)) - { - cache.insert(value, IntMask[numBits]); - - return 1; - } + // Since ProtoStep8 (#issue 108) + blockSize = cache.getBlockSize(blockSize); - #ifdef PANIC - *logofs << "DecodeBuffer: PANIC! Assertion failed. Error [H] " - << "in decodeCacheValue() with no value found.\n" - << logofs_flush; - #endif - - cerr << "Error" << ": Failure decoding data in context [H].\n"; - - HandleAbort(); - } - else + if (decodeValue(value, numBits, blockSize, endOkay)) { - unsigned int sameDiff; - - decodeBoolValue(sameDiff); - - if (sameDiff) - { - value = cache.getLastDiff(IntMask[numBits]); + cache.insert(value, IntMask[numBits]); - cache.insert(value, IntMask[numBits]); - - return 1; - } - else - { - blockSize = cache.getBlockSize(blockSize); - - if (decodeValue(value, numBits, blockSize, endOkay)) - { - cache.insert(value, IntMask[numBits]); - - return 1; - } + return 1; + } - #ifdef PANIC - *logofs << "DecodeBuffer: PANIC! Assertion failed. Error [H] " - << "in decodeCacheValue() with no value found.\n" - << logofs_flush; - #endif + #ifdef PANIC + *logofs << "DecodeBuffer: PANIC! Assertion failed. Error [H] " + << "in decodeCacheValue() with no value found.\n" + << logofs_flush; + #endif - cerr << "Error" << ": Failure decoding data in context [H].\n"; + cerr << "Error" << ": Failure decoding data in context [H].\n"; - HandleAbort(); - } - } + HandleAbort(); } else { @@ -665,28 +625,3 @@ void DecodeBuffer::decodeFreeXidValue(unsigned int &value, FreeCache &cache) decodeCachedValue(value, 29, cache); } -void DecodeBuffer::decodePositionValueCompat(short int &value, PositionCacheCompat &cache) -{ - unsigned int t; - - decodeCachedValue(t, 13, *(cache.base_[cache.slot_])); - - cache.last_ += t; - cache.last_ &= 0x1fff; - - value = cache.last_; - - #ifdef DEBUG - *logofs << "DecodeBuffer: Decoded position " - << value << " with base " << cache.slot_ - << ".\n" << logofs_flush; - #endif - - #ifdef DEBUG - *logofs << "DecodeBuffer: Position block prediction is " - << (*(cache.base_[cache.slot_])).getBlockSize(13) - << ".\n" << logofs_flush; - #endif - - cache.slot_ = (value & 0x1f); -} diff --git a/nxcomp/DecodeBuffer.h b/nxcomp/DecodeBuffer.h index 9345f4e23..98f7bf35f 100644 --- a/nxcomp/DecodeBuffer.h +++ b/nxcomp/DecodeBuffer.h @@ -27,9 +27,6 @@ #include "OpcodeCache.h" #include "ActionCache.h" -#include "ActionCacheCompat.h" -#include "PositionCacheCompat.h" - #define DECODE_BUFFER_OVERFLOW_SIZE 4194304 #define DECODE_BUFFER_POSTFIX_SIZE 1 @@ -99,15 +96,6 @@ class DecodeBuffer void decodeFreeXidValue(unsigned int &value, FreeCache &cache); - void decodeActionValueCompat(unsigned char &value, ActionCacheCompat &cache) - { - decodeCachedValue(value, 2, cache.base_[cache.slot_]); - - cache.slot_ = value; - } - - void decodePositionValueCompat(short int &value, PositionCacheCompat &cache); - void decodeTextData(unsigned char *buffer, unsigned int numBytes) { decodeMemory(buffer, numBytes); diff --git a/nxcomp/EncodeBuffer.cpp b/nxcomp/EncodeBuffer.cpp index 12a57180e..afcf60a9e 100644 --- a/nxcomp/EncodeBuffer.cpp +++ b/nxcomp/EncodeBuffer.cpp @@ -261,47 +261,14 @@ void EncodeBuffer::encodeCachedValue(unsigned int value, unsigned int numBits, // Avoid to encode the additional bool. // - if (control -> isProtoStep8() == 1) - { - #ifdef DUMP - *logofs << "EncodeBuffer: Encoded missed int using " - << diffBits() << " bits out of " << numBits - << ".\n" << logofs_flush; - #endif - - encodeValue(value, numBits, blockSize); - } - else - { - if (sameDiff) - { - #ifdef DUMP - *logofs << "EncodeBuffer: Matched difference with block size " - << cache.getBlockSize(blockSize) << ".\n" - << logofs_flush; - #endif - - encodeBoolValue(1); - } - else - { - #ifdef DUMP - *logofs << "EncodeBuffer: Missed difference with block size " - << cache.getBlockSize(blockSize) << ".\n" - << logofs_flush; - #endif - - encodeBoolValue(0); - - encodeValue(value, numBits, blockSize); - } + // Since ProtoStep8 (#issue 108) + #ifdef DUMP + *logofs << "EncodeBuffer: Encoded missed int using " + << diffBits() << " bits out of " << numBits + << ".\n" << logofs_flush; + #endif - #ifdef DUMP - *logofs << "EncodeBuffer: Encoded missed int using " - << diffBits() << " bits out of " << numBits - << ".\n" << logofs_flush; - #endif - } + encodeValue(value, numBits, blockSize); } } @@ -454,7 +421,8 @@ unsigned int EncodeBuffer::getLength() const length++; } - if (length > 0 && control -> isProtoStep7() == 1) + // Since ProtoStep7 (#issue 108) + if (length > 0) { return length + ENCODE_BUFFER_POSTFIX_SIZE; } @@ -641,20 +609,3 @@ void EncodeBuffer::encodeFreeXidValue(unsigned int value, FreeCache &cache) { encodeCachedValue(value, 29, cache); } - -void EncodeBuffer::encodePositionValueCompat(short int value, PositionCacheCompat &cache) -{ - unsigned int t = (value - cache.last_); - - encodeCachedValue(t, 13, *(cache.base_[cache.slot_])); - - cache.last_ = value; - - #ifdef DEBUG - *logofs << "EncodeBuffer: Encoded position " - << value << " with base " << cache.slot_ - << ".\n" << logofs_flush; - #endif - - cache.slot_ = (value & 0x1f); -} diff --git a/nxcomp/EncodeBuffer.h b/nxcomp/EncodeBuffer.h index 9f5ac5352..c7ee0a3b0 100644 --- a/nxcomp/EncodeBuffer.h +++ b/nxcomp/EncodeBuffer.h @@ -25,9 +25,6 @@ #include "OpcodeCache.h" #include "ActionCache.h" -#include "ActionCacheCompat.h" -#include "PositionCacheCompat.h" - #define ENCODE_BUFFER_DEFAULT_SIZE 16384 // @@ -117,15 +114,6 @@ class EncodeBuffer void encodeFreeXidValue(unsigned int value, FreeCache &cache); - void encodeActionValueCompat(unsigned char value, ActionCacheCompat &cache) - { - encodeCachedValue(value, 2, cache.base_[cache.slot_]); - - cache.slot_ = value; - } - - void encodePositionValueCompat(short int value, PositionCacheCompat &cache); - void encodeTextData(const unsigned char *buffer, unsigned int numBytes) { encodeMemory(buffer, numBytes); diff --git a/nxcomp/FillPoly.cpp b/nxcomp/FillPoly.cpp index 37df3772b..291cc2a4b 100644 --- a/nxcomp/FillPoly.cpp +++ b/nxcomp/FillPoly.cpp @@ -51,8 +51,8 @@ int FillPolyStore::parseIdentity(Message *message, const unsigned char *buffer, fillPoly -> shape = *(buffer + 12); fillPoly -> mode = *(buffer + 13); - if (control -> isProtoStep8() == 1 && - size >= (unsigned int) dataOffset) + // Since ProtoStep8 (#issue 108) + if (size >= (unsigned int) dataOffset) { fillPoly -> x_origin = GetUINT(buffer + 16, bigEndian); fillPoly -> y_origin = GetUINT(buffer + 18, bigEndian); @@ -85,8 +85,8 @@ int FillPolyStore::unparseIdentity(const Message *message, unsigned char *buffer *(buffer + 12) = fillPoly -> shape; *(buffer + 13) = fillPoly -> mode; - if (control -> isProtoStep8() == 1 && - size >= (unsigned int) dataOffset) + // Since ProtoStep8 (#issue 108) + if (size >= (unsigned int) dataOffset) { PutUINT(fillPoly -> x_origin, buffer + 16, bigEndian); PutUINT(fillPoly -> y_origin, buffer + 18, bigEndian); @@ -151,8 +151,8 @@ void FillPolyStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *me cachedFillPoly -> gcontext = fillPoly -> gcontext; - if (control -> isProtoStep8() == 1 && - fillPoly -> size_ >= dataOffset) + // Since ProtoStep8 (#issue 108) + if (fillPoly -> size_ >= dataOffset) { #ifdef TEST *logofs << name() << ": Encoding value " << fillPoly -> x_origin @@ -197,8 +197,8 @@ void FillPolyStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *me << " as gcontext field.\n" << logofs_flush; #endif - if (control -> isProtoStep8() == 1 && - fillPoly -> size_ >= dataOffset) + // Since ProtoStep8 (#issue 108) + if (fillPoly -> size_ >= dataOffset) { unsigned int value; diff --git a/nxcomp/FillPoly.h b/nxcomp/FillPoly.h index f33968494..d926b6dee 100644 --- a/nxcomp/FillPoly.h +++ b/nxcomp/FillPoly.h @@ -40,7 +40,6 @@ #define FILLPOLY_ENABLE_COMPRESS 0 #define FILLPOLY_DATA_LIMIT 512 -#define FILLPOLY_DATA_OFFSET 16 #define FILLPOLY_CACHE_SLOTS 2000 #define FILLPOLY_CACHE_THRESHOLD 3 @@ -98,12 +97,9 @@ class FillPolyStore : public MessageStore enableCompress = FILLPOLY_ENABLE_COMPRESS; dataLimit = FILLPOLY_DATA_LIMIT; - dataOffset = FILLPOLY_DATA_OFFSET; - if (control -> isProtoStep8() == 1) - { - dataOffset = FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8; - } + // Since ProtoStep8 (#issue 108) + dataOffset = FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8; cacheSlots = FILLPOLY_CACHE_SLOTS; cacheThreshold = FILLPOLY_CACHE_THRESHOLD; @@ -169,11 +165,9 @@ class FillPolyStore : public MessageStore virtual int identitySize(const unsigned char *buffer, unsigned int size) { - unsigned int offset = (control -> isProtoStep8() == 1 ? - FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8 : - FILLPOLY_DATA_OFFSET); - - return (size >= offset ? offset : size); + // Since ProtoStep8 (#issue 108) + return (size >= FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8 ? + FILLPOLY_DATA_OFFSET_IF_PROTO_STEP_8 : size); } virtual int parseIdentity(Message *message, const unsigned char *buffer, diff --git a/nxcomp/GenericChannel.h b/nxcomp/GenericChannel.h index ba4f1e7e8..10ae794bb 100644 --- a/nxcomp/GenericChannel.h +++ b/nxcomp/GenericChannel.h @@ -209,11 +209,7 @@ class CupsChannel : public GenericChannel virtual int isCompressed() { - if (control -> isProtoStep8() == 0) - { - return 1; - } - + // Since ProtoStep8 (#issue 108) return 0; } @@ -252,11 +248,7 @@ class SmbChannel : public GenericChannel virtual int isCompressed() { - if (control -> isProtoStep8() == 0) - { - return 1; - } - + // Since ProtoStep8 (#issue 108) return 0; } @@ -344,11 +336,7 @@ class HttpChannel : public GenericChannel virtual int isCompressed() { - if (control -> isProtoStep8() == 0) - { - return 1; - } - + // Since ProtoStep8 (#issue 108) return 0; } @@ -387,11 +375,7 @@ class FontChannel : public GenericChannel virtual int isCompressed() { - if (control -> isProtoStep8() == 0) - { - return 1; - } - + // Since ProtoStep8 (#issue 108) return 0; } diff --git a/nxcomp/GenericReply.cpp b/nxcomp/GenericReply.cpp index 9daccc566..f7ffe83dd 100644 --- a/nxcomp/GenericReply.cpp +++ b/nxcomp/GenericReply.cpp @@ -45,12 +45,9 @@ GenericReplyStore::GenericReplyStore(StaticCompressor *compressor) enableCache = GENERICREPLY_ENABLE_CACHE; enableData = GENERICREPLY_ENABLE_DATA; enableSplit = GENERICREPLY_ENABLE_SPLIT; - enableCompress = GENERICREPLY_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = GENERICREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = GENERICREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = GENERICREPLY_DATA_LIMIT; dataOffset = GENERICREPLY_DATA_OFFSET; diff --git a/nxcomp/GenericReply.h b/nxcomp/GenericReply.h index de97b86d0..20786a8d2 100644 --- a/nxcomp/GenericReply.h +++ b/nxcomp/GenericReply.h @@ -37,7 +37,6 @@ #define GENERICREPLY_ENABLE_CACHE 1 #define GENERICREPLY_ENABLE_DATA 1 #define GENERICREPLY_ENABLE_SPLIT 0 -#define GENERICREPLY_ENABLE_COMPRESS 1 #define GENERICREPLY_DATA_LIMIT 1048576 - 32 #define GENERICREPLY_DATA_OFFSET 32 diff --git a/nxcomp/GenericRequest.cpp b/nxcomp/GenericRequest.cpp index 40077291b..fa34b89d2 100644 --- a/nxcomp/GenericRequest.cpp +++ b/nxcomp/GenericRequest.cpp @@ -45,14 +45,9 @@ GenericRequestStore::GenericRequestStore(StaticCompressor *compressor) enableCache = GENERICREQUEST_ENABLE_CACHE; enableData = GENERICREQUEST_ENABLE_DATA; enableSplit = GENERICREQUEST_ENABLE_SPLIT; - enableCompress = GENERICREQUEST_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = GENERICREQUEST_ENABLE_COMPRESS_IF_PROTO_STEP_7; - - enableCompress = 0; - } + // Since ProtoStep7 (#issue 108) + enableCompress = GENERICREQUEST_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = GENERICREQUEST_DATA_LIMIT; dataOffset = GENERICREQUEST_DATA_OFFSET; diff --git a/nxcomp/GenericRequest.h b/nxcomp/GenericRequest.h index 3175fc2ba..4f164523e 100644 --- a/nxcomp/GenericRequest.h +++ b/nxcomp/GenericRequest.h @@ -37,7 +37,6 @@ #define GENERICREQUEST_ENABLE_CACHE 1 #define GENERICREQUEST_ENABLE_DATA 1 #define GENERICREQUEST_ENABLE_SPLIT 0 -#define GENERICREQUEST_ENABLE_COMPRESS 1 #define GENERICREQUEST_DATA_LIMIT 262144 - 20 #define GENERICREQUEST_DATA_OFFSET 20 diff --git a/nxcomp/GetImageReply.cpp b/nxcomp/GetImageReply.cpp index d4bc21b5a..bea3ee84d 100644 --- a/nxcomp/GetImageReply.cpp +++ b/nxcomp/GetImageReply.cpp @@ -43,12 +43,9 @@ GetImageReplyStore::GetImageReplyStore(StaticCompressor *compressor) enableCache = GETIMAGEREPLY_ENABLE_CACHE; enableData = GETIMAGEREPLY_ENABLE_DATA; enableSplit = GETIMAGEREPLY_ENABLE_SPLIT; - enableCompress = GETIMAGEREPLY_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = GETIMAGEREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = GETIMAGEREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = GETIMAGEREPLY_DATA_LIMIT; dataOffset = GETIMAGEREPLY_DATA_OFFSET; diff --git a/nxcomp/GetImageReply.h b/nxcomp/GetImageReply.h index ee7b0bfa3..0fd152122 100644 --- a/nxcomp/GetImageReply.h +++ b/nxcomp/GetImageReply.h @@ -37,7 +37,6 @@ #define GETIMAGEREPLY_ENABLE_CACHE 1 #define GETIMAGEREPLY_ENABLE_DATA 1 #define GETIMAGEREPLY_ENABLE_SPLIT 0 -#define GETIMAGEREPLY_ENABLE_COMPRESS 1 #define GETIMAGEREPLY_DATA_LIMIT 1048576 - 32 #define GETIMAGEREPLY_DATA_OFFSET 32 diff --git a/nxcomp/GetPropertyReply.cpp b/nxcomp/GetPropertyReply.cpp index 223131803..4a906e70a 100644 --- a/nxcomp/GetPropertyReply.cpp +++ b/nxcomp/GetPropertyReply.cpp @@ -45,12 +45,9 @@ GetPropertyReplyStore::GetPropertyReplyStore(StaticCompressor *compressor) enableCache = GETPROPERTYREPLY_ENABLE_CACHE; enableData = GETPROPERTYREPLY_ENABLE_DATA; enableSplit = GETPROPERTYREPLY_ENABLE_SPLIT; - enableCompress = GETPROPERTYREPLY_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = GETPROPERTYREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = GETPROPERTYREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = GETPROPERTYREPLY_DATA_LIMIT; dataOffset = GETPROPERTYREPLY_DATA_OFFSET; diff --git a/nxcomp/GetPropertyReply.h b/nxcomp/GetPropertyReply.h index 0f6b19508..f8d53ba0f 100644 --- a/nxcomp/GetPropertyReply.h +++ b/nxcomp/GetPropertyReply.h @@ -37,7 +37,6 @@ #define GETPROPERTYREPLY_ENABLE_CACHE 1 #define GETPROPERTYREPLY_ENABLE_DATA 1 #define GETPROPERTYREPLY_ENABLE_SPLIT 0 -#define GETPROPERTYREPLY_ENABLE_COMPRESS 1 #define GETPROPERTYREPLY_DATA_LIMIT 1048576 - 32 #define GETPROPERTYREPLY_DATA_OFFSET 32 diff --git a/nxcomp/ListFontsReply.cpp b/nxcomp/ListFontsReply.cpp index 5bace82f2..84acaba25 100644 --- a/nxcomp/ListFontsReply.cpp +++ b/nxcomp/ListFontsReply.cpp @@ -39,12 +39,9 @@ ListFontsReplyStore::ListFontsReplyStore(StaticCompressor *compressor) enableCache = LISTFONTSREPLY_ENABLE_CACHE; enableData = LISTFONTSREPLY_ENABLE_DATA; enableSplit = LISTFONTSREPLY_ENABLE_SPLIT; - enableCompress = LISTFONTSREPLY_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = LISTFONTSREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = LISTFONTSREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = LISTFONTSREPLY_DATA_LIMIT; dataOffset = LISTFONTSREPLY_DATA_OFFSET; diff --git a/nxcomp/ListFontsReply.h b/nxcomp/ListFontsReply.h index 078fd7ebc..549b7d1c1 100644 --- a/nxcomp/ListFontsReply.h +++ b/nxcomp/ListFontsReply.h @@ -37,7 +37,6 @@ #define LISTFONTSREPLY_ENABLE_CACHE 1 #define LISTFONTSREPLY_ENABLE_DATA 1 #define LISTFONTSREPLY_ENABLE_SPLIT 0 -#define LISTFONTSREPLY_ENABLE_COMPRESS 1 #define LISTFONTSREPLY_DATA_LIMIT 1048576 - 32 #define LISTFONTSREPLY_DATA_OFFSET 32 diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 79d753dea..0f9fec6ef 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -4466,32 +4466,16 @@ int SetupServiceSockets() else { // - // Disable the font server connections if - // they are not supported by the remote - // proxy. + // Get ready to listen for the font server connections // if (useFontSocket) { - if (control -> isProtoStep7() == 1) - { - int port = atoi(fontPort); + // Since ProtoStep7 (#issue 108) + int port = atoi(fontPort); - if ((fontFD = ListenConnection(port, "font")) < 0) - { - useFontSocket = 0; - } - } - else + if ((fontFD = ListenConnection(port, "font")) < 0) { - #ifdef WARNING - *logofs << "Loop: WARNING! Font server connections not supported " - << "by the remote proxy.\n" << logofs_flush; - #endif - - cerr << "Warning" << ": Font server connections not supported " - << "by the remote proxy.\n"; - useFontSocket = 0; } } @@ -4510,23 +4494,9 @@ int SetupServiceSockets() if (useSlaveSocket) { - if (control -> isProtoStep7() == 1) - { - if ((slaveFD = ListenConnection(slavePort, "slave")) < 0) - { - useSlaveSocket = 0; - } - } - else + // Since ProtoStep7 (#issue 108) + if ((slaveFD = ListenConnection(slavePort, "slave")) < 0) { - #ifdef WARNING - *logofs << "Loop: WARNING! Slave connections not supported " - << "by the remote proxy.\n" << logofs_flush; - #endif - - cerr << "Warning" << ": Slave connections not supported " - << "by the remote proxy.\n"; - useSlaveSocket = 0; } } @@ -7226,8 +7196,11 @@ int SendProxyOptions(int fd) // value and ignore the second. // - sprintf(options, "NXPROXY-1.5.0-%i.%i.%i", control -> LocalVersionMajor, - control -> LocalVersionMinor, control -> LocalVersionPatch); + sprintf(options, "NXPROXY-%s-%i.%i.%i", + control -> NXPROXY_COMPATIBILITY_VERSION, + control -> LocalVersionMajor, + control -> LocalVersionMinor, + control -> LocalVersionPatch); // // If you want to send options from proxy @@ -7306,8 +7279,8 @@ int SendProxyOptions(int fd) // Add the 'strict' option, if needed. // - if (control -> isProtoStep7() == 1 && - useStrict != -1) + // Since ProtoStep7 (#issue 108) + if (useStrict != -1) { sprintf(options + strlen(options), "strict=%d,", useStrict); } @@ -7317,8 +7290,8 @@ int SendProxyOptions(int fd) // memory segment. // - if (control -> isProtoStep7() == 1 && - *shsegSizeName != '\0') + // Since ProtoStep7 (#issue 108) + if (*shsegSizeName != '\0') { sprintf(options + strlen(options), "shseg=%s,", shsegSizeName); } @@ -12064,9 +12037,12 @@ int SetSession() // to the agent. // - if (*sessionType != '\0' && - (control -> isProtoStep8() == 1 || - strncmp(sessionType, "unix-", strlen("unix-")) != 0)) + // + // Since ProtoStep8 (#issue 108) and also + // with older "unix-" sessions + // + + if (*sessionType != '\0') { #ifdef WARNING *logofs << "Loop: WARNING! Unrecognized session type '" @@ -12599,37 +12575,18 @@ int SetVersion() } // - // Handle the 1.5.0 versions. The protocol - // step 6 is the minimum supported version. + // Handle versions from 3.5.0. The protocol + // step 10 is the minimum supported version. // int step = 0; - if (major == 1) - { - if (minor == 5) - { - step = 6; - } - } - else if (major == 2) - { - step = 7; - } - else if (major == 3) + if (major == 3) { - if (minor >= 2) + if (minor >= 5) { step = 10; } - else if (minor > 0 || patch > 0) - { - step = 9; - } - else - { - step = 8; - } } else if (major > 3) { @@ -12638,6 +12595,16 @@ int SetVersion() if (step == 0) { + #ifdef PANIC + *logofs << "Loop: PANIC! Unable to set the protocol step value from " + << "the negotiated protocol version " << major << "." << minor + << "." << patch << ".\n" << logofs_flush; + #endif + + cerr << "Error" << ": Unable to set the protocol step value from " + << "the negotiated protocol version " << major << "." << minor + << "." << patch << ".\n"; + #ifdef PANIC *logofs << "Loop: PANIC! Incompatible remote version " << control -> RemoteVersionMajor << "." << control -> RemoteVersionMinor @@ -12702,97 +12669,21 @@ int SetVersion() if (control -> ProxyMode == proxy_client) { - if (control -> isProtoStep8() == 0) - { - if (strncmp(sessionType, "shadow", strlen("shadow")) == 0 || - strncmp(sessionType, "application", strlen("application")) == 0 || - strncmp(sessionType, "console", strlen("console")) == 0 || - strncmp(sessionType, "default", strlen("default")) == 0 || - strncmp(sessionType, "gnome", strlen("gnome")) == 0 || - strncmp(sessionType, "kde", strlen("kde")) == 0 || - strncmp(sessionType, "cde", strlen("cde")) == 0 || - strncmp(sessionType, "xdm", strlen("xdm")) == 0) - - { - #if defined(TEST) || defined(INFO) - *logofs << "Loop: WARNING! Prepending 'unix-' to the " - << "name of the session.\n" << logofs_flush; - #endif - - char buffer[DEFAULT_STRING_LENGTH]; - - snprintf(buffer, DEFAULT_STRING_LENGTH - 1, "unix-%s", sessionType); - - strcpy(sessionType, buffer); - } - } - // - // Check if the remote is able to handle - // the selected pack method. + // Since ProtoStep8 (#issue 108) // - - if (control -> isProtoStep8() == 0) - { - if (packMethod == PACK_ADAPTIVE || packMethod == PACK_LOSSY) - { - #ifdef TEST - *logofs << "Loop: WARNING! Assuming a lossy encoding with " - << "an old proxy version.\n" << logofs_flush; - #endif - - packMethod = PACK_JPEG_16M_COLORS; - } - else if (packMethod == PACK_LOSSLESS) - { - #ifdef TEST - *logofs << "Loop: WARNING! Assuming a lossless encoding with " - << "an old proxy version.\n" << logofs_flush; - #endif - - if (control -> isProtoStep7() == 1) - { - packMethod = PACK_RLE_16M_COLORS; - } - else - { - packMethod = PACK_PNG_16M_COLORS; - } - } - } - - // - // If the remote doesn't support the - // selected method use something that - // is compatible. + // Now it's assumed that the remote is + // able to handle the selected pack + // method // - if ((packMethod == PACK_RGB_16M_COLORS || - packMethod == PACK_RLE_16M_COLORS || - packMethod == PACK_BITMAP_16M_COLORS) && - control -> isProtoStep7() == 0) - { - #ifdef TEST - *logofs << "Loop: WARNING! Setting the pack method to '" - << PACK_PNG_16M_COLORS << "' with '" << packMethod - << "' unsupported.\n" << logofs_flush; - #endif - - packMethod = PACK_PNG_16M_COLORS; - packQuality = 9; - } - else if (packMethod == PACK_BITMAP_16M_COLORS && - control -> isProtoStep8() == 0) - { - #ifdef TEST - *logofs << "Loop: WARNING! Setting the pack method to '" - << PACK_RLE_16M_COLORS << "' with '" << packMethod - << "' unsupported.\n" << logofs_flush; - #endif - - packMethod = PACK_RLE_16M_COLORS; - packQuality = 9; - } + #ifdef TEST + *logofs << __FILE__ << " : " << __LINE__ << " - " + << "step = " << control -> getProtoStep() + << " packMethod = " << packMethod + << " packQuality = " << packQuality + << ".\n" << logofs_flush; + #endif // // Update the pack method name. @@ -12803,29 +12694,32 @@ int SetVersion() // // At the moment the image cache is not used by the - // agent but we need to take care of the compatibi- - // lity with old versions. Proxy versions older than - // the 3.0.0 assume that it is enabled and will send - // specific bits as part of the encoding. Conversely, - // it is advisable to disable the cache right now. - // By not enabling the image cache, the house-keep- - // ing process will only take care of cleaning up - // the "cache-" directories. + // agent. Proxy versions older than 3.0.0 assumed + // that it was enabled and sent specific bits as part + // of the encoding. Conversely, it is advisable to + // disable the cache right now. By not enabling the + // the image cache, the house-keeping process will + // only take care of cleaning up the "cache-" direc- + // tories. // - if (control -> isProtoStep8() == 1) - { - #ifdef TEST - *logofs << "Loop: Disabling image cache with protocol " - << "step '" << control -> getProtoStep() - << "'.\n" << logofs_flush; - #endif + // + // Considering that compatibility with older versions + // has been set to cover as far as 3.5.0, the cache can + // be disabled at this point without any concern + // - sprintf(imagesSizeName, "0"); + // Since ProtoStep8 (#issue 108) + #ifdef TEST + *logofs << "Loop: Disabling image cache with protocol " + << "step '" << control -> getProtoStep() + << "'.\n" << logofs_flush; + #endif - control -> ImageCacheEnableLoad = 0; - control -> ImageCacheEnableSave = 0; - } + sprintf(imagesSizeName, "0"); + + control -> ImageCacheEnableLoad = 0; + control -> ImageCacheEnableSave = 0; return 1; } @@ -15805,22 +15699,14 @@ static void handleAlertInLoop() return; } - if (lastAlert.local == 0 && - (lastAlert.code > LAST_PROTO_STEP_6_ALERT && - control -> isProtoStep7() == 0)) - { - // - // The remote proxy would be unable - // to handle the alert. - // + // + // Since ProtoStep7 (#issue 108) + // + // Now the remote proxy should always + // be able to handle the alert + // - #ifdef WARNING - *logofs << "Loop: WARNING! Ignoring unsupported alert " - << "with code '" << lastAlert.code << "'.\n" - << logofs_flush; - #endif - } - else if (lastAlert.local == 0) + if (lastAlert.local == 0) { if (proxy != NULL) { diff --git a/nxcomp/Message.cpp b/nxcomp/Message.cpp index 188ed9a0e..ccafa9963 100644 --- a/nxcomp/Message.cpp +++ b/nxcomp/Message.cpp @@ -112,20 +112,6 @@ MessageStore::MessageStore(StaticCompressor *compressor) lastRated = nothing; lastAction = is_discarded; - // - // This is used only for compatibility - // with older proxies. - // - - if (control -> isProtoStep7() == 1) - { - lastResize = -1; - } - else - { - lastResize = 0; - } - // // Private members. // diff --git a/nxcomp/Message.h b/nxcomp/Message.h index dcfff7cb6..c10cb266f 100644 --- a/nxcomp/Message.h +++ b/nxcomp/Message.h @@ -30,9 +30,6 @@ #include "ActionCache.h" -#include "ActionCacheCompat.h" -#include "PositionCacheCompat.h" - #include "StaticCompressor.h" // @@ -345,16 +342,6 @@ class MessageStore ActionCache lastActionCache; - // - // Used in old protocol versions. - // - - ActionCacheCompat lastActionCacheCompat; - - PositionCacheCompat lastAddedCacheCompat; - PositionCacheCompat lastHitCacheCompat; - PositionCacheCompat lastRemovedCacheCompat; - // // Position in cache where next insertion // is going to take place. @@ -362,14 +349,6 @@ class MessageStore short int lastRated; - // - // Size of data part of last split message - // once compressed. This is used only for - // compatibility with older proxies. - // - - int lastResize; - // // Constructors and destructors. // diff --git a/nxcomp/PolyLine.cpp b/nxcomp/PolyLine.cpp index 4d285e0b1..9f2d82a5d 100644 --- a/nxcomp/PolyLine.cpp +++ b/nxcomp/PolyLine.cpp @@ -93,10 +93,8 @@ void PolyLineStore::dumpIdentity(const Message *message) const void PolyLineStore::identityChecksum(const Message *message, const unsigned char *buffer, unsigned int size, int bigEndian) const { - if (control -> isProtoStep8() == 1) - { - md5_append(md5_state_, buffer + 1, 1); - } + // Since ProtoStep8 (#issue 108) + md5_append(md5_state_, buffer + 1, 1); } void PolyLineStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, @@ -108,11 +106,6 @@ void PolyLineStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *me ClientCache *clientCache = (ClientCache *) channelCache; - if (control -> isProtoStep8() == 0) - { - encodeBuffer.encodeBoolValue((unsigned int) polyLine -> mode); - } - #ifdef TEST *logofs << name() << ": Encoding value " << polyLine -> drawable << " as drawable field.\n" << logofs_flush; @@ -141,13 +134,6 @@ void PolyLineStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *me unsigned int value; - if (control -> isProtoStep8() == 0) - { - decodeBuffer.decodeBoolValue(value); - - polyLine -> mode = value; - } - decodeBuffer.decodeXidValue(value, clientCache -> drawableCache); polyLine -> drawable = value; diff --git a/nxcomp/PolyPoint.cpp b/nxcomp/PolyPoint.cpp index 847300f78..cae4b80a0 100644 --- a/nxcomp/PolyPoint.cpp +++ b/nxcomp/PolyPoint.cpp @@ -93,10 +93,8 @@ void PolyPointStore::dumpIdentity(const Message *message) const void PolyPointStore::identityChecksum(const Message *message, const unsigned char *buffer, unsigned int size, int bigEndian) const { - if (control -> isProtoStep8() == 1) - { - md5_append(md5_state_, buffer + 1, 1); - } + // Since ProtoStep8 (#issue 108) + md5_append(md5_state_, buffer + 1, 1); } void PolyPointStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, @@ -108,11 +106,6 @@ void PolyPointStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *m ClientCache *clientCache = (ClientCache *) channelCache; - if (control -> isProtoStep8() == 0) - { - encodeBuffer.encodeBoolValue((unsigned int) polyPoint -> mode); - } - #ifdef TEST *logofs << name() << ": Encoding value " << polyPoint -> drawable << " as drawable field.\n" << logofs_flush; @@ -141,13 +134,6 @@ void PolyPointStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *m unsigned int value; - if (control -> isProtoStep8() == 0) - { - decodeBuffer.decodeBoolValue(value); - - polyPoint -> mode = value; - } - decodeBuffer.decodeXidValue(value, clientCache -> drawableCache); polyPoint -> drawable = value; diff --git a/nxcomp/PositionCacheCompat.cpp b/nxcomp/PositionCacheCompat.cpp index 4a6a2cd63..dd301a0a4 100644 --- a/nxcomp/PositionCacheCompat.cpp +++ b/nxcomp/PositionCacheCompat.cpp @@ -21,25 +21,8 @@ PositionCacheCompat::PositionCacheCompat() { - if (control -> isProtoStep7() == 0) - { - for (int i = 0; i < 32; i++) - { - base_[i] = new IntCache(8); - } - - slot_ = 0; - last_ = 0; - } } PositionCacheCompat::~PositionCacheCompat() { - if (control -> isProtoStep7() == 0) - { - for (int i = 0; i < 32; i++) - { - delete base_[i]; - } - } } diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index 4eb99cf45..ae115fede 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -244,22 +244,6 @@ Proxy::Proxy(int fd) clientStore_ = new ClientStore(compressor_); serverStore_ = new ServerStore(compressor_); - // - // Older proxies will refuse to store - // messages bigger than 262144 bytes. - // - - if (control -> isProtoStep7() == 0) - { - #ifdef TEST - *logofs << "Proxy: WARNING! Limiting the maximum " - << "message size to " << 262144 << ".\n" - << logofs_flush; - #endif - - control -> MaximumMessageSize = 262144; - } - clientCache_ = new ClientCache(); serverCache_ = new ServerCache(); @@ -3049,31 +3033,19 @@ int Proxy::handleCloseAllXConnections() int Proxy::handleCloseAllListeners() { - if (control -> isProtoStep7() == 1) - { - if (finish_ == 0) - { - #ifdef TEST - *logofs << "Proxy: Closing down all remote listeners.\n" - << logofs_flush; - #endif - - if (handleControl(code_finish_listeners) < 0) - { - return -1; - } - - finish_ = 1; - } - } - else + // Since ProtoStep7 (#issue 108) + if (finish_ == 0) { #ifdef TEST - *logofs << "Proxy: WARNING! Not sending unsupported " - << "'code_finish_listeners' message.\n" + *logofs << "Proxy: Closing down all remote listeners.\n" << logofs_flush; #endif + if (handleControl(code_finish_listeners) < 0) + { + return -1; + } + finish_ = 1; } @@ -4546,15 +4518,8 @@ int Proxy::addTokenCodes(T_proxy_token &token) int count = 0; - if (control -> isProtoStep7() == 1) - { - count = token.bytes / token.size; - - if (count > 255) - { - count = 255; - } - } + // Since ProtoStep7 (#issue 108) + count = token.bytes / token.size; // // Force a count of 1, for example @@ -4569,6 +4534,12 @@ int Proxy::addTokenCodes(T_proxy_token &token) } else { + // Since ProtoStep7 (#issue 108) + if (count > 255) + { + count = 255; + } + // // Let the next token account for the // remaining bytes. @@ -4609,73 +4580,52 @@ int Proxy::handleToken(T_frame_type type) if (type == frame_data) { - if (control -> isProtoStep7() == 1) + // + // Since ProtoStep7 (#issue 108) + // + + // Send a distinct token for each data type. + // We don't want to slow down the sending of + // the X events, X replies and split confir- + // mation events on the X server side, so + // take care only of the generic data token. + // + + if (control -> ProxyMode == proxy_client) { - // - // Send a distinct token for each data type. - // We don't want to slow down the sending of - // the X events, X replies and split confir- - // mation events on the X server side, so - // take care only of the generic data token. - // + statistics -> updateControlToken(tokens_[token_control].bytes); - if (control -> ProxyMode == proxy_client) + if (tokens_[token_control].bytes > tokens_[token_control].size) { - statistics -> updateControlToken(tokens_[token_control].bytes); - - if (tokens_[token_control].bytes > tokens_[token_control].size) + if (addTokenCodes(tokens_[token_control]) < 0) { - if (addTokenCodes(tokens_[token_control]) < 0) - { - return -1; - } - - #if defined(TEST) || defined(INFO) || defined(TOKEN) - - T_proxy_token &token = tokens_[token_control]; - - *logofs << "Proxy: TOKEN! Token class [" - << DumpToken(token.type) << "] has now " - << token.bytes << " bytes accumulated and " - << token.remaining << " tokens remaining.\n" - << logofs_flush; - #endif + return -1; } - statistics -> updateSplitToken(tokens_[token_split].bytes); - - if (tokens_[token_split].bytes > tokens_[token_split].size) - { - if (addTokenCodes(tokens_[token_split]) < 0) - { - return -1; - } - - #if defined(TEST) || defined(INFO) || defined(TOKEN) + #if defined(TEST) || defined(INFO) || defined(TOKEN) - T_proxy_token &token = tokens_[token_split]; + T_proxy_token &token = tokens_[token_control]; - *logofs << "Proxy: TOKEN! Token class [" - << DumpToken(token.type) << "] has now " - << token.bytes << " bytes accumulated and " - << token.remaining << " tokens remaining.\n" - << logofs_flush; - #endif - } + *logofs << "Proxy: TOKEN! Token class [" + << DumpToken(token.type) << "] has now " + << token.bytes << " bytes accumulated and " + << token.remaining << " tokens remaining.\n" + << logofs_flush; + #endif } - statistics -> updateDataToken(tokens_[token_data].bytes); + statistics -> updateSplitToken(tokens_[token_split].bytes); - if (tokens_[token_data].bytes > tokens_[token_data].size) + if (tokens_[token_split].bytes > tokens_[token_split].size) { - if (addTokenCodes(tokens_[token_data]) < 0) + if (addTokenCodes(tokens_[token_split]) < 0) { return -1; } #if defined(TEST) || defined(INFO) || defined(TOKEN) - T_proxy_token &token = tokens_[token_data]; + T_proxy_token &token = tokens_[token_split]; *logofs << "Proxy: TOKEN! Token class [" << DumpToken(token.type) << "] has now " @@ -4685,37 +4635,26 @@ int Proxy::handleToken(T_frame_type type) #endif } } - else - { - // - // Sum everything to the control token. - // - if (control -> ProxyMode == proxy_client) - { - statistics -> updateControlToken(tokens_[token_control].bytes); - statistics -> updateSplitToken(tokens_[token_control].bytes); - statistics -> updateDataToken(tokens_[token_control].bytes); + statistics -> updateDataToken(tokens_[token_data].bytes); - if (tokens_[token_control].bytes > tokens_[token_control].size) - { - if (addTokenCodes(tokens_[token_control]) < 0) - { - return -1; - } + if (tokens_[token_data].bytes > tokens_[token_data].size) + { + if (addTokenCodes(tokens_[token_data]) < 0) + { + return -1; + } - #if defined(TEST) || defined(INFO) || defined(TOKEN) + #if defined(TEST) || defined(INFO) || defined(TOKEN) - T_proxy_token &token = tokens_[token_control]; + T_proxy_token &token = tokens_[token_data]; - *logofs << "Proxy: TOKEN! Token class [" - << DumpToken(token.type) << "] has now " - << token.bytes << " bytes accumulated and " - << token.remaining << " tokens remaining.\n" - << logofs_flush; - #endif - } - } + *logofs << "Proxy: TOKEN! Token class [" + << DumpToken(token.type) << "] has now " + << token.bytes << " bytes accumulated and " + << token.remaining << " tokens remaining.\n" + << logofs_flush; + #endif } } else @@ -4777,21 +4716,10 @@ int Proxy::handleTokenFromProxy(T_proxy_token &token, int count) << count << ".\n" << logofs_flush; #endif - if (control -> isProtoStep7() == 0) - { - if (control -> ProxyMode == proxy_client || - token.request != code_control_token_request) - { - #ifdef PANIC - *logofs << "Proxy: PANIC! Invalid token request received from remote.\n" - << logofs_flush; - #endif - - cerr << "Error" << ": Invalid token request received from remote.\n"; - - HandleCleanup(); - } - } + // + // Since ProtoStep7 (#issue 108) with no limitations + // concerning invalid token requests at this point + // // // Add our token reply. @@ -4815,25 +4743,13 @@ int Proxy::handleTokenReplyFromProxy(T_proxy_token &token, int count) #endif // - // Increment the available tokens. + // Since ProtoStep7 (#issue 108) with no limitations + // concerning invalid token requests at this point // - if (control -> isProtoStep7() == 0) - { - if (token.reply != code_control_token_reply) - { - #ifdef PANIC - *logofs << "Proxy: PANIC! Invalid token reply received from remote.\n" - << logofs_flush; - #endif - - cerr << "Error" << ": Invalid token reply received from remote.\n"; - - HandleCleanup(); - } - - count = 1; - } + // + // Increment the available tokens. + // token.remaining += count; @@ -4924,24 +4840,10 @@ void Proxy::handleFailOnLoad(const char *fullName, const char *failContext) cons int Proxy::handleSaveVersion(unsigned char *buffer, int &major, int &minor, int &patch) const { - if (control -> isProtoStep8() == 1) - { - major = 3; - minor = 0; - patch = 0; - } - else if (control -> isProtoStep7() == 1) - { - major = 2; - minor = 0; - patch = 0; - } - else - { - major = 1; - minor = 4; - patch = 0; - } + // Since ProtoStep8 (#issue 108) + major = 3; + minor = 0; + patch = 0; *(buffer + 0) = major; *(buffer + 1) = minor; @@ -4964,26 +4866,10 @@ int Proxy::handleLoadVersion(const unsigned char *buffer, int &major, // incompatible caches. // - if (control -> isProtoStep8() == 1) - { - if (major < 3) - { - return -1; - } - } - else if (control -> isProtoStep7() == 1) - { - if (major < 2) - { - return -1; - } - } - else + // Since ProtoStep8 (#issue 108) + if (major < 3) { - if (major != 1 && minor != 4) - { - return -1; - } + return -1; } return 1; @@ -6109,20 +5995,8 @@ int Proxy::handleNewGenericConnection(int clientFd, T_channel_type type, const c int Proxy::handleNewSlaveConnection(int clientFd) { - if (control -> isProtoStep7() == 1) - { - return handleNewGenericConnection(clientFd, channel_slave, "slave"); - } - else - { - #ifdef TEST - *logofs << "Proxy: WARNING! Not sending unsupported " - << "'code_new_slave_connection' message.\n" - << logofs_flush; - #endif - - return -1; - } + // Since ProtoStep7 (#issue 108) + return handleNewGenericConnection(clientFd, channel_slave, "slave"); } int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type type, diff --git a/nxcomp/Proxy.h b/nxcomp/Proxy.h index 3d6c62c54..2f3be7596 100644 --- a/nxcomp/Proxy.h +++ b/nxcomp/Proxy.h @@ -767,11 +767,6 @@ class Proxy handleSplitEvent(encodeBuffer_, split); } - int handleAsyncInit() - { - return handleFlush(); - } - int handleAsyncPriority() { if (control -> FlushPriority == 1) diff --git a/nxcomp/PutImage.cpp b/nxcomp/PutImage.cpp index 325a4aa66..af170463d 100644 --- a/nxcomp/PutImage.cpp +++ b/nxcomp/PutImage.cpp @@ -44,13 +44,9 @@ PutImageStore::PutImageStore(StaticCompressor *compressor) { enableCache = PUTIMAGE_ENABLE_CACHE; enableData = PUTIMAGE_ENABLE_DATA; - enableSplit = PUTIMAGE_ENABLE_SPLIT; - enableCompress = PUTIMAGE_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = PUTIMAGE_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = PUTIMAGE_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = PUTIMAGE_DATA_LIMIT; dataOffset = PUTIMAGE_DATA_OFFSET; @@ -59,10 +55,8 @@ PutImageStore::PutImageStore(StaticCompressor *compressor) cacheThreshold = PUTIMAGE_CACHE_THRESHOLD; cacheLowerThreshold = PUTIMAGE_CACHE_LOWER_THRESHOLD; - if (control -> isProtoStep8() == 1) - { - enableSplit = PUTIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8; - } + // Since ProtoStep8 (#issue 108) + enableSplit = PUTIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8; messages_ -> resize(cacheSlots); diff --git a/nxcomp/PutImage.h b/nxcomp/PutImage.h index e9535cb29..9e438fc84 100644 --- a/nxcomp/PutImage.h +++ b/nxcomp/PutImage.h @@ -36,8 +36,6 @@ #define PUTIMAGE_ENABLE_CACHE 1 #define PUTIMAGE_ENABLE_DATA 1 -#define PUTIMAGE_ENABLE_SPLIT 1 -#define PUTIMAGE_ENABLE_COMPRESS 1 #define PUTIMAGE_DATA_LIMIT 262144 - 24 #define PUTIMAGE_DATA_OFFSET 24 diff --git a/nxcomp/PutPackedImage.cpp b/nxcomp/PutPackedImage.cpp index eae16a16f..af962c703 100644 --- a/nxcomp/PutPackedImage.cpp +++ b/nxcomp/PutPackedImage.cpp @@ -44,7 +44,6 @@ PutPackedImageStore::PutPackedImageStore(StaticCompressor *compressor) { enableCache = PUTPACKEDIMAGE_ENABLE_CACHE; enableData = PUTPACKEDIMAGE_ENABLE_DATA; - enableSplit = PUTPACKEDIMAGE_ENABLE_SPLIT; enableCompress = PUTPACKEDIMAGE_ENABLE_COMPRESS; dataLimit = PUTPACKEDIMAGE_DATA_LIMIT; @@ -54,10 +53,8 @@ PutPackedImageStore::PutPackedImageStore(StaticCompressor *compressor) cacheThreshold = PUTPACKEDIMAGE_CACHE_THRESHOLD; cacheLowerThreshold = PUTPACKEDIMAGE_CACHE_LOWER_THRESHOLD; - if (control -> isProtoStep8() == 1) - { - enableSplit = PUTPACKEDIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8; - } + // Since ProtoStep8 (#issue 108) + enableSplit = PUTPACKEDIMAGE_ENABLE_SPLIT_IF_PROTO_STEP_8; messages_ -> resize(cacheSlots); diff --git a/nxcomp/PutPackedImage.h b/nxcomp/PutPackedImage.h index 5287a5b57..7427499b8 100644 --- a/nxcomp/PutPackedImage.h +++ b/nxcomp/PutPackedImage.h @@ -36,7 +36,6 @@ #define PUTPACKEDIMAGE_ENABLE_CACHE 1 #define PUTPACKEDIMAGE_ENABLE_DATA 1 -#define PUTPACKEDIMAGE_ENABLE_SPLIT 1 #define PUTPACKEDIMAGE_ENABLE_COMPRESS 0 // diff --git a/nxcomp/QueryFontReply.cpp b/nxcomp/QueryFontReply.cpp index 2d42587f7..d723f9127 100644 --- a/nxcomp/QueryFontReply.cpp +++ b/nxcomp/QueryFontReply.cpp @@ -39,12 +39,9 @@ QueryFontReplyStore::QueryFontReplyStore(StaticCompressor *compressor) enableCache = QUERYFONTREPLY_ENABLE_CACHE; enableData = QUERYFONTREPLY_ENABLE_DATA; enableSplit = QUERYFONTREPLY_ENABLE_SPLIT; - enableCompress = QUERYFONTREPLY_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = QUERYFONTREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = QUERYFONTREPLY_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = QUERYFONTREPLY_DATA_LIMIT; dataOffset = QUERYFONTREPLY_DATA_OFFSET; diff --git a/nxcomp/QueryFontReply.h b/nxcomp/QueryFontReply.h index 537da4e63..e89720ffe 100644 --- a/nxcomp/QueryFontReply.h +++ b/nxcomp/QueryFontReply.h @@ -36,7 +36,6 @@ #define QUERYFONTREPLY_ENABLE_CACHE 1 #define QUERYFONTREPLY_ENABLE_DATA 1 #define QUERYFONTREPLY_ENABLE_SPLIT 0 -#define QUERYFONTREPLY_ENABLE_COMPRESS 1 #define QUERYFONTREPLY_DATA_LIMIT 1048576 - 32 #define QUERYFONTREPLY_DATA_OFFSET 8 diff --git a/nxcomp/RenderCompositeGlyphs.cpp b/nxcomp/RenderCompositeGlyphs.cpp index 1135633ff..752dedb2b 100644 --- a/nxcomp/RenderCompositeGlyphs.cpp +++ b/nxcomp/RenderCompositeGlyphs.cpp @@ -102,26 +102,14 @@ MESSAGE_BEGIN_ENCODE_MESSAGE unsigned int src_x = GetUINT(buffer + 24, bigEndian); unsigned int src_y = GetUINT(buffer + 26, bigEndian); - if (control -> isProtoStep8() == 1) - { - encodeBuffer.encodeDiffCachedValue(src_x, - clientCache -> renderGlyphX, 16, - clientCache -> renderGlyphXCache, 11); - - encodeBuffer.encodeDiffCachedValue(src_y, - clientCache -> renderGlyphY, 16, - clientCache -> renderGlyphYCache, 11); - } - else - { - encodeBuffer.encodeDiffCachedValue(src_x, - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); + // Since ProtoStep8 (#issue 108) + encodeBuffer.encodeDiffCachedValue(src_x, + clientCache -> renderGlyphX, 16, + clientCache -> renderGlyphXCache, 11); - encodeBuffer.encodeDiffCachedValue(src_y, - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - } + encodeBuffer.encodeDiffCachedValue(src_y, + clientCache -> renderGlyphY, 16, + clientCache -> renderGlyphYCache, 11); #ifdef TEST *logofs << name() << ": Encoded source X " @@ -147,8 +135,8 @@ MESSAGE_BEGIN_ENCODE_MESSAGE // tive to the first offset coordinates. // - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { unsigned int numGlyphs = *(buffer + 28); @@ -232,32 +220,20 @@ MESSAGE_BEGIN_DECODE_MESSAGE unsigned int src_x; unsigned int src_y; - if (control -> isProtoStep8() == 1) - { - decodeBuffer.decodeDiffCachedValue(src_x, - clientCache -> renderGlyphX, 16, - clientCache -> renderGlyphXCache, 11); - - decodeBuffer.decodeDiffCachedValue(src_y, - clientCache -> renderGlyphY, 16, - clientCache -> renderGlyphYCache, 11); - } - else - { - decodeBuffer.decodeDiffCachedValue(src_x, - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); + // Since ProtoStep8 (#issue 108) + decodeBuffer.decodeDiffCachedValue(src_x, + clientCache -> renderGlyphX, 16, + clientCache -> renderGlyphXCache, 11); - decodeBuffer.decodeDiffCachedValue(src_y, - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - } + decodeBuffer.decodeDiffCachedValue(src_y, + clientCache -> renderGlyphY, 16, + clientCache -> renderGlyphYCache, 11); PutUINT(src_x, buffer + 24, bigEndian); PutUINT(src_y, buffer + 26, bigEndian); - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { decodeBuffer.decodeCachedValue(value, 8, clientCache -> renderNumGlyphsCache); @@ -297,8 +273,8 @@ MESSAGE_END_DECODE_MESSAGE MESSAGE_BEGIN_ENCODE_DATA { - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { encodeCharData(encodeBuffer, buffer, MESSAGE_OFFSET_IF_PROTO_STEP_8, size, bigEndian, channelCache); @@ -318,8 +294,8 @@ MESSAGE_END_ENCODE_DATA MESSAGE_BEGIN_DECODE_DATA { - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { decodeCharData(decodeBuffer, buffer, MESSAGE_OFFSET_IF_PROTO_STEP_8, size, bigEndian, channelCache); @@ -353,8 +329,8 @@ MESSAGE_BEGIN_PARSE_IDENTITY renderExtension -> data.composite_glyphs.src_x = GetUINT(buffer + 24, bigEndian); renderExtension -> data.composite_glyphs.src_y = GetUINT(buffer + 26, bigEndian); - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { renderExtension -> data.composite_glyphs.num_elm = *(buffer + 28); @@ -387,8 +363,8 @@ MESSAGE_BEGIN_UNPARSE_IDENTITY PutUINT(renderExtension -> data.composite_glyphs.src_x, buffer + 24, bigEndian); PutUINT(renderExtension -> data.composite_glyphs.src_y, buffer + 26, bigEndian); - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { *(buffer + 28) = renderExtension -> data.composite_glyphs.num_elm; @@ -426,8 +402,8 @@ MESSAGE_BEGIN_IDENTITY_CHECKSUM // first string. // - if (control -> isProtoStep8() == 1 && - size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (size >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { md5_append(md5_state, buffer + 28, 1); } @@ -470,42 +446,22 @@ MESSAGE_BEGIN_ENCODE_UPDATE unsigned int value; unsigned int previous; - if (control -> isProtoStep8() == 1) - { - value = renderExtension -> data.composite_glyphs.src_x; - previous = cachedRenderExtension -> data.composite_glyphs.src_x; - - encodeBuffer.encodeDiffCachedValue(value, previous, 16, - clientCache -> renderGlyphXCache, 11); + // Since ProtoStep8 (#issue 108) + value = renderExtension -> data.composite_glyphs.src_x; + previous = cachedRenderExtension -> data.composite_glyphs.src_x; - cachedRenderExtension -> data.composite_glyphs.src_x = value; + encodeBuffer.encodeDiffCachedValue(value, previous, 16, + clientCache -> renderGlyphXCache, 11); - value = renderExtension -> data.composite_glyphs.src_y; - previous = cachedRenderExtension -> data.composite_glyphs.src_y; + cachedRenderExtension -> data.composite_glyphs.src_x = value; - encodeBuffer.encodeDiffCachedValue(value, previous, 16, - clientCache -> renderGlyphYCache, 11); + value = renderExtension -> data.composite_glyphs.src_y; + previous = cachedRenderExtension -> data.composite_glyphs.src_y; - cachedRenderExtension -> data.composite_glyphs.src_y = value; - } - else - { - value = renderExtension -> data.composite_glyphs.src_x; - previous = cachedRenderExtension -> data.composite_glyphs.src_x; - - encodeBuffer.encodeDiffCachedValue(value, previous, 16, - clientCache -> renderXCache, 11); - - cachedRenderExtension -> data.composite_glyphs.src_x = value; + encodeBuffer.encodeDiffCachedValue(value, previous, 16, + clientCache -> renderGlyphYCache, 11); - value = renderExtension -> data.composite_glyphs.src_y; - previous = cachedRenderExtension -> data.composite_glyphs.src_y; - - encodeBuffer.encodeDiffCachedValue(value, previous, 16, - clientCache -> renderYCache, 11); - - cachedRenderExtension -> data.composite_glyphs.src_y = value; - } + cachedRenderExtension -> data.composite_glyphs.src_y = value; #ifdef TEST *logofs << name() << ": Encoded source X " @@ -514,8 +470,8 @@ MESSAGE_BEGIN_ENCODE_UPDATE << logofs_flush; #endif - if (control -> isProtoStep8() == 1 && - renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { // // Offset X and Y. @@ -601,41 +557,23 @@ MESSAGE_BEGIN_DECODE_UPDATE unsigned int value; unsigned int previous; - if (control -> isProtoStep8() == 1) - { - previous = renderExtension -> data.composite_glyphs.src_x; - - decodeBuffer.decodeDiffCachedValue(value, previous, 16, - clientCache -> renderGlyphXCache, 11); - - renderExtension -> data.composite_glyphs.src_x = value; - - previous = renderExtension -> data.composite_glyphs.src_y; - - decodeBuffer.decodeDiffCachedValue(value, previous, 16, - clientCache -> renderGlyphYCache, 11); + // Since ProtoStep8 (#issue 108) + previous = renderExtension -> data.composite_glyphs.src_x; - renderExtension -> data.composite_glyphs.src_y = value; - } - else - { - previous = renderExtension -> data.composite_glyphs.src_x; + decodeBuffer.decodeDiffCachedValue(value, previous, 16, + clientCache -> renderGlyphXCache, 11); - decodeBuffer.decodeDiffCachedValue(value, previous, 16, - clientCache -> renderXCache, 11); + renderExtension -> data.composite_glyphs.src_x = value; - renderExtension -> data.composite_glyphs.src_x = value; + previous = renderExtension -> data.composite_glyphs.src_y; - previous = renderExtension -> data.composite_glyphs.src_y; + decodeBuffer.decodeDiffCachedValue(value, previous, 16, + clientCache -> renderGlyphYCache, 11); - decodeBuffer.decodeDiffCachedValue(value, previous, 16, - clientCache -> renderYCache, 11); - - renderExtension -> data.composite_glyphs.src_y = value; - } + renderExtension -> data.composite_glyphs.src_y = value; - if (control -> isProtoStep8() == 1 && - renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8) + // Since ProtoStep8 (#issue 108) + if (renderExtension -> size_ >= MESSAGE_OFFSET_IF_PROTO_STEP_8) { // // Offset X and Y. diff --git a/nxcomp/RenderCompositeGlyphs.h b/nxcomp/RenderCompositeGlyphs.h index 527fd3d12..9458ecb14 100644 --- a/nxcomp/RenderCompositeGlyphs.h +++ b/nxcomp/RenderCompositeGlyphs.h @@ -80,9 +80,8 @@ class MESSAGE_STORE : public MESSAGE_CLASS virtual int identitySize(const unsigned char *buffer, unsigned int size) { - unsigned int offset = (control -> isProtoStep8() == 1 ? - MESSAGE_OFFSET_IF_PROTO_STEP_8 : - MESSAGE_OFFSET); + // Since ProtoStep8 (#issue 108) + unsigned int offset = MESSAGE_OFFSET_IF_PROTO_STEP_8; return (size >= offset ? offset : size); } diff --git a/nxcomp/RenderExtension.cpp b/nxcomp/RenderExtension.cpp index 79c26e64e..43933748c 100644 --- a/nxcomp/RenderExtension.cpp +++ b/nxcomp/RenderExtension.cpp @@ -42,13 +42,6 @@ #include "RenderTrapezoids.h" #include "RenderTriangles.h" -#include "RenderCreatePictureCompat.h" -#include "RenderFreePictureCompat.h" -#include "RenderPictureClipCompat.h" -#include "RenderCreateGlyphSetCompat.h" -#include "RenderCompositeCompat.h" -#include "RenderCompositeGlyphsCompat.h" - // // Set the verbosity level. // @@ -82,46 +75,27 @@ RenderExtensionStore::RenderExtensionStore(StaticCompressor *compressor) minors_[X_RenderFillRectangles] = new RenderFillRectanglesStore(); minors_[X_RenderAddGlyphs] = new RenderAddGlyphsStore(); - if (control -> isProtoStep7() == 1) - { - minors_[X_RenderCreatePicture] = new RenderCreatePictureStore(); - minors_[X_RenderFreePicture] = new RenderFreePictureStore(); - minors_[X_RenderSetPictureClipRectangles] = new RenderPictureClipStore(); - minors_[X_RenderCreateGlyphSet] = new RenderCreateGlyphSetStore(); - minors_[X_RenderComposite] = new RenderCompositeStore(); - minors_[X_RenderCompositeGlyphs8] = new RenderCompositeGlyphsStore(); - minors_[X_RenderCompositeGlyphs16] = new RenderCompositeGlyphsStore(); - minors_[X_RenderCompositeGlyphs32] = new RenderCompositeGlyphsStore(); - - minors_[X_RenderSetPictureTransform] = new RenderPictureTransformStore(); - minors_[X_RenderSetPictureFilter] = new RenderPictureFilterStore(); - minors_[X_RenderFreeGlyphSet] = new RenderFreeGlyphSetStore(); - minors_[X_RenderTrapezoids] = new RenderTrapezoidsStore(); - minors_[X_RenderTriangles] = new RenderTrianglesStore(); - } - else - { - minors_[X_RenderCreatePicture] = new RenderCreatePictureCompatStore(); - minors_[X_RenderFreePicture] = new RenderFreePictureCompatStore(); - minors_[X_RenderSetPictureClipRectangles] = new RenderPictureClipCompatStore(); - minors_[X_RenderCreateGlyphSet] = new RenderCreateGlyphSetCompatStore(); - minors_[X_RenderComposite] = new RenderCompositeCompatStore(); - minors_[X_RenderCompositeGlyphs8] = new RenderCompositeGlyphsCompatStore(); - minors_[X_RenderCompositeGlyphs16] = new RenderCompositeGlyphsCompatStore(); - minors_[X_RenderCompositeGlyphs32] = new RenderCompositeGlyphsCompatStore(); - } + // Since ProtoStep7 (#issue 108) + minors_[X_RenderCreatePicture] = new RenderCreatePictureStore(); + minors_[X_RenderFreePicture] = new RenderFreePictureStore(); + minors_[X_RenderSetPictureClipRectangles] = new RenderPictureClipStore(); + minors_[X_RenderCreateGlyphSet] = new RenderCreateGlyphSetStore(); + minors_[X_RenderComposite] = new RenderCompositeStore(); + minors_[X_RenderCompositeGlyphs8] = new RenderCompositeGlyphsStore(); + minors_[X_RenderCompositeGlyphs16] = new RenderCompositeGlyphsStore(); + minors_[X_RenderCompositeGlyphs32] = new RenderCompositeGlyphsStore(); + + minors_[X_RenderSetPictureTransform] = new RenderPictureTransformStore(); + minors_[X_RenderSetPictureFilter] = new RenderPictureFilterStore(); + minors_[X_RenderFreeGlyphSet] = new RenderFreeGlyphSetStore(); + minors_[X_RenderTrapezoids] = new RenderTrapezoidsStore(); + minors_[X_RenderTriangles] = new RenderTrianglesStore(); dataLimit = RENDEREXTENSION_DATA_LIMIT; dataOffset = RENDEREXTENSION_DATA_OFFSET; - if (control -> isProtoStep7() == 1) - { - cacheSlots = RENDEREXTENSION_CACHE_SLOTS_IF_PROTO_STEP_7; - } - else - { - cacheSlots = RENDEREXTENSION_CACHE_SLOTS; - } + // Since ProtoStep7 (#issue 108) + cacheSlots = RENDEREXTENSION_CACHE_SLOTS_IF_PROTO_STEP_7; cacheThreshold = RENDEREXTENSION_CACHE_THRESHOLD; cacheLowerThreshold = RENDEREXTENSION_CACHE_LOWER_THRESHOLD; @@ -268,204 +242,78 @@ void RenderMinorExtensionStore::encodeLongData(EncodeBuffer &encodeBuffer, const unsigned int offset, unsigned int size, int bigEndian, ChannelCache *channelCache) const { - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeLongData(buffer + offset, size - offset); - - #ifdef TEST - *logofs << name() << ": Encoded " << size - offset - << " bytes of long data.\n" << logofs_flush; - #endif - - return; - } - - ClientCache *clientCache = (ClientCache *) channelCache; - - for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 4) - { - #ifdef DEBUG - *logofs << name() << ": Encoding int with i = " << i << " c = " - << c << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue(GetULONG(buffer + i, bigEndian), 32, - *clientCache -> renderDataCache[c]); + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeLongData(buffer + offset, size - offset); - if (++c == 16) c = 0; - } + #ifdef TEST + *logofs << name() << ": Encoded " << size - offset + << " bytes of long data.\n" << logofs_flush; + #endif } void RenderMinorExtensionStore::encodeIntData(EncodeBuffer &encodeBuffer, const unsigned char *buffer, unsigned int offset, unsigned int size, int bigEndian, ChannelCache *channelCache) const { - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeIntData(buffer + offset, size - offset); - - #ifdef TEST - *logofs << name() << ": Encoded " << size - offset - << " bytes of int data.\n" << logofs_flush; - #endif + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeIntData(buffer + offset, size - offset); - return; - } - - ClientCache *clientCache = (ClientCache *) channelCache; - - for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 2) - { - #ifdef DEBUG - *logofs << name() << ": Encoding int with i = " << i << " c = " - << c << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue(GetUINT(buffer + i, bigEndian), 16, - *clientCache -> renderDataCache[c]); - - if (++c == 16) c = 0; - } + #ifdef TEST + *logofs << name() << ": Encoded " << size - offset + << " bytes of int data.\n" << logofs_flush; + #endif } void RenderMinorExtensionStore::encodeCharData(EncodeBuffer &encodeBuffer, const unsigned char *buffer, unsigned int offset, unsigned int size, int bigEndian, ChannelCache *channelCache) const { - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(buffer + offset, size - offset); - - #ifdef TEST - *logofs << name() << ": Encoded " << size - offset - << " bytes of text data.\n" << logofs_flush; - #endif - - return; - } - - ClientCache *clientCache = (ClientCache *) channelCache; - - clientCache -> renderTextCompressor.reset(); + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(buffer + offset, size - offset); - const unsigned char *next = buffer + offset; - - for (unsigned int i = offset; i < size; i++) - { - #ifdef DEBUG - *logofs << name() << ": Encoding char with i = " << i - << ".\n" << logofs_flush; - #endif - - clientCache -> renderTextCompressor. - encodeChar(*next++, encodeBuffer); - } + #ifdef TEST + *logofs << name() << ": Encoded " << size - offset + << " bytes of text data.\n" << logofs_flush; + #endif } void RenderMinorExtensionStore::decodeLongData(DecodeBuffer &decodeBuffer, unsigned char *buffer, unsigned int offset, unsigned int size, int bigEndian, ChannelCache *channelCache) const { - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeLongData(buffer + offset, size - offset); - - #ifdef TEST - *logofs << name() << ": Decoded " << size - offset - << " bytes of long data.\n" << logofs_flush; - #endif - - return; - } - - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 4) - { - #ifdef DEBUG - *logofs << name() << ": Decoding int with i = " << i << " c = " - << c << ".\n" << logofs_flush; - #endif + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeLongData(buffer + offset, size - offset); - decodeBuffer.decodeCachedValue(value, 32, - *clientCache -> renderDataCache[c]); - - PutULONG(value, buffer + i, bigEndian); - - if (++c == 16) c = 0; - } + #ifdef TEST + *logofs << name() << ": Decoded " << size - offset + << " bytes of long data.\n" << logofs_flush; + #endif } void RenderMinorExtensionStore::decodeIntData(DecodeBuffer &decodeBuffer, unsigned char *buffer, unsigned int offset, unsigned int size, int bigEndian, ChannelCache *channelCache) const { - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeIntData(buffer + offset, size - offset); - - #ifdef TEST - *logofs << name() << ": Decoded " << size - offset - << " bytes of int data.\n" << logofs_flush; - #endif - - return; - } - - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - for (unsigned int i = offset, c = (offset - 4) % 16; i < size; i += 2) - { - #ifdef DEBUG - *logofs << name() << ": Decoding int with i = " << i << " c = " - << c << ".\n" << logofs_flush; - #endif + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeIntData(buffer + offset, size - offset); - decodeBuffer.decodeCachedValue(value, 16, - *clientCache -> renderDataCache[c]); - - PutUINT(value, buffer + i, bigEndian); - - if (++c == 16) c = 0; - } + #ifdef TEST + *logofs << name() << ": Decoded " << size - offset + << " bytes of int data.\n" << logofs_flush; + #endif } void RenderMinorExtensionStore::decodeCharData(DecodeBuffer &decodeBuffer, unsigned char *buffer, unsigned int offset, unsigned int size, int bigEndian, ChannelCache *channelCache) const { - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(buffer + offset, size - offset); + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(buffer + offset, size - offset); - #ifdef TEST - *logofs << name() << ": Decoded " << size - offset - << " bytes of text data.\n" << logofs_flush; - #endif - - return; - } - - ClientCache *clientCache = (ClientCache *) channelCache; - - clientCache -> renderTextCompressor.reset(); - - unsigned char *next = buffer + offset; - - for (unsigned int i = offset; i < size; i++) - { - #ifdef DEBUG - *logofs << name() << ": Decoding char with i = " << i - << ".\n" << logofs_flush; - #endif - - *next++ = clientCache -> renderTextCompressor. - decodeChar(decodeBuffer); - } + #ifdef TEST + *logofs << name() << ": Decoded " << size - offset + << " bytes of text data.\n" << logofs_flush; + #endif } void RenderMinorExtensionStore::parseIntData(const Message *message, const unsigned char *buffer, diff --git a/nxcomp/RenderExtension.h b/nxcomp/RenderExtension.h index 275ef1c1d..2b616e1e5 100644 --- a/nxcomp/RenderExtension.h +++ b/nxcomp/RenderExtension.h @@ -44,7 +44,6 @@ #define RENDEREXTENSION_DATA_LIMIT 6144 #define RENDEREXTENSION_DATA_OFFSET 36 -#define RENDEREXTENSION_CACHE_SLOTS 6000 #define RENDEREXTENSION_CACHE_THRESHOLD 20 #define RENDEREXTENSION_CACHE_LOWER_THRESHOLD 10 diff --git a/nxcomp/ServerCache.cpp b/nxcomp/ServerCache.cpp index f0cc6f825..104ac4728 100644 --- a/nxcomp/ServerCache.cpp +++ b/nxcomp/ServerCache.cpp @@ -71,7 +71,6 @@ ServerCache::ServerCache() : getKeyboardMappingKeysymCache(8), getPropertyTypeCache(8), - getPropertyTextCompressor(textCache, SERVER_TEXT_CACHE_SIZE), getSelectionOwnerCache(8), @@ -85,9 +84,7 @@ ServerCache::ServerCache() : translateCoordsChildCache(8), translateCoordsXCache(8), translateCoordsYCache(8), - queryTreeWindowCache(8), - - getAtomNameTextCompressor(textCache, SERVER_TEXT_CACHE_SIZE) + queryTreeWindowCache(8) { unsigned int i; diff --git a/nxcomp/ServerCache.h b/nxcomp/ServerCache.h index ec213b89f..0968e235c 100644 --- a/nxcomp/ServerCache.h +++ b/nxcomp/ServerCache.h @@ -215,7 +215,6 @@ class ServerCache : public ChannelCache CharCache getPropertyFormatCache; IntCache getPropertyTypeCache; - TextCompressor getPropertyTextCompressor; static BlockCache xResources; // @@ -272,13 +271,6 @@ class ServerCache : public ChannelCache IntCache queryTreeWindowCache; - // - // GetAtomName reply in protocol - // versions >= 3. - // - - TextCompressor getAtomNameTextCompressor; - // // Generic reply. Use short data // in protocol versions >= 3. diff --git a/nxcomp/ServerChannel.cpp b/nxcomp/ServerChannel.cpp index 0f3a3e552..e0bd2132f 100644 --- a/nxcomp/ServerChannel.cpp +++ b/nxcomp/ServerChannel.cpp @@ -199,8 +199,6 @@ ServerChannel::ServerChannel(Transport *transport, StaticCompressor *compressor) splitState_.load = 1; splitState_.commit = 0; - handleSplitEnable(); - // // It will be eventually set by // the server proxy. @@ -394,19 +392,6 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m priority_++; - // - // Due to the way the loop was implemented - // we can't encode multiple messages if we - // are encoding the first request. - // - - if (control -> isProtoStep7() == 0) - { - if (proxy -> handleAsyncInit() < 0) - { - return -1; - } - } } else { @@ -545,19 +530,8 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeValue(nameLength, 16, 6); const unsigned char *nextSrc = inputMessage + 32; - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, nameLength); - } - else - { - serverCache_ -> getAtomNameTextCompressor.reset(); - for (unsigned int i = 0; i < nameLength; i++) - { - serverCache_ -> getAtomNameTextCompressor. - encodeChar(*nextSrc++, encodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, nameLength); priority_++; } @@ -930,21 +904,10 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m unsigned int length = (unsigned int) (*nextSrc++); encodeBuffer.encodeValue(length, 8); - if (control -> isProtoStep7() == 1) - { - encodeBuffer.encodeTextData(nextSrc, length); + // Since ProtoStep7 (#issue 108) + encodeBuffer.encodeTextData(nextSrc, length); - nextSrc += length; - } - else - { - serverCache_ -> getPropertyTextCompressor.reset(); - for (; length; length--) - { - serverCache_ -> getPropertyTextCompressor.encodeChar( - *nextSrc++, encodeBuffer); - } - } + nextSrc += length; } priority_++; @@ -1253,33 +1216,9 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m encodeBuffer.encodeCachedValue(GetULONG(inputMessage + 8, bigEndian_), 29, serverCache_ -> visualCache); - if (control -> isProtoStep8() == 0) - { - unsigned int compressedDataSize = 0; - unsigned char *compressedData = NULL; - - int compressed = handleCompress(encodeBuffer, requestOpcode, messageStore -> dataOffset, - inputMessage, inputLength, compressedData, - compressedDataSize); - if (compressed < 0) - { - return -1; - } - else if (compressed > 0) - { - // - // Update size according to result of image compression. - // - - handleUpdate(messageStore, inputLength - messageStore -> - dataOffset, compressedDataSize); - } - } - else - { - handleCopy(encodeBuffer, requestOpcode, messageStore -> - dataOffset, inputMessage, inputLength); - } + // Since ProtoStep8 (#issue 108) + handleCopy(encodeBuffer, requestOpcode, messageStore -> + dataOffset, inputMessage, inputLength); priority_++; } @@ -2069,10 +2008,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length // encoding is used. // - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeValue(length, 8); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeValue(length, 8); unsigned int nextByte; unsigned char *outputMessage = writeBuffer_.addMessage(length); @@ -2285,19 +2222,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length if (format == 8) { - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, dataLength); - } - else - { - clientCache_ -> changePropertyTextCompressor.reset(); - for (unsigned int i = 0; i < dataLength; i++) - { - *nextDest++ = clientCache_ -> changePropertyTextCompressor. - decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, dataLength); } else if (format == 32) { @@ -2584,16 +2510,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length outputMessage = writeBuffer_.addMessage(outputLength); writeBuffer_.registerPointer(&outputMessage); - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId, - clientCache_ -> lastIdCache, clientCache_ -> gcCache, - clientCache_ -> freeGCCache); - } - else - { - decodeBuffer.decodeXidValue(value, clientCache_ -> gcCache); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId, + clientCache_ -> lastIdCache, clientCache_ -> gcCache, + clientCache_ -> freeGCCache); PutULONG(value, outputMessage + 4, bigEndian_); unsigned int offset = 8; @@ -2688,16 +2608,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length decodeBuffer.decodeXidValue(value, clientCache_ -> windowCache); PutULONG(value, outputMessage + 8, bigEndian_); - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId, - clientCache_ -> lastIdCache, clientCache_ -> windowCache, - clientCache_ -> freeWindowCache); - } - else - { - decodeBuffer.decodeXidValue(value, clientCache_ -> windowCache); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeNewXidValue(value, clientCache_ -> lastId, + clientCache_ -> lastIdCache, clientCache_ -> windowCache, + clientCache_ -> freeWindowCache); PutULONG(value, outputMessage + 4, bigEndian_); unsigned char *nextDest = outputMessage + 12; @@ -2754,16 +2668,9 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length unsigned int numPoints; - if (control -> isProtoStep10() == 1) - { - decodeBuffer.decodeCachedValue(numPoints, 16, - clientCache_ -> fillPolyNumPointsCache, 4); - } - else - { - decodeBuffer.decodeCachedValue(numPoints, 14, - clientCache_ -> fillPolyNumPointsCache, 4); - } + // Since ProtoStep10 (#issue 108) + decodeBuffer.decodeCachedValue(numPoints, 16, + clientCache_ -> fillPolyNumPointsCache, 4); outputLength = 16 + (numPoints << 2); outputMessage = writeBuffer_.addMessage(outputLength); @@ -2859,14 +2766,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length outputLength = 8; outputMessage = writeBuffer_.addMessage(outputLength); - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeGCCache); - } - else - { - decodeBuffer.decodeXidValue(value, clientCache_ -> gcCache); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeGCCache); PutULONG(value, outputMessage + 4, bigEndian_); } @@ -2876,23 +2777,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length outputLength = 8; outputMessage = writeBuffer_.addMessage(outputLength); - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeDrawableCache); + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeDrawableCache); - PutULONG(value, outputMessage + 4, bigEndian_); - } - else - { - decodeBuffer.decodeBoolValue(value); - if (!value) - { - decodeBuffer.decodeValue(value, 29, 4); - clientCache_ -> createPixmapLastId += value; - clientCache_ -> createPixmapLastId &= 0x1fffffff; - } - PutULONG(clientCache_ -> createPixmapLastId, outputMessage + 4, bigEndian_); - } + PutULONG(value, outputMessage + 4, bigEndian_); } break; case X_GetAtomName: @@ -3125,21 +3013,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length clientCache_ -> polyTextDeltaCache); *nextDest++ = cValue; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, textLength); + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, textLength); - nextDest += textLength; - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - while (textLength) - { - *nextDest++ = clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer); - textLength--; - } - } + nextDest += textLength; } } outputLength += addedLength; @@ -3211,23 +3088,10 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length decodeBuffer.decodeCachedValue(cValue, 8, clientCache_ -> polyTextDeltaCache); *nextDest++ = cValue; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, textLength * 2); + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, textLength * 2); - nextDest += textLength * 2; - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - textLength <<= 1; - while (textLength) - { - *nextDest++ = - clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer); - textLength--; - } - } + nextDest += textLength * 2; } } outputLength += addedLength; @@ -3279,16 +3143,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length PutUINT(clientCache_ -> imageTextLastY, outputMessage + 14, bigEndian_); unsigned char *nextDest = outputMessage + 16; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, textLength); - } - else - { - clientCache_ -> imageTextTextCompressor.reset(); - for (unsigned int j = 0; j < textLength; j++) - *nextDest++ = clientCache_ -> imageTextTextCompressor.decodeChar(decodeBuffer); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, textLength); handleSave(messageStore, outputMessage, outputLength); } @@ -3326,16 +3182,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length PutUINT(clientCache_ -> imageTextLastY, outputMessage + 14, bigEndian_); unsigned char *nextDest = outputMessage + 16; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, textLength * 2); - } - else - { - clientCache_ -> imageTextTextCompressor.reset(); - for (unsigned int j = 0; j < textLength * 2; j++) - *nextDest++ = clientCache_ -> imageTextTextCompressor.decodeChar(decodeBuffer); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, textLength * 2); handleSave(messageStore, outputMessage, outputLength); } @@ -3362,18 +3210,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length outputMessage[1] = (unsigned char) value; unsigned char *nextDest = outputMessage + 8; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, nameLength); - } - else - { - clientCache_ -> internAtomTextCompressor.reset(); - for (unsigned int i = 0; i < nameLength; i++) - { - *nextDest++ = clientCache_ -> internAtomTextCompressor.decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, nameLength); sequenceQueue_.push(clientSequence_, outputOpcode); @@ -3399,18 +3237,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length PutUINT(value, outputMessage + 4, bigEndian_); unsigned char* nextDest = outputMessage + 8; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, textLength); - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - for (unsigned int i = 0; i < textLength; i++) - { - *nextDest++ = clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, textLength); sequenceQueue_.push(clientSequence_, outputOpcode); } @@ -3428,18 +3256,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length PutUINT(textLength, outputMessage + 8, bigEndian_); unsigned char *nextDest = outputMessage + 12; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, textLength); - } - else - { - clientCache_ -> polyTextTextCompressor.reset(); - for (unsigned int i = 0; i < textLength; i++) - { - *nextDest++ = clientCache_ -> polyTextTextCompressor.decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, textLength); sequenceQueue_.push(clientSequence_, outputOpcode); } @@ -3456,7 +3274,7 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length outputLength = 8; outputMessage = writeBuffer_.addMessage(outputLength); - if (outputOpcode == X_DestroyWindow && control -> isProtoStep7() == 1) + if (outputOpcode == X_DestroyWindow) // Since ProtoStep7 (#issue 108) { decodeBuffer.decodeFreeXidValue(value, clientCache_ -> freeWindowCache); } @@ -3487,19 +3305,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length PutULONG(clientCache_ -> lastFont, outputMessage + 4, bigEndian_); unsigned char *nextDest = outputMessage + 12; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeTextData(nextDest, nameLength); - } - else - { - clientCache_ -> openFontTextCompressor.reset(); - for (; nameLength; nameLength--) - { - *nextDest++ = clientCache_ -> openFontTextCompressor. - decodeChar(decodeBuffer); - } - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeTextData(nextDest, nameLength); } break; case X_PolyFillRectangle: @@ -4137,14 +3944,8 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length unsigned int numRectangles; - if (control -> isProtoStep9() == 1) - { - decodeBuffer.decodeValue(numRectangles, 15, 4); - } - else - { - decodeBuffer.decodeValue(numRectangles, 13, 4); - } + // Since ProtoStep9 (#issue 108) + decodeBuffer.decodeValue(numRectangles, 15, 4); outputLength = (numRectangles << 3) + 12; outputMessage = writeBuffer_.addMessage(outputLength); @@ -4669,10 +4470,8 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer, MessageStore *store, T_store_action action, int position, unsigned char &opcode, unsigned char *&buffer, unsigned int &size) { - if (control -> isProtoStep7() == 1) - { - splitState_.current = splitState_.resource; - } + // Since ProtoStep7 (#issue 108) + splitState_.current = splitState_.resource; handleSplitStoreAlloc(&splitResources_, splitState_.current); @@ -4707,14 +4506,12 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer, MessageStore *store, action, checksum, buffer, size); // - // If we are connected to an old proxy - // version or the encoding side didn't - // provide a checksum, then don't send - // the split report. + // If the encoding side didn't provide + // a checksum, then don't send the split + // report. // - if (control -> isProtoStep7() == 0 || - checksum == NULL) + if (checksum == NULL) { if (action == IS_HIT) { @@ -4736,8 +4533,6 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer, MessageStore *store, #endif - delete [] checksum; - return 1; } @@ -4829,13 +4624,11 @@ int ServerChannel::handleSplit(DecodeBuffer &decodeBuffer) unsigned char resource; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeCachedValue(resource, 8, - clientCache_ -> resourceCache); + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeCachedValue(resource, 8, + clientCache_ -> resourceCache); - splitState_.current = resource; - } + splitState_.current = resource; handleSplitStoreAlloc(&splitResources_, splitState_.current); @@ -5391,8 +5184,11 @@ int ServerChannel::handleColormap(unsigned char &opcode, unsigned char *&buffer, // data in compressed form. // - if (control -> isProtoStep7() == 1) - { + // + // Since ProtoStep7 (#issue 108) + // + + { // An anonymous block is used here to limit the scope of local variables unsigned int packed = GetULONG(buffer + 8, bigEndian_); unsigned int unpacked = GetULONG(buffer + 12, bigEndian_); @@ -5486,85 +5282,7 @@ int ServerChannel::handleColormap(unsigned char &opcode, unsigned char *&buffer, } #endif - } - else - { - unsigned int entries = GetULONG(buffer + 4, bigEndian_); - - if (size == entries * 4 + 8) - { - if (unpackState_[resource] -> colormap -> entries != entries && - unpackState_[resource] -> colormap -> data != NULL) - { - #ifdef TEST - *logofs << "handleColormap: Freeing previously " - << "allocated unpack colormap.\n" - << logofs_flush; - #endif - - delete [] unpackState_[resource] -> colormap -> data; - - unpackState_[resource] -> colormap -> data = NULL; - unpackState_[resource] -> colormap -> entries = 0; - } - - if (entries > 0) - { - if (unpackState_[resource] -> colormap -> data == NULL) - { - unpackState_[resource] -> - colormap -> data = new unsigned int[entries]; - } - - if (unpackState_[resource] -> colormap -> data != NULL) - { - unpackState_[resource] -> colormap -> entries = entries; - - #ifdef DEBUG - *logofs << "handleColormap: Size of new colormap " - << "data is " << (entries << 2) << ".\n" - << logofs_flush; - #endif - - memcpy((unsigned char *) unpackState_[resource] -> - colormap -> data, buffer + 8, entries << 2); - - #if defined(DEBUG) && defined(DUMP) - - *logofs << "handleColormap: Dumping colormap entries:\n" - << logofs_flush; - - const unsigned int *p = (unsigned int *) buffer + 8; - - for (unsigned int i = 0; i < entries; i++) - { - *logofs << "handleColormap: [" << i << "] [" - << (void *) p[i] << "].\n" - << logofs_flush; - } - - #endif - } - else - { - #ifdef PANIC - *logofs << "handleColormap: PANIC! Can't allocate " - << entries << " entries for unpack colormap " - << "for FD#" << fd_ << ".\n" << logofs_flush; - #endif - } - } - } - else - { - #ifdef PANIC - *logofs << "handleColormap: PANIC! Bad size " << size - << " for set unpack colormap message for FD#" - << fd_ << " with " << entries << " entries.\n" - << logofs_flush; - #endif - } - } + } // end anonymous block handleColormapEnd: @@ -5593,8 +5311,11 @@ int ServerChannel::handleAlpha(unsigned char &opcode, unsigned char *&buffer, // data in compressed form. // - if (control -> isProtoStep7() == 1) - { + // + // Since ProtoStep7 (#issue 108) + // + + { // An anonymous block is used here to limit the scope of local variables unsigned int packed = GetULONG(buffer + 8, bigEndian_); unsigned int unpacked = GetULONG(buffer + 12, bigEndian_); @@ -5687,82 +5408,7 @@ int ServerChannel::handleAlpha(unsigned char &opcode, unsigned char *&buffer, } #endif - } - else - { - unsigned int entries = GetULONG(buffer + 4, bigEndian_); - - if (size == RoundUp4(entries) + 8) - { - if (unpackState_[resource] -> alpha -> entries != entries && - unpackState_[resource] -> alpha -> data != NULL) - { - #ifdef TEST - *logofs << "handleAlpha: Freeing previously allocated " - << "unpack alpha data.\n" << logofs_flush; - #endif - - delete [] unpackState_[resource] -> alpha -> data; - - unpackState_[resource] -> alpha -> data = NULL; - unpackState_[resource] -> alpha -> entries = 0; - } - - if (entries > 0) - { - if (unpackState_[resource] -> alpha -> data == NULL) - { - unpackState_[resource] -> alpha -> data = new unsigned char[entries]; - } - - if (unpackState_[resource] -> alpha -> data != NULL) - { - unpackState_[resource] -> alpha -> entries = entries; - - #ifdef DEBUG - *logofs << "handleAlpha: Size of new alpha data is " - << entries << ".\n" << logofs_flush; - #endif - - memcpy((unsigned char *) unpackState_[resource] -> - alpha -> data, buffer + 8, entries); - - #if defined(DEBUG) && defined(DUMP) - - *logofs << "handleAlpha: Dumping alpha entries:\n" - << logofs_flush; - - const unsigned char *p = buffer + 8; - - for (unsigned int i = 0; i < entries; i++) - { - *logofs << "handleAlpha: [" << i << "] [" - << (void *) ((int) p[i]) << "].\n" - << logofs_flush; - } - - #endif - } - else - { - #ifdef PANIC - *logofs << "handleAlpha: PANIC! Can't allocate " - << entries << " entries for unpack alpha data " - << "for FD#" << fd_ << ".\n" << logofs_flush; - #endif - } - } - } - #ifdef PANIC - else - { - *logofs << "handleAlpha: PANIC! Bad size " << size - << " for set unpack alpha message for FD#" - << fd_ << " with " << entries << " entries.\n" - << logofs_flush; - } - #endif - } + } //end anonymous block handleAlphaEnd: @@ -6680,15 +6326,20 @@ int ServerChannel::handleFastWriteRequest(DecodeBuffer &decodeBuffer, unsigned c { // // All the NX requests are handled in the - // main message loop. The X_PutImage can - // be handled here only if a split was - // not requested. + // main message loop. + // + + // + // Since ProtoStep7 (#issue 108) + // + // The X_PutImage can be handled here only + // if a split was not requested. // if ((opcode >= X_NXFirstOpcode && opcode <= X_NXLastOpcode) || - (control -> isProtoStep7() == 1 && opcode == X_PutImage && - splitState_.resource != nothing) || opcode == X_ListExtensions || - opcode == X_QueryExtension) + (opcode == X_PutImage && splitState_.resource != nothing) || + opcode == X_ListExtensions || + opcode == X_QueryExtension) { return 0; } @@ -7896,14 +7547,6 @@ int ServerChannel::handleCacheRequest(DecodeBuffer &decodeBuffer, unsigned char splitState_.save = (mask >> 8) & 0xff; splitState_.load = mask & 0xff; - // - // Just to be sure. We should never - // receive this request if connected - // to an old proxy version. - // - - handleSplitEnable(); - #ifdef TEST *logofs << "handleCacheRequest: Set cache parameters to " << "save " << splitState_.save << " load " @@ -7920,34 +7563,24 @@ int ServerChannel::handleStartSplitRequest(DecodeBuffer &decodeBuffer, unsigned { // // Prepare for the split for the selected - // resource. Old proxy versions only use + // resource. Old proxy versions only used // the split store at position 0. // - if (control -> isProtoStep7() == 1) - { - unsigned char resource; + // Since ProtoStep7 (#issue 108) + unsigned char resource; - decodeBuffer.decodeCachedValue(resource, 8, - clientCache_ -> resourceCache); + decodeBuffer.decodeCachedValue(resource, 8, + clientCache_ -> resourceCache); - splitState_.resource = resource; + splitState_.resource = resource; - splitState_.current = splitState_.resource; + splitState_.current = splitState_.resource; - #if defined(TEST) || defined(SPLIT) - *logofs << "handleStartSplitRequest: SPLIT! Registered id " - << splitState_.resource << " as resource " - << "waiting for a split.\n" << logofs_flush; - #endif - } #if defined(TEST) || defined(SPLIT) - else - { - *logofs << "handleStartSplitRequest: SPLIT! Assuming fake id " - << splitState_.current << " as resource " - << "waiting for a split.\n" << logofs_flush; - } + *logofs << "handleStartSplitRequest: SPLIT! Registered id " + << splitState_.resource << " as resource " + << "waiting for a split.\n" << logofs_flush; #endif handleNullRequest(opcode, buffer, size); @@ -7962,40 +7595,38 @@ int ServerChannel::handleEndSplitRequest(DecodeBuffer &decodeBuffer, unsigned ch // Verify that the agent resource matches. // - if (control -> isProtoStep7() == 1) - { - unsigned char resource; - - decodeBuffer.decodeCachedValue(resource, 8, - clientCache_ -> resourceCache); - - #ifdef TEST + // Since ProtoStep7 (#issue 108) + unsigned char resource; - if (splitState_.resource == nothing) - { - #ifdef PANIC - *logofs << "handleEndSplitRequest: PANIC! SPLIT! Received an end of " - << "split for resource id " << (unsigned int) *(buffer + 1) - << " without a previous start.\n" - << logofs_flush; - #endif + decodeBuffer.decodeCachedValue(resource, 8, + clientCache_ -> resourceCache); - HandleCleanup(); - } - else if (resource != splitState_.resource) - { - #ifdef PANIC - *logofs << "handleEndSplitRequest: PANIC! SPLIT! Invalid resource id " - << resource << " received while waiting for resource id " - << splitState_.resource << ".\n" << logofs_flush; - #endif + #ifdef TEST - HandleCleanup(); - } + if (splitState_.resource == nothing) + { + #ifdef PANIC + *logofs << "handleEndSplitRequest: PANIC! SPLIT! Received an end of " + << "split for resource id " << (unsigned int) *(buffer + 1) + << " without a previous start.\n" + << logofs_flush; + #endif + HandleCleanup(); + } + else if (resource != splitState_.resource) + { + #ifdef PANIC + *logofs << "handleEndSplitRequest: PANIC! SPLIT! Invalid resource id " + << resource << " received while waiting for resource id " + << splitState_.resource << ".\n" << logofs_flush; #endif + + HandleCleanup(); } + #endif + #if defined(TEST) || defined(SPLIT) *logofs << "handleEndSplitRequest: SPLIT! Reset id " << splitState_.resource << " as resource " @@ -8013,15 +7644,8 @@ int ServerChannel::handleSplitChecksum(DecodeBuffer &decodeBuffer, T_checksum &c { unsigned int receive; - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeBoolValue(receive); - } - else - { - receive = (control -> ImageCacheEnableLoad == 1 || - control -> ImageCacheEnableSave == 1); - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeBoolValue(receive); if (receive == 1) { diff --git a/nxcomp/ServerChannel.h b/nxcomp/ServerChannel.h index 6536db829..28d5efb3e 100644 --- a/nxcomp/ServerChannel.h +++ b/nxcomp/ServerChannel.h @@ -312,21 +312,6 @@ class ServerChannel : public Channel int handleSplitChecksum(DecodeBuffer &decodeBuffer, T_checksum &checksum); - void handleSplitEnable() - { - if (control -> isProtoStep7() == 0) - { - #if defined(TEST) || defined(SPLIT) - *logofs << "handleSplitEnable: WARNING! Disabling load " - << "and save with an old proxy version.\n" - << logofs_flush; - #endif - - splitState_.save = 0; - splitState_.load = 0; - } - } - // // Allocate and free the shared memory // support resources. diff --git a/nxcomp/ServerProxy.h b/nxcomp/ServerProxy.h index 8c4a88410..54bc0f748 100644 --- a/nxcomp/ServerProxy.h +++ b/nxcomp/ServerProxy.h @@ -102,14 +102,8 @@ class ServerProxy : public Proxy virtual int checkLocalChannelMap(int channelId) { - if (control -> isProtoStep7() == 1) - { - return ((channelId & control -> ChannelMask) == 0); - } - else - { - return 0; - } + // Since ProtoStep7 (#issue 108) + return ((channelId & control -> ChannelMask) == 0); } private: diff --git a/nxcomp/SetUnpackAlpha.cpp b/nxcomp/SetUnpackAlpha.cpp index a0dd1fc2e..792aa33d7 100644 --- a/nxcomp/SetUnpackAlpha.cpp +++ b/nxcomp/SetUnpackAlpha.cpp @@ -44,7 +44,6 @@ SetUnpackAlphaStore::SetUnpackAlphaStore(StaticCompressor *compressor) { enableCache = SETUNPACKALPHA_ENABLE_CACHE; enableData = SETUNPACKALPHA_ENABLE_DATA; - enableSplit = SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_7; enableCompress = SETUNPACKALPHA_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = SETUNPACKALPHA_DATA_LIMIT; @@ -54,10 +53,8 @@ SetUnpackAlphaStore::SetUnpackAlphaStore(StaticCompressor *compressor) cacheThreshold = SETUNPACKALPHA_CACHE_THRESHOLD; cacheLowerThreshold = SETUNPACKALPHA_CACHE_LOWER_THRESHOLD; - if (control -> isProtoStep8() == 1) - { - enableSplit = SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_8; - } + // Since ProtoStep8 (#issue 108) + enableSplit = SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_8; messages_ -> resize(cacheSlots); diff --git a/nxcomp/SetUnpackAlpha.h b/nxcomp/SetUnpackAlpha.h index 2e32a6590..4c4306d8d 100644 --- a/nxcomp/SetUnpackAlpha.h +++ b/nxcomp/SetUnpackAlpha.h @@ -36,18 +36,14 @@ #define SETUNPACKALPHA_ENABLE_CACHE 1 #define SETUNPACKALPHA_ENABLE_DATA 1 -#define SETUNPACKALPHA_ENABLE_SPLIT 0 -#define SETUNPACKALPHA_ENABLE_COMPRESS 1 #define SETUNPACKALPHA_DATA_LIMIT 16384 -#define SETUNPACKALPHA_DATA_OFFSET 8 #define SETUNPACKALPHA_CACHE_SLOTS 2000 #define SETUNPACKALPHA_CACHE_THRESHOLD 10 #define SETUNPACKALPHA_CACHE_LOWER_THRESHOLD 5 #define SETUNPACKALPHA_DATA_OFFSET_IF_PROTO_STEP_7 16 -#define SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_7 1 #define SETUNPACKALPHA_ENABLE_COMPRESS_IF_PROTO_STEP_7 0 #define SETUNPACKALPHA_ENABLE_SPLIT_IF_PROTO_STEP_8 0 diff --git a/nxcomp/SetUnpackColormap.cpp b/nxcomp/SetUnpackColormap.cpp index d522d328e..8fb8b3ce7 100644 --- a/nxcomp/SetUnpackColormap.cpp +++ b/nxcomp/SetUnpackColormap.cpp @@ -44,7 +44,6 @@ SetUnpackColormapStore::SetUnpackColormapStore(StaticCompressor *compressor) { enableCache = SETUNPACKCOLORMAP_ENABLE_CACHE; enableData = SETUNPACKCOLORMAP_ENABLE_DATA; - enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT; enableCompress = SETUNPACKCOLORMAP_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = SETUNPACKCOLORMAP_DATA_LIMIT; @@ -54,10 +53,8 @@ SetUnpackColormapStore::SetUnpackColormapStore(StaticCompressor *compressor) cacheThreshold = SETUNPACKCOLORMAP_CACHE_THRESHOLD; cacheLowerThreshold = SETUNPACKCOLORMAP_CACHE_LOWER_THRESHOLD; - if (control -> isProtoStep8() == 1) - { - enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT_IF_PROTO_STEP_8; - } + // Since ProtoStep8 (#issue 108) + enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT_IF_PROTO_STEP_8; messages_ -> resize(cacheSlots); diff --git a/nxcomp/SetUnpackColormap.h b/nxcomp/SetUnpackColormap.h index 53277b3f0..fda7fa16d 100644 --- a/nxcomp/SetUnpackColormap.h +++ b/nxcomp/SetUnpackColormap.h @@ -36,11 +36,8 @@ #define SETUNPACKCOLORMAP_ENABLE_CACHE 1 #define SETUNPACKCOLORMAP_ENABLE_DATA 1 -#define SETUNPACKCOLORMAP_ENABLE_SPLIT 1 -#define SETUNPACKCOLORMAP_ENABLE_COMPRESS 1 #define SETUNPACKCOLORMAP_DATA_LIMIT 4096 -#define SETUNPACKCOLORMAP_DATA_OFFSET 8 #define SETUNPACKCOLORMAP_CACHE_SLOTS 2000 #define SETUNPACKCOLORMAP_CACHE_THRESHOLD 5 diff --git a/nxcomp/ShapeExtension.cpp b/nxcomp/ShapeExtension.cpp index daa19fbb4..34fad27c9 100644 --- a/nxcomp/ShapeExtension.cpp +++ b/nxcomp/ShapeExtension.cpp @@ -45,12 +45,9 @@ ShapeExtensionStore::ShapeExtensionStore(StaticCompressor *compressor) enableCache = SHAPEEXTENSION_ENABLE_CACHE; enableData = SHAPEEXTENSION_ENABLE_DATA; enableSplit = SHAPEEXTENSION_ENABLE_SPLIT; - enableCompress = SHAPEEXTENSION_ENABLE_COMPRESS; - if (control -> isProtoStep7() == 1) - { - enableCompress = SHAPEEXTENSION_ENABLE_COMPRESS_IF_PROTO_STEP_7; - } + // Since ProtoStep7 (#issue 108) + enableCompress = SHAPEEXTENSION_ENABLE_COMPRESS_IF_PROTO_STEP_7; dataLimit = SHAPEEXTENSION_DATA_LIMIT; dataOffset = SHAPEEXTENSION_DATA_OFFSET; diff --git a/nxcomp/ShapeExtension.h b/nxcomp/ShapeExtension.h index 32c3b55ef..41fe48113 100644 --- a/nxcomp/ShapeExtension.h +++ b/nxcomp/ShapeExtension.h @@ -37,7 +37,6 @@ #define SHAPEEXTENSION_ENABLE_CACHE 1 #define SHAPEEXTENSION_ENABLE_DATA 1 #define SHAPEEXTENSION_ENABLE_SPLIT 0 -#define SHAPEEXTENSION_ENABLE_COMPRESS 1 #define SHAPEEXTENSION_DATA_LIMIT 3200 #define SHAPEEXTENSION_DATA_OFFSET 20 diff --git a/nxcomp/Split.cpp b/nxcomp/Split.cpp index 35a4ed4a2..607544312 100644 --- a/nxcomp/Split.cpp +++ b/nxcomp/Split.cpp @@ -748,27 +748,8 @@ int SplitStore::start(DecodeBuffer &decodeBuffer) // Get the compressed size. // - if (control -> isProtoStep7() == 1) - { - decodeBuffer.decodeValue(compressedSize, 32, 14); - } - else - { - // - // As we can't refuse to handle the decoding - // of the split message when connected to an - // old proxy version, we need to decode this - // in a way that is compatible. - // - - unsigned int diffSize; - - decodeBuffer.decodeValue(diffSize, 32, 14); - - split -> store_ -> lastResize += diffSize; - - compressedSize = split -> store_ -> lastResize; - } + // Since ProtoStep7 (#issue 108) + decodeBuffer.decodeValue(compressedSize, 32, 14); split -> store_ -> validateSize(split -> d_size_, compressedSize); diff --git a/nxcomp/Types.h b/nxcomp/Types.h index b7506124e..f4a3eb399 100644 --- a/nxcomp/Types.h +++ b/nxcomp/Types.h @@ -199,18 +199,18 @@ T_buffer; // received at the decoding side. // +// Since ProtoStep8 (#issue 108) enum T_store_action { is_hit, is_added, is_discarded, - is_removed, - is_added_compat = 0, - is_hit_compat = 1 + is_removed }; -#define IS_HIT (control -> isProtoStep8() == 1 ? is_hit : is_hit_compat) -#define IS_ADDED (control -> isProtoStep8() == 1 ? is_added : is_added_compat) +// Since ProtoStep8 (#issue 108) +#define IS_HIT is_hit +#define IS_ADDED is_added enum T_checksum_action { -- cgit v1.2.3 From 134648169cd0a9359e1a8a31a5bb55a307b0a801 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Tue, 12 Apr 2016 16:03:37 +0200 Subject: Remove obsolete compatibility files from nxcomp This commit removes obsolete compatibility files whose components were only used to handle compatibility with old protocol versions that are no longer supported. Refs: ArcticaProject/nx-libs#108 --- debian/copyright.in | 23 -- nxcomp/ActionCacheCompat.h | 45 --- nxcomp/ChangeGCCompat.cpp | 131 ------- nxcomp/ChangeGCCompat.h | 170 ---------- nxcomp/CreatePixmapCompat.cpp | 272 --------------- nxcomp/CreatePixmapCompat.h | 154 --------- nxcomp/Makefile.in | 13 +- nxcomp/PositionCacheCompat.cpp | 28 -- nxcomp/PositionCacheCompat.h | 41 --- nxcomp/RenderCompositeCompat.cpp | 320 ------------------ nxcomp/RenderCompositeCompat.h | 80 ----- nxcomp/RenderCompositeGlyphsCompat.cpp | 602 --------------------------------- nxcomp/RenderCompositeGlyphsCompat.h | 80 ----- nxcomp/RenderCreateGlyphSetCompat.cpp | 231 ------------- nxcomp/RenderCreateGlyphSetCompat.h | 80 ----- nxcomp/RenderCreatePictureCompat.cpp | 262 -------------- nxcomp/RenderCreatePictureCompat.h | 80 ----- nxcomp/RenderExtension.h | 7 - nxcomp/RenderFreePictureCompat.cpp | 158 --------- nxcomp/RenderFreePictureCompat.h | 80 ----- nxcomp/RenderPictureClipCompat.cpp | 237 ------------- nxcomp/RenderPictureClipCompat.h | 80 ----- nxcomp/SetUnpackAlphaCompat.cpp | 250 -------------- nxcomp/SetUnpackAlphaCompat.h | 149 -------- nxcomp/SetUnpackColormapCompat.cpp | 262 -------------- nxcomp/SetUnpackColormapCompat.h | 149 -------- 26 files changed, 1 insertion(+), 3983 deletions(-) delete mode 100644 nxcomp/ActionCacheCompat.h delete mode 100644 nxcomp/ChangeGCCompat.cpp delete mode 100644 nxcomp/ChangeGCCompat.h delete mode 100644 nxcomp/CreatePixmapCompat.cpp delete mode 100644 nxcomp/CreatePixmapCompat.h delete mode 100644 nxcomp/PositionCacheCompat.cpp delete mode 100644 nxcomp/PositionCacheCompat.h delete mode 100644 nxcomp/RenderCompositeCompat.cpp delete mode 100644 nxcomp/RenderCompositeCompat.h delete mode 100644 nxcomp/RenderCompositeGlyphsCompat.cpp delete mode 100644 nxcomp/RenderCompositeGlyphsCompat.h delete mode 100644 nxcomp/RenderCreateGlyphSetCompat.cpp delete mode 100644 nxcomp/RenderCreateGlyphSetCompat.h delete mode 100644 nxcomp/RenderCreatePictureCompat.cpp delete mode 100644 nxcomp/RenderCreatePictureCompat.h delete mode 100644 nxcomp/RenderFreePictureCompat.cpp delete mode 100644 nxcomp/RenderFreePictureCompat.h delete mode 100644 nxcomp/RenderPictureClipCompat.cpp delete mode 100644 nxcomp/RenderPictureClipCompat.h delete mode 100644 nxcomp/SetUnpackAlphaCompat.cpp delete mode 100644 nxcomp/SetUnpackAlphaCompat.h delete mode 100644 nxcomp/SetUnpackColormapCompat.cpp delete mode 100644 nxcomp/SetUnpackColormapCompat.h (limited to 'nxcomp') diff --git a/debian/copyright.in b/debian/copyright.in index 854ab4e73..8f85b292f 100644 --- a/debian/copyright.in +++ b/debian/copyright.in @@ -923,7 +923,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nx-X11/programs/Xserver/hw/nxagent/Windows.h nxcomp/ActionCache.cpp nxcomp/ActionCache.h - nxcomp/ActionCacheCompat.h nxcomp/Agent.cpp nxcomp/Agent.h nxcomp/Alpha.cpp @@ -938,8 +937,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/BlockCacheSet.h nxcomp/ChangeGC.cpp nxcomp/ChangeGC.h - nxcomp/ChangeGCCompat.cpp - nxcomp/ChangeGCCompat.h nxcomp/ChangeProperty.cpp nxcomp/ChangeProperty.h nxcomp/Channel.cpp @@ -974,8 +971,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/CreateGC.h nxcomp/CreatePixmap.cpp nxcomp/CreatePixmap.h - nxcomp/CreatePixmapCompat.cpp - nxcomp/CreatePixmapCompat.h nxcomp/DecodeBuffer.cpp nxcomp/DecodeBuffer.h nxcomp/EncodeBuffer.cpp @@ -1053,8 +1048,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/PolyText16.h nxcomp/PolyText8.cpp nxcomp/PolyText8.h - nxcomp/PositionCacheCompat.cpp - nxcomp/PositionCacheCompat.h nxcomp/Proxy.cpp nxcomp/Proxy.h nxcomp/ProxyReadBuffer.cpp @@ -1073,20 +1066,12 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/RenderChangePicture.h nxcomp/RenderComposite.cpp nxcomp/RenderComposite.h - nxcomp/RenderCompositeCompat.cpp - nxcomp/RenderCompositeCompat.h nxcomp/RenderCompositeGlyphs.cpp nxcomp/RenderCompositeGlyphs.h - nxcomp/RenderCompositeGlyphsCompat.cpp - nxcomp/RenderCompositeGlyphsCompat.h nxcomp/RenderCreateGlyphSet.cpp nxcomp/RenderCreateGlyphSet.h - nxcomp/RenderCreateGlyphSetCompat.cpp - nxcomp/RenderCreateGlyphSetCompat.h nxcomp/RenderCreatePicture.cpp nxcomp/RenderCreatePicture.h - nxcomp/RenderCreatePictureCompat.cpp - nxcomp/RenderCreatePictureCompat.h nxcomp/RenderExtension.cpp nxcomp/RenderExtension.h nxcomp/RenderFillRectangles.cpp @@ -1095,8 +1080,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/RenderFreeGlyphSet.h nxcomp/RenderFreePicture.cpp nxcomp/RenderFreePicture.h - nxcomp/RenderFreePictureCompat.cpp - nxcomp/RenderFreePictureCompat.h nxcomp/RenderGenericRequest.cpp nxcomp/RenderGenericRequest.h nxcomp/RenderMinorExtensionHeaders.h @@ -1104,8 +1087,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/RenderMinorExtensionTags.h nxcomp/RenderPictureClip.cpp nxcomp/RenderPictureClip.h - nxcomp/RenderPictureClipCompat.cpp - nxcomp/RenderPictureClipCompat.h nxcomp/RenderPictureFilter.cpp nxcomp/RenderPictureFilter.h nxcomp/RenderPictureTransform.cpp @@ -1136,12 +1117,8 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/SetClipRectangles.h nxcomp/SetUnpackAlpha.cpp nxcomp/SetUnpackAlpha.h - nxcomp/SetUnpackAlphaCompat.cpp - nxcomp/SetUnpackAlphaCompat.h nxcomp/SetUnpackColormap.cpp nxcomp/SetUnpackColormap.h - nxcomp/SetUnpackColormapCompat.cpp - nxcomp/SetUnpackColormapCompat.h nxcomp/SetUnpackGeometry.cpp nxcomp/SetUnpackGeometry.h nxcomp/ShapeExtension.cpp diff --git a/nxcomp/ActionCacheCompat.h b/nxcomp/ActionCacheCompat.h deleted file mode 100644 index 8281db826..000000000 --- a/nxcomp/ActionCacheCompat.h +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef ActionCacheCompat_H -#define ActionCacheCompat_H - -#include "CharCache.h" - -class ActionCacheCompat -{ - friend class EncodeBuffer; - friend class DecodeBuffer; - - public: - - ActionCacheCompat() - { - slot_ = 0; - } - - ~ActionCacheCompat() - { - } - - private: - - CharCache base_[4]; - unsigned char slot_; -}; - -#endif /* ActionCacheCompat_H */ diff --git a/nxcomp/ChangeGCCompat.cpp b/nxcomp/ChangeGCCompat.cpp deleted file mode 100644 index ca2973774..000000000 --- a/nxcomp/ChangeGCCompat.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#include "ChangeGCCompat.h" - -#include "ClientCache.h" - -#include "EncodeBuffer.h" -#include "DecodeBuffer.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Here are the methods to handle messages' content. -// - -int ChangeGCCompatStore::parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - ChangeGCCompatMessage *changeGC = (ChangeGCCompatMessage *) message; - - // - // Here is the fingerprint. - // - - changeGC -> gcontext = GetULONG(buffer + 4, bigEndian); - changeGC -> value_mask = GetULONG(buffer + 8, bigEndian); - - // - // Clear the unused bytes carried in the - // payload to increase the effectiveness - // of the caching algorithm. - // - - if ((int) size > dataOffset) - { - #ifdef DEBUG - *logofs << name() << ": Removing unused bytes from the " - << "data payload.\n" << logofs_flush; - #endif - - changeGC -> value_mask &= (1 << 23) - 1; - - unsigned int mask = 0x1; - unsigned char *source = (unsigned char *) buffer + CHANGEGC_DATA_OFFSET; - unsigned long value = 0; - - for (unsigned int i = 0; i < 23; i++) - { - if (changeGC -> value_mask & mask) - { - value = GetULONG(source, bigEndian); - - value &= (0xffffffff >> (32 - CREATEGC_FIELD_WIDTH[i])); - - PutULONG(value, source, bigEndian); - - source += 4; - } - - mask <<= 1; - } - } - - #ifdef DEBUG - *logofs << name() << ": Parsed Identity for message at " - << this << ".\n" << logofs_flush; - #endif - - return 1; -} - -int ChangeGCCompatStore::unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - ChangeGCCompatMessage *changeGC = (ChangeGCCompatMessage *) message; - - // - // Fill all the message's fields. - // - - PutULONG(changeGC -> gcontext, buffer + 4, bigEndian); - PutULONG(changeGC -> value_mask, buffer + 8, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Unparsed identity for message at " - << this << ".\n" << logofs_flush; - #endif - - return 1; -} - -void ChangeGCCompatStore::dumpIdentity(const Message *message) const -{ - #ifdef DUMP - - ChangeGCCompatMessage *changeGC = (ChangeGCCompatMessage *) message; - - *logofs << name() << ": Identity gcontext " << changeGC -> gcontext - << ", mask " << changeGC -> value_mask << ", size " - << changeGC -> size_ << ".\n" << logofs_flush; - #endif -} - -void ChangeGCCompatStore::identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - md5_append(md5_state_, buffer + 4, 8); -} diff --git a/nxcomp/ChangeGCCompat.h b/nxcomp/ChangeGCCompat.h deleted file mode 100644 index 3a7b0c0a9..000000000 --- a/nxcomp/ChangeGCCompat.h +++ /dev/null @@ -1,170 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef ChangeGCCompat_H -#define ChangeGCCompat_H - -#include "Message.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Set default values. -// - -#define CHANGEGC_ENABLE_CACHE 1 -#define CHANGEGC_ENABLE_DATA 0 -#define CHANGEGC_ENABLE_SPLIT 0 -#define CHANGEGC_ENABLE_COMPRESS 0 - -#define CHANGEGC_DATA_LIMIT 144 -#define CHANGEGC_DATA_OFFSET 12 - -#define CHANGEGC_CACHE_SLOTS 3000 -#define CHANGEGC_CACHE_THRESHOLD 3 -#define CHANGEGC_CACHE_LOWER_THRESHOLD 1 - -// -// The message class. -// - -class ChangeGCCompatMessage : public Message -{ - friend class ChangeGCCompatStore; - - public: - - ChangeGCCompatMessage() - { - } - - ~ChangeGCCompatMessage() - { - } - - // - // Put here the fields which constitute - // the 'identity' part of the message. - // - - private: - - unsigned int gcontext; - unsigned int value_mask; -}; - -class ChangeGCCompatStore : public MessageStore -{ - // - // Constructors and destructors. - // - - public: - - ChangeGCCompatStore() : MessageStore() - { - enableCache = CHANGEGC_ENABLE_CACHE; - enableData = CHANGEGC_ENABLE_DATA; - enableSplit = CHANGEGC_ENABLE_SPLIT; - enableCompress = CHANGEGC_ENABLE_COMPRESS; - - dataLimit = CHANGEGC_DATA_LIMIT; - dataOffset = CHANGEGC_DATA_OFFSET; - - cacheSlots = CHANGEGC_CACHE_SLOTS; - cacheThreshold = CHANGEGC_CACHE_THRESHOLD; - cacheLowerThreshold = CHANGEGC_CACHE_LOWER_THRESHOLD; - - messages_ -> resize(cacheSlots); - - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - *i = NULL; - } - - temporary_ = NULL; - } - - virtual ~ChangeGCCompatStore() - { - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - destroy(*i); - } - - destroy(temporary_); - } - - virtual const char *name() const - { - return "ChangeGCCompat"; - } - - virtual unsigned char opcode() const - { - return X_ChangeGC; - } - - virtual unsigned int storage() const - { - return sizeof(ChangeGCCompatMessage); - } - - // - // Message handling methods. - // - - public: - - virtual Message *create() const - { - return new ChangeGCCompatMessage(); - } - - virtual Message *create(const Message &message) const - { - return new ChangeGCCompatMessage((const ChangeGCCompatMessage &) message); - } - - virtual void destroy(Message *message) const - { - delete (ChangeGCCompatMessage *) message; - } - - virtual int parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual int unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void dumpIdentity(const Message *message) const; -}; - -#endif /* ChangeGCCompat_H */ diff --git a/nxcomp/CreatePixmapCompat.cpp b/nxcomp/CreatePixmapCompat.cpp deleted file mode 100644 index 6ea346ee1..000000000 --- a/nxcomp/CreatePixmapCompat.cpp +++ /dev/null @@ -1,272 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#include "CreatePixmapCompat.h" - -#include "ClientCache.h" - -#include "EncodeBuffer.h" -#include "DecodeBuffer.h" - -#include "WriteBuffer.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -// -// Constructors and destructors. -// - -CreatePixmapCompatStore::CreatePixmapCompatStore() - - : MessageStore() -{ - enableCache = CREATEPIXMAP_ENABLE_CACHE; - enableData = CREATEPIXMAP_ENABLE_DATA; - enableSplit = CREATEPIXMAP_ENABLE_SPLIT; - enableCompress = CREATEPIXMAP_ENABLE_COMPRESS; - - dataLimit = CREATEPIXMAP_DATA_LIMIT; - dataOffset = CREATEPIXMAP_DATA_OFFSET; - - cacheSlots = CREATEPIXMAP_CACHE_SLOTS; - cacheThreshold = CREATEPIXMAP_CACHE_THRESHOLD; - cacheLowerThreshold = CREATEPIXMAP_CACHE_LOWER_THRESHOLD; - - messages_ -> resize(cacheSlots); - - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - *i = NULL; - } - - temporary_ = NULL; -} - -CreatePixmapCompatStore::~CreatePixmapCompatStore() -{ - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - destroy(*i); - } - - destroy(temporary_); -} - -// -// Here are the methods to handle messages' content. -// - -int CreatePixmapCompatStore::encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer, - const unsigned int size, int bigEndian, - ChannelCache *channelCache) const -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeCachedValue(*(buffer + 1), 8, - clientCache -> depthCache); - - encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian), - clientCache -> createPixmapLastId, 29, - clientCache -> createPixmapIdCache, 4); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian), - clientCache -> drawableCache); - - encodeBuffer.encodeCachedValue(GetUINT(buffer + 12, bigEndian), 16, - clientCache -> createPixmapXCache, 8); - - encodeBuffer.encodeCachedValue(GetUINT(buffer + 14, bigEndian), 16, - clientCache -> createPixmapYCache, 8); - - #ifdef TEST - *logofs << name() << ": Encoded message. Size is " - << size << ".\n" << logofs_flush; - #endif - - return 1; -} - -int CreatePixmapCompatStore::decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer, - unsigned int &size, int bigEndian, WriteBuffer *writeBuffer, - ChannelCache *channelCache) const -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned char cValue; - unsigned int value; - - size = 16; - - buffer = writeBuffer -> addMessage(size); - - decodeBuffer.decodeCachedValue(cValue, 8, - clientCache -> depthCache); - - *(buffer + 1) = cValue; - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> createPixmapLastId, 29, - clientCache -> createPixmapIdCache, 4); - - PutULONG(value, buffer + 4, bigEndian); - - decodeBuffer.decodeXidValue(value, - clientCache -> drawableCache); - - PutULONG(value, buffer + 8, bigEndian); - - decodeBuffer.decodeCachedValue(value, 16, - clientCache -> createPixmapXCache, 8); - - PutUINT(value, buffer + 12, bigEndian); - - decodeBuffer.decodeCachedValue(value, 16, - clientCache -> createPixmapYCache, 8); - - PutUINT(value, buffer + 14, bigEndian); - - #ifdef TEST - *logofs << name() << ": Decoded message. Size is " - << size << ".\n" << logofs_flush; - #endif - - return 1; -} - -int CreatePixmapCompatStore::parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message; - - createPixmap -> depth = *(buffer + 1); - - createPixmap -> id = GetULONG(buffer + 4, bigEndian); - createPixmap -> drawable = GetULONG(buffer + 8, bigEndian); - - createPixmap -> width = GetUINT(buffer + 12, bigEndian); - createPixmap -> height = GetUINT(buffer + 14, bigEndian); - - #ifdef TEST - *logofs << name() << ": Parsed identity. Size is " - << createPixmap -> size_ << " identity is " - << createPixmap -> i_size_ << ".\n" - << logofs_flush; - #endif - - return 1; -} - -int CreatePixmapCompatStore::unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message; - - *(buffer + 1) = createPixmap -> depth; - - PutULONG(createPixmap -> id, buffer + 4, bigEndian); - PutULONG(createPixmap -> drawable, buffer + 8, bigEndian); - - PutUINT(createPixmap -> width, buffer + 12, bigEndian); - PutUINT(createPixmap -> height, buffer + 14, bigEndian); - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Size is " - << createPixmap -> size_ << " identity is " - << createPixmap -> i_size_ << ".\n" - << logofs_flush; - #endif - - return 1; -} - -void CreatePixmapCompatStore::dumpIdentity(const Message *message) const -{ - #ifdef DUMP - - #ifdef WARNING - *logofs << name() << ": WARNING! Dump of identity not implemented.\n" - << logofs_flush; - #endif - - #endif -} - -void CreatePixmapCompatStore::identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - md5_append(md5_state_, buffer + 1, 1); - md5_append(md5_state_, buffer + 8, 8); -} - -void CreatePixmapCompatStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, - const Message *cachedMessage, - ChannelCache *channelCache) const -{ - CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message; - CreatePixmapCompatMessage *cachedCreatePixmap = (CreatePixmapCompatMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeDiffCachedValue(createPixmap -> id, - clientCache -> createPixmapLastId, 29, - clientCache -> createPixmapIdCache, 4); - - cachedCreatePixmap -> id = createPixmap -> id; - - encodeBuffer.encodeXidValue(createPixmap -> drawable, - clientCache -> drawableCache); - - cachedCreatePixmap -> drawable = createPixmap -> drawable; - - #ifdef TEST - *logofs << name() << ": Encoded update. Size is " - << createPixmap -> size_ << " identity is " - << createPixmap -> i_size_ << ".\n" - << logofs_flush; - #endif -} - -void CreatePixmapCompatStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, - ChannelCache *channelCache) const -{ - CreatePixmapCompatMessage *createPixmap = (CreatePixmapCompatMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeDiffCachedValue(createPixmap -> id, - clientCache -> createPixmapLastId, 29, - clientCache -> createPixmapIdCache, 4); - - decodeBuffer.decodeXidValue(createPixmap -> drawable, - clientCache -> drawableCache); - - #ifdef TEST - *logofs << name() << ": Decoded update. Size is " - << createPixmap -> size_ << " identity is " - << createPixmap -> i_size_ << ".\n" - << logofs_flush; - #endif -} diff --git a/nxcomp/CreatePixmapCompat.h b/nxcomp/CreatePixmapCompat.h deleted file mode 100644 index e8cf8d99f..000000000 --- a/nxcomp/CreatePixmapCompat.h +++ /dev/null @@ -1,154 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef CreatePixmapCompat_H -#define CreatePixmapCompat_H - -#include "Message.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Set default values. -// - -#define CREATEPIXMAP_ENABLE_CACHE 1 -#define CREATEPIXMAP_ENABLE_DATA 0 -#define CREATEPIXMAP_ENABLE_SPLIT 0 -#define CREATEPIXMAP_ENABLE_COMPRESS 0 - -#define CREATEPIXMAP_DATA_LIMIT 16 -#define CREATEPIXMAP_DATA_OFFSET 16 - -#define CREATEPIXMAP_CACHE_SLOTS 1000 -#define CREATEPIXMAP_CACHE_THRESHOLD 2 -#define CREATEPIXMAP_CACHE_LOWER_THRESHOLD 1 - -// -// The message class. -// - -class CreatePixmapCompatMessage : public Message -{ - friend class CreatePixmapCompatStore; - - public: - - CreatePixmapCompatMessage() - { - } - - ~CreatePixmapCompatMessage() - { - } - - // - // Put here the fields which constitute - // the 'identity' part of the message. - // - - private: - - unsigned char depth; - - unsigned int id; - unsigned int drawable; - - unsigned short width; - unsigned short height; -}; - -class CreatePixmapCompatStore : public MessageStore -{ - public: - - CreatePixmapCompatStore(); - - virtual ~CreatePixmapCompatStore(); - - virtual const char *name() const - { - return "CreatePixmapCompat"; - } - - virtual unsigned char opcode() const - { - return X_CreatePixmap; - } - - virtual unsigned int storage() const - { - return sizeof(CreatePixmapCompatMessage); - } - - // - // Message handling methods. - // - - protected: - - virtual Message *create() const - { - return new CreatePixmapCompatMessage(); - } - - virtual Message *create(const Message &message) const - { - return new CreatePixmapCompatMessage((const CreatePixmapCompatMessage &) message); - } - - virtual void destroy(Message *message) const - { - delete (CreatePixmapCompatMessage *) message; - } - - virtual int encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer, - const unsigned int size, int bigEndian, - ChannelCache *channelCache) const; - - virtual int decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer, - unsigned int &size, int bigEndian, WriteBuffer *writeBuffer, - ChannelCache *channelCache) const; - - virtual int parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual int unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, - const Message *cachedMessage, - ChannelCache *channelCache) const; - - virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, - ChannelCache *channelCache) const; - - virtual void identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void dumpIdentity(const Message *message) const; -}; - -#endif /* CreatePixmapCompat_H */ diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index d309c4949..93b644079 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -226,18 +226,7 @@ CXXSRC = Loop.cpp \ RenderCompositeGlyphs.cpp \ RenderFillRectangles.cpp \ RenderTrapezoids.cpp \ - RenderTriangles.cpp \ - PositionCacheCompat.cpp \ - ChangeGCCompat.cpp \ - CreatePixmapCompat.cpp \ - SetUnpackColormapCompat.cpp \ - SetUnpackAlphaCompat.cpp \ - RenderCreatePictureCompat.cpp \ - RenderFreePictureCompat.cpp \ - RenderPictureClipCompat.cpp \ - RenderCreateGlyphSetCompat.cpp \ - RenderCompositeCompat.cpp \ - RenderCompositeGlyphsCompat.cpp + RenderTriangles.cpp MOBJ = $(MSRC:.c=.o) COBJ = $(CSRC:.c=.o) diff --git a/nxcomp/PositionCacheCompat.cpp b/nxcomp/PositionCacheCompat.cpp deleted file mode 100644 index dd301a0a4..000000000 --- a/nxcomp/PositionCacheCompat.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#include "Control.h" - -#include "PositionCacheCompat.h" - -PositionCacheCompat::PositionCacheCompat() -{ -} - -PositionCacheCompat::~PositionCacheCompat() -{ -} diff --git a/nxcomp/PositionCacheCompat.h b/nxcomp/PositionCacheCompat.h deleted file mode 100644 index 983e45382..000000000 --- a/nxcomp/PositionCacheCompat.h +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef PositionCacheCompat_H -#define PositionCacheCompat_H - -#include "IntCache.h" - -class PositionCacheCompat -{ - friend class EncodeBuffer; - friend class DecodeBuffer; - - public: - - PositionCacheCompat(); - ~PositionCacheCompat(); - - private: - - IntCache *base_[32]; - - unsigned int slot_; - short int last_; -}; - -#endif /* PositionCacheCompat_H */ diff --git a/nxcomp/RenderCompositeCompat.cpp b/nxcomp/RenderCompositeCompat.cpp deleted file mode 100644 index 5a1eff213..000000000 --- a/nxcomp/RenderCompositeCompat.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -// -// Include the template for -// this message class. -// - -#include "RenderCompositeCompat.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -#include MESSAGE_TAGS - -// -// Message handling methods. -// - -MESSAGE_BEGIN_ENCODE_SIZE -{ - // - // Strictly speaking this request doesn't have - // a data part. We just encode the field from - // offset 24 to 36 as they were data using an - // int cache. - // - - #ifdef TEST - *logofs << name() << ": Encoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_SIZE - -MESSAGE_BEGIN_DECODE_SIZE -{ - size = MESSAGE_OFFSET + 12; - - buffer = writeBuffer -> addMessage(size); - - #ifdef TEST - *logofs << name() << ": Decoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_SIZE - -MESSAGE_BEGIN_ENCODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeCachedValue(*(buffer + 4), 8, - clientCache -> renderOpCache); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian), - clientCache -> renderSrcPictureCache); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 12, bigEndian), - clientCache -> renderSrcPictureCache); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 16, bigEndian), - clientCache -> renderSrcPictureCache); - - encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 20, bigEndian), - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); - - encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 22, bigEndian), - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - - #ifdef TEST - *logofs << name() << ": Encoded message. Type is " - << (unsigned int) *(buffer + 1) << " size is " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_MESSAGE - -MESSAGE_BEGIN_DECODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - *(buffer + 1) = type; - - decodeBuffer.decodeCachedValue(*(buffer + 4), 8, - clientCache -> renderOpCache); - - decodeBuffer.decodeXidValue(value, clientCache -> renderSrcPictureCache); - - PutULONG(value, buffer + 8, bigEndian); - - decodeBuffer.decodeXidValue(value, clientCache -> renderSrcPictureCache); - - PutULONG(value, buffer + 12, bigEndian); - - decodeBuffer.decodeXidValue(value, clientCache -> renderSrcPictureCache); - - PutULONG(value, buffer + 16, bigEndian); - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); - - PutUINT(clientCache -> renderLastX, buffer + 20, bigEndian); - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - - PutUINT(clientCache -> renderLastY, buffer + 22, bigEndian); - - #ifdef TEST - *logofs << name() << ": Decoded message. Type is " - << (unsigned int) type << " size is " << size - << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_MESSAGE - -MESSAGE_BEGIN_ENCODE_DATA -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - for (unsigned int i = MESSAGE_OFFSET, c = 0; i < size; i += 4) - { - #ifdef DEBUG - *logofs << name() << ": Encoding long value " - << GetULONG(buffer + i, bigEndian) << " with i = " - << i << " c = " << c << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue(GetULONG(buffer + i, bigEndian), 32, - *clientCache -> renderCompositeDataCache[c]); - - if (++c == 3) c = 0; - } - - #ifdef TEST - *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_DATA - -MESSAGE_BEGIN_DECODE_DATA -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - for (unsigned int i = MESSAGE_OFFSET, c = 0; i < size; i += 4) - { - decodeBuffer.decodeCachedValue(value, 32, - *clientCache -> renderCompositeDataCache[c]); - - #ifdef DEBUG - *logofs << name() << ": Decoded long value " << value - << " with i = " << i << " c = " << c << ".\n" - << logofs_flush; - #endif - - PutULONG(value, buffer + i, bigEndian); - - if (++c == 3) c = 0; - } - - #ifdef TEST - *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_DATA - -MESSAGE_BEGIN_PARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - renderExtension -> data.composite.type = *(buffer + 1); - renderExtension -> data.composite.op = *(buffer + 4); - - renderExtension -> data.composite.src_id = GetULONG(buffer + 8, bigEndian); - renderExtension -> data.composite.msk_id = GetULONG(buffer + 12, bigEndian); - renderExtension -> data.composite.dst_id = GetULONG(buffer + 16, bigEndian); - - renderExtension -> data.composite.src_x = GetUINT(buffer + 20, bigEndian); - renderExtension -> data.composite.src_y = GetUINT(buffer + 22, bigEndian); - - #ifdef TEST - *logofs << name() << ": Parsed identity. Type is " - << (unsigned int) renderExtension -> data.composite.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_PARSE_IDENTITY - -MESSAGE_BEGIN_UNPARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - *(buffer + 1) = renderExtension -> data.composite.type; - *(buffer + 4) = renderExtension -> data.composite.op; - - PutULONG(renderExtension -> data.composite.src_id, buffer + 8, bigEndian); - PutULONG(renderExtension -> data.composite.msk_id, buffer + 12, bigEndian); - PutULONG(renderExtension -> data.composite.dst_id, buffer + 16, bigEndian); - - PutUINT(renderExtension -> data.composite.src_x, buffer + 20, bigEndian); - PutUINT(renderExtension -> data.composite.src_y, buffer + 22, bigEndian); - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Type is " - << (unsigned int) renderExtension -> data.composite.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_UNPARSE_IDENTITY - -MESSAGE_BEGIN_IDENTITY_CHECKSUM -{ - // - // Include minor opcode, size and - // operator in the identity, plus - // the x and y of the source. - // - - md5_append(md5_state, buffer + 1, 4); - md5_append(md5_state, buffer + 20, 4); -} -MESSAGE_END_IDENTITY_CHECKSUM - -MESSAGE_BEGIN_ENCODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef DEBUG - *logofs << name() << ": Source " << renderExtension -> - data.composite.src_id << " mask " << renderExtension -> - data.composite.msk_id << " destination " << renderExtension -> - data.composite.msk_id << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeXidValue(renderExtension -> data.composite.src_id, - clientCache -> renderSrcPictureCache); - - cachedRenderExtension -> data.composite.src_id = - renderExtension -> data.composite.src_id; - - encodeBuffer.encodeXidValue(renderExtension -> data.composite.msk_id, - clientCache -> renderSrcPictureCache); - - cachedRenderExtension -> data.composite.msk_id = - renderExtension -> data.composite.msk_id; - - encodeBuffer.encodeXidValue(renderExtension -> data.composite.dst_id, - clientCache -> renderSrcPictureCache); - - cachedRenderExtension -> data.composite.dst_id = - renderExtension -> data.composite.dst_id; - - #ifdef TEST - *logofs << name() << ": Encoded update. Type is " - << (unsigned int) renderExtension -> data.composite.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_UPDATE - -MESSAGE_BEGIN_DECODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeXidValue(renderExtension -> data.composite.src_id, - clientCache -> renderSrcPictureCache); - - decodeBuffer.decodeXidValue(renderExtension -> data.composite.msk_id, - clientCache -> renderSrcPictureCache); - - decodeBuffer.decodeXidValue(renderExtension -> data.composite.dst_id, - clientCache -> renderSrcPictureCache); - - #ifdef TEST - *logofs << name() << ": Decoded update. Type is " - << (unsigned int) renderExtension -> data.composite.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_DECODE_UPDATE diff --git a/nxcomp/RenderCompositeCompat.h b/nxcomp/RenderCompositeCompat.h deleted file mode 100644 index a26db35ba..000000000 --- a/nxcomp/RenderCompositeCompat.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef RenderCompositeCompat_H -#define RenderCompositeCompat_H - -// -// Define the characteristics -// of this message class here. -// - -#undef MESSAGE_NAME -#define MESSAGE_NAME "RenderCompositeCompat" - -#undef MESSAGE_STORE -#define MESSAGE_STORE RenderCompositeCompatStore - -#undef MESSAGE_CLASS -#define MESSAGE_CLASS RenderMinorExtensionStore - -#undef MESSAGE_METHODS -#define MESSAGE_METHODS "RenderMinorExtensionMethods.h" - -#undef MESSAGE_HEADERS -#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h" - -#undef MESSAGE_TAGS -#define MESSAGE_TAGS "RenderMinorExtensionTags.h" - -#undef MESSAGE_OFFSET -#define MESSAGE_OFFSET 24 - -#undef MESSAGE_HAS_SIZE -#define MESSAGE_HAS_SIZE 1 - -#undef MESSAGE_HAS_DATA -#define MESSAGE_HAS_DATA 1 - -#undef MESSAGE_HAS_FILTER -#define MESSAGE_HAS_FILTER 0 - -// -// Declare the message class. -// - -#include MESSAGE_HEADERS - -class MESSAGE_STORE : public MESSAGE_CLASS -{ - public: - - virtual const char *name() const - { - return MESSAGE_NAME; - } - - virtual int identitySize(const unsigned char *buffer, - unsigned int size) - { - return MESSAGE_OFFSET; - } - - #include MESSAGE_METHODS -}; - -#endif /* RenderCompositeCompat_H */ diff --git a/nxcomp/RenderCompositeGlyphsCompat.cpp b/nxcomp/RenderCompositeGlyphsCompat.cpp deleted file mode 100644 index 3fe10fafb..000000000 --- a/nxcomp/RenderCompositeGlyphsCompat.cpp +++ /dev/null @@ -1,602 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -// -// Include the template for -// this message class. -// - -#include "RenderCompositeGlyphsCompat.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -#include MESSAGE_TAGS - -// -// Message handling methods. -// - -MESSAGE_BEGIN_ENCODE_SIZE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - // - // The offset points 8 bytes after - // the beginning of the data part. - // - - #ifdef DEBUG - *logofs << name() << ": Encoding value " - << ((size - (MESSAGE_OFFSET - 8)) >> 2) - << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue((size - (MESSAGE_OFFSET - 8)) >> 2, 16, - clientCache -> renderLengthCache, 5); - - #ifdef TEST - *logofs << name() << ": Encoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_SIZE - -MESSAGE_BEGIN_DECODE_SIZE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeCachedValue(size, 16, - clientCache -> renderLengthCache, 5); - - #ifdef DEBUG - *logofs << name() << ": Decoded value " << size - << ".\n" << logofs_flush; - #endif - - size = (MESSAGE_OFFSET - 8) + (size << 2); - - buffer = writeBuffer -> addMessage(size); - - #ifdef TEST - *logofs << name() << ": Decoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_SIZE - -MESSAGE_BEGIN_ENCODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeCachedValue(*(buffer + 4), 8, - clientCache -> renderOpCache); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian), - clientCache -> renderSrcPictureCache); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 12, bigEndian), - clientCache -> renderSrcPictureCache); - - encodeBuffer.encodeCachedValue(GetULONG(buffer + 16, bigEndian), 32, - clientCache -> renderFormatCache); - - encodeBuffer.encodeCachedValue(GetULONG(buffer + 20, bigEndian), 29, - clientCache -> renderGlyphSetCache); - - encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 24, bigEndian), - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); - - encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 26, bigEndian), - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - - // - // Try to save as many bits as possible by - // encoding the information about the first - // set of glyphs. - // - - if (size >= MESSAGE_OFFSET) - { - unsigned int numGlyphs = *(buffer + 28); - - encodeBuffer.encodeCachedValue(numGlyphs, 8, - clientCache -> renderNumGlyphsCache); - - encodeBuffer.encodeCachedValue(GetUINT(buffer + 32, bigEndian), 16, - clientCache -> renderWidthCache, 11); - - encodeBuffer.encodeCachedValue(GetUINT(buffer + 34, bigEndian), 16, - clientCache -> renderHeightCache, 11); - - // - // Only manage the first set of glyphs, - // that is in most cases the only one. - // - - switch (*(buffer + 1)) - { - case X_RenderCompositeGlyphs8: - { - if (numGlyphs & 0x03) - { - memset((unsigned char *) buffer + MESSAGE_OFFSET + numGlyphs, '\0', - RoundUp4(numGlyphs) - numGlyphs); - } - - break; - } - case X_RenderCompositeGlyphs16: - { - if (numGlyphs & 0x01) - { - memset((unsigned char *) buffer + MESSAGE_OFFSET + (numGlyphs * 2), '\0', - RoundUp4(numGlyphs * 2) - numGlyphs * 2); - } - - break; - } - } - - #ifdef TEST - if (*(buffer + (size - 1)) != '\0') - { - *logofs << name() << ": WARNING! Final byte is non-zero with size " - << size << " and " << (unsigned int) *(buffer + 28) - << " glyphs.\n" << logofs_flush; - } - else - { - *logofs << name() << ": Final byte is zero with size " - << size << " and " << (unsigned int) *(buffer + 28) - << " glyphs.\n" << logofs_flush; - } - #endif - } - - #ifdef TEST - *logofs << name() << ": Encoded message. Type is " - << (unsigned int) *(buffer + 1) << " size is " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_MESSAGE - -MESSAGE_BEGIN_DECODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - *(buffer + 1) = type; - - decodeBuffer.decodeCachedValue(*(buffer + 4), 8, - clientCache -> renderOpCache); - - decodeBuffer.decodeXidValue(value, - clientCache -> renderSrcPictureCache); - - PutULONG(value, buffer + 8, bigEndian); - - decodeBuffer.decodeXidValue(value, - clientCache -> renderSrcPictureCache); - - PutULONG(value, buffer + 12, bigEndian); - - decodeBuffer.decodeCachedValue(value, 32, - clientCache -> renderFormatCache); - - PutULONG(value, buffer + 16, bigEndian); - - decodeBuffer.decodeCachedValue(value, 29, - clientCache -> renderGlyphSetCache); - - PutULONG(value, buffer + 20, bigEndian); - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); - - PutUINT(clientCache -> renderLastX, buffer + 24, bigEndian); - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - - PutUINT(clientCache -> renderLastY, buffer + 26, bigEndian); - - if (size >= MESSAGE_OFFSET) - { - decodeBuffer.decodeCachedValue(value, 8, - clientCache -> renderNumGlyphsCache); - - *(buffer + 28) = value; - - decodeBuffer.decodeCachedValue(value, 16, - clientCache -> renderWidthCache, 11); - - PutUINT(value, buffer + 32, bigEndian); - - decodeBuffer.decodeCachedValue(value, 16, - clientCache -> renderHeightCache, 11); - - PutUINT(value, buffer + 34, bigEndian); - } - - #ifdef TEST - *logofs << name() << ": Decoded message. Type is " - << (unsigned int) type << " size is " << size - << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_MESSAGE - -MESSAGE_BEGIN_ENCODE_DATA -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - switch (*(buffer + 1)) - { - case X_RenderCompositeGlyphs8: - { - clientCache -> renderTextCompressor.reset(); - - const unsigned char *next = buffer + MESSAGE_OFFSET; - - for (unsigned int i = MESSAGE_OFFSET; i < size; i++) - { - #ifdef DEBUG - *logofs << name() << ": Encoding char with i = " << i - << ".\n" << logofs_flush; - #endif - - clientCache -> renderTextCompressor. - encodeChar(*next++, encodeBuffer); - } - - break; - } - case X_RenderCompositeGlyphs16: - { - for (unsigned int i = MESSAGE_OFFSET; i < size; i += 2) - { - value = GetUINT(buffer + i, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Encoding short with i = " << i - << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue(value, 16, - *clientCache -> renderCompositeGlyphsDataCache[clientCache -> - renderLastCompositeGlyphsData]); - - clientCache -> renderLastCompositeGlyphsData = value % 16; - } - - break; - } - default: - { - for (unsigned int i = MESSAGE_OFFSET; i < size; i += 4) - { - value = GetULONG(buffer + i, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Encoding long with i = " << i - << ".\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue(value, 32, - *clientCache -> renderCompositeGlyphsDataCache[clientCache -> - renderLastCompositeGlyphsData]); - - clientCache -> renderLastCompositeGlyphsData = value % 16; - } - - break; - } - } - - #ifdef TEST - *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_DATA - -MESSAGE_BEGIN_DECODE_DATA -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - switch (*(buffer + 1)) - { - case X_RenderCompositeGlyphs8: - { - clientCache -> renderTextCompressor.reset(); - - unsigned char *next = buffer + MESSAGE_OFFSET; - - for (unsigned int i = MESSAGE_OFFSET; i < size; i++) - { - #ifdef DEBUG - *logofs << name() << ": Decoding char with i = " << i - << ".\n" << logofs_flush; - #endif - - *next++ = clientCache -> renderTextCompressor. - decodeChar(decodeBuffer); - } - - break; - } - case X_RenderCompositeGlyphs16: - { - for (unsigned int i = MESSAGE_OFFSET; i < size; i += 2) - { - #ifdef DEBUG - *logofs << name() << ": Decoding short with i = " << i - << ".\n" << logofs_flush; - #endif - - decodeBuffer.decodeCachedValue(value, 16, - *clientCache -> renderCompositeGlyphsDataCache[clientCache -> - renderLastCompositeGlyphsData]); - - PutUINT(value, buffer + i, bigEndian); - - clientCache -> renderLastCompositeGlyphsData = value % 16; - } - - break; - } - default: - { - for (unsigned int i = MESSAGE_OFFSET; i < size; i += 4) - { - #ifdef DEBUG - *logofs << name() << ": Decoding long with i = " << i - << ".\n" << logofs_flush; - #endif - - decodeBuffer.decodeCachedValue(value, 32, - *clientCache -> renderCompositeGlyphsDataCache[clientCache -> - renderLastCompositeGlyphsData]); - - PutULONG(value, buffer + i, bigEndian); - - clientCache -> renderLastCompositeGlyphsData = value % 16; - } - - break; - } - } - - #ifdef TEST - *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_DATA - -MESSAGE_BEGIN_PARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - renderExtension -> data.composite_glyphs_compat.type = *(buffer + 1); - renderExtension -> data.composite_glyphs_compat.op = *(buffer + 4); - - renderExtension -> data.composite_glyphs_compat.src_id = GetULONG(buffer + 8, bigEndian); - renderExtension -> data.composite_glyphs_compat.dst_id = GetULONG(buffer + 12, bigEndian); - - renderExtension -> data.composite_glyphs_compat.format = GetULONG(buffer + 16, bigEndian); - renderExtension -> data.composite_glyphs_compat.set_id = GetULONG(buffer + 20, bigEndian); - - renderExtension -> data.composite_glyphs_compat.src_x = GetUINT(buffer + 24, bigEndian); - renderExtension -> data.composite_glyphs_compat.src_y = GetUINT(buffer + 26, bigEndian); - - if (size >= MESSAGE_OFFSET) - { - renderExtension -> data.composite_glyphs_compat.num_elm = *(buffer + 28); - - renderExtension -> data.composite_glyphs_compat.delta_x = GetUINT(buffer + 32, bigEndian); - renderExtension -> data.composite_glyphs_compat.delta_y = GetUINT(buffer + 34, bigEndian); - } - - #ifdef TEST - *logofs << name() << ": Parsed identity. Type is " - << (unsigned int) renderExtension -> data.composite_glyphs_compat.type - << " size is " << renderExtension -> size_ << " identity size " - << renderExtension -> i_size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_PARSE_IDENTITY - -MESSAGE_BEGIN_UNPARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - *(buffer + 1) = renderExtension -> data.composite_glyphs_compat.type; - *(buffer + 4) = renderExtension -> data.composite_glyphs_compat.op; - - PutULONG(renderExtension -> data.composite_glyphs_compat.src_id, buffer + 8, bigEndian); - PutULONG(renderExtension -> data.composite_glyphs_compat.dst_id, buffer + 12, bigEndian); - - PutULONG(renderExtension -> data.composite_glyphs_compat.format, buffer + 16, bigEndian); - PutULONG(renderExtension -> data.composite_glyphs_compat.set_id, buffer + 20, bigEndian); - - PutUINT(renderExtension -> data.composite_glyphs_compat.src_x, buffer + 24, bigEndian); - PutUINT(renderExtension -> data.composite_glyphs_compat.src_y, buffer + 26, bigEndian); - - if (size >= MESSAGE_OFFSET) - { - *(buffer + 28) = renderExtension -> data.composite_glyphs_compat.num_elm; - - PutUINT(renderExtension -> data.composite_glyphs_compat.delta_x, buffer + 32, bigEndian); - PutUINT(renderExtension -> data.composite_glyphs_compat.delta_y, buffer + 34, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Len is " << (unsigned int) *(buffer + 28) - << " delta X is " << GetUINT(buffer + 32, bigEndian) - << " delta Y is " << GetUINT(buffer + 34, bigEndian) - << ".\n" << logofs_flush; - - *logofs << name() << ": Pad 1 is " << (unsigned int) *(buffer + 29) - << " pad 2 and 3 are " << GetUINT(buffer + 30, bigEndian) - << ".\n" << logofs_flush; - #endif - } - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Type is " - << (unsigned int) renderExtension -> data.composite_glyphs_compat.type - << " size is " << renderExtension -> size_ << " identity size " - << renderExtension -> i_size_ << ".\n" << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_UNPARSE_IDENTITY - -MESSAGE_BEGIN_IDENTITY_CHECKSUM -{ - // - // Include minor opcode, size and - // the composite operator in the - // identity. - // - - md5_append(md5_state, buffer + 1, 4); - - // - // Include the format and the source - // x and y fields. - // - - md5_append(md5_state, buffer + 16, 4); - md5_append(md5_state, buffer + 24, 4); - - // - // Include the number of glyphs. - // - - if (size >= MESSAGE_OFFSET) - { - md5_append(md5_state, buffer + 28, 1); - } -} -MESSAGE_END_IDENTITY_CHECKSUM - -MESSAGE_BEGIN_ENCODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeXidValue(renderExtension -> data.composite_glyphs_compat.src_id, - clientCache -> renderSrcPictureCache); - - cachedRenderExtension -> data.composite_glyphs_compat.src_id = - renderExtension -> data.composite_glyphs_compat.src_id; - - encodeBuffer.encodeXidValue(renderExtension -> data.composite_glyphs_compat.dst_id, - clientCache -> renderSrcPictureCache); - - cachedRenderExtension -> data.composite_glyphs_compat.dst_id = - renderExtension -> data.composite_glyphs_compat.dst_id; - - encodeBuffer.encodeCachedValue(renderExtension -> data.composite_glyphs_compat.set_id, 29, - clientCache -> renderGlyphSetCache); - - cachedRenderExtension -> data.composite_glyphs_compat.set_id = - renderExtension -> data.composite_glyphs_compat.set_id; - - if (renderExtension -> size_ >= MESSAGE_OFFSET) - { - encodeBuffer.encodeCachedValue(renderExtension -> data.composite_glyphs_compat.delta_x, 16, - clientCache -> renderWidthCache, 11); - - cachedRenderExtension -> data.composite_glyphs_compat.delta_x = - renderExtension -> data.composite_glyphs_compat.delta_x; - - encodeBuffer.encodeCachedValue(renderExtension -> data.composite_glyphs_compat.delta_y, 16, - clientCache -> renderHeightCache, 11); - - cachedRenderExtension -> data.composite_glyphs_compat.delta_y = - renderExtension -> data.composite_glyphs_compat.delta_y; - } - - #ifdef TEST - *logofs << name() << ": Encoded update. Type is " - << (unsigned int) renderExtension -> data.composite_glyphs_compat.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_UPDATE - -MESSAGE_BEGIN_DECODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeXidValue(renderExtension -> data.composite_glyphs_compat.src_id, - clientCache -> renderSrcPictureCache); - - decodeBuffer.decodeXidValue(renderExtension -> data.composite_glyphs_compat.dst_id, - clientCache -> renderSrcPictureCache); - - decodeBuffer.decodeCachedValue(renderExtension -> data.composite_glyphs_compat.set_id, 29, - clientCache -> renderGlyphSetCache); - - if (renderExtension -> size_ >= MESSAGE_OFFSET) - { - unsigned int value; - - decodeBuffer.decodeCachedValue(value, 16, - clientCache -> renderWidthCache, 11); - - renderExtension -> data.composite_glyphs_compat.delta_x = value; - - decodeBuffer.decodeCachedValue(value, 16, - clientCache -> renderHeightCache, 11); - - renderExtension -> data.composite_glyphs_compat.delta_y = value; - } - - #ifdef TEST - *logofs << name() << ": Decoded update. Type is " - << (unsigned int) renderExtension -> data.composite_glyphs_compat.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_DECODE_UPDATE diff --git a/nxcomp/RenderCompositeGlyphsCompat.h b/nxcomp/RenderCompositeGlyphsCompat.h deleted file mode 100644 index 7a00608c2..000000000 --- a/nxcomp/RenderCompositeGlyphsCompat.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef RenderCompositeGlyphsCompat_H -#define RenderCompositeGlyphsCompat_H - -// -// Define the characteristics -// of this message class here. -// - -#undef MESSAGE_NAME -#define MESSAGE_NAME "RenderCompositeGlyphsCompat" - -#undef MESSAGE_STORE -#define MESSAGE_STORE RenderCompositeGlyphsCompatStore - -#undef MESSAGE_CLASS -#define MESSAGE_CLASS RenderMinorExtensionStore - -#undef MESSAGE_METHODS -#define MESSAGE_METHODS "RenderMinorExtensionMethods.h" - -#undef MESSAGE_HEADERS -#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h" - -#undef MESSAGE_TAGS -#define MESSAGE_TAGS "RenderMinorExtensionTags.h" - -#undef MESSAGE_OFFSET -#define MESSAGE_OFFSET 36 - -#undef MESSAGE_HAS_SIZE -#define MESSAGE_HAS_SIZE 1 - -#undef MESSAGE_HAS_DATA -#define MESSAGE_HAS_DATA 1 - -#undef MESSAGE_HAS_FILTER -#define MESSAGE_HAS_FILTER 0 - -// -// Declare the message class. -// - -#include MESSAGE_HEADERS - -class MESSAGE_STORE : public MESSAGE_CLASS -{ - public: - - virtual const char *name() const - { - return MESSAGE_NAME; - } - - virtual int identitySize(const unsigned char *buffer, - unsigned int size) - { - return (size >= MESSAGE_OFFSET ? MESSAGE_OFFSET : size); - } - - #include MESSAGE_METHODS -}; - -#endif /* RenderCompositeGlyphsCompat_H */ diff --git a/nxcomp/RenderCreateGlyphSetCompat.cpp b/nxcomp/RenderCreateGlyphSetCompat.cpp deleted file mode 100644 index 49e9f741d..000000000 --- a/nxcomp/RenderCreateGlyphSetCompat.cpp +++ /dev/null @@ -1,231 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -// -// Include the template for -// this message class. -// - -#include "RenderCreateGlyphSetCompat.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -#include MESSAGE_TAGS - -// -// Message handling methods. -// - -MESSAGE_BEGIN_ENCODE_SIZE -{ - // - // Strictly speaking this request doesn't have - // a data part. We encode the fields past the - // offset as they were data. An improvement - // would be to encode the format field using - // the cache. - // - - #ifdef TEST - *logofs << name() << ": Encoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_SIZE - -MESSAGE_BEGIN_DECODE_SIZE -{ - size = MESSAGE_OFFSET + 4; - - buffer = writeBuffer -> addMessage(size); - - #ifdef TEST - *logofs << name() << ": Decoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_SIZE - -MESSAGE_BEGIN_ENCODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian), - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - #ifdef TEST - *logofs << name() << ": Encoded message. Type is " - << (unsigned int) *(buffer + 1) << " size is " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_MESSAGE - -MESSAGE_BEGIN_DECODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - *(buffer + 1) = type; - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - PutULONG(value, buffer + 4, bigEndian); - - #ifdef TEST - *logofs << name() << ": Decoded message. Type is " - << (unsigned int) type << " size is " << size - << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_MESSAGE - -MESSAGE_BEGIN_ENCODE_DATA -{ - #ifdef DEBUG - - *logofs << name() << ": Glyphset is " << GetULONG(buffer + 4, bigEndian) - << ".\n" << logofs_flush; - - if (size > MESSAGE_OFFSET) - { - *logofs << name() << ": Format is " << GetULONG(buffer + 8, bigEndian) - << ".\n" << logofs_flush; - } - - if (size > MESSAGE_OFFSET + 4) - { - *logofs << name() << ": WARNING! Unexpected size " << size - << ".\n" << logofs_flush; - } - - #endif - - encodeLongData(encodeBuffer, buffer, MESSAGE_OFFSET, - size, bigEndian, channelCache); - - #ifdef TEST - *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_DATA - -MESSAGE_BEGIN_DECODE_DATA -{ - decodeLongData(decodeBuffer, buffer, MESSAGE_OFFSET, - size, bigEndian, channelCache); - - #ifdef TEST - *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_DATA - -MESSAGE_BEGIN_PARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - renderExtension -> data.create_set.type = *(buffer + 1); - - renderExtension -> data.create_set.set_id = GetULONG(buffer + 4, bigEndian); - - #ifdef TEST - *logofs << name() << ": Parsed identity. Type is " - << (unsigned int) renderExtension -> data.create_set.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_PARSE_IDENTITY - -MESSAGE_BEGIN_UNPARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - *(buffer + 1) = renderExtension -> data.create_set.type; - - PutULONG(renderExtension -> data.create_set.set_id, buffer + 4, bigEndian); - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Type is " - << (unsigned int) renderExtension -> data.create_set.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_UNPARSE_IDENTITY - -MESSAGE_BEGIN_IDENTITY_CHECKSUM -{ - md5_append(md5_state, buffer + 1, 3); -} -MESSAGE_END_IDENTITY_CHECKSUM - -MESSAGE_BEGIN_ENCODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeDiffCachedValue(renderExtension -> data.create_set.set_id, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - cachedRenderExtension -> data.create_set.set_id = - renderExtension -> data.create_set.set_id; - - #ifdef TEST - *logofs << name() << ": Encoded update. Type is " - << (unsigned int) renderExtension -> data.create_set.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_UPDATE - -MESSAGE_BEGIN_DECODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeDiffCachedValue(renderExtension -> data.create_set.set_id, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - #ifdef TEST - *logofs << name() << ": Decoded update. Type is " - << (unsigned int) renderExtension -> data.create_set.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_DECODE_UPDATE diff --git a/nxcomp/RenderCreateGlyphSetCompat.h b/nxcomp/RenderCreateGlyphSetCompat.h deleted file mode 100644 index 174313e10..000000000 --- a/nxcomp/RenderCreateGlyphSetCompat.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef RenderCreateGlyphSetCompat_H -#define RenderCreateGlyphSetCompat_H - -// -// Define the characteristics -// of this message class here. -// - -#undef MESSAGE_NAME -#define MESSAGE_NAME "RenderCreateGlyphSetCompat" - -#undef MESSAGE_STORE -#define MESSAGE_STORE RenderCreateGlyphSetCompatStore - -#undef MESSAGE_CLASS -#define MESSAGE_CLASS RenderMinorExtensionStore - -#undef MESSAGE_METHODS -#define MESSAGE_METHODS "RenderMinorExtensionMethods.h" - -#undef MESSAGE_HEADERS -#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h" - -#undef MESSAGE_TAGS -#define MESSAGE_TAGS "RenderMinorExtensionTags.h" - -#undef MESSAGE_OFFSET -#define MESSAGE_OFFSET 8 - -#undef MESSAGE_HAS_SIZE -#define MESSAGE_HAS_SIZE 1 - -#undef MESSAGE_HAS_DATA -#define MESSAGE_HAS_DATA 1 - -#undef MESSAGE_HAS_FILTER -#define MESSAGE_HAS_FILTER 0 - -// -// Declare the message class. -// - -#include MESSAGE_HEADERS - -class MESSAGE_STORE : public MESSAGE_CLASS -{ - public: - - virtual const char *name() const - { - return MESSAGE_NAME; - } - - virtual int identitySize(const unsigned char *buffer, - unsigned int size) - { - return MESSAGE_OFFSET; - } - - #include MESSAGE_METHODS -}; - -#endif /* RenderCreateGlyphSetCompat_H */ diff --git a/nxcomp/RenderCreatePictureCompat.cpp b/nxcomp/RenderCreatePictureCompat.cpp deleted file mode 100644 index fa4dcb400..000000000 --- a/nxcomp/RenderCreatePictureCompat.cpp +++ /dev/null @@ -1,262 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -// -// Include the template for -// this message class. -// - -#include "RenderCreatePictureCompat.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -#include MESSAGE_TAGS - -// -// Message handling methods. -// - -MESSAGE_BEGIN_ENCODE_SIZE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeCachedValue((size - MESSAGE_OFFSET) >> 2, 16, - clientCache -> renderLengthCache, 5); - - #ifdef TEST - *logofs << name() << ": Encoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_SIZE - -MESSAGE_BEGIN_DECODE_SIZE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeCachedValue(size, 16, - clientCache -> renderLengthCache, 5); - - size = MESSAGE_OFFSET + (size << 2); - - buffer = writeBuffer -> addMessage(size); - - #ifdef TEST - *logofs << name() << ": Decoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_SIZE - -MESSAGE_BEGIN_ENCODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian), - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - encodeBuffer.encodeXidValue(GetULONG(buffer + 8, bigEndian), - clientCache -> drawableCache); - - encodeBuffer.encodeCachedValue(GetULONG(buffer + 12, bigEndian), 32, - clientCache -> renderFormatCache); - - encodeBuffer.encodeCachedValue(GetULONG(buffer + 16, bigEndian), 32, - clientCache -> renderValueMaskCache); - - #ifdef TEST - *logofs << name() << ": Encoded message. Type is " - << (unsigned int) *(buffer + 1) << " size is " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_MESSAGE - -MESSAGE_BEGIN_DECODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - *(buffer + 1) = type; - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - PutULONG(value, buffer + 4, bigEndian); - - decodeBuffer.decodeXidValue(value, - clientCache -> drawableCache); - - PutULONG(value, buffer + 8, bigEndian); - - decodeBuffer.decodeCachedValue(value, 32, - clientCache -> renderFormatCache); - - PutULONG(value, buffer + 12, bigEndian); - - decodeBuffer.decodeCachedValue(value, 32, - clientCache -> renderValueMaskCache); - - PutULONG(value, buffer + 16, bigEndian); - - #ifdef TEST - *logofs << name() << ": Decoded message. Type is " - << (unsigned int) type << " size is " << size - << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_MESSAGE - -MESSAGE_BEGIN_ENCODE_DATA -{ - encodeLongData(encodeBuffer, buffer, MESSAGE_OFFSET, - size, bigEndian, channelCache); - - #ifdef TEST - *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_DATA - -MESSAGE_BEGIN_DECODE_DATA -{ - decodeLongData(decodeBuffer, buffer, MESSAGE_OFFSET, - size, bigEndian, channelCache); - - #ifdef TEST - *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_DATA - -MESSAGE_BEGIN_PARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - renderExtension -> data.create_picture.type = *(buffer + 1); - - renderExtension -> data.create_picture.src_id = GetULONG(buffer + 4, bigEndian); - renderExtension -> data.create_picture.dst_id = GetULONG(buffer + 8, bigEndian); - - renderExtension -> data.create_picture.format = GetULONG(buffer + 12, bigEndian); - renderExtension -> data.create_picture.mask = GetULONG(buffer + 16, bigEndian); - - #ifdef TEST - *logofs << name() << ": Parsed identity. Type is " - << (unsigned int) renderExtension -> data.create_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_PARSE_IDENTITY - -MESSAGE_BEGIN_UNPARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - *(buffer + 1) = renderExtension -> data.create_picture.type; - - PutULONG(renderExtension -> data.create_picture.src_id, buffer + 4, bigEndian); - PutULONG(renderExtension -> data.create_picture.dst_id, buffer + 8, bigEndian); - - PutULONG(renderExtension -> data.create_picture.format, buffer + 12, bigEndian); - PutULONG(renderExtension -> data.create_picture.mask, buffer + 16, bigEndian); - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Type is " - << (unsigned int) renderExtension -> data.create_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_UNPARSE_IDENTITY - -MESSAGE_BEGIN_IDENTITY_CHECKSUM -{ - md5_append(md5_state, buffer + 1, 3); - md5_append(md5_state, buffer + 12, 8); -} -MESSAGE_END_IDENTITY_CHECKSUM - -MESSAGE_BEGIN_ENCODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef DEBUG - *logofs << name() << ": Encoding new id value " - << renderExtension -> data.create_picture.src_id - - clientCache -> renderLastId << ".\n"; - #endif - - encodeBuffer.encodeDiffCachedValue(renderExtension -> data.create_picture.src_id, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - cachedRenderExtension -> data.create_picture.src_id = - renderExtension -> data.create_picture.src_id; - - encodeBuffer.encodeXidValue(renderExtension -> data.create_picture.dst_id, - clientCache -> drawableCache); - - cachedRenderExtension -> data.create_picture.dst_id = - renderExtension -> data.create_picture.dst_id; - - #ifdef TEST - *logofs << name() << ": Encoded update. Type is " - << (unsigned int) renderExtension -> data.create_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_UPDATE - -MESSAGE_BEGIN_DECODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeDiffCachedValue(renderExtension -> data.create_picture.src_id, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - decodeBuffer.decodeXidValue(renderExtension -> data.create_picture.dst_id, - clientCache -> drawableCache); - - #ifdef TEST - *logofs << name() << ": Decoded update. Type is " - << (unsigned int) renderExtension -> data.create_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_DECODE_UPDATE diff --git a/nxcomp/RenderCreatePictureCompat.h b/nxcomp/RenderCreatePictureCompat.h deleted file mode 100644 index 15c8c85b3..000000000 --- a/nxcomp/RenderCreatePictureCompat.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef RenderCreatePictureCompat_H -#define RenderCreatePictureCompat_H - -// -// Define the characteristics -// of this message class here. -// - -#undef MESSAGE_NAME -#define MESSAGE_NAME "RenderCreatePictureCompat" - -#undef MESSAGE_STORE -#define MESSAGE_STORE RenderCreatePictureCompatStore - -#undef MESSAGE_CLASS -#define MESSAGE_CLASS RenderMinorExtensionStore - -#undef MESSAGE_METHODS -#define MESSAGE_METHODS "RenderMinorExtensionMethods.h" - -#undef MESSAGE_HEADERS -#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h" - -#undef MESSAGE_TAGS -#define MESSAGE_TAGS "RenderMinorExtensionTags.h" - -#undef MESSAGE_OFFSET -#define MESSAGE_OFFSET 20 - -#undef MESSAGE_HAS_SIZE -#define MESSAGE_HAS_SIZE 1 - -#undef MESSAGE_HAS_DATA -#define MESSAGE_HAS_DATA 1 - -#undef MESSAGE_HAS_FILTER -#define MESSAGE_HAS_FILTER 0 - -// -// Declare the message class. -// - -#include MESSAGE_HEADERS - -class MESSAGE_STORE : public MESSAGE_CLASS -{ - public: - - virtual const char *name() const - { - return MESSAGE_NAME; - } - - virtual int identitySize(const unsigned char *buffer, - unsigned int size) - { - return MESSAGE_OFFSET; - } - - #include MESSAGE_METHODS -}; - -#endif /* RenderCreatePictureCompat_H */ diff --git a/nxcomp/RenderExtension.h b/nxcomp/RenderExtension.h index 2b616e1e5..7ccf54068 100644 --- a/nxcomp/RenderExtension.h +++ b/nxcomp/RenderExtension.h @@ -82,13 +82,6 @@ class RenderExtensionMessage : public Message friend class RenderTrapezoidsStore; friend class RenderTrianglesStore; - friend class RenderCreatePictureCompatStore; - friend class RenderFreePictureCompatStore; - friend class RenderPictureClipCompatStore; - friend class RenderCreateGlyphSetCompatStore; - friend class RenderCompositeCompatStore; - friend class RenderCompositeGlyphsCompatStore; - public: RenderExtensionMessage() diff --git a/nxcomp/RenderFreePictureCompat.cpp b/nxcomp/RenderFreePictureCompat.cpp deleted file mode 100644 index fb4c7ac54..000000000 --- a/nxcomp/RenderFreePictureCompat.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -// -// Include the template for -// this message class. -// - -#include "RenderFreePictureCompat.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -#include MESSAGE_TAGS - -// -// Message handling methods. -// - -MESSAGE_BEGIN_ENCODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeDiffCachedValue(GetULONG(buffer + 4, bigEndian), - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - #ifdef TEST - *logofs << name() << ": Encoded message. Type is " - << (unsigned int) *(buffer + 1) << " size is " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_MESSAGE - -MESSAGE_BEGIN_DECODE_MESSAGE -{ - unsigned int value; - - ClientCache *clientCache = (ClientCache *) channelCache; - - *(buffer + 1) = type; - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - PutULONG(value, buffer + 4, bigEndian); - - #ifdef TEST - *logofs << name() << ": Decoded message. Type is " - << (unsigned int) type << " size is " << size - << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_MESSAGE - -MESSAGE_BEGIN_PARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - renderExtension -> data.free_picture.type = *(buffer + 1); - - renderExtension -> data.free_picture.src_id = GetULONG(buffer + 4, bigEndian); - - #ifdef TEST - *logofs << name() << ": Parsed identity. Type is " - << (unsigned int) renderExtension -> data.free_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_PARSE_IDENTITY - -MESSAGE_BEGIN_UNPARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - *(buffer + 1) = renderExtension -> data.free_picture.type; - - PutULONG(renderExtension -> data.free_picture.src_id, buffer + 4, bigEndian); - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Type is " - << (unsigned int) renderExtension -> data.free_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_UNPARSE_IDENTITY - -MESSAGE_BEGIN_IDENTITY_CHECKSUM -{ - md5_append(md5_state, buffer + 1, 3); -} -MESSAGE_END_IDENTITY_CHECKSUM - -MESSAGE_BEGIN_ENCODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeDiffCachedValue(renderExtension -> data.free_picture.src_id, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - cachedRenderExtension -> data.free_picture.src_id = - renderExtension -> data.free_picture.src_id; - - #ifdef TEST - *logofs << name() << ": Encoded update. Type is " - << (unsigned int) renderExtension -> data.free_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_UPDATE - -MESSAGE_BEGIN_DECODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeDiffCachedValue(renderExtension -> data.free_picture.src_id, - clientCache -> renderLastId, 29, - clientCache -> renderIdCache); - - #ifdef TEST - *logofs << name() << ": Decoded update. Type is " - << (unsigned int) renderExtension -> data.free_picture.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_DECODE_UPDATE diff --git a/nxcomp/RenderFreePictureCompat.h b/nxcomp/RenderFreePictureCompat.h deleted file mode 100644 index 32d613ae0..000000000 --- a/nxcomp/RenderFreePictureCompat.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef RenderFreePictureCompat_H -#define RenderFreePictureCompat_H - -// -// Define the characteristics -// of this message class here. -// - -#undef MESSAGE_NAME -#define MESSAGE_NAME "RenderFreePictureCompat" - -#undef MESSAGE_STORE -#define MESSAGE_STORE RenderFreePictureCompatStore - -#undef MESSAGE_CLASS -#define MESSAGE_CLASS RenderMinorExtensionStore - -#undef MESSAGE_METHODS -#define MESSAGE_METHODS "RenderMinorExtensionMethods.h" - -#undef MESSAGE_HEADERS -#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h" - -#undef MESSAGE_TAGS -#define MESSAGE_TAGS "RenderMinorExtensionTags.h" - -#undef MESSAGE_OFFSET -#define MESSAGE_OFFSET 8 - -#undef MESSAGE_HAS_SIZE -#define MESSAGE_HAS_SIZE 0 - -#undef MESSAGE_HAS_DATA -#define MESSAGE_HAS_DATA 0 - -#undef MESSAGE_HAS_FILTER -#define MESSAGE_HAS_FILTER 0 - -// -// Declare the message class. -// - -#include MESSAGE_HEADERS - -class MESSAGE_STORE : public MESSAGE_CLASS -{ - public: - - virtual const char *name() const - { - return MESSAGE_NAME; - } - - virtual int identitySize(const unsigned char *buffer, - unsigned int size) - { - return MESSAGE_OFFSET; - } - - #include MESSAGE_METHODS -}; - -#endif /* RenderFreePictureCompat_H */ diff --git a/nxcomp/RenderPictureClipCompat.cpp b/nxcomp/RenderPictureClipCompat.cpp deleted file mode 100644 index 67d873008..000000000 --- a/nxcomp/RenderPictureClipCompat.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -// -// Include the template for -// this message class. -// - -#include "RenderPictureClipCompat.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -#include MESSAGE_TAGS - -// -// Message handling methods. -// - -MESSAGE_BEGIN_ENCODE_SIZE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeCachedValue((size - MESSAGE_OFFSET) >> 2, 16, - clientCache -> renderLengthCache, 5); - - #ifdef TEST - *logofs << name() << ": Encoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_SIZE - -MESSAGE_BEGIN_DECODE_SIZE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeCachedValue(size, 16, - clientCache -> renderLengthCache, 5); - - size = MESSAGE_OFFSET + (size << 2); - - buffer = writeBuffer -> addMessage(size); - - #ifdef TEST - *logofs << name() << ": Decoded size with value " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_SIZE - -MESSAGE_BEGIN_ENCODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeXidValue(GetULONG(buffer + 4, bigEndian), - clientCache -> renderSrcPictureCache); - - encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 8, bigEndian), - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); - - encodeBuffer.encodeDiffCachedValue(GetUINT(buffer + 10, bigEndian), - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - - #ifdef TEST - *logofs << name() << ": Encoded message. Type is " - << (unsigned int) *(buffer + 1) << " size is " - << size << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_MESSAGE - -MESSAGE_BEGIN_DECODE_MESSAGE -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - *(buffer + 1) = type; - - decodeBuffer.decodeXidValue(value, - clientCache -> renderSrcPictureCache); - - PutULONG(value, buffer + 4, bigEndian); - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastX, 16, - clientCache -> renderXCache, 11); - - PutUINT(clientCache -> renderLastX, buffer + 8, bigEndian); - - decodeBuffer.decodeDiffCachedValue(value, - clientCache -> renderLastY, 16, - clientCache -> renderYCache, 11); - - PutUINT(clientCache -> renderLastY, buffer + 10, bigEndian); - - #ifdef TEST - *logofs << name() << ": Decoded message. Type is " - << (unsigned int) type << " size is " << size - << ".\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_MESSAGE - -MESSAGE_BEGIN_ENCODE_DATA -{ - encodeIntData(encodeBuffer, buffer, MESSAGE_OFFSET, - size, bigEndian, channelCache); - - #ifdef TEST - *logofs << name() << ": Encoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_DATA - -MESSAGE_BEGIN_DECODE_DATA -{ - decodeIntData(decodeBuffer, buffer, MESSAGE_OFFSET, - size, bigEndian, channelCache); - - #ifdef TEST - *logofs << name() << ": Decoded " << size - MESSAGE_OFFSET - << " bytes of data.\n" << logofs_flush; - #endif -} -MESSAGE_END_DECODE_DATA - -MESSAGE_BEGIN_PARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - renderExtension -> data.picture_clip.type = *(buffer + 1); - - renderExtension -> data.picture_clip.src_id = GetULONG(buffer + 4, bigEndian); - - renderExtension -> data.picture_clip.src_x = GetUINT(buffer + 8, bigEndian); - renderExtension -> data.picture_clip.src_y = GetUINT(buffer + 10, bigEndian); - - #ifdef TEST - *logofs << name() << ": Parsed identity. Type is " - << (unsigned int) renderExtension -> data.picture_clip.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_PARSE_IDENTITY - -MESSAGE_BEGIN_UNPARSE_IDENTITY -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - *(buffer + 1) = renderExtension -> data.picture_clip.type; - - PutULONG(renderExtension -> data.picture_clip.src_id, buffer + 4, bigEndian); - - PutUINT(renderExtension -> data.picture_clip.src_x, buffer + 8, bigEndian); - PutUINT(renderExtension -> data.picture_clip.src_y, buffer + 10, bigEndian); - - #ifdef TEST - *logofs << name() << ": Unparsed identity. Type is " - << (unsigned int) renderExtension -> data.picture_clip.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_UNPARSE_IDENTITY - -MESSAGE_BEGIN_IDENTITY_CHECKSUM -{ - md5_append(md5_state, buffer + 1, 3); - md5_append(md5_state, buffer + 8, 4); -} -MESSAGE_END_IDENTITY_CHECKSUM - -MESSAGE_BEGIN_ENCODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - RenderExtensionMessage *cachedRenderExtension = (RenderExtensionMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeXidValue(renderExtension -> data.picture_clip.src_id, - clientCache -> renderSrcPictureCache); - - cachedRenderExtension -> data.picture_clip.src_id = - renderExtension -> data.picture_clip.src_id; - - #ifdef TEST - *logofs << name() << ": Encoded update. Type is " - << (unsigned int) renderExtension -> data.picture_clip.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_ENCODE_UPDATE - -MESSAGE_BEGIN_DECODE_UPDATE -{ - RenderExtensionMessage *renderExtension = (RenderExtensionMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - decodeBuffer.decodeXidValue(renderExtension -> data.picture_clip.src_id, - clientCache -> renderSrcPictureCache); - - #ifdef TEST - *logofs << name() << ": Decoded update. Type is " - << (unsigned int) renderExtension -> data.picture_clip.type - << " size is " << renderExtension -> size_ << ".\n" - << logofs_flush; - #endif -} -MESSAGE_END_DECODE_UPDATE diff --git a/nxcomp/RenderPictureClipCompat.h b/nxcomp/RenderPictureClipCompat.h deleted file mode 100644 index 05fc5cda8..000000000 --- a/nxcomp/RenderPictureClipCompat.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef RenderPictureClipCompat_H -#define RenderPictureClipCompat_H - -// -// Define the characteristics -// of this message class here. -// - -#undef MESSAGE_NAME -#define MESSAGE_NAME "RenderPictureClipCompat" - -#undef MESSAGE_STORE -#define MESSAGE_STORE RenderPictureClipCompatStore - -#undef MESSAGE_CLASS -#define MESSAGE_CLASS RenderMinorExtensionStore - -#undef MESSAGE_METHODS -#define MESSAGE_METHODS "RenderMinorExtensionMethods.h" - -#undef MESSAGE_HEADERS -#define MESSAGE_HEADERS "RenderMinorExtensionHeaders.h" - -#undef MESSAGE_TAGS -#define MESSAGE_TAGS "RenderMinorExtensionTags.h" - -#undef MESSAGE_OFFSET -#define MESSAGE_OFFSET 12 - -#undef MESSAGE_HAS_SIZE -#define MESSAGE_HAS_SIZE 1 - -#undef MESSAGE_HAS_DATA -#define MESSAGE_HAS_DATA 1 - -#undef MESSAGE_HAS_FILTER -#define MESSAGE_HAS_FILTER 0 - -// -// Declare the message class. -// - -#include MESSAGE_HEADERS - -class MESSAGE_STORE : public MESSAGE_CLASS -{ - public: - - virtual const char *name() const - { - return MESSAGE_NAME; - } - - virtual int identitySize(const unsigned char *buffer, - unsigned int size) - { - return MESSAGE_OFFSET; - } - - #include MESSAGE_METHODS -}; - -#endif /* RenderPictureClipCompat_H */ diff --git a/nxcomp/SetUnpackAlphaCompat.cpp b/nxcomp/SetUnpackAlphaCompat.cpp deleted file mode 100644 index a8fcabdeb..000000000 --- a/nxcomp/SetUnpackAlphaCompat.cpp +++ /dev/null @@ -1,250 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#include "SetUnpackAlphaCompat.h" - -#include "ClientCache.h" - -#include "EncodeBuffer.h" -#include "DecodeBuffer.h" - -#include "WriteBuffer.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Constructors and destructors. -// - -SetUnpackAlphaCompatStore::SetUnpackAlphaCompatStore(StaticCompressor *compressor) - - : MessageStore(compressor) -{ - enableCache = SETUNPACKALPHA_ENABLE_CACHE; - enableData = SETUNPACKALPHA_ENABLE_DATA; - enableSplit = SETUNPACKALPHA_ENABLE_SPLIT; - enableCompress = SETUNPACKALPHA_ENABLE_COMPRESS; - - dataLimit = SETUNPACKALPHA_DATA_LIMIT; - dataOffset = SETUNPACKALPHA_DATA_OFFSET; - - cacheSlots = SETUNPACKALPHA_CACHE_SLOTS; - cacheThreshold = SETUNPACKALPHA_CACHE_THRESHOLD; - cacheLowerThreshold = SETUNPACKALPHA_CACHE_LOWER_THRESHOLD; - - messages_ -> resize(cacheSlots); - - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - *i = NULL; - } - - temporary_ = NULL; -} - -SetUnpackAlphaCompatStore::~SetUnpackAlphaCompatStore() -{ - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - destroy(*i); - } - - destroy(temporary_); -} - -// -// Here are the methods to handle messages' content. -// - -int SetUnpackAlphaCompatStore::encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer, - const unsigned int size, int bigEndian, - ChannelCache *channelCache) const -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef DEBUG - *logofs << name() << ": Encoding full message identity.\n" << logofs_flush; - #endif - - // Client. - encodeBuffer.encodeCachedValue(*(buffer + 1), 8, - clientCache -> resourceCache); - // Entries. - encodeBuffer.encodeValue(GetULONG(buffer + 4, bigEndian), 32, 9); - - #ifdef DEBUG - *logofs << name() << ": Encoded full message identity.\n" << logofs_flush; - #endif - - return 1; -} - -int SetUnpackAlphaCompatStore::decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer, - unsigned int &size, int bigEndian, WriteBuffer *writeBuffer, - ChannelCache *channelCache) const -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef DEBUG - *logofs << name() << ": Decoding full message identity.\n" << logofs_flush; - #endif - - unsigned int value; - unsigned char cValue; - - // Client. - decodeBuffer.decodeCachedValue(cValue, 8, - clientCache -> resourceCache); - // Entries. - decodeBuffer.decodeValue(value, 32, 9); - - size = RoundUp4(value) + 8; - - buffer = writeBuffer -> addMessage(size); - - *(buffer + 1) = cValue; - - PutULONG(value, buffer + 4, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Decoded full message identity.\n" << logofs_flush; - #endif - - return 1; -} - -int SetUnpackAlphaCompatStore::parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message; - - setUnpackAlpha -> client = *(buffer + 1); - - setUnpackAlpha -> entries = GetULONG(buffer + 4, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Parsed identity for message at " << message << ".\n" << logofs_flush; - #endif - - return 1; -} - -int SetUnpackAlphaCompatStore::unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message; - - *(buffer + 1) = setUnpackAlpha -> client; - - PutULONG(setUnpackAlpha -> entries, buffer + 4, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Unparsed identity for message at " << message << ".\n" << logofs_flush; - #endif - - return 1; -} - -void SetUnpackAlphaCompatStore::dumpIdentity(const Message *message) const -{ - #ifdef DUMP - - SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message; - - *logofs << name() << ": Identity client " - << (unsigned int) setUnpackAlpha -> client << " entries " - << setUnpackAlpha -> entries << " size " - << setUnpackAlpha -> size_ << ".\n"; - - #endif -} - -void SetUnpackAlphaCompatStore::identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - md5_append(md5_state_, buffer + 4, 4); -} - -void SetUnpackAlphaCompatStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, - const Message *cachedMessage, - ChannelCache *channelCache) const -{ - SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message; - SetUnpackAlphaCompatMessage *cachedSetUnpackAlpha = (SetUnpackAlphaCompatMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - encodeBuffer.encodeCachedValue(setUnpackAlpha -> client, 8, - clientCache -> resourceCache); - - cachedSetUnpackAlpha -> client = setUnpackAlpha -> client; - - if (cachedSetUnpackAlpha -> entries != setUnpackAlpha -> entries) - { - #ifdef TEST - *logofs << name() << ": Encoding value " << setUnpackAlpha -> entries - << " as entries field.\n" << logofs_flush; - #endif - - encodeBuffer.encodeBoolValue(1); - - encodeBuffer.encodeValue(setUnpackAlpha -> entries, 32, 9); - - cachedSetUnpackAlpha -> entries = setUnpackAlpha -> entries; - } - else - { - encodeBuffer.encodeBoolValue(0); - } -} - -void SetUnpackAlphaCompatStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, - ChannelCache *channelCache) const -{ - SetUnpackAlphaCompatMessage *setUnpackAlpha = (SetUnpackAlphaCompatMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - decodeBuffer.decodeCachedValue(setUnpackAlpha -> client, 8, - clientCache -> resourceCache); - - decodeBuffer.decodeBoolValue(value); - - if (value) - { - decodeBuffer.decodeValue(value, 32, 9); - - setUnpackAlpha -> entries = value; - - #ifdef DEBUG - *logofs << name() << ": Decoded value " << setUnpackAlpha -> entries - << " as entries field.\n" << logofs_flush; - #endif - } -} diff --git a/nxcomp/SetUnpackAlphaCompat.h b/nxcomp/SetUnpackAlphaCompat.h deleted file mode 100644 index 80d1522c0..000000000 --- a/nxcomp/SetUnpackAlphaCompat.h +++ /dev/null @@ -1,149 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef SetUnpackAlphaCompat_H -#define SetUnpackAlphaCompat_H - -#include "Message.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Set default values. -// - -#define SETUNPACKALPHA_ENABLE_CACHE 1 -#define SETUNPACKALPHA_ENABLE_DATA 1 -#define SETUNPACKALPHA_ENABLE_SPLIT 0 -#define SETUNPACKALPHA_ENABLE_COMPRESS 1 - -#define SETUNPACKALPHA_DATA_LIMIT 16384 -#define SETUNPACKALPHA_DATA_OFFSET 8 - -#define SETUNPACKALPHA_CACHE_SLOTS 2000 -#define SETUNPACKALPHA_CACHE_THRESHOLD 10 -#define SETUNPACKALPHA_CACHE_LOWER_THRESHOLD 5 - -// -// The message class. -// - -class SetUnpackAlphaCompatMessage : public Message -{ - friend class SetUnpackAlphaCompatStore; - - public: - - SetUnpackAlphaCompatMessage() - { - } - - ~SetUnpackAlphaCompatMessage() - { - } - - // - // Put here the fields which constitute - // the 'identity' part of the message. - // - - private: - - unsigned char client; - unsigned int entries; -}; - -class SetUnpackAlphaCompatStore : public MessageStore -{ - public: - - SetUnpackAlphaCompatStore(StaticCompressor *compressor); - - virtual ~SetUnpackAlphaCompatStore(); - - virtual const char *name() const - { - return "SetUnpackAlphaCompat"; - } - - virtual unsigned char opcode() const - { - return X_NXSetUnpackAlpha; - } - - virtual unsigned int storage() const - { - return sizeof(SetUnpackAlphaCompatMessage); - } - - // - // Message handling methods. - // - - protected: - - virtual Message *create() const - { - return new SetUnpackAlphaCompatMessage(); - } - - virtual Message *create(const Message &message) const - { - return new SetUnpackAlphaCompatMessage((const SetUnpackAlphaCompatMessage &) message); - } - - virtual void destroy(Message *message) const - { - delete (SetUnpackAlphaCompatMessage *) message; - } - - virtual int encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer, - const unsigned int size, int bigEndian, - ChannelCache *channelCache) const; - - virtual int decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer, - unsigned int &size, int bigEndian, WriteBuffer *writeBuffer, - ChannelCache *channelCache) const; - - virtual int parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual int unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, - const Message *cachedMessage, - ChannelCache *channelCache) const; - - virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, - ChannelCache *channelCache) const; - - virtual void identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void dumpIdentity(const Message *message) const; -}; - -#endif /* SetUnpackAlphaCompat_H */ diff --git a/nxcomp/SetUnpackColormapCompat.cpp b/nxcomp/SetUnpackColormapCompat.cpp deleted file mode 100644 index 65b108a82..000000000 --- a/nxcomp/SetUnpackColormapCompat.cpp +++ /dev/null @@ -1,262 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#include "SetUnpackColormapCompat.h" - -#include "ClientCache.h" - -#include "EncodeBuffer.h" -#include "DecodeBuffer.h" - -#include "WriteBuffer.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Constructors and destructors. -// - -SetUnpackColormapCompatStore::SetUnpackColormapCompatStore(StaticCompressor *compressor) - - : MessageStore(compressor) -{ - enableCache = SETUNPACKCOLORMAP_ENABLE_CACHE; - enableData = SETUNPACKCOLORMAP_ENABLE_DATA; - enableSplit = SETUNPACKCOLORMAP_ENABLE_SPLIT; - enableCompress = SETUNPACKCOLORMAP_ENABLE_COMPRESS; - - dataLimit = SETUNPACKCOLORMAP_DATA_LIMIT; - dataOffset = SETUNPACKCOLORMAP_DATA_OFFSET; - - cacheSlots = SETUNPACKCOLORMAP_CACHE_SLOTS; - cacheThreshold = SETUNPACKCOLORMAP_CACHE_THRESHOLD; - cacheLowerThreshold = SETUNPACKCOLORMAP_CACHE_LOWER_THRESHOLD; - - messages_ -> resize(cacheSlots); - - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - *i = NULL; - } - - temporary_ = NULL; -} - -SetUnpackColormapCompatStore::~SetUnpackColormapCompatStore() -{ - for (T_messages::iterator i = messages_ -> begin(); - i < messages_ -> end(); i++) - { - destroy(*i); - } - - destroy(temporary_); -} - -// -// Here are the methods to handle messages' content. -// - -int SetUnpackColormapCompatStore::encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer, - const unsigned int size, int bigEndian, - ChannelCache *channelCache) const -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef DEBUG - *logofs << name() << ": Encoding full message identity.\n" << logofs_flush; - #endif - - // Client. - encodeBuffer.encodeCachedValue(*(buffer + 1), 8, - clientCache -> resourceCache); - // Entries. - encodeBuffer.encodeValue(GetULONG(buffer + 4, bigEndian), 32, 9); - - #ifdef DEBUG - *logofs << name() << ": Encoded full message identity.\n" << logofs_flush; - #endif - - return 1; -} - -int SetUnpackColormapCompatStore::decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer, - unsigned int &size, int bigEndian, WriteBuffer *writeBuffer, - ChannelCache *channelCache) const -{ - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef DEBUG - *logofs << name() << ": Decoding full message identity.\n" << logofs_flush; - #endif - - unsigned int value; - unsigned char cValue; - - // Client. - decodeBuffer.decodeCachedValue(cValue, 8, - clientCache -> resourceCache); - // Entries. - decodeBuffer.decodeValue(value, 32, 9); - - size = (value << 2) + 8; - - buffer = writeBuffer -> addMessage(size); - - *(buffer + 1) = cValue; - - PutULONG(value, buffer + 4, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Decoded full message identity.\n" << logofs_flush; - #endif - - return 1; -} - -int SetUnpackColormapCompatStore::parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message; - - setUnpackColormap -> client = *(buffer + 1); - - setUnpackColormap -> entries = GetULONG(buffer + 4, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Parsed identity for message at " << message << ".\n" << logofs_flush; - #endif - - return 1; -} - -int SetUnpackColormapCompatStore::unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message; - - *(buffer + 1) = setUnpackColormap -> client; - - PutULONG(setUnpackColormap -> entries, buffer + 4, bigEndian); - - #ifdef DEBUG - *logofs << name() << ": Unparsed identity for message at " << message << ".\n" << logofs_flush; - #endif - - return 1; -} - -void SetUnpackColormapCompatStore::dumpIdentity(const Message *message) const -{ - #ifdef DUMP - - SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message; - - *logofs << name() << ": Identity client " - << (unsigned int) setUnpackColormap -> client << " entries " - << setUnpackColormap -> entries << " size " - << setUnpackColormap -> size_ << ".\n"; - - #endif -} - -void SetUnpackColormapCompatStore::identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const -{ - md5_append(md5_state_, buffer + 4, 4); -} - -void SetUnpackColormapCompatStore::updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, - const Message *cachedMessage, - ChannelCache *channelCache) const -{ - SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message; - SetUnpackColormapCompatMessage *cachedSetUnpackColormap = (SetUnpackColormapCompatMessage *) cachedMessage; - - ClientCache *clientCache = (ClientCache *) channelCache; - - #ifdef TEST - *logofs << name() << ": Encoding value " - << (unsigned int) setUnpackColormap -> client - << " as client field.\n" << logofs_flush; - #endif - - encodeBuffer.encodeCachedValue(setUnpackColormap -> client, 8, - clientCache -> resourceCache); - - cachedSetUnpackColormap -> client = setUnpackColormap -> client; - - if (cachedSetUnpackColormap -> entries != setUnpackColormap -> entries) - { - #ifdef TEST - *logofs << name() << ": Encoding value " << setUnpackColormap -> entries - << " as entries field.\n" << logofs_flush; - #endif - - encodeBuffer.encodeBoolValue(1); - - encodeBuffer.encodeValue(setUnpackColormap -> entries, 32, 9); - - cachedSetUnpackColormap -> entries = setUnpackColormap -> entries; - } - else - { - encodeBuffer.encodeBoolValue(0); - } -} - -void SetUnpackColormapCompatStore::updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, - ChannelCache *channelCache) const -{ - SetUnpackColormapCompatMessage *setUnpackColormap = (SetUnpackColormapCompatMessage *) message; - - ClientCache *clientCache = (ClientCache *) channelCache; - - unsigned int value; - - decodeBuffer.decodeCachedValue(setUnpackColormap -> client, 8, - clientCache -> resourceCache); - - #ifdef DEBUG - *logofs << name() << ": Decoded value " - << (unsigned int) setUnpackColormap -> client - << " as client field.\n" << logofs_flush; - #endif - - decodeBuffer.decodeBoolValue(value); - - if (value) - { - decodeBuffer.decodeValue(value, 32, 9); - - setUnpackColormap -> entries = value; - - #ifdef DEBUG - *logofs << name() << ": Decoded value " << setUnpackColormap -> entries - << " as entries field.\n" << logofs_flush; - #endif - } -} diff --git a/nxcomp/SetUnpackColormapCompat.h b/nxcomp/SetUnpackColormapCompat.h deleted file mode 100644 index d1ffad876..000000000 --- a/nxcomp/SetUnpackColormapCompat.h +++ /dev/null @@ -1,149 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef SetUnpackColormapCompat_H -#define SetUnpackColormapCompat_H - -#include "Message.h" - -// -// Set the verbosity level. -// - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG -#undef DUMP - -// -// Set default values. -// - -#define SETUNPACKCOLORMAP_ENABLE_CACHE 1 -#define SETUNPACKCOLORMAP_ENABLE_DATA 1 -#define SETUNPACKCOLORMAP_ENABLE_SPLIT 1 -#define SETUNPACKCOLORMAP_ENABLE_COMPRESS 1 - -#define SETUNPACKCOLORMAP_DATA_LIMIT 4096 -#define SETUNPACKCOLORMAP_DATA_OFFSET 8 - -#define SETUNPACKCOLORMAP_CACHE_SLOTS 2000 -#define SETUNPACKCOLORMAP_CACHE_THRESHOLD 5 -#define SETUNPACKCOLORMAP_CACHE_LOWER_THRESHOLD 0 - -// -// The message class. -// - -class SetUnpackColormapCompatMessage : public Message -{ - friend class SetUnpackColormapCompatStore; - - public: - - SetUnpackColormapCompatMessage() - { - } - - ~SetUnpackColormapCompatMessage() - { - } - - // - // Put here the fields which constitute - // the 'identity' part of the message. - // - - private: - - unsigned char client; - unsigned int entries; -}; - -class SetUnpackColormapCompatStore : public MessageStore -{ - public: - - SetUnpackColormapCompatStore(StaticCompressor *compressor); - - virtual ~SetUnpackColormapCompatStore(); - - virtual const char *name() const - { - return "SetUnpackColormapCompat"; - } - - virtual unsigned char opcode() const - { - return X_NXSetUnpackColormap; - } - - virtual unsigned int storage() const - { - return sizeof(SetUnpackColormapCompatMessage); - } - - // - // Message handling methods. - // - - protected: - - virtual Message *create() const - { - return new SetUnpackColormapCompatMessage(); - } - - virtual Message *create(const Message &message) const - { - return new SetUnpackColormapCompatMessage((const SetUnpackColormapCompatMessage &) message); - } - - virtual void destroy(Message *message) const - { - delete (SetUnpackColormapCompatMessage *) message; - } - - virtual int encodeIdentity(EncodeBuffer &encodeBuffer, const unsigned char *buffer, - const unsigned int size, int bigEndian, - ChannelCache *channelCache) const; - - virtual int decodeIdentity(DecodeBuffer &decodeBuffer, unsigned char *&buffer, - unsigned int &size, int bigEndian, WriteBuffer *writeBuffer, - ChannelCache *channelCache) const; - - virtual int parseIdentity(Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual int unparseIdentity(const Message *message, unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message, - const Message *cachedMessage, - ChannelCache *channelCache) const; - - virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message, - ChannelCache *channelCache) const; - - virtual void identityChecksum(const Message *message, const unsigned char *buffer, - unsigned int size, int bigEndian) const; - - virtual void dumpIdentity(const Message *message) const; -}; - -#endif /* SetUnpackColormapCompat_H */ -- cgit v1.2.3 From 5c495241069708e9b1bbf6e57fd49599be540b63 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Fri, 15 Apr 2016 09:49:09 +0200 Subject: Remove TextCompressor class and files from nxcomp This commit removes TextCompressor class references from ClientCache and ServerCache as it's no longer used after removing old protocol's compatibility code from nxcomp. It also removes the attribute textCache from both classes as it's no longer used either. Finally the header and source files associated with the TextCompressor class are also deleted and removed from the compilation process. Refs: ArcticaProject/nx-libs#108 --- debian/copyright.in | 2 -- nxcomp/ChannelCache.h | 7 ----- nxcomp/ClientCache.cpp | 2 -- nxcomp/ClientCache.h | 5 --- nxcomp/Makefile.in | 1 - nxcomp/ServerCache.h | 2 -- nxcomp/TextCompressor.cpp | 77 ----------------------------------------------- nxcomp/TextCompressor.h | 49 ------------------------------ 8 files changed, 145 deletions(-) delete mode 100644 nxcomp/TextCompressor.cpp delete mode 100644 nxcomp/TextCompressor.h (limited to 'nxcomp') diff --git a/debian/copyright.in b/debian/copyright.in index 8f85b292f..4ffde0ba0 100644 --- a/debian/copyright.in +++ b/debian/copyright.in @@ -1131,8 +1131,6 @@ Files: nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h nxcomp/StaticCompressor.h nxcomp/Statistics.cpp nxcomp/Statistics.h - nxcomp/TextCompressor.cpp - nxcomp/TextCompressor.h nxcomp/Timestamp.cpp nxcomp/Timestamp.h nxcomp/TranslateCoords.cpp diff --git a/nxcomp/ChannelCache.h b/nxcomp/ChannelCache.h index 7b94893b6..c810a0b96 100644 --- a/nxcomp/ChannelCache.h +++ b/nxcomp/ChannelCache.h @@ -18,13 +18,6 @@ #ifndef ChannelCache_H #define ChannelCache_H -// -// Elements in array of caches used in TextCompressor. -// - -const unsigned int CLIENT_TEXT_CACHE_SIZE = 9999; -const unsigned int SERVER_TEXT_CACHE_SIZE = 9999; - // // Sizes of optional fields for ConfigureWindow // request. diff --git a/nxcomp/ClientCache.cpp b/nxcomp/ClientCache.cpp index ec37c69f6..49dc4ece5 100644 --- a/nxcomp/ClientCache.cpp +++ b/nxcomp/ClientCache.cpp @@ -100,8 +100,6 @@ ClientCache::ClientCache() : renderLastId(0), - renderTextCompressor(textCache, CLIENT_TEXT_CACHE_SIZE), - renderGlyphXCache(16), renderGlyphYCache(16), renderGlyphX(0), renderGlyphY(0), diff --git a/nxcomp/ClientCache.h b/nxcomp/ClientCache.h index 3fa59f642..9ac263c71 100644 --- a/nxcomp/ClientCache.h +++ b/nxcomp/ClientCache.h @@ -26,8 +26,6 @@ #include "XidCache.h" #include "FreeCache.h" -#include "TextCompressor.h" - #include "ChannelCache.h" class ClientCache : public ChannelCache @@ -61,7 +59,6 @@ class ClientCache : public ChannelCache // General-purpose caches. // - CharCache textCache[CLIENT_TEXT_CACHE_SIZE]; IntCache cursorCache; IntCache colormapCache; IntCache visualCache; @@ -383,8 +380,6 @@ class ClientCache : public ChannelCache IntCache *renderDataCache[16]; - TextCompressor renderTextCompressor; - IntCache renderGlyphXCache; IntCache renderGlyphYCache; diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 93b644079..c2cdceead 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -165,7 +165,6 @@ CXXSRC = Loop.cpp \ BlockCache.cpp \ BlockCacheSet.cpp \ StaticCompressor.cpp \ - TextCompressor.cpp \ Unpack.cpp \ Alpha.cpp \ Colormap.cpp \ diff --git a/nxcomp/ServerCache.h b/nxcomp/ServerCache.h index 0968e235c..2287501bf 100644 --- a/nxcomp/ServerCache.h +++ b/nxcomp/ServerCache.h @@ -23,7 +23,6 @@ #include "IntCache.h" #include "CharCache.h" #include "OpcodeCache.h" -#include "TextCompressor.h" #include "BlockCache.h" #include "BlockCacheSet.h" @@ -47,7 +46,6 @@ class ServerCache : public ChannelCache // General-purpose caches. // - CharCache textCache[SERVER_TEXT_CACHE_SIZE]; IntCache replySequenceCache; IntCache eventSequenceCache; unsigned int lastTimestamp; diff --git a/nxcomp/TextCompressor.cpp b/nxcomp/TextCompressor.cpp deleted file mode 100644 index 16131222c..000000000 --- a/nxcomp/TextCompressor.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#include "TextCompressor.h" - -#include "EncodeBuffer.h" -#include "DecodeBuffer.h" - -// -// The compression obtained by this class is -// very poor. In newer versions the text is -// simply appended to the encode buffer and -// compressed by leveraging the final stream -// compression. -// - -void -TextCompressor::encodeChar(unsigned char ch, EncodeBuffer& encodeBuffer) -{ - // encode each successive character of text using - // a predictive model where most of the last 3 characters - // (low order 7 bits of the previous character, plus the - // low order 5 bits of the character before that, plus - // the low order 3 bits of the character before that) - // are used to find the right cache... - - CharCache& cache = cache_[key_ % cacheSize_]; - if ((key_ >= 128) && (cache.getSize() == 0)) - { - // 3rd-order model doesn't have any statistics yet, - // so use the 1st-order one instead - CharCache& cache2 = cache_[(key_ & 0x7f) % cacheSize_]; - encodeBuffer.encodeCachedValue((unsigned int) ch, 8, cache2); - cache.insert(ch); - } - else - { - encodeBuffer.encodeCachedValue((unsigned int) ch, 8, cache); - } - - key_ = (((key_ & 0x1f) << 7) | ((key_ & 0x380) << 5) | (ch & 0x7f)); -} - - -unsigned char -TextCompressor::decodeChar(DecodeBuffer& decodeBuffer) -{ - unsigned char nextChar; - CharCache& cache = cache_[key_ % cacheSize_]; - if ((key_ >= 128) && (cache.getSize() == 0)) - { - CharCache& cache2 = cache_[(key_ & 0x7f) % cacheSize_]; - decodeBuffer.decodeCachedValue(nextChar, 8, cache2); - cache.insert(nextChar); - } - else - { - decodeBuffer.decodeCachedValue(nextChar, 8, cache); - } - - key_ = (((key_ & 0x1f) << 7) | ((key_ & 0x380) << 5) | (nextChar & 0x7f)); - return nextChar; -} diff --git a/nxcomp/TextCompressor.h b/nxcomp/TextCompressor.h deleted file mode 100644 index b373b98b8..000000000 --- a/nxcomp/TextCompressor.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of NoMachine. Redistribution and use of the present */ -/* software is allowed according to terms specified in the file LICENSE */ -/* which comes in the source distribution. */ -/* */ -/* Check http://www.nomachine.com/licensing.html for applicability. */ -/* */ -/* NX and NoMachine are trademarks of Medialogic S.p.A. */ -/* */ -/* All rights reserved. */ -/* */ -/**************************************************************************/ - -#ifndef TextCompressor_H -#define TextCompressor_H - -#include "CharCache.h" - -class EncodeBuffer; -class DecodeBuffer; - -class TextCompressor -{ - public: - TextCompressor(CharCache* cache, unsigned int cacheSize): - cache_(cache), - cacheSize_(cacheSize), - key_(0) - { - } - - void encodeChar(unsigned char ch, EncodeBuffer &); - unsigned char decodeChar(DecodeBuffer &); - void reset(unsigned int newKey = 0) - { - key_ = newKey; - } - - private: - CharCache* cache_; - unsigned int cacheSize_; - unsigned int key_; -}; - -#endif /* TextCompressor_H */ -- cgit v1.2.3 From 7d053959f6ce971d15914dab32de5e145e0f10dc Mon Sep 17 00:00:00 2001 From: Salvador Fandino Date: Wed, 20 Apr 2016 15:46:16 +0200 Subject: Fix copyright notice in nxcomp/Version.c It was GPL3 instead of GPL2! Fixes ArcticaProject/nx-libs#112 --- nxcomp/Version.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Version.c b/nxcomp/Version.c index 2b431532b..ff1793434 100644 --- a/nxcomp/Version.c +++ b/nxcomp/Version.c @@ -1,31 +1,22 @@ /**************************************************************************/ /* */ -/* Copyright (C) 2014 Qindel http://qindel.com and QVD http://theqvd.com */ +/* Copyright (c) 2015 Qindel Formacion y Servicios SL. */ /* */ /* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 3 of the License, or (at */ -/* your option) any later version. */ +/* it under the terms of the GNU General Public License Version 2, as */ +/* published by the Free Software Foundation. */ /* */ /* This program is distributed in the hope that it will be useful, but */ -/* WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ -/* See the GNU General Public License for more details. */ +/* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTA- */ +/* BILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General */ +/* Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ -/* along with this program; if not, see . */ -/* */ -/* Additional permission under GNU GPL version 3 section 7 */ -/* */ -/* If you modify this Program, or any covered work, by linking or */ -/* combining it with [name of library] (or a modified version of that */ -/* library), containing parts covered by the terms of [name of library's */ -/* license], the licensors of this Program grant you additional */ -/* permission to convey the resulting work. {Corresponding Source for a */ -/* non-source form of such a combination shall include the source code */ -/* for the parts of [name of library] used as well as that of the covered */ -/* work.} */ +/* along with this program; if not, you can request a copy from Qindel */ +/* or write to the Free Software Foundation, Inc., 51 Franklin Street, */ +/* Fifth Floor, Boston, MA 02110-1301 USA. */ /* */ +/* All rights reserved. */ /* */ /**************************************************************************/ -- cgit v1.2.3 From a436cba04834da945d4a2be5335d1d7e95c6bf08 Mon Sep 17 00:00:00 2001 From: Fernando Carvajal Date: Mon, 25 Apr 2016 12:53:00 +0200 Subject: Clean up compiler warnings in nxcomp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit removes several warnings in nxcomp related to unused but set variables. It also replaces tempnam function with the more secure one mkstemp and there has been removed another warning related to setgid and setuid returning values not being checked. So these were the compiler warnings in nxcomp that have been fixed: Loop.cpp: In function ‘int ParseRemoteOptions(char*)’: Loop.cpp:9423:7: warning: variable ‘hasLimit’ set but not used [-Wunused-but-set-variable] int hasLimit = 0; ^ Loop.cpp:9424:7: warning: variable ‘hasRender’ set but not used [-Wunused-but-set-variable] int hasRender = 0; ^ Loop.cpp:9425:7: warning: variable ‘hasTaint’ set but not used [-Wunused-but-set-variable] int hasTaint = 0; ^ Loop.cpp:9427:7: warning: variable ‘hasStrict’ set but not used [-Wunused-but-set-variable] int hasStrict = 0; ^ Loop.cpp:9428:7: warning: variable ‘hasShseg’ set but not used [-Wunused-but-set-variable] int hasShseg = 0; ^ ServerChannel.cpp: In member function ‘virtual int ServerChannel::handleWrite(const unsigned char*, unsigned int)’: ServerChannel.cpp:2132:9: warning: variable ‘hit’ set but not used [-Wunused-but-set-variable] int hit; ^ Proxy.o: In function `Proxy::handleSaveAllStores(char const*) const': Proxy.cpp:(.text+0x2cac): warning: the use of `tempnam' is dangerous, better use `mkstemp' Pipe.cpp: In function ‘FILE* Popen(char* const*, const char*)’: Pipe.cpp:240:23: warning: ignoring return value of ‘int setgid(__gid_t)’, declared with attribute warn_unused_result [-Wunused-result] setgid(getgid()); ^ Pipe.cpp:241:23: warning: ignoring return value of ‘int setuid(__uid_t)’, declared with attribute warn_unused_result [-Wunused-result] setuid(getuid()); ^ There was also a hidden problem in the way Proxy::handleSaveAllStores was checking for an error in the returning value from the call to the virtual method handleSaveAllStores of the specific proxy class really being used (ClientProxy or ServerProxy). Former code was considering the value 0 as the returning value in case of an error whereas both subclasses return the value -1 when there is an error in their handleSaveAllStores method. This bug has been fixed in this commit taking advantage of the modification that was already being made to this method in order to replace tempnam function with the more secure one mkstemp. Fixes: ArcticaProject/nx-libs#103 --- nxcomp/Loop.cpp | 10 ---- nxcomp/Pipe.cpp | 10 +++- nxcomp/Proxy.cpp | 150 ++++++++++++++++++++++++++++++++--------------- nxcomp/Proxy.h | 2 +- nxcomp/ServerChannel.cpp | 18 ++++++ 5 files changed, 129 insertions(+), 61 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 0f9fec6ef..a60bfc9ae 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -9393,12 +9393,7 @@ int ParseRemoteOptions(char *opts) int hasDelta = 0; int hasStream = 0; int hasData = 0; - int hasLimit = 0; - int hasRender = 0; - int hasTaint = 0; int hasType = 0; - int hasStrict = 0; - int hasShseg = 0; // // Get rid of the terminating space. @@ -9623,7 +9618,6 @@ int ParseRemoteOptions(char *opts) } } - hasLimit = 1; } else if (strcasecmp(name, "render") == 0) { @@ -9636,7 +9630,6 @@ int ParseRemoteOptions(char *opts) useRender = ValidateArg("remote", name, value); } - hasRender = 1; } else if (strcasecmp(name, "taint") == 0) { @@ -9649,7 +9642,6 @@ int ParseRemoteOptions(char *opts) useTaint = ValidateArg("remote", name, value); } - hasTaint = 1; } else if (strcasecmp(name, "type") == 0) { @@ -9682,7 +9674,6 @@ int ParseRemoteOptions(char *opts) useStrict = ValidateArg("remote", name, value); } - hasStrict = 1; } else if (strcasecmp(name, "shseg") == 0) { @@ -9704,7 +9695,6 @@ int ParseRemoteOptions(char *opts) return -1; } - hasShseg = 1; } else if (strcasecmp(name, "delta") == 0) { diff --git a/nxcomp/Pipe.cpp b/nxcomp/Pipe.cpp index aacbbaeb3..15c7a31b3 100644 --- a/nxcomp/Pipe.cpp +++ b/nxcomp/Pipe.cpp @@ -237,8 +237,14 @@ FILE *Popen(char * const parameters[], const char *type) struct passwd *pwent = getpwuid(getuid()); if (pwent) initgroups(pwent->pw_name,getgid()); - setgid(getgid()); - setuid(getuid()); + if (setgid(getgid()) == -1) + { + _exit(127); + } + if (setuid(getuid()) == -1) + { + _exit(127); + } if (*type == 'r') { diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index ae115fede..7655ccb40 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #ifdef ANDROID @@ -4194,6 +4195,12 @@ int Proxy::handleSaveStores() char *cacheToAdopt = NULL; + // + // Set to false the indicator for cumulative store + // size too small + // + bool isTooSmall = false; + if (control -> PersistentCacheEnableSave) { #ifdef TEST @@ -4201,7 +4208,7 @@ int Proxy::handleSaveStores() << logofs_flush; #endif - cacheToAdopt = handleSaveAllStores(control -> PersistentCachePath); + cacheToAdopt = handleSaveAllStores(control -> PersistentCachePath, isTooSmall); } #ifdef TEST else @@ -4253,21 +4260,28 @@ int Proxy::handleSaveStores() return 1; } - #ifdef TEST else { - *logofs << "Proxy: No cache file produced from message stores.\n" - << logofs_flush; - } - #endif + #ifdef TEST + *logofs << "Proxy: No cache file produced from message stores.\n" + << logofs_flush; + #endif - // - // It can be that we didn't generate a new cache - // because store was too small or persistent cache - // was disabled. This is not an error. - // + // + // It can be that we didn't generate a new cache + // because store was too small or persistent cache + // was disabled. This is not an error. + // - return 0; + if (control -> PersistentCacheEnableSave && !isTooSmall) + { + return -1; + } + else + { + return 0; + } + } } int Proxy::handleLoadStores() @@ -4875,8 +4889,10 @@ int Proxy::handleLoadVersion(const unsigned char *buffer, int &major, return 1; } -char *Proxy::handleSaveAllStores(const char *savePath) const +char *Proxy::handleSaveAllStores(const char *savePath, bool & isTooSmall) const { + isTooSmall = false; + int cumulativeSize = MessageStore::getCumulativeTotalStorageSize(); if (cumulativeSize < control -> PersistentCacheThreshold) @@ -4888,6 +4904,13 @@ char *Proxy::handleSaveAllStores(const char *savePath) const << ".\n" << logofs_flush; #endif + // + // Cumulative store size is smaller than threshold + // so the indicator is set to true + // + + isTooSmall = true; + return NULL; } else if (savePath == NULL) @@ -4923,20 +4946,28 @@ char *Proxy::handleSaveAllStores(const char *savePath) const md5_state_t *md5StateClient = NULL; md5_byte_t *md5DigestClient = NULL; - char *tempName = NULL; - char md5String[MD5_LENGTH * 2 + 2]; char fullName[strlen(savePath) + MD5_LENGTH * 2 + 4]; - if (control -> ProxyMode == proxy_client) - { - tempName = tempnam(savePath, "Z-C-"); - } - else - { - tempName = tempnam(savePath, "Z-S-"); - } + // + // Prepare the template for the temporary file + // + + const char* const uniqueTemplate = "XXXXXX"; + char tempName[strlen(savePath) + strlen("/") + 4 + strlen(uniqueTemplate) + 1]; + + snprintf(tempName, sizeof tempName, "%s/%s%s", + savePath, + control -> ProxyMode == proxy_client ? + "Z-C-" : + "Z-S-", + uniqueTemplate); + + #ifdef TEST + *logofs << "Proxy: Generating temporary file with template '" + << tempName << "'.\n" << logofs_flush; + #endif // // Change the mask to make the file only @@ -4946,35 +4977,68 @@ char *Proxy::handleSaveAllStores(const char *savePath) const mode_t fileMode = umask(0077); - cachefs = new ofstream(tempName, ios::out | ios::binary); - - umask(fileMode); + // + // Generate a unique temporary filename from tempName + // and then create and open the file + // - if (tempName == NULL || cachefs == NULL) + int fdTemp = mkstemp(tempName); + if (fdTemp == -1) { #ifdef PANIC *logofs << "Proxy: PANIC! Can't create temporary file in '" - << savePath << "'.\n" << logofs_flush; + << savePath << "'. Cause = " << strerror(errno) << ".\n" << logofs_flush; #endif cerr << "Error" << ": Can't create temporary file in '" - << savePath << "'.\n"; + << savePath << "'. Cause = " << strerror(errno) << ".\n"; - if (tempName != NULL) - { - free(tempName); - } + umask(fileMode); - if (cachefs != NULL) - { - delete cachefs; - } + EnableSignals(); + + return NULL; + } + + #ifdef TEST + *logofs << "Proxy: Saving cache to file '" + << tempName << "'.\n" << logofs_flush; + #endif + + // + // Create and open the output stream for the new temporary + // file + // + + cachefs = new (std::nothrow) ofstream(tempName, ios::out | ios::binary); + if ((cachefs == NULL) || cachefs->fail()) + { + #ifdef PANIC + *logofs << "Proxy: PANIC! Can't create stream for temporary file '" + << tempName << "'.\n" << logofs_flush; + #endif + + cerr << "Error" << ": Can't create stream for temporary file '" + << tempName << "'.\n"; + + close(fdTemp); + unlink(tempName); + + umask(fileMode); EnableSignals(); return NULL; } + // + // Close the file descriptor returned by mkstemp + // and restore the old mask + // + + close(fdTemp); + umask(fileMode); + md5StateStream = new md5_state_t(); md5DigestStream = new md5_byte_t[MD5_LENGTH]; @@ -5007,8 +5071,6 @@ char *Proxy::handleSaveAllStores(const char *savePath) const delete md5StateStream; delete [] md5DigestStream; - free(tempName); - EnableSignals(); return NULL; @@ -5029,8 +5091,6 @@ char *Proxy::handleSaveAllStores(const char *savePath) const delete md5StateStream; delete [] md5DigestStream; - free(tempName); - EnableSignals(); return NULL; @@ -5086,7 +5146,7 @@ char *Proxy::handleSaveAllStores(const char *savePath) const #endif - if (allSaved == 0) + if (allSaved == -1) { handleFailOnSave(tempName, "C"); @@ -5098,8 +5158,6 @@ char *Proxy::handleSaveAllStores(const char *savePath) const delete md5StateClient; delete [] md5DigestClient; - free(tempName); - EnableSignals(); return NULL; @@ -5139,8 +5197,6 @@ char *Proxy::handleSaveAllStores(const char *savePath) const delete md5StateClient; delete [] md5DigestClient; - free(tempName); - EnableSignals(); return NULL; @@ -5181,8 +5237,6 @@ char *Proxy::handleSaveAllStores(const char *savePath) const delete md5StateClient; delete [] md5DigestClient; - free(tempName); - // // Restore the original handlers. // diff --git a/nxcomp/Proxy.h b/nxcomp/Proxy.h index 2f3be7596..c0fdfcce9 100644 --- a/nxcomp/Proxy.h +++ b/nxcomp/Proxy.h @@ -985,7 +985,7 @@ class Proxy int handleLoadStores(); int handleSaveStores(); - char *handleSaveAllStores(const char *savePath) const; + char *handleSaveAllStores(const char *savePath, bool & isTooSmall) const; virtual int handleSaveAllStores(ostream *cachefs, md5_state_t *md5StateStream, md5_state_t *md5StateClient) const = 0; diff --git a/nxcomp/ServerChannel.cpp b/nxcomp/ServerChannel.cpp index e0bd2132f..ee39903a7 100644 --- a/nxcomp/ServerChannel.cpp +++ b/nxcomp/ServerChannel.cpp @@ -4373,6 +4373,24 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length } } // End of switch on opcode. + // + // TODO: at the moment the variable hit was being set + // but no used, so to avoid the corresponding warning + // it has been added this block with a logging command. + // This code will be probably optimized away when none + // of the defines is set, but if there is no additional + // use for the hit variable in the future, then maybe + // it could be removed completely. + // + + if (hit) + { + #if defined(TEST) || defined(OPCODES) + *logofs << "handleWrite: Cached flag enabled in handled request.\n" + << logofs_flush; + #endif + } + // // A packed image request can generate more than just // a single X_PutImage. Write buffer is handled inside -- cgit v1.2.3 From b326eda7328e95200f7d70efde35ce51a14bab3d Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 27 Apr 2016 13:56:55 +0200 Subject: nxcomp: Rephrase comment in previous commit. --- nxcomp/ServerChannel.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/ServerChannel.cpp b/nxcomp/ServerChannel.cpp index ee39903a7..ed2f472c7 100644 --- a/nxcomp/ServerChannel.cpp +++ b/nxcomp/ServerChannel.cpp @@ -4375,9 +4375,9 @@ int ServerChannel::handleWrite(const unsigned char *message, unsigned int length // // TODO: at the moment the variable hit was being set - // but no used, so to avoid the corresponding warning - // it has been added this block with a logging command. - // This code will be probably optimized away when none + // but not used, so to avoid the corresponding warning + // this logging block has been added. + // This code will probably be optimized away when none // of the defines is set, but if there is no additional // use for the hit variable in the future, then maybe // it could be removed completely. -- cgit v1.2.3 From 3713346f3959782c5e5d1ddd0252f25fb319d732 Mon Sep 17 00:00:00 2001 From: Salvador Fandino Date: Wed, 20 Apr 2016 16:22:56 +0200 Subject: Provide support for channel endpoints being UNIX file sockets in addition to being TCP/IP sockets. --- nxcomp/ChannelEndPoint.cpp | 245 +++++++++++++++++++++ nxcomp/ChannelEndPoint.h | 61 ++++++ nxcomp/ClientProxy.cpp | 13 +- nxcomp/ClientProxy.h | 7 +- nxcomp/Loop.cpp | 528 +++++++++++++++++++++------------------------ nxcomp/Makefile.in | 1 + nxcomp/Proxy.cpp | 35 ++- nxcomp/Proxy.h | 17 +- nxcomp/ServerProxy.cpp | 25 ++- nxcomp/ServerProxy.h | 17 +- 10 files changed, 634 insertions(+), 315 deletions(-) create mode 100644 nxcomp/ChannelEndPoint.cpp create mode 100644 nxcomp/ChannelEndPoint.h (limited to 'nxcomp') diff --git a/nxcomp/ChannelEndPoint.cpp b/nxcomp/ChannelEndPoint.cpp new file mode 100644 index 000000000..cb35e52d2 --- /dev/null +++ b/nxcomp/ChannelEndPoint.cpp @@ -0,0 +1,245 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2015 Qindel Formacion y Servicios SL. */ +/* */ +/* This program is free software; you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License Version 2, as */ +/* published by the Free Software Foundation. */ +/* */ +/* This program is distributed in the hope that it will be useful, but */ +/* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTA- */ +/* BILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General */ +/* Public License for more details. */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program; if not, you can request a copy to Qindel */ +/* or write to the Free Software Foundation, Inc., 59 Temple Place, Suite */ +/* 330, Boston, MA 02111-1307 USA */ +/* */ +/* All rights reserved. */ +/* */ +/**************************************************************************/ + +#include +#include +#include +#include + +#include "ChannelEndPoint.h" + +#include "NXalert.h" + +ChannelEndPoint::ChannelEndPoint(const char *spec) + : defaultTCPPort_(0), defaultTCPInterface_(0), + defaultUnixPath_(NULL) { + spec_ = (spec ? strdup(spec) : NULL); +} + +void +ChannelEndPoint::setSpec(const char *spec) { + if (spec_) free(spec_); + + if (spec && strlen(spec)) + spec_ = strdup(spec); + else + spec_ = NULL; +} + +void +ChannelEndPoint::setSpec(int port) { + if (port >= 0) { + char tmp[20]; + sprintf(tmp, "%d", port); + setSpec(tmp); + } + else setSpec((char*)NULL); +} + +void +ChannelEndPoint::setDefaultTCPPort(long port) { + defaultTCPPort_ = port; +} + +void +ChannelEndPoint::setDefaultTCPInterface(int publicInterface) { + defaultTCPInterface_ = publicInterface; +} + +void +ChannelEndPoint::setDefaultUnixPath(char *path) { + if (defaultUnixPath_) free(defaultUnixPath_); + + if (path && strlen(path)) + defaultUnixPath_ = strdup(path); + else + defaultUnixPath_ = NULL; +} + +void +ChannelEndPoint::disable() { setSpec("0"); } + +bool +ChannelEndPoint::specIsPort(long *port) const { + if (port) *port = 0; + long p = -1; + if (spec_) { + char *end; + p = strtol(spec_, &end, 10); + if ((end == spec_) || (*end != '\0')) + return false; + } + + if (port) *port = p; + return true; +} + +bool +ChannelEndPoint::getUnixPath(char **unixPath) const { + + if (unixPath) *unixPath = 0; + + long p; + char *path = NULL; + + if (specIsPort(&p)) { + if (p != 1) return false; + } + else if (spec_ && (strncmp("unix:", spec_, 5) == 0)) { + path = spec_ + 5; + } + else + return false; + + if (!path || (*path == '\0')) { + path = defaultUnixPath_; + if (!path) + return false; + } + + if (unixPath) + *unixPath = strdup(path); + + return true; +} + +// FIXME!!! +static const char * +getComputerName() { + // + // Strangely enough, under some Windows OSes SMB + // service doesn't bind to localhost. Fall back + // to localhost if can't find computer name in + // the environment. In future we should try to + // bind to localhost and then try the other IPs. + // + + const char *hostname = NULL; + + #ifdef __CYGWIN32__ + + hostname = getenv("COMPUTERNAME"); + + #endif + + if (hostname == NULL) + { + hostname = "localhost"; + } + + return hostname; +} + +bool +ChannelEndPoint::getTCPHostAndPort(char **host, long *port) const { + long p; + char *h = NULL; + ssize_t h_len; + + if (host) *host = NULL; + if (port) *port = 0; + + if (specIsPort(&p)) { + h_len = 0; + } + else if (spec_ && (strncmp("tcp:", spec_, 4) == 0)) { + h = spec_ + 4; + char *colon = strrchr(h, ':'); + if (colon) { + char *end; + h_len = colon++ - h; + p = strtol(colon, &end, 10); + if ((end == colon) || (*end != '\0')) + return false; + } + else { + h_len = strlen(h); + p = 1; + } + } + else + return false; + + if (p == 1) p = defaultTCPPort_; + if (p < 1) return false; + + if (port) + *port = p; + + if (host) + *host = ( h_len + ? strndup(h, h_len) + : strdup(defaultTCPInterface_ ? getComputerName() : "localhost")); + + return true; +} + +bool +ChannelEndPoint::enabled() const { + return (getUnixPath() || getTCPHostAndPort()); +} + +long ChannelEndPoint::getTCPPort() const { + long port; + if (getTCPHostAndPort(NULL, &port)) return port; + return -1; +} + +bool +ChannelEndPoint::validateSpec() { + return (specIsPort() || getUnixPath() || getTCPHostAndPort()); +} + +ChannelEndPoint &ChannelEndPoint::operator=(const ChannelEndPoint &other) { + char *old; + defaultTCPPort_ = other.defaultTCPPort_; + defaultTCPInterface_ = other.defaultTCPInterface_; + old = defaultUnixPath_; + defaultUnixPath_ = (other.defaultUnixPath_ ? strdup(other.defaultUnixPath_) : NULL); + free(old); + old = spec_; + spec_ = (other.spec_ ? strdup(other.spec_) : NULL); + free(old); + return *this; +} + +std::ostream& operator<<(std::ostream& os, const ChannelEndPoint& endPoint) { + if (endPoint.enabled()) { + char *unixPath, *host; + long port; + if (endPoint.getUnixPath(&unixPath)) { + os << "unix:" << unixPath; + free(unixPath); + } + else if (endPoint.getTCPHostAndPort(&host, &port)) { + os << "tcp:" << host << ":" << port; + free(host); + } + else { + os << "(invalid)"; + } + } + else { + os << "(disabled)"; + } + return os; +} diff --git a/nxcomp/ChannelEndPoint.h b/nxcomp/ChannelEndPoint.h new file mode 100644 index 000000000..5b4e75345 --- /dev/null +++ b/nxcomp/ChannelEndPoint.h @@ -0,0 +1,61 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2015 Qindel Formacion y Servicios SL. */ +/* */ +/* This program is free software; you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License Version 2, as */ +/* published by the Free Software Foundation. */ +/* */ +/* This program is distributed in the hope that it will be useful, but */ +/* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTA- */ +/* BILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General */ +/* Public License for more details. */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program; if not, you can request a copy to Qindel */ +/* or write to the Free Software Foundation, Inc., 59 Temple Place, Suite */ +/* 330, Boston, MA 02111-1307 USA */ +/* */ +/* All rights reserved. */ +/* */ +/**************************************************************************/ + +#ifndef ChannelEndPoint_H +#define ChannelEndPoint_H + +#include +#include + +class ChannelEndPoint +{ + private: + long defaultTCPPort_; + int defaultTCPInterface_; // 0=localhost, otherwise IP of public interface. + char *defaultUnixPath_; + char *spec_; + + bool specIsPort(long *port = NULL) const; + + public: + ChannelEndPoint(const char *spec = NULL); + ChannelEndPoint &operator=(const ChannelEndPoint &other); + + bool enabled() const; + bool disabled() { return !enabled(); } + void disable(); + void setSpec(const char *spec); + void setSpec(int port); + void setDefaultTCPPort(long port); + void setDefaultTCPInterface(int publicInterface); + void setDefaultUnixPath(char *path); + + bool getUnixPath(char **path = NULL) const; + bool getTCPHostAndPort(char **hostname = NULL, long *port = NULL) const; + long getTCPPort() const; + + bool validateSpec(); +}; + +std::ostream& operator<<(std::ostream& os, const ChannelEndPoint& endPoint); + +#endif diff --git a/nxcomp/ClientProxy.cpp b/nxcomp/ClientProxy.cpp index ef63bb0eb..7dd3dbbc6 100644 --- a/nxcomp/ClientProxy.cpp +++ b/nxcomp/ClientProxy.cpp @@ -68,8 +68,11 @@ void ClientProxy::handleDisplayConfiguration(const char *xServerDisplay, int xSe #endif } -void ClientProxy::handlePortConfiguration(int cupsServerPort, int smbServerPort, int mediaServerPort, - int httpServerPort, const char *fontServerPort) +void ClientProxy::handlePortConfiguration(ChannelEndPoint &cupsServerPort, + ChannelEndPoint &smbServerPort, + ChannelEndPoint &mediaServerPort, + ChannelEndPoint &httpServerPort, + const char *fontServerPort) { delete [] fontServerPort_; @@ -141,8 +144,8 @@ int ClientProxy::handleNewConnectionFromProxy(T_channel_type type, int channelId // Connect on the TCP port number. // - return handleNewGenericConnectionFromProxy(channelId, channel_font, "localhost", - port, "font"); + return handleNewGenericConnectionFromProxyTCP(channelId, channel_font, "localhost", + port, "font"); } else { @@ -150,7 +153,7 @@ int ClientProxy::handleNewConnectionFromProxy(T_channel_type type, int channelId // Connect to the Unix path. // - return handleNewGenericConnectionFromProxy(channelId, channel_font, "localhost", + return handleNewGenericConnectionFromProxyUnix(channelId, channel_font, fontServerPort_, "font"); } } diff --git a/nxcomp/ClientProxy.h b/nxcomp/ClientProxy.h index 88d345f00..d58fae77b 100644 --- a/nxcomp/ClientProxy.h +++ b/nxcomp/ClientProxy.h @@ -38,8 +38,11 @@ class ClientProxy : public Proxy virtual void handleDisplayConfiguration(const char *xServerDisplay, int xServerAddrFamily, sockaddr *xServerAddr, unsigned int xServerAddrLength); - virtual void handlePortConfiguration(int cupsServerPort, int smbServerPort, int mediaServerPort, - int httpServerPort, const char *fontServerPort); + virtual void handlePortConfiguration(ChannelEndPoint &cupsServerPort, + ChannelEndPoint &smbServerPort, + ChannelEndPoint &mediaServerPort, + ChannelEndPoint &httpServerPort, + const char *fontServerPort); protected: diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index a60bfc9ae..97020d162 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -36,7 +36,7 @@ #include #include #include - +#include #include #include #include @@ -89,6 +89,7 @@ typedef int socklen_t; #include "ServerProxy.h" #include "Message.h" +#include "ChannelEndPoint.h" // // System specific defines. @@ -437,7 +438,10 @@ static int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, // a new connection. // -static int ListenConnection(int port, const char *label); +static int ListenConnection(ChannelEndPoint &endPoint, const char *label); +static int ListenConnectionTCP(const char *host, long port, const char *label); +static int ListenConnectionUnix(const char *unixPath, const char *label); +static int ListenConnectionAny(sockaddr *addr, socklen_t addrlen, const char *label); static int AcceptConnection(int fd, int domain, const char *label); // @@ -475,6 +479,8 @@ static const char *GetArg(int &argi, int argc, const char **argv); static int CheckArg(const char *type, const char *name, const char *value); static int ParseArg(const char *type, const char *name, const char *value); static int ValidateArg(const char *type, const char *name, const char *value); +static void SetAndValidateChannelEndPointArg(const char *type, const char *name, const char *value, + ChannelEndPoint &endPoint); static int LowercaseArg(const char *type, const char *name, char *value); static int CheckSignal(int signal); @@ -978,12 +984,12 @@ static int connectPort = -1; // Helper channels are disabled by default. // -static int cupsPort = -1; -static int auxPort = -1; -static int smbPort = -1; -static int mediaPort = -1; -static int httpPort = -1; -static int slavePort = -1; +static ChannelEndPoint cupsPort; +static ChannelEndPoint auxPort; +static ChannelEndPoint smbPort; +static ChannelEndPoint mediaPort; +static ChannelEndPoint httpPort; +static ChannelEndPoint slavePort; // // Can be either a port number or a Unix @@ -4474,7 +4480,7 @@ int SetupServiceSockets() // Since ProtoStep7 (#issue 108) int port = atoi(fontPort); - if ((fontFD = ListenConnection(port, "font")) < 0) + if ((fontFD = ListenConnectionTCP("localhost", port, "font")) < 0) { useFontSocket = 0; } @@ -4504,56 +4510,41 @@ int SetupServiceSockets() return 1; } -int ListenConnection(int port, const char *label) +int ListenConnectionAny(sockaddr *addr, socklen_t addrlen, const char *label) { - sockaddr_in tcpAddr; - - unsigned int portTCP = port; - - int newFD = socket(AF_INET, SOCK_STREAM, PF_UNSPEC); + int newFD = socket(addr->sa_family, SOCK_STREAM, PF_UNSPEC); if (newFD == -1) { #ifdef PANIC *logofs << "Loop: PANIC! Call to socket failed for " << label - << " TCP socket. Error is " << EGET() << " '" + << " socket. Error is " << EGET() << " '" << ESTR() << "'.\n" << logofs_flush; #endif cerr << "Error" << ": Call to socket failed for " << label - << " TCP socket. Error is " << EGET() << " '" + << " socket. Error is " << EGET() << " '" << ESTR() << "'.\n"; goto SetupSocketError; } - else if (SetReuseAddress(newFD) < 0) + if (SetReuseAddress(newFD) < 0) { + // SetReuseAddress already warns with an error goto SetupSocketError; } - tcpAddr.sin_family = AF_INET; - tcpAddr.sin_port = htons(portTCP); - if ( loopbackBind ) - { - tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - } - else - { - tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); - } - - if (bind(newFD, (sockaddr *) &tcpAddr, sizeof(tcpAddr)) == -1) + if (bind(newFD, addr, addrlen) == -1) { #ifdef PANIC *logofs << "Loop: PANIC! Call to bind failed for " << label - << " TCP port " << port << ". Error is " << EGET() + << ". Error is " << EGET() << " '" << ESTR() << "'.\n" << logofs_flush; #endif cerr << "Error" << ": Call to bind failed for " << label - << " TCP port " << port << ". Error is " << EGET() + << ". Error is " << EGET() << " '" << ESTR() << "'.\n"; - goto SetupSocketError; } @@ -4561,12 +4552,12 @@ int ListenConnection(int port, const char *label) { #ifdef PANIC *logofs << "Loop: PANIC! Call to bind failed for " << label - << " TCP port " << port << ". Error is " << EGET() + << ". Error is " << EGET() << " '" << ESTR() << "'.\n" << logofs_flush; #endif cerr << "Error" << ": Call to bind failed for " << label - << " TCP port " << port << ". Error is " << EGET() + << ". Error is " << EGET() << " '" << ESTR() << "'.\n"; goto SetupSocketError; @@ -4590,6 +4581,82 @@ SetupSocketError: // HandleCleanup(); + return -1; +} + +int ListenConnectionUnix(const char *path, const char *label) +{ + + sockaddr_un unixAddr; + unixAddr.sun_family = AF_UNIX; +#ifdef UNIX_PATH_MAX + if (strlen(path) >= UNIX_PATH_MAX) +#else + if (strlen(path) >= sizeof(unixAddr.sun_path)) +#endif + { + #ifdef PANIC + *logofs << "Loop: PANIC! Socket path \"" << path << "\" for " + << label << " is too long.\n" << logofs_flush; + #endif + + cerr << "Error" << ": Socket path \"" << path << "\" for " + << label << " is too long.\n"; + + HandleCleanup(); + return -1; + } + + strcpy(unixAddr.sun_path, path); + return ListenConnectionAny((sockaddr *)&unixAddr, sizeof(unixAddr), label); +} + +int ListenConnectionTCP(const char *host, long port, const char *label) +{ + sockaddr_in tcpAddr; + tcpAddr.sin_family = AF_INET; + tcpAddr.sin_port = htons(port); + + if (loopbackBind || + !host || + !strcmp(host, "") || + !strcmp(host, "localhost")) { + tcpAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + else if(strcmp(host, "*") == 0) { + tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY); + } + else { + int ip = tcpAddr.sin_addr.s_addr = GetHostAddress(host); + if (ip == 0) + { + #ifdef PANIC + *logofs << "Loop: PANIC! Unknown " << label << " host '" << host + << "'.\n" << logofs_flush; + #endif + + cerr << "Error" << ": Unknown " << label << " host '" << host + << "'.\n"; + + HandleCleanup(); + return -1; + } + } + + return ListenConnectionAny((sockaddr *)&tcpAddr, sizeof(tcpAddr), label); +} + +int ListenConnection(ChannelEndPoint &endpoint, const char *label) +{ + char *unixPath, *host; + long port; + if (endpoint.getUnixPath(&unixPath)) { + return ListenConnectionUnix(unixPath, label); + } + else if (endpoint.getTCPHostAndPort(&host, &port)) { + return ListenConnectionTCP(host, port, label); + } + return -1; } static int AcceptConnection(int fd, int domain, const char *label) @@ -5521,12 +5588,12 @@ void CleanupLocal() listenPort = -1; connectPort = -1; - cupsPort = -1; - auxPort = -1; - smbPort = -1; - mediaPort = -1; - httpPort = -1; - slavePort = -1; + cupsPort.disable(); + auxPort.disable(); + smbPort.disable(); + mediaPort.disable(); + httpPort.disable(); + slavePort.disable(); *fontPort = '\0'; @@ -8070,6 +8137,35 @@ int ReadRemoteData(int fd, char *buffer, int size, char stop) return -1; } +static int +hexval(char c) { + if ((c >= '0') && (c <= '9')) + return c - '0'; + if ((c >= 'a') && (c <= 'f')) + return c - 'a' + 10; + if ((c >= 'A') && (c <= 'F')) + return c - 'A' + 10; + return -1; +} + +static void +URLDecodeInPlace(char *str) { + if (str) { + char *to = str; + while (str[0]) { + if ((str[0] == '%') && + (hexval(str[1]) >= 0) && + (hexval(str[2]) >= 0)) { + *(to++) = hexval(str[1]) * 16 + hexval(str[2]); + str += 3; + } + else + *(to++) = *(str++); + } + *to = '\0'; + } +} + int WriteLocalData(int fd, const char *buffer, int size) { int position = 0; @@ -8357,6 +8453,7 @@ int ParseEnvironmentOptions(const char *env, int force) while (name) { value = strtok(NULL, ","); + URLDecodeInPlace(value); if (CheckArg("environment", name, value) < 0) { @@ -8750,7 +8847,7 @@ int ParseEnvironmentOptions(const char *env, int force) } else if (strcasecmp(name, "cups") == 0) { - cupsPort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, cupsPort); } else if (strcasecmp(name, "sync") == 0) { @@ -8762,25 +8859,25 @@ int ParseEnvironmentOptions(const char *env, int force) cerr << "Warning" << ": No 'sync' channel in current version. " << "Assuming 'cups' channel.\n"; - cupsPort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, cupsPort); } else if (strcasecmp(name, "keybd") == 0 || strcasecmp(name, "aux") == 0) { - auxPort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, auxPort); } else if (strcasecmp(name, "samba") == 0 || strcasecmp(name, "smb") == 0) { - smbPort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, smbPort); } else if (strcasecmp(name, "media") == 0) { - mediaPort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, mediaPort); } else if (strcasecmp(name, "http") == 0) { - httpPort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, httpPort); } else if (strcasecmp(name, "font") == 0) { @@ -8788,7 +8885,7 @@ int ParseEnvironmentOptions(const char *env, int force) } else if (strcasecmp(name, "slave") == 0) { - slavePort = ValidateArg("local", name, value); + SetAndValidateChannelEndPointArg("local", name, value, slavePort); } else if (strcasecmp(name, "mask") == 0) { @@ -11515,237 +11612,105 @@ int SetPorts() // ing, causing a loop. // - if (cupsPort <= 0) - { - #ifdef TEST - *logofs << "Loop: Disabling cups connections.\n" - << logofs_flush; - #endif - - cupsPort = 0; - - useCupsSocket = 0; - } - else - { - if (control -> ProxyMode == proxy_client) - { - if (cupsPort == 1) - { - cupsPort = DEFAULT_NX_CUPS_PORT_OFFSET + proxyPort; - } - + useCupsSocket = 0; + if (cupsPort.enabled()) { + if (control -> ProxyMode == proxy_client) { + cupsPort.setDefaultTCPPort(DEFAULT_NX_CUPS_PORT_OFFSET + proxyPort); useCupsSocket = 1; } else - { - if (cupsPort == 1) - { - // - // Use the well-known 631/tcp port of the - // Internet Printing Protocol. - // - - cupsPort = 631; - } - - useCupsSocket = 0; - } - - #ifdef TEST - *logofs << "Loop: Using cups port '" << cupsPort - << "'.\n" << logofs_flush; - #endif + cupsPort.setDefaultTCPPort(631); } - if (auxPort <= 0) - { - #ifdef TEST - *logofs << "Loop: Disabling auxiliary X11 connections.\n" +#ifdef TEST + *logofs << "Loop: cups port: " << cupsPort->getDebugSpec() << "\n" << logofs_flush; - #endif - - auxPort = 0; - - useAuxSocket = 0; - } - else - { - if (control -> ProxyMode == proxy_client) - { - if (auxPort == 1) - { - auxPort = DEFAULT_NX_AUX_PORT_OFFSET + proxyPort; - } +#endif + useAuxSocket = 0; + if (auxPort.enabled()) { + if (control -> ProxyMode == proxy_client) { + auxPort.setDefaultTCPPort(DEFAULT_NX_AUX_PORT_OFFSET + proxyPort); useAuxSocket = 1; } - else - { - // - // Auxiliary X connections are always forwarded - // to the display where the session is running. - // The only value accepted is 1. - // + else { + auxPort.setDefaultTCPPort(1); - if (auxPort != 1) - { - #ifdef WARNING + if (auxPort.getTCPPort() != 1) { + +#ifdef WARNING *logofs << "Loop: WARNING! Overriding auxiliary X11 " << "port with new value '" << 1 << "'.\n" << logofs_flush; - #endif +#endif cerr << "Warning" << ": Overriding auxiliary X11 " << "port with new value '" << 1 << "'.\n"; - auxPort = 1; + auxPort.setSpec("1"); } - - useAuxSocket = 0; } - - #ifdef TEST - *logofs << "Loop: Using auxiliary X11 port '" << auxPort - << "'.\n" << logofs_flush; - #endif } - if (smbPort <= 0) - { - #ifdef TEST - *logofs << "Loop: Disabling SMB connections.\n" - << logofs_flush; - #endif - - smbPort = 0; - - useSmbSocket = 0; - } - else - { - if (control -> ProxyMode == proxy_client) - { - if (smbPort == 1) - { - smbPort = DEFAULT_NX_SMB_PORT_OFFSET + proxyPort; - } +#ifdef TEST + *logofs << "Loop: aux port: " << auxPort->getDebugSpec() << "\n" + << logofs_flush; +#endif - useSmbSocket = 1; + useSmbSocket = 0; + if (smbPort.enabled()) { + if (control -> ProxyMode == proxy_client) { + auxPort.setDefaultTCPPort(DEFAULT_NX_SMB_PORT_OFFSET + proxyPort); + useAuxSocket = 1; } else - { - if (smbPort == 1) - { - // - // Assume the 139/tcp port used for SMB - // over NetBIOS over TCP. - // - - smbPort = 139; - } - - useSmbSocket = 0; - } - - #ifdef TEST - *logofs << "Loop: Using SMB port '" << smbPort - << "'.\n" << logofs_flush; - #endif + auxPort.setDefaultTCPPort(139); } - if (mediaPort <= 0) - { - #ifdef TEST - *logofs << "Loop: Disabling multimedia connections.\n" - << logofs_flush; - #endif - - mediaPort = 0; - useMediaSocket = 0; - } - else - { - if (control -> ProxyMode == proxy_client) - { - if (mediaPort == 1) - { - mediaPort = DEFAULT_NX_MEDIA_PORT_OFFSET + proxyPort; - } +#ifdef TEST + *logofs << "Loop: smb port: " << smbPort->getDebugSpec() << "\n" + << logofs_flush; +#endif + useMediaSocket = 0; + if (mediaPort.enabled()) { + if (control -> ProxyMode == proxy_client) { + mediaPort.setDefaultTCPPort(DEFAULT_NX_MEDIA_PORT_OFFSET + proxyPort); useMediaSocket = 1; } - else - { - if (mediaPort == 1) - { - // - // We don't have a well-known port to - // be used for media connections. - // - - #ifdef PANIC - *logofs << "Loop: PANIC! No port specified for multimedia connections.\n" - << logofs_flush; - #endif + else if (mediaPort.getTCPPort() == 1) { +#ifdef PANIC + *logofs << "Loop: PANIC! No port specified for multimedia connections.\n" + << logofs_flush; +#endif - cerr << "Error" << ": No port specified for multimedia connections.\n"; + cerr << "Error" << ": No port specified for multimedia connections.\n"; - HandleCleanup(); - } - - useMediaSocket = 0; + HandleCleanup(); } - - #ifdef TEST - *logofs << "Loop: Using multimedia port '" << mediaPort - << "'.\n" << logofs_flush; - #endif } - if (httpPort <= 0) - { - #ifdef TEST - *logofs << "Loop: Disabling HTTP connections.\n" - << logofs_flush; - #endif - - httpPort = 0; - - useHttpSocket = 0; - } - else - { - if (control -> ProxyMode == proxy_client) - { - if (httpPort == 1) - { - httpPort = DEFAULT_NX_HTTP_PORT_OFFSET + proxyPort; - } +#ifdef TEST + *logofs << "Loop: Using multimedia port '" << mediaPort->getDebugSpec() + << "'.\n" << logofs_flush; +#endif + useHttpSocket = 0; + if (httpPort.enabled()) { + if (control -> ProxyMode == proxy_client) { + httpPort.setDefaultTCPPort(DEFAULT_NX_HTTP_PORT_OFFSET + proxyPort); useHttpSocket = 1; } else - { - if (httpPort == 1) - { - // - // Use the well-known 80/tcp port. - // - - httpPort = 80; - } - - useHttpSocket = 0; - } - - #ifdef TEST - *logofs << "Loop: Using HTTP port '" << httpPort - << "'.\n" << logofs_flush; - #endif + httpPort.setDefaultTCPPort(80); } +#ifdef TEST + *logofs << "Loop: Using HTTP port '" << httpPort->getDebugSpec() + << "'.\n" << logofs_flush; +#endif + if (ParseFontPath(fontPort) <= 0) { #ifdef TEST @@ -11781,44 +11746,20 @@ int SetPorts() #endif } - if (slavePort <= 0) - { - #ifdef TEST - *logofs << "Loop: Disabling slave connections.\n" - << logofs_flush; - #endif - - slavePort = 0; - - useSlaveSocket = 0; - } - else - { - // - // File transfer connections can - // be originated by both sides. - // - - if (slavePort == 1) - { - if (control -> ProxyMode == proxy_client) - { - slavePort = DEFAULT_NX_SLAVE_PORT_CLIENT_OFFSET + proxyPort; - } - else - { - slavePort = DEFAULT_NX_SLAVE_PORT_SERVER_OFFSET + proxyPort; - } - } - + useSlaveSocket = 0; + if (slavePort.enabled()) { useSlaveSocket = 1; - - #ifdef TEST - *logofs << "Loop: Using slave port '" << slavePort - << "'.\n" << logofs_flush; - #endif + if (control -> ProxyMode == proxy_client) + slavePort.setDefaultTCPPort(DEFAULT_NX_SLAVE_PORT_CLIENT_OFFSET + proxyPort); + else + slavePort.setDefaultTCPPort(DEFAULT_NX_SLAVE_PORT_SERVER_OFFSET + proxyPort); } +#ifdef TEST + *logofs << "Loop: Using slave port '" << slavePort->getDebugSpec() + << "'.\n" << logofs_flush; +#endif + return 1; } @@ -14109,65 +14050,65 @@ void PrintConnectionInfo() } if (control -> ProxyMode == proxy_client && - useCupsSocket > 0 && cupsPort > 0) + useCupsSocket > 0 && cupsPort.enabled()) { cerr << "Info" << ": Listening to CUPS connections " << "on port '" << cupsPort << "'.\n"; } else if (control -> ProxyMode == proxy_server && - cupsPort > 0) + cupsPort.enabled()) { cerr << "Info" << ": Forwarding CUPS connections " << "to port '" << cupsPort << "'.\n"; } if (control -> ProxyMode == proxy_client && - useAuxSocket > 0 && auxPort > 0) + useAuxSocket > 0 && auxPort.enabled()) { cerr << "Info" << ": Listening to auxiliary X11 connections " << "on port '" << auxPort << "'.\n"; } else if (control -> ProxyMode == proxy_server && - auxPort > 0) + auxPort.enabled()) { cerr << "Info" << ": Forwarding auxiliary X11 connections " << "to display '" << displayHost << "'.\n"; } if (control -> ProxyMode == proxy_client && - useSmbSocket > 0 && smbPort > 0) + useSmbSocket > 0 && smbPort.enabled()) { cerr << "Info" << ": Listening to SMB connections " << "on port '" << smbPort << "'.\n"; } else if (control -> ProxyMode == proxy_server && - smbPort > 0) + smbPort.enabled()) { cerr << "Info" << ": Forwarding SMB connections " << "to port '" << smbPort << "'.\n"; } if (control -> ProxyMode == proxy_client && - useMediaSocket > 0 && mediaPort > 0) + useMediaSocket > 0 && mediaPort.enabled()) { cerr << "Info" << ": Listening to multimedia connections " << "on port '" << mediaPort << "'.\n"; } else if (control -> ProxyMode == proxy_server && - mediaPort > 0) + mediaPort.enabled()) { cerr << "Info" << ": Forwarding multimedia connections " << "to port '" << mediaPort << "'.\n"; } if (control -> ProxyMode == proxy_client && - useHttpSocket > 0 && httpPort > 0) + useHttpSocket > 0 && httpPort.enabled()) { cerr << "Info" << ": Listening to HTTP connections " << "on port '" << httpPort << "'.\n"; } else if (control -> ProxyMode == proxy_server && - httpPort > 0) + httpPort.enabled()) { cerr << "Info" << ": Forwarding HTTP connections " << "to port '" << httpPort << "'.\n"; @@ -14186,7 +14127,7 @@ void PrintConnectionInfo() << "to port '" << fontPort << "'.\n"; } - if (useSlaveSocket > 0 && slavePort > 0) + if (useSlaveSocket > 0 && slavePort.enabled()) { cerr << "Info" << ": Listening to slave connections " << "on port '" << slavePort << "'.\n"; @@ -14443,6 +14384,25 @@ int ParseArg(const char *type, const char *name, const char *value) return (int) result; } +void SetAndValidateChannelEndPointArg(const char *type, const char *name, const char *value, + ChannelEndPoint &endPoint) { + endPoint.setSpec(value); + if (!endPoint.validateSpec()) { + #ifdef PANIC + *logofs << "Loop: PANIC! Invalid " << type + << " option '" << name << "' with value '" + << value << "'.\n" << logofs_flush; + #endif + + cerr << "Error" << ": Invalid " << type + << " option '" << name << "' with value '" + << value << "'.\n"; + + HandleCleanup(); + } +} + + int ValidateArg(const char *type, const char *name, const char *value) { int number = atoi(value); diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index c2cdceead..8fc37407f 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -149,6 +149,7 @@ CXXSRC = Loop.cpp \ ClientChannel.cpp \ ServerChannel.cpp \ GenericChannel.cpp \ + ChannelEndPoint.cpp \ ReadBuffer.cpp \ ProxyReadBuffer.cpp \ ClientReadBuffer.cpp \ diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp index 7655ccb40..1693590db 100644 --- a/nxcomp/Proxy.cpp +++ b/nxcomp/Proxy.cpp @@ -65,6 +65,7 @@ struct sockaddr_un #include "ClientChannel.h" #include "ServerChannel.h" #include "GenericChannel.h" +#include "ChannelEndPoint.h" // // We need to adjust some values related @@ -6053,8 +6054,36 @@ int Proxy::handleNewSlaveConnection(int clientFd) return handleNewGenericConnection(clientFd, channel_slave, "slave"); } + + int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type type, - const char *hostname, int port, const char *label) + ChannelEndPoint &endPoint, const char *label) +{ + char *unixPath, *host; + long port; + + if (endPoint.getUnixPath(&unixPath)) { + return handleNewGenericConnectionFromProxyUnix(channelId, type, unixPath, label); + } + + if (endPoint.getTCPHostAndPort(&host, &port)) { + return handleNewGenericConnectionFromProxyTCP(channelId, type, host, port, label); + } + + #ifdef WARNING + *logofs << "Proxy: WARNING! Refusing attempted connection " + << "to " << label << " server.\n" << logofs_flush; + #endif + + cerr << "Warning" << ": Refusing attempted connection " + << "to " << label << " server.\n"; + + return -1; +} + +int Proxy::handleNewGenericConnectionFromProxyTCP(int channelId, T_channel_type type, + const char *hostname, long port, const char *label) + { if (port <= 0) { @@ -6173,8 +6202,8 @@ int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type typ return 1; } -int Proxy::handleNewGenericConnectionFromProxy(int channelId, T_channel_type type, - const char *hostname, const char *path, const char *label) +int Proxy::handleNewGenericConnectionFromProxyUnix(int channelId, T_channel_type type, + const char *path, const char *label) { if (path == NULL || *path == '\0' ) { diff --git a/nxcomp/Proxy.h b/nxcomp/Proxy.h index c0fdfcce9..87ea1ce8a 100644 --- a/nxcomp/Proxy.h +++ b/nxcomp/Proxy.h @@ -32,6 +32,7 @@ #include "Transport.h" #include "EncodeBuffer.h" #include "ProxyReadBuffer.h" +#include "ChannelEndPoint.h" // // Forward declaration as we @@ -258,8 +259,11 @@ class Proxy virtual void handleDisplayConfiguration(const char *xServerDisplay, int xServerAddrFamily, sockaddr * xServerAddr, unsigned int xServerAddrLength) = 0; - virtual void handlePortConfiguration(int cupsServerPort, int smbServerPort, int mediaServerPort, - int httpServerPort, const char *fontServerPort) = 0; + virtual void handlePortConfiguration(ChannelEndPoint &cupsServerPort, + ChannelEndPoint &smbServerPort, + ChannelEndPoint &mediaServerPort, + ChannelEndPoint &httpServerPort, + const char *fontServerPort) = 0; // // Create new tunneled channels. @@ -278,10 +282,13 @@ class Proxy int handleNewGenericConnection(int clientFd, T_channel_type type, const char *label); int handleNewGenericConnectionFromProxy(int channelId, T_channel_type type, - const char *hostname, int port, const char *label); + ChannelEndPoint &endpoint, const char *label); - int handleNewGenericConnectionFromProxy(int channelId, T_channel_type type, - const char *hostname, const char *path, const char *label); + int handleNewGenericConnectionFromProxyUnix(int channelId, T_channel_type type, + const char *path, const char *label); + + int handleNewGenericConnectionFromProxyTCP(int channelId, T_channel_type type, + const char *hostname, long port, const char *label); int handleNewSlaveConnection(int clientFd); diff --git a/nxcomp/ServerProxy.cpp b/nxcomp/ServerProxy.cpp index 0a72fc301..3060e829d 100644 --- a/nxcomp/ServerProxy.cpp +++ b/nxcomp/ServerProxy.cpp @@ -1,6 +1,7 @@ /**************************************************************************/ /* */ /* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2015 Qindel Formacion y Servicios S.L. */ /* */ /* NXCOMP, NX protocol compression and NX extensions to this software */ /* are copyright of NoMachine. Redistribution and use of the present */ @@ -51,10 +52,10 @@ ServerProxy::ServerProxy(int proxyFd) : Proxy(proxyFd) xServerAddr_ = NULL; xServerDisplay_ = NULL; - cupsServerPort_ = -1; - smbServerPort_ = -1; - mediaServerPort_ = -1; - httpServerPort_ = -1; + cupsServerPort_ = NULL; + smbServerPort_ = NULL; + mediaServerPort_ = NULL; + httpServerPort_ = NULL; fontServerPort_ = NULL; @@ -101,8 +102,11 @@ void ServerProxy::handleDisplayConfiguration(const char *xServerDisplay, int xSe #endif } -void ServerProxy::handlePortConfiguration(int cupsServerPort, int smbServerPort, int mediaServerPort, - int httpServerPort, const char *fontServerPort) +void ServerProxy::handlePortConfiguration(ChannelEndPoint &cupsServerPort, + ChannelEndPoint &smbServerPort, + ChannelEndPoint &mediaServerPort, + ChannelEndPoint &httpServerPort, + const char *fontServerPort) { cupsServerPort_ = cupsServerPort; smbServerPort_ = smbServerPort; @@ -161,22 +165,23 @@ int ServerProxy::handleNewConnectionFromProxy(T_channel_type type, int channelId } case channel_cups: { - return handleNewGenericConnectionFromProxy(channelId, channel_cups, "localhost", + return handleNewGenericConnectionFromProxy(channelId, channel_cups, cupsServerPort_, "CUPS"); } case channel_smb: { - return handleNewGenericConnectionFromProxy(channelId, channel_smb, getComputerName(), + smbServerPort_.setDefaultTCPInterface(1); + return handleNewGenericConnectionFromProxy(channelId, channel_smb, smbServerPort_, "SMB"); } case channel_media: { - return handleNewGenericConnectionFromProxy(channelId, channel_media, "localhost", + return handleNewGenericConnectionFromProxy(channelId, channel_media, mediaServerPort_, "media"); } case channel_http: { - return handleNewGenericConnectionFromProxy(channelId, channel_http, getComputerName(), + return handleNewGenericConnectionFromProxy(channelId, channel_http, httpServerPort_, "HTTP"); } case channel_slave: diff --git a/nxcomp/ServerProxy.h b/nxcomp/ServerProxy.h index 54bc0f748..cc8191795 100644 --- a/nxcomp/ServerProxy.h +++ b/nxcomp/ServerProxy.h @@ -24,6 +24,7 @@ #include "Proxy.h" #include "Misc.h" +#include "ChannelEndPoint.h" // // Set the verbosity level. @@ -43,8 +44,11 @@ class ServerProxy : public Proxy virtual void handleDisplayConfiguration(const char *xServerDisplay, int xServerAddrFamily, sockaddr *xServerAddr, unsigned int xServerAddrLength); - virtual void handlePortConfiguration(int cupsServerPort, int smbServerPort, int mediaServerPort, - int httpServerPort, const char *fontServerPort); + virtual void handlePortConfiguration(ChannelEndPoint &cupsServerPort, + ChannelEndPoint &smbServerPort, + ChannelEndPoint &mediaServerPort, + ChannelEndPoint &httpServerPort, + const char *fontServerPort); protected: @@ -108,6 +112,7 @@ class ServerProxy : public Proxy private: + // FIXME: Use a ChannelEndPoint object also for the X server! int xServerAddrFamily_; sockaddr *xServerAddr_; unsigned int xServerAddrLength_; @@ -124,10 +129,10 @@ class ServerProxy : public Proxy // TCP connections. // - int cupsServerPort_; - int smbServerPort_; - int mediaServerPort_; - int httpServerPort_; + ChannelEndPoint cupsServerPort_; + ChannelEndPoint smbServerPort_; + ChannelEndPoint mediaServerPort_; + ChannelEndPoint httpServerPort_; // // It will have to be passed to the channel -- cgit v1.2.3 From 035995a8c16e8867f209100330653b33de06f458 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Tue, 31 May 2016 11:23:40 +0200 Subject: display version number in nxcomp log, fixes #127 --- nxcomp/Control.cpp | 3 ++- nxcomp/Loop.cpp | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Control.cpp b/nxcomp/Control.cpp index 1bf2dbdd2..93b3ff277 100644 --- a/nxcomp/Control.cpp +++ b/nxcomp/Control.cpp @@ -618,7 +618,8 @@ Control::Control() #ifdef TEST *logofs << "Control: Major version is " << LocalVersionMajor << " minor is " << LocalVersionMinor << " patch is " - << LocalVersionPatch << ".\n" << logofs_flush; + << LocalVersionPatch << " Maintenance version is " + << LocalVersionMaintenancePatch << ".\n" << logofs_flush; #endif // diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 97020d162..436713761 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -7508,7 +7508,6 @@ int ReadProxyVersion(int fd) &(control -> RemoteVersionPatch)); } - #ifdef TEST *logofs << "Loop: Identified remote version '" << control -> RemoteVersionMajor << "." << control -> RemoteVersionMinor << "." << control -> RemoteVersionPatch << "'.\n" << logofs_flush; @@ -7520,7 +7519,6 @@ int ReadProxyVersion(int fd) *logofs << "Loop: Local version '" << control -> LocalVersionMajor << "." << control -> LocalVersionMinor << "." << control -> LocalVersionPatch << "'.\n" << logofs_flush; - #endif if (SetVersion() < 0) { -- cgit v1.2.3 From c646808bcb0fe95e9794409231a9fa8b51990971 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Tue, 31 May 2016 12:44:02 +0200 Subject: Fix debugging function for Loop.cpp. getDebugSpec was replaced by << operand in ChannelEndPoint.{h|cpp}, fixes #130 --- nxcomp/Loop.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'nxcomp') diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 436713761..473488593 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -11621,7 +11621,7 @@ int SetPorts() } #ifdef TEST - *logofs << "Loop: cups port: " << cupsPort->getDebugSpec() << "\n" + *logofs << "Loop: cups port: " << cupsPort << "\n" << logofs_flush; #endif @@ -11651,7 +11651,7 @@ int SetPorts() } #ifdef TEST - *logofs << "Loop: aux port: " << auxPort->getDebugSpec() << "\n" + *logofs << "Loop: aux port: " << auxPort << "\n" << logofs_flush; #endif @@ -11667,7 +11667,7 @@ int SetPorts() #ifdef TEST - *logofs << "Loop: smb port: " << smbPort->getDebugSpec() << "\n" + *logofs << "Loop: smb port: " << smbPort << "\n" << logofs_flush; #endif @@ -11690,7 +11690,7 @@ int SetPorts() } #ifdef TEST - *logofs << "Loop: Using multimedia port '" << mediaPort->getDebugSpec() + *logofs << "Loop: Using multimedia port '" << mediaPort << "'.\n" << logofs_flush; #endif @@ -11705,7 +11705,7 @@ int SetPorts() } #ifdef TEST - *logofs << "Loop: Using HTTP port '" << httpPort->getDebugSpec() + *logofs << "Loop: Using HTTP port '" << httpPort << "'.\n" << logofs_flush; #endif @@ -11754,7 +11754,7 @@ int SetPorts() } #ifdef TEST - *logofs << "Loop: Using slave port '" << slavePort->getDebugSpec() + *logofs << "Loop: Using slave port '" << slavePort << "'.\n" << logofs_flush; #endif -- cgit v1.2.3 From 2f706cbeb5f077c9d1f01256bdf978a58769db43 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 5 Apr 2016 14:29:02 +0200 Subject: nxcomp/Makefile.in: Only install MD5.h, NX.h, NXalert.h, NXpack.h, NXproto.h and NXvars.h as publicly available header files. * Also adapt debian/libxcomp-dev.install.in accordingly. * Also adapt nx-libs.spec accordingly. --- debian/libxcomp-dev.install.in | 2 -- nx-libs.spec | 2 -- nxcomp/Makefile.in | 8 +++++--- 3 files changed, 5 insertions(+), 7 deletions(-) (limited to 'nxcomp') diff --git a/debian/libxcomp-dev.install.in b/debian/libxcomp-dev.install.in index f0faa49e3..e27e6ecf0 100644 --- a/debian/libxcomp-dev.install.in +++ b/debian/libxcomp-dev.install.in @@ -1,10 +1,8 @@ usr/lib/*/libXcomp.so usr/include/*/nx/NX.h usr/include/*/nx/NXalert.h -usr/include/*/nx/NXmitshm.h usr/include/*/nx/NXpack.h usr/include/*/nx/NXproto.h -usr/include/*/nx/NXrender.h usr/include/*/nx/NXvars.h usr/include/*/nx/MD5.h usr/lib/*/pkgconfig/nxcomp.pc \ No newline at end of file diff --git a/nx-libs.spec b/nx-libs.spec index 5ce1d2145..111e98b3d 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -580,10 +580,8 @@ rm -r %{buildroot}%{_includedir}/nx-X11/Xtrans %{_includedir}/nx/MD5.h %{_includedir}/nx/NX.h %{_includedir}/nx/NXalert.h -%{_includedir}/nx/NXmitshm.h %{_includedir}/nx/NXpack.h %{_includedir}/nx/NXproto.h -%{_includedir}/nx/NXrender.h %{_includedir}/nx/NXvars.h %{_libdir}/pkgconfig/nxcomp.pc diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 8fc37407f..759ab6a4f 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -283,8 +283,12 @@ install.lib: all $(INSTALL_LINK) $(LIBLOAD) $(DESTDIR)${libdir} $(INSTALL_LINK) $(LIBSHARED) $(DESTDIR)${libdir} $(INSTALL_DATA) $(LIBARCHIVE) $(DESTDIR)${libdir} - $(INSTALL_DATA) NX*.h $(DESTDIR)${includedir}/nx $(INSTALL_DATA) MD5.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) NX.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) NXalert.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) NXpack.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) NXproto.h $(DESTDIR)${includedir}/nx + $(INSTALL_DATA) NXvars.h $(DESTDIR)${includedir}/nx $(INSTALL_DATA) nxcomp.pc $(DESTDIR)${pkgconfigdir} echo "Running ldconfig tool, this may take a while..." && ldconfig || true @@ -301,10 +305,8 @@ uninstall.lib: $(RM_FILE) $(DESTDIR)${libdir}/$(LIBARCHIVE) $(RM_FILE) $(DESTDIR)${includedir}/nx/NXalert.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NX.h - $(RM_FILE) $(DESTDIR)${includedir}/nx/NXmitshm.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXpack.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXproto.h - $(RM_FILE) $(DESTDIR)${includedir}/nx/NXrender.h $(RM_FILE) $(DESTDIR)${includedir}/nx/NXvars.h $(RM_FILE) $(DESTDIR)${includedir}/nx/MD5.h $(RM_FILE) $(DESTDIR)${pkgconfigdir}/nxcomp.pc -- cgit v1.2.3 From f5eff9bc0a1134a16b1a6e67bfe3d0b4d7cd49e9 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 6 Apr 2016 22:09:31 +0200 Subject: nx-X11/programs/Xserver: Include nxcomp{,ext,shad} headers like one would do with system-wide shared libraries. --- nx-X11/lib/X11/XlibInt.c | 6 +++--- nx-X11/lib/X11/Xlibint.h | 2 +- nx-X11/lib/xtrans/Xtranssock.c | 2 +- nx-X11/programs/Xserver/Imakefile | 21 +++++++++++++++++++++ nx-X11/programs/Xserver/hw/nxagent/Args.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Atoms.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Binder.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Client.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Clipboard.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Cursor.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Dialog.c | 6 +++--- nx-X11/programs/Xserver/hw/nxagent/Display.c | 6 +++--- nx-X11/programs/Xserver/hw/nxagent/Drawable.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Events.c | 10 +++++----- nx-X11/programs/Xserver/hw/nxagent/Font.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/GCOps.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Handlers.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Image.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Imakefile | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Init.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/NXevents.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Pixmap.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Pointer.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Reconnect.c | 6 +++--- nx-X11/programs/Xserver/hw/nxagent/Render.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Rootless.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 4 ++-- nx-X11/programs/Xserver/hw/nxagent/Splash.h | 2 +- nx-X11/programs/Xserver/hw/nxagent/Split.c | 2 +- nx-X11/programs/Xserver/hw/nxagent/Window.c | 4 ++-- nx-X11/programs/Xserver/os/log.c | 2 +- nx-X11/programs/Xserver/os/utils.c | 4 ++-- nxcomp/nxcomp.pc.in | 2 +- nxcompext/nxcompext.pc.in | 2 +- nxcompshad/nxcompshad.pc.in | 2 +- 37 files changed, 81 insertions(+), 60 deletions(-) (limited to 'nxcomp') diff --git a/nx-X11/lib/X11/XlibInt.c b/nx-X11/lib/X11/XlibInt.c index 0aa890bbb..49535fe18 100644 --- a/nx-X11/lib/X11/XlibInt.c +++ b/nx-X11/lib/X11/XlibInt.c @@ -118,12 +118,12 @@ xthread_t (*_Xthread_self_fn)(void) = NULL; #endif /* XTHREADS else */ -#include "NX.h" +#include #ifdef NX_TRANS_SOCKET -#include "NX.h" -#include "NXvars.h" +#include +#include static struct timeval retry; diff --git a/nx-X11/lib/X11/Xlibint.h b/nx-X11/lib/X11/Xlibint.h index 854b64b22..474b77349 100644 --- a/nx-X11/lib/X11/Xlibint.h +++ b/nx-X11/lib/X11/Xlibint.h @@ -64,7 +64,7 @@ from The Open Group. #ifdef NX_TRANS_SOCKET -#include "NXvars.h" +#include #define _XGetIOError(dpy) \ (dpy -> flags & XlibDisplayIOError) diff --git a/nx-X11/lib/xtrans/Xtranssock.c b/nx-X11/lib/xtrans/Xtranssock.c index b08cd9f0a..5c57fc5ba 100644 --- a/nx-X11/lib/xtrans/Xtranssock.c +++ b/nx-X11/lib/xtrans/Xtranssock.c @@ -344,7 +344,7 @@ static int haveIPv6 = 1; #ifdef TRANS_CLIENT -#include "NX.h" +#include typedef struct { diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile index 379a70004..d1f2ff335 100644 --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -318,6 +318,27 @@ NXAGENTDDXDIR = hw NXAGENTDIRS = $(STDDIRS) $(MFBDIR) $(FBDIR) $(MIDAMAGEDIR) $(NXAGENTDDXDIR) $(DEPDIRS) +NX_XCOMP_HEADERS = \ + ../../../nxcomp/NXalert.h \ + ../../../nxcomp/NX.h \ + ../../../nxcomp/NXpack.h \ + ../../../nxcomp/NXproto.h \ + ../../../nxcomp/NXvars.h + +NX_XCOMPEXT_HEADERS = \ + ../../../nxcompext/NXlib.h \ + ../../../nxcompext/NXlibint.h + +NX_XCOMPSHAD_HEADERS = \ + ../../../nxcompshad/Shadow.h + +NX_HEADERS = \ + $(NX_XCOMP_HEADERS) \ + $(NX_XCOMPEXT_HEADERS) \ + $(NX_XCOMPSHAD_HEADERS) + +BuildIncludes($(NX_HEADERS),nx,..) + #if defined(SunArchitecture) || \ defined(SparcArchitecture) NXAGENTOBJS = hw/nxagent/miinitext.o \ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index 3442c3789..59d3deb63 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -67,8 +67,8 @@ is" without express or implied warranty. * NX includes and definitions. */ -#include "NXlib.h" -#include "NXpack.h" +#include +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c index 578731f07..00411c65e 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Atoms.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Atoms.c @@ -26,7 +26,7 @@ #include "scrnintstr.h" #include "resource.h" -#include "NXpack.h" +#include #include "Atoms.h" #include "Args.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Binder.c b/nx-X11/programs/Xserver/hw/nxagent/Binder.c index d40aaebe6..f69d23f4f 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Binder.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Binder.c @@ -20,7 +20,7 @@ #include #include -#include "NX.h" +#include #include "Binder.h" #include "Options.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Client.c b/nx-X11/programs/Xserver/hw/nxagent/Client.c index cba47981d..eaa216e20 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Client.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Client.c @@ -23,7 +23,7 @@ #include #include -#include "NX.h" +#include #include "Xatom.h" #include "dixstruct.h" @@ -49,7 +49,7 @@ * definition of GC in Agent.h. */ -#include "NXlib.h" +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c index 82a1ed77e..f3656d2c0 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c @@ -39,7 +39,7 @@ * Use asyncronous get property replies. */ -#include "NXlib.h" +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Cursor.c b/nx-X11/programs/Xserver/hw/nxagent/Cursor.c index c0015a831..62095d5b3 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Cursor.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Cursor.c @@ -57,7 +57,7 @@ is" without express or implied warranty. #include "windowstr.h" #include "resource.h" -#include "NXlib.h" +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Dialog.c b/nx-X11/programs/Xserver/hw/nxagent/Dialog.c index 63c3b73c1..354f04120 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Dialog.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Dialog.c @@ -33,9 +33,9 @@ #include "Display.h" #include "Dialog.h" -#include "NX.h" -#include "NXlib.h" -#include "NXalert.h" +#include +#include +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c index 628c4c495..31ea7c2a0 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -52,7 +52,7 @@ is" without express or implied warranty. #include "unistd.h" #endif -#include "NXalert.h" +#include #include "Agent.h" #include "Display.h" @@ -77,8 +77,8 @@ is" without express or implied warranty. #include "Screen.h" #include "Handlers.h" -#include "NX.h" -#include "NXlib.h" +#include +#include #include NXAGENT_ICON_NAME #include X2GOAGENT_ICON_NAME diff --git a/nx-X11/programs/Xserver/hw/nxagent/Drawable.c b/nx-X11/programs/Xserver/hw/nxagent/Drawable.c index 51d41db23..9dac8066a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Drawable.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Drawable.c @@ -34,7 +34,7 @@ #include "Reconnect.h" #include "GCOps.h" -#include "NXlib.h" +#include #include "mibstorest.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c index 5ad81f781..ffb593750 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Events.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c @@ -58,9 +58,9 @@ #include "Utils.h" #include "Error.h" -#include "NX.h" -#include "NXvars.h" -#include "NXproto.h" +#include +#include +#include #include "xfixesproto.h" #define Window XlibWindow @@ -92,10 +92,10 @@ #include -#include "Shadow.h" +#include #include "X11/include/Xrandr_nxagent.h" -#include "NXlib.h" +#include /* * Set here the required log level. Please note diff --git a/nx-X11/programs/Xserver/hw/nxagent/Font.c b/nx-X11/programs/Xserver/hw/nxagent/Font.c index 9123f4bbe..8f692eb85 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Font.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Font.c @@ -50,8 +50,8 @@ is" without express or implied warranty. #include "Args.h" -#include "NXlib.h" -#include "NXalert.h" +#include +#include #include #include diff --git a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c index 5f753ffe4..634bbf2ce 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/GCOps.c +++ b/nx-X11/programs/Xserver/hw/nxagent/GCOps.c @@ -50,7 +50,7 @@ is" without express or implied warranty. #include "Args.h" #include "Screen.h" -#include "NXlib.h" +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c index aee983253..cadb8e58a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c @@ -32,8 +32,8 @@ #include "Screen.h" #include "Millis.h" -#include "NXlib.h" -#include "Shadow.h" +#include +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c index c84d3b7ed..6a7d46c35 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Image.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c @@ -37,8 +37,8 @@ #include "Pixels.h" #include "Utils.h" -#include "NXlib.h" -#include "NXpack.h" +#include +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Imakefile b/nx-X11/programs/Xserver/hw/nxagent/Imakefile index b0aff4b07..e9cef5ae3 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Imakefile +++ b/nx-X11/programs/Xserver/hw/nxagent/Imakefile @@ -133,7 +133,7 @@ OBJS = NXwindow.o \ VFBINCLUDES = -I../../fb -I../../mfb -I../../render -INCLUDES = -I. -I../../../../../nxcomp -I../../../../../nxcompext -I../../../../../nxcompshad \ +INCLUDES = -I. \ -I../../../../extras/Mesa/include \ -I$(XBUILDINCDIR) \ -I../../mi -I../../include -I../../os \ @@ -144,7 +144,7 @@ INCLUDES = -I. -I../../../../../nxcomp -I../../../../../nxcompext -I../../../../ `pkg-config --cflags-only-I libxml-2.0` \ `pkg-config --cflags-only-I pixman-1` #ifdef SunArchitecture -INCLUDES = -I. -I../../../../../nxcomp -I../../../../../nxcompext -I../../../../../nxcompshad \ +INCLUDES = -I. \ -I../../../../extras/Mesa/include \ -I$(XBUILDINCDIR) \ -I/usr/sfw/include \ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Init.c b/nx-X11/programs/Xserver/hw/nxagent/Init.c index 0b25aa57d..3ec9fa14a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Init.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c @@ -61,8 +61,8 @@ is" without express or implied warranty. #include "Millis.h" #include "Error.h" -#include "NX.h" -#include "NXlib.h" +#include +#include #include "Reconnect.h" /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 8d1fbd4c1..852771492 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -54,9 +54,9 @@ is" without express or implied warranty. #include "Options.h" #include "Error.h" -#include "NXlib.h" +#include -#include "Shadow.h" +#include #ifdef XKB diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 6a1f2ac6a..adeaff870 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -154,7 +154,7 @@ int ProcInitialConnection(); #include "Reconnect.h" #include "Millis.h" #include "Font.h" -#include "Shadow.h" +#include #include "Handlers.h" #include "Keyboard.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXevents.c b/nx-X11/programs/Xserver/hw/nxagent/NXevents.c index f871cad13..89c5c0b19 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXevents.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXevents.c @@ -183,7 +183,7 @@ xEvent *xeviexE; #include "dixgrabs.h" #include "../../dix/dispatch.h" -#include "NXlib.h" +#include #include "Events.h" #include "Windows.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c b/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c index 67c514714..c9f62b1fe 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c @@ -42,8 +42,8 @@ #include "Holder.h" #include "Args.h" -#include "NXlib.h" -#include "NXpack.h" +#include +#include RESTYPE RT_NX_PIXMAP; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c index a751974af..ce2b37a90 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c @@ -46,7 +46,7 @@ is" without express or implied warranty. #include "Events.h" #include "Options.h" -#include "NXlib.h" +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c index 660d30863..00d434bf4 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Reconnect.c @@ -49,9 +49,9 @@ #include "XKBsrv.h" #endif -#include "NX.h" -#include "NXlib.h" -#include "NXalert.h" +#include +#include +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c index de1ad1207..d5f64d05b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Render.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c @@ -54,7 +54,7 @@ #include "Pixels.h" #include "Handlers.h" -#include "NXproto.h" +#include #define MAX_FORMATS 255 diff --git a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c index 4cf4afcad..a725e20e7 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Rootless.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Rootless.c @@ -30,7 +30,7 @@ #include "Atoms.h" #include "Trap.h" -#include "NXlib.h" +#include /* * Set here the required log level. diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 83bcc01fd..20ec3672a 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -74,7 +74,7 @@ is" without express or implied warranty. #include "Pointer.h" #include "Reconnect.h" #include "Composite.h" -#include "Shadow.h" +#include #include "Utils.h" #include "X11/include/Xrandr_nxagent.h" @@ -96,7 +96,7 @@ is" without express or implied warranty. #include "Xatom.h" #include "Xproto.h" -#include "NXlib.h" +#include #include "mibstorest.h" diff --git a/nx-X11/programs/Xserver/hw/nxagent/Splash.h b/nx-X11/programs/Xserver/hw/nxagent/Splash.h index 39becaa3d..7a987d17e 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Splash.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.h @@ -20,7 +20,7 @@ #include "Windows.h" #include "X11/Xdmcp.h" -#include "NXalert.h" +#include #define XDM_TIMEOUT 20000 diff --git a/nx-X11/programs/Xserver/hw/nxagent/Split.c b/nx-X11/programs/Xserver/hw/nxagent/Split.c index 1840328e4..3b7961c9c 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Split.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Split.c @@ -26,7 +26,7 @@ #include "Events.h" #include "GCs.h" -#include "NXlib.h" +#include /* diff --git a/nx-X11/programs/Xserver/hw/nxagent/Window.c b/nx-X11/programs/Xserver/hw/nxagent/Window.c index fb26b8242..b553627dd 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Window.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Window.c @@ -56,8 +56,8 @@ #include "Composite.h" #include "Events.h" -#include "NX.h" -#include "NXlib.h" +#include +#include #include "Xatom.h" diff --git a/nx-X11/programs/Xserver/os/log.c b/nx-X11/programs/Xserver/os/log.c index 2444cd333..84381dbf2 100644 --- a/nx-X11/programs/Xserver/os/log.c +++ b/nx-X11/programs/Xserver/os/log.c @@ -117,7 +117,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #ifdef NX_TRANS_SOCKET -#include "NX.h" +#include #endif diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index 3f58b6fc5..13889ed9a 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -229,8 +229,8 @@ Bool noXvExtension = FALSE; #ifdef NX_TRANS_SOCKET -#include "NX.h" -#include "NXvars.h" +#include +#include #endif diff --git a/nxcomp/nxcomp.pc.in b/nxcomp/nxcomp.pc.in index f4d3a7efb..f0963aa17 100644 --- a/nxcomp/nxcomp.pc.in +++ b/nxcomp/nxcomp.pc.in @@ -10,6 +10,6 @@ Version: @VERSION@ #Requires: libjpeg zlib Requires: libpng Requires.private: x11 -Cflags: -I${includedir} -I${includedir}/nx +Cflags: -I${includedir} Libs: -L${libdir} -lXcomp diff --git a/nxcompext/nxcompext.pc.in b/nxcompext/nxcompext.pc.in index 669397af6..6bd0773b1 100644 --- a/nxcompext/nxcompext.pc.in +++ b/nxcompext/nxcompext.pc.in @@ -8,6 +8,6 @@ Description: Extension for NX Compression Library Version: @VERSION@ Requires: nxcomp Requires.private: x11 -Cflags: -I${includedir} -I${includedir}/nx +Cflags: -I${includedir} Libs: -L${libdir} -lXcompext diff --git a/nxcompshad/nxcompshad.pc.in b/nxcompshad/nxcompshad.pc.in index 4d4265c76..80b75e3f5 100644 --- a/nxcompshad/nxcompshad.pc.in +++ b/nxcompshad/nxcompshad.pc.in @@ -8,6 +8,6 @@ Description: Shadow Session Support for NX Compression Library Version: @VERSION@ Requires: nxcomp Requires.private: x11 -Cflags: -I${includedir} -I${includedir}/nx +Cflags: -I${includedir} Libs: -L${libdir} -lXcompshad -- cgit v1.2.3 From 6051dec4a1ae6decd9123a3310098baf43f45c49 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan <ïonic@ionic.de> Date: Fri, 17 Jun 2016 01:45:40 +0000 Subject: {nx-X11/programs/Xserver/hw/nxagent/{{Args,Handlers,Image,Options}.c,Options.h},nxcomp/{Loop,Misc}.cpp}: add configurable sleep delay if session is suspended. --- nx-X11/programs/Xserver/hw/nxagent/Args.c | 38 ++++++++++++++++++++++ nx-X11/programs/Xserver/hw/nxagent/Handlers.c | 46 +++++++++++++++++++-------- nx-X11/programs/Xserver/hw/nxagent/Image.c | 14 ++------ nx-X11/programs/Xserver/hw/nxagent/Options.c | 2 ++ nx-X11/programs/Xserver/hw/nxagent/Options.h | 7 ++++ nxcomp/Loop.cpp | 3 +- nxcomp/Misc.cpp | 3 +- 7 files changed, 87 insertions(+), 26 deletions(-) (limited to 'nxcomp') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index 59d3deb63..2590dd6c3 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -1339,6 +1339,44 @@ static void nxagentParseOptions(char *name, char *value) nxagentChangeOption(Clipboard, ClipboardBoth); } } + else if (!strcmp(name, "sleep")) + { + long sleep_parse = 0; + + errno = 0; + sleep_parse = strtol(value, NULL, 10); + + if ((errno) && (0 == sleep_parse)) + { + fprintf(stderr, "nxagentParseOptions: Unable to convert value [%s] of option [%s]. " + "Ignoring option.\n", + validateString(value), validateString(name)); + + return; + } + + if ((long) UINT_MAX < sleep_parse) + { + sleep_parse = UINT_MAX; + + fprintf(stderr, "nxagentParseOptions: Warning: value [%s] of option [%s] " + "out of range, clamped to [%u].\n", + validateString(value), validateString(name), sleep_parse); + } + + if (0 > sleep_parse) + { + sleep_parse = 0; + + fprintf(stderr, "nxagentParseOptions: Warning: value [%s] of option [%s] " + "out of range, clamped to [%u].\n", + validateString(value), validateString(name), sleep_parse); + } + + nxagentChangeOption(SleepTime, sleep_parse); + + return; + } else { #ifdef DEBUG diff --git a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c index 1beff090b..ba4034255 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c @@ -62,14 +62,6 @@ #define FLUSH_AFTER_MULTIPLE_READS -/* - * Introduce a small delay after each - * loop if the session is down. The - * value is in milliseconds. - */ - -#define LOOP_DELAY_IF_DOWN 50 - /* * The soft limit should roughly match * the size of the Xlib I/O buffer. @@ -246,12 +238,21 @@ void nxagentBlockHandler(void * data, struct timeval **timeout, void * mask) * not connected to a valid display. */ - if (NXDisplayError(nxagentDisplay) == 1 && nxagentShadowCounter == 0) + if (NXDisplayError(nxagentDisplay) == 1 && nxagentShadowCounter == 0 && nxagentOption(SleepTime) > 0) { - usleep(LOOP_DELAY_IF_DOWN * 1000); +#ifdef TEST + fprintf(stderr, "nxagentBlockHandler: sleeping for %d milliseconds for slowdown.\n", + nxagentOption(SleepTime)); +#endif + usleep(nxagentOption(SleepTime) * 1000); now = GetTimeInMillis(); } +#ifdef TEST + else if (0 == nxagentOption(SleepTime)) { + fprintf(stderr, "nxagentBlockHandler: not sleeping for slowdown.\n"); + } +#endif /* * Update the shadow display. This is @@ -743,9 +744,17 @@ void nxagentShadowBlockHandler(void * data, struct timeval **timeout, void * mas nxagentHandleConnectionChanges(); } - if (nxagentSessionState == SESSION_DOWN) + if (nxagentSessionState == SESSION_DOWN && nxagentOption(SleepTime) > 0) { - usleep(50 * 1000); +#ifdef TEST + fprintf(stderr, "nxagentBlockHandler: sleeping for %d milliseconds for slowdown.\n", + nxagentOption(SleepTime)); +#endif + usleep(nxagentOption(SleepTime) * 1000); + } +#ifdef TEST + else if (0 == nxagentOption(SleepTime)) { + fprintf(stderr, "nxagentBlockHandler: not sleeping for slowdown.\n"); } #ifndef __CYGWIN32__ @@ -826,7 +835,18 @@ FIXME: Must queue multiple writes and handle #ifdef __CYGWIN32__ - usleep(50 * 1000); + if (nxagentOption(SleepTime) > 0) { +#ifdef TEST + fprintf(stderr, "nxagentShadowBlockHandler: sleeping for %d milliseconds for slowdown.\n", + nxagentOption(SleepTime)); +#endif + usleep(nxagentOption(SleepTime) * 1000); + } +#ifdef TEST + else if (0 == nxagentOption(SleepTime)) { + fprintf(stderr, "nxagentShadowBlockHandler: not sleeping for slowdown.\n"); + } +#endif (*timeout) -> tv_sec = 0; (*timeout) -> tv_usec = 50 * 1000; diff --git a/nx-X11/programs/Xserver/hw/nxagent/Image.c b/nx-X11/programs/Xserver/hw/nxagent/Image.c index 6a7d46c35..a158a11db 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Image.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Image.c @@ -68,15 +68,6 @@ #define IMAGE_UNIQUE_RATIO 10 -/* - * Introduce a small delay after each image - * operation if the session is down. Value - * is in microseconds and is multiplied by - * the image data size in kilobytes. - */ - -#define IMAGE_DELAY_IF_DOWN 250 - /* * Preferred pack and split parameters we * got from the NX transport. @@ -521,11 +512,12 @@ void nxagentPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, length = nxagentImageLength(dstWidth, dstHeight, format, leftPad, depth); if (nxagentShadowCounter == 0 && - NXDisplayError(nxagentDisplay) == 1) + NXDisplayError(nxagentDisplay) == 1 && + nxagentOption(SleepTime) > 0) { int us; - us = IMAGE_DELAY_IF_DOWN * (length / 1024); + us = nxagentOption(SleepTime) * 4 * (length / 1024); us = (us < 10000 ? 10000 : (us > 1000000 ? 1000000 : us)); diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.c b/nx-X11/programs/Xserver/hw/nxagent/Options.c index dbe200273..8a3275c64 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Options.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c @@ -156,6 +156,8 @@ void nxagentInitOptions() nxagentOptions.ImageRateLimit = 0; nxagentOptions.Xinerama = 0; + + nxagentOptions.SleepTime = DEFAULT_SLEEP_TIME; } /* diff --git a/nx-X11/programs/Xserver/hw/nxagent/Options.h b/nx-X11/programs/Xserver/hw/nxagent/Options.h index 5bf1597d5..02b886242 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Options.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Options.h @@ -28,6 +28,7 @@ #define UNDEFINED -1 #define COPY_UNLIMITED -1 +#define DEFAULT_SLEEP_TIME 50 extern unsigned int nxagentPrintGeometryFlags; @@ -399,6 +400,12 @@ typedef struct _AgentOptions int Xinerama; + /* + * Sleep delay in microseconds. + */ + + unsigned int SleepTime; + } AgentOptionsRec; typedef AgentOptionsRec *AgentOptionsPtr; diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp index 473488593..5086db012 100644 --- a/nxcomp/Loop.cpp +++ b/nxcomp/Loop.cpp @@ -9003,7 +9003,8 @@ int ParseEnvironmentOptions(const char *env, int force) strcasecmp(name, "keyboard") == 0 || strcasecmp(name, "clipboard") == 0 || strcasecmp(name, "streaming") == 0 || - strcasecmp(name, "backingstore") == 0) + strcasecmp(name, "backingstore") == 0 || + strcasecmp(name, "sleep") == 0) { #ifdef DEBUG *logofs << "Loop: Ignoring agent option '" << name diff --git a/nxcomp/Misc.cpp b/nxcomp/Misc.cpp index ee73f19d8..05794bded 100644 --- a/nxcomp/Misc.cpp +++ b/nxcomp/Misc.cpp @@ -316,7 +316,8 @@ shadowuid=n\n\ shadowmode=s\n\ defer=n\n\ tile=s\n\ -menu=n These options are interpreted by the NX agent. They\n\ +menu=n\n\ +sleep=n These options are interpreted by the NX agent. They\n\ are ignored by the proxy.\n\ \n\ Environment:\n\ -- cgit v1.2.3 From 2f3d394e87c61369ed1308c6b3bc53cf0295146c Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 22 Jun 2016 12:41:50 +0200 Subject: nx-X11/config/{imake,makedepend}: Use system-wide available imake and makedepend tools. --- debian/control | 1 + nx-X11/Imakefile | 12 - nx-X11/Makefile | 71 +- nx-X11/config/Imakefile | 7 +- nx-X11/config/cf/Imake.rules | 16 +- nx-X11/config/cf/Imake.tmpl | 22 - nx-X11/config/cf/Imakefile | 3 - nx-X11/config/imake/Imakefile | 84 -- nx-X11/config/imake/Makefile.ini | 85 -- nx-X11/config/imake/ccimake.c | 62 - nx-X11/config/imake/imake.c | 2190 --------------------------------- nx-X11/config/imake/imake.man | 262 ---- nx-X11/config/imake/imakemdep.h | 1514 ----------------------- nx-X11/config/imake/imakesvc.cmd | 302 ----- nx-X11/config/makedepend/Imakefile | 101 -- nx-X11/config/makedepend/cpp.ed | 75 -- nx-X11/config/makedepend/cppsetup.c | 233 ---- nx-X11/config/makedepend/def.h | 188 --- nx-X11/config/makedepend/ifparser.c | 553 --------- nx-X11/config/makedepend/ifparser.h | 83 -- nx-X11/config/makedepend/include.c | 318 ----- nx-X11/config/makedepend/main.c | 865 ------------- nx-X11/config/makedepend/mkdepend.man | 382 ------ nx-X11/config/makedepend/parse.c | 686 ----------- nx-X11/config/makedepend/pr.c | 124 -- nxcomp/configure.in | 10 - nxcompext/configure.in | 10 - nxcompshad/configure.in | 10 - 28 files changed, 12 insertions(+), 8257 deletions(-) delete mode 100644 nx-X11/config/imake/Imakefile delete mode 100644 nx-X11/config/imake/Makefile.ini delete mode 100644 nx-X11/config/imake/ccimake.c delete mode 100644 nx-X11/config/imake/imake.c delete mode 100644 nx-X11/config/imake/imake.man delete mode 100644 nx-X11/config/imake/imakemdep.h delete mode 100644 nx-X11/config/imake/imakesvc.cmd delete mode 100644 nx-X11/config/makedepend/Imakefile delete mode 100644 nx-X11/config/makedepend/cpp.ed delete mode 100644 nx-X11/config/makedepend/cppsetup.c delete mode 100644 nx-X11/config/makedepend/def.h delete mode 100644 nx-X11/config/makedepend/ifparser.c delete mode 100644 nx-X11/config/makedepend/ifparser.h delete mode 100644 nx-X11/config/makedepend/include.c delete mode 100644 nx-X11/config/makedepend/main.c delete mode 100644 nx-X11/config/makedepend/mkdepend.man delete mode 100644 nx-X11/config/makedepend/parse.c delete mode 100644 nx-X11/config/makedepend/pr.c (limited to 'nxcomp') diff --git a/debian/control b/debian/control index 2344dd37f..e9e7f7d18 100644 --- a/debian/control +++ b/debian/control @@ -28,6 +28,7 @@ Build-Depends: x11proto-core-dev, expat, libpixman-1-dev (>= 0.13.2), + xutils-dev, Standards-Version: 3.9.6 Homepage: https://github.com/ArcticaProject/nx-libs/ Vcs-Git: https://github.com/ArcticaProject/nx-libs/ diff --git a/nx-X11/Imakefile b/nx-X11/Imakefile index 46ca9e70c..45948d2af 100644 --- a/nx-X11/Imakefile +++ b/nx-X11/Imakefile @@ -105,11 +105,6 @@ Everything:: @echo "" @date @echo "" - cd $(IMAKESRC) && if [ -f Makefile ]; then \ - $(MAKE) $(MFLAGS) BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \ - else \ - $(MAKE) $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; \ - fi -$(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak $(MAKE) $(MFLAGS) xmakefile $(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles @@ -149,9 +144,6 @@ Everything:: @echo Rebuilding $(RELEASE) of the X Window System. @echo : @echo : - cd $(IMAKESRC) - $(MAKE) $(MFLAGS) -f Makefile.ini imake.exe - cd ..\.. RMoveToBakFile(xmakefile) $(MAKE) $(MFLAGS) xmakefile $(MAKE) $(MFLAGS) $(MAKE_OPTS) Makefiles @@ -186,7 +178,3 @@ xmakefile-exists:: #ifndef MakeHtmlManIndex #define MakeHtmlManIndex YES /* install.man generates HTML man page index */ #endif - -#undef BootstrapCleanSubdirs -#define BootstrapCleanSubdirs BOOTSTRAPSUBDIRS="$(BOOTSTRAPSUBDIRS)" -BOOTSTRAPSUBDIRS = imake makedepend diff --git a/nx-X11/Makefile b/nx-X11/Makefile index e6b2f77ab..7a3ece799 100644 --- a/nx-X11/Makefile +++ b/nx-X11/Makefile @@ -8,7 +8,7 @@ # Luna users will need to either run make as "make MAKE=make" # or add "MAKE = make" to this file. -RELEASE = "Release 6.9" +RELEASE = "Release $(shell cat ../VERSION)" SHELL = /bin/sh RM = rm -f MV = mv @@ -17,16 +17,11 @@ WIN32WORLDOPTS = -i TOP = . CURRENT_DIR = . CONFIGSRC = $(TOP)/config -IMAKESRC = $(CONFIGSRC)/imake -DEPENDSRC = $(CONFIGSRC)/makedepend -DEPENDTOP = ../.. -IMAKETOP = ../.. IRULESRC = $(CONFIGSRC)/cf -IMAKE = $(IMAKESRC)/imake +IMAKE = imake IMAKE_CMD = $(IMAKE) -I$(IRULESRC) $(IMAKE_DEFINES) MAKE_OPTS = -f xmakefile MAKE_CMD = $(MAKE) $(MAKE_OPTS) -FLAGS = $(MFLAGS) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)" CC="$(CC)" all: @${MAKE} ${MAKE_OPTS} xmakefile-exists || $(MAKE) all-initial @@ -34,8 +29,7 @@ all: all-initial: @echo Please use make World, or on NT use nmake World.Win32. - @echo Check the configuration parameters in the $(IRULESRC) directory, - @echo and pass BOOTSTRAPCFLAGS if necessary. + @echo @echo Read the release notes carefully before proceeding. @echo Do not name your log file make.log or it will be deleted. @@ -43,11 +37,6 @@ World: @echo "" @echo Building $(RELEASE). @echo "" - @case "x$(BOOTSTRAPCFLAGS)" in x) \ - echo I hope you checked the configuration parameters in $(IRULESRC) ; \ - echo to see if you need to pass BOOTSTRAPCFLAGS. ; \ - echo "" ; \ - ;; esac; @date @echo "" @if [ -f xmakefile ]; then \ @@ -55,31 +44,9 @@ World: ${MAKE} ${MAKE_OPTS} -k clean || \ $(RM) xmakefile; \ fi - @if [ ! -f $(IRULESRC)/host.def ]; then \ - if [ ! -f $(TOP)/lib/Xt/Imakefile ]; then \ - echo "#define BuildServersOnly YES" > $(IRULESRC)/host.def; \ - else \ - if [ ! -f $(TOP)/fonts/Imakefile ]; then \ - echo "#define BuildFonts NO" > $(IRULESRC)/host.def; \ - else \ - echo "" > $(IRULESRC)/host.def; \ - fi; \ - fi; \ - fi -# @rm -f $(IRULESRC)/version.def; echo "" > $(IRULESRC)/version.def; @rm -f $(IRULESRC)/date.def; echo "" > $(IRULESRC)/date.def; -# @if [ ! -f $(IRULESRC)/version.def ]; then \ -# rm -f $(IRULESRC)/version.def; \ -# echo "" > $(IRULESRC)/version.def; \ -# fi -# @if [ ! -f $(IRULESRC)/date.def ]; then \ -# rm -f $(IRULESRC)/date.def; \ -# echo "" > $(IRULESRC)/date.def; \ -# fi - cd $(IMAKESRC) && $(MAKE) $(FLAGS) clean - $(MAKE) $(MFLAGS) Makefile.boot + ${MAKE} $(MFLAGS) xmakefile ${MAKE} ${MAKE_OPTS} $(MFLAGS) version.def - $(MAKE) $(MFLAGS) Makefile.boot ${MAKE} ${MAKE_OPTS} $(MFLAGS) VerifyOS ${MAKE} ${MAKE_OPTS} $(MFLAGS) Makefiles ${MAKE} ${MAKE_OPTS} $(MFLAGS) BOOTSTRAPSUBDIRS= clean @@ -98,37 +65,13 @@ World: # The steps are listed as separate targets so clearmake can wink in # the Makefile.proto files. -Makefile.boot: imake.bootstrap - $(RM) $(IMAKESRC)/Makefile.proto - -imake.proto: - cd $(IMAKESRC) && $(MAKE) $(FLAGS) - $(RM) $(DEPENDSRC)/Makefile.proto - -$(DEPENDSRC)/Makefile.proto: imake.proto - $(IMAKE_CMD) -s $(DEPENDSRC)/Makefile.proto -f $(DEPENDSRC)/Imakefile -DTOPDIR=$(DEPENDTOP) -DCURDIR=$(DEPENDSRC) - -depend.bootstrap: $(DEPENDSRC)/Makefile.proto - cd $(DEPENDSRC) && $(RM) -r Makefile Makefile.dep makedepend *.o bootstrap - cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto bootstrap - -$(IMAKESRC)/Makefile.proto: depend.bootstrap - $(IMAKE_CMD) -s $(IMAKESRC)/Makefile.proto -f $(IMAKESRC)/Imakefile -DTOPDIR=$(IMAKETOP) -DCURDIR=$(IMAKESRC) -DBootStrap - -imake.bootstrap: $(IMAKESRC)/Makefile.proto - cd $(IMAKESRC) && $(MAKE) -f Makefile.proto bootstrapdepend - cd $(IMAKESRC) && $(MAKE) $(FLAGS) bootstrap - cd $(IMAKESRC) && $(MAKE) -f Makefile.proto imakeonly - -@if [ -f xmakefile ]; then set -x; \ - $(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak; \ - else exit 0; fi - $(MAKE) $(MFLAGS) xmakefile - Makefile:: $(MAKE) $(MFLAGS) xmakefile xmakefile: Imakefile - $(RM) xmakefile + @if [ -f xmakefile ]; then set -x; \ + $(RM) xmakefile.bak; $(MV) xmakefile xmakefile.bak; \ + else exit 0; fi @rm -f $(IRULESRC)/date.def; echo "" > $(IRULESRC)/date.def; $(IMAKE_CMD) -s xmakefile -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) diff --git a/nx-X11/config/Imakefile b/nx-X11/config/Imakefile index 03b9f5b94..7d1217a46 100644 --- a/nx-X11/config/Imakefile +++ b/nx-X11/config/Imakefile @@ -8,12 +8,7 @@ XCOMM $XFree86: xc/config/Imakefile,v 1.3 2001/01/17 16:22:29 dawes Exp $ NULL = -BOOTSTRAPSUBDIRS = \ - imake \ - makedepend \ - $(NULL) - -SUBDIRS = cf $(BOOTSTRAPSUBDIRS) +SUBDIRS = cf #if defined(XorgVersionString) \ && defined(ProjectRoot) && \ diff --git a/nx-X11/config/cf/Imake.rules b/nx-X11/config/cf/Imake.rules index e023b6d26..f782f964b 100644 --- a/nx-X11/config/cf/Imake.rules +++ b/nx-X11/config/cf/Imake.rules @@ -1930,9 +1930,7 @@ DependDependencyStatement() @@\ NoCmpScript(ProgramTargetName($(DEPEND))) @@\ @@\ ProgramTargetName($(DEPEND)): @@\ - @echo "checking $@ over in $(DEPENDSRC) first..."; \ @@\ - cd $(DEPENDSRC) && $(MAKE) makedependonly; \ @@\ - echo "okay, continuing in $(CURRENT_DIR)" + echo "using system-wide depend, continuing in $(CURRENT_DIR)" #endif /* UseInstalled */ #endif /* DependDependency */ @@ -2025,11 +2023,7 @@ target:: ProgramTargetName($(IMAKE)) @@\ NoCmpScript(ProgramTargetName($(IMAKE)) $(IMAKE).Osuf) @@\ @@\ ProgramTargetName($(IMAKE)) $(IMAKE).Osuf: @@\ - -@(cd $(IMAKESRC) && if [ -f Makefile ]; then \ @@\ - echo "checking $@ in $(IMAKESRC) first..."; $(MAKE) imakeonly; else \ @@\ - echo "bootstrapping $@ from Makefile.ini in $(IMAKESRC) first..."; \ @@\ - $(MAKE) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; fi; \ @@\ - echo "okay, continuing in $(CURRENT_DIR)") + echo "using system-wide imake, continuing in $(CURRENT_DIR)" #endif /* UseInstalled */ #endif /* ImakeDependency */ @@ -3226,12 +3220,8 @@ target:: @@\ fi; \ @@\ done -#ifdef UseInstalled -#define ImakeSubCmdHelper $(IMAKE_CMD) -#else -#define ImakeSubCmdHelper $(IMAKEPREFIX)$(IMAKE) -I$(IMAKEPREFIX)$(IRULESRC) \ +#define ImakeSubCmdHelper $(IMAKE_CMD) -I$(IMAKEPREFIX)$(IRULESRC) \ $(IMAKE_DEFINES) $(IMAKE_WARNINGS) -#endif #endif /* MakeMakeSubdirs */ diff --git a/nx-X11/config/cf/Imake.tmpl b/nx-X11/config/cf/Imake.tmpl index 30a0dc73b..f40864ced 100644 --- a/nx-X11/config/cf/Imake.tmpl +++ b/nx-X11/config/cf/Imake.tmpl @@ -1386,35 +1386,13 @@ TCLIBDIR = TclLibDir #define LoaderLibPrefix /**/ #endif #ifndef ImakeCmd -#ifdef UseInstalled /* assume BINDIR in path */ #define ImakeCmd imake -#else -#define ImakeCmd $(IMAKESRC)/imake -#endif #endif #ifndef ImakeWarningFlags #define ImakeWarningFlags /* Nothing */ #endif #ifndef DependCmd -#if UseGccMakeDepend -#ifdef UseInstalled /* assume BINDIR in path */ -#define DependCmd gccmakedep -#else -#define DependCmd $(DEPENDSRC)/gccmakedep -#endif -#elif UseCCMakeDepend -#ifdef UseInstalled /* assume BINDIR in path */ -#define DependCmd ccmakedep -#else -#define DependCmd $(DEPENDSRC)/ccmakedep -#endif -#else -#ifdef UseInstalled /* assume BINDIR in path */ #define DependCmd makedepend -#else -#define DependCmd $(DEPENDSRC)/makedepend -#endif -#endif #endif #ifndef DependDefines # if UseCCMakeDepend || UseGccMakeDepend diff --git a/nx-X11/config/cf/Imakefile b/nx-X11/config/cf/Imakefile index b7626590d..22eb09216 100644 --- a/nx-X11/config/cf/Imakefile +++ b/nx-X11/config/cf/Imakefile @@ -30,14 +30,12 @@ xorgversion.def \ nxversion.def RULEFILES = \ -Imake.rules \ X11.rules \ lnxLib.rules \ noop.rules \ xf86.rules TMPLFILES = \ -Imake.tmpl \ Library.tmpl \ Server.tmpl \ ServerLib.tmpl \ @@ -47,7 +45,6 @@ lnxLib.tmpl \ xorg.tmpl CFFILES = \ -Imake.cf \ linux.cf \ xorg.cf diff --git a/nx-X11/config/imake/Imakefile b/nx-X11/config/imake/Imakefile deleted file mode 100644 index 13645443b..000000000 --- a/nx-X11/config/imake/Imakefile +++ /dev/null @@ -1,84 +0,0 @@ -XCOMM $XdotOrg: xc/config/imake/Imakefile,v 1.3 2005/10/10 23:49:09 kem Exp $ -XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:41:50 cpqbld Exp $ -XCOMM -XCOMM -XCOMM -XCOMM -XCOMM $XFree86: xc/config/imake/Imakefile,v 3.18 2003/10/21 17:41:44 tsi Exp $ - -XCOMM Some compilers generate fatal errors if an -L directory does -XCOMM not exist. Since BUILDLIBDIR may not exist yet suppress its use. - LDPRELIB = - LDPRELIBS = - -DEPLIBS = - -INCLUDES = -I$(TOP)/include $(TOP_X_INCLUDES)/X11 -CPP_PROGRAM = CppCmd -CPP_DEFINES = -DCPP_PROGRAM="\"$(CPP_PROGRAM)\"" -GCC_COMMAND = $(CC) -fmerge-constants -xc /dev/null -S -o /dev/null 2> /dev/null 1> /dev/null -GCC_DEFINES = -DHAS_MERGE_CONSTANTS=`if $(GCC_COMMAND); then echo 1; else echo 0; fi` - -EXTRA_DEFINES=-DMONOLITH - -#ifdef CrossCompileDir -CROSSCOMPILEDIR = CrossCompileDir -CROSSCOMPILEDEFINES=-DCROSSCOMPILE -DCROSSCOMPILEDIR=\"$(CROSSCOMPILEDIR)\" -#else -CROSSCOMPILEDIR = -CROSSCOMPILEDEFINES= -BOOTSTRAPDEFINES = -#endif - -DEFINES = $(SIGNAL_DEFINES) $(BOOTSTRAPCFLAGS) $(CPP_DEFINES) $(GCC_DEFINES) \ - $(CROSSCOMPILEDEFINES) - -EXTRAMANDEFS = -D__cpp__="\"$(CPP_PROGRAM)\"" - -#if defined(MacIIArchitecture) || defined(SequentArchitecture) || defined(i386ScoArchitecture) -XBSDLIB = /**/ -#endif - -#ifdef CrossCompileDir -# ifdef TargetPreProcessCmd -CPP = TargetPreProcessCmd -# else -CPP = CrossCompileDir/cc -E - -# endif -IMAKEMDEFS_CPPDEFINES = $(DEFINES) -DCROSSCOMPILE_CPP -CppFileTarget(imakemdep_cpp.h,imakemdep.h,$(IMAKEMDEFS_CPPDEFINES),\ - NullParameter) -#endif - -#undef ImakeDependency -#define ImakeDependency(dummy) @@\ -imake.o: imakemdep_cpp.h @@\ -Makefile:: ProgramTargetName(imake) - -#if CrossCompiling -SimpleHostProgramTarget(imake) -#else -SimpleProgramTarget(imake) -#endif - -imakeonly:: $(PROGRAM) - -InstallDriverSDKNamedProg(imake,imake,$(DRIVERSDKDIR)/config/imake) - -#if HasClearmake -bootstrapdepend: depend -#else -bootstrapdepend: -#endif - -clean:: - RemoveFile(ProgramTargetName(ccimake)) - RemoveFile(Makefile.proto) - RemoveFile(imakemdep_cpp.h) - $(RM) -r bootstrap - -#ifdef OS2Architecture -clean:: - RemoveFiles(imake ccimake) - -#endif diff --git a/nx-X11/config/imake/Makefile.ini b/nx-X11/config/imake/Makefile.ini deleted file mode 100644 index 93dca8584..000000000 --- a/nx-X11/config/imake/Makefile.ini +++ /dev/null @@ -1,85 +0,0 @@ -# $Xorg: Makefile.ini,v 1.3 2000/08/17 19:41:50 cpqbld Exp $ -# -# WARNING WARNING WARNING WARNING WARNING WARNING WARNING -# -# This is NOT an automatically generated Makefile! It is hand-crafted as a -# bootstrap, may need editing for your system. The BOOTSTRAPCFLAGS variable -# may be given at the top of the build tree for systems that do not define -# any machine-specific preprocessor symbols. -# -# $XFree86: xc/config/imake/Makefile.ini,v 3.9 2000/10/26 17:57:45 dawes Exp $ - -CROSSCOMPILEDIR = -CROSSCOMPILEFLAGS = -DCROSSCOMPILEDIR=\"$(CROSSCOMPILEDIR)\" -BOOTSTRAPCFLAGS = -CC = cc -PREPROCESS_CMD = cc -E -CDEBUGFLAGS = -O -INCLUDES = -I../../include -I../../imports/x11/include/X11 -CFLAGS = $(BOOTSTRAPCFLAGS) $(CDEBUGFLAGS) $(INCLUDES) -DMONOLITH -IMAKEMDEP_CROSSCOMPILE = -DCROSSCOMPILE_CPP -SHELL = /bin/sh -RM = rm -f -MV = mv -RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a \ - tags TAGS make.log -NPROC = 1 - -imake:: - @echo "making imake with BOOTSTRAPCFLAGS=$(BOOTSTRAPCFLAGS) and CROSSCOMPILEFLAGS=$(CROSSCOMPILEFLAGS) in config/imake" - -imake:: imake.o - $(CC) -o imake $(CFLAGS) imake.o - -imake.o: ccimake imake.c imakemdep_cpp.h - $(CC) -c $(CFLAGS) `./ccimake` imake.c - -ccimake: ccimake.c - $(CC) -o ccimake $(CROSSCOMPILEFLAGS) $(CFLAGS) ccimake.c - -imakemdep_cpp.h: ccimake imakemdep.h - if [ -n "$(CROSSCOMPILEDIR)" ] ; then \ - $(CROSSCOMPILEDIR)/$(PREPROCESS_CMD) `./ccimake` \ - $(IMAKEMDEP_CROSSCOMPILE) imakemdep.h > imakemdep_cpp.h; \ - else touch imakemdep_cpp.h; fi - -# a derived object erroneously would get shared across platforms by clearmake -.NO_CONFIG_REC: ccimake - -bootstrap: - -@if [ -d bootstrap ]; then exit 0; else set -x; mkdir bootstrap; fi - $(MV) *.o bootstrap - @if [ -f imake.exe ]; then set -x; $(MV) imake.exe bootstrap; \ - elif [ -f imake ]; then set -x; $(MV) imake bootstrap; else exit 0; fi - -relink: - $(RM) imake - $(MAKE) $(MFLAGS) imake - -clean: - $(RM) ccimake imake.o imake - $(RM_CMD) \#* - $(RM) -r Makefile.proto Makefile Makefile.dep bootstrap - $(RM) imakemdep_cpp.h - -depend: - -imake.exe:: - @echo making imake with BOOTSTRAPCFLAGS=-DWIN32 - -imake.exe:: imake.obj - cl -nologo imake.obj libc.lib kernel32.lib - -imake.obj: imake.c - cl -nologo -W2 -D__STDC__ -c -DWIN32 $(CFLAGS) imake.c - -clean.Win32: - if exist imake.exe del imake.exe - if exist imake.obj del imake.obj - -clean.os2: - imakesvc 4 imake imake.exe imake.o /imake.exe - -imake.os2: imake.c - $(CC) -DBSD43 $(CFLAGS) -o imake.exe imake.c - copy imake.exe \\ diff --git a/nx-X11/config/imake/ccimake.c b/nx-X11/config/imake/ccimake.c deleted file mode 100644 index 30524d55f..000000000 --- a/nx-X11/config/imake/ccimake.c +++ /dev/null @@ -1,62 +0,0 @@ -/* $Xorg: ccimake.c,v 1.4 2001/02/09 02:03:15 xorgcvs Exp $ */ -/* - -Copyright (c) 1993, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group . - -*/ -/* $XFree86: xc/config/imake/ccimake.c,v 1.2 2001/04/01 13:59:56 tsi Exp $ */ - -/* - * Warning: This file must be kept as simple as possible so that it can - * compile without any special flags on all systems. Do not touch it unless - * you *really* know what you're doing. Make changes in imakemdep.h, not here. - */ - -#define CCIMAKE /* only get imake_ccflags definitions */ -#include "imakemdep.h" /* things to set when porting imake */ - -#ifndef imake_ccflags -# define imake_ccflags "-O" -#endif - -#ifndef CROSSCOMPILEDIR -# define CROSSCOMPILEDIR "" -#endif - -#define crosscompile_ccflags " -DCROSSCOMPILE " -#define crosscompiledir_str "-DCROSSCOMPILEDIR=" - -int -main() -{ - if (CROSSCOMPILEDIR[0] != '\0') { - write(1, crosscompiledir_str, sizeof(crosscompiledir_str) - 1); - write(1,"\"",1); - write(1, CROSSCOMPILEDIR, sizeof(CROSSCOMPILEDIR) - 1); - write(1,"\"",1); - write(1, crosscompile_ccflags, sizeof(crosscompile_ccflags) - 1); - } - write(1, imake_ccflags, sizeof(imake_ccflags) - 1); - return 0; -} - diff --git a/nx-X11/config/imake/imake.c b/nx-X11/config/imake/imake.c deleted file mode 100644 index 86b9ad6c1..000000000 --- a/nx-X11/config/imake/imake.c +++ /dev/null @@ -1,2190 +0,0 @@ - -/*************************************************************************** - * * - * Porting Note * - * * - * Add the value of BOOTSTRAPCFLAGS to the cpp_argv table so that it will * - * be passed to the template file. * - * * - ***************************************************************************/ -/* - * -Copyright (c) 1985, 1986, 1987, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - * - * Original Author: - * Todd Brunhoff - * Tektronix, inc. - * While a guest engineer at Project Athena, MIT - * - * imake: the include-make program. - * - * Usage: imake [-Idir] [-Ddefine] [-T template] [-f imakefile ] [-C Imakefile.c ] [-s] [-e] [-v] [make flags] - * - * Imake takes a template file (Imake.tmpl) and a prototype (Imakefile) - * and runs cpp on them producing a Makefile. It then optionally runs make - * on the Makefile. - * Options: - * -D define. Same as cpp -D argument. - * -U undefine. Same as cpp -U argument. - * -W warning. Same as cpp -W argument. - * -I Include directory. Same as cpp -I argument. - * -T template. Designate a template other - * than Imake.tmpl - * -f specify the Imakefile file - * -C specify the name to use instead of Imakefile.c - * -s[F] show. Show the produced makefile on the standard - * output. Make is not run is this case. If a file - * argument is provided, the output is placed there. - * -e[F] execute instead of show; optionally name Makefile F - * -v verbose. Show the make command line executed. - * - * Environment variables: - * - * IMAKEINCLUDE Include directory to use in addition to "." - * IMAKECPP Cpp to use instead of /lib/cpp - * IMAKEMAKE make program to use other than what is - * found by searching the $PATH variable. - * Other features: - * imake reads the entire cpp output into memory and then scans it - * for occurences of "@@". If it encounters them, it replaces it with - * a newline. It also trims any trailing white space on output lines - * (because make gets upset at them). This helps when cpp expands - * multi-line macros but you want them to appear on multiple lines. - * It also changes occurences of "XCOMM" to "#", to avoid problems - * with treating commands as invalid preprocessor commands. - * - * The macros MAKEFILE and MAKE are provided as macros - * to make. MAKEFILE is set to imake's makefile (not the constructed, - * preprocessed one) and MAKE is set to argv[0], i.e. the name of - * the imake program. - * - * Theory of operation: - * 1. Determine the name of the imakefile from the command line (-f) - * or from the content of the current directory (Imakefile or imakefile). - * Call this . This gets added to the arguments for - * make as MAKEFILE=. - * 2. Determine the name of the template from the command line (-T) - * or the default, Imake.tmpl. Call this