[dgit import tarball openni2 2.2.0.33+dfsg-12 openni2_2.2.0.33+dfsg-12.debian.tar.xz]
--- /dev/null
+openni2 (2.2.0.33+dfsg-12) unstable; urgency=medium
+
+ [ Ondřej Nový ]
+ * Use debhelper-compat instead of debian/compat
+
+ [ Jochen Sprickerhof ]
+ * Port to Python 3 (Closes: #937206)
+ * Bump policy version (no changes)
+ * Bump debhelper version
+ * Drop unused build dependency
+ * Add multiarch stuff
+ * add Salsa CI
+
+ -- Jochen Sprickerhof <jspricke@debian.org> Sat, 14 Sep 2019 10:36:50 +0200
+
+openni2 (2.2.0.33+dfsg-11) unstable; urgency=medium
+
+ [ Ondřej Nový ]
+ * d/copyright: Use https protocol in Format field
+
+ [ Felipe Sateler ]
+ * Change maintainer address to debian-multimedia@lists.debian.org
+
+ [ Jochen Sprickerhof ]
+ * Update Vcs URLs to salsa.d.o
+ * Move cleanup to d/clean
+ * Add R³
+ * http -> https
+ * Fix dh_clean
+ * Fix missing-notice-file-for-apache-license
+ * Bump policy and debhelper versions
+ * Don't build with -Werror (Closes: #897827)
+
+ -- Jochen Sprickerhof <jspricke@debian.org> Sat, 05 May 2018 17:40:24 +0200
+
+openni2 (2.2.0.33+dfsg-10) unstable; urgency=medium
+
+ * Add patch for arm.
+ Thanks to Adrian Bunk (Closes: #874220)
+ * Remove flags, not needed anymore
+
+ -- Jochen Sprickerhof <jspricke@debian.org> Sat, 09 Sep 2017 16:17:46 +0200
+
+openni2 (2.2.0.33+dfsg-9) unstable; urgency=medium
+
+ * Add patch for GCC7 (Closes: #871157)
+ * Delete removed paragraphs from copyright
+ * Bump standards version (no changes needed)
+
+ -- Jochen Sprickerhof <jspricke@debian.org> Wed, 09 Aug 2017 08:40:32 +0200
+
+openni2 (2.2.0.33+dfsg-8) unstable; urgency=medium
+
+ [ Hans-Christoph Steiner ]
+ * remove myself from Uploaders
+
+ [ Jochen Sprickerhof ]
+ * Remove Temp documentation to make package build reproducible
+ * Add patch for GCC7 (Closes: #853597)
+ * Remove Cosimo Alfarano from Uploaders (Closes: #846822)
+ * bump compat to 10 (no changes needed)
+ * Remove versioned dependencies
+
+ -- Jochen Sprickerhof <jspricke@debian.org> Tue, 07 Feb 2017 18:40:17 +0100
+
+openni2 (2.2.0.33+dfsg-7) unstable; urgency=medium
+
+ * Don't link plugins in pkg-config file
+ * Fix lintian warnings
+ * Add watch file
+ * Update my email address
+ * Bumped Standards-Version to 3.9.8, no changes needed.
+
+ -- Jochen Sprickerhof <jspricke@debian.org> Mon, 12 Sep 2016 11:32:44 +0200
+
+openni2 (2.2.0.33+dfsg-6) unstable; urgency=medium
+
+ * Add gcc6 patch (Closes: #812056)
+
+ -- Jochen Sprickerhof <debian@jochen.sprickerhof.de> Sat, 23 Jan 2016 16:56:31 +0100
+
+openni2 (2.2.0.33+dfsg-5) unstable; urgency=medium
+
+ * Add 0012-generic-linux.patch.
+ Thanks to Riku Voipio (Closes: #801123)
+
+ -- Jochen Sprickerhof <debian@jochen.sprickerhof.de> Fri, 09 Oct 2015 22:34:31 +0200
+
+openni2 (2.2.0.33+dfsg-4) unstable; urgency=medium
+
+ * Add myself to Uploaders
+ * Fix Vcs-Git URL
+ * Fix Homepage (closes: #795276)
+
+ -- Jochen Sprickerhof <debian@jochen.sprickerhof.de> Mon, 17 Aug 2015 12:14:36 +0200
+
+openni2 (2.2.0.33+dfsg-3) unstable; urgency=medium
+
+ * Properly fix unused variables
+
+ -- Jochen Sprickerhof <debian@jochen.sprickerhof.de> Sun, 16 Aug 2015 10:10:00 +0200
+
+openni2 (2.2.0.33+dfsg-2) unstable; urgency=medium
+
+ * Fix compilation with GCC5
+ * Add ARMhf support.
+
+ -- Jochen Sprickerhof <debian@jochen.sprickerhof.de> Sat, 15 Aug 2015 14:17:54 +0200
+
+openni2 (2.2.0.33+dfsg-1) unstable; urgency=low
+
+ [ Hauke Wintjen ]
+ * Merged upstream to 2.2.0.33
+ * Refresh patches
+
+ [ Jochen Sprickerhof ]
+ * Bump standards version
+ * Initial release. (Closes: #607160)
+ * Add more licenses
+ * Filter non dfsg free files in gbp.conf
+ * Imported Upstream version 2.2.0.33+dfsg
+
+ -- Hans-Christoph Steiner <hans@eds.org> Wed, 25 Mar 2015 10:49:04 -0400
+
+openni2 (2.1.0.4-1ubuntu1~1.gbp2a4158) UNRELEASED; urgency=low
+
+ ** SNAPSHOT build @2a4158ba551d1f7de2549afc4400bd4110641cce **
+
+ * Some ignores
+ * Ignore eclipse projects
+ * Some more ignores
+ * Some ignores
+ * Refresh patches
+ * Refresh patches
+ * more refresh
+
+ -- Hauke Wintjen <hwintjen@rimpl-consulting.de> Fri, 29 Mar 2013 23:14:11 +0100
+
+openni2 (2.1.0.4-1) unstable; urgency=low
+
+ * Initial creation of debian package
+
+ -- Hauke Wintjen <hwintjen@rimpl-consulting.de> Tue, 14 Mar 2013 00:40:17 +0100
--- /dev/null
+Source/Documentation/html/
+Source/Documentation/Temp/
+Source/Documentation/java/
+Bin/Intermediate/
+Bin/*-Release/
+ThirdParty/PSCommon/XnLib/Bin/*-Release/
+ThirdParty/PSCommon/XnLib/Bin/Intermediate/
+Source/Documentation/doxygen_sqlite3.db
--- /dev/null
+Source: openni2
+Priority: optional
+Section: libs
+Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
+Uploaders: Nobuhiro Iwamatsu <iwamatsu@debian.org>,
+ Jochen Sprickerhof <jspricke@debian.org>
+Build-Depends: debhelper-compat (= 12),
+ freeglut3-dev,
+ libusb-1.0-0-dev,
+ python3,
+ doxygen,
+ graphviz,
+ libjpeg-dev,
+ libudev-dev,
+ default-jdk
+Standards-Version: 4.4.0
+Rules-Requires-Root: no
+Homepage: https://structure.io/openni
+Vcs-Git: https://salsa.debian.org/multimedia-team/openni2.git
+Vcs-Browser: https://salsa.debian.org/multimedia-team/openni2
+
+Package: libopenni2-0
+Architecture: any
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Description: framework for sensor-based 'Natural Interaction'
+ OpenNI2 is a framework for getting data to support 'Natural Interaction',
+ i.e. skeleton tracking, gesture tracking, and similar ways of getting data
+ from humans. OpenNI2 provides the interface for physical devices and for
+ middleware components. The API enables modules to be registered in the OpenNI2
+ framework, which then produce sensory data. OpenNI2 also allows selection of
+ different hardware and middleware modules.
+
+Package: openni2-utils
+Section: utils
+Architecture: any
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Description: debug and test utilities OpenNI2 framework
+ OpenNI2 is a framework for getting data to support 'Natural Interaction',
+ i.e. skeleton tracking, gesture tracking, and similar ways of getting data
+ from humans. OpenNI2 provides the interface for physical devices and for
+ middleware components. The API enables modules to be registered in the OpenNI2
+ framework, which then produce sensory data. OpenNI2 also allows selection of
+ different hardware and middleware modules.
+ .
+ This package provides a number of related utilities for debugging, testing,
+ and view the results of the sensor modules.
+
+Package: libopenni2-dev
+Section: libdevel
+Architecture: any
+Depends: ${misc:Depends},
+ libopenni2-0 (= ${binary:Version})
+Suggests: openni2-doc
+Description: headers for OpenNI 'Natural Interaction' frameworks
+ OpenNI is a framework for getting data to support 'Natural Interaction',
+ i.e. skeleton tracking, gesture tracking, and similar ways of getting data
+ from humans. OpenNI provides the interface for physical devices and for
+ middleware components. The API enables modules to be registered in the OpenNI
+ framework, which then produce sensory data. OpenNI also allows selection of
+ different hardware and middleware modules.
+
+Package: openni2-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Description: developer documentation for OpenNI frameworks
+ OpenNI is a framework for getting data to support 'Natural Interaction',
+ i.e. skeleton tracking, gesture tracking, and similar ways of getting data
+ from humans. OpenNI provides the interface for physical devices and for
+ middleware components. The API enables modules to be registered in the OpenNI
+ framework, which then produce sensory data. OpenNI also allows selection of
+ different hardware and middleware modules.
+ .
+ This package provides developer documentation for developing using the OpenNI2
+ frameworks.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: OpenNI2
+Upstream-Contact: OpenNI, http://www.openni.org/contact-us
+Source: https://github.com/occipital/openni2
+
+Files: *
+Copyright: 2010-2013, PrimeSense Ltd.
+License: APACHE-2.0
+
+Files: Packaging/Linux/install.sh
+Copyright: 2012, PrimeSense Ltd.
+License: GPL-3+
+
+Files: ThirdParty/GL/glh/*
+ ThirdParty/PSCommon/XnLib/ThirdParty/GL/glh/*
+Copyright: 2000, Cass Everitt <cass@r3.nu>
+ 2000-2001 NVIDIA Corporation
+License: BSD-3-clause-NVIDIA-LICENSE
+
+Files: ThirdParty/LibJPEG/*
+Copyright: 1991-1998, Thomas G. Lane.
+License: LibJPEG
+
+Files: ThirdParty/PSCommon/Testing/*
+Copyright: 2003,2005-2009, Google Inc.
+License: Google
+
+Files: ThirdParty/PSCommon/XnLib/ThirdParty/libusb-1.0.9-Android/Android.mk
+Copyright: 2012, PrimeSense Ltd.
+License: APACHE-2.0
+
+Files: ThirdParty/PSCommon/XnLib/ThirdParty/libusb-1.0.9-Android/*
+Copyright: Copyright (C) 2007-2009 Daniel Drake <dsd@gentoo.org>
+ Copyright (c) 2001 Johannes Erdfelt <johannes@erdfelt.com>
+ Copyright (C) 2008-2012 Nathan Hjelm <hjelmn@users.sourceforge.net>
+ Copyright (C) 2009-2012 Pete Batard <pete@akeo.ie>
+ Copyright (C) 2010 Michael Plante <michael.plante@gmail.com>
+ Copyright (C) 2010-2012 Peter Stuge <peter@stuge.se>
+ Copyright (C) 2011-2012 Hans de Goede <hdegoede@redhat.com>
+ Copyright (C) 2012 Martin Pieuchot <mpi@openbsd.org>
+License: LGPL-2.1
+
+Files: debian/*
+Copyright: 2010-2013, Hans-Christoph Steiner <hans@eds.org>
+ 2011, Cosimo Alfarano <kalfa@debian.org>
+ 2013, Hauke Wintjen <hwintjen@rimp-consulting.de>
+ 2013-2014, Jochen Sprickerhof <debian@jochen.sprickerhof.de>
+License: GPL-3+
+
+
+License: APACHE-2.0
+ OpenNI 2.0
+ Copyright (c) 2012 PrimeSense Ltd.
+ .
+ This product is licensed under the Apache License, Version 2.0 (the "License");
+ .
+ You should have received a copy of the Apache License
+ along with OpenNI. If not, see:
+ http://www.apache.org/licenses/LICENSE-2.0
+ .
+ This software is based in part on the work of the Independent JPEG Group.
+ .
+ Your use of the library may involve use of the Microsoft Kinect for Windows Software Development Kit,
+ which is currently subject to the following license:
+ http://www.microsoft.com/en-us/kinectforwindows/develop/sdk-eula.aspx
+
+License: GPL-3+
+ 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 <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License version 3 can be found in `/usr/share/common-licenses/GPL-3'.
+
+License: LGPL-2.1
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation;
+ version 2.1 of the License.
+ .
+ This library 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
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU Lesser General Public
+ License version 2.1 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
+
+License: Google
+ 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.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+ .
+ 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 COPYRIGHT
+ OWNER 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.
+
+License: BSD-3-clause-NVIDIA-LICENSE
+ Copyright (c) 2000 Cass Everitt
+ Copyright (c) 2000 NVIDIA Corporation
+ 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.
+ .
+ * The names of contributors to this software may not be used
+ to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ 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.
+
+License: LibJPEG
+ In plain English:
+ .
+ 1. We don't promise that this software works. (But if you find any bugs,
+ please let us know!)
+ 2. You can use this software for whatever you want. You don't have to pay us.
+ 3. You may not pretend that you wrote this software. If you use it in a
+ program, you must acknowledge somewhere in your documentation that
+ you've used the IJG code.
+ .
+ In legalese:
+ .
+ The authors make NO WARRANTY or representation, either express or implied,
+ with respect to this software, its quality, accuracy, merchantability, or
+ fitness for a particular purpose. This software is provided "AS IS", and
+ you, its user, assume the entire risk as to its quality and accuracy.
+ .
+ This software is copyright (C) 1991-1998, Thomas G. Lane.
+ All Rights Reserved except as specified below.
+ .
+ Permission is hereby granted to use, copy, modify, and distribute this
+ software (or portions thereof) for any purpose, without fee, subject to these
+ conditions:
+ (1) If any part of the source code for this software is distributed, then this
+ README file must be included, with this copyright and no-warranty notice
+ unaltered; and any additions, deletions, or changes to the original files
+ must be clearly indicated in accompanying documentation.
+ (2) If only executable code is distributed, then the accompanying
+ documentation must state that "this software is based in part on the work of
+ the Independent JPEG Group".
+ (3) Permission for use of this software is granted only if the user accepts
+ full responsibility for any undesirable consequences; the authors accept
+ NO LIABILITY for damages of any kind.
+ .
+ These conditions apply to any software derived from or based on the IJG code,
+ not just to the unmodified library. If you use our work, you ought to
+ acknowledge us.
+ .
+ Permission is NOT granted for the use of any IJG author's name or company name
+ in advertising or publicity relating to this software or products derived from
+ it. This software may be referred to only as "the Independent JPEG Group's
+ software".
+ .
+ We specifically permit and encourage the use of this software as the basis of
+ commercial products, provided that all warranty or liability claims are
+ assumed by the product vendor.
+ .
+ ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
+ sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
+ ansi2knr.c is NOT covered by the above copyright and conditions, but instead
+ by the usual distribution terms of the Free Software Foundation; principally,
+ that you must include source code if you redistribute it. (See the file
+ ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
+ of any program generated from the IJG code, this does not limit you more than
+ the foregoing paragraphs do.
+ .
+ The Unix configuration script "configure" was produced with GNU Autoconf.
+ It is copyright by the Free Software Foundation but is freely distributable.
+ The same holds for its supporting scripts (config.guess, config.sub,
+ ltconfig, ltmain.sh). Another support script, install-sh, is copyright
+ by M.I.T. but is also freely distributable.
+ .
+ It appears that the arithmetic coding option of the JPEG spec is covered by
+ patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot
+ legally be used without obtaining one or more licenses. For this reason,
+ support for arithmetic coding has been removed from the free JPEG software.
+ (Since arithmetic coding provides only a marginal gain over the unpatented
+ Huffman mode, it is unlikely that very many implementations will support it.)
+ So far as we are aware, there are no patent restrictions on the remaining
+ code.
+ .
+ The IJG distribution formerly included code to read and write GIF files.
+ To avoid entanglement with the Unisys LZW patent, GIF reading support has
+ been removed altogether, and the GIF writer has been simplified to produce
+ "uncompressed GIFs". This technique does not use the LZW algorithm; the
+ resulting GIF files are larger than usual, but are readable by all standard
+ GIF decoders.
+ .
+ We are required to state that
+ "The Graphics Interchange Format(c) is the Copyright property of
+ CompuServe Incorporated. GIF(sm) is a Service Mark property of
+ CompuServe Incorporated."
--- /dev/null
+[DEFAULT]
+upstream-branch = upstream
+debian-branch = master
+upstream-tag = upstream/%(version)s
+debian-tag = debian/%(version)s
+pristine-tar = True
+sign-tags = True
+
+[git-import-orig]
+filter = ['ThirdParty/GL/GL', 'ThirdParty/PSCommon/XnLib/ThirdParty/GL/GL', 'ThirdParty/PSCommon/XnLib/Driver/Win32/Bin/psdrv3.inf']
+filter-pristine-tar = True
--- /dev/null
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
--- /dev/null
+Bin/*-Release/libOpenNI2.so.* usr/lib/
+Bin/*-Release/OpenNI2/Drivers/lib*.so.* usr/lib/OpenNI2/Drivers/
+Config/*.ini etc/openni2/
--- /dev/null
+# Make primesense device mount with writing permissions (default is read only for unknown devices)
+SUBSYSTEM=="usb", ATTR{idProduct}=="0200", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0300", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0401", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0500", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0600", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0601", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0609", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="1280", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="2100", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="2200", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="f9db", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="0400", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="02ae", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="02ad", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="02b0", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="02be", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="02bf", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
+SUBSYSTEM=="usb", ATTR{idProduct}=="02c2", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
--- /dev/null
+Samples/
+
--- /dev/null
+Include/* usr/include/openni2/
+debian/libopenni2.pc usr/share/pkgconfig
+Bin/*-Release/libOpenNI2.so usr/lib/
+Bin/*-Release/OpenNI2/Drivers/lib*.so usr/lib/OpenNI2/Drivers/
--- /dev/null
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include/openni2
+
+Name: OpenNI2
+Description: A general purpose driver for all OpenNI cameras.
+Version: 2.2.0.3
+Cflags: -I${includedir}
+Libs: -L${libdir} -lOpenNI2
--- /dev/null
+Source/Documentation/html
+Source/Documentation/java
+README
+ReleaseNotes.txt
+NOTICE
--- /dev/null
+Bin/*-Release/NiViewer2 usr/bin/
--- /dev/null
+From: Hauke Wintjen <hwintjen@rimpl-consulting.de>
+Date: Fri, 29 Mar 2013 21:04:33 +0100
+Subject: Add SONAME to libraries
+
+---
+ ThirdParty/PSCommon/BuildSystem/CommonCppMakefile | 4 ++--
+ ThirdParty/PSCommon/XnLib/Include/Linux-x86/XnOSLinux-x86.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile b/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
+index ffdc236..6d0d0b4 100644
+--- a/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
++++ b/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
+@@ -77,8 +77,8 @@ ifneq "$(LIB_NAME)" ""
+ OUTPUT_NAME = lib$(LIB_NAME).so
+ ifneq ("$(OSTYPE)","Darwin")
+ LDFLAGS += -Wl,--no-undefined
+- OUTPUT_NAME = lib$(LIB_NAME).so
+- OUTPUT_COMMAND = $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS) -shared
++ OUTPUT_NAME = lib$(LIB_NAME).so.0
++ OUTPUT_COMMAND = $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS) -shared -Wl,-soname,${OUTPUT_NAME} && cd ${OUT_DIR} && ln -fs ${OUTPUT_NAME} lib$(LIB_NAME).so
+ else
+ LDFLAGS += -undefined error
+ OUTPUT_NAME = lib$(LIB_NAME).dylib
+diff --git a/ThirdParty/PSCommon/XnLib/Include/Linux-x86/XnOSLinux-x86.h b/ThirdParty/PSCommon/XnLib/Include/Linux-x86/XnOSLinux-x86.h
+index f8d1ecd..7262b00 100644
+--- a/ThirdParty/PSCommon/XnLib/Include/Linux-x86/XnOSLinux-x86.h
++++ b/ThirdParty/PSCommon/XnLib/Include/Linux-x86/XnOSLinux-x86.h
+@@ -78,7 +78,7 @@ typedef void* XN_LIB_HANDLE;
+ #define XN_SHARED_LIBRARY_PREFIX "lib"
+
+ /** A string that specifies the postfix of shared library files. */
+-#define XN_SHARED_LIBRARY_POSTFIX ".so"
++#define XN_SHARED_LIBRARY_POSTFIX ".so.0"
+
+ //---------------------------------------------------------------------------
+ // Threads
--- /dev/null
+From: Hauke Wintjen <hwintjen@rimpl-consulting.de>
+Date: Fri, 29 Mar 2013 21:16:28 +0100
+Subject: Change path of config files to /etc/openni2
+
+---
+ Source/Drivers/PS1080/Sensor/XnSensor.cpp | 2 +-
+ Source/Tools/NiViewer/NiViewer.cpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/Source/Tools/NiViewer/NiViewer.cpp
++++ b/Source/Tools/NiViewer/NiViewer.cpp
+@@ -96,7 +96,7 @@
+ // --------------------------------
+ // Defines
+ // --------------------------------
+-#define SAMPLE_XML_PATH "../../../../Data/SamplesConfig.xml"
++#define SAMPLE_XML_PATH "/etc/openni2/SamplesConfig.xml"
+
+ // --------------------------------
+ // Types
+--- a/Source/Core/OniContext.cpp
++++ b/Source/Core/OniContext.cpp
+@@ -23,7 +23,7 @@
+ #include <XnLog.h>
+ #include <XnOSCpp.h>
+
+-static const char* ONI_CONFIGURATION_FILE = "OpenNI.ini";
++static const char* ONI_CONFIGURATION_FILE = "/etc/openni2/OpenNI.ini";
+ static const char* ONI_DEFAULT_DRIVERS_REPOSITORY = "OpenNI2" XN_FILE_DIR_SEP "Drivers";
+
+ #define XN_MASK_ONI_CONTEXT "OniContext"
--- /dev/null
+From: Hauke Wintjen <hwintjen@rimpl-consulting.de>
+Date: Fri, 29 Mar 2013 22:21:36 +0100
+Subject: Use system wide libjpeg
+
+---
+ Source/Core/Makefile | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/Source/Core/Makefile
++++ b/Source/Core/Makefile
+@@ -5,14 +5,12 @@
+ INC_DIRS = \
+ ../../Include \
+ ../../ThirdParty/PSCommon/XnLib/Include \
+- ../Drivers/OniFile/Formats \
+- ../../ThirdParty/LibJPEG
++ ../Drivers/OniFile/Formats
+
+ SRC_FILES = \
+ *.cpp \
+ ../Drivers/OniFile/Formats/XnCodec.cpp \
+- ../Drivers/OniFile/Formats/XnStreamCompression.cpp \
+- ../../ThirdParty/LibJPEG/*.c \
++ ../Drivers/OniFile/Formats/XnStreamCompression.cpp
+
+ ifeq ("$(OSTYPE)","Darwin")
+ INC_DIRS += /opt/local/include
+@@ -23,7 +21,7 @@
+ LIB_NAME = OpenNI2
+
+ LIB_DIRS = ../../ThirdParty/PSCommon/XnLib/Bin/$(PLATFORM)-$(CFG)
+-USED_LIBS = XnLib dl pthread
++USED_LIBS = XnLib dl pthread jpeg
+ ifneq ("$(OSTYPE)","Darwin")
+ USED_LIBS += rt
+ endif
+@@ -32,4 +30,11 @@
+
+ CFLAGS += -Wall
+
++ifeq ($(shell ld -ljpeg -o /dev/null 1>&2 2> /dev/null; echo $$?), 0)
++ USED_LIBS += jpeg
++else
++ INC_DIRS += ../../ThirdParty/LibJPEG
++ SRC_FILES += ../../ThirdParty/LibJPEG/*.c
++endif
++
+ include ../../ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
+--- a/Source/Drivers/OniFile/Makefile
++++ b/Source/Drivers/OniFile/Makefile
+@@ -6,15 +6,12 @@
+ . \
+ ../../../Include \
+ ../../../ThirdParty/PSCommon/XnLib/Include \
+- ../../../ThirdParty/LibJPEG \
+ Formats
+
+ SRC_FILES = \
+ *.cpp \
+ Formats/*.cpp \
+- XnLibExtensions/*.cpp \
+- ../../../ThirdParty/LibJPEG/*.c
+-
++ XnLibExtensions/*.cpp
+
+ ifeq ("$(OSTYPE)","Darwin")
+ INC_DIRS += /opt/local/include
+@@ -25,7 +22,7 @@
+ LIB_NAME = OniFile
+
+ LIB_DIRS = ../../../ThirdParty/PSCommon/XnLib/Bin/$(PLATFORM)-$(CFG)
+-USED_LIBS = XnLib pthread
++USED_LIBS = XnLib pthread jpeg
+ ifneq ("$(OSTYPE)","Darwin")
+ USED_LIBS += rt
+ endif
+--- a/Source/Drivers/PS1080/Makefile
++++ b/Source/Drivers/PS1080/Makefile
+@@ -16,8 +16,7 @@
+ DriverImpl/*.cpp\
+ Formats/*.cpp \
+ Include/*.cpp \
+- Sensor/*.cpp \
+- ../../../ThirdParty/LibJPEG/*.c
++ Sensor/*.cpp
+
+
+ ifeq ("$(OSTYPE)","Darwin")
+@@ -30,7 +29,7 @@
+
+ LIB_DIRS += ../../../ThirdParty/PSCommon/XnLib/Bin/$(PLATFORM)-$(CFG)
+ LIB_DIRS += $(BIN_DIR)/$(PLATFORM)-$(CFG)
+-USED_LIBS = XnLib dl pthread DepthUtils
++USED_LIBS = XnLib dl pthread DepthUtils jpeg
+ ifneq ("$(OSTYPE)","Darwin")
+ USED_LIBS += rt usb-1.0 udev
+ else
--- /dev/null
+From: Hauke Wintjen <hwintjen@rimpl-consulting.de>
+Date: Tue, 2 Apr 2013 21:09:09 +0200
+Subject: disable rpath
+
+This has the advance that we dont get any lintian warnings but the drawback that afterwards
+the drivers.so are no longer found.
+
+So this patch is DISABLED in series currently.
+
+This is caused by the fact that dlopen does not consider the current dir if not told so
+(XnLinuxSharedLibs.cpp should be fixed for that).
+
+---
+ ThirdParty/PSCommon/BuildSystem/CommonCppMakefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile b/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
+index 4d53302..c442865 100644
+--- a/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
++++ b/ThirdParty/PSCommon/BuildSystem/CommonCppMakefile
+@@ -88,7 +88,7 @@ endif
+ ifneq "$(EXE_NAME)" ""
+ OUTPUT_NAME = $(EXE_NAME)
+ # We want the executables to look for the .so's locally first:
+- LDFLAGS += -Wl,-rpath ./
++ # LDFLAGS += -Wl,-rpath ./
+ OUTPUT_COMMAND = $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS)
+ endif
+ ifneq "$(SLIB_NAME)" ""
--- /dev/null
+--- a/Source/Core/OniContext.cpp
++++ b/Source/Core/OniContext.cpp
+@@ -24,7 +24,7 @@
+ #include <XnOSCpp.h>
+
+ static const char* ONI_CONFIGURATION_FILE = "/etc/openni2/OpenNI.ini";
+-static const char* ONI_DEFAULT_DRIVERS_REPOSITORY = "OpenNI2" XN_FILE_DIR_SEP "Drivers";
++static const char* ONI_DEFAULT_DRIVERS_REPOSITORY = "/usr/lib/" "OpenNI2" XN_FILE_DIR_SEP "Drivers";
+
+ #define XN_MASK_ONI_CONTEXT "OniContext"
+
--- /dev/null
+From: Jochen Sprickerhof <jochen@sprickerhof.de>
+Date: Mon, 20 May 2013 13:06:29 +0200
+Subject: Disable SSE
+
+---
+ ThirdParty/PSCommon/BuildSystem/Platform.x86 | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+--- a/ThirdParty/PSCommon/BuildSystem/Platform.x86
++++ b/ThirdParty/PSCommon/BuildSystem/Platform.x86
+@@ -2,7 +2,7 @@
+ export GLUT_SUPPORTED=1
+
+ ifndef SSE_GENERATION
+- SSE_GENERATION = 3
++ SSE_GENERATION = 0
+ endif
+
+ ifeq ("$(OSTYPE)","Darwin")
+@@ -19,7 +19,5 @@
+ ifeq ($(SSSE3_ENABLED), 1)
+ CFLAGS += -mssse3
+ endif
+- else
+- DUMMY:=($error "Only SSE2 and SSE3 are supported")
+ endif
+ endif
--- /dev/null
+From 9ae6d6ca4e8a3e17149d307bf97e5d0ac0f931d0 Mon Sep 17 00:00:00 2001
+From: Hauke Wintjen <hwintjen@rimpl-consulting.de>
+Date: Wed, 30 Jan 2013 21:38:18 +0100
+Subject: [PATCH] Added Armv6l as new target platform
+
+---
+ ThirdParty/PSCommon/BuildSystem/CommonDefs.mak | 2 +
+ ThirdParty/PSCommon/BuildSystem/Platform.Armv6l | 14 ++++
+ 3 files changed, 118 insertions(+)
+ create mode 100644 ThirdParty/PSCommon/BuildSystem/Platform.Armv6l
+
+--- a/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak
++++ b/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak
+@@ -16,6 +16,8 @@
+ HOST_PLATFORM = x86
+ else ifneq (,$(findstring i386,$(MACHINE)))
+ HOST_PLATFORM = x86
++else ifneq (,$(findstring armv6l,$(MACHINE)))
++ HOST_PLATFORM = Armv6l
+ else ifneq (,$(findstring arm,$(MACHINE)))
+ HOST_PLATFORM = Arm
+ else
+--- /dev/null
++++ b/ThirdParty/PSCommon/BuildSystem/Platform.Armv6l
+@@ -0,0 +1,16 @@
++# Platform defs for Raspberry PI Hard floats
++export GLUT_SUPPORTED=1
++
++ifeq "$(CFG)" "Release"
++
++ # Hardware specifying flags
++ # hardfp is now default, so no extra flags needed
++ # CFLAGS += -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard
++
++ # Optimization level, minus currently buggy optimizing methods (which break bit-exact)
++ CFLAGS += -O3 -fno-tree-pre -fno-strict-aliasing
++
++ # More optimization flags
++ CFLAGS += -ftree-vectorize -ffast-math -funsafe-math-optimizations -fsingle-precision-constant
++
++endif
--- /dev/null
+From: Jochen Sprickerhof <jochen@sprickerhof.de>
+Date: Sat, 25 May 2013 10:28:22 +0200
+Subject: Link NiViewer against ptherad (DSO on Ubuntu raring)
+
+---
+ Source/Tools/NiViewer/Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/Source/Tools/NiViewer/Makefile
++++ b/Source/Tools/NiViewer/Makefile
+@@ -23,6 +23,7 @@
+ else
+ CFLAGS += -DUNIX -DGLX_GLXEXT_LEGACY
+ USED_LIBS += glut GL
++ LDFLAGS += -pthread
+ endif
+
+ LIB_DIRS += ../../../ThirdParty/PSCommon/XnLib/Bin/$(PLATFORM)-$(CFG)
--- /dev/null
+From: Jochen Sprickerhof <jochen@sprickerhof.de>
+Date: Fri, 28 Feb 2014 11:23:06 +0100
+Subject: Add unused attribute to fix compilation with gcc-4.8
+
+---
+ Source/Drivers/PSLink/LinkProtoLib/XnLinkProtoUtils.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/Drivers/PSLink/LinkProtoLib/XnLinkProtoUtils.h b/Source/Drivers/PSLink/LinkProtoLib/XnLinkProtoUtils.h
+index d3f16b7..0657b7a 100644
+--- a/Source/Drivers/PSLink/LinkProtoLib/XnLinkProtoUtils.h
++++ b/Source/Drivers/PSLink/LinkProtoLib/XnLinkProtoUtils.h
+@@ -15,7 +15,7 @@
+ #define XN_MASK_LINK "xnLink"
+
+ #ifndef XN_COMPILER_ASSERT
+-#define XN_COMPILER_ASSERT(x) typedef int compileAssert[x ? 1 : -1]
++#define XN_COMPILER_ASSERT(x) typedef int compileAssert[x ? 1 : -1] __attribute__((unused))
+ #endif
+
+ template <typename T>
--- /dev/null
+--- a/Packaging/Harvest.py
++++ b/Packaging/Harvest.py
+@@ -98,9 +98,7 @@ class Harvest:
+ self.copySharedObject(binDriversDir, 'Kinect', targetDriversDir)
+
+ def copySample(self, samplesDir, name, isLibrary = False, isGL = False, isJava = False):
+- if self.arch == 'Arm' and isGL:
+- return
+-
++
+ sampleTargetDir = os.path.join(samplesDir, name)
+ sampleSourceDir = os.path.join(self.rootDir, 'Samples', name)
+
+@@ -262,9 +260,7 @@ $(OUTPUT_FILE): copy-redist
+ self.copyExecutable(self.binDir, name, os.path.join(samplesDir, 'Bin'))
+
+ def copyTool(self, toolsDir, name, isGL = False):
+- if self.arch == 'Arm' and isGL:
+- return
+-
++
+ self.copyExecutable(self.binDir, name, toolsDir)
+
+ def copyDocumentation(self, docDir):
+--- a/Source/Tools/NiViewer/Makefile
++++ b/Source/Tools/NiViewer/Makefile
+@@ -26,7 +26,7 @@ else
+ endif
+
+ LIB_DIRS += ../../../ThirdParty/PSCommon/XnLib/Bin/$(PLATFORM)-$(CFG)
+-USED_LIBS += OpenNI2 XnLib
++USED_LIBS += OpenNI2 XnLib pthread
+
+ EXE_NAME = NiViewer
+
+--- a/ThirdParty/PSCommon/BuildSystem/Platform.Arm
++++ b/ThirdParty/PSCommon/BuildSystem/Platform.Arm
+@@ -1,7 +1,10 @@
++# some defaults
++export GLUT_SUPPORTED=1
++
+ ifeq "$(CFG)" "Release"
+
+ # Hardware specifying flags
+- CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8
++ CFLAGS += -Wno-unused-local-typedefs -march=armv7-a -mtune=cortex-a9 -mfpu=neon #-mfloat-abi=softfp #-mcpu=cortex-a8
+
+ # Optimization level, minus currently buggy optimizing methods (which break bit-exact)
+ CFLAGS += -O3 -fno-tree-pre -fno-strict-aliasing
+--
+1.9.1
+
--- /dev/null
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Sun, 16 Aug 2015 09:33:27 +0200
+Subject: Mark variables unused
+
+---
+ ThirdParty/PSCommon/XnLib/Include/XnMath.h | 8 ++++----
+ ThirdParty/PSCommon/XnLib/Include/XnStatusRegister.h | 2 +-
+ ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxTime.cpp | 2 +-
+ ThirdParty/PSCommon/XnLib/Source/XnStatus.cpp | 2 +-
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/ThirdParty/PSCommon/XnLib/Include/XnMath.h b/ThirdParty/PSCommon/XnLib/Include/XnMath.h
+index df6044d..c52ea7e 100644
+--- a/ThirdParty/PSCommon/XnLib/Include/XnMath.h
++++ b/ThirdParty/PSCommon/XnLib/Include/XnMath.h
+@@ -155,15 +155,15 @@ namespace xnl
+ #endif
+ static const XnFloat ONE_THIRD = (XnFloat)(1.0f/3.0f);
+ static const XnFloat ONE_SIXTH = (XnFloat)(1.0f/6.0f);
+- static const XnFloat ROOT_TWO = (XnFloat)Sqrt(2.0f);
+- static const XnFloat ROOT_THREE = (XnFloat)Sqrt(3.0f);
++ static const XnFloat ROOT_TWO __attribute__ ((unused)) = (XnFloat)Sqrt(2.0f);
++ static const XnFloat ROOT_THREE __attribute__ ((unused)) = (XnFloat)Sqrt(3.0f);
+ static const XnFloat PI = (XnFloat)M_PI;
+ static const XnFloat HALF_PI = (XnFloat)(0.5f*M_PI);
+ static const XnFloat TWO_PI = (XnFloat)(2.0f*M_PI);
+- static const XnFloat ROOT_TWO_PI = (XnFloat)Sqrt(2.0f*M_PI);
++ static const XnFloat ROOT_TWO_PI __attribute__ ((unused)) = (XnFloat)Sqrt(2.0f*M_PI);
+ static const XnFloat DTR = (XnFloat)(M_PI / 180.0f);
+ static const XnFloat RTD = (XnFloat)(180.0f / M_PI);
+- static const XnFloat PHI = (XnFloat)((-1.0f + Sqrt(5.0f)) / 2.0f);
++ static const XnFloat PHI __attribute__ ((unused)) = (XnFloat)((-1.0f + Sqrt(5.0f)) / 2.0f);
+
+ } // Math
+ } // xnl
+diff --git a/ThirdParty/PSCommon/XnLib/Include/XnStatusRegister.h b/ThirdParty/PSCommon/XnLib/Include/XnStatusRegister.h
+index bdca0df..cc1ae77 100644
+--- a/ThirdParty/PSCommon/XnLib/Include/XnStatusRegister.h
++++ b/ThirdParty/PSCommon/XnLib/Include/XnStatusRegister.h
+@@ -73,7 +73,7 @@ XN_C_API XnStatus XN_C_DECL xnRegisterErrorCodeMessages(XnUInt16 nGroup, XnUInt1
+ /** Marks the end of a message map. */
+ #define XN_STATUS_MESSAGE_MAP_END_FROM(group, first) \
+ }; \
+- static XnStatus s_##group##first##_result = xnRegisterErrorCodeMessages(group, first, sizeof(_XN_ERROR_GROUP_NAME(group, first)) / sizeof(XnErrorCodeData), _XN_ERROR_GROUP_NAME(group, first));
++ static XnStatus s_##group##first##_result __attribute__ ((unused)) = xnRegisterErrorCodeMessages(group, first, sizeof(_XN_ERROR_GROUP_NAME(group, first)) / sizeof(XnErrorCodeData), _XN_ERROR_GROUP_NAME(group, first));
+
+ #define XN_STATUS_REGISTER
+
+diff --git a/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxTime.cpp b/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxTime.cpp
+index 75f5b8d..1f8b8ae 100644
+--- a/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxTime.cpp
++++ b/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxTime.cpp
+@@ -30,7 +30,7 @@ XnOSTimer g_xnOSHighResGlobalTimer;
+ bool g_xnOSInitialized = false;
+
+ XnStatus xnOSTimeInit();
+-static XnStatus g_initalizeStatus = xnOSTimeInit();
++static XnStatus g_initalizeStatus __attribute__ ((unused)) = xnOSTimeInit();
+
+ //---------------------------------------------------------------------------
+ // Macros
+diff --git a/ThirdParty/PSCommon/XnLib/Source/XnStatus.cpp b/ThirdParty/PSCommon/XnLib/Source/XnStatus.cpp
+index 1659649..9c19e6b 100644
+--- a/ThirdParty/PSCommon/XnLib/Source/XnStatus.cpp
++++ b/ThirdParty/PSCommon/XnLib/Source/XnStatus.cpp
+@@ -44,7 +44,7 @@ typedef xnl::Hash<XnUInt16, XnStatusHash*> XnGroupsHash;
+ static XnGroupsHash* g_pErrorGroups = NULL;
+
+ static XnErrorCodeData s_OK_Data = { XN_STATUS_OK, XN_STRINGIFY(XN_STATUS_OK), "OK" };
+-static XnStatus s_XN_OK_result = xnRegisterErrorCodeMessages(0, 0, 1, &s_OK_Data);
++static XnStatus s_XN_OK_result __attribute__ ((unused)) = xnRegisterErrorCodeMessages(0, 0, 1, &s_OK_Data);
+
+ //---------------------------------------------------------------------------
+ // Code
--- /dev/null
+diff -urN openni2-2.2.0.33+dfsg.old/Include/Linux-generic/OniPlatformLinux-generic.h openni2-2.2.0.33+dfsg/Include/Linux-generic/OniPlatformLinux-generic.h
+--- openni2-2.2.0.33+dfsg.old/Include/Linux-generic/OniPlatformLinux-generic.h 1970-01-01 02:00:00.000000000 +0200
++++ openni2-2.2.0.33+dfsg/Include/Linux-generic/OniPlatformLinux-generic.h 2015-10-06 15:58:43.000000000 +0300
+@@ -0,0 +1,36 @@
++/*****************************************************************************
++* *
++* OpenNI 2.x Alpha *
++* Copyright (C) 2012 PrimeSense Ltd. *
++* *
++* This file is part of OpenNI. *
++* *
++* Licensed under the Apache License, Version 2.0 (the "License"); *
++* you may not use this file except in compliance with the License. *
++* You may obtain a copy of the License at *
++* *
++* http://www.apache.org/licenses/LICENSE-2.0 *
++* *
++* Unless required by applicable law or agreed to in writing, software *
++* distributed under the License is distributed on an "AS IS" BASIS, *
++* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
++* See the License for the specific language governing permissions and *
++* limitations under the License. *
++* *
++*****************************************************************************/
++#ifndef _ONI_PLATFORM_LINUX_GENERIC_H_
++#define _ONI_PLATFORM_LINUX_GENERIC_H_
++
++// Start with Linux-x86, and override what's different
++#include "../Linux-x86/OniPlatformLinux-x86.h"
++
++//---------------------------------------------------------------------------
++// Platform Basic Definition
++//---------------------------------------------------------------------------
++#undef ONI_PLATFORM
++#undef ONI_PLATFORM_STRING
++#define ONI_PLATFORM ONI_PLATFORM_LINUX_GENERIC
++#define ONI_PLATFORM_STRING "Linux-generic"
++
++#endif //_ONI_PLATFORM_LINUX_GENERIC_H_
++
+diff -urN openni2-2.2.0.33+dfsg.old/Include/OniPlatform.h openni2-2.2.0.33+dfsg/Include/OniPlatform.h
+--- openni2-2.2.0.33+dfsg.old/Include/OniPlatform.h 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/Include/OniPlatform.h 2015-10-06 16:00:13.000000000 +0300
+@@ -27,6 +27,7 @@
+ #define ONI_PLATFORM_LINUX_ARM 3
+ #define ONI_PLATFORM_MACOSX 4
+ #define ONI_PLATFORM_ANDROID_ARM 5
++#define ONI_PLATFORM_LINUX_GENERIC 6
+
+ #if (defined _WIN32)
+ # ifndef RC_INVOKED
+@@ -41,6 +42,8 @@
+ # include "Linux-x86/OniPlatformLinux-x86.h"
+ #elif (__linux__ && __arm__)
+ # include "Linux-Arm/OniPlatformLinux-Arm.h"
++#elif (__linux__)
++# include "Linux-generic/OniPlatformLinux-generic.h"
+ #elif _ARC
+ # include "ARC/OniPlaformARC.h"
+ #elif (__APPLE__)
+diff -urN openni2-2.2.0.33+dfsg.old/Source/Drivers/PS1080/Sensor/XnDeviceSensorInit.h openni2-2.2.0.33+dfsg/Source/Drivers/PS1080/Sensor/XnDeviceSensorInit.h
+--- openni2-2.2.0.33+dfsg.old/Source/Drivers/PS1080/Sensor/XnDeviceSensorInit.h 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/Source/Drivers/PS1080/Sensor/XnDeviceSensorInit.h 2015-10-06 16:03:01.000000000 +0300
+@@ -57,7 +57,7 @@
+
+ #define XN_SENSOR_USB_MISC_BUFFER_SIZE 0x1000
+ #define XN_SENSOR_USB_MISC_BUFFERS 1
+-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM)
++#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM_LINUX_GENERIC)
+ #define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_ISO 32
+ #define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_BULK 40
+ #define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_LOWBAND_ISO 16
+diff -urN openni2-2.2.0.33+dfsg.old/Source/Drivers/PSLink/LinkProtoLib/XnClientUSBInDataEndpoint.cpp openni2-2.2.0.33+dfsg/Source/Drivers/PSLink/LinkProtoLib/XnClientUSBInDataEndpoint.cpp
+--- openni2-2.2.0.33+dfsg.old/Source/Drivers/PSLink/LinkProtoLib/XnClientUSBInDataEndpoint.cpp 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/Source/Drivers/PSLink/LinkProtoLib/XnClientUSBInDataEndpoint.cpp 2015-10-06 16:06:15.000000000 +0300
+@@ -16,7 +16,7 @@
+ const XnUInt32 ClientUSBInDataEndpoint::READ_THREAD_BUFFER_NUM_PACKETS_BULK = 120;
+ const XnUInt32 ClientUSBInDataEndpoint::READ_THREAD_NUM_BUFFERS_BULK = 8;
+ const XnUInt32 ClientUSBInDataEndpoint::READ_THREAD_TIMEOUT_BULK = 1000;
+-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM)
++#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM_LINUX_GENERIC )
+ const XnUInt32 ClientUSBInDataEndpoint::READ_THREAD_BUFFER_NUM_PACKETS_ISO = 32;
+ const XnUInt32 ClientUSBInDataEndpoint::READ_THREAD_NUM_BUFFERS_ISO = 16;
+ const XnUInt32 ClientUSBInDataEndpoint::READ_THREAD_TIMEOUT_ISO = 100;
+diff -urN openni2-2.2.0.33+dfsg.old/Source/Drivers/PSLink/PS1200Device.cpp openni2-2.2.0.33+dfsg/Source/Drivers/PSLink/PS1200Device.cpp
+--- openni2-2.2.0.33+dfsg.old/Source/Drivers/PSLink/PS1200Device.cpp 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/Source/Drivers/PSLink/PS1200Device.cpp 2015-10-06 16:04:19.000000000 +0300
+@@ -43,7 +43,7 @@
+ // On all platforms other than Windows, prefer BULK
+ nRetVal = SetUsbAltInterface(0);
+ XN_IS_STATUS_OK_LOG_ERROR("Switch to ISO", nRetVal);
+-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM)
++#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM_LINUX_GENERIC)
+ // On all platforms other than Windows, prefer BULK
+ nRetVal = SetUsbAltInterface(1);
+ XN_IS_STATUS_OK_LOG_ERROR("Switch to BULK", nRetVal);
+diff -urN openni2-2.2.0.33+dfsg.old/Source/Tools/NiViewer/NiViewer.cpp openni2-2.2.0.33+dfsg/Source/Tools/NiViewer/NiViewer.cpp
+--- openni2-2.2.0.33+dfsg.old/Source/Tools/NiViewer/NiViewer.cpp 2015-10-06 16:52:52.000000000 +0300
++++ openni2-2.2.0.33+dfsg/Source/Tools/NiViewer/NiViewer.cpp 2015-10-06 16:08:39.000000000 +0300
+@@ -89,7 +89,8 @@
+ #if (ONI_PLATFORM == ONI_PLATFORM_WIN32)
+ #include <conio.h>
+ #include <direct.h>
+-#elif (ONI_PLATFORM == ONI_PLATFORM_LINUX_X86 || ONI_PLATFORM == ONI_PLATFORM_LINUX_ARM || ONI_PLATFORM == ONI_PLATFORM_MACOSX)
++#elif (ONI_PLATFORM == ONI_PLATFORM_LINUX_X86 || ONI_PLATFORM == ONI_PLATFORM_LINUX_ARM \
++ || ONI_PLATFORM == ONI_PLATFORM_MACOSX ||ONI_PLATFORM == ONI_PLATFORM_LINUX_GENERIC)
+ #define _getch() getchar()
+ #endif
+
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak 2015-10-06 16:52:52.000000000 +0300
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak 2015-10-05 16:29:38.000000000 +0300
+@@ -21,7 +21,7 @@
+ else ifneq (,$(findstring arm,$(MACHINE)))
+ HOST_PLATFORM = Arm
+ else
+- DUMMY:=$(error Can't determine host platform)
++ HOST_PLATFORM = generic
+ endif
+
+ # now check if this is a cross-compilation or not
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/BuildSystem/Platform.generic openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/BuildSystem/Platform.generic
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/BuildSystem/Platform.generic 1970-01-01 02:00:00.000000000 +0200
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/BuildSystem/Platform.generic 2015-10-05 15:18:40.000000000 +0300
+@@ -0,0 +1,4 @@
++# some defaults
++export GLUT_SUPPORTED=1
++FLAGS += -O3 -fno-strict-aliasing
++
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/Linux-generic/XnPlatformLinux-generic.h openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/Linux-generic/XnPlatformLinux-generic.h
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/Linux-generic/XnPlatformLinux-generic.h 1970-01-01 02:00:00.000000000 +0200
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/Linux-generic/XnPlatformLinux-generic.h 2015-10-05 15:22:50.000000000 +0300
+@@ -0,0 +1,36 @@
++/*****************************************************************************
++* *
++* PrimeSense PSCommon Library *
++* Copyright (C) 2012 PrimeSense Ltd. *
++* *
++* This file is part of PSCommon. *
++* *
++* Licensed under the Apache License, Version 2.0 (the "License"); *
++* you may not use this file except in compliance with the License. *
++* You may obtain a copy of the License at *
++* *
++* http://www.apache.org/licenses/LICENSE-2.0 *
++* *
++* Unless required by applicable law or agreed to in writing, software *
++* distributed under the License is distributed on an "AS IS" BASIS, *
++* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
++* See the License for the specific language governing permissions and *
++* limitations under the License. *
++* *
++*****************************************************************************/
++#ifndef _XN_PLATFORM_LINUX_GENERIC_H_
++#define _XN_PLATFORM_LINUX_GENERIC_H_
++
++// Start with Linux-x86, and override what's different
++#include "../Linux-x86/XnPlatformLinux-x86.h"
++
++//---------------------------------------------------------------------------
++// Platform Basic Definition
++//---------------------------------------------------------------------------
++#undef XN_PLATFORM
++#undef XN_PLATFORM_STRING
++#define XN_PLATFORM XN_PLATFORM_LINUX_GENERIC
++#define XN_PLATFORM_STRING "Linux-generic"
++
++#endif //_XN_PLATFORM_LINUX_GENERIC_H_
++
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/XnOS.h openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/XnOS.h
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/XnOS.h 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/XnOS.h 2015-10-05 15:41:15.000000000 +0300
+@@ -43,7 +43,7 @@
+ //---------------------------------------------------------------------------
+ #if (XN_PLATFORM == XN_PLATFORM_WIN32)
+ #include "Win32/XnOSWin32.h"
+-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM)
++#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_GENERIC)
+ #include "Linux-x86/XnOSLinux-x86.h"
+ #elif (XN_PLATFORM == XN_PLATFORM_MACOSX)
+ #include "MacOSX/XnOSMacOSX.h"
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/XnPlatform.h openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/XnPlatform.h
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/XnPlatform.h 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/XnPlatform.h 2015-10-06 15:47:56.000000000 +0300
+@@ -31,6 +31,7 @@
+ #define XN_PLATFORM_LINUX_ARM 7
+ #define XN_PLATFORM_MACOSX 8
+ #define XN_PLATFORM_ANDROID_ARM 9
++#define XN_PLATFORM_LINUX_GENERIC 10
+
+ #define XN_PLATFORM_IS_LITTLE_ENDIAN 1
+ #define XN_PLATFORM_IS_BIG_ENDIAN 2
+@@ -53,6 +54,8 @@
+ #include "Linux-x86/XnPlatformLinux-x86.h"
+ #elif (__linux__ && __arm__)
+ #include "Linux-Arm/XnPlatformLinux-Arm.h"
++#elif (__linux__)
++#include "Linux-generic/XnPlatformLinux-generic.h"
+ #elif _ARC
+ #include "ARC/XnPlaformARC.h"
+ #elif (__APPLE__)
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/XnUSBDevice.h openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/XnUSBDevice.h
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Include/XnUSBDevice.h 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Include/XnUSBDevice.h 2015-10-05 15:42:37.000000000 +0300
+@@ -47,7 +47,7 @@
+ #define USB_DT_DEVICE_SIZE 0
+ #define USB_DT_DEVICE 0
+
+-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM)
++#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_GENERIC)
+ #include <linux/usb/ch9.h>
+ typedef struct usb_endpoint_descriptor XnUSBEndpointDescriptor;
+ typedef struct usb_interface_descriptor XnUSBInterfaceDescriptor;
+diff -urN openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp
+--- openni2-2.2.0.33+dfsg.old/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp 2013-11-12 16:12:23.000000000 +0200
++++ openni2-2.2.0.33+dfsg/ThirdParty/PSCommon/XnLib/Source/Linux/XnLinuxUSB.cpp 2015-10-05 15:43:24.000000000 +0300
+@@ -36,7 +36,7 @@
+ #include <XnOSCpp.h>
+ #include <XnList.h>
+
+-#if (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM)
++#if (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_GENERIC)
+ #include <libudev.h>
+ #define XN_USE_UDEV
+ #endif
--- /dev/null
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Sat, 23 Jan 2016 15:56:22 +0100
+Subject: Fix GCC6 compilation
+
+* Ignore Warray-bounds
+* Rename equivalent to fix compilation on gcc6
+* Fix -Werror=misleading-indentation
+---
+ Source/Drivers/PS1080/Formats/XnFormatsMirror.cpp | 3 ++
+ ThirdParty/GL/glh/glh_glut2.h | 2 +-
+ ThirdParty/GL/glh/glh_linear.h | 66 +++++++++++------------
+ 3 files changed, 37 insertions(+), 34 deletions(-)
+
+diff --git a/Source/Drivers/PS1080/Formats/XnFormatsMirror.cpp b/Source/Drivers/PS1080/Formats/XnFormatsMirror.cpp
+index 120534c..7759333 100644
+--- a/Source/Drivers/PS1080/Formats/XnFormatsMirror.cpp
++++ b/Source/Drivers/PS1080/Formats/XnFormatsMirror.cpp
+@@ -26,6 +26,8 @@
+ #include "XnFormats.h"
+ #include <XnOS.h>
+ #include <XnLog.h>
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Warray-bounds"
+
+ //---------------------------------------------------------------------------
+ // Defines
+@@ -240,3 +242,4 @@ XnStatus XnFormatsMirrorPixelData(OniPixelFormat nOutputFormat, XnUChar* pBuffer
+ return XN_STATUS_ERROR;
+ }
+ }
++#pragma GCC diagnostic pop
+diff --git a/ThirdParty/GL/glh/glh_glut2.h b/ThirdParty/GL/glh/glh_glut2.h
+index 908a0fc..0430698 100644
+--- a/ThirdParty/GL/glh/glh_glut2.h
++++ b/ThirdParty/GL/glh/glh_glut2.h
+@@ -190,7 +190,7 @@ namespace glh
+ {
+ if (interactors.empty())
+ return;
+- std::list<glut_interactor *>::iterator it =
++ std::list<glut_interactor *>::iterator it =
+ std::find(interactors.begin(), interactors.end(), gi);
+ if(it != interactors.end())
+ interactors.erase(it);
+diff --git a/ThirdParty/GL/glh/glh_linear.h b/ThirdParty/GL/glh/glh_linear.h
+index 422c05f..2e033ba 100644
+--- a/ThirdParty/GL/glh/glh_linear.h
++++ b/ThirdParty/GL/glh/glh_linear.h
+@@ -77,7 +77,7 @@ glh_linear.h
+ #define GLH_EPSILON GLH_REAL(10e-6)
+ #define GLH_PI GLH_REAL(3.1415926535897932384626433832795)
+
+-#define equivalent(a,b) (((a < b + GLH_EPSILON) && (a > b - GLH_EPSILON)) ? true : false)
++#define glh_equivalent(a,b) (((a < b + GLH_EPSILON) && (a > b - GLH_EPSILON)) ? true : false)
+
+ namespace glh
+ {
+@@ -225,7 +225,7 @@ namespace glh
+ for(int i = 0; i < N; i++)
+ if(v1.v[i] != v2.v[i])
+ return false;
+- return true;
++ return true;
+ }
+
+ template <int N, class T> inline
+@@ -633,7 +633,7 @@ namespace glh
+ scp[i] = real(fabs(s[i][0]));
+ for(j=1;j<4;j++)
+ if(real(fabs(s[i][j])) > scp[i]) scp[i] = real(fabs(s[i][j]));
+- if(scp[i] == 0.0) return minv; // singular matrix!
++ if(scp[i] == 0.0) return minv; // singular matrix!
+ }
+
+ int pivot_to;
+@@ -647,26 +647,26 @@ namespace glh
+ for(p=i+1;p<4;p++)
+ if(real(fabs(s[p][i]/scp[p])) > scp_max)
+ { scp_max = real(fabs(s[p][i]/scp[p])); pivot_to = p; }
+- // Pivot if necessary
+- if(pivot_to != i)
+- {
+- tmprow = s[i];
+- s[i] = s[pivot_to];
+- s[pivot_to] = tmprow;
+- real tmpscp;
+- tmpscp = scp[i];
+- scp[i] = scp[pivot_to];
+- scp[pivot_to] = tmpscp;
+- }
+-
+- real mji;
+- // perform gaussian elimination
+- for(j=i+1;j<4;j++)
+- {
+- mji = s[j][i]/s[i][i];
+- s[j][i] = 0.0;
+- for(jj=i+1;jj<8;jj++)
+- s[j][jj] -= mji*s[i][jj];
++ // Pivot if necessary
++ if(pivot_to != i)
++ {
++ tmprow = s[i];
++ s[i] = s[pivot_to];
++ s[pivot_to] = tmprow;
++ real tmpscp;
++ tmpscp = scp[i];
++ scp[i] = scp[pivot_to];
++ scp[pivot_to] = tmpscp;
++ }
++
++ real mji;
++ // perform gaussian elimination
++ for(j=i+1;j<4;j++)
++ {
++ mji = s[j][i]/s[i][i];
++ s[j][i] = 0.0;
++ for(jj=i+1;jj<8;jj++)
++ s[j][jj] -= mji*s[i][jj];
+ }
+ }
+ if(s[3][3] == 0.0) return minv; // singular matrix!
+@@ -702,7 +702,7 @@ namespace glh
+ for(j=0;j<4;j++)
+ minv(i,j) = s[i][j+4] / s[i][i];
+
+- return minv;
++ return minv;
+ }
+
+
+@@ -1093,7 +1093,7 @@ namespace glh
+
+ real norm = q[0] * q[0] + q[1] * q[1] + q[2] * q[2] + q[3] * q[3];
+
+- s = (equivalent(norm,GLH_ZERO)) ? GLH_ZERO : ( GLH_TWO / norm );
++ s = (glh_equivalent(norm,GLH_ZERO)) ? GLH_ZERO : ( GLH_TWO / norm );
+
+ xs = q[0] * s;
+ ys = q[1] * s;
+@@ -1194,7 +1194,7 @@ namespace glh
+ theta *= real(0.5);
+ real sin_theta = real(sin(theta));
+
+- if (!equivalent(sqnorm,GLH_ONE))
++ if (!glh_equivalent(sqnorm,GLH_ONE))
+ sin_theta /= real(sqrt(sqnorm));
+ x = sin_theta * axis.v[0];
+ y = sin_theta * axis.v[1];
+@@ -1216,14 +1216,14 @@ namespace glh
+
+ alpha = p1.dot(p2);
+
+- if(equivalent(alpha,GLH_ONE))
++ if(glh_equivalent(alpha,GLH_ONE))
+ {
+ *this = identity();
+ return *this;
+ }
+
+ // ensures that the anti-parallel case leads to a positive dot
+- if(equivalent(alpha,-GLH_ONE))
++ if(glh_equivalent(alpha,-GLH_ONE))
+ {
+ vec3 v;
+
+@@ -1280,7 +1280,7 @@ namespace glh
+ void normalize()
+ {
+ real rnorm = GLH_ONE / real(sqrt(w * w + x * x + y * y + z * z));
+- if (equivalent(rnorm, GLH_ZERO))
++ if (glh_equivalent(rnorm, GLH_ZERO))
+ return;
+ x *= rnorm;
+ y *= rnorm;
+@@ -1439,10 +1439,10 @@ namespace glh
+ inline
+ bool operator == ( const quaternion & q1, const quaternion & q2 )
+ {
+- return (equivalent(q1.x, q2.x) &&
+- equivalent(q1.y, q2.y) &&
+- equivalent(q1.z, q2.z) &&
+- equivalent(q1.w, q2.w) );
++ return (glh_equivalent(q1.x, q2.x) &&
++ glh_equivalent(q1.y, q2.y) &&
++ glh_equivalent(q1.z, q2.z) &&
++ glh_equivalent(q1.w, q2.w) );
+ }
+
+ inline
--- /dev/null
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Tue, 7 Feb 2017 17:30:41 +0100
+Subject: fix format-overflow for GCC7
+
+---
+ Source/Drivers/PS1080/Sensor/XnFrameStreamProcessor.cpp | 4 ++--
+ Source/Drivers/PS1080/Sensor/XnSensorFirmwareParams.cpp | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Source/Drivers/PS1080/Sensor/XnFrameStreamProcessor.cpp b/Source/Drivers/PS1080/Sensor/XnFrameStreamProcessor.cpp
+index 9663e41..62cf1c7 100644
+--- a/Source/Drivers/PS1080/Sensor/XnFrameStreamProcessor.cpp
++++ b/Source/Drivers/PS1080/Sensor/XnFrameStreamProcessor.cpp
+@@ -40,8 +40,8 @@ XnFrameStreamProcessor::XnFrameStreamProcessor(XnFrameStream* pStream, XnSensorS
+ m_nLastSOFPacketID(0),
+ m_nFirstPacketTimestamp(0)
+ {
+- sprintf(m_csInDumpMask, "%sIn", pStream->GetType());
+- sprintf(m_csInternalDumpMask, "Internal%s", pStream->GetType());
++ snprintf(m_csInDumpMask, 100, "%.90sIn", pStream->GetType());
++ snprintf(m_csInternalDumpMask, 100, "Internal%.90s", pStream->GetType());
+ m_InDump = xnDumpFileOpen(m_csInDumpMask, "%s_0.raw", m_csInDumpMask);
+ m_InternalDump = xnDumpFileOpen(m_csInternalDumpMask, "%s_0.raw", m_csInternalDumpMask);
+ }
+diff --git a/Source/Drivers/PS1080/Sensor/XnSensorFirmwareParams.cpp b/Source/Drivers/PS1080/Sensor/XnSensorFirmwareParams.cpp
+index f93f333..d962ec0 100644
+--- a/Source/Drivers/PS1080/Sensor/XnSensorFirmwareParams.cpp
++++ b/Source/Drivers/PS1080/Sensor/XnSensorFirmwareParams.cpp
+@@ -263,7 +263,7 @@ XnStatus XnSensorFirmwareParams::AddFirmwareParam(XnActualIntProperty& Property,
+ XN_IS_STATUS_OK(nRetVal);
+
+ XnChar csNewName[XN_DEVICE_MAX_STRING_LENGTH];
+- sprintf(csNewName, "%s (%d)", Property.GetName(), nFirmwareParam);
++ snprintf(csNewName, XN_DEVICE_MAX_STRING_LENGTH, "%.150s (%d)", Property.GetName(), nFirmwareParam);
+
+ Property.UpdateName("Firmware", csNewName);
+ Property.SetLogSeverity(XN_LOG_VERBOSE);
--- /dev/null
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Tue, 8 Aug 2017 22:53:14 +0200
+Subject: Initialize variable for gcc7
+
+---
+ Source/Tools/NiViewer/Device.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/Tools/NiViewer/Device.cpp b/Source/Tools/NiViewer/Device.cpp
+index 28cbfee..7037320 100644
+--- a/Source/Tools/NiViewer/Device.cpp
++++ b/Source/Tools/NiViewer/Device.cpp
+@@ -364,7 +364,7 @@ void toggleMirror(int )
+
+ void toggleCloseRange(int )
+ {
+- bool bCloseRange;
++ bool bCloseRange = false;
+ g_depthStream.getProperty(XN_STREAM_PROPERTY_CLOSE_RANGE, &bCloseRange);
+
+ bCloseRange = !bCloseRange;
--- /dev/null
+From: Adrian Bunk <bunk@debian.org>
+Date: Sat, 9 Sep 2017 15:02:51 +0200
+Subject: Use the generic platform for armel+armhf NEON is not part of the
+ armel and armhf baselines.
+
+---
+ ThirdParty/PSCommon/BuildSystem/CommonDefs.mak | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak b/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak
+index c29d9bd..6384ef8 100644
+--- a/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak
++++ b/ThirdParty/PSCommon/BuildSystem/CommonDefs.mak
+@@ -18,8 +18,6 @@ else ifneq (,$(findstring i386,$(MACHINE)))
+ HOST_PLATFORM = x86
+ else ifneq (,$(findstring armv6l,$(MACHINE)))
+ HOST_PLATFORM = Armv6l
+-else ifneq (,$(findstring arm,$(MACHINE)))
+- HOST_PLATFORM = Arm
+ else
+ HOST_PLATFORM = generic
+ endif
--- /dev/null
+From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
+Date: Sat, 14 Sep 2019 10:02:15 +0200
+Subject: Port to Python 3
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a436a84..2621d9a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@ ifeq ("$(OSTYPE)","Darwin")
+ else
+ OS_NAME = Linux
+ endif
+-PRODUCT_STRING = OpenNI-$(OS_NAME)-$(PLATFORM)-$(shell cd Packaging && python -c "import UpdateVersion; print UpdateVersion.getVersionName()" && cd ..)
++PRODUCT_STRING = OpenNI-$(OS_NAME)-$(PLATFORM)-$(shell cd Packaging && python3 -c "import UpdateVersion; print UpdateVersion.getVersionName()" && cd ..)
+ FINAL_DIR = Packaging/Final
+
+ OPENNI = Source/Core
--- /dev/null
+0001-Add-SONAME-to-libraries.patch
+0002-Change-path-of-config-files-to-etc-openni2.patch
+0003-Use-system-wide-libjpeg.patch
+0004-disable-rpath.patch
+0005-change-default-ni-drivers-path.patch
+0006-rpi-Added-Armv6l-as-new-target-platform-and-created-missing-OniPlatformLinux-Arm.h-header.patch
+0006-Disable-SSE.patch
+0007-Link-NiViewer-against-ptherad-DSO-on-Ubuntu-raring.patch
+0008-Add-unused-attribute-to-fix-compilation-with-gcc-4.8.patch
+0009-Add-ARMhf-support.patch
+0011-Mark-variables-unused.patch
+0012-generic-linux.patch
+0013-Fix-GCC6-compilation.patch
+0014-fix-format-overflow-for-GCC7.patch
+0015-Initialize-variable-for-gcc7.patch
+0016-Use-the-generic-platform-for-armel-armhf-NEON-is-not.patch
+0017-Port-to-Python-3.patch
--- /dev/null
+#!/usr/bin/make -f
+
+%:
+ dh $@ --buildsystem=makefile
+
+override_dh_auto_build:
+ make ALLOW_WARNINGS=1
+ cd Source/Documentation && python3 ./Runme.py
+ cd Bin/*-Release/ && mv NiViewer NiViewer2
+
+override_dh_shlibdeps:
+ dh_shlibdeps -- --ignore-missing-info
--- /dev/null
+# this source code is not used at all, instead Debian's libusb is used
+openni2 source: outdated-autotools-helper-file ThirdParty/PSCommon/XnLib/ThirdParty/libusb-1.0.9-Android/config.sub 2010-09-11
+openni2 source: outdated-autotools-helper-file ThirdParty/PSCommon/XnLib/ThirdParty/libusb-1.0.9-Android/config.guess 2010-09-24
--- /dev/null
+3.0 (quilt)
--- /dev/null
+extend-diff-ignore = "(^|/)(.project|.cproject|.pc)$"
--- /dev/null
+# Watch control file for uscan
+# Compulsory line, this is a version 3 file
+version=3
+# For GitHub projects you can use the tags page:
+
+opts=filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/openni2-$1\.tar\.gz/ \
+ https://github.com/occipital/OpenNI2/releases .*/v?(\d\S*)\.tar\.gz