latex: user-specific texmf.cnf files do not work as expected

Bug #186164 reported by Hans Georg
4
Affects Status Importance Assigned to Milestone
texlive-base (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

This bug appeared after upgrade to 7.10, and it also exists in a fresh installation of 8.04 alpha 3.
It works fine in every other latex installation I have every used, including ubuntu prior to 7.10 and Fedora Core.
On 8.04 a3 I carefully avoided to install tetex-extra, in case the problem was caused by a conflict between tetex and texlive.

I have a personal texmf.cnf file which only override selected paths, compared to the system texmf.cnf.
This no longer seems to work; styles in the local or home directories, as specified in the local or home texmf.cnf are not found by (pdf)latex.
Oddly, they are found by kpsewhere
$ kpsewhich unislide.sty
$ kpsewhere unislide.sty
/home/georg/share/texmf/tex/latex/hgbeamer/unislide.sty
This behaviour is not consistent with the man pages as far as I can tell.

Revision history for this message
Hans Georg (h-schaathun) wrote :

I stumbled across the explanation for my problems.
texlive places all ls-R databases centrally, rather in the respective texmf trees, thus ls-R in TEXMFHOME is not read.
This is a problem of texlive itself; a separate installation of texlive shows the same problem.

Revision history for this message
Norbert Preining (preining) wrote : Re: [Bug 186164] [NEW] latex: multiple texmf.cnf files do not work correctly

On Fr, 01 Feb 2008, Launchpad Bug Tracker wrote:
> I have a personal texmf.cnf file which only override selected paths, compared to the system texmf.cnf.

Where is the local texmf.cnf? What is the TEXMFCNF?
 kpsewhich -var-value TEXMFCNF

Best wishes

Norbert

-------------------------------------------------------------------------------
Dr. Norbert Preining <email address hidden> Vienna University of Technology
Debian Developer <email address hidden> Debian TeX Group
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
EPSOM (n.)
An entry in a diary (such as a date or a set of initials) or a name
and address in your address book, which you haven't the faintest idea
what it's doing there.
   --- Douglas Adams, The Meaning of Liff

Revision history for this message
Hans Georg (h-schaathun) wrote : Re: [Bug 186164] [NEW] latex: multiple texmf.cnf files do not work correctly

On Mon, Mar 17, 2008 at 10:30:51AM -0000, Norbert Preining wrote:
> On Fr, 01 Feb 2008, Launchpad Bug Tracker wrote:
> > I have a personal texmf.cnf file which only override selected paths, compared to the system texmf.cnf.
>
> Where is the local texmf.cnf?

In my home directory. Does it matter?

> What is the TEXMFCNF?

The environment which specifies where to find the texmf.cnf config file.

However, I found the bug. tex-live appears to put all the ls-R
index files in a central directory, and consequently they cannot
be updated by a user. It follows that under tex-live, a user
texmf tree has to be searched explicitely without using an ls-R
index.

The problem is the same with a native installation of tex-live.

:-- george

Revision history for this message
Norbert Preining (preining) wrote :

On Mo, 17 Mär 2008, Hans Georg wrote:
> > Where is the local texmf.cnf?
>
> In my home directory. Does it matter?

in ~/texmf.cnf?? If yes, it does matter. How do you expect that tex is
finding that? Should it search the whole hard disk, or the whole $HOME
(which might be on NFS and be huge ..).

> > What is the TEXMFCNF?
>
> The environment which specifies where to find the texmf.cnf config file.

Thanks, I was asking for the setting of TEXMFCNF, not its meaning.

> However, I found the bug. tex-live appears to put all the ls-R
> index files in a central directory, and consequently they cannot
> be updated by a user. It follows that under tex-live, a user
> texmf tree has to be searched explicitely without using an ls-R
> index.

What? The Debian/Ubuntu packages put ls-R files for /var/lib/texmf,
/usr/share/texmf, /usr/share/texmf-texlive under /var and create links.
Nothing else is done.

If you call
 mktexlsr ~/texmf
then you will get
 ~/texmf/ls-R

The problem might be that there was an out-dated ls-R file NOT listing
the texmf.cnf file. Right? In this case, please remove ls-R files in ~,
they are useless.

Best wishes

Norbert

-------------------------------------------------------------------------------
Dr. Norbert Preining <email address hidden> Vienna University of Technology
Debian Developer <email address hidden> Debian TeX Group
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
TINGRITH (n.)
The feeling of silver paper against your fillings.
   --- Douglas Adams, The Meaning of Liff

Revision history for this message
Hans Georg (h-schaathun) wrote :

On Mon, Mar 17, 2008 at 02:30:32PM -0000, Norbert Preining wrote:
> in ~/texmf.cnf?? If yes, it does matter. How do you expect that tex is
> finding that? Should it search the whole hard disk, or the whole $HOME
> (which might be on NFS and be huge ..).
> (...)
> Thanks, I was asking for the setting of TEXMFCNF, not its meaning.

Sorry. I was confused, lacking the full context of the original
bug report. I have learnt things later, but I did not see how to
add comments to the bug.

Anyway, this is what I have
  TEXMFCNF=.:/home/georg/share/texmf/web2c:
  /home/georg/share/texmf/web2c/texmf.cnf

> > However, I found the bug. tex-live appears to put all the ls-R
> > index files in a central directory, and consequently they cannot
> > be updated by a user. It follows that under tex-live, a user
> > texmf tree has to be searched explicitely without using an ls-R
> > index.
>
> What? The Debian/Ubuntu packages put ls-R files for /var/lib/texmf,
> /usr/share/texmf, /usr/share/texmf-texlive under /var and create links.
> Nothing else is done.
>
> If you call
> mktexlsr ~/texmf
> then you will get
> ~/texmf/ls-R
>
> The problem might be that there was an out-dated ls-R file NOT listing
> the texmf.cnf file. Right? In this case, please remove ls-R files in ~,
> they are useless.

Why is ls-R useless under ~?

1. Removing ls-R makes no difference.
2. Remaking ls-R makes no difference.
3. Changing texmf.cnf to ignore ls-R does make a difference.

The only hypothesis that I can see to explain this behaviour
is that ls-R at the root of the texmf tree is not found.
(Note that this is still where mktexlsr places it.)

I am not sure how much speed one would gain by using ls-R,
but it does work satisfactorily when I don't use it.
The undocumented behaviour is annoying, but I can live with it.

The previous setup had worked for years with tetex under previous
Ubuntu releases, other linux distroes and solaris.

I am convinced that the texmf.cnf was read all the time, but
that the texmf tree was not searched and the ls-R was not found.
It would be very odd if ls-R is used to locate texmf.cnf, as
texmf.cnf defines whether ls-R should be used or not.

Thanks for your time.

:-- George

Revision history for this message
Norbert Preining (preining) wrote :

Hi,

On Mo, 17 Mär 2008, Hans Georg wrote:
> Anyway, this is what I have
> TEXMFCNF=.:/home/georg/share/texmf/web2c:
> /home/georg/share/texmf/web2c/texmf.cnf

Ok.

> Why is ls-R useless under ~?
>
> 1. Removing ls-R makes no difference.
> 2. Remaking ls-R makes no difference.
> 3. Changing texmf.cnf to ignore ls-R does make a difference.

They are not useless, but dangerous, because people tend to forget to
update the ls-R database when dropping files into ~/texmf. That's the
reason why ls-R search is disabled in TEXMFHOME.

> I am not sure how much speed one would gain by using ls-R,

in $HOME probably nothing.

> The undocumented behaviour is annoying, but I can live with it.

I still don't see actually what the undocumented behaviour is. THe one
is funding texmf.cnf in TEXMFHOME/web2c/texmf.cnf, the other is about
searching/using ls-R. So what is the problem?

> The previous setup had worked for years with tetex under previous
> Ubuntu releases, other linux distroes and solaris.

Well, they probably had a different texmf.cnf.

> I am convinced that the texmf.cnf was read all the time, but
> that the texmf tree was not searched and the ls-R was not found.
> It would be very odd if ls-R is used to locate texmf.cnf, as
> texmf.cnf defines whether ls-R should be used or not.

the FIRST texmf.cnf is NEVER searched via ls-R or something similar, but
via compiled in pathes (using SELFAUTOPARENT and some fixed pathes).
Then TEXMFCNF is used to find other texmf.cnf files. That is what should
work. ls-R or not is a different behaviour.

If the texmf.cnf thingy does not work please complain with a detailed
bug report to
 <email address hidden>

Thanks.

Best wishes

Norbert

-------------------------------------------------------------------------------
Dr. Norbert Preining <email address hidden> Vienna University of Technology
Debian Developer <email address hidden> Debian TeX Group
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
PAPWORTH EVERARD (n.)
Technical term for the third take of an orgasm scene during the making
of a pornographic film.
   --- Douglas Adams, The Meaning of Liff

Revision history for this message
Hans Georg (h-schaathun) wrote :

Hi,

On Mon, Mar 17, 2008 at 09:42:55PM -0000, Norbert Preining wrote:
> I still don't see actually what the undocumented behaviour is. THe one
> is funding texmf.cnf in TEXMFHOME/web2c/texmf.cnf, the other is about
> searching/using ls-R. So what is the problem?

What's undisputably undocumented (or misdocumented) is the fact that
kpsewhich and kpsewhere do not find the same file (as first hit).

Is this a texlive or ubuntu issue?
I see that kpseawhere(1) indicates that it belongs to tetex,
but I thought I had avoided all tetex-specific packages.

> > The previous setup had worked for years with tetex under previous
> > Ubuntu releases, other linux distroes and solaris.
>
> Well, they probably had a different texmf.cnf.

Thanks for that. Now I finally managed to find the second
variable which controls the use of ls-R. That was far from
easy to understand from the comments in texmf.cnf.

Now it works, thanks for your help.
:-- George

Revision history for this message
Norbert Preining (preining) wrote :

On Mo, 17 Mär 2008, Hans Georg wrote:
> What's undisputably undocumented (or misdocumented) is the fact that
> kpsewhich and kpsewhere do not find the same file (as first hit).

Huu? Example please? They do *different* things. kpsewhich gives the
file as found by the kpse lib, while kpsewhere to (from the man page):
       kpsewhere - Expanding kpsewhich to separately iterate over each texmf
       tree listed in $TEXMF.

So it is not surprising that they find different files, kpsewhere will
find more files. Files can be shadowed by putting a file of the same
name into a higher order directory, that is a feature.

Best wishes

Norbert

-------------------------------------------------------------------------------
Dr. Norbert Preining <email address hidden> Vienna University of Technology
Debian Developer <email address hidden> Debian TeX Group
gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
-------------------------------------------------------------------------------
CRANLEIGH (n.)
A mood of irrational irritation with everyone and everything.
   --- Douglas Adams, The Meaning of Liff

Revision history for this message
Hans Georg (h-schaathun) wrote :

On Tue, Mar 18, 2008 at 06:36:53AM -0000, Norbert Preining wrote:
> Huu? Example please? They do *different* things. kpsewhich gives the
> file as found by the kpse lib, while kpsewhere to (from the man page):
> kpsewhere - Expanding kpsewhich to separately iterate over each texmf
> tree listed in $TEXMF.
>
> So it is not surprising that they find different files, kpsewhere will
> find more files. Files can be shadowed by putting a file of the same
> name into a higher order directory, that is a feature.

I said `as first hit'. The example was in the original message that
you quoted.

When a tree in $TEXMF is marked by !!, but the tree does not appear
in $TEXMFDBS, then kpsewhere searches the tree whereas kpsewhich does
not. Thus kpsewhich finds nothing, and kpsewhere finds the single
matching file.

:-- George

Revision history for this message
Andreas Noteng (andreas-noteng) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. You reported this bug a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue for you. Can you try with the latest Ubuntu release? Thanks in advance.

Changed in texlive-base (Ubuntu):
status: New → Incomplete
Revision history for this message
Hans Georg (h-schaathun) wrote : Re: [Bug 186164] Re: latex: user-specific texmf.cnf files do not work as expected

On Sat, Feb 06, 2010 at 11:13:01PM +0000, Andreas Noteng wrote:
> Thank you for taking the time to report this bug and helping to make
> Ubuntu better. You reported this bug a while ago and there hasn't been
> any activity in it recently. We were wondering if this is still an issue
> for you. Can you try with the latest Ubuntu release? Thanks in advance.

Thanks for addressing it. It is no longer an issue, in the sense that
I have found a way around it, without really remembering the details how.
I think there is an issue with the TEXMFDBS variable in texmf.cnf, and
I had to override it to work in the recent Ubuntu's while this was not
necessary in the past.

:-- George

>
> ** Changed in: texlive-base (Ubuntu)
> Status: New => Incomplete
>
> --
> latex: user-specific texmf.cnf files do not work as expected
> https://bugs.launchpad.net/bugs/186164
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in “texlive-base” package in Ubuntu: Incomplete
>
> Bug description:
> This bug appeared after upgrade to 7.10, and it also exists in a fresh installation of 8.04 alpha 3.
> It works fine in every other latex installation I have every used, including ubuntu prior to 7.10 and Fedora Core.
> On 8.04 a3 I carefully avoided to install tetex-extra, in case the problem was caused by a conflict between tetex and texlive.
>
> I have a personal texmf.cnf file which only override selected paths, compared to the system texmf.cnf.
> This no longer seems to work; styles in the local or home directories, as specified in the local or home texmf.cnf are not found by (pdf)latex.
> Oddly, they are found by kpsewhere
> $ kpsewhich unislide.sty
> $ kpsewhere unislide.sty
> /home/georg/share/texmf/tex/latex/hgbeamer/unislide.sty
> This behaviour is not consistent with the man pages as far as I can tell.
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/ubuntu/+source/texlive-base/+bug/186164/+subscribe

Revision history for this message
Andreas Noteng (andreas-noteng) wrote :

Closing. Please reopen or file a new bug if this issue reappears.

Changed in texlive-base (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.