%define gitrev 4c9ff978 Name: openni Version: 1.0.0.25 Release: 0.3.git%{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 # git archive --format tar --prefix=openni-1.0.0.25-git4c9ff978/ origin/unstable | gzip > openni-1.0.0.25-git4c9ff978.tar.gz Source0: openni-%{version}-git%{gitrev}.tar.gz Patch0: openni-1.0.0.25-fedora-buildsys.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: freeglut-devel, tinyxml-devel, libjpeg-devel, dos2unix, libusb1-devel BuildRequires: python, doxygen %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 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}-git%{gitrev} %patch0 -p1 -b .fedora-buildsys 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 sed -i "s|make -C ../Build|make -C ../Build CFLAGS_EXT=\\\\\"%{optflags}\\\\\" SSE_GENERATION=2 DEBUG=1|" Redist_OpenNi.py ./RedistMaker %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.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} 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} %{_libdir}/*.so %{_bindir}/ni* %{_var}/lib/ni %files devel %defattr(-,root,root,-) %doc Documentation/OpenNI_UserGuide.pdf %{_includedir}/* #{_libdir}/*.so %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 * 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