diff --git a/.gitignore b/.gitignore index 335ec95..be14818 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -*.tar.gz +/vapoursynth-R48.tar.gz +/vapoursynth-R51.tar.gz diff --git a/README.md b/README.md index 72346ec..3f4d9d0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # vapoursynth -The vapoursynth package. +The vapoursynth package \ No newline at end of file diff --git a/sources b/sources index ed325f7..c687eb9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vapoursynth-R79.tar.gz) = 8e28a9ff72e5f0c891deeffd0ac0d38a654519910b2227414b8750c74a6198a6811d2271bd447b085a86b82665d38a5fe4fceb55b7537a13d72b2c87deba86fd +SHA512 (vapoursynth-R51.tar.gz) = feb218aa309e538a32054b4fdeaf291e5c817e1b49bd482cf9dfc6c17d055c367dc27f80863770ae3333a4d115c026ad47609ed70857d89c22ff16f5cc6d5292 diff --git a/vapoursynth-float16-native-check.patch b/vapoursynth-float16-native-check.patch deleted file mode 100644 index c6973be..0000000 --- a/vapoursynth-float16-native-check.patch +++ /dev/null @@ -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 diff --git a/vapoursynth-gcc11.patch b/vapoursynth-gcc11.patch new file mode 100644 index 0000000..29e4722 --- /dev/null +++ b/vapoursynth-gcc11.patch @@ -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 + #include + #include ++#include + #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 + #include + #include ++#include + #include + #include + #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 + #include + #include ++#include + #include + #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 + #include + #include ++#include + #include + #include + #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 + + #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) diff --git a/vapoursynth-version-info.patch b/vapoursynth-version-info.patch new file mode 100644 index 0000000..e7d1725 --- /dev/null +++ b/vapoursynth-version-info.patch @@ -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 + diff --git a/vapoursynth-vsscript-soversion.patch b/vapoursynth-vsscript-soversion.patch deleted file mode 100644 index fe85e8a..0000000 --- a/vapoursynth-vsscript-soversion.patch +++ /dev/null @@ -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( diff --git a/vapoursynth.spec b/vapoursynth.spec index 16f7407..ba4d5dd 100644 --- a/vapoursynth.spec +++ b/vapoursynth.spec @@ -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. It’s 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 < - 51-1 +- Update to R51. +- Allow building for other archs beside x86. + +* Wed Jan 27 2021 Fedora Release Engineering - 48-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Oct 17 2020 Jeff Law - 48-10 +- Fix missing #include for gcc-11 + +* Wed Jul 29 2020 Fedora Release Engineering - 48-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 48-8 +- Rebuilt for Python 3.9 + +* Sat Mar 07 2020 Simone Caronni - 48-7 +- Fix broken dependency. + +* Sat Feb 29 2020 Simone Caronni - 48-6 +- Make it exclusive for i686/x86_64. +- Fix build on RHEL/CentOS 8. + +* Tue Feb 25 2020 Artem Polishchuk - 48-5 +- Add tests +- Cosmetic spec file improvements + +* Thu Feb 20 2020 Simone Caronni - 48-4 +- More review fixes. +- Use upstream patch for Python 3.8. + +* Fri Feb 07 2020 Simone Caronni - 48-3 +- Review fixes. + +* Sun Jan 26 2020 Simone Caronni - 48-2 +- Move script library into main library package. +- Fix build with Python 3.8. + +* Thu Jan 16 2020 Simone Caronni - 48-1 +- First build.