Hi,
ICU is an internationalisation library which can be used by libxml2. However, as of ICU >=59, it
made a breaking change to the API. While avidemux-2.5.6 doesn't directly use ICU, it does use libxml2, which uses ICU.
libxml2 itself builds fine, but trying to compile avidemux-2.5.6 now results in errors such as these:
In file included from /usr/include/unicode/utypes.h:39:0,
from /usr/include/unicode/ucnv_err.h:88,
from /usr/include/unicode/ucnv.h:52,
from /usr/include/libxml2/libxml/encoding.h:31,
from /usr/include/libxml2/libxml/parser.h:810,
from /usr/include/libxml2/libxml/globals.h:18,
from /usr/include/libxml2/libxml/threads.h:35,
from /usr/include/libxml2/libxml/xmlmemory.h:218,
from /usr/include/libxml2/libxml/tree.h:1307,
from /var/tmp/portage/media-video/avidemux-2.5.6-r2/work/avidemux_2.5.6/avidemux/ADM_filter/filter_saveload.cpp:24:
/usr/include/unicode/uversion.h:167:55: error: ‘UChar’ does not name a type
u_versionFromUString(UVersionInfo versionArray, const UChar *versionString);
(Note: Gentoo removed avidemux-2.5.6 from their repository some time ago, but I'm maintaining a local copy in my overlay as I find the frame-based method of working very useful.)
The workaround for this (on source-based distros such as Gentoo, at least) is to compile libxml2 without ICU. avidemux-2.5.6 will then build successfully.
Unfortunately I can't tell what the proper fix for this is, and even if I could, I imagine the avidemux 2.5.6 code base isn't being maintained, right?
Just in case I need to migrate in the future, can anyone recommend a good editor on Linux that does what avidemux does? (Knowing exact frames is very useful as I often need to do work which involves exact cuts.)