SHA256
1
0
forked from pool/ffmpeg-5

rework work-around-abi-break.patch and put back the original SONAME - instead go with an adjusted symverdef

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-5?expand=0&rev=21
This commit is contained in:
Jan Engelhardt 2022-07-27 21:49:26 +00:00 committed by Git OBS Bridge
parent 506a220017
commit b83adf7e99
4 changed files with 112 additions and 247 deletions

View File

@ -1,112 +0,0 @@
==========================================
abidiff /usr/lib64/libavcodec.so.59.18.100 b/usr/lib64/libavcodec.so.59.37.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 1 Removed, 0 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Removed function symbol not referenced by debug info:
[D] avpriv_h264_has_num_reorder_frames@@LIBAVCODEC_59
==========================================
abidiff /usr/lib64/libavdevice.so.59.4.100 b/usr/lib64/libavdevice.so.59.7.100
==========================================
abidiff /usr/lib64/libavfilter.so.8.24.100 b/usr/lib64/libavfilter.so.8.44.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 1 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Added function symbol not referenced by debug info:
[A] av_buffersink_get_ch_layout@@LIBAVFILTER_8
==========================================
abidiff /usr/lib64/libavformat.so.59.16.100 b/usr/lib64/libavformat.so.59.27.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 1 Added function symbol not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
1 Added function symbol not referenced by debug info:
[A] avio_vprintf@@LIBAVFORMAT_59
==========================================
abidiff /usr/lib64/libavutil.so.57.17.100 b/usr/lib64/libavutil.so.57.28.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 47 Added function symbols not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
47 Added function symbols not referenced by debug info:
[A] av_channel_description@@LIBAVUTIL_57
[A] av_channel_description_bprint@@LIBAVUTIL_57
[A] av_channel_from_string@@LIBAVUTIL_57
[A] av_channel_layout_channel_from_index@@LIBAVUTIL_57
[A] av_channel_layout_channel_from_string@@LIBAVUTIL_57
[A] av_channel_layout_check@@LIBAVUTIL_57
[A] av_channel_layout_compare@@LIBAVUTIL_57
[A] av_channel_layout_copy@@LIBAVUTIL_57
[A] av_channel_layout_default@@LIBAVUTIL_57
[A] av_channel_layout_describe@@LIBAVUTIL_57
[A] av_channel_layout_describe_bprint@@LIBAVUTIL_57
[A] av_channel_layout_from_mask@@LIBAVUTIL_57
[A] av_channel_layout_from_string@@LIBAVUTIL_57
[A] av_channel_layout_index_from_channel@@LIBAVUTIL_57
[A] av_channel_layout_index_from_string@@LIBAVUTIL_57
[A] av_channel_layout_standard@@LIBAVUTIL_57
[A] av_channel_layout_subset@@LIBAVUTIL_57
[A] av_channel_layout_uninit@@LIBAVUTIL_57
[A] av_channel_name@@LIBAVUTIL_57
[A] av_channel_name_bprint@@LIBAVUTIL_57
[A] av_csp_luma_coeffs_from_avcsp@@LIBAVUTIL_57
[A] av_csp_primaries_desc_from_id@@LIBAVUTIL_57
[A] av_csp_primaries_id_from_desc@@LIBAVUTIL_57
[A] av_dynamic_hdr_vivid_alloc@@LIBAVUTIL_57
[A] av_dynamic_hdr_vivid_create_side_data@@LIBAVUTIL_57
[A] av_fifo_alloc2@@LIBAVUTIL_57
[A] av_fifo_auto_grow_limit@@LIBAVUTIL_57
[A] av_fifo_can_read@@LIBAVUTIL_57
[A] av_fifo_can_write@@LIBAVUTIL_57
[A] av_fifo_drain2@@LIBAVUTIL_57
[A] av_fifo_elem_size@@LIBAVUTIL_57
[A] av_fifo_freep2@@LIBAVUTIL_57
[A] av_fifo_grow2@@LIBAVUTIL_57
[A] av_fifo_peek@@LIBAVUTIL_57
[A] av_fifo_peek_to_cb@@LIBAVUTIL_57
[A] av_fifo_read@@LIBAVUTIL_57
[A] av_fifo_read_to_cb@@LIBAVUTIL_57
[A] av_fifo_reset2@@LIBAVUTIL_57
[A] av_fifo_write@@LIBAVUTIL_57
[A] av_fifo_write_from_cb@@LIBAVUTIL_57
[A] av_opt_get_chlayout@@LIBAVUTIL_57
[A] av_opt_set_chlayout@@LIBAVUTIL_57
[A] av_uuid_parse@@LIBAVUTIL_57
[A] av_uuid_parse_range@@LIBAVUTIL_57
[A] av_uuid_unparse@@LIBAVUTIL_57
[A] av_uuid_urn_parse@@LIBAVUTIL_57
[A] avpriv_fopen_utf8@@LIBAVUTIL_57
==========================================
abidiff /usr/lib64/libswresample.so.4.3.100 b/usr/lib64/libswresample.so.4.7.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 0 Removed, 2 Added function symbols not referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referenced by debug info
2 Added function symbols not referenced by debug info:
[A] swr_alloc_set_opts2@@LIBSWRESAMPLE_4
[A] swr_build_matrix2@@LIBSWRESAMPLE_4
==========================================
abidiff /usr/lib64/libswscale.so.6.4.100 b/usr/lib64/libswscale.so.6.7.100
==========================================
abidiff /usr/lib64/libpostproc.so.56.3.100 b/usr/lib64/libpostproc.so.56.6.100
==========================================

View File

@ -1,8 +1,8 @@
libavcodec59_37 libavcodec59
libavdevice59_7 libavdevice59
libavfilter8_44 libavfilter8
libavformat59_27 libavformat59
libavutil57_28 libavutil57
libpostproc56_6 libpostproc56
libswresample4_7 libswresample4
libswscale6_7 libswscale6

View File

@ -91,7 +91,6 @@ Source4: enable_decoders
Source5: enable_encoders Source5: enable_encoders
Source6: ffmpeg-dlopen-headers.tar.xz Source6: ffmpeg-dlopen-headers.tar.xz
Source92: ffmpeg_get_dlopen_headers.sh Source92: ffmpeg_get_dlopen_headers.sh
Source97: abi_break.txt
Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-5.keyring Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-5.keyring
Source99: baselibs.conf Source99: baselibs.conf
@ -222,22 +221,14 @@ Provides: ffmpeg-tools = %version
Obsoletes: ffmpeg-tools < %version Obsoletes: ffmpeg-tools < %version
Provides: ffmpeg = %version Provides: ffmpeg = %version
Obsoletes: ffmpeg < %version Obsoletes: ffmpeg < %version
Requires: libavcodec59_37 = %version-%release Requires: libavcodec59 = %version-%release
Requires: libavdevice59_7 = %version-%release Requires: libavdevice59 = %version-%release
Requires: libavfilter8_44 = %version-%release Requires: libavfilter8 = %version-%release
Requires: libavformat59_27 = %version-%release Requires: libavformat59 = %version-%release
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
Requires: libpostproc56_6 = %version-%release Requires: libpostproc56 = %version-%release
Requires: libswresample4_7 = %version-%release Requires: libswresample4 = %version-%release
Requires: libswscale6_7 = %version-%release Requires: libswscale6 = %version-%release
Conflicts: libavcodec59 < %version
Conflicts: libavdevice59 < %version
Conflicts: libavfilter8 < %version
Conflicts: libavformat59 < %version
Conflicts: libavutil57 < %version
Conflicts: libpostproc56 < %version
Conflicts: libswresample4 < %version
Conflicts: libswresample6 < %version
%description %description
FFmpeg is a multimedia framework, able to decode, encode, FFmpeg is a multimedia framework, able to decode, encode,
@ -248,11 +239,11 @@ that humans and machines have created.
This build of ffmpeg is limited in the number of codecs supported. This build of ffmpeg is limited in the number of codecs supported.
%endif %endif
%package -n libavcodec59_37 %package -n libavcodec59
Summary: FFmpeg codec library Summary: FFmpeg codec library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
Requires: libswresample4_7 = %version-%release Requires: libswresample4 = %version-%release
%if 0%{?BUILD_ORIG} %if 0%{?BUILD_ORIG}
Provides: libavcodec-full = %version-%release Provides: libavcodec-full = %version-%release
# This can be (and is) required by packages like vlc-codecs - # This can be (and is) required by packages like vlc-codecs -
@ -262,7 +253,7 @@ Provides: libavcodec59(unrestricted)
# For mozillas # For mozillas
Provides: libavcodec = %version-%release Provides: libavcodec = %version-%release
%description -n libavcodec59_37 %description -n libavcodec59
The libavcodec library provides a generic encoding/decoding framework The libavcodec library provides a generic encoding/decoding framework
and contains multiple decoders and encoders for audio, video and and contains multiple decoders and encoders for audio, video and
subtitle streams, and several bitstream filters. subtitle streams, and several bitstream filters.
@ -277,7 +268,7 @@ Group: Development/Libraries/C and C++
Provides: libavcodec-devel = %version-%release Provides: libavcodec-devel = %version-%release
Obsoletes: libavcodec-devel < %version-%release Obsoletes: libavcodec-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libavcodec59_37 = %version-%release Requires: libavcodec59 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -288,15 +279,15 @@ subtitle streams, and several bitstream filters.
This subpackage contains the headers for FFmpeg libavcodec. This subpackage contains the headers for FFmpeg libavcodec.
%package -n libavdevice59_7 %package -n libavdevice59
Summary: FFmpeg device library Summary: FFmpeg device library
Group: System/Libraries Group: System/Libraries
Requires: libavcodec59_37 = %version-%release Requires: libavcodec59 = %version-%release
Requires: libavfilter8_44 = %version-%release Requires: libavfilter8 = %version-%release
Requires: libavformat59_27 = %version-%release Requires: libavformat59 = %version-%release
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
%description -n libavdevice59_7 %description -n libavdevice59
The libavdevice library provides a generic framework for grabbing from The libavdevice library provides a generic framework for grabbing from
and rendering to many common multimedia input/output devices, and and rendering to many common multimedia input/output devices, and
supports several input and output devices, including Video4Linux2, VfW, supports several input and output devices, including Video4Linux2, VfW,
@ -316,7 +307,7 @@ Requires: %name-libavutil-devel = %version-%release
Requires: %name-libpostproc-devel = %version-%release Requires: %name-libpostproc-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release Requires: %name-libswresample-devel = %version-%release
Requires: %name-libswscale-devel = %version-%release Requires: %name-libswscale-devel = %version-%release
Requires: libavdevice59_7 = %version-%release Requires: libavdevice59 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -328,17 +319,17 @@ DShow, and ALSA.
This subpackage contains the headers for FFmpeg libavcodec. This subpackage contains the headers for FFmpeg libavcodec.
%package -n libavfilter8_44 %package -n libavfilter8
Summary: FFmpeg audio and video filtering library Summary: FFmpeg audio and video filtering library
Group: System/Libraries Group: System/Libraries
Requires: libavcodec59_37 = %version-%release Requires: libavcodec59 = %version-%release
Requires: libavformat59_27 = %version-%release Requires: libavformat59 = %version-%release
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
Requires: libpostproc56_6 = %version-%release Requires: libpostproc56 = %version-%release
Requires: libswresample4_7 = %version-%release Requires: libswresample4 = %version-%release
Requires: libswscale6_7 = %version-%release Requires: libswscale6 = %version-%release
%description -n libavfilter8_44 %description -n libavfilter8
The libavfilter library provides a generic audio/video filtering The libavfilter library provides a generic audio/video filtering
framework containing several filters, sources and sinks. framework containing several filters, sources and sinks.
@ -353,7 +344,7 @@ Requires: %name-libavutil-devel = %version-%release
Requires: %name-libpostproc-devel = %version-%release Requires: %name-libpostproc-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release Requires: %name-libswresample-devel = %version-%release
Requires: %name-libswscale-devel = %version-%release Requires: %name-libswscale-devel = %version-%release
Requires: libavfilter8_44 = %version-%release Requires: libavfilter8 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -363,13 +354,13 @@ framework containing several filters, sources and sinks.
This subpackage contains the headers for FFmpeg libavfilter. This subpackage contains the headers for FFmpeg libavfilter.
%package -n libavformat59_27 %package -n libavformat59
Summary: FFmpeg's stream format library Summary: FFmpeg's stream format library
Group: System/Libraries Group: System/Libraries
Requires: libavcodec59_37 = %version-%release Requires: libavcodec59 = %version-%release
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
%description -n libavformat59_27 %description -n libavformat59
The libavformat library provides a generic framework for multiplexing The libavformat library provides a generic framework for multiplexing
and demultiplexing (muxing and demuxing) audio, video and subtitle and demultiplexing (muxing and demuxing) audio, video and subtitle
streams. It encompasses multiple muxers and demuxers for multimedia streams. It encompasses multiple muxers and demuxers for multimedia
@ -387,7 +378,7 @@ Obsoletes: libavformat-devel < %version-%release
Requires: %name-libavcodec-devel = %version-%release Requires: %name-libavcodec-devel = %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: %name-libswresample-devel = %version-%release Requires: %name-libswresample-devel = %version-%release
Requires: libavformat59_27 = %version-%release Requires: libavformat59 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -399,11 +390,11 @@ container formats.
This subpackage contains the headers for FFmpeg libavformat. This subpackage contains the headers for FFmpeg libavformat.
%package -n libavutil57_28 %package -n libavutil57
Summary: FFmpeg's utility library Summary: FFmpeg's utility library
Group: System/Libraries Group: System/Libraries
%description -n libavutil57_28 %description -n libavutil57
The libavutil library is a utility library to aid portable multimedia The libavutil library is a utility library to aid portable multimedia
programming. It contains safe portable string functions, random programming. It contains safe portable string functions, random
number generators, data structures, additional mathematics functions, number generators, data structures, additional mathematics functions,
@ -415,7 +406,7 @@ Summary: Development files for FFmpeg's utility library
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Provides: libavutil-devel = %version-%release Provides: libavutil-devel = %version-%release
Obsoletes: libavutil-devel < %version-%release Obsoletes: libavutil-devel < %version-%release
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -428,12 +419,12 @@ for pixel and sample formats).
This subpackage contains the headers for FFmpeg libavutil. This subpackage contains the headers for FFmpeg libavutil.
%package -n libpostproc56_6 %package -n libpostproc56
Summary: FFmpeg post-processing library Summary: FFmpeg post-processing library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
%description -n libpostproc56_6 %description -n libpostproc56
A library with video postprocessing filters, such as deblocking and A library with video postprocessing filters, such as deblocking and
deringing filters, noise reduction, automatic contrast and brightness deringing filters, noise reduction, automatic contrast and brightness
correction, linear/cubic interpolating deinterlacing. correction, linear/cubic interpolating deinterlacing.
@ -444,7 +435,7 @@ Group: Development/Libraries/C and C++
Provides: libpostproc-devel = %version-%release Provides: libpostproc-devel = %version-%release
Obsoletes: libpostproc-devel < %version-%release Obsoletes: libpostproc-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libpostproc56_6 = %version-%release Requires: libpostproc56 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -455,12 +446,12 @@ correction, linear/cubic interpolating deinterlacing.
This subpackage contains the headers for FFmpeg libpostproc. This subpackage contains the headers for FFmpeg libpostproc.
%package -n libswresample4_7 %package -n libswresample4
Summary: FFmpeg software resampling library Summary: FFmpeg software resampling library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
%description -n libswresample4_7 %description -n libswresample4
The libswresample library performs audio conversion between different The libswresample library performs audio conversion between different
sample rates, channel layout and channel formats. sample rates, channel layout and channel formats.
@ -470,7 +461,7 @@ Group: Development/Libraries/C and C++
Provides: libswresample-devel = %version-%release Provides: libswresample-devel = %version-%release
Obsoletes: libswresample-devel < %version-%release Obsoletes: libswresample-devel < %version-%release
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libswresample4_7 = %version-%release Requires: libswresample4 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -480,12 +471,12 @@ sample rates, channel layout and channel formats.
This subpackage contains the headers for FFmpeg libswresample. This subpackage contains the headers for FFmpeg libswresample.
%package -n libswscale6_7 %package -n libswscale6
Summary: FFmpeg image scaling and colorspace/pixel conversion library Summary: FFmpeg image scaling and colorspace/pixel conversion library
Group: System/Libraries Group: System/Libraries
Requires: libavutil57_28 = %version-%release Requires: libavutil57 = %version-%release
%description -n libswscale6_7 %description -n libswscale6
The libswscale library performs image scaling and colorspace and The libswscale library performs image scaling and colorspace and
pixel format conversion operations. pixel format conversion operations.
@ -495,7 +486,7 @@ Group: Development/Libraries/C and C++
Provides: libswscale-devel = %version-%release Provides: libswscale-devel = %version-%release
Conflicts: libswscale-devel Conflicts: libswscale-devel
Requires: %name-libavutil-devel = %version-%release Requires: %name-libavutil-devel = %version-%release
Requires: libswscale6_7 = %version-%release Requires: libswscale6 = %version-%release
%devel_conflicts -c < -v %_major_version %devel_conflicts -c < -v %_major_version
%devel_conflicts -c >= -v %_major_expected %devel_conflicts -c >= -v %_major_expected
@ -703,68 +694,60 @@ for i in libavformat/options_table.h libavformat/os_support.h \
cp -a $i "$b/%_includedir/ffmpeg/private/$i" cp -a $i "$b/%_includedir/ffmpeg/private/$i"
done done
%post -n libavcodec59_37 -p /sbin/ldconfig %post -n libavcodec59 -p /sbin/ldconfig
%postun -n libavcodec59_37 -p /sbin/ldconfig %postun -n libavcodec59 -p /sbin/ldconfig
%post -n libavdevice59_7 -p /sbin/ldconfig %post -n libavdevice59 -p /sbin/ldconfig
%postun -n libavdevice59_7 -p /sbin/ldconfig %postun -n libavdevice59 -p /sbin/ldconfig
%post -n libavfilter8_44 -p /sbin/ldconfig %post -n libavfilter8 -p /sbin/ldconfig
%postun -n libavfilter8_44 -p /sbin/ldconfig %postun -n libavfilter8 -p /sbin/ldconfig
%post -n libavformat59_27 -p /sbin/ldconfig %post -n libavformat59 -p /sbin/ldconfig
%postun -n libavformat59_27 -p /sbin/ldconfig %postun -n libavformat59 -p /sbin/ldconfig
%post -n libavutil57_28 -p /sbin/ldconfig %post -n libavutil57 -p /sbin/ldconfig
%postun -n libavutil57_28 -p /sbin/ldconfig %postun -n libavutil57 -p /sbin/ldconfig
%post -n libpostproc56_6 -p /sbin/ldconfig %post -n libpostproc56 -p /sbin/ldconfig
%postun -n libpostproc56_6 -p /sbin/ldconfig %postun -n libpostproc56 -p /sbin/ldconfig
%post -n libswresample4_7 -p /sbin/ldconfig %post -n libswresample4 -p /sbin/ldconfig
%postun -n libswresample4_7 -p /sbin/ldconfig %postun -n libswresample4 -p /sbin/ldconfig
%post -n libswscale6_7 -p /sbin/ldconfig %post -n libswscale6 -p /sbin/ldconfig
%postun -n libswscale6_7 -p /sbin/ldconfig %postun -n libswscale6 -p /sbin/ldconfig
%files %files
%doc Changelog CREDITS README.md %doc Changelog CREDITS README.md
%_bindir/* %_bindir/*
%_mandir/man1/ff*.1* %_mandir/man1/ff*.1*
%_datadir/ffmpeg/ %_datadir/ffmpeg/
%_libdir/libavcodec.so.59
%_libdir/libavdevice.so.59
%_libdir/libavfilter.so.8
%_libdir/libavformat.so.59
%_libdir/libavutil.so.57
%_libdir/libpostproc.so.56
%_libdir/libswresample.so.4
%_libdir/libswscale.so.6
%files -n libavcodec59_37 %files -n libavcodec59
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavcodec.so.59.* %_libdir/libavcodec.so.*
%files -n libavdevice59_7 %files -n libavdevice59
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavdevice.so.59.* %_libdir/libavdevice.so.*
%files -n libavfilter8_44 %files -n libavfilter8
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavfilter.so.8.* %_libdir/libavfilter.so.*
%files -n libavformat59_27 %files -n libavformat59
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavformat.so.59.* %_libdir/libavformat.so.*
%files -n libavutil57_28 %files -n libavutil57
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libavutil.so.57.* %_libdir/libavutil.so.*
%files -n libpostproc56_6 %files -n libpostproc56
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libpostproc.so.56.* %_libdir/libpostproc.so.*
%files -n libswresample4_7 %files -n libswresample4
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libswresample.so.4.* %_libdir/libswresample.so.*
%files -n libswscale6_7 %files -n libswscale6
%license COPYING.GPLv2 LICENSE.md %license COPYING.GPLv2 LICENSE.md
%_libdir/libswscale.so.6.* %_libdir/libswscale.so.*
%files libavcodec-devel %files libavcodec-devel
%dir %_includedir/ffmpeg/ %dir %_includedir/ffmpeg/

View File

@ -10,18 +10,12 @@ aspects. [...]"""
Further discussion on the mailing list explored this topic, and Further discussion on the mailing list explored this topic, and
revealed that ELF symbol versioning is lacklusterly implemented in revealed that ELF symbol versioning is lacklusterly implemented in
ffmpeg, which can cause inadvertent mixing of library versions on ffmpeg, which can cause inadvertent mixing of library versions on
openSUSE, and precompiled Linux distributions in general. It is openSUSE, and precompiled Linux distributions in general.
unclear when upstream will have implemented a solution. Until then,
we will need to tighten the requirements between packages, to which
end we stretch the SOVERSION to include MINOR.
Programs linking to libavcodec get the right DT_NEEDED field with value Upstream says "we only add new functions" - which is ok in its own
libavcodec.so.58.91, and so they do not request libavcodec.so.58 (which could right. verdefs, if you have them, *must*not* change under any
potentially lead to libavcodec.so.58.54). circumstances, but that is what they broke: the set of symbols
Programs dlopening libavcodec.so.58 will get something random, that's included in the "LIBAVFORMAT_59" verdef changed between 5.0 and 5.1.
what dlopening programs have to deal with.
[2022-07-23: ffmpeg is at it again! Reinstate the patch.
$ abidiff abidiff /usr/lib64/libavformat.so.59.16.100 usr/lib64/libavformat.so.59.27.100 $ abidiff abidiff /usr/lib64/libavformat.so.59.16.100 usr/lib64/libavformat.so.59.27.100
Functions changes summary: 0 Removed, 0 Changed, 0 Added function Functions changes summary: 0 Removed, 0 Changed, 0 Added function
@ -35,24 +29,24 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen
] ]
--- Henceforth, we're changing the .v files such that the symbol set in
configure | 4 ++-- any one verdef we will ever emit is never modified in future
1 file changed, 2 insertions(+), 2 deletions(-) releases.
Index: ffmpeg-4.4.1/configure ---
ffbuild/library.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: ffmpeg-5.1/ffbuild/library.mak
=================================================================== ===================================================================
--- ffmpeg-4.4.1.orig/configure --- ffmpeg-5.1.orig/ffbuild/library.mak
+++ ffmpeg-4.4.1/configure +++ ffmpeg-5.1/ffbuild/library.mak
@@ -3834,10 +3834,10 @@ SLIBPREF="lib" @@ -59,7 +59,7 @@ $(SUBDIR)lib$(FULLNAME).pc: $(SUBDIR)ver
SLIBSUF=".so" $$(M) $$(SRC_PATH)/ffbuild/pkgconfig_generate.sh $(NAME) "$(DESC)"
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
-SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
+SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
-SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
+SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME) $(SLIBNAME).$(LIBMAJOR)'
VERSION_SCRIPT_POSTPROCESS_CMD="cat"
asflags_filter=echo $(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS)
- $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
+ $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR).$(lib$(NAME)_VERSION_MINOR)_SUSE/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)