[SOLVED] BUG: pedigree module in texlive-2019.190626-x86_64-4 broken
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
BUG: pedigree module in texlive-2019.190626-x86_64-4 broken
Hello,
pedigree - create a TeX file for pedigree from a csv file is broken on Slackware-current64. This module is in package texlive-2019.190626-x86_64-4
root@p:~# pedigree
Can't locate Pedigree.pm in @INC (you may need to install the Pedigree module) (@INC contains: //texmf-dist/scripts/pedigree-perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/bin/pedigree line 124.
BEGIN failed--compilation aborted at /usr/bin/pedigree line 124.
and on user the same result:
$ pedigree
Can't locate Pedigree.pm in @INC (you may need to install the Pedigree module) (@INC contains: //texmf-dist/scripts/pedigree-perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/bin/pedigree line 124.
BEGIN failed--compilation aborted at /usr/bin/pedigree line 124.
Line 124 on file pedigree in /usr/bin need to be changed
From:
Code:
use Pedigree
To :
Code:
use lib '/usr/share/texmf-dist/scripts/pedigree-perl/Pedigree';
I think the issue is with the command "kpsewhich -var-value=SELFAUTOPARENT" that isn't able to return the correct path, "/usr/share", and returns instead "/" (and that is included in @INC later in pedigree.pl): IMHO the just-fix-it-I-dont-care solution should be to run a sed like that in the packaged texlive
Code:
sed -i 's|`kpsewhich -var-value=SELFAUTOPARENT`|"/usr/share/"|' $PKG/usr/share/texmf-dist/scripts/*/*.pl
but it's just a workaround, because the thing to actually fix should be kpsewhich.
maybe the texlive maintainer on SBo, Johannes, could have a better fix...
Finally, it sets the environment variables SELFAUTOLOC, SELFAUTODIR and SELFAUTOPARENT to the location, parent and grandparent directory of the executable, removing . and .. path elements and resolving symbolic links. These are used in the default configuration file to allow people to invoke TeX from anywhere. You can use ‘kpsewhich --expand-var=\$SELFAUTOLOC’, etc., to see the values.
And on my machine (running 14.2 with texlive from SBo):
I think the issue is with the command "kpsewhich -var-value=SELFAUTOPARENT" that isn't able to return the correct path, "/usr/share", and returns instead "/"
The idea on that in the buildscript is, that binaries/links from texlive may reside in /usr/bin and not in /usr/share/texmf-dist/bin.
It was a pain at least for me, that TeTeX had that extra PATH added bei profile.sh which e.g. is causing build issues on SBo when builders didn't correctly "su -". That feels like putting e.g. named to /opt/bin to me ;-)
So i'll see what i can do for pedigree, i have no immediate optimal fix. Maybe poking in kpsewhich.
I tried to find a list of variables supported by kpsewhich, to see if any had "/usr/share" output, but I came up blank (although, I don't really use texlive, so my knowledge is limited). If you can't find a kpsewhich variable for /usr/share, you may want to use ponce's sed line on the above scripts.
From the texlive mailinglist i was told, that it's a fail from the perl-script maintainer(which is informed now),
and that a fix like ponce suggested would do it.
Hopefully the maintainer fixes his scripts, so it will be automatically fixed here with the next release.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.