On Mon, Nov 06, 2023 at 06:04:23PM +0000, Gavin Smith wrote: > On Mon, Nov 06, 2023 at 12:21:40PM +0100, Arsen Arsenović wrote: > > Thanks for the review, I've fixed those up. I'll see about sending it > > upstream in when I have enough time to thoroughly test. > > > > Have a lovely day! > > Thanks for working on this. It seems to me that a customization API > could easily break between releases and is a hard thing to maintain.
https://lists.gnu.org/archive/html/bug-texinfo/2023-11/msg00044.html In this thread, we were discussing an ffmpeg build failure after Texinfo 7.1 was released. Now, after the Texinfo 7.2 release, there has been a report from Slackware users that the ffmpeg build is broken: https://www.linuxquestions.org/questions/slackware-14/texinfo-7-2-looks-to-have-broken-texinfo-convert-html-4175745581/ "texinfo-7.2 looks to have broken Texinfo::Convert::HTML" Seems I can no longer build ffmpeg on -current as the documentation step fails after the texinfo upgrade. Can't locate object method "gdt" via package "Texinfo::Convert::HTML" at ./doc/t2h.pm line 255. make: *** [doc/Makefile:71: doc/ffmpeg.html] Error 25 Can't locate object method "gdt" via package "Texinfo::Convert::HTML" at ./doc/t2h.pm line 255. make: *** [doc/Makefile:71: doc/ffmpeg-scaler.html] Error 25 Can't locate object method "gdt" via package "Texinfo::Convert::HTML" at ./doc/t2h.pm line 255. make: *** [doc/Makefile:71: doc/ffmpeg-utils.html] Error 25 Can't locate object method "gdt" via package "Texinfo::Convert::HTML" at ./doc/t2h.pm line 255. make: *** [doc/Makefile:71: doc/ffmpeg-resampler.html] Error 25 Downgrading to texinfo-7.1.1 restores working behaviour. Andrew. The relevant code in the ffmpeg file t2h.pm seems to be: sub ffmpeg_program_string($) { my $self = shift; if (defined($self->get_conf('PROGRAM')) and $self->get_conf('PROGRAM') ne '' and defined($self->get_conf('PACKAGE_URL'))) { return $self->convert_tree( $self->gdt('This document was generated using @uref{{program_homepage}, @emph{{program}}}.', { 'program_homepage' => $self->get_conf('PACKAGE_URL'), 'program' => $self->get_conf('PROGRAM') })); } else { return $self->convert_tree( $self->gdt('This document was generated automatically.')); } } Evidently the 'gdt' method is no longer defined on the class of $self. I expect the 'gdt' issue would be easy to fix in this case, although it is possible there would be other problems afterwards. Such breakages seem inevitable as extension code could rely on many details of internal texi2any code. The new version of Texinfo is then flagged as responsible for breaking compatibility. This only stays manageable as long as the number of packages relying on the Perl customization API stays low.