You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openni/SOURCES/openni-1.5.7.10-fedora.patch

258 lines
7.5 KiB

diff -up ./.gitignore.fedora ./.gitignore
--- ./.gitignore.fedora 2013-11-12 11:30:03.000000000 -0500
+++ ./.gitignore 2014-06-01 18:21:35.911632579 -0400
@@ -1,3 +1,11 @@
+*~
+Release/
+/Source/DoxyGen/html
+/Platform/Linux/Bin
+/Platform/Linux/CreateRedist/Final
+/Platform/Linux/CreateRedist/Output
+/Platform/Linux/Redist
+/Platform/Linux/Build
x64-Release
Manifest.txt
Platform/Linux/CreateRedist/Final
diff -up ./Platform/Linux/Build/Modules/nimCodecs/Makefile.fedora ./Platform/Linux/Build/Modules/nimCodecs/Makefile
--- ./Platform/Linux/Build/Modules/nimCodecs/Makefile.fedora 2014-06-01 18:21:35.912632616 -0400
+++ ./Platform/Linux/Build/Modules/nimCodecs/Makefile 2014-06-01 18:23:56.634016624 -0400
@@ -2,16 +2,22 @@ BIN_DIR = ../../../Bin
INC_DIRS = \
../../../../../Include \
- ../../../../../Source \
- ../../../../../Externals/LibJPEG
+ ../../../../../Source
SRC_FILES = \
- ../../../../../Source/Modules/nimCodecs/*.cpp \
- ../../../../../Externals/LibJPEG/*.c
+ ../../../../../Source/Modules/nimCodecs/*.cpp
LIB_NAME = nimCodecs
USED_LIBS = OpenNI
+ifneq ($(wildcard /usr/lib/libjpeg.so /usr/lib32/libjpeg.so /usr/lib64/libjpeg.so /usr/local/lib/libjpeg.so /usr/local/lib32/libjpeg.so /usr/local/lib64/libjpeg.so),)
+ USED_LIBS += jpeg
+else
+ INC_DIRS += ../../../../../Source/External/LibJPEG
+ SRC_FILES += ../../../../../Source/External/LibJPEG/*.c
+endif
+
+
include ../../Common/CommonCppMakefile
diff -up ./Platform/Linux/Build/OpenNI/Makefile.fedora ./Platform/Linux/Build/OpenNI/Makefile
--- ./Platform/Linux/Build/OpenNI/Makefile.fedora 2013-11-12 11:30:03.000000000 -0500
+++ ./Platform/Linux/Build/OpenNI/Makefile 2014-06-01 18:24:57.078466204 -0400
@@ -4,13 +4,11 @@ BIN_DIR = ../../Bin
INC_DIRS = \
../../../../Include \
- ../../../../Source \
- ../../../../Externals/TinyXml
+ ../../../../Source
SRC_FILES = \
../../../../Source/OpenNI/*.cpp \
- ../../../../Source/OpenNI/Linux/*.cpp \
- ../../../../Externals/TinyXml/*.cpp
+ ../../../../Source/OpenNI/Linux/*.cpp
ifeq ("$(OSTYPE)","Darwin")
INC_DIRS += /opt/local/include
@@ -25,6 +23,14 @@ ifneq ("$(OSTYPE)","Darwin")
endif
DEFINES = XN_EXPORTS
+ifneq ($(wildcard /usr/include/tinyxml.h /usr/local/include/tinyxml.h),)
+ USED_LIBS += tinyxml
+else
+ INC_DIRS += ../../../../Source/External/TinyXml
+ SRC_FILES += ../../../../Source/External/TinyXml/*.cpp
+endif
+
+
include ../Common/CommonCppMakefile
diff -up ./Platform/Linux/CreateRedist/install.sh.fedora ./Platform/Linux/CreateRedist/install.sh
--- ./Platform/Linux/CreateRedist/install.sh.fedora 2013-11-12 11:30:03.000000000 -0500
+++ ./Platform/Linux/CreateRedist/install.sh 2014-06-01 18:21:51.388203971 -0400
@@ -8,6 +8,8 @@ Installs OpenNI to current machine.
Installs OpenNI (default mode)
-u,--uninstall
Uninstalls OpenNI.
+-n,--noregister
+ Do not (un)register the modules
-c,--cross-compile-rootfs <path>
Used for cross-compiling. Installs OpenNI to <path> instead of '/'.
-h,--help
@@ -45,6 +47,9 @@ while [ "$1" ]; do
-u|--uninstall)
uninstall=yes
;;
+ -n|--noregister)
+ register=no
+ ;;
-c|--cross-staging-dir)
shift
rootfs=$1
@@ -71,11 +76,22 @@ if [ "$install" = yes ] && [ "$uninstall
exit 1
fi
-INSTALL_LIB=$rootfs/usr/lib
-INSTALL_BIN=$rootfs/usr/bin
-INSTALL_INC=$rootfs/usr/include/ni
-INSTALL_VAR=$rootfs/var/lib/ni
-INSTALL_JAR=$rootfs/usr/share/java
+
+if [ -z "$INSTALL_LIB" ]; then
+ INSTALL_LIB=$rootfs/usr/lib
+fi
+if [ -z "$INSTALL_BIN" ]; then
+ INSTALL_BIN=$rootfs/usr/bin
+fi
+if [ -z "$INSTALL_INC" ]; then
+ INSTALL_INC=$rootfs/usr/include/ni
+fi
+if [ -z "$INSTALL_VAR" ]; then
+ INSTALL_VAR=$rootfs/usr/etc/ni
+fi
+if [ -z "$INSTALL_JAR" ]; then
+ INSTALL_JAR=$rootfs/usr/share/java
+fi
# make all calls into OpenNI run in this filesystem
export OPEN_NI_INSTALL_PATH=$rootfs
@@ -86,6 +102,12 @@ if [ "$install" = yes ]; then
printf "Installing OpenNI\n"
printf "****************************\n\n"
+ mkdir -p $INSTALL_LIB
+ mkdir -p $INSTALL_BIN
+ mkdir -p $INSTALL_INC
+ mkdir -p $INSTALL_VAR
+ mkdir -p $INSTALL_JAR
+
# copy libraries
printf "copying shared libraries..."
cp $LIB_FILES $INSTALL_LIB
@@ -107,17 +129,21 @@ if [ "$install" = yes ]; then
mkdir -p $INSTALL_VAR
printf "OK\n"
- # register modules
- for module in $MODULES; do
- printf "registering module '$module'..."
- $INSTALL_BIN/niReg -r $INSTALL_LIB/$module
- printf "OK\n"
- done
+ if [ "$register" = yes ]; then
+ # register modules
+ for module in $MODULES; do
+ printf "registering module '$module'..."
+ $INSTALL_BIN/niReg -r $INSTALL_LIB/$module
+ printf "OK\n"
+ done
+ fi
- # mono
- if [ -f $rootfs/usr/bin/gmcs -a -f Bin/OpenNI.net.dll ]; then
- printf "Installing .Net wrappers...\n"
- gacutil -i Bin/OpenNI.net.dll -package 2.0 $GACDIR
+ if [ "$register" = yes ]; then
+ # mono
+ if [ -f $rootfs/usr/bin/gmcs -a -f Bin/OpenNI.net.dll ]; then
+ printf "Installing .Net wrappers...\n"
+ gacutil -i Bin/OpenNI.net.dll -package 2.0 $GACDIR
+ fi
fi
# java wrappers
@@ -135,13 +161,15 @@ elif [ "$uninstall" = yes ]; then
printf "Uninstalling OpenNI\n"
printf "****************************\n\n"
- # unregister modules
- for module in $MODULES; do
- printf "unregistering module '$module'..."
- if $INSTALL_BIN/niReg -u $INSTALL_LIB/$module; then
- printf "OK\n"
- fi
- done
+ if [ "$register" = yes ]; then
+ # unregister modules
+ for module in $MODULES; do
+ printf "unregistering module '$module'..."
+ if $INSTALL_BIN/niReg -u $INSTALL_LIB/$module; then
+ printf "OK\n"
+ fi
+ done
+ fi
# include files
printf "removing include files..."
@@ -162,12 +190,13 @@ elif [ "$uninstall" = yes ]; then
done
printf "OK\n"
- # mono
- if [ -f $rootfs/usr/bin/gmcs -a -f Bin/OpenNI.net.dll ]; then
- printf "Removing .Net wrappers...\n"
- gacutil -u OpenNI.net $GACDIR
+ if [ "$register" = yes ]; then
+ # mono
+ if [ -f $rootfs/usr/bin/gmcs -a -f Bin/OpenNI.net.dll ]; then
+ printf "Removing .Net wrappers...\n"
+ gacutil -u OpenNI.net $GACDIR
+ fi
fi
-
# java
printf "removing java bindings..."
for filename in $JAR_FILES; do
diff -up ./Source/OpenNI/Linux/XnUSBLinux.cpp.fedora ./Source/OpenNI/Linux/XnUSBLinux.cpp
--- ./Source/OpenNI/Linux/XnUSBLinux.cpp.fedora 2013-11-12 11:30:03.000000000 -0500
+++ ./Source/OpenNI/Linux/XnUSBLinux.cpp 2014-06-01 18:21:51.389204009 -0400
@@ -398,6 +398,16 @@ XN_C_API XnStatus xnUSBOpenDeviceImpl(li
return (XN_STATUS_USB_SET_CONFIG_FAILED);
}
*/
+ // detach any active kernel driver, code extracted from libfreenect
+ rc = libusb_kernel_driver_active(handle, 0);
+ if (rc == 1) {
+ rc = libusb_detach_kernel_driver(handle, 0);
+ if (rc != 0)
+ {
+ libusb_close(handle);
+ return (XN_STATUS_USB_SET_INTERFACE_FAILED);
+ }
+ }
// claim the interface (you cannot open any end point before claiming the interface)
rc = libusb_claim_interface(handle, 0);
if (rc != 0)
@@ -518,7 +528,7 @@ XN_C_API XnStatus xnUSBCloseDevice(XN_US
{
return (XN_STATUS_USB_DEVICE_CLOSE_FAILED);
}
-
+ rc = libusb_attach_kernel_driver(pDevHandle->hDevice, 0);
libusb_close(pDevHandle->hDevice);
XN_FREE_AND_NULL(pDevHandle);
diff -up ./Wrappers/OpenNI.jni/jni.h.fedora ./Wrappers/OpenNI.jni/jni.h
--- ./Wrappers/OpenNI.jni/jni.h.fedora 2013-11-12 11:30:03.000000000 -0500
+++ ./Wrappers/OpenNI.jni/jni.h 2014-06-01 18:21:51.390204045 -0400
@@ -182,7 +182,7 @@ typedef enum _jobjectType {
typedef struct {
const char *name;
const char *signature;
- void *fnPtr;
+ const void *fnPtr;
} JNINativeMethod;
/*