Opened 14 years ago

Closed 13 years ago

#26762 closed defect (fixed)

Missing build dependency on sbcl 1.0.43_0

Reported by: ludwig@… Owned by: easye
Priority: Normal Milestone:
Component: ports Version: 1.9.1
Keywords: texi2dvi build-dependency Cc: gwright@…, waqar@…, easye, luis.beca@…
Port: sbcl

Description

Hi,

my attempted upgrade of sbcl@1.0.42_0+html to 1.0.43_0+html failed due to a missing build dependency on some texlive port. More precisely, I do have texlive installed but not via macports; therefore the build did not find the required texi2dvi.

The sbcl portfile does not declare this dependency and therefore the build failed.

The relevant lines of the build log file are:

:info:build makeinfo -I "docstrings/" -I "../../contrib/" --html --no-split --css-include=style-single.css sbcl.texinfo
:info:build makeinfo --html --no-split --css-include=style-single.css asdf.texinfo
:info:build touch html-stamp
:info:build texi2dvi -p -I "docstrings/" -I "../../contrib/" sbcl.texinfo
:info:build You don't have a working TeX binary (tex) installed anywhere in
:info:build your PATH, and texi2dvi cannot proceed without one.  If you want to use
:info:build this script, you'll need to install TeX (if you don't have it) or change
:info:build your PATH or TEX environment variable (if you do).  See the --help
:info:build output for more details.
:info:build 
:info:build For information about obtaining TeX, please see http://www.tug.org.  If
:info:build you happen to be using Debian, you can get it with this command:
:info:build   apt-get install tetex-bin
:info:build make: *** [sbcl.pdf] Error 1
:info:build shell command "cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_sbcl/work/sbcl-1.0.43/doc; INSTALL_ROOT=/opt/local/var/macports/build/
_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_sbcl/work/destroot/opt/local sh /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lan
g_sbcl/work/sbcl-1.0.43/doc/make-doc.sh" returned error 2
:error:build Target org.macports.build returned: shell command failed
:debug:build Backtrace: shell command failed
    while executing
"$post $targetname"
:info:build Warning: the following items did not execute (for sbcl): org.macports.destroot org.macports.build

Attachments (1)

patch-make-doc.diff (242 bytes) - added by easye 14 years ago.
Patch SBCL to just build HTML documentation

Download all attachments as: .zip

Change History (13)

comment:1 Changed 14 years ago by takanori@…

Try to install port:texinfo. port:texinfo installs texi2dvi so I guess you can avoid this problem.

comment:2 in reply to:  1 ; Changed 14 years ago by voodoochild2006@…

I'm having the same problem, and I have texinfo already installed, and it's still giving the same error. I have two copies texi2dvi, one in /usr/bin one in /opt/local/bin. I also tried to install texlive-bin, thinking that it might setup the correct tex environment for macport. But that didn't work either.

Replying to takanori@…:

Try to install port:texinfo. port:texinfo installs texi2dvi so I guess you can avoid this problem.

comment:3 in reply to:  2 Changed 14 years ago by takanori@…

Replying to voodoochild2006@…:

I'm having the same problem, and I have texinfo already installed, and it's still giving the same error. I have two copies texi2dvi, one in /usr/bin one in /opt/local/bin. I also tried to install texlive-bin, thinking that it might setup the correct tex environment for macport. But that didn't work either.

Ah, really?

I'm using texinfo and port:pTeX (Japanese TeX distribution, based on teTeX) instead of port:texlive, and there is no problem. ;-(

comment:4 Changed 14 years ago by voodoochild2006@…

Got it working with installing texlive instead of texlive-bin. But it's kinda silly when I have MacTeX installed, and it couldn't use it. So I have to uninstall texlive after sbcl is installed. Hope this could be fixed in the future. Previous sbcl compiles fine with out port:texlive installed (maybe they were using texi2dvi?). I hope this could be fixed in the future.

comment:5 Changed 14 years ago by ludwig@…

While I agree with the sentiment that it's undesirable to install a second copy of a huge package like texlive via macports only to satisfy the build requirements of sbcl, I understand the point of the macports developers that they don't want to use software installed by other means - this way the build procedure is much more predictable and reproducible.

My point was that the portfile should declare its build dependencies.

comment:6 Changed 14 years ago by luis.beca@…

Cc: luis.beca@… added

Cc Me!

comment:7 Changed 14 years ago by edward@…

As another option, you can install sbcl like so:

install sbcl -html

and it will avoid hitting the dependency of TeX. You won't get the documentation built locally, but at least the SBCL runtime will get build.

On that note, how many other ports build html documentation by default? Is this common practice, or should this variant really be off by default?

comment:8 in reply to:  7 ; Changed 14 years ago by easye

Owner: changed from macports-tickets@… to easieste@…

Replying to edward@…:

On that note, how many other ports build html documentation by default? Is this common practice, or should this variant really be off by default?

I'm kinda the default maintainer here, although I only added myself after a default timeout from the other listed maintainers. I generally try to keep all the MacPorts Common Lisp implementations and SLIME up to a reasonable date of freshness, but had no hand in writing the original Portfiles other than those for ABCL and SLIME.

For SBCL, it looks like there might be a way *just* to build the html documentation via something like the (to be) attached patch, which should avoid the dependency on the DVI utilities from TeX. Perhaps this is the way to go here, as the PDF doesn't get installed, just built from what I can parse in the Makefile.

Otherwise, I would advocate declaring the correct dependency but demoting +html from the default variant. I'm not sure how this will effect already installed ports.

Thoughts?

Changed 14 years ago by easye

Attachment: patch-make-doc.diff added

Patch SBCL to just build HTML documentation

comment:9 Changed 14 years ago by easye

Preliminary testing shows that the attached patch fails to install any documentation. When I have time over the next few days for sitting through long compiles, I'll refine this approach to see if I can get it to work.

comment:10 in reply to:  8 Changed 14 years ago by ludwig@…

Replying to easieste@…:

For SBCL, it looks like there might be a way *just* to build the html documentation via something like the (to be) attached patch, which should avoid the dependency on the DVI utilities from TeX. Perhaps this is the way to go here, as the PDF doesn't get installed, just built from what I can parse in the Makefile.

Of course, if the TeX dependency is redundant because the artifacts built (directly or indirectly) by TeX are not installed anyway, then this is the best approach.

Otherwise, I would advocate declaring the correct dependency but demoting +html from the default variant. I'm not sure how this will effect already installed ports.

AFAIK, an upgrade does not care whether a variant was explicitly requested or whether it was activated by default. So if texlive (or whatever...) becomes a build dependency of sbcl's +html variant, then this dependency will be resolved on many user's system when they upgrade. It's not nice to hit users with such a large download without forewarning, but I don't see how to avoid it if your approach mentioned above fails.

BTW, it seems the TeX dependency was introduced in the most recent version. I upgraded sbcl whenever an upstream release became available in macports. The previous version was already installed with the default +html variant and I am reasonably sure that -- back then -- I did not have TeX installed via macports either. Perhaps this helps isolating the change that requires TeX.

comment:11 Changed 13 years ago by easye

From r73024 (I'll close in 48 hours if no dissenting reports are heard):

A slight change in variant semantics: the default variant '+html' now only installs the HTML and Info files. The new variant '+pdf' now installs documentation in HTML, PDF, and Info formats while properly declaring dependency on the 'dvips' binary. The epoch remains the same, as we do not wish to cause a reinstallation for users that have successfully installed the port even though we have changed the meaning of the variants.

Port now listed as openmaintainer as I have not heard a peep out of waqar and gwright in over a year.

comment:12 Changed 13 years ago by easye

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.