* updating context on Ubuntu 6.06
@ 2006-07-24 20:24 Sanjoy Mahajan
2006-07-26 8:36 ` Ralf Schmitt
0 siblings, 1 reply; 20+ messages in thread
From: Sanjoy Mahajan @ 2006-07-24 20:24 UTC (permalink / raw)
Here's what I had to do to update to the latest Context (2006.07.14) on
Ubuntu 6.06 (i.e. 2006.06) distribution of Linux. It comes with tetex
3.0. The commands below assume a working Context already installed in
your ~/texmf, and the commands use bash syntax, which is almost like
'sh' but has the ~ idiom for $HOME.
Beforehand I had been using the 2006.04.17 beta and had put off
upgrading because I was scared of the change from perl texexec to ruby
texexec.
1. (optional cleanup) Delete the old Context-installed files in
~/texmf/. This step is optional, but I do it so that I can track the
versions using an SCM. I use mercurial (hg is the program name), but
it could have been svn, cvs, etc. The command (done in ~/texmf):
hg locate -0 | xargs rm -0
2. (download, unpack) Download cont-tmf.zip, cont-fnt.zip, and
cont-img.zip. Probably you need only the first zip file, but I'm
reporting exactly what I did just in case any substep is the crucial
one. The command:
cd /tmp/ # no need to save them long-term
wget http://www.pragma-ade.nl/context/current/cont-{tmf,fnt,img}.zip
Unzip the zip archives into ~/texmf, appending the giant
list of files to /tmp/a.log:
cd ~/texmf
for f in /tmp/cont-{tmf,fnt,img}.zip ; do unzip $f >> /tmp/a.log ;done
3. (stubs, part 1) Create ~/bin/texmfstart containing two lines:
#!/bin/bash
~/texmf/scripts/context/ruby/texmfstart.rb "$@"
Then make it executable with
chmod +x ~/bin/texmfstart
From what I can tell from reading the ruby code, using the full path
to texmfstart.rb helps texmfstart.rb find the other .rb programs,
like texexec.rb. (texmfstart.rb uses the path it was called with and
looks in that directory, but Hans can correct me if I'm wrong here.)
4. (stubs, part 2) texmfstart will run texexec, so create texexec as a
symlink to ~/texmf/scripts/context/stubs/unix/texexec:
cd ~/bin
ln -s ~/texmf/scripts/context/stubs/unix/texexec
chmod +x texexec
Hans: Could texexec be made executable in the distribution's zip
file, to avoid the chmod?
5. (test 1) A first check is that texexec works. So change to a random
directory, e.g. where you keep some Context files:
cd ~/tmp/xy ; texexec --version
That produces:
TeXExec | version 6.2.0 - 1997-2006 - PRAGMA ADE/POD
which looks good
6. (formats) Remake the formats with
texexec --make --all
7. (test 2) Try a simple file. I use ~/tmp/xy/t.tex containing one
line, "\starttext abc \stoptext". Here goes:
texexec t
fails with
! Font \*12ptrmtf*=ec-lmr12 not loadable: Metric (TFM) file not found.
8. (dreaded lmodern) Ack, it's the dreaded lmodern problem. I thought I
had avoided this issue on my previous laptop, which ran Debian
testing/unstable and got reincarnated as an Ubuntu laptop. And I had
fixed it, by installing the 'lmodern' package. But Ubuntu lmodern is
v0.92, at least as of Ubuntu 6.06, and Debian unstable uses v1.00,
which includes the necessary .tfm files for ec-lmr*. The beta Ubuntu
('edgy eft') uses the new version, so I downloaded its .deb via
http://packages.ubuntu.com, which eventually pointed me to a monster
url and I did:
cd /tmp
wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/l/lmodern/lmodern_1.00-2_all.deb
Note that the package version may change, so the easiest way is to
download the latest .deb from
http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/l/lmodern/
Installing it is a bit painful. The first try (done as root) of
dpkg -i /tmp/lmodern_1.00-2_all.deb
complains with
Usage error: unrecognized option
Usage: update-fonts-dir DIRECTORY ...
'update-fonts-dir' is some X program that updates X's ideas of where
its fonts are, and the package isn't calling it correctly. But I
don't care whether X knows about the lmodern fonts, since I'm using
them for documents viewed with gv or xpdf, not directly as an X font.
So I shut up update-fonts-dir for the moment, installed, and undid
the shutting up (all as root):
chmod -x /usr/bin/update-fonts-dir
dpkg -i /tmp/lmodern_1.00-2_all.deb
chmod +x /usr/bin/update-fonts-dir
9. (test 2 again, not as root) Now 'texexec t' works fine, as does
'texexec --check'
So I think all is well, and I didn't need to set RUBYLIB. Let me know
of any corrections or improvements; if there's interest I'll wikifi.
>From now on, I hope I can update using
texmfstart ctxtools --updatecontext
-Sanjoy
`A society of sheep must in time beget a government of wolves.'
- Bertrand de Jouvenal
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-24 20:24 updating context on Ubuntu 6.06 Sanjoy Mahajan
@ 2006-07-26 8:36 ` Ralf Schmitt
2006-07-26 9:36 ` Taco Hoekwater
2006-07-26 14:43 ` Sanjoy Mahajan
0 siblings, 2 replies; 20+ messages in thread
From: Ralf Schmitt @ 2006-07-26 8:36 UTC (permalink / raw)
Sanjoy Mahajan wrote:
> Here's what I had to do to update to the latest Context (2006.07.14) on
> Ubuntu 6.06 (i.e. 2006.06) distribution of Linux. It comes with tetex
> 3.0. The commands below assume a working Context already installed in
> your ~/texmf, and the commands use bash syntax, which is almost like
> 'sh' but has the ~ idiom for $HOME.
Updating context was one of the things on my todo list. great.
>
> Beforehand I had been using the 2006.04.17 beta and had put off
> upgrading because I was scared of the change from perl texexec to ruby
> texexec.
>
> 1. (optional cleanup) Delete the old Context-installed files in
> ~/texmf/. This step is optional, but I do it so that I can track the
> versions using an SCM. I use mercurial (hg is the program name), but
> it could have been svn, cvs, etc. The command (done in ~/texmf):
>
> hg locate -0 | xargs rm -0
>
> 2. (download, unpack) Download cont-tmf.zip, cont-fnt.zip, and
> cont-img.zip. Probably you need only the first zip file, but I'm
> reporting exactly what I did just in case any substep is the crucial
> one. The command:
>
> cd /tmp/ # no need to save them long-term
> wget http://www.pragma-ade.nl/context/current/cont-{tmf,fnt,img}.zip
>
> Unzip the zip archives into ~/texmf, appending the giant
> list of files to /tmp/a.log:
>
> cd ~/texmf
> for f in /tmp/cont-{tmf,fnt,img}.zip ; do unzip $f >> /tmp/a.log ;done
>
> 3. (stubs, part 1) Create ~/bin/texmfstart containing two lines:
>
> #!/bin/bash
> ~/texmf/scripts/context/ruby/texmfstart.rb "$@"
>
> Then make it executable with
>
> chmod +x ~/bin/texmfstart
>
> From what I can tell from reading the ruby code, using the full path
> to texmfstart.rb helps texmfstart.rb find the other .rb programs,
> like texexec.rb. (texmfstart.rb uses the path it was called with and
> looks in that directory, but Hans can correct me if I'm wrong here.)
>
> 4. (stubs, part 2) texmfstart will run texexec, so create texexec as a
> symlink to ~/texmf/scripts/context/stubs/unix/texexec:
>
> cd ~/bin
> ln -s ~/texmf/scripts/context/stubs/unix/texexec
> chmod +x texexec
>
> Hans: Could texexec be made executable in the distribution's zip
> file, to avoid the chmod?
>
> 5. (test 1) A first check is that texexec works. So change to a random
> directory, e.g. where you keep some Context files:
>
> cd ~/tmp/xy ; texexec --version
>
> That produces:
>
> TeXExec | version 6.2.0 - 1997-2006 - PRAGMA ADE/POD
>
> which looks good
>
> 6. (formats) Remake the formats with
>
> texexec --make --all
until here everything seems to work...
>
> 7. (test 2) Try a simple file. I use ~/tmp/xy/t.tex containing one
> line, "\starttext abc \stoptext". Here goes:
>
> texexec t
>
> fails with
>
> ! Font \*12ptrmtf*=ec-lmr12 not loadable: Metric (TFM) file not found.
on my machine this fails with:
$ texexec t.tex
TeXExec | processing document 't.tex'
TeXExec | no ctx file found
TeXExec | tex processing method: context
TeXExec | TeX run 1
TeXExec | writing option file t.top
TeXExec | using randomseed 1062
TeXExec | tex engine: pdfetex
TeXExec | tex format: cont-en
TeXExec | progname: context
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
(/home/ralf/texmf/web2c/natural.tcx)
entering extended mode
(./t.tex
ConTeXt ver: 2005.01.31 fmt: 2006.6.27 int: english mes: english
language : language en is active
<protectionstate 0>
system : cont-new loaded
(/home/ralf/texmf/tex/context/base/cont-new.tex
! Undefined control sequence.
l.14 \newcontextversion
{2006.07.24 10:49}
?
! Emergency stop.
l.14 \newcontextversion
{2006.07.24 10:49}
No pages of output.
Transcript written on t.log.
TeXExec | runtime: 1.705616
Any Ideas?
>
> 8. (dreaded lmodern) Ack, it's the dreaded lmodern problem. I thought I
> had avoided this issue on my previous laptop, which ran Debian
> testing/unstable and got reincarnated as an Ubuntu laptop. And I had
> fixed it, by installing the 'lmodern' package. But Ubuntu lmodern is
> v0.92, at least as of Ubuntu 6.06, and Debian unstable uses v1.00,
> which includes the necessary .tfm files for ec-lmr*. The beta Ubuntu
> ('edgy eft') uses the new version, so I downloaded its .deb via
> http://packages.ubuntu.com, which eventually pointed me to a monster
> url and I did:
>
> cd /tmp
> wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/l/lmodern/lmodern_1.00-2_all.deb
>
> Note that the package version may change, so the easiest way is to
> download the latest .deb from
> http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/l/lmodern/
>
> Installing it is a bit painful. The first try (done as root) of
>
> dpkg -i /tmp/lmodern_1.00-2_all.deb
>
> complains with
>
> Usage error: unrecognized option
> Usage: update-fonts-dir DIRECTORY ...
>
> 'update-fonts-dir' is some X program that updates X's ideas of where
> its fonts are, and the package isn't calling it correctly. But I
> don't care whether X knows about the lmodern fonts, since I'm using
> them for documents viewed with gv or xpdf, not directly as an X font.
> So I shut up update-fonts-dir for the moment, installed, and undid
> the shutting up (all as root):
>
> chmod -x /usr/bin/update-fonts-dir
> dpkg -i /tmp/lmodern_1.00-2_all.deb
> chmod +x /usr/bin/update-fonts-dir
>
> 9. (test 2 again, not as root) Now 'texexec t' works fine, as does
> 'texexec --check'
>
> So I think all is well, and I didn't need to set RUBYLIB. Let me know
> of any corrections or improvements; if there's interest I'll wikifi.
>
>>From now on, I hope I can update using
>
> texmfstart ctxtools --updatecontext
>
does not work for me:
$ texmfstart ctxtools --updatecontext
kpsewhich: option `--expand-var' requires an argument
CtxTools | updating
CtxTools | unable to change to
> -Sanjoy
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 8:36 ` Ralf Schmitt
@ 2006-07-26 9:36 ` Taco Hoekwater
2006-07-26 10:36 ` Jano Kula
` (2 more replies)
2006-07-26 14:43 ` Sanjoy Mahajan
1 sibling, 3 replies; 20+ messages in thread
From: Taco Hoekwater @ 2006-07-26 9:36 UTC (permalink / raw)
Hi,
Ralf Schmitt wrote:
>
>>Beforehand I had been using the 2006.04.17 beta and had put off
>>upgrading because I was scared of the change from perl texexec to ruby
>>texexec.
>>
>>1. (optional cleanup) Delete the old Context-installed files in
>> ~/texmf/. This step is optional, but I do it so that I can track the
I am not so sure that step is optional. Because if the preinstalled
version had a cont-sys.tex or cont-usr.tex, then this step may be
required to make sure you are not using an out-of-date version of
these files.
>>3. (stubs, part 1) Create ~/bin/texmfstart containing two lines:
>>
>>#!/bin/bash
>>~/texmf/scripts/context/ruby/texmfstart.rb "$@"
A somehwat more flexible version is
#!/bin/sh
ruby `kpsewhich --format='texmfscripts' texmfstart.rb` $@
(also notice the lack of quotes around $@)
>>4. (stubs, part 2) texmfstart will run texexec, so create texexec as a
>> symlink to ~/texmf/scripts/context/stubs/unix/texexec:
>>
>> cd ~/bin
>> ln -s ~/texmf/scripts/context/stubs/unix/texexec
>> chmod +x texexec
>>
>> Hans: Could texexec be made executable in the distribution's zip
>> file, to avoid the chmod?
ctxtools --update does that manually after unzipping, but sicne the zip
is created on windows, the in-zip versions cannot be made executable
AFAIK.
>>7. (test 2) Try a simple file. I use ~/tmp/xy/t.tex containing one
>> line, "\starttext abc \stoptext". Here goes:
>>
>> texexec t
>>
>> fails with
>>
>>! Font \*12ptrmtf*=ec-lmr12 not loadable: Metric (TFM) file not found.
In the future, the cont-lmt.zip may perhaps be re-instated.
>
> ConTeXt ver: 2005.01.31 fmt: 2006.6.27 int: english mes: english
This is the old teTeX-supplied context format from January 31, 2005,
that was last regenerated on June 27. Not the new one you created in
the previous step.
>>So I think all is well, and I didn't need to set RUBYLIB. Let me know
>>of any corrections or improvements; if there's interest I'll wikifi.
All documents that say you should set RUBYLIB are outdated and wrong.
Every since texmfstart.rb is a 'fat' ruby script, that has become
unnecesary.
>>>From now on, I hope I can update using
>>
>> texmfstart ctxtools --updatecontext
>>
> does not work for me:
>
> $ texmfstart ctxtools --updatecontext
> kpsewhich: option `--expand-var' requires an argument
Do not worry about that until the rest of the install is correct, it
may start working automagically.
Taco
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 9:36 ` Taco Hoekwater
@ 2006-07-26 10:36 ` Jano Kula
2006-07-26 11:20 ` Ralf Schmitt
2006-07-26 15:17 ` Sanjoy Mahajan
2 siblings, 0 replies; 20+ messages in thread
From: Jano Kula @ 2006-07-26 10:36 UTC (permalink / raw)
Taco Hoekwater wrote:
> Hi,
>
> Ralf Schmitt wrote:
>>> texmfstart ctxtools --updatecontext
>>>
>> does not work for me:
>>
>> $ texmfstart ctxtools --updatecontext
>> kpsewhich: option `--expand-var' requires an argument
>
> Do not worry about that until the rest of the install is correct, it
> may start working automagically.
I've tried texmfstart ctxtools --update yesterday with the same result
on Fedora linux and it didn't start automagically :(
It was missing $TEXMFLOCAL defined. Should ctxtools read texmf.cnf where
this variable is definied or should it be defined somewhere else? It is
a general question. For the moment I've defined it locally.
BTW, it is confusing if old texexec says:
warning : use 'texmfstart texexec' instead
and Hans has created stubs which are called the same so finally one
should use texexec (new one, which calls texmstart). What is a prefered
command to refer to (mailing list, contextgarden)? texexec or texmfstart?
Should
./scripts/context/perl/texexec.pl
still be distributed?
And should
./scripts/context/ruby/newtexexec.rb
(and others new*.rb sripts) still be distributed if it significantly
differs from newer
./scripts/context/ruby/texexec.rb
Jano
>
> Taco
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 9:36 ` Taco Hoekwater
2006-07-26 10:36 ` Jano Kula
@ 2006-07-26 11:20 ` Ralf Schmitt
2006-07-26 15:17 ` Sanjoy Mahajan
2 siblings, 0 replies; 20+ messages in thread
From: Ralf Schmitt @ 2006-07-26 11:20 UTC (permalink / raw)
Taco Hoekwater wrote:
> Hi,
>
> Ralf Schmitt wrote:
>>> Beforehand I had been using the 2006.04.17 beta and had put off
>>> upgrading because I was scared of the change from perl texexec to ruby
>>> texexec.
>>>
>>> 1. (optional cleanup) Delete the old Context-installed files in
>>> ~/texmf/. This step is optional, but I do it so that I can track the
>
> I am not so sure that step is optional. Because if the preinstalled
> version had a cont-sys.tex or cont-usr.tex, then this step may be
> required to make sure you are not using an out-of-date version of
> these files.
my texmf had been empty before.
You're right. texexec had been using an old format file:
$ kpsewhich cont-en.fmt
/var/lib/texmf/web2c/cont-en.fmt
I've deleted it (and also the old context directory). Now kpsewhich
finds the right format file in ~/.texmf-var/.
>
>> ConTeXt ver: 2005.01.31 fmt: 2006.6.27 int: english mes: english
>
> This is the old teTeX-supplied context format from January 31, 2005,
> that was last regenerated on June 27. Not the new one you created in
> the previous step.
now i've got the following output (which should be fine):
ConTeXt ver: 2006.07.24 10:49 fmt: 2006.7.26 int: english mes: english
>>> >From now on, I hope I can update using
>>>
>>> texmfstart ctxtools --updatecontext
>>>
>> does not work for me:
>>
>> $ texmfstart ctxtools --updatecontext
>> kpsewhich: option `--expand-var' requires an argument
>
> Do not worry about that until the rest of the install is correct, it
> may start working automagically.
unfortunately it does not.
Another problem might be that texexec --check complains about the nl
format (actually I don't use it, en seems to work fine for me):
TeXExec | progname: context
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
(/home/ralf/texmf/web2c/natural.tcx)
kpathsea: Running mktexfmt cont-nl.fmt
mktexfmt: no info for format `cont-nl'.
I can't find the format file `cont-nl.fmt'!
TeXExec | runtime: 0.556275
TeXExec | end of analysis
TeXExec |
TeXExec | TeXExec | version 6.2.0 - 1997-2006 - PRAGMA ADE/POD
TeXExec | TeXUtil | version 9.1.0 - 1997-2005 - PRAGMA ADE/POD
TeXExec | CtxTools | version 1.3.3 - 2004/2006 - PRAGMA ADE/POD
TeXExec |
TeXExec | testing interface en
TeXExec | pdfeTeX Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
TeXExec | ConTeXt ver: 2006.07.24 10:49 fmt: 2006.7.26 int: english mes:
english
TeXExec |
TeXExec | testing interface nl
TeXExec | format cont-nl.fmt does not work
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 8:36 ` Ralf Schmitt
2006-07-26 9:36 ` Taco Hoekwater
@ 2006-07-26 14:43 ` Sanjoy Mahajan
1 sibling, 0 replies; 20+ messages in thread
From: Sanjoy Mahajan @ 2006-07-26 14:43 UTC (permalink / raw)
> ConTeXt ver: 2005.01.31 fmt: 2006.6.27 int: english mes: english
>
> language : language en is active
> <protectionstate 0>
> system : cont-new loaded
> (/home/ralf/texmf/tex/context/base/cont-new.tex
> ! Undefined control sequence.
> l.14 \newcontextversion
> {2006.07.24 10:49}
> ?
> ! Emergency stop.
> l.14 \newcontextversion
> {2006.07.24 10:49}
> No pages of output.
> Transcript written on t.log.
> TeXExec | runtime: 1.705616
>
> Any Ideas?
It looks like an old version of context is being used that doesn't
understand the \newcontextversion command. And the line
ConTeXt ver: 2005.01.31 fmt: 2006.6.27 int: english mes: english
confirms the suspicion, because the ver: date is old and doesn't match
the fmt: date. So somehow your old formats (.fmt files) are still
being found by the searching. The Debian installation notes on the
wiki has information on how to find and delete the old ones and fix up
the config files. See the "Steps to finish a first context upgrade"
section at <http://wiki.contextgarden.net/Debian_installation> and let
me know if that fixes it.
The Linux installation notes are overall a mess, partly made by me, so
I'll try to clean them up once I understand the various interactions.
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 9:36 ` Taco Hoekwater
2006-07-26 10:36 ` Jano Kula
2006-07-26 11:20 ` Ralf Schmitt
@ 2006-07-26 15:17 ` Sanjoy Mahajan
2006-07-26 16:13 ` Taco Hoekwater
2 siblings, 1 reply; 20+ messages in thread
From: Sanjoy Mahajan @ 2006-07-26 15:17 UTC (permalink / raw)
> >>1. (optional cleanup) Delete the old Context-installed files in
> >> ~/texmf/. This step is optional, but I do it so that I can track the
>
> I am not so sure that step is optional. Because if the preinstalled
> version had a cont-sys.tex or cont-usr.tex, then this step may be
> required to make sure you are not using an out-of-date version of
> these files.
Good point, thanks. I'll incorporate it into the eventual wiki page.
> A somehwat more flexible version is
>
> #!/bin/sh
> ruby `kpsewhich --format='texmfscripts' texmfstart.rb` $@
>
> (also notice the lack of quotes around $@)
According to the bash man entry:
@ Expands to the positional parameters, starting from one. When
the expansion occurs within double quotes, each parameter
expands to a separate word. That is, "$@" is equivalent to "$1"
"$2" ...
So if you ran texmfstart with
texmfstart --option="hi there"
then the $@ form would produce
texmfstart.rb --option=hi there
which would leave 'there' standing alone as a second argument.
Whereas the "$@" form would produce
texmfstart.rb "--option=hi there"
This second form is what you want, no?
> > $ texmfstart ctxtools --updatecontext
> > kpsewhich: option `--expand-var' requires an argument
>
> Do not worry about that until the rest of the install is correct, it
> may start working automagically.
It didn't work magically, but Jano Kula's suggestion about TEXMFLOCAL
made it work. I looked at the TEXMFLOCAL in the /etc/texmf/texmf.cnf
and did:
TEXMFLOCAL=/usr/local/share/texmf texmfstart ctxtools --updatecontext
That worked fine except now there's version clash. During the update
it said
CtxTools | updating /usr/local/share/texmf
and it downloaded the cont-tmf.zip there and unzipped it, remade the
formats, and put them under ~/.texmf-var. So now the formats are
based on the new context (2006.07.24) but for example,
$ texmfstart ctxtools --contextversion
CtxTools | context version: 2006.07.14 12:08 (/home/sanjoy/texmf/tex/context/base/context.tex)
CtxTools | context version: 2006.07.14 12:08 (/home/sanjoy/texmf/tex/context/base/cont-new.tex)
So texmfstart is finding the older source files in ~/texmf (from the
2006.07.14 update) although the formats themselves are newer. And
trying a simple file gives:
$ texexec t
...
ConTeXt ver: 2006.07.14 12:08 fmt: 2006.7.26 int: english mes: english
which worked fine, I guess since the two versions are sufficiently
compatible. To avoid this problem, is it possible to put the new
version in ~/texmf instead of in TEXMFLOCAL? Although in ~/texmf may
be wrong for others, so it's a difficult problem...
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 15:17 ` Sanjoy Mahajan
@ 2006-07-26 16:13 ` Taco Hoekwater
2006-07-26 19:47 ` Sanjoy Mahajan
2006-07-26 21:02 ` Hans Hagen
0 siblings, 2 replies; 20+ messages in thread
From: Taco Hoekwater @ 2006-07-26 16:13 UTC (permalink / raw)
Sanjoy Mahajan wrote:
> Whereas the "$@" form would produce
>
> texmfstart.rb "--option=hi there"
>
> This second form is what you want, no?
Ah, I see. (is that bash-only?)
>
> which worked fine, I guess since the two versions are sufficiently
> compatible. To avoid this problem, is it possible to put the new
> version in ~/texmf instead of in TEXMFLOCAL? Although in ~/texmf may
> be wrong for others, so it's a difficult problem...
Would it not work to simply point the variable TEXMFLOCAL to ~/texmf?
Greetings, Taco
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 16:13 ` Taco Hoekwater
@ 2006-07-26 19:47 ` Sanjoy Mahajan
2006-07-26 20:34 ` Taco Hoekwater
` (3 more replies)
2006-07-26 21:02 ` Hans Hagen
1 sibling, 4 replies; 20+ messages in thread
From: Sanjoy Mahajan @ 2006-07-26 19:47 UTC (permalink / raw)
> > Whereas the "$@" form would produce
> >
> > texmfstart.rb "--option=hi there"
> >
> > This second form is what you want, no?
>
> Ah, I see. (is that bash-only?)
It was hard to find a machine not running bash, a measure of the
success of free software. But I eventually found a nearby Solaris
machine running 'sh' (couldn't tell which version), but it's man entry
says the same:
if $@ is within a pair of double quotes, the positional
parameters are substituted and quoted, separated by unquoted
spaces ("$1""$2" ... )
So I think it's safe, and increases robustness, to change $@ -> "$@"
in all the stub scripts.
> Would it not work to simply point the variable TEXMFLOCAL to
> ~/texmf?
I was a little leery but tried it. Meanwhile here's a patch that
fixes the need for that:
--- a/scripts/context/ruby/ctxtools.rb Wed Jul 26 14:50:16 2006 -0400
+++ b/scripts/context/ruby/ctxtools.rb Wed Jul 26 14:53:57 2006 -0400
@@ -2314,7 +2314,7 @@ class Commands
end
def locatedlocaltree
- return `kpsewhich --expand-var $TEXMFLOCAL`.chomp rescue nil
+ return `kpsewhich --expand-var '$TEXMFLOCAL'`.chomp rescue nil
end
def extractarchive(archive)
The only problem is that it'll now, as intended, use the TEXMFLOCAL
from texmf.cnf. But TEXMFLOCAL is probably not ~/texmf, so you'll
still have to force the setting like this:
TEXMFLOCAL=~/texmf texmfstart ctxtools --updatecontext
The next problem was this message during the update:
chmod: cannot access `scripts/context/unix/stubs/*': No such file or directory
For my second attempt at ruby programming (the first being the two
glorious quotes above), I looked to see what ctxtools.rb was doing
around the chmod. It was supposed to report an error with this line:
report("change x-permissions of '" + stubs + "' manually")
But the line was not executed, because it was in a ruby 'rescue' clause.
But when system("chmod +x ....") fails, it returns false, but does not
throw an exception for rescue. So I rewrote the extractarchive()
function to wrap the system() calls in if/unless clauses rather than
rescue clauses. In doing so I noticed why the chmod failed: the path
should be
scripts/context/stubs/unix/*
rather than
scripts/context/unix/stubs/*
The patch below does that change as well as the change of rescue ->
if/unless. With these patches the automatic update went smoothly.
One question: How safe is it that the ctxtools.rb script is
overwritten by the unzip in the middle of running the script? Will
ruby execute half from the old script and half from the new script?
It wasn't an issue for me, I eventually realized, because the -u
switch to unzip meant that my updated ctxtools.rb was not overwritten.
But in general it will be.
--- a/scripts/context/ruby/ctxtools.rb Wed Jul 26 14:54:24 2006 -0400
+++ b/scripts/context/ruby/ctxtools.rb Wed Jul 26 15:36:21 2006 -0400
@@ -2318,26 +2318,19 @@ class Commands
end
def extractarchive(archive)
- if FileTest.file?(archive) then
- begin
- system("unzip -uo #{archive}")
- rescue
- report("fatal error, make sure that you have 'unzip' in your path")
- return false
- else
- if System.unix? then
- begin
- system("chmod +x scripts/context/unix/stubs/*")
- rescue
- report("change x-permissions of 'scripts/context/unix/stubs/*' manually")
- end
- end
- return true
- end
- else
+ unless FileTest.file?(archive) then
report("fatal error, '{archive}' has not been downloaded")
return false
end
+ unless system("unzip -uo #{archive}") then
+ report("fatal error, make sure that you have 'unzip' in your path")
+ return false
+ end
+ stubs = "scripts/context/stubs/unix/*"
+ if System.unix? and not system("chmod +x " + stubs) then
+ report("change x-permissions of '" + stubs + "' manually")
+ end
+ return true
end
def remakeformats
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 19:47 ` Sanjoy Mahajan
@ 2006-07-26 20:34 ` Taco Hoekwater
2006-07-26 20:57 ` Hans Hagen
` (2 subsequent siblings)
3 siblings, 0 replies; 20+ messages in thread
From: Taco Hoekwater @ 2006-07-26 20:34 UTC (permalink / raw)
Sanjoy Mahajan wrote:
>
> It was hard to find a machine not running bash, a measure of the
> success of free software. But I eventually found a nearby Solaris
> machine running 'sh' (couldn't tell which version), but it's man entry
> says the same:
>
> if $@ is within a pair of double quotes, the positional
> parameters are substituted and quoted, separated by unquoted
> spaces ("$1""$2" ... )
>
> So I think it's safe, and increases robustness, to change $@ -> "$@"
> in all the stub scripts.
Many thanks for looking that up.
>
> One question: How safe is it that the ctxtools.rb script is
> overwritten by the unzip in the middle of running the script? Will
> ruby execute half from the old script and half from the new script?
That is safe. Modern scripting languages normally byte-compile the
entire file before running it (the main advantage is that this
captures syntrax errors before any real harm is done).
Taco
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 19:47 ` Sanjoy Mahajan
2006-07-26 20:34 ` Taco Hoekwater
@ 2006-07-26 20:57 ` Hans Hagen
2006-07-26 21:01 ` Hans Hagen
2006-07-27 8:04 ` Hans Hagen
3 siblings, 0 replies; 20+ messages in thread
From: Hans Hagen @ 2006-07-26 20:57 UTC (permalink / raw)
Sanjoy Mahajan wrote:
> It was hard to find a machine not running bash, a measure of the
> success of free software. But I eventually found a nearby Solaris
>
more a measure of the lack of diversity ... imagine everyone living a
house of the same design, driving the same car, etc etc
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 19:47 ` Sanjoy Mahajan
2006-07-26 20:34 ` Taco Hoekwater
2006-07-26 20:57 ` Hans Hagen
@ 2006-07-26 21:01 ` Hans Hagen
2006-07-26 21:29 ` Switching Font Size in a Natural Table Neal Lester
2006-07-26 22:10 ` updating context on Ubuntu 6.06 Sanjoy Mahajan
2006-07-27 8:04 ` Hans Hagen
3 siblings, 2 replies; 20+ messages in thread
From: Hans Hagen @ 2006-07-26 21:01 UTC (permalink / raw)
Sanjoy Mahajan wrote:
>>> Whereas the "$@" form would produce
>>>
>>> texmfstart.rb "--option=hi there"
>>>
>>> This second form is what you want, no?
>>>
>> Ah, I see. (is that bash-only?)
>>
>
> It was hard to find a machine not running bash, a measure of the
> success of free software. But I eventually found a nearby Solaris
> machine running 'sh' (couldn't tell which version), but it's man entry
> says the same:
>
> if $@ is within a pair of double quotes, the positional
> parameters are substituted and quoted, separated by unquoted
> spaces ("$1""$2" ... )
>
coincidentaly i read this in the bash manual today but i was puzzled by
it not being
("$1" "$2" ... ) # separated by spaces
> So I think it's safe, and increases robustness, to change $@ -> "$@"
> in all the stub scripts.
>
>
i didn't follow this thread but i assume that at some point the outcome will be summarized; keep in mind that patched need to work for windows as well (different quoting)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 16:13 ` Taco Hoekwater
2006-07-26 19:47 ` Sanjoy Mahajan
@ 2006-07-26 21:02 ` Hans Hagen
1 sibling, 0 replies; 20+ messages in thread
From: Hans Hagen @ 2006-07-26 21:02 UTC (permalink / raw)
Taco Hoekwater wrote:
> Would it not work to simply point the variable TEXMFLOCAL to ~/texmf?
>
>
that should work
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 20+ messages in thread
* Switching Font Size in a Natural Table
2006-07-26 21:01 ` Hans Hagen
@ 2006-07-26 21:29 ` Neal Lester
2006-08-01 23:31 ` Mojca Miklavec
2006-07-26 22:10 ` updating context on Ubuntu 6.06 Sanjoy Mahajan
1 sibling, 1 reply; 20+ messages in thread
From: Neal Lester @ 2006-07-26 21:29 UTC (permalink / raw)
Is it possible to use more than one font size within a Natural
Table? If so, how?
Thanks, Neal
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 21:01 ` Hans Hagen
2006-07-26 21:29 ` Switching Font Size in a Natural Table Neal Lester
@ 2006-07-26 22:10 ` Sanjoy Mahajan
2006-07-27 8:05 ` Hans Hagen
1 sibling, 1 reply; 20+ messages in thread
From: Sanjoy Mahajan @ 2006-07-26 22:10 UTC (permalink / raw)
>> ("$1""$2" ... )
> coincidentaly i read this in the bash manual today but i was puzzled by
> it not being
>
> ("$1" "$2" ... ) # separated by spaces
>
Sorry, my typo.
> i didn't follow this thread but i assume that at some point the
> outcome will be summarized; keep in mind that patched need to work
> for windows as well (differ ent quoting)
How does Windows quoting work? Well, the whole story isn't needed,
but only how would this ruby line
`kpsewhich --expand-var '$TEXMFLOCAL'`
differ on Windows relative to Unix?
And the $@ -> "$@" change can be done in the Unix stubs only, so the
change won't affect Windows (which uses .bat files and a different
syntax).
The other part of the patch was changing system() to be used within an
if instead of a rescue block, and I got the return information about
system() from the Programming Ruby manual online. It didn't say
anything about it applying only to Unix, so that change should be safe
too.
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 19:47 ` Sanjoy Mahajan
` (2 preceding siblings ...)
2006-07-26 21:01 ` Hans Hagen
@ 2006-07-27 8:04 ` Hans Hagen
2006-07-27 12:37 ` Sanjoy Mahajan
3 siblings, 1 reply; 20+ messages in thread
From: Hans Hagen @ 2006-07-27 8:04 UTC (permalink / raw)
Sanjoy Mahajan wrote:
>
> def locatedlocaltree
> - return `kpsewhich --expand-var $TEXMFLOCAL`.chomp rescue nil
> + return `kpsewhich --expand-var '$TEXMFLOCAL'`.chomp rescue nil
> end
>
returns 'result' here
can you try:
def locatedlocaltree
tree = `kpsewhich --expand-path $TEXMFLOCAL`.chomp rescue nil
unless tree && FileTest.directory?(tree) then
tree = `kpsewhich --expand-path $TEXMF`.chomp rescue nil
end
return tree
end
(uses expand-path instead)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-26 22:10 ` updating context on Ubuntu 6.06 Sanjoy Mahajan
@ 2006-07-27 8:05 ` Hans Hagen
2006-07-27 8:46 ` Taco Hoekwater
0 siblings, 1 reply; 20+ messages in thread
From: Hans Hagen @ 2006-07-27 8:05 UTC (permalink / raw)
Sanjoy Mahajan wrote:
> How does Windows quoting work? Well, the whole story isn't needed,
> but only how would this ruby line
>
> `kpsewhich --expand-var '$TEXMFLOCAL'`
>
> differ on Windows relative to Unix?
>
the problem is that one never knows when the shell does things and when
the program does ... so in order to be really sure, we need taco to look
into the kpse source to see if ' is handled there (here they are retained)
> And the $@ -> "$@" change can be done in the Unix stubs only, so the
> change won't affect Windows (which uses .bat files and a different
> syntax).
>
so in texmfstart:
f.write("#{program} #{callname} \"$@\"\012")
> The other part of the patch was changing system() to be used within an
> if instead of a rescue block, and I got the return information about
> system() from the Programming Ruby manual online. It didn't say
> anything about it applying only to Unix, so that change should be safe
> too.
>
will look
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-27 8:05 ` Hans Hagen
@ 2006-07-27 8:46 ` Taco Hoekwater
0 siblings, 0 replies; 20+ messages in thread
From: Taco Hoekwater @ 2006-07-27 8:46 UTC (permalink / raw)
Hans Hagen wrote:
> Sanjoy Mahajan wrote:
>
>>How does Windows quoting work? Well, the whole story isn't needed,
>>but only how would this ruby line
>>
>> `kpsewhich --expand-var '$TEXMFLOCAL'`
>>
>>differ on Windows relative to Unix?
>>
>
> the problem is that one never knows when the shell does things and when
On unix, it is pretty easy to test what the shell does by pasting
the stuff you want to try after the 'echo' command. In this case:
$ echo kpsewhich --expand-var '$TEXMFLOCAL'
kpsewhich --expand-var $TEXMFLOCAL
I assume a similar trick is possible on windows, yes?
>>And the $@ -> "$@" change can be done in the Unix stubs only, so the
>>change won't affect Windows (which uses .bat files and a different
>>syntax).
>>
> so in texmfstart:
>
> f.write("#{program} #{callname} \"$@\"\012")
Yes. That reminds me: I assume on MacOsX the same stubs will work
except that \012 has to be changed into \015. Can someone test that?
Cheers, taco
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: updating context on Ubuntu 6.06
2006-07-27 8:04 ` Hans Hagen
@ 2006-07-27 12:37 ` Sanjoy Mahajan
0 siblings, 0 replies; 20+ messages in thread
From: Sanjoy Mahajan @ 2006-07-27 12:37 UTC (permalink / raw)
> > It was hard to find a machine not running bash, a measure of the
> > success of free software. But I eventually found a nearby Solaris
> >
> more a measure of the lack of diversity ... imagine everyone living a
> house of the same design, driving the same car, etc etc
Or instead walking, cycling, or taking public transit...but I dream.
> can you try: ...
I ran this ruby script (on Linux):
def locatedlocaltree
tree = `kpsewhich --expand-path $TEXMFLOCAL`.chomp rescue nil
unless tree && FileTest.directory?(tree) then
tree = `kpsewhich --expand-path $TEXMF`.chomp rescue nil
end
return tree
end
print locatedlocaltree+"\n"
and got the error due to lack of quotes around $TEXMF{,LOCAL}:
kpsewhich: option `--expand-path' requires an argument
kpsewhich: option `--expand-path' requires an argument
Unix definitely needs those quotes to protect the variables in the
backquoted command from the shell.
Also the 'rescue nil' doesn't seem to have any effect. Probably
similar to system(), the `cmd` construct doesn't raise an exception if
the command fails or even isn't found. Instead you get tree equal to
the empty string, since `` captures (the empty) stdout.
Is path expansion (instead of variable expansion) a risky change? It
might make tree a colon-separated list. That will cause trouble for
the directory test in the 'unless' clause, and also break later uses
of the returned value of locatedlocaltree that assume it is one path
element.
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Switching Font Size in a Natural Table
2006-07-26 21:29 ` Switching Font Size in a Natural Table Neal Lester
@ 2006-08-01 23:31 ` Mojca Miklavec
0 siblings, 0 replies; 20+ messages in thread
From: Mojca Miklavec @ 2006-08-01 23:31 UTC (permalink / raw)
On 7/26/06, Neal Lester wrote:
> Is it possible to use more than one font size within a Natural
> Table? If so, how?
Why not? But what exactly is your question/what do you want to do/what
went wrong when you tried to use it?
\setupTABLE[c][1][style=\bfb]
\bTABLE
\bTR\bTD abc\eTD\bTD def\eTD\eTR
\eTABLE
Mojca
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2006-08-01 23:31 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-07-24 20:24 updating context on Ubuntu 6.06 Sanjoy Mahajan
2006-07-26 8:36 ` Ralf Schmitt
2006-07-26 9:36 ` Taco Hoekwater
2006-07-26 10:36 ` Jano Kula
2006-07-26 11:20 ` Ralf Schmitt
2006-07-26 15:17 ` Sanjoy Mahajan
2006-07-26 16:13 ` Taco Hoekwater
2006-07-26 19:47 ` Sanjoy Mahajan
2006-07-26 20:34 ` Taco Hoekwater
2006-07-26 20:57 ` Hans Hagen
2006-07-26 21:01 ` Hans Hagen
2006-07-26 21:29 ` Switching Font Size in a Natural Table Neal Lester
2006-08-01 23:31 ` Mojca Miklavec
2006-07-26 22:10 ` updating context on Ubuntu 6.06 Sanjoy Mahajan
2006-07-27 8:05 ` Hans Hagen
2006-07-27 8:46 ` Taco Hoekwater
2006-07-27 8:04 ` Hans Hagen
2006-07-27 12:37 ` Sanjoy Mahajan
2006-07-26 21:02 ` Hans Hagen
2006-07-26 14:43 ` Sanjoy Mahajan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).