public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/vapoursynth] rawhide: Update to R79, switch to Python build that invokes meson
@ 2026-08-10 9:21 Simone Caronni
0 siblings, 0 replies; only message in thread
From: Simone Caronni @ 2026-08-10 9:21 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/vapoursynth
Branch : rawhide
Commit : d7291116c4c4a0e08c829d738f24a8f9cee73eb6
Author : Simone Caronni <negativo17@gmail.com>
Date : 2026-08-10T11:21:10+02:00
Stats : +73/-55 in 4 file(s)
URL : https://src.fedoraproject.org/rpms/vapoursynth/c/d7291116c4c4a0e08c829d738f24a8f9cee73eb6?branch=rawhide
Log:
Update to R79, switch to Python build that invokes meson
---
diff --git a/README.md b/README.md
index 8533b2d..72346ec 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,3 @@
# vapoursynth
-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.
+The vapoursynth package.
diff --git a/sources b/sources
index 866af4e..ed325f7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (vapoursynth-R73.tar.gz) = d7ec10d6e99ea965f2eaf49ecb87ad4a7d716ce56fd120b03cb8fae0f06c05b93e153b6fd5ba9b7c99908659146eae9c1094af0be52c727674ddeae3b486b4af
+SHA512 (vapoursynth-R79.tar.gz) = 8e28a9ff72e5f0c891deeffd0ac0d38a654519910b2227414b8750c74a6198a6811d2271bd447b085a86b82665d38a5fe4fceb55b7537a13d72b2c87deba86fd
diff --git a/vapoursynth-version-info.patch b/vapoursynth-version-info.patch
deleted file mode 100644
index 114d9a2..0000000
--- a/vapoursynth-version-info.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-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-number 0:1 $(UNDEFINEDLDFLAGS)
- libvapoursynth_la_CPPFLAGS = $(PTHREAD_CFLAGS) $(ZIMG_CFLAGS) -DVS_PATH_PLUGINDIR='"$(PLUGINDIR)"' -DVS_CURRENT_RELEASE='$(VSCURRENTRELEASE)'
- libvapoursynth_la_LIBADD = $(PTHREAD_LIBS) $(ZIMG_LIBS) $(DLOPENLIB)
-
diff --git a/vapoursynth.spec b/vapoursynth.spec
index f2e6087..0a6ebbe 100644
--- a/vapoursynth.spec
+++ b/vapoursynth.spec
@@ -1,24 +1,29 @@
Name: vapoursynth
-Version: 73
+Version: 79
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
-Patch0: %{name}-version-info.patch
+# Restore soversion that was dropped when libvapoursynth-script was renamed to libvsscript.
+Patch0: %{name}-vsscript-soversion.patch
-BuildRequires: make
-BuildRequires: autoconf
-BuildRequires: automake
BuildRequires: gcc-c++
-BuildRequires: libtool
-BuildRequires: nasm
-BuildRequires: pkgconfig(tesseract)
+BuildRequires: meson
+BuildRequires: ninja-build
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.
It’s hard to tell because it has a core library written in C++ and a Python
@@ -36,6 +41,7 @@ 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.
@@ -58,62 +64,89 @@ This package contains the vspipe tool for interfacing with VapourSynth.
%autosetup -p1 -n %{name}-R%{version}
%generate_buildrequires
-%pyproject_buildrequires
+%pyproject_buildrequires -R
%build
-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
+# 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
%install
-%make_install
-find %{buildroot} -type f -name "*.la" -delete
-
%pyproject_install
%pyproject_save_files -l %{name}
-# Create plugin directory
-mkdir -p %{buildroot}%{_libdir}/%{name}
-
-# 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
+
+# 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 %{_libdir}/%{name}
+%dir %{vsdir}
+%dir %{vsdir}/plugins
+%{vsdir}/lib%{name}.so.*
+%{vsdir}/lib%{name}filters*.so
+%{vsdir}/libvsscript.so.*
%{_libdir}/lib%{name}.so.*
-%{_libdir}/lib%{name}-script.so.*
+%{_libdir}/libvsscript.so.*
%files devel
%{_includedir}/%{name}/
%{_libdir}/lib%{name}.so
-%{_libdir}/lib%{name}-script.so
+%{_libdir}/libvsscript.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
-%{python3_sitearch}/cython
-%{python3_sitearch}/vsscript
%changelog
%autochangelog
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-10 9:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-10 9:21 [rpms/vapoursynth] rawhide: Update to R79, switch to Python build that invokes meson Simone Caronni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox