Compare commits

..

3 commits

Author SHA1 Message Date
Simone Caronni
f6b4a012c3 Clean up SPEC file, tools require pyhton library (#2290426) 2025-04-26 09:27:36 +02:00
Simone Caronni
b6ac313c6e Add comment to README.md 2025-04-26 09:17:57 +02:00
Simone Caronni
7a0b66600b Convert to %autorelease and %autochangelog
[skip changelog]
2025-04-26 09:17:21 +02:00
7 changed files with 119 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.

62
changelog Normal file
View file

@ -0,0 +1,62 @@
* Wed Mar 02 2022 Simone Caronni <negativo17@gmail.com> - 57-1
- Update to R57.
- Plugins are now separate.
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 51-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sun Dec 19 2021 Sandro Mani <manisandro@gmail.com> - 51-6
- Rebuild (tesseract)
* Tue Dec 14 2021 Sandro Mani <manisandro@gmail.com> - 51-5
- Rebuild (tesseract)
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 51-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 51-3
- Rebuilt for Python 3.10
* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com> - 51-2
- Rebuilt for removed libstdc++ symbol (#1937698)
* 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.

View file

@ -1 +1 @@
SHA512 (vapoursynth-R79.tar.gz) = 8e28a9ff72e5f0c891deeffd0ac0d38a654519910b2227414b8750c74a6198a6811d2271bd447b085a86b82665d38a5fe4fceb55b7537a13d72b2c87deba86fd
SHA512 (vapoursynth-R57.tar.gz) = 6310b35284acb436b8b49b3a116db736b40d8d51b40243d20e065e80685e66390fce7121c01a2654359673d87b5f589bc3f981d12befc438de14a58ba6614e5f

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-R57.old/Makefile.am vapoursynth-R57/Makefile.am
--- vapoursynth-R57.old/Makefile.am 2022-03-02 08:35:44.861454145 +0100
+++ vapoursynth-R57/Makefile.am 2022-03-02 08:36:52.981729877 +0100
@@ -88,7 +88,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)"'
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,30 +1,23 @@
Name: vapoursynth
Version: 79
Version: 57
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: pytest
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.
@ -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,63 @@ 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}
%ldconfig_scriptlets libs
%ldconfig_scriptlets -n python3-%{name}
%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