Opened 14 years ago
Closed 14 years ago
#25360 closed defect (fixed)
sane-backends 1.0.21 fails to build, can't find tclIndex
Reported by: | swebster@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | aguynamedryan+sane@…, sck-nogas (Scott C. Kennedy), dershow, ryandesign (Ryan Carsten Schmidt) | |
Port: | sane-backends |
Description
sane-backends 1.0.21 fails to build. Error seems to be:
<snip a bunch more manpage generations> Generating manpage sane-matsushita.5... Generating manpage sane-microtek.5... Generating manpage sane-microtek2.5... make[1]: *** [sane.ind] Error 1 make[1]: *** Waiting for unfinished jobs.... Generating manpage sane-mustek.5... make: *** [all-recursive] Error 1 shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_sane-backends/work/sane-backends-1.0.21" && /usr/bin/make -j2 all " returned error 2 Error: Target org.macports.build returned: shell command failed DEBUG: Backtrace: shell command failed while executing "command_exec build" (procedure "portbuild::build_main" line 8) invoked from within "$procedure $targetname" DEBUG: couldn't open "/System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/tclIndex": no such file or directory while executing "open [file join $dir tclIndex]" Warning: the following items did not execute (for sane-backends): org.macports.destroot org.macports.build Log for sane-backends is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_sane-backends/main.log Error: Unable to upgrade port: 1 To report a bug, see <http://guide.macports.org/#project.tickets>
Weird. Debug log attached. Same tclIndex error on #25204 but no-one discussed this so maybe I'm on the wrong track.
Attachments (7)
Change History (18)
Changed 14 years ago by swebster@…
Attachment: | sane-backends-debug.txt added |
---|
comment:2 Changed 14 years ago by sck-nogas (Scott C. Kennedy)
I got a different but similar error...
Generating manpage sane-as6e.5... Generating manpage sane-dll.5... Generating manpage sane-dc25.5... make[1]: *** [sane.ind] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [all-recursive] Error 1 shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_sane-backends/work/sane-backends-1.0.21" && /usr/bin/make -j2 all " returned error 2 Error: Target org.macports.build returned: shell command failed DEBUG: Backtrace: shell command failed while executing "command_exec build" (procedure "portbuild::build_main" line 8) invoked from within "$procedure $targetname" Warning: the following items did not execute (for sane-backends): org.macports.activate org.macports.build org.macports.destroot org.macports.install Log for sane-backends is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_sane-backends/main.log Error: Status 1 encountered during processing. To report a bug, see <http://guide.macports.org/#project.tickets>
comment:4 Changed 14 years ago by aguynamedryan+macports@…
Replying to swebster@…:
swebster: It looks like you have Latex installed on your system whereas I did not when I updated and tested the Portfile. The presence of Latex causes the doc/Makefile to build additional documentation files that my system did not build. The failure seems to be occurring when macports tries to build these additional files.
Please send me your output for 'port list installed' so I can see what latex packages you have installed. I'll try to install those on my system and attempt to rebuild sane-backends. Hopefully I'll get the same error and be able to track down the failure.
Thanks.
Changed 14 years ago by sck-nogas (Scott C. Kennedy)
Attachment: | installed_ports added |
---|
My Port installed.
Changed 14 years ago by swebster@…
Attachment: | installed.txt added |
---|
Output of "port installed" -- updated since this shows what is active
comment:5 Changed 14 years ago by aguynamedryan+macports@…
Thanks swebster and sck! That helped quite a bit. I should have been smarter and asked for the output of "port provides /opt/local/bin/latex" as that's what I really needed.
Anyway, I believe I've tracked down the issue. If you aren't interested in the cause, skip this comment as I'll be posting my proposed solution in the next comment.
A change introduced in git commit 79086e770e310ae04ad245546b341d61b9c9cb32 of sane-backends causes sane-backends to build a sane.ps file if the latex program is present on the system. sane-backends will try to make a sane.ps file which relies on sane.dvi which relies on sane.ind which runs the 'latex' and 'makeindex' programs on the doc/sane.tex file.
The sane.tex file uses the 'changebar' and 'html' packages. Even after installing a large portion of the texlive ports, I don't have those package files for latex installed and latex generates an error when it can't find the 'changebar.sty' or 'html.sty' files. As a result, the build of sane-backends fails.
Changed 14 years ago by aguynamedryan+macports@…
Attachment: | Portfile.diff added |
---|
Patch to apply new patches to makefiles and bump revision to 1
Changed 14 years ago by aguynamedryan+macports@…
Attachment: | patch-doc-Makefile_am.diff added |
---|
Removes sane.ps as a build step
Changed 14 years ago by aguynamedryan+macports@…
Attachment: | patch-doc-Makefile_in.diff added |
---|
Also removes sane.ps as a build step
comment:6 Changed 14 years ago by aguynamedryan+macports@…
While we could track down which ports provide the 'changebar.sty' and 'html.sty' files for latex and make sane-backends depend on them, I think that approach would be overkill. latex has its own sizeable set of dependencies and is only used to generate the sane.ps file, a document that is now over 4 years old and available on the web in other formats such as http://www.sane-project.org/html/
Instead, I've developed a set of patches that remove the step to build sane.ps
After applying these patches, I was once again able to build sane-backends cleanly on my system.
comment:7 Changed 14 years ago by swebster@…
I applied (only) the patch to Makefile.in and it built successfully for me too. I don't think we technically NEED the patch to Makefile.am since by the time we get the distfile it has already been processed by automake to generate Makefile.in. But perhaps patching it too is ok or nice since it would then enable people who are goofing around and re-doing the automake stuff to not run into this problem. By the way I think html.sty is in the latex2html package. There is a "changebar" latex package, but I'm not sure if it is contained in any larger release or anything in macports.
comment:8 Changed 14 years ago by swebster@…
Also, while I am fine with not getting this sane.ps file, your reasoning that we should not install extra packages just to generate something like this may not be "the macports way." For instance, I don't even have a scanner... the only reason I am installing xsane and the backends is because it is a dependency of gimp :) But I'm not an expert on such things. I guess this is a bit different, since scanning in gimp is important to some people and so it is enabled by default since disk space is cheap. Maybe so few people will care about sane.ps that it isn't worth the bother. You could probably debate on macports-dev if you wanted.
Changed 14 years ago by aguynamedryan+macports@…
Attachment: | Portfile.2.diff added |
---|
Now just passing --disable-latex to configure.args
comment:9 follow-up: 12 Changed 14 years ago by aguynamedryan+macports@…
I'm an idiot! We don't need the Makefile patches at all! We just have to pass the --diable-latex option to configure. I've updated my Portfile diff to reflect this much simpler approach.
Use Portfile.2.diff please and disregard the Portfile.diff and patch files. Thanks!
comment:11 Changed 14 years ago by swebster@…
I haven't tested your Portfile (mostly because I'm in the midst of building gcc43 and gcc44) but it looks like you've figured out the problem. If you wanted the practice you could make a latex variant to sane-backends that installs everything. Probably you would need to add deps on latex2html and texlive-latex-extra (which contains changebar) but this would pull in a whole bunch of latex stuff for people who don't already have it.
comment:12 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Replying to aguynamedryan+macports@…:
Please send me your output for 'port list installed'
"port list installed" is almost never what you want; see the FAQ for why.
Replying to aguynamedryan+macports@…:
Use Portfile.2.diff please and disregard the Portfile.diff and patch files.
I've committed this in r69045.
output of: sudo port -d upgrade -u sane-backends