Compare commits

..

No commits in common. "rawhide" and "f32" have entirely different histories.

8 changed files with 201 additions and 112 deletions

3
.gitignore vendored
View file

@ -1 +1,2 @@
*.tar.gz
/vapoursynth-R48.tar.gz
/vapoursynth-R51.tar.gz

View file

@ -1,3 +1,3 @@
# vapoursynth
The vapoursynth package.
The vapoursynth package

View file

@ -1 +1 @@
SHA512 (vapoursynth-R79.tar.gz) = 8e28a9ff72e5f0c891deeffd0ac0d38a654519910b2227414b8750c74a6198a6811d2271bd447b085a86b82665d38a5fe4fceb55b7537a13d72b2c87deba86fd
SHA512 (vapoursynth-R51.tar.gz) = feb218aa309e538a32054b4fdeaf291e5c817e1b49bd482cf9dfc6c17d055c367dc27f80863770ae3333a4d115c026ad47609ed70857d89c22ff16f5cc6d5292

View file

@ -1,14 +0,0 @@
--- vapoursynth-R79/src/core/float16_helper.h 2026-08-07 10:48:01.000000000 +0200
+++ vapoursynth-R79/src/core/float16_helper.h 2026-08-10 11:44:16.851849594 +0200
@@ -31,7 +31,10 @@
// Without hardware support the compiler emits __truncsfhf2 / __extendhfsf2
// soft-float builtins, which are not linked under clang-cl + lld-link -- so
// there we fall back to explicit bit manipulation instead.
-#if (defined(__clang__) || defined(__GNUC__)) && (defined(__F16C__) || (!defined(__x86_64__) && !defined(__i386__)))
+// Not every non-x86 target has the type at all: PowerPC has no _Float16, and
+// the compiler rejects it outright. __FLT16_MANT_DIG__ is predefined only
+// where _Float16 is actually available, so test for that as well.
+#if (defined(__clang__) || defined(__GNUC__)) && defined(__FLT16_MANT_DIG__) && (defined(__F16C__) || (!defined(__x86_64__) && !defined(__i386__)))
# define VS_HAVE_NATIVE_FLOAT16 1
#else
# define VS_HAVE_NATIVE_FLOAT16 0

55
vapoursynth-gcc11.patch Normal file
View file

@ -0,0 +1,55 @@
diff -Naur vapoursynth-R51.old/src/core/exprfilter.cpp vapoursynth-R51/src/core/exprfilter.cpp
--- vapoursynth-R51.old/src/core/exprfilter.cpp 2021-03-23 14:34:50.273555518 +0100
+++ vapoursynth-R51/src/core/exprfilter.cpp 2021-03-23 14:36:17.148054372 +0100
@@ -32,6 +32,7 @@
#include <unordered_map>
#include <unordered_set>
#include <vector>
+#include <limits>
#include "VapourSynth.h"
#include "VSHelper.h"
#include "cpufeatures.h"
diff -Naur vapoursynth-R51.old/src/core/genericfilters.cpp vapoursynth-R51/src/core/genericfilters.cpp
--- vapoursynth-R51.old/src/core/genericfilters.cpp 2021-03-23 14:34:50.273555518 +0100
+++ vapoursynth-R51/src/core/genericfilters.cpp 2021-03-23 14:36:17.149054389 +0100
@@ -28,6 +28,7 @@
#include <array>
#include <memory>
#include <vector>
+#include <limits>
#include <VapourSynth.h>
#include <VSHelper.h>
#include "cpufeatures.h"
diff -Naur vapoursynth-R51.old/src/core/kernel/generic.cpp vapoursynth-R51/src/core/kernel/generic.cpp
--- vapoursynth-R51.old/src/core/kernel/generic.cpp 2021-03-23 14:34:50.273555518 +0100
+++ vapoursynth-R51/src/core/kernel/generic.cpp 2021-03-23 14:36:17.149054389 +0100
@@ -22,6 +22,7 @@
#include <array>
#include <cmath>
#include <cstdint>
+#include <limits>
#include <type_traits>
#include "generic.h"
diff -Naur vapoursynth-R51.old/src/filters/misc/miscfilters.cpp vapoursynth-R51/src/filters/misc/miscfilters.cpp
--- vapoursynth-R51.old/src/filters/misc/miscfilters.cpp 2021-03-23 14:34:50.276555570 +0100
+++ vapoursynth-R51/src/filters/misc/miscfilters.cpp 2021-03-23 14:36:17.150054407 +0100
@@ -26,6 +26,7 @@
#include <memory>
#include <stdexcept>
#include <vector>
+#include <limits>
#include <VapourSynth.h>
#include <VSHelper.h>
#include "../src/core/filtersharedcpp.h"
diff -Naur vapoursynth-R51.old/src/filters/removegrain/clense.cpp vapoursynth-R51/src/filters/removegrain/clense.cpp
--- vapoursynth-R51.old/src/filters/removegrain/clense.cpp 2021-03-23 14:34:50.276555570 +0100
+++ vapoursynth-R51/src/filters/removegrain/clense.cpp 2021-03-23 14:36:17.150054407 +0100
@@ -26,6 +26,7 @@
*/
#include "shared.h"
+#include <limits>
#define CLENSE_RETERROR(x) do { vsapi->setError(out, (x)); vsapi->freeNode(d.cnode); vsapi->freeNode(d.pnode); vsapi->freeNode(d.nnode); return; } while (0)
#define CLAMP(value, lower, upper) do { if (value < lower) value = lower; else if (value > upper) value = upper; } while(0)

View file

@ -0,0 +1,12 @@
diff -Naur vapoursynth-R51.old/Makefile.am vapoursynth-R51/Makefile.am
--- vapoursynth-R51.old/Makefile.am 2021-03-23 14:27:12.519657875 +0100
+++ vapoursynth-R51/Makefile.am 2021-03-23 14:27:19.806783602 +0100
@@ -79,7 +79,7 @@
pkgconfig_DATA += pc/vapoursynth.pc
-libvapoursynth_la_LDFLAGS = -no-undefined -avoid-version
+libvapoursynth_la_LDFLAGS = -no-undefined -version-info $(PACKAGE_VERSION)
libvapoursynth_la_CPPFLAGS = $(ZIMG_CFLAGS) -DVS_PATH_PLUGINDIR='"$(PLUGINDIR)"'
libvapoursynth_la_LIBADD = $(ZIMG_LIBS) $(DLOPENLIB) libexprfilter.la

View file

@ -1,10 +0,0 @@
--- vapoursynth-R79/meson.build 2026-08-07 10:48:01.000000000 +0200
+++ vapoursynth-R79/meson.build 2026-08-10 10:52:07.764950878 +0200
@@ -267,6 +267,7 @@ libvsscript = library('vsscript',
include_directories: incdir,
install: true,
install_dir: install_dir,
+ soversion: '0',
)
vsscript_dep = declare_dependency(

View file

@ -1,53 +1,69 @@
#global _with_tests 1
#global _with_subtitles 1
#global _with_ImageMagick 1
Name: vapoursynth
Version: 79
Release: %autorelease
Version: 51
Release: 1%{?dist}
Summary: Video processing framework with simplicity in mind
License: LGPL-2.1-only
License: LGPLv2
URL: http://www.vapoursynth.com
Source0: https://github.com/%{name}/%{name}/archive/R%{version}/%{name}-R%{version}.tar.gz
# Restore soversion that was dropped when libvapoursynth-script was renamed to libvsscript.
Patch0: %{name}-vsscript-soversion.patch
# Check for _Float16 instead of assuming that everything not x86 provides it.
Patch1: %{name}-float16-native-check.patch
Patch0: %{name}-version-info.patch
Patch1: %{name}-gcc11.patch
BuildRequires: make
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: libtool
BuildRequires: nasm
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(tesseract)
BuildRequires: pkgconfig(zimg)
BuildRequires: python3-devel
BuildRequires: python3-pytest
BuildRequires: python3
BuildRequires: python3-Cython
BuildRequires: python3-setuptools
# Since R79 upstream installs the whole runtime -- the core library, the filter
# plugins, vspipe, the headers and the pkg-config file -- inside the Python
# package directory, and VSCore locates libvapoursynthfilters and the
# third-party plugin directory relative to libvapoursynth.so via dladdr().
# The libraries, vspipe and the plugin directory therefore have to stay there;
# see %%install for the FHS entry points layered on top.
%global vsdir %{python3_sitearch}/%{name}
%{?_with_tests:
BuildRequires: %{name}-devel
BuildRequires: python3dist(pytest)
}
%{?_with_ImageMagick:
BuildRequires: pkgconfig(Magick++) >= 7.0
}
%{?_with_subtitles:
BuildRequires: pkgconfig(libass)
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
}
%description
VapourSynth is an application for video manipulation. Or a plugin. Or a library.
Its hard to tell because it has a core library written in C++ and a Python
module to allow video scripts to be created.
%package libs
Summary: VapourSynth's core library with a C++ API
Obsoletes: lib%{name} < %{version}-%{release}
Provides: lib%{name} == %{version}-%{release}
Obsoletes: %{name}-plugins < %{version}-%{release}
Provides: %{name}-plugins == %{version}-%{release}
%description libs
VapourSynth's core library with a C++ API.
%package -n python3-%{name}
Summary: Python interface for VapourSynth
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description -n python3-%{name}
Python interface for VapourSynth/VSSCript.
%package devel
Summary: Development files for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@ -55,100 +71,129 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description devel
Development files for %{name}.
%package tools
Summary: Extra tools for VapourSynth
Requires: python3-vapoursynth%{?_isa} = %{version}-%{release}
%description tools
This package contains the vspipe tool for interfacing with VapourSynth.
%package plugins
Summary: VapourSynth plugins
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description plugins
VapourSynth plugins.
%prep
%autosetup -p1 -n %{name}-R%{version}
%generate_buildrequires
%pyproject_buildrequires -R
%build
# CPython 3.15 gained a platform specific stable ABI suffix
# (.abi3-x86_64-linux-gnu.so) which meson-python 0.20 does not recognise as
# abi3, so it refuses to build the wheel. Nothing is gained from the limited
# API in a distribution build against a single Python version, so turn it off.
%pyproject_wheel -C setup-args=-Dpython.allow_limited_api=false
autoreconf -vif
%configure \
--disable-static \
--enable-x86-asm \
--enable-core \
--enable-vsscript \
--enable-vspipe \
--enable-python-module \
--enable-eedi3 \
--%{?_with_ImageMagick:enable}%{!?_with_ImageMagick:disable}-imwri \
--enable-miscfilters \
--enable-morpho \
--enable-ocr \
--enable-removegrain \
--%{?_with_subtitles:enable}%{!?_with_subtitles:disable}-subtext \
--enable-vinverse \
--enable-vivtc \
%make_build
%install
%pyproject_install
%pyproject_save_files -l %{name}
%py3_install
%make_install
find %{buildroot} -type f -name "*.la" -delete
# Let RPM pick up docs in the files section.
# Let RPM pick up docs in the files section
rm -fr %{buildroot}%{_docdir}/%{name}
# Third-party plugins are auto-loaded from next to the core library.
mkdir -p %{buildroot}%{vsdir}/plugins
%ldconfig_scriptlets libs
%ldconfig_scriptlets -n python3-%{name}
# Headers belong in the usual place.
mkdir -p %{buildroot}%{_includedir}/%{name}
mv %{buildroot}%{vsdir}/include/*.h %{buildroot}%{_includedir}/%{name}/
rmdir %{buildroot}%{vsdir}/include
# Upstream's vapoursynth.pc resolves everything relative to ${pcfiledir}, which
# no longer works once the file sits in %%{_libdir}/pkgconfig, and it ships no
# Libs: at all. Write it out instead.
rm -fr %{buildroot}%{vsdir}/pkgconfig
mkdir -p %{buildroot}%{_libdir}/pkgconfig
cat > %{buildroot}%{_libdir}/pkgconfig/%{name}.pc <<EOF
prefix=%{_prefix}
libdir=%{_libdir}
includedir=%{_includedir}/%{name}
Name: vapoursynth
Description: A frameserver for the 21st century
Version: %{version}
Cflags: -I\${includedir}
Libs: -L\${libdir} -lvapoursynth
EOF
# Make the libraries linkable and resolvable the normal way.
mkdir -p %{buildroot}%{_libdir}
for lib in $(cd %{buildroot}%{vsdir} && ls libvapoursynth.so.* libvsscript.so.*); do
ln -s %{vsdir}/${lib} %{buildroot}%{_libdir}/${lib}
ln -s ${lib} %{buildroot}%{_libdir}/${lib%%.so.*}.so
done
# The core library, its filter plugins and vspipe live inside the Python
# package directory but are packaged in the -libs and -tools subpackages.
sed -i -e '\#/%{name}/lib.*\.so#d' \
-e '\#/%{name}/vspipe$#d' \
-e '\#/%{name}/include#d' \
-e '\#/%{name}/pkgconfig#d' \
-e '\#^%%dir %{vsdir}$#d' \
%{pyproject_files}
%{?_with_tests:
%check
%pytest
%{python3} -m pytest -v
}
%files libs
%doc ChangeLog
%license COPYING.LESSER
%dir %{vsdir}
%dir %{vsdir}/plugins
%{vsdir}/lib%{name}.so.*
%{vsdir}/lib%{name}filters*.so
%{vsdir}/libvsscript.so.*
%dir %{_libdir}/%{name}
%{_libdir}/lib%{name}.so.*
%{_libdir}/libvsscript.so.*
%{_libdir}/lib%{name}-script.so.*
%files -n python3-%{name}
%{python3_sitearch}/%{name}.so
%{python3_sitearch}/VapourSynth-*.egg-info
%files devel
%{_includedir}/%{name}/
%{_libdir}/lib%{name}.so
%{_libdir}/libvsscript.so
%{_libdir}/lib%{name}-script.so
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/%{name}-script.pc
%files tools
%{_bindir}/%{name}
%{_bindir}/vspipe
%{vsdir}/vspipe
%files -n python3-%{name} -f %{pyproject_files}
%files plugins
%{_libdir}/%{name}/lib*.so
%changelog
%autochangelog
* Tue Mar 23 2021 Simone Caronni <negativo17@gmail.com> - 51-1
- Update to R51.
- Allow building for other archs beside x86.
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 48-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Oct 17 2020 Jeff Law <law@redhat.com> - 48-10
- Fix missing #include for gcc-11
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 48-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 48-8
- Rebuilt for Python 3.9
* Sat Mar 07 2020 Simone Caronni <negativo17@gmail.com> - 48-7
- Fix broken dependency.
* Sat Feb 29 2020 Simone Caronni <negativo17@gmail.com> - 48-6
- Make it exclusive for i686/x86_64.
- Fix build on RHEL/CentOS 8.
* Tue Feb 25 2020 Artem Polishchuk <ego.cordatus@gmail.com> - 48-5
- Add tests
- Cosmetic spec file improvements
* Thu Feb 20 2020 Simone Caronni <negativo17@gmail.com> - 48-4
- More review fixes.
- Use upstream patch for Python 3.8.
* Fri Feb 07 2020 Simone Caronni <negativo17@gmail.com> - 48-3
- Review fixes.
* Sun Jan 26 2020 Simone Caronni <negativo17@gmail.com> - 48-2
- Move script library into main library package.
- Fix build with Python 3.8.
* Thu Jan 16 2020 Simone Caronni <negativo17@gmail.com> - 48-1
- First build.