Compare commits

..

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

7 changed files with 96 additions and 100 deletions

View file

@ -1,3 +1,6 @@
# vapoursynth
The vapoursynth package.
The vapoursynth package. The upstream project does not provide any versioning
for the shared library, even with ABI changes. This package sets the library
version to the upstream release version, to avoid having an unversioned shared
object that might get updated by mistake.

42
changelog Normal file
View file

@ -0,0 +1,42 @@
* Wed Jan 29 2025 Simone Caronni <negativo17@gmail.com> - 70-1
- Update to version 70.
- Trim changelog.
- Clean up SPEC file, switch to Python packaging guidelines for Python module.
- Fix License tag.
- Enable tests.
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 68-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Sep 04 2024 Miroslav Suchý <msuchy@redhat.com> - 68-4
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 68-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 68-2
- Rebuilt for Python 3.13
* Wed May 22 2024 Simone Caronni <negativo17@gmail.com> - 68-1
- Update to R68.
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 65-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Nov 02 2023 Simone Caronni <negativo17@gmail.com> - 65-1
- Update to version R65.
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 63-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jul 01 2023 Python Maint <python-maint@redhat.com> - 63-2
- Rebuilt for Python 3.12
* Fri Jun 30 2023 Simone Caronni <negativo17@gmail.com> - 63-1
- Update to R63.
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 58-5
- Rebuilt for Python 3.12
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 58-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

View file

@ -1 +1 @@
SHA512 (vapoursynth-R79.tar.gz) = 8e28a9ff72e5f0c891deeffd0ac0d38a654519910b2227414b8750c74a6198a6811d2271bd447b085a86b82665d38a5fe4fceb55b7537a13d72b2c87deba86fd
SHA512 (vapoursynth-R71.tar.gz) = 472b8691e1334d24885350cf0dd577b0b32b0e905d3291732b6649088740bcae90fa4cee3daf2d3b0a092dbbb77e925754f7cfdd2bfc1611d8dc14d80d6a1cbd

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

View file

@ -0,0 +1,12 @@
diff -Naur vapoursynth-R65.old/Makefile.am vapoursynth-R65/Makefile.am
--- vapoursynth-R65.old/Makefile.am 2023-11-02 09:22:50.859928603 +0100
+++ vapoursynth-R65/Makefile.am 2023-11-02 09:23:43.376805703 +0100
@@ -89,7 +89,7 @@
pkgconfig_DATA += pc/vapoursynth.pc
-libvapoursynth_la_LDFLAGS = -no-undefined -avoid-version $(UNDEFINEDLDFLAGS)
+libvapoursynth_la_LDFLAGS = -no-undefined -version-info $(PACKAGE_VERSION) $(UNDEFINEDLDFLAGS)
libvapoursynth_la_CPPFLAGS = $(PTHREAD_CFLAGS) $(ZIMG_CFLAGS) -DVS_PATH_PLUGINDIR='"$(PLUGINDIR)"' -DVS_CURRENT_RELEASE='$(VSCURRENTRELEASE)'
libvapoursynth_la_LIBADD = $(PTHREAD_LIBS) $(ZIMG_LIBS) $(DLOPENLIB)

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,31 +1,24 @@
Name: vapoursynth
Version: 79
Version: 71
Release: %autorelease
Summary: Video processing framework with simplicity in mind
License: LGPL-2.1-only
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
BuildRequires: make
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: libtool
BuildRequires: nasm
BuildRequires: pkgconfig(tesseract)
BuildRequires: pkgconfig(zimg)
BuildRequires: python3-devel
BuildRequires: python3-pytest
# 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}
%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
@ -43,7 +36,6 @@ 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.
@ -66,89 +58,60 @@ This package contains the vspipe tool for interfacing with VapourSynth.
%autosetup -p1 -n %{name}-R%{version}
%generate_buildrequires
%pyproject_buildrequires -R
%pyproject_buildrequires
%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
%make_build
# Make libraries available for Python linking
ln -sf .libs build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files -l %{name}
%make_install
find %{buildroot} -type f -name "*.la" -delete
# Let RPM pick up docs in the files section.
%pyproject_install
%pyproject_save_files %{name}
# Create plugin directory
mkdir -p %{buildroot}%{_libdir}/%{name}
# 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
# 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}
%check
export LD_LIBRARY_PATH=build
%pytest
%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 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}
%{python3_sitearch}/%{name}.so
%changelog
%autochangelog