%global commit 7bef8f639e4d64a85a794e85fe3049dbb2acd32e %ifarch %{ix86} %global psarch x86 %else %ifarch x86_64 %global psarch x64 %else %global psarch Arm %endif %endif Name: openni2 Version: 2.2.0.33 Release: 2%{?dist} Summary: Driver and libraries for OpenNI: The standard framework for 3D sensing Group: System Environment/Libraries License: ASL 2.0 URL: http://structure.io/openni Source0: https://github.com/occipital/OpenNI2/archive/%{commit}/%{name}-%{commit}.tar.gz Source1: libopenni2.pc.in # These patches are for the most part specific to Fedora Patch0: %{name}-2.2.0.33-fedora.patch Patch1: %{name}-2.2.0.33-unbundle-libjpeg.patch Patch2: %{name}-2.2.0.33-non-windows-doxyfile.patch Patch3: %{name}-2.2.0.33-soname.patch Patch4: %{name}-2.2.0.33-gcc-5.patch Patch5: %{name}-2.2.0.33-javadoc.patch Patch6: %{name}-2.2.0.33-type-punned-pointer-dereference.patch ExclusiveArch: %{ix86} x86_64 %{arm} BuildRequires: python BuildRequires: libusbx-devel >= 1.0.8 BuildRequires: freeglut-devel BuildRequires: doxygen BuildRequires: graphviz BuildRequires: chrpath BuildRequires: systemd-devel BuildRequires: libjpeg-turbo-devel BuildRequires: java BuildRequires: java-devel BuildRequires: jpackage-utils %description The OpenNI framework is an open source SDK used for the development of 3D sensing middleware libraries and applications. The OpenNI website provides an active community of developers, the tools and support, a network of potential partners and a distribution platform - addressing the complete development lifecycle. %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package java Summary: Java library for %{name} Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: java %description java The %{name}-java package contains a Java JNI library for developing applications that use %{name} in Java. %package javadoc Summary: Javadocs for %{name} Group: Documentation BuildArch: noarch Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description javadoc The %{name}-javadoc package contains API documentation for %{name}-java %package doc Summary: API documentation for %{name} Group: Documentation BuildArch: noarch Requires: %{name} = %{version}-%{release} %description doc The %{name}-doc package contains the automatically generated API documentation for OpenNI2. %package examples Summary: Sample programs for %{name} Group: Development/Tools Requires: %{name}%{?_isa} = %{version}-%{release} %description examples The %{name}-examples package contains example programs for OpenNI2. %prep %setup -qn OpenNI2-%{commit} %patch0 -p1 -b .fedora %patch1 -p1 -b .unbundle-libjpeg %patch2 -p1 -b .non-windows-doxygen %patch3 -p1 -b .soname %patch4 -p1 -b .gcc-5 %patch5 -p1 -b .javadoc %patch6 -p1 -b .type-punned-pointer-dereference # Remove some bundled software # This leaves only glh and XnLib rm -rf ThirdParty/LibJPEG rm -rf ThirdParty/GL/GL ThirdParty/GL/glut* rm -rf ThirdParty/PSCommon/Testing rm -rf ThirdParty/PSCommon/XnLib/ThirdParty # Fix the java loadLibrary (per Fedora packaging spec) sed -e 's![@]libdir[@]!%{_libdir}!g' \ -e 's![@]name[@]!%{name}!g' \ Wrappers/java/OpenNI.java/src/org/openni/NativeMethods.java -i %build # OpenNI2 doesn't provide its own soname. %global soname_short libOpenNI2.so.`echo %{version} | awk -F. '{ print $1"."$2 }'` %global soname_full libOpenNI2.so.`echo %{version} | awk -F. '{ print $1"."$2"."$3"."$4 }'` # Make debug target so we get symbols - # they will be extracted and put in debuginfo later CFLAGS="%{optflags}" OPENNI2_SONAME="%{soname_short}" make %{?_smp_mflags} CFG=Custom all doc chrpath -d -k Bin/%{psarch}-Custom/* ||: %install install -d %{buildroot}%{_includedir}/ni2 install -p -m0644 Include/*.h %{buildroot}%{_includedir}/ni2/ install -d %{buildroot}%{_includedir}/ni2/Linux-Arm install -p -m0644 Include/Linux-Arm/* %{buildroot}%{_includedir}/ni2/Linux-Arm/ install -d %{buildroot}%{_includedir}/ni2/Linux-x86 install -p -m0644 Include/Linux-x86/* %{buildroot}%{_includedir}/ni2/Linux-x86/ install -d %{buildroot}%{_includedir}/ni2/Driver install -p -m0644 Include/Driver/* %{buildroot}%{_includedir}/ni2/Driver/ install -d %{buildroot}%{_libdir}/%{name} install -p -m0755 Bin/%{psarch}-Custom/libOpenNI2.jni.so %{buildroot}%{_libdir}/%{name}/libOpenNI2.jni.so install -p -m0755 Bin/%{psarch}-Custom/libOpenNI2.so %{buildroot}%{_libdir}/%{soname_full} ln -s %{soname_full} %{buildroot}%{_libdir}/%{soname_short} ln -s %{soname_full} %{buildroot}%{_libdir}/libOpenNI2.so install -d %{buildroot}%{_libdir}/%{name}/Drivers install -p -m0755 Bin/%{psarch}-Custom/OpenNI2/Drivers/libDummyDevice.so %{buildroot}%{_libdir}/%{name}/Drivers/libDummyDevice.so install -p -m0755 Bin/%{psarch}-Custom/OpenNI2/Drivers/libOniFile.so %{buildroot}%{_libdir}/%{name}/Drivers/libOniFile.so install -p -m0755 Bin/%{psarch}-Custom/OpenNI2/Drivers/libPS1080.so %{buildroot}%{_libdir}/%{name}/Drivers/libPS1080.so install -p -m0755 Bin/%{psarch}-Custom/OpenNI2/Drivers/libPSLink.so %{buildroot}%{_libdir}/%{name}/Drivers/libPSLink.so install -d %{buildroot}%{_bindir} %ifnarch %{arm} install -p -m0755 Bin/%{psarch}-Custom/NiViewer %{buildroot}%{_bindir}/Ni2Viewer install -p -m0755 Bin/%{psarch}-Custom/ClosestPointViewer %{buildroot}%{_bindir}/ClosestPointViewer install -p -m0755 Bin/%{psarch}-Custom/SimpleViewer %{buildroot}%{_bindir}/SimpleViewer install -p -m0755 Bin/%{psarch}-Custom/MultiDepthViewer %{buildroot}%{_bindir}/MultiDepthViewer %endif install -p -m0755 Bin/%{psarch}-Custom/PS1080Console %{buildroot}%{_bindir}/PS1080Console install -p -m0755 Bin/%{psarch}-Custom/PSLinkConsole %{buildroot}%{_bindir}/PSLinkConsole install -p -m0755 Bin/%{psarch}-Custom/EventBasedRead %{buildroot}%{_bindir}/EventBasedRead install -p -m0755 Bin/%{psarch}-Custom/MultipleStreamRead %{buildroot}%{_bindir}/MultipleStreamRead install -p -m0755 Bin/%{psarch}-Custom/MWClosestPointApp %{buildroot}%{_bindir}/MWClosestPointApp install -p -m0755 Bin/%{psarch}-Custom/SimpleRead %{buildroot}%{_bindir}/SimpleRead install -d %{buildroot}%{_sysconfdir}/udev/rules.d/ install -p -m0644 Packaging/Linux/primesense-usb.rules %{buildroot}%{_sysconfdir}/udev/rules.d/557-primesense-usb.rules install -d %{buildroot}%{_datadir}/%{name}-doc cp -a Source/Documentation/{html,Text} %{buildroot}%{_datadir}/%{name}-doc/ install -d %{buildroot}%{_javadocdir}/%{name} cp -a Source/Documentation/java/* %{buildroot}%{_javadocdir}/%{name}/ install -d %{buildroot}%{_jnidir} install -p -m0644 Bin/%{psarch}-Custom/org.openni.jar %{buildroot}%{_jnidir}/%{name}.jar install -d %{buildroot}%{_libdir}/pkgconfig sed -e 's![@]prefix[@]!%{_prefix}!g' \ -e 's![@]exec_prefix[@]!%{_exec_prefix}!g' \ -e 's![@]includedir[@]!%{_includedir}!g' \ -e 's![@]libdir[@]!%{_libdir}!g' \ -e 's![@]version[@]!%{version}!g' \ %{SOURCE1} > %{buildroot}%{_libdir}/pkgconfig/libopenni2.pc %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %doc NOTICE README ReleaseNotes.txt %license LICENSE %{_libdir}/libOpenNI2.so.* %dir %{_libdir}/%{name} %{_libdir}/%{name}/Drivers # NiViewer is not built for Arm %ifnarch %{arm} %{_bindir}/Ni2Viewer %endif %{_bindir}/PS1080Console %{_bindir}/PSLinkConsole %config(noreplace) %{_sysconfdir}/udev/rules.d/557-primesense-usb.rules %files devel %license LICENSE %{_includedir}/ni2/ %{_libdir}/libOpenNI2.so %{_libdir}/pkgconfig/libopenni2.pc %files java %license LICENSE %{_libdir}/%{name}/libOpenNI2.jni.so %{_jnidir}/%{name}.jar %files javadoc %{_javadocdir}/%{name} %files doc %{_datadir}/%{name}-doc %files examples %license LICENSE %ifnarch %{arm} %{_bindir}/ClosestPointViewer %{_bindir}/SimpleViewer %{_bindir}/MultiDepthViewer %endif %{_bindir}/EventBasedRead %{_bindir}/MultipleStreamRead %{_bindir}/MWClosestPointApp %{_bindir}/SimpleRead %changelog * Sat Jul 04 2015 Scott K Logan - 2.2.0.33-2 - Updates based on CR feedback * Mon Mar 03 2014 Scott K Logan - 2.2.0.33-1 - Initial Package