ConTeXt installtion and Debian
Hi Taco, hi all! (I am sending personal copies since I don't know whether I can mail to the ntg list). First of all thanks for the explanations! You wrote:
To actually update ConTeXt, assuming you already have a relatively modern context installed, you say
# ctxtools --update
and that fetches the zip file(s) from the pragma site (or a mirror), unpacks them, and updates the various perl and ruby scripts that come with ConTeXt.
You have to be root for this when you want to update the global install, otherwise you have a few extra caveats, see below.
After a succesful update, you have to run
# texexec --make --all [--xetex | --aleph | --pdftex] <formats>
Where <formats> are the desired formats to run. The accepted list at the moment is: the eight ConTeXt formats, in both long ("cont-en" etc.) and short from ("en","nl","de","it","fr","cz", "ro","uk"), and "mptopdf", and the metapost mems "mpost" and "metafun".
I checked the current zip file and the current ctxtools.rb script, it
does nothing else than:
- download the current zip
- unpack
- install the stubs from scripts/context/stubs/*
- update the formats.
So this is what we have to do in the Debian package, too. This is not
hard, in fact most parts are already done. The only thing we have to do
is create a way for the user to choose which formats should be
generated. I will think about this.
But for the search pathes, we will adjust the Debian texmf.cnf file, to
get different engines loading differen cont-en.fmt files. Thanks.
Best wishes
Norbert
-------------------------------------------------------------------------------
Dr. Norbert Preining
Hi Taco, hi all! I am trying to fix all the problems for Debian ... Another thing Taco wrote was:
* TEXFORMATS as shipped with teTeX/TL is uncomplete: there is that missing format-specific subdirectory. If you are not root, then you have to create a local texmf.cnf to overrule the default texmf.cnf. I have:
TEXFORMATS = .;$TEXMF/web2c/{$engine,}
because context's texexec pushes the $engine setting to the environment, this works fine (Originally this was supposed to be handled by kpathsea, but like I said, that never got off the ground)
This change I have executed in the tex-common depot, it will not hurt anybody.
* TEXFONTMAPS is also wrong: it makes pdftex (and dvipdfmx as well, I guess) find the mapfiles for dvips before their own mapfiles (those are shipped with ConTeXt).
I have:
TEXFONTMAPS.dvipdfm = .;$TEXMF/fonts/map/{dvipdfm,dvips,}// TEXFONTMAPS.dvipdfmx = .;$TEXMF/fonts/map/{dvipdfm,dvips,}// TEXFONTMAPS.pdftex = .;$TEXMF/fonts/map/{pdftex,dvips,}// TEXFONTMAPS.pdfetex = .;$TEXMF/fonts/map/{pdftex,dvips,}// TEXFONTMAPS.xetex = .;$TEXMF/fonts/map/{xetex,pdftex,dvips,}// TEXFONTMAPS.dvips = .;$TEXMF/fonts/map/{dvips,pdftex,}// TEXFONTMAPS =.;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//;\ $TEXMF/{$progname,pdftex,dvips}/{config,}//
this works fine (but it is perhaps a bit too verbose).
Debian currently has:
TEXFONTMAPS = .;$TEXMF/{fonts/,}map//;$TEXMF/dvips//
What about this? I am not completely convinced about it since with
updmap we generate input file for all the different programs.
For Taco: I have NOT installed the dvipdfm map files, only those from
fonts/map/pdftex/context and fonts/map/dvips/context
Furthermore I have added all the maps in fonts/map/dvips/context to the
updmap config file and called updmap-sys.
So now I can call texexec on several documents without any problems and
all the fonts are found.
What is the problem with
- removing the dvipdfm maps
- generating lines for dvipdfm(x), pdfetex, dvips from the dvips config
files as done by updmap-sys
It would be great if we could straighten this out and get nice packages
for Debian rather soon.
Best wishes
Norbert
-------------------------------------------------------------------------------
Dr. Norbert Preining
Norbert Preining
* TEXFONTMAPS is also wrong: it makes pdftex (and dvipdfmx as well, I guess) find the mapfiles for dvips before their own mapfiles (those are shipped with ConTeXt).
I have:
TEXFONTMAPS.dvipdfm = .;$TEXMF/fonts/map/{dvipdfm,dvips,}// TEXFONTMAPS.dvipdfmx = .;$TEXMF/fonts/map/{dvipdfm,dvips,}// TEXFONTMAPS.pdftex = .;$TEXMF/fonts/map/{pdftex,dvips,}// TEXFONTMAPS.pdfetex = .;$TEXMF/fonts/map/{pdftex,dvips,}// TEXFONTMAPS.xetex = .;$TEXMF/fonts/map/{xetex,pdftex,dvips,}// TEXFONTMAPS.dvips = .;$TEXMF/fonts/map/{dvips,pdftex,}// TEXFONTMAPS =.;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//;\ $TEXMF/{$progname,pdftex,dvips}/{config,}//
this works fine (but it is perhaps a bit too verbose).
Debian currently has: TEXFONTMAPS = .;$TEXMF/{fonts/,}map//;$TEXMF/dvips//
What about this? I am not completely convinced about it since with updmap we generate input file for all the different programs.
The second part, $TEXMF/dvips//, is a Debian-specific backwards-compatibility hack to allow fonts to be found that install their map files according to the old (teTeX 2.0) TDS. We should drop it as soon as etch is out, and we should probably have done that even earlier. The first I don't quite understand, we actually have: % TEXFONTMAPS = .;$TEXMF/{fonts/map,}/{$progname,pdftex,dvips,}// TEXFONTMAPS = .;$TEXMF/{fonts/,}map//;$TEXMF/dvips// This looks like we dropped the program-specific paths (and with that their order), and like it wouldn't have been necessary to add a hack (but I know that at the time of the teTex-3.0-beta-release when I introduced it it *was* necessary). Regards, Frank -- Dr. Frank Küster Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich Debian Developer (teTeX/TeXLive)
Frank � wrote:
Debian currently has: TEXFONTMAPS = .;$TEXMF/{fonts/,}map//;$TEXMF/dvips//
What about this? I am not completely convinced about it since with updmap we generate input file for all the different programs.
one may assume that by now indeed most trees are tds compliant (for context users there is textools --fixtexmftrees)
The second part, $TEXMF/dvips//, is a Debian-specific backwards-compatibility hack to allow fonts to be found that install their map files according to the old (teTeX 2.0) TDS. We should drop it as soon as etch is out, and we should probably have done that even earlier. The first I don't quite understand, we actually have:
% TEXFONTMAPS = .;$TEXMF/{fonts/map,}/{$progname,pdftex,dvips,}// TEXFONTMAPS = .;$TEXMF/{fonts/,}map//;$TEXMF/dvips//
This looks like we dropped the program-specific paths (and with that their order), and like it wouldn't have been necessary to add a hack (but I know that at the time of the teTex-3.0-beta-release when I introduced it it *was* necessary).
the first (commented) one is indeed the one that is needed in order to let dvipdfmx work nicely (even more important now that xetex uses dvipdfmx as backend) 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 -----------------------------------------------------------------
Norbert Preining wrote:
Debian currently has: TEXFONTMAPS = .;$TEXMF/{fonts/,}map//;$TEXMF/dvips//
What about this? I am not completely convinced about it since with updmap we generate input file for all the different programs.
TEXFONTMAPS =.;$TEXMF/fonts/map/{$progname,pdftex,dvips,}// this should be ok for todays situation is better since it permits installation of fonts without the need for updmap magic (and side effects); maybe at some point in the future there will be a common map syntax (side product of pdftex project) which will make live easier 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 -----------------------------------------------------------------
Hi all! On Die, 24 Okt 2006, Norbert Preining wrote:
# texexec --make --all [--xetex | --aleph | --pdftex] <formats>
Where <formats> are the desired formats to run. The accepted list at the moment is: the eight ConTeXt formats, in both long ("cont-en" etc.) and short from ("en","nl","de","it","fr","cz", "ro","uk"), and "mptopdf", and the metapost mems "mpost" and "metafun".
Ok, I have rewritten the Debian context package so that it does the
following:
On installation/update time a script context-build-formats is called
which reads the file
/etc/texmf/context/formats.cnf
where all the formats to be build are defined. Currently my file looks
like this:
#
# This file defines which ConTeXt formats are build
#
{pdftex,aleph} {de,en,it,mptopdf}
Yes, it expands the curly braces.
On removal currently I don't do anything, because I don't know how to
know which files should be removed. But this shouldn't be to hard,
remove /usr/share/texmf/web2c/$engine/$format.*
Anyway, it is not very intellignet the script, no error checking,
nothing, but it runs.
What do you say:
- you ConTeXt people: concerning the format file, the way of updating?
- you Debian people: concerning the new way to define it?
The context-build-formats should be something like fmtutil(-sys) for
context. I didn't come around to implement the difference between the
-sys and the normal variant, but it should be easy, as in fmtutil-sys.
Any suggestions?
BTW, here is the code for the script, it is short:
#!/bin/bash
# context-build-formats
export TEXMFSYSCONFIG=/usr/share/texmf
parse_line()
{
engine=$1
format=$2
eval set $engine
allengines="$@"
eval set $format
allformats="$@"
for e in $allengines ; do
for f in $allformats ; do
texexec --make --$e $f
done
done
}
OIFS=$IFS
IFS='
'
set $(echo x; sed '/^#/d; /^[ ]*$/d' "/etc/texmf/context/formats.cnf")
; shift
IFS=$OIFS
for line
do
parse_line $line;
done
# eof
You see where I robbed the code ... fmtutil.
Best wishes
Norbert
-------------------------------------------------------------------------------
Dr. Norbert Preining
On Tue, Oct 24, 2006 at 18:51 +0200, Norbert Preining wrote:
Ok, I have rewritten the Debian context package so that it does the following:
On installation/update time a script context-build-formats is called which reads the file /etc/texmf/context/formats.cnf where all the formats to be build are defined.
Minor point: /etc/texmf is a TEXMF tree that IMHO should follow TDS, hence /etc/texmf/tex/context/formats.cnf might be more appropriate.
Currently my file looks like this: # # This file defines which ConTeXt formats are build # {pdftex,aleph} {de,en,it,mptopdf}
Yes, it expands the curly braces.
On removal currently I don't do anything, because I don't know how to know which files should be removed. But this shouldn't be to hard, remove /usr/share/texmf/web2c/$engine/$format.*
Really /usr/share? To which tree are format files written?
BTW, here is the code for the script, it is short: #!/bin/bash # context-build-formats export TEXMFSYSCONFIG=/usr/share/texmf
Why that? (Probably related to the question to which tree format files are written.) cheerio ralf
Ralf Stubner wrote:
On Tue, Oct 24, 2006 at 18:51 +0200, Norbert Preining wrote:
Ok, I have rewritten the Debian context package so that it does the following:
On installation/update time a script context-build-formats is called which reads the file /etc/texmf/context/formats.cnf where all the formats to be build are defined.
Minor point: /etc/texmf is a TEXMF tree that IMHO should follow TDS, hence /etc/texmf/tex/context/formats.cnf might be more appropriate.
it depends a bit, data and configuration files go under /tex/context, but you're right about a missing path part, it probably should be etc/texmf/context/config/formats.cnf 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 -----------------------------------------------------------------
participants (4)
-
Frank Küster
-
Hans Hagen
-
Norbert Preining
-
Ralf Stubner