Mike Gabriel: [Arctica Project] Release of nx-libs (version 3.5.99.0)
Introduction
NX is a software suite which implements very efficient compression of the
X11 protocol. This increases performance when using X applications over a
network, especially a slow one.
NX (v3) has been originally developed by NoMachine and has been Free
Software ever since. Since NoMachine obsoleted NX (v3) some time back in
2013/2014, the maintenance has been continued by a versatile group of
developers. The work on NX (v3) is being continued under the project name
"nx-libs".
History
Until January 2015, nx-libs was more mainly a redistribution approach of
the original NX (v3) software. We (we as in mainly a group of X2Go
developers) kept changes applied to the original NoMachine sources as
minimal as possible. We also kept the original files and folders
structure. Patches had been maintained via the quilt utility on top of a
Git repository, the patches had always been kept separate. That was the
3.5.0.x series of nx-libs.
In January 2015, the characteristics of nx-libs as maintained by the X2Go
project between 2011 and 2015 changed. A decision was reached:
- Drop quilt patching approach
- Apply all already used patches to the code via Git
- Clean-up the complete source code tree
- Start backporting code from X.org
- Add new features, upgrade API/ABI and X11 extensions
- Work on nx-libs (coordinated by DAS-NETZWERKTEAM, Mike Gabriel)
- Work on multimedia support in remote graphical sessions (coordinated by Guangzhou Nianguan Electronics Technology Co.,Ltd)
- Mario Becroft (long term NX contributor)
- Nicolas Arenas Alonso (funding project coordinator at Qindel)
- Mike DePaulo (CVE hunter)
- Salvador Fandi o (developer, code reviewer, provided by Qindel)
- Mike Gabriel (development coordination, developer, packager)
- The GZNGET FLOSS Team (Arctica Project developer, advisory)
- Jordi Marqu s (Arctica Project infrastructure maintainer)
- Mihai Moldovan (developer, code reviewer)
- Ulrich Sibiller (developer, code reviewer)
- Vadim Troshchinskiy (developer, code reviewer, provided by Qindel)
- Fernando Carvajal (contributor, provided by Qindel)
- Reinhard Tartler (contributor to X2Go)
- CVE security audit (complete)
- remove unused code (+/- complete)
- no bundled non-X11 libraries anymore (complete)
- complete imake cleanup (+/- complete)
- replace as many libNX_X - libraries by X.org's libX - libraries (complete, only remaining library: libNX_X11)
- support for iOS (nxproxy, complete)
- Unix file socket communication for nxproxy -C <-> nxproxy -S connections (complete)
- allow Unix file sockets as channel endpoints (complete)
- new RandR based Xinerama extension (+/- complete, more QA needed)
- nxcomp protocol clean-up (complete)
- RandR Xserver extension upgrade to protocol version 1.5 (complete, from version 1.2)
- Composite Xserver extension upgrade to proto version 0.4 (complete, from version 0.2)
- various ABI/API updates (with respect to X.org), so that extension backporting should be easy now (+/- complete)
[mike@minobo nx-libs (3.6.x)]$ cloc --match-f '.*\.(c cpp h)' .
1896 text files.
1896 unique files.
7430 files ignored.
http://cloc.sourceforge.net v 1.60 T=5.88 s (307.3 files/s, 143310.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 958 68574 74891 419638
C/C++ Header 730 25683 33957 130418
C++ 120 17007 11721 61292
-------------------------------------------------------------------------------
SUM: 1808 111264 120569 611348
-------------------------------------------------------------------------------
The previous statistics had these sums in the last line. First the
nx-libs 3.5.0.x code tree (where we came from):
-------------------------------------------------------------------------------
SUM: 5614 329279 382337 1757743
-------------------------------------------------------------------------------
Then the nx-libs 3.6.x status as it was on May 9th 2016:
-------------------------------------------------------------------------------
SUM: 1922 118581 126783 662635
-------------------------------------------------------------------------------
Another 50.000 lines of code have been removed over the past two months.
Work pending for the final 3.6.0 release goal
- allow embedding of nxproxy into other windows (work pending)
- Fix the Composite extension in nx-X11 Xserver (work pending)
- nxcomp logging clean-up (work pending)
- optimizing documentation: how to tune NX connections (work pending)
- XServer extension upgrades:
- XInput 1.3 -> 1.4 (work pending)
- Xfixes 3.0 -> 5.0 (work in progress)
- Damage 1.0 -> 1.1 (work pending)
- Xres 1.0 -> 2.0 (work pending)
- Sync 1.0 -> 3.0 (work pending)
- Render 0.10 -> 0.11 (work pending)
- Drop as many X11 related proto headers as possible
Like