%global pub_commit 3376b1c5271cd05cca4e68612a6d956744d8a78e %global WFObj_commit 23568ad5a33b89d36703f6814e56e74b042ddfdf Name: openrv Version: 3.0.0 Release: %autorelease -b 3 Summary: Image and sequence viewer for Artists. License: Apache-2.0 URL: https://github.com/AcademySoftwareFoundation/OpenRV Provides: OpenRV%{?_isa} = %{version}-%{release} # Switch to rpmfusion's nonfree ffmpeg extended codec support %bcond nonfree_ffmpeg 0 # Enable Qt6 Build %if 0%{?fedora} >= 41 %bcond qt6 1 %else %bcond qt6 0 %endif Source0: %{url}/archive/main.tar.gz Source1: https://github.com/shotgunsoftware/openrv-pub/archive/%{pub_commit}.tar.gz Source2: https://github.com/shotgunsoftware/openrv-WFObj/archive/%{WFObj_commit}.tar.gz Source3: org.aswf.openrv.desktop %if %{with qt6} Patch: Qt6-Fixes.patch %endif Patch: 0001-Use-system-dependencies.patch Patch: 0002-Repath-to-standard-dir-structure.patch Patch: 0003-Private-libtiff.patch Patch: 0004-Parser-deprecated.patch Patch: 0005-Found-NDI-fix.patch Patch: 0006-RV-Screen-Validation.patch Patch: 0007-Invalid-escape-sequence.patch %if 0%{?fedora} >= 42 BuildRequires: gcc14-c++ %endif BuildRequires: cmake >= 3.27 BuildRequires: ninja-build BuildRequires: desktop-file-utils BuildRequires: python3 BuildRequires: python3-devel BuildRequires: boost-devel BuildRequires: openssl-devel BuildRequires: xcb-util %if %{with qt6} BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtbase-private-devel BuildRequires: qt6-qtwebengine-devel BuildRequires: qt6-qtsvg-devel BuildRequires: pkgconfig(Qt6UiTools) BuildRequires: qt6-qt5compat-devel BuildRequires: qt6-qtmultimedia-devel %else BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtwebengine-devel BuildRequires: qt5-qtsvg-devel BuildRequires: qt5-qtxmlpatterns-devel BuildRequires: qt5-qtx11extras-devel BuildRequires: qt5-qtmultimedia-devel BuildRequires: pkgconfig(Qt5UiTools) BuildRequires: qt5-qtwayland-devel %endif BuildRequires: cmake(OpenColorIO) BuildRequires: cmake(OpenImageIO) BuildRequires: freetype-devel BuildRequires: flex BuildRequires: bison BuildRequires: mesa-libOSMesa-devel BuildRequires: mesa-libGLU-devel BuildRequires: imath-devel BuildRequires: ffmpeg%{expr:%{with nonfree_ffmpeg}?"":"-free"}-devel BuildRequires: glew-devel BuildRequires: libjpeg-turbo-devel BuildRequires: openjpeg-devel BuildRequires: libtiff-devel BuildRequires: spdlog-devel BuildRequires: dav1d BuildRequires: yaml-cpp-devel BuildRequires: zlib-devel BuildRequires: gc-devel BuildRequires: libaio-devel BuildRequires: LibRaw-devel BuildRequires: fmt-devel BuildRequires: alsa-lib-devel BuildRequires: readline-devel BuildRequires: doctest-devel BuildRequires: avahi-compat-libdns_sd-devel BuildRequires: ImageMagick BuildRequires: cups-devel BuildRequires: font(fontawesome) # TEST BuildRequires: cmake(ajantv2) # BuildRequires: mbedtls-devel # Pub BuildRequires: libexif-devel BuildRequires: ftgl-devel BuildRequires: lcms-devel BuildRequires: libmp4v2-devel BuildRequires: libresample-devel BuildRequires: eigen3-devel BuildRequires: libyaml-devel BuildRequires: ftgl-devel Requires: hicolor-icon-theme Requires: font(fontawesome) Provides: bundled(minizip) = 1.01e %description Open RV is an image and sequence viewer for VFX and animation artists. Open RV is high-performant, hardware accelerated, and pipeline-friendly. %prep %autosetup -p1 -n OpenRV-main # Place Submodules and patch tar -xzf %{SOURCE1} --strip-components=1 -C src/pub tar -xzf %{SOURCE2} --strip-components=1 -C src/lib/files/WFObj %if 0%{?fedora} >= 41 sed -i 's/"CY2023"/"CY2024"/' \ cmake/defaults/rv_options.cmake %endif # Unbundle some pub deps # resample\|FTGL\|tinyxml\|yaml\|mp4v2\|minizip\|eigen\|exif sed -i '/ADD_SUBDIRECTORY(FTGL\|tinyxml\|yaml\|mp4v2\|eigen\|exif)/d' \ src/pub/CMakeLists.txt # Remove use of Git sed -i '7d' \ cmake/globals/rv_globals.cmake # Repath sed -i \ -e 's|${RV_BUILD_ROOT}/app|${RV_BUILD_ROOT}%{_prefix}|g' \ -e 's|${RV_STAGE_PLUGINS_DIR}/Python|${RV_BUILD_ROOT}%{python3_sitearch}/%{name}|g' \ cmake/globals/rv_globals.cmake # Use system's oiio version namespace sed -i "s|OpenImageIO_v2_4|OpenImageIO_v%(oiiotool --version | grep -oP '\d+\.\d+' | head -n1 | tr '.' '_')|g" \ src/lib/image/IOoiio/IOoiio.cpp sed -i "s|aja::ntv2|AJA::ajantv2|g" \ src/plugins/output/AJADevices/CMakeLists.txt # Pub patches sed -i 's/HAVE_MREMAP 1/HAVE_MREMAP 0/g' \ src/pub/nedmalloc/malloc.c.h sed -i 's/char\* tagList = \&/char\* tagList = \(char\*\)\&/g' \ src/pub/FTGL/FTVectoriser.cpp sed -i 's/s->pcrc_32_tab = get_crc_table()/s->pcrc_32_tab = (const unsigned long *)get_crc_table()/g' \ src/pub/minizip/unzip.c # sed -i 's|unzip.h|minizip/unzip.h|g' \ # src/lib/app/RvCommon/RvPreferences.cpp \ # src/lib/app/RvPackage/PackageManager.cpp %py3_shebang_fix src/plugins/python/network/network %build %if 0%{?fedora} >= 42 export CC=%{_bindir}/gcc-14 export CXX=%{_bindir}/g++-14 %endif %cmake -G Ninja \ %if %{with nonfree_ffmpeg} -DRV_FFMPEG_NON_FREE_DECODERS_TO_ENABLE="aac;hevc" \ -DRV_FFMPEG_NON_FREE_ENCODERS_TO_ENABLE="aac" %endif %cmake_build %install %cmake_install --prefix %{buildroot}%{_prefix} mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps magick %{buildroot}%{_prefix}/resources/RV.ico \ %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}.png # Only contains unused icon rm -r %{buildroot}%{_prefix}/resources rm %{buildroot}%{_bindir}/qt.conf \ %{buildroot}%{_bindir}/rv.install_* desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE3} %check # Some tests fail, skip errors. export LD_LIBRARY_PATH=%{buildroot}%{_libdir}/%{name} \ %ctest --verbose || exit 0 desktop-file-validate %{buildroot}%{_datadir}/applications/org.aswf.openrv.desktop %files %doc README.md %license LICENSE %{_bindir}/gto{filter,image,info,merge} %{_bindir}/make{FBIOformats,MovieIOformats} %{_bindir}/mu-interp %{_bindir}/rmsImageDiff %{_bindir}/rv %{_bindir}/rv{io,io_sw,ls,pkg,prof,push,shell} %{_libdir}/%{name} %{python3_sitearch}/%{name} %{_datadir}/applications/org.aswf.openrv.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/%{name} %changelog %autochangelog