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