Bug #1021

media-libs/gegl-0.2.0-r2 для media-gfx/gimp-2.8.22 имеет неявную ошибку при сборке с современным ffmpeg

Added by Фёдор Ратиев over 6 years ago. Updated over 6 years ago.

Status:Feedback Start:09/12/2017
Priority:High Due date:
Assignee:- % Done:

0%

Category:Desktop Spent time: -
Target version:-
Votes: 0

Description

>>> Messages generated by process 31472 on 2017-09-12 03:04:41 MSK for package media-libs/gegl-0.2.0-r2:

QA: other
QA Notice: Package triggers severe warnings which indicate that it
           may exhibit random runtime failures.
ff-load.c:324:23: warning: implicit declaration of function ‘avcodec_alloc_frame’ [-Wimplicit-function-declaration]
Please do not file a Gentoo bug and instead report the above QA
issues directly to the upstream developers of this software.
Homepage: http://www.gegl.org/

Дело в том, что в ffmpeg-3.3.3/doc/APIchanges в строке 983 есть запись:
2013-12-11 - 29c83d2 / b9fb59d,409a143 / 9431356,44967ab / d7b3ee9 - lavc 55.45.101 / 55.28.1 - avcodec.h
  av_frame_alloc(), av_frame_unref() and av_frame_free() now can and should be
  used instead of avcodec_alloc_frame(), avcodec_get_frame_defaults() and
  avcodec_free_frame() respectively. The latter three functions are deprecated.

Где дропнули deprecated я не выяснял.

Предистория:
Я запустил svg изображение с xfce-terminal через exo-open, оно открылось в gimp, но я обратил внимание на вывод в консоли. Там было написано, что /usr/lib64/gegl-0.2/ff-load.so undefined reference avcodec_alloc_frame.
Так как gegl и gimp и много чего ещё собрано у меня с LTO, я решил разобраться. Гугл дал мне ссылку на https://bugs.archlinux.org/task/48463. Там я нашёл патч для gegl с заменой avcodec_alloc_frame на av_frame_alloc. После применения патча через /etc/portage/patches + /etc/portage/bashrc QA перестал выдавать предупреждение и запуск gimp из консоли тоже перестал писать /usr/lib64/gegl-0.2/ff-load.so undefined reference avcodec_alloc_frame.
Просьба, если кто-нибудь зарегестрирован на gentoo.org и хорошо владеет английским, пересказать им суть ошибки и передать патч.

0001-use-av_frame_alloc-instead-of-avcodec_alloc_frame.patch - diff между gegl-0.2.0-orig и после применения патча (955 Bytes) Фёдор Ратиев, 09/12/2017 05:05 pm

History

Updated by Фёдор Ратиев over 6 years ago

Также я искал в распакованных исходниках gegl через double commander - avcodec_free_frame, av_frame_unref, av_frame_free, avcodec_free_frame, но, ничего не нашёл.

Updated by Фёдор Ратиев over 6 years ago

Прошу прощения, запамятовал. Ошибка была такая:

GEGL-geglmodule.c-Message: Module '/usr/lib/gegl-0.2/ff-load.so' load error: /usr/lib/gegl-0.2/ff-load.so: undefined symbol: avcodec_alloc_frame

Updated by Alexander Tratsevskiy over 6 years ago

  • Status changed from New to Feedback

Может ошибку следует переадресовать мантейнеру пакета в https://bugs.gentoo.org, чтобы в Gentoo её так же устранили?

Also available in: Atom PDF

Thank you!