On 2026/05/06 12:11, Kirill A. Korinsky wrote:
> ports,
>
> I'd like to update graphics/ffmpeg to 8.0.2 (-stable) and 8.1.1
> (-current) after port unlock.
>
> /usr/src/lib/check_sym said "No dynamic export changes" on 8.0.1 ->
> 8.0.2 upgrade with one exception: libavfilter has added new reference
> ``trunc` but I think it not justify any shlib bump.
That tool is meant for investigating changes in libraries in base.
It can be used with other libraries but some of the information that it
provides is not really relevant for bumps in ports.
For the 8.0.2 update:
----
$ diffsyms
/usr/local/lib/libavcodec.so.27.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libavcodec.so.27.1
No dynamic export changes
/usr/local/lib/libavdevice.so.15.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libavdevice.so.15.1
No dynamic export changes
/usr/local/lib/libavfilter.so.13.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libavfilter.so.13.1
No dynamic export changes
External reference changes:
added:
trunc
/usr/local/lib/libavformat.so.24.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libavformat.so.24.1
No dynamic export changes
/usr/local/lib/libavutil.so.17.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libavutil.so.17.1
No dynamic export changes
/usr/local/lib/libswresample.so.6.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libswresample.so.6.1
No dynamic export changes
/usr/local/lib/libswscale.so.9.1 -->
/usr/obj/ports/ffmpeg-8.0.2/fake-amd64//usr/local/lib/libswscale.so.9.1
No dynamic export changes
----
-> "External reference changes" is not of interest here.
Diffing installed headers doesn't show any struct changes etc.
Upstream has macros for their idea of library major/minor versions
in the headers and those have not changed (only micro).
libavutil/bswap.h does not look like an api/abi change.
I agree with no bumps for 8.0.2.
For the 8.1.1 update, there are new exports in:
libavcodec, libavfilter, libavformat, libavutil, libswscale
None of the libraries have removed exports.
Looking at header diffs, everything seems consistent with backwards
compatible additions, i.e. just minor bumps for the libraries with
export changes.
$ diffsyms
/usr/local/lib/libavcodec.so.27.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libavcodec.so.28.0
Dynamic export changes:
added:
av_exif_clone_ifd@@LIBAVCODEC_62
av_exif_free@@LIBAVCODEC_62
av_exif_get_entry@@LIBAVCODEC_62
av_exif_get_tag_id@@LIBAVCODEC_62
av_exif_get_tag_name@@LIBAVCODEC_62
av_exif_ifd_to_dict@@LIBAVCODEC_62
av_exif_matrix_to_orientation@@LIBAVCODEC_62
av_exif_orientation_to_matrix@@LIBAVCODEC_62
av_exif_parse_buffer@@LIBAVCODEC_62
av_exif_remove_entry@@LIBAVCODEC_62
av_exif_set_entry@@LIBAVCODEC_62
av_exif_write@@LIBAVCODEC_62
av_packet_side_data_from_frame@@LIBAVCODEC_62
av_packet_side_data_to_frame@@LIBAVCODEC_62
avcodec_receive_frame_flags@@LIBAVCODEC_62
External reference changes:
added:
aom_img_get_metadata
aom_img_num_metadata
av_alpha_mode_name@LIBAVUTIL_60
av_csp_approximate_eotf_gamma@LIBAVUTIL_60
av_display_rotation_get@LIBAVUTIL_60
av_dynamic_hdr_plus_to_t35@LIBAVUTIL_60
svt_av1_enc_get_stream_info
removed:
av_csp_approximate_trc_gamma@LIBAVUTIL_60
av_dict_copy@LIBAVUTIL_60
/usr/local/lib/libavdevice.so.15.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libavdevice.so.16.0
No dynamic export changes
External reference changes:
added:
malloc
pthread_getspecific
pthread_key_create
pthread_mutex_lock
pthread_mutex_unlock
pthread_once
pthread_setspecific
realloc
/usr/local/lib/libavfilter.so.13.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libavfilter.so.14.0
Dynamic export changes:
added:
av_buffersink_get_alpha_mode@@LIBAVFILTER_11
av_buffersrc_get_status@@LIBAVFILTER_11
External reference changes:
added:
av_alpha_mode_from_name@LIBAVUTIL_60
av_alpha_mode_name@LIBAVUTIL_60
av_bprint_append_data@LIBAVUTIL_60
av_channel_layout_custom_init@LIBAVUTIL_60
fputs
trunc
/usr/local/lib/libavformat.so.24.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libavformat.so.25.0
Dynamic export changes:
added:
av_mime_codec_str@@LIBAVFORMAT_62
avformat_receive_command_reply@@LIBAVFORMAT_62
avformat_send_command@@LIBAVFORMAT_62
External reference changes:
added:
ASN1_INTEGER_set_uint64
av_csp_approximate_eotf_gamma@LIBAVUTIL_60
av_exif_free@LIBAVCODEC_62
av_exif_get_tag_id@LIBAVCODEC_62
av_exif_ifd_to_dict@LIBAVCODEC_62
av_exif_parse_buffer@LIBAVCODEC_62
av_exif_remove_entry@LIBAVCODEC_62
av_exif_write@LIBAVCODEC_62
av_image_fill_plane_sizes@LIBAVUTIL_60
av_opt_find@LIBAVUTIL_60
av_packet_unpack_dictionary@LIBAVCODEC_62
av_pix_fmt_count_planes@LIBAVUTIL_60
xmlEncodeSpecialChars
removed:
ASN1_INTEGER_set
EVP_sha1
av_csp_approximate_trc_gamma@LIBAVUTIL_60
avpriv_exif_decode_ifd@LIBAVCODEC_62
free
/usr/local/lib/libavutil.so.17.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libavutil.so.18.0
Dynamic export changes:
added:
av_alpha_mode_from_name@@LIBAVUTIL_60
av_alpha_mode_name@@LIBAVUTIL_60
av_csp_approximate_eotf_gamma@@LIBAVUTIL_60
/usr/local/lib/libswresample.so.6.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libswresample.so.7.0
No dynamic export changes
/usr/local/lib/libswscale.so.9.1 -->
/usr/obj/ports/ffmpeg-8.1.1/fake-amd64//usr/local/lib/libswscale.so.10.0
Dynamic export changes:
added:
sws_test_hw_format@@LIBSWSCALE_9
External reference changes:
added:
av_buffer_alloc@LIBAVUTIL_60
av_cpu_max_align@LIBAVUTIL_60
av_dynarray2_add@LIBAVUTIL_60
av_image_check_size2@LIBAVUTIL_60
av_image_fill_linesizes@LIBAVUTIL_60
av_image_fill_plane_sizes@LIBAVUTIL_60
av_memdup@LIBAVUTIL_60
av_pix_fmt_count_planes@LIBAVUTIL_60
av_refstruct_alloc_ext_c@LIBAVUTIL_60
av_refstruct_ref@LIBAVUTIL_60
av_refstruct_unref@LIBAVUTIL_60
av_strlcat@LIBAVUTIL_60
av_strlcatf@LIBAVUTIL_60
av_strlcpy@LIBAVUTIL_60
qsort
snprintf