On Sat, Oct 10, 2026 at 11:39:38AM +0100, Gavin Smith wrote:
> One possiblity is to detect when texi2any is built and build a restricted
> version if there is no embedded Perl available.  texi2any could give an
> error message if certain features are requested (e.g. if the output format
> isn't supported).

This is more or less what is done currently with texistatic.  Indeed, it
is build even if there is no embedded Perl nor XS.  It is not always
built when it could, though, only if the --enable-additional-checks
option is passed to configure.  Changing the Makefile.am such that it is
built automatically would be very easy.

An example of use:

 $ rm simplest.info
 $ ./texistatic ../perl/t/input_files/simplest.texi 
 $ ls simplest.info

texistatic, or ctexi2any run without Perl embedding, give errors or warning
messages for missing features:

 $ ./texistatic --docbook  ../perl/t/input_files/simplest.texi
 ERROR: no interpreter for Texinfo::Convert::DocBook

For init files it is a warning:

 $ export TEXINFO_C_EMBED_PERL=0
 $ ./ctexi2any --html --init ../perl/init/book.pm 
../perl/t/input_files/simplest.texi 
 WARNING: no interpreter, cannot load: ../perl/init/book.pm
 simplest.texi: warning: must specify a title with a title command or @top

> It may be that demanding the requirements for an embedded Perl interpreter
> is not onerous but we could check why some distributions didn't have these
> dependencies installed by default.

It is not our job, I think.  Users are supposed to install the
dependencies.  libperl is such a dependency for a normally functionning
ctexi2any command, users should install libperl.  I surmise that it is
never complicated, if someone installs from source, libperl will be
there, if not, there will be a package already present to install
libperl.  Embedding a Perl interpreter is not common, but texi2any
cannot be the only software embedding a Perl interpreter.

And advanced users who want a command without libperl can manage to
have texistatic compiled and install the program as texi2any.  Maybe
with more documentation, but until now this was not something we pushed
forward (I actually almost decided to remove completly texistatic,
I only kept it because it is handy to find missing replacement functions
for functions calling Perl functions from C when compiling).

-- 
Pat

Reply via email to