SHA256
1
0
forked from jengelh/ffmpeg-4

- Add soversion.patch to workaround upstream ABI breakage.

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-4?expand=0&rev=125
This commit is contained in:
Jan Engelhardt 2020-07-04 22:16:36 +00:00 committed by Git OBS Bridge
parent d0c6488c33
commit 2a43e2c0bb
4 changed files with 140 additions and 93 deletions

View File

@ -1,9 +1,9 @@
libavcodec58
libavdevice58
libavfilter7
libavformat58
libavresample4
libavutil56
libpostproc55
libswresample3
libswscale5
libavcodec58suse0
libavdevice58suse0
libavfilter7suse0
libavformat58suse0
libavresample4suse0
libavutil56suse0
libpostproc55suse0
libswresample3suse0
libswscale5suse0

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Sat Jul 4 22:09:51 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Add soversion.patch to workaround upstream ABI breakage.
-------------------------------------------------------------------
Wed Jun 17 16:32:04 UTC 2020 - Jan Engelhardt <jengelh@inai.de>

View File

@ -111,6 +111,7 @@ Patch1: ffmpeg-arm6l.diff
Patch2: ffmpeg-new-coder-errors.diff
Patch3: ffmpeg-codec-choice.diff
Patch4: ffmpeg-4.2-dlopen-fdk_aac.patch
Patch5: soversion.patch
BuildRequires: ladspa-devel
BuildRequires: libgsm-devel
BuildRequires: libmp3lame-devel
@ -198,7 +199,7 @@ BuildRequires: pkgconfig(xcb-shm)
BuildRequires: pkgconfig(xcb-xfixes)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200
%if 0%{?suse_version} >= 1550 || 0%{?xsle_version} >= 150200
%ifarch x86_64
BuildRequires: pkgconfig(libmfx)
%endif
@ -236,15 +237,15 @@ Provides: ffmpeg-tools = %version
Obsoletes: ffmpeg-tools < %version
Provides: ffmpeg = %version
Obsoletes: ffmpeg < %version
Requires: libavcodec58 = %version-%release
Requires: libavdevice58 = %version-%release
Requires: libavfilter7 = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavresample4 = %version-%release
Requires: libavutil56 = %version-%release
Requires: libpostproc55 = %version-%release
Requires: libswresample3 = %version-%release
Requires: libswscale5 = %version-%release
Requires: libavcodec58suse0 = %version-%release
Requires: libavdevice58suse0 = %version-%release
Requires: libavfilter7suse0 = %version-%release
Requires: libavformat58suse0 = %version-%release
Requires: libavresample4suse0 = %version-%release
Requires: libavutil56suse0 = %version-%release
Requires: libpostproc55suse0 = %version-%release
Requires: libswresample3suse0 = %version-%release
Requires: libswscale5suse0 = %version-%release
%description
FFmpeg is a multimedia framework, able to decode, encode,
@ -255,12 +256,12 @@ that humans and machines have created.
This build of ffmpeg is limited in the number of codecs supported.
%endif
%package -n libavcodec58
%package -n libavcodec58suse0
Summary: FFmpeg codec library
# For mozillas
Group: System/Libraries
Requires: libavutil56 = %version-%release
Requires: libswresample3 = %version-%release
Requires: libavutil56suse0 = %version-%release
Requires: libswresample3suse0 = %version-%release
Provides: libavcodec = %version-%release
%if 0%{?BUILD_ORIG}
Provides: libavcodec-full = %version-%release
@ -268,7 +269,7 @@ Provides: libavcodec-full = %version-%release
Provides: libavcodec58(unrestricted)
%endif
%description -n libavcodec58
%description -n libavcodec58suse0
The libavcodec library provides a generic encoding/decoding framework
and contains multiple decoders and encoders for audio, video and
subtitle streams, and several bitstream filters.
@ -284,7 +285,7 @@ Provides: libavcodec-devel = %version-%release
Obsoletes: libavcodec-devel < %version-%release
Requires: %name-libavresample-devel = %version-%release
Requires: %name-libavutil-devel = %version-%release
Requires: libavcodec58 = %version-%release
Requires: libavcodec58suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -295,15 +296,15 @@ subtitle streams, and several bitstream filters.
This subpackage contains the headers for FFmpeg libavcodec.
%package -n libavdevice58
%package -n libavdevice58suse0
Summary: FFmpeg device library
Group: System/Libraries
Requires: libavcodec58 = %version-%release
Requires: libavfilter7 = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavutil56 = %version-%release
Requires: libavcodec58suse0 = %version-%release
Requires: libavfilter7suse0 = %version-%release
Requires: libavformat58suse0 = %version-%release
Requires: libavutil56suse0 = %version-%release
%description -n libavdevice58
%description -n libavdevice58suse0
The libavdevice library provides a generic framework for grabbing from
and rendering to many common multimedia input/output devices, and
supports several input and output devices, including Video4Linux2, VfW,
@ -324,7 +325,7 @@ Requires: %name-libavutil-devel = %version-%release
Requires: %name-libpostproc-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release
Requires: %name-libswscale-devel = %version-%release
Requires: libavdevice58 = %version-%release
Requires: libavdevice58suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -336,18 +337,18 @@ DShow, and ALSA.
This subpackage contains the headers for FFmpeg libavcodec.
%package -n libavfilter7
%package -n libavfilter7suse0
Summary: FFmpeg audio and video filtering library
Group: System/Libraries
Requires: libavcodec58 = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavresample4 = %version-%release
Requires: libavutil56 = %version-%release
Requires: libpostproc55 = %version-%release
Requires: libswresample3 = %version-%release
Requires: libswscale5 = %version-%release
Requires: libavcodec58suse0 = %version-%release
Requires: libavformat58suse0 = %version-%release
Requires: libavresample4suse0 = %version-%release
Requires: libavutil56suse0 = %version-%release
Requires: libpostproc55suse0 = %version-%release
Requires: libswresample3suse0 = %version-%release
Requires: libswscale5suse0 = %version-%release
%description -n libavfilter7
%description -n libavfilter7suse0
The libavfilter library provides a generic audio/video filtering
framework containing several filters, sources and sinks.
@ -363,7 +364,7 @@ Requires: %name-libavutil-devel = %version-%release
Requires: %name-libpostproc-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release
Requires: %name-libswscale-devel = %version-%release
Requires: libavfilter7 = %version-%release
Requires: libavfilter7suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -373,13 +374,13 @@ framework containing several filters, sources and sinks.
This subpackage contains the headers for FFmpeg libavfilter.
%package -n libavformat58
%package -n libavformat58suse0
Summary: FFmpeg's stream format library
Group: System/Libraries
Requires: libavcodec58 = %version-%release
Requires: libavutil56 = %version-%release
Requires: libavcodec58suse0 = %version-%release
Requires: libavutil56suse0 = %version-%release
%description -n libavformat58
%description -n libavformat58suse0
The libavformat library provides a generic framework for multiplexing
and demultiplexing (muxing and demuxing) audio, video and subtitle
streams. It encompasses multiple muxers and demuxers for multimedia
@ -397,7 +398,7 @@ Obsoletes: libavformat-devel < %version-%release
Requires: %name-libavcodec-devel = %version-%release
Requires: %name-libavutil-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release
Requires: libavformat58 = %version-%release
Requires: libavformat58suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -409,12 +410,12 @@ container formats.
This subpackage contains the headers for FFmpeg libavformat.
%package -n libavresample4
%package -n libavresample4suse0
Summary: FFmpeg alternate audio resampling library
Group: System/Libraries
Requires: libavutil56 = %version-%release
Requires: libavutil56suse0 = %version-%release
%description -n libavresample4
%description -n libavresample4suse0
An audio resampling library that is being provided for drop-in
compatibility with libav.
@ -426,7 +427,7 @@ Group: Development/Libraries/C and C++
Provides: libavresample-devel = %version-%release
Obsoletes: libavresample-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release
Requires: libavresample4 = %version-%release
Requires: libavresample4suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -438,11 +439,11 @@ It is advised to use libswresample for new code.
This subpackage contains the headers for FFmpeg's copy of libavresample.
%package -n libavutil56
%package -n libavutil56suse0
Summary: FFmpeg's utility library
Group: System/Libraries
%description -n libavutil56
%description -n libavutil56suse0
The libavutil library is a utility library to aid portable multimedia
programming. It contains safe portable string functions, random
number generators, data structures, additional mathematics functions,
@ -454,7 +455,7 @@ Summary: Development files for FFmpeg's utility library
Group: Development/Libraries/C and C++
Provides: libavutil-devel = %version-%release
Obsoletes: libavutil-devel < %version-%release
Requires: libavutil56 = %version-%release
Requires: libavutil56suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -467,12 +468,12 @@ for pixel and sample formats).
This subpackage contains the headers for FFmpeg libavutil.
%package -n libpostproc55
%package -n libpostproc55suse0
Summary: FFmpeg post-processing library
Group: System/Libraries
Requires: libavutil56 = %version-%release
Requires: libavutil56suse0 = %version-%release
%description -n libpostproc55
%description -n libpostproc55suse0
A library with video postprocessing filters, such as deblocking and
deringing filters, noise reduction, automatic contrast and brightness
correction, linear/cubic interpolating deinterlacing.
@ -483,7 +484,7 @@ Group: Development/Libraries/C and C++
Provides: libpostproc-devel = %version-%release
Obsoletes: libpostproc-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release
Requires: libpostproc55 = %version-%release
Requires: libpostproc55suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -494,12 +495,12 @@ correction, linear/cubic interpolating deinterlacing.
This subpackage contains the headers for FFmpeg libpostproc.
%package -n libswresample3
%package -n libswresample3suse0
Summary: FFmpeg software resampling library
Group: System/Libraries
Requires: libavutil56 = %version-%release
Requires: libavutil56suse0 = %version-%release
%description -n libswresample3
%description -n libswresample3suse0
The libswresample library performs audio conversion between different
sample rates, channel layout and channel formats.
@ -509,7 +510,7 @@ Group: Development/Libraries/C and C++
Provides: libswresample-devel = %version-%release
Obsoletes: libswresample-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release
Requires: libswresample3 = %version-%release
Requires: libswresample3suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -519,12 +520,12 @@ sample rates, channel layout and channel formats.
This subpackage contains the headers for FFmpeg libswresample.
%package -n libswscale5
%package -n libswscale5suse0
Summary: FFmpeg image scaling and colorspace/pixel conversion library
Group: System/Libraries
Requires: libavutil56 = %version-%release
Requires: libavutil56suse0 = %version-%release
%description -n libswscale5
%description -n libswscale5suse0
The libswscale library performs image scaling and colorspace and
pixel format conversion operations.
@ -534,7 +535,7 @@ Group: Development/Libraries/C and C++
Provides: libswscale-devel = %version-%release
Conflicts: libswscale-devel
Requires: %name-libavutil-devel = %version-%release
Requires: libswscale5 = %version-%release
Requires: libswscale5suse0 = %version-%release
%devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected
@ -675,7 +676,7 @@ LDFLAGS="%_lto_cflags" \
%if %{with lv2}
--enable-lv2 \
%endif
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200
%if 0%{?suse_version} >= 1550 || 0%{?xsle_version} >= 150200
%ifarch x86_64
--enable-libmfx \
%endif
@ -746,24 +747,24 @@ for i in libavformat/options_table.h libavformat/os_support.h \
cp -a $i "$b/%_includedir/ffmpeg/private/$i"
done
%post -n libavcodec58 -p /sbin/ldconfig
%postun -n libavcodec58 -p /sbin/ldconfig
%post -n libavdevice58 -p /sbin/ldconfig
%postun -n libavdevice58 -p /sbin/ldconfig
%post -n libavfilter7 -p /sbin/ldconfig
%postun -n libavfilter7 -p /sbin/ldconfig
%post -n libavformat58 -p /sbin/ldconfig
%postun -n libavformat58 -p /sbin/ldconfig
%post -n libavresample4 -p /sbin/ldconfig
%postun -n libavresample4 -p /sbin/ldconfig
%post -n libavutil56 -p /sbin/ldconfig
%postun -n libavutil56 -p /sbin/ldconfig
%post -n libpostproc55 -p /sbin/ldconfig
%postun -n libpostproc55 -p /sbin/ldconfig
%post -n libswresample3 -p /sbin/ldconfig
%postun -n libswresample3 -p /sbin/ldconfig
%post -n libswscale5 -p /sbin/ldconfig
%postun -n libswscale5 -p /sbin/ldconfig
%post -n libavcodec58suse0 -p /sbin/ldconfig
%postun -n libavcodec58suse0 -p /sbin/ldconfig
%post -n libavdevice58suse0 -p /sbin/ldconfig
%postun -n libavdevice58suse0 -p /sbin/ldconfig
%post -n libavfilter7suse0 -p /sbin/ldconfig
%postun -n libavfilter7suse0 -p /sbin/ldconfig
%post -n libavformat58suse0 -p /sbin/ldconfig
%postun -n libavformat58suse0 -p /sbin/ldconfig
%post -n libavresample4suse0 -p /sbin/ldconfig
%postun -n libavresample4suse0 -p /sbin/ldconfig
%post -n libavutil56suse0 -p /sbin/ldconfig
%postun -n libavutil56suse0 -p /sbin/ldconfig
%post -n libpostproc55suse0 -p /sbin/ldconfig
%postun -n libpostproc55suse0 -p /sbin/ldconfig
%post -n libswresample3suse0 -p /sbin/ldconfig
%postun -n libswresample3suse0 -p /sbin/ldconfig
%post -n libswscale5suse0 -p /sbin/ldconfig
%postun -n libswscale5suse0 -p /sbin/ldconfig
%files
%doc Changelog CREDITS README.md
@ -771,39 +772,39 @@ done
%_mandir/man1/ff*.1*
%_datadir/ffmpeg/
%files -n libavcodec58
%files -n libavcodec58suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavcodec.so.*
%files -n libavdevice58
%files -n libavdevice58suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavdevice.so.*
%files -n libavfilter7
%files -n libavfilter7suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavfilter.so.*
%files -n libavformat58
%files -n libavformat58suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavformat.so.*
%files -n libavresample4
%files -n libavresample4suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavresample.so.*
%files -n libavutil56
%files -n libavutil56suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libavutil.so.*
%files -n libpostproc55
%files -n libpostproc55suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libpostproc.so.*
%files -n libswresample3
%files -n libswresample3suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libswresample.so.*
%files -n libswscale5
%files -n libswscale5suse0
%license COPYING.GPLv2 LICENSE.md
%_libdir/libswscale.so.*

41
soversion.patch Normal file
View File

@ -0,0 +1,41 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2020-07-04 23:56:54.411950316 +0200
User frispete wrote on 2020-6-26 22:13+0000 at
https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-4#comment-1257440
: """Unfortunately, this version is binary incompatible to 4.2.3 in some
aspects. Chromium crashes when accessing some sites, e.g.
https://www.xometry.com/ and push the quote button. Blender cannot export PNG
files anymore"""
And indeed:
$ abidiff b42/usr/lib/debug/usr/lib64/libavcodec.so.58.54.100-4.2.3-1.1.x86_64.debug \
b43/usr/lib/debug/usr/lib64/libavcodec.so.58.91.100-4.3-136.2.x86_64.debug
[...] in pointed to type 'struct AVCodecContext' at avcodec.h:526:1:
type size changed from 8448 to 8576 (in bits)
[...]
underlying type 'struct AVDCT' at avdct.h:29:1 changed:
type size changed from 896 to 960 (in bits)
As this struct is made public by way of presenting it in /usr/include,
I conclude: bad upstream, bad upstream!
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: ffmpeg-4.3/configure
===================================================================
--- ffmpeg-4.3.orig/configure
+++ ffmpeg-4.3/configure
@@ -3794,7 +3794,7 @@ SLIBPREF="lib"
SLIBSUF=".so"
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
-SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
+SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)suse0'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'