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)

sane-backends-debug.txt (293.8 KB) - added by swebster@… 14 years ago.
output of: sudo port -d upgrade -u sane-backends
installed_ports (14.1 KB) - added by sck-nogas (Scott C. Kennedy) 14 years ago.
My Port installed.
installed.txt (9.1 KB) - added by swebster@… 14 years ago.
Output of "port installed" -- updated since this shows what is active
Portfile.diff (741 bytes) - added by aguynamedryan+macports@… 14 years ago.
Patch to apply new patches to makefiles and bump revision to 1
patch-doc-Makefile_am.diff (235 bytes) - added by aguynamedryan+macports@… 14 years ago.
Removes sane.ps as a build step
patch-doc-Makefile_in.diff (420 bytes) - added by aguynamedryan+macports@… 14 years ago.
Also removes sane.ps as a build step
Portfile.2.diff (685 bytes) - added by aguynamedryan+macports@… 14 years ago.
Now just passing --disable-latex to configure.args

Download all attachments as: .zip

Change History (18)

Changed 14 years ago by swebster@…

Attachment: sane-backends-debug.txt added

output of: sudo port -d upgrade -u sane-backends

comment:1 Changed 14 years ago by sck-nogas (Scott C. Kennedy)

Cc: sck@… added

Cc Me!

comment:2 in reply to:  description 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 in reply to:  description 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 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:10 Changed 14 years ago by dershow

Cc: dersh@… added

Cc Me!

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 in reply to:  9 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added
Resolution: fixed
Status: newclosed

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.

Note: See TracTickets for help on using tickets.