Bug 971778 - tetex-elsevier after an update still in a "wrong" path
Summary: tetex-elsevier after an update still in a "wrong" path
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: tetex-elsevier
Version: 18
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Michael J Gruber
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-06-07 09:16 UTC by Michal Jaegermann
Modified: 2013-11-15 20:35 UTC (History)
3 users (show)

Fixed In Version: tetex-elsevier-0.1.20090917-11.fc18
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-12 00:29:00 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Michal Jaegermann 2013-06-07 09:16:13 UTC
Description of problem:
A changelog to the latest update of tetex-elsevier claims:


* Fri Mar 01 2013 Michael J Gruber <mjg> - 0.1.20090917-8
- adjust texmf tree to current texlive layout


The catch is that after this update 'kpsewhich elsart.cls' comes up empty.  Indeed, running

     kpsewhich --debug 1 elsart.cls

shows that kpathsea does not even try to look into /usr/share/texmf-local/ tree where files from this package live.
     
Version-Release number of selected component (if applicable):
tetex-elsevier-0.1.20090917-8.fc18.noarch
texlive-2012-20.20130321_r29448.fc18

Additional info:
That is clearly easy to "fix" by providing a symlink located in /usr/share/texlive/texmf-local/ which will cause this to searched.  Only I have to admit that I am terminally confused where texlive keeps its configuration information and how to adjust it.  What 'texconfig-sys' reports as a configuration seems to have a very loose connection with a reality.  Possibly this is documented somewhere but I was not patient enough to dig that information out.

I did not try to make an extensive survey but it would not be a surprise to learn that tetex-elsevier shares the issue with other packages.

Comment 1 Michael J Gruber 2013-06-07 09:25:34 UTC
rpm -q tetex-elsevier texlive; kpsewhich elsart.cls
tetex-elsevier-0.1.20090917-8.fc18.noarch
texlive-2012-20.20130321_r29448.fc18.x86_64
/usr/share/texlive/../texmf-local/tex/latex/elsevier/elsart.cls

And no, I don't use any special env vars.

texlive has been having update issues again and again. tetex-elsevier does in fact trigger mktexlsr in spec. Could you try uninstalling and installing this package?

texlive-base provides a symlink texmf-compat -> ../../texmf in there, but no package seems to use that location, at least none that I use.

Comment 2 Michael J Gruber 2013-06-07 09:28:04 UTC
Just for reference, the update was triggered by bug 914541 where the OP could have gone to instead...

Comment 3 Michal Jaegermann 2013-06-07 10:59:39 UTC
(In reply to Michael J Gruber from comment #1)
> rpm -q tetex-elsevier texlive; kpsewhich elsart.cls
> tetex-elsevier-0.1.20090917-8.fc18.noarch
> texlive-2012-20.20130321_r29448.fc18.x86_64
> /usr/share/texlive/../texmf-local/tex/latex/elsevier/elsart.cls

Well, packages from tetex-elsevier are in /usr/share/texmf-local/

I am not sure how you are getting this "../texmf-local//' in your search path.
That clearly would make that work.  It should be a reason why it is missing for me but I do not know why.

> And no, I don't use any special env vars.

Hmm, what I have here is a result of running upgrade to F18 and I did not try to mess with a configuration in any way.  As I noted I even do not really know how.
 
> texlive has been having update issues again and again. tetex-elsevier does
> in fact trigger mktexlsr in spec.

Yes, I realize that.  I tried to run 'mktexlsr' myself and an output is:

mktexlsr: Updating /usr/share/texlive/texmf/ls-R... 
mktexlsr: Updating /usr/share/texlive/texmf-config/ls-R... 
mktexlsr: Updating /usr/share/texlive/texmf-dist/ls-R... 
mktexlsr: Updating /usr/share/texlive/texmf-local///ls-R... 
mktexlsr: Updating /usr/share/texlive/texmf-var/ls-R... 
mktexlsr: Done.

and there is no ls-R in /usr/share/texmf-local/

OTOH greping for 'elsa' in those ls-R brings:

/usr/share/texlive/texmf-dist/ls-R:elsarticle
/usr/share/texlive/texmf-dist/ls-R:./bibtex/bst/elsarticle:
/usr/share/texlive/texmf-dist/ls-R:elsarticle
/usr/share/texlive/texmf-dist/ls-R:./doc/latex/elsarticle:
/usr/share/texlive/texmf-dist/ls-R:elsart.4ht
/usr/share/texlive/texmf-dist/ls-R:elsarticle
/usr/share/texlive/texmf-dist/ls-R:./tex/latex/elsarticle:

and 

  find /usr/share/texlive/texmf-dist/ -name 'elsa*'

does find these:

/usr/share/texlive/texmf-dist/doc/latex/elsarticle
/usr/share/texlive/texmf-dist/tex/latex/elsarticle
/usr/share/texlive/texmf-dist/tex/generic/tex4ht/elsart.4ht
/usr/share/texlive/texmf-dist/bibtex/bst/elsarticle


> texlive-base provides a symlink texmf-compat -> ../../texmf in there, but no
> package seems to use that location, at least none that I use.

I am not sure how to deal with this mess.

> the update was triggered by bug 914541 where the OP could have gone to instead...

Indeed, he could if bugzilla would find an appropriate bug which it failed to do when nicely asked.

Comment 4 Michal Jaegermann 2013-06-08 09:19:19 UTC
Just to add to this: I tried the same on two other F18 installation elsewhere where tetex-elsevier-0.1.20090917-8.fc18 was installed.  In all cases 'kpsewhich elsart.cls' comes out empty.  How do you have '/usr/share/texlive/../texmf-local//' in your search path and I could not find it at all is something I do not know how to explain.

Comment 5 Michal Jaegermann 2013-10-10 23:48:37 UTC
Any developments on this issue?

I should add that with my updated texlive installation I see the following:

$ kpsewhich -var-value=TEXMF
{/home/michal/.texlive2012/texmf-config,/home/michal/.texlive2012/texmf-var,/home/michal/texmf,!!/usr/share/texlive/texmf-config,!!/usr/share/texlive/texmf-var,!!/usr/share/texlive/texmf,!!/usr/share/texlive/texmf-local//,!!/usr/share/texlive/texmf-dist}

In other words subdirectories of /usr/share/texmf-local/, where files from tetex-elsevier are located, will be NOT searched.  Sure, I can hack mine installation to change that but this is not the point.

Comment 6 Michael J Gruber 2013-10-11 08:59:30 UTC
On an "empty" account I get this:

kpsewhich -var-value=TEXMF
{/home/michael/.texlive2012/texmf-config,/home/michael/.texlive2012/texmf-var,/home/michael/texmf,!!/usr/share/texlive/texmf-config,!!/usr/share/texlive/texmf-var,!!/usr/share/texlive/texmf,!!/usr/share/texlive/../texmf-local,!!/usr/share/texlive/texmf-dist}

And this seems to come from:

/usr/share/texlive/texmf/web2c/texmf.cnf:TEXMFLOCAL = $TEXMFROOT/../texmf-local

which is from:

rpm -qf /usr/share/texlive/texmf/web2c/texmf.cnf
tex-kpathsea-svn27341-1.noarch

All of this corresponds with

/usr/share/texlive/texmf/doc/texlive/texlive-en/texlive-en.html

which says that texmf-local is not parallel to texmf, but one dir below that in the tree. (The doc says 2012 where we have texlive.)

Also, I got no definite response on the fedora-texlive list.

In the long run, I think that packages like this one should be either part of texlive or installed by the user in their own tree. For now, I'm sorry that I'm not convinced that something is wrong and how to fix it. But I'm open to clarification and suggestions.

Comment 7 Michal Jaegermann 2013-10-11 16:01:20 UTC
(In reply to Michael J Gruber from comment #6)
> On an "empty" account I get this:

The difference is that on all installations I checked I have
!!/usr/share/texlive/texmf-local//
while you are showing 
!!/usr/share/texlive/../texmf-local
and this is something else.

> 
> And this seems to come from:
> 
> /usr/share/texlive/texmf/web2c/texmf.cnf:TEXMFLOCAL =
> $TEXMFROOT/../texmf-local

Well, that is that detail.  I have in this file

% Local additions to the distribution trees.
TEXMFLOCAL = $TEXMFROOT/texmf-local//
 
> which is from:
> 
> rpm -qf /usr/share/texlive/texmf/web2c/texmf.cnf
> tex-kpathsea-svn27341-1.noarch

And what I have is absolutely not modified from

texlive-kpathsea-svn28792.0-20.fc18.noarch

with a Build Date "Thu 28 Mar 2013 12:04:49 AM MDT" and, as far as I can see, this is what you will get if you try to retrieve one from F18 repositories.
I really have no idea where your version is coming from.

Moreover, at the beginning of the temxf.cnf file you can find

% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
% updated.  .....

> All of this corresponds with
> 
> /usr/share/texlive/texmf/doc/texlive/texlive-en/texlive-en.html

Yes.  The catch is that here, and few other places, docs do not quite correspond to reality.  Is your texlive installation updated to the current state or you are not running Fedora 18?

Comment 8 Michal Jaegermann 2013-10-11 16:44:31 UTC
BTW - I checked how the situation looks in texlive-kpathsea-svn30218.0-0.1.fc19, i.e. in the current package for Fedora 19.  These lines

% Local additions to the distribution trees.
TEXMFLOCAL = $TEXMFROOT/texmf-local//

are exactly the same as in texmf.cnf from texlive-kpathsea-svn28792.0-20.fc18.

Comment 9 Michael J Gruber 2013-11-05 08:54:33 UTC
So, I finally was able to confirm this in a fresh vm. Sorry for the long wait.

It seems we can put the tree for 'local' (i.e. non-texlive) packages either under

$TEXMFROOT/texmf-local/

or under

/usr/share/texmf/

which is symlinked as 'texmf-compat' from 'texmf-local'.

Any opinions? (The fedora-texlive ml hasn't been helpful so far.)

I'm leaning towards 'texmf-local' aka 'kpsewhich -var-value TEXMFLOCAL' (which for whatever reasons produces different results on my main install, but is consistent everywhere else). I guess this is in line with the OP.

[The unversioned docdir fix will come first, though. No change for f18/19.]

Comment 10 Michael J Gruber 2013-11-05 09:36:51 UTC
Michal, how are these for you (scratch build):

http://koji.fedoraproject.org/koji/taskinfo?taskID=6138810

Comment 11 Michal Jaegermann 2013-11-05 16:47:47 UTC
(In reply to Michael J Gruber from comment #9)
.....
> 
> or under
> 
> /usr/share/texmf/
> 
> which is symlinked as 'texmf-compat' from 'texmf-local'.
> 
> Any opinions? (The fedora-texlive ml hasn't been helpful so far.)

I am just an "innocent bystander" here but I would go with this solution.  I do think that /usr/share/texmf/ will vanish in a foreaseable future for assorted reasons.  If there are some considerations which would make the current location preferrable then I would provide symlinks
from 'elsevier' to corresponding locations ('latex', 'bst', 'doc') in /usr/share/texmf/ and that should work in all interesting cases.

Comment 12 Michal Jaegermann 2013-11-05 16:51:04 UTC
(In reply to Michael J Gruber from comment #10)
> Michal, how are these for you (scratch build):
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6138810

I fail to see any layout modifications at all, neither in fc18 nor in fc21 packages, so I does not look to me that this is addressing the issue at all.

Comment 13 Michael J Gruber 2013-11-05 19:51:43 UTC
(In reply to Michal Jaegermann from comment #12)
> (In reply to Michael J Gruber from comment #10)
> > Michal, how are these for you (scratch build):
> > 
> > http://koji.fedoraproject.org/koji/taskinfo?taskID=6138810
> 
> I fail to see any layout modifications at all, neither in fc18 nor in fc21
> packages, so I does not look to me that this is addressing the issue at all.

The elsevier tree is under

/usr/share/texlive/texmf-local/

now. Note the "texlive" part that you had reported as missing and that is present now. The patch let's kpsewhich expand TEXMFLOCAL and uses that.

In any case, the scratch builds were off a spec file where I had missed bumping the version number. A scratch build off my current git tree is here:

http://koji.fedoraproject.org/koji/taskinfo?taskID=6141343

Comment 14 Michal Jaegermann 2013-11-05 20:55:35 UTC
(In reply to Michael J Gruber from comment #13)

> 
> The elsevier tree is under
> 
> /usr/share/texlive/texmf-local/

Ah, yes, I was looking at tetex-elsevier-0.1.20090917-10.fcXX packages, with a datestamp from today and so far the latest at 
http://koji.fedoraproject.org/koji/packageinfo?packageID=3959 , while you meant ...-11...  I failed to notice that detail and locations indeed changed.

Like I noted in comment 11 I think that a slightly different layout would be more flexible, and in particular more robust with respect to possible further changes in 'texlive-base' package, but whatever works.

Comment 15 Michael J Gruber 2013-11-06 08:14:25 UTC
(In reply to Michal Jaegermann from comment #14)
> (In reply to Michael J Gruber from comment #13)
> 
> > 
> > The elsevier tree is under
> > 
> > /usr/share/texlive/texmf-local/
> 
> Ah, yes, I was looking at tetex-elsevier-0.1.20090917-10.fcXX packages, with
> a datestamp from today and so far the latest at 
> http://koji.fedoraproject.org/koji/packageinfo?packageID=3959 , while you
> meant ...-11...  I failed to notice that detail and locations indeed changed.
> 
> Like I noted in comment 11 I think that a slightly different layout would be
> more flexible, and in particular more robust with respect to possible
> further changes in 'texlive-base' package, but whatever works.

Oh, then I misunderstood your comment #11 completely. I thought you prefer /usr/share/texlive/texmf-local because /usr/share/texmf is old, and the "compat" link indicates the same.

In any case, I think the macro

%define texmflocal   %(kpsewhich -var-value TEXMFLOCAL)

is the most robust way for now, and texlive-elsevier will obsolete tetex-elsevier in newer Fedoras anyway. (That one will use /usr/share/texlive/texmf-dist, of course.)

Comment 16 Fedora Update System 2013-11-06 09:03:16 UTC
tetex-elsevier-0.1.20090917-11.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/tetex-elsevier-0.1.20090917-11.fc20

Comment 17 Fedora Update System 2013-11-06 09:04:02 UTC
tetex-elsevier-0.1.20090917-11.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/tetex-elsevier-0.1.20090917-11.fc19

Comment 18 Fedora Update System 2013-11-06 09:04:48 UTC
tetex-elsevier-0.1.20090917-11.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/tetex-elsevier-0.1.20090917-11.fc18

Comment 19 Michal Jaegermann 2013-11-06 16:25:51 UTC
(In reply to Michael J Gruber from comment #15)
> 
> In any case, I think the macro
> 
> %define texmflocal   %(kpsewhich -var-value TEXMFLOCAL)
> 
> is the most robust way for now,

Is this documented anywhere as a single path and not a list, for example?  Does not seem to make much sense otherwise but I started to wonder.  Just in case. :-)

> and texlive-elsevier will obsolete
> tetex-elsevier in newer Fedoras anyway.

That for sure will make all of the above moot but I thought that you are taking into account an impact on RHEL distributions (or something like that).

Comment 20 Fedora Update System 2013-11-06 18:24:08 UTC
Package tetex-elsevier-0.1.20090917-11.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing tetex-elsevier-0.1.20090917-11.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-20777/tetex-elsevier-0.1.20090917-11.fc20
then log in and leave karma (feedback).

Comment 21 Fedora Update System 2013-11-12 00:29:00 UTC
tetex-elsevier-0.1.20090917-11.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 22 Fedora Update System 2013-11-15 20:34:35 UTC
tetex-elsevier-0.1.20090917-11.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 23 Fedora Update System 2013-11-15 20:35:49 UTC
tetex-elsevier-0.1.20090917-11.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.