aspiers / stow

GNU Stow - mirror of savannah git repository occasionally with more bleeding-edge branches
http://www.gnu.org/s/stow/
GNU General Public License v3.0
650 stars 41 forks source link

remove dependency on unmaintained texi2html #21

Closed aspiers closed 5 years ago

aspiers commented 7 years ago

As originally mentioned in http://lists.gnu.org/archive/html/info-stow/2016-11/msg00004.html:

texi2html is part of the Texinfo source repository but apparently it's no longer maintained and not included in the Texinfo distribution.

Despite that, some distributions do include it within their texinfo packages, e.g. openSUSE, from which you can see that the separate distributions are still available, but have not been updated since 2010.

However there is a partially compatible drop-in replacement which is a simple wrapper around texi2any (also an outdated svn link). Perhaps we need to convert the build process to use that. I have no idea how well it would work right now.

gbpoole commented 5 years ago

May I ask: why is this closed? I tried to build from a Github clone today on an up-to-date CentOS system, and am failing with the following:

> make
[ -d doc ] || mkdir doc # required in vpath mode
rm -f doc/manual-single.html
texi2html --P=. --output=doc/manual-single.html -expandinfo -menu -monolithic -verbose doc/stow.texi
make: texi2html: Command not found
make: *** [doc/manual-single.html] Error 127

Tried to build texi2html and that was its own set of problems. Seems to me that it would be nice if configure caught that texi2html was not present and then didn't try to build the documentation. Alternatively, an option to build without docs would be nice.

aspiers commented 5 years ago

@gbpoole It's not closed 😉 Do you have time to try the replacement which I referenced above?

gbpoole commented 5 years ago

Thanks for the quick response ... and sorry for the delay getting back to you ... been traveling.

I'm getting the following error now:

Live child 0x7f8827d0b780 (doc/manual-single.html) PID 60581
Reaping winning child 0x7f8827d0b780 PID 60581
rm -f doc/manual-single.html
Live child 0x7f8827d0b780 (doc/manual-single.html) PID 60585
Reaping winning child 0x7f8827d0b780 PID 60585
texi2html --P=. --output=doc/manual-single.html -expandinfo -menu -monolithic -verbose doc/stow.texi
Live child 0x7f8827d0b780 (doc/manual-single.html) PID 60587
Unknown option: set-init-variable
Reaping losing child 0x7f8827d0b780 PID 60587
make: *** [doc/manual-single.html] Error 1
Removing child 0x7f8827d0b780 PID 60587 from chain.

I'm using gnutexinfo (https://savannah.gnu.org/projects/texinfo; version 6.6) for my installation of texi2any.

As a work around, I've found that if I just create an an empty executable script in my path called texi2htm (rather than the script you link to above) then it just does nothing and passes that build step, proceeding to completion.

All a bit of a kludgy fix but I guess it can do for now. Cheers.

aspiers commented 5 years ago

I found https://www.gnu.org/software/texinfo/manual/texinfo/html_node/texi2html.html#texi2html which documents the wrapper around texi2any, and I'm working on converting the build to that. In the process I discovered a bug in the wrapper. EDIT: the previous link should work at some point, but either my mail didn't reach the list, or it's stuck in some queue, or the archiver is slower than it claims, so here's a copy of my bug report:

Hi there,

I see that the util/texi2html wrapper around texi2any still uses --set-init-variable:

However it seems that --set-init-variable was changed to --set-customization-variable back in 2012:

so presumably this wrapper was accidentally missed from the change at that point. I would guess that this might also mean that the wrapper is not functioning properly.

There are actually three other mentions of --set-init-variable, revealed by a "git grep set-init-variable":

doc/texi2oldapi.texi:  configuration variables that may be set instead, with @option{--set-init-variable}:
doc/texi2oldapi.texi:overridden by @code{--set-init-variable NO_CSS=1} on the command line.
po/rw.po:#~ "      --set-init-variable VAR=VAL  set configuration variable VAR to "
util/texi2html:exec texi2any --set-init-variable TEXI2HTML=1 "$@"

Regards, Adam