#define gitrev f8467404 Name: openni Version: 1.3.2.1 Release: 2%{?gitrev}%{?dist} Summary: Library for human-machine Natural Interaction Group: System Environment/Libraries License: LGPLv3+ and BSD URL: http://www.openni.org # No official releases, yet. To reproduce tarball (adapt version and gitrev): # git clone git://github.com/OpenNI/OpenNI.git # cd OpenNI.git # rm -rf Platform/Win32 Platform/Android # git archive --format tar --prefix=openni-1.3.2.1/ HEAD | gzip > ../openni-1.3.2.1.tar.gz Source0: openni-%{version}.tar.gz Patch0: openni-1.3.2.1-willow.patch Patch1: openni-1.3.2.1-fedora.patch Patch2: openni-1.3.2.1-disable-sse.patch Patch3: openni-1.3.2.1-silence-assert.patch Patch4: openni-1.3.2.1-fedora-java.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} x86_64 BuildRequires: freeglut-devel, tinyxml-devel, libjpeg-devel, dos2unix, libusb1-devel BuildRequires: python, doxygen, graphviz %description OpenNI (Open Natural Interaction) is a multi-language, cross-platform framework that defines APIs for writing applications utilizing Natural Interaction. OpenNI APIs are composed of a set of interfaces for writing NI applications. The main purpose of OpenNI is to form a standard API that enables communication with both: * Vision and audio sensors * Vision and audio perception middleware %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package java Summary: %{name} Java library Group: Development/Libraries Requires: %{name} = %{version}-%{release} BuildRequires: java-devel BuildRequires: jpackage-utils Requires: java Requires: jpackage-utils %description java The %{name}-java package contains a Java JNI library for developing applications that use %{name} in Java. %package doc Summary: API documentation for %{name} Group: Documentation BuildArch: noarch %description doc The %{name}-doc package contains the automatically generated API documentation for OpenNI. %package examples Summary: Sample programs for %{name} Group: Development/Tools Requires: %{name} = %{version}-%{release} %description examples The %{name}-examples package contains example programs for OpenNI. %prep %setup -q -n %{name}-%{version} %patch0 -p1 -b .willow %patch1 -p1 -b .fedora %patch2 -p1 -b .disable-sse %patch3 -p1 -b .silence-assert %patch4 -p1 -b .fedora-java rm -rf Source/External rm -rf Platform/Linux-x86/Build/Prerequisites/* find Samples -name GL -prune -exec rm -rf {} \; find Samples -name Libs -prune -exec rm -rf {} \; for ext in c cpp; do find Samples -name "*.$ext" -exec \ sed -i -e 's|#define SAMPLE_XML_PATH "../../../../Data/SamplesConfig.xml"|#define SAMPLE_XML_PATH "%{_sysconfdir}/%{name}/SamplesConfig.xml"|' {} \; done dos2unix README dos2unix GPL.txt dos2unix LGPL.txt %build cd Platform/Linux-x86/CreateRedist # {?_smp_mflags} omitted, not supported by OpenNI Makefiles CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" DEBUG=1 \ ./RedistMaker #cat Output/BuildOpenNI.txt %install rm -rf $RPM_BUILD_ROOT pushd Platform/Linux-x86/Redist INSTALL_LIB=$RPM_BUILD_ROOT%{_libdir} \ INSTALL_BIN=$RPM_BUILD_ROOT%{_bindir} \ INSTALL_INC=$RPM_BUILD_ROOT%{_includedir}/ni \ INSTALL_VAR=$RPM_BUILD_ROOT%{_var}/lib/ni \ INSTALL_JAR=$RPM_BUILD_ROOT%{_libdir}/%{name} \ ./install.sh -n install -m 0755 Samples/Bin/Release/libSample-NiSampleModule.so $RPM_BUILD_ROOT%{_libdir}/libNiSampleModule.so install -m 0755 Samples/Bin/Release/NiViewer $RPM_BUILD_ROOT%{_bindir} install -m 0755 Samples/Bin/Release/Sample-NiAudioSample $RPM_BUILD_ROOT%{_bindir}/NiAudioSample install -m 0755 Samples/Bin/Release/Sample-NiBackRecorder $RPM_BUILD_ROOT%{_bindir}/NiBackRecorder install -m 0755 Samples/Bin/Release/Sample-NiConvertXToONI $RPM_BUILD_ROOT%{_bindir}/NiConvertXToONI install -m 0755 Samples/Bin/Release/Sample-NiCRead $RPM_BUILD_ROOT%{_bindir}/NiCRead install -m 0755 Samples/Bin/Release/Sample-NiRecordSynthetic $RPM_BUILD_ROOT%{_bindir}/NiRecordSynthetic install -m 0755 Samples/Bin/Release/Sample-NiSimpleCreate $RPM_BUILD_ROOT%{_bindir}/NiSimpleCreate install -m 0755 Samples/Bin/Release/Sample-NiSimpleRead $RPM_BUILD_ROOT%{_bindir}/NiSimpleRead install -m 0755 Samples/Bin/Release/Sample-NiSimpleViewer $RPM_BUILD_ROOT%{_bindir}/NiSimpleViewer install -m 0755 Samples/Bin/Release/Sample-NiUserTracker $RPM_BUILD_ROOT%{_bindir}/NiUserTracker popd mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-doc cp -a Source/DoxyGen/html/* $RPM_BUILD_ROOT%{_datadir}/%{name}-doc mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} install -p -m 0644 Data/SamplesConfig.xml $RPM_BUILD_ROOT%{_sysconfdir}/%{name} mkdir -p $RPM_BUILD_ROOT%{_var}/lib/ni echo "<Modules/>" > $RPM_BUILD_ROOT%{_var}/lib/ni/modules.xml %clean rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig if [ $1 == 1 ]; then niReg -r %{_libdir}/libnimMockNodes.so niReg -r %{_libdir}/libnimCodecs.so niReg -r %{_libdir}/libnimRecorder.so fi %preun if [ $1 == 0 ]; then niReg -u %{_libdir}/libnimMockNodes.so niReg -u %{_libdir}/libnimCodecs.so niReg -u %{_libdir}/libnimRecorder.so fi %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc LGPL.txt README %dir %{_sysconfdir}/%{name} %config(noreplace) %{_var}/lib/ni/modules.xml %{_libdir}/*.so %{_bindir}/ni* %{_var}/lib/ni %files devel %defattr(-,root,root,-) %doc Documentation/OpenNI_UserGuide.pdf %{_includedir}/* #{_libdir}/*.so %files java %defattr(-,root,root,-) %{_libdir}/%{name} %files examples %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/SamplesConfig.xml %{_bindir}/Ni* # not packaging any .desktop files for the sample applications. The # applications will print relevant to the console and hence they are # intended to be run on the console, not from the menu %files doc %defattr(-,root,root,-) %{_datadir}/%{name}-doc %changelog * Fri Dec 23 2011 Tim Niemueller <tim@niemueller.de> 1.3.2.1-2 - Add BR graphviz * Thu Dec 22 2011 Tim Niemueller <tim@niemueller.de> 1.3.2.1-1 - Remove git suffix, we package the stable version - Add Willow Garage and assertion silencing patches * Sun Dec 04 2011 Tim Niemueller <tim@niemueller.de> 1.3.2.1-0.3.gitf8467404 - Mark modules.xml as config file, fixes deregistering of modules on upgrade * Wed Oct 12 2011 Tim Niemueller <tim@niemueller.de> 1.3.2.1-0.2.gitf8467404 - Fix passing of opt cflags, fixes bz #735594 * Tue Aug 30 2011 Tim Niemueller <tim@niemueller.de> 1.3.2.1-0.1.gitf8467404 - Update to stable 1.3.2.1 based on patch by Anders Blomdell * Mon Jun 27 2011 Rex Dieter <rdieter@fedoraproject.org> 1.0.0.25-0.5.git4c9ff978 - ExclusiveArch: %%ix86 x86_64 (#709718) * Fri Feb 11 2011 Tim Niemueller <tim@niemueller.de> - 1.0.0.25-0.4.git4c9ff978 - Exclude ppc64, it is not supported by OpenNI * Tue Feb 08 2011 Tim Niemueller <tim@niemueller.de> - 1.0.0.25-0.3.git4c9ff978 - Rename samples subpackage to examples - Remove bundled libraries and headers in prep stage - Create empty modules.xml in install stage - Do not package GPL.txt, all code is LGPL * Tue Feb 01 2011 Tim Niemueller <tim@niemueller.de> - 1.0.0.25-0.2.git4c9ff978 - Incorporate review suggestions * Thu Jan 20 2011 Tim Niemueller <tim@niemueller.de> - 1.0.0.25-0.1.git4c9ff978 - Initial revision