Blob Blame History Raw
%global abiver 2.53
Name:           librealsense
Version:        2.53.1
Release:        %autorelease
Summary:        Cross-platform camera capture for Intel RealSense

License:        ASL 2.0 and BSD
URL:            https://github.com/IntelRealSense/librealsense
Source0:        https://github.com/IntelRealSense/librealsense/archive/v%{version}.tar.gz#/librealsense-%{version}.tar.gz
# Remove custom CFLAGS that override ours.
# This was discussed with upstream, but upstream wants to keep those flags.
Patch0:         librealsense.remove-cflags.patch
Patch1:         librealsense.realsense-file-shared-library.patch
Patch2:         librealsense.use-system-pybind11.patch
Patch3:         librealsense.remove-invalid-unused-code.patch
Patch4:         librealsense.iostream-include.patch
Patch5:         librealsense-include-cstdint.patch

BuildRequires:  cmake
BuildRequires:  cmake(glfw3)
BuildRequires:  libcurl-devel
BuildRequires:  doxygen
BuildRequires:  gcc-c++
BuildRequires:  gdb-headless
BuildRequires:  glfw-devel
BuildRequires:  libGL-devel
BuildRequires:  libusb1-devel
BuildRequires:  mesa-libGLU-devel
BuildRequires:  pkgconfig(gtk+-3.0)
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pybind11-devel
BuildRequires:  python3-devel
BuildRequires:  python3-setuptools

Provides:       librealsense2 = %{version}-%{release}

%description
The Intel RealSense SDK is a cross-platform library (Linux, OSX, Windows) for
capturing data from the Intel RealSense D400 and SR 300 depth cameras.

For older devices (F200, R200, LR200, ZR300), please use librealsense1.

%package        devel
Summary:        Development files for %{name}
Requires:       %{name}%{?_isa} = %{version}-%{release}
Provides:       librealsense2-devel = %{version}-%{release}

%description    devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.


%package -n     python3-%{name}
Summary:        Python bindings for %{name}
%{?python_provide:%python_provide python3-%{name}}
Provides:       python3-librealsense2 = %{version}-%{release}

%description -n python3-%{name}
The python3-%{name} package contains python bindings for %{name}.


%package -n     python3-%{name}-devel
Summary:        Python development files for %{name}
Requires:       python3-%{name}%{?_isa} = %{version}-%{release}
Provides:       python3-librealsense2-devel = %{version}-%{release}

%description -n python3-%{name}-devel
The python3-%{name}-devel package contains libraries and header files for
developing python applications that use %{name}.


%package        doc
BuildArch:      noarch
Summary:        Documentation for %{name}
Provides:       librealsense2-doc = %{version}-%{release}

%description    doc
The %{name}-doc package contains documentation for developing applications
with %{name}.

# enable PIE, we need -fPIC anyway
%global _hardened_build 1

%prep
%autosetup -p1


%build
%cmake \
  -DBUILD_UNIT_TESTS=NO \
  -DCHECK_FOR_UPDATES=NO \
  -DCMAKE_INSTALL_BINDIR=%{_bindir} \
  -DCMAKE_INSTALL_LIBDIR=%{_libdir} \
  -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \
  -DBUILD_PYTHON_BINDINGS:bool=true \
  -DPYTHON_EXECUTABLE=%{python3}
%cmake_build

sed -i "s:/usr/local/bin:%{_datadir}/realsense:" config/*
sed -i "s/plugdev/users/g" config/*rules

pushd doc/doxygen
# Do not generate Windows help files
sed -i \
  -e "s/GENERATE_HTMLHELP[[:space:]]*=[[:space:]]*YES/GENERATE_HTMLHELP = NO/" \
  doxyfile
doxygen
popd


%install
%cmake_install

mkdir -p %{buildroot}/%{_udevrulesdir}
install -p -m644 config/99-realsense-libusb.rules %{buildroot}/%{_udevrulesdir}
mkdir -p %{buildroot}/%{_datadir}/realsense
install -p -m755 config/usb-R200-in{,_udev} %{buildroot}/%{_datadir}/realsense
mv %{buildroot}/builddir/Documents/librealsense2/presets %{buildroot}/%{_datadir}/realsense

%files
%license LICENSE
%doc readme.md
%{_libdir}/librealsense-file.so.%{abiver}*
%{_libdir}/librealsense2-gl.so.%{abiver}*
%{_libdir}/librealsense2.so.%{abiver}*
%{_datadir}/realsense
%{_bindir}/realsense-viewer
%{_bindir}/rs-align
%{_bindir}/rs-align-advanced
%{_bindir}/rs-ar-advanced
%{_bindir}/rs-ar-basic
%{_bindir}/rs-benchmark
%{_bindir}/rs-callback
%{_bindir}/rs-capture
%{_bindir}/rs-color
%{_bindir}/rs-convert
%{_bindir}/rs-data-collect
%{_bindir}/rs-depth
%{_bindir}/rs-depth-quality
%{_bindir}/rs-distance
%{_bindir}/rs-embed
%{_bindir}/rs-enumerate-devices
%{_bindir}/rs-fw-logger
%{_bindir}/rs-fw-update
%{_bindir}/rs-gl
%{_bindir}/rs-hdr
%{_bindir}/rs-hello-realsense
%{_bindir}/rs-measure
%{_bindir}/rs-motion
%{_bindir}/rs-multicam
%{_bindir}/rs-pointcloud
%{_bindir}/rs-pose
%{_bindir}/rs-pose-and-image
%{_bindir}/rs-pose-predict
%{_bindir}/rs-post-processing
%{_bindir}/rs-record
%{_bindir}/rs-record-playback
%{_bindir}/rs-rosbag-inspector
%{_bindir}/rs-save-to-disk
%{_bindir}/rs-sensor-control
%{_bindir}/rs-software-device
%{_bindir}/rs-terminal
%{_bindir}/rs-tracking-and-depth
%{_bindir}/rs-trajectory
%{_udevrulesdir}/99-realsense-libusb.rules

%files devel
%{_includedir}/librealsense2
%{_includedir}/librealsense2-gl
%{_libdir}/cmake/realsense2
%{_libdir}/cmake/realsense2-gl
%{_libdir}/librealsense-file.so
%{_libdir}/librealsense2-gl.so
%{_libdir}/librealsense2.so
%{_libdir}/pkgconfig/realsense2-gl.pc
%{_libdir}/pkgconfig/realsense2.pc

%files -n python3-%{name}
%dir %{python3_sitearch}/pyrealsense2
%{python3_sitearch}/pyrealsense2/pyrealsense2*.so.%{abiver}*
%{python3_sitearch}/pyrealsense2/pybackend2*.so.2*

%files -n python3-%{name}-devel
%{_libdir}/cmake/pyrealsense2
%{python3_sitearch}/pyrealsense2/pyrealsense2*.so
%{python3_sitearch}/pyrealsense2/pybackend2*.so

%files doc
%license LICENSE
%doc doc/doxygen/html/*


%changelog
%autochangelog