Closed dandrake closed 14 years ago
Author: Dan Drake
Work Issues: portability issues in spkg-check
Could you modify the file spkg-check
to conform to the portability issues at #8255? For example, the following line in spkg-check
is not recommended:
if [ "$(which latex)" -a "$(kpsewhich tkz-berge.sty)" ]
Replying to @sagetrac-mvngu:
Could you modify the file
spkg-check
to conform to the portability issues at #8255?
I'm guessing you didn't mean to refer to this ticket... :)
Replying to @dandrake:
I'm guessing you didn't mean to refer to this ticket... :)
Let's pretend I was referring to #7632 :-)
Changed work issues from portability issues in spkg-check to none
Thanks for the link. Ironically, I put in "-a" in an effort to be more portable...thanks for setting me straight. I've replaced the spkg with an updated one. Please review.
I had something like this in mind:
diff -r 2d39ee3a7530 -r e739e330a66a spkg-check
--- a/spkg-check
+++ b/spkg-check
@@ -29,8 +29,7 @@
fi
}
-if [ "$(which latex)" && "$(kpsewhich tkz-berge.sty)" ]
-then
+if [ "$(which latex)" ] && [ "$(kpsewhich tkz-berge.sty)" ]; then
cd src
typeset example.tex
It would be good if the ticket number is referenced in the hg log.
Okay, fixed. New version reflects your suggestions.
BTW, how did you get that diff in your comment?
Replying to @dandrake:
BTW, how did you get that diff in your comment?
See the Wiki Processors section.
spkg-check tests whether latex is present, and then it actually runs pdflatex. I suppose that anyone who has latex will have pdflatex also, but I think this should be fixed anyway: if latex is not found, sage-check exits gracefully, but in the unlikely event that latex is found but pdflatex isn't, then I get
Running the test suite.
./spkg-check: line 10: pdflatex: command not found
Error typesetting example.tex! To fully test SageTeX, make sure
LaTeX can find sagetex.sty, and that TikZ (version 2.00
or newer), tkz-berge.sty and tkz-graph.sty is installed.
*************************************
Error testing package ** sagetex-2.2.3.p0 **
*************************************
Can we run latex instead of pdflatex? Otherwise, change "which latex" to "which pdflatex", and maybe change the error message from "LaTeX isn't installed" to "PDFLaTeX isn't installed"?
Also, something is wrong with the shell script on Solaris but I don't know what. If I log into t2.math.washington.edu and try installing with SAGE_CHECK equal to 1, then I get the bad error message even though latex is not found. Maybe this is because on many systems, 'which latex' produces nothing if latex isn't found, but on t2, 'which latex' does this:
$ which latex
no latex in /usr/local/gcc-4.4.1-sun-linker/bin /usr/local/bin2 /usr/bin /usr/ccs/bin /usr/local/bin /usr/sfw/bin /bin /usr/sbin
Replying to @jhpalmieri:
spkg-check tests whether latex is present, and then it actually runs pdflatex. I suppose that anyone who has latex will have pdflatex also, but I think this should be fixed anyway:
In TeXLive (and teTeX), "latex" and "pdflatex" are just symlinks to pdftex (or pdfetex), so it seems really unlikely that someone would have "latex" but not "pdflatex". But your idea is correct; I'll change it.
By the way, is that a real example? Do you have a system with latex but not pdflatex? I'm curious to know about it.
Also, something is wrong with the shell script on Solaris but I don't know what. If I log into t2.math.washington.edu and try installing with SAGE_CHECK equal to 1, then I get the bad error message even though latex is not found. Maybe this is because on many systems, 'which latex' produces nothing if latex isn't found, but on t2, 'which latex' does this:
$ which latex
no latex in /usr/local/gcc-4.4.1-sun-linker/bin /usr/local/bin2 /usr/bin /usr/ccs/bin /usr/local/bin /usr/sfw/bin /bin /usr/sbin
This is a more serious problem. I'll look into it. Hopefully it gives a useful return code or something.
Replying to @dandrake:
By the way, is that a real example? Do you have a system with latex but not pdflatex? I'm curious to know about it.
It was a contrived example: I renamed pdflatex temporarily but kept latex around.
New spkg up for review at http://sage.math.washington.edu/home/drake/code/sage/st/sagetex-2.2.3.p0.spkg.
The spkg-check script now simply tries running latex and kpsewhich, and checks the return code to see if it worked. I think this is more portable, as returning 0 for success is pretty standard. It also uses "latex" throughout, and doesn't use "pdflatex".
Looks good to me. It works on systems on which latex and/or tkz-berge.sty is not installed. I also created a bug in the file example.tex and rebuilt the spkg, and indeed, it didn't pass tests.
Tested on sage.math, a Mac running OS X 10.6, and t2.math.
Reviewer: John Palmieri
Merged: sage-4.3.4.alpha0
Merged sagetex-2.2.3.p0.spkg in the standard spkg repository.
The SageTeX spkg shipped in 4.3.2 has a slightly broken spkg-check: if LaTeX is present, but the tkz-berge.sty file isn't, the example file included with SageTeX cannot be typeset and spkg-check fails. Since I don't assume the user has LaTeX installed, I shouldn't assume that tkz-berge.sty is either.
There are also some documentation fixes, including notably an "egrep" which should be "egrep -v"!
Finally, the license for the documentation is now CC BY-SA; I've dropped the noncommercial clause.
The new spkg is version 2.2.3.p0 in http://sage.math.washington.edu/home/drake/code/sage/st/ . The last version of the spkg is available in the same place, for ease of reviewing.
Component: spkg-check
Author: Dan Drake
Reviewer: John Palmieri
Merged: sage-4.3.4.alpha0
Issue created by migration from https://trac.sagemath.org/ticket/8255