Bug 428489

Summary: kpathsea has a massive dependency chain, pulls in half of X
Product: [Fedora] Fedora Reporter: Jonathan Underwood <jonathan.underwood>
Component: texliveAssignee: Jindrich Novy <jnovy>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: pertusus, pknirsch, zcerza
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-29 13:55:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 428509, 429811    
Bug Blocks:    

Description Jonathan Underwood 2008-01-12 01:37:57 UTC
Description of problem:
While working on the xdvi packaging, inside a clean rawhide mock environment i
did a yum install kpathsea-devel, and this is what yum pulls in:

mock-chroot> yum install kpathsea-devel.x86_64

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 kpathsea-devel          x86_64     2007-8.fc9       fedora            191 k
Installing for dependencies:
 atk                     x86_64     1.20.0-1.fc8     fedora            214 k
 cairo                   x86_64     1.5.4-1.fc9      fedora            421 k
 cups-libs               x86_64     1:1.3.5-1.fc9    fedora            191 k
 dvipdfmx                x86_64     0-8.fc9          fedora            363 k
 fontconfig              x86_64     2.5.0-1.fc9      fedora            177 k
 ghostscript             x86_64     8.61-6.fc9       fedora            8.8 M
 ghostscript-fonts       noarch     5.50-18.fc8      fedora            809 k
 gnutls                  x86_64     2.0.4-1.fc9      fedora            426 k
 gtk2                    x86_64     2.12.5-1.fc9     fedora            6.8 M
 hicolor-icon-theme      noarch     0.10-4           fedora             39 k
 htmlview                noarch     4.0.0-3.fc7      fedora            8.8 k
 kpathsea                x86_64     2007-8.fc9       fedora            110 k
 libXcomposite           x86_64     0.4.0-3.fc8      fedora             14 k
 libXcursor              x86_64     1.1.9-1.fc8      fedora             29 k
 libXfont                x86_64     1.3.1-1.fc8      fedora            228 k
 libXft                  x86_64     2.1.12-3.fc8     fedora             45 k
 libXi                   x86_64     1.1.3-1.fc8      fedora             28 k
 libXinerama             x86_64     1.0.2-3.fc8      fedora             13 k
 libXrandr               x86_64     1.2.2-1.fc8      fedora             21 k
 libXrender              x86_64     0.9.4-1.fc8      fedora             28 k
 libfontenc              x86_64     1.0.4-4.fc8      fedora             23 k
 libgcrypt               x86_64     1.4.0-1          fedora            209 k
 libgpg-error            x86_64     1.6-1            fedora             68 k
 libjpeg                 x86_64     6b-39.fc8        fedora            138 k
 libpng                  x86_64     2:1.2.22-1.fc8   fedora            238 k
 libthai                 x86_64     0.1.9-2.fc9      fedora            186 k
 libtiff                 x86_64     3.8.2-9.fc8      fedora            313 k
 mendexk                 x86_64     2.6e-8.fc9       fedora             21 k
 netpbm                  x86_64     10.35.36-1.fc9   fedora            823 k
 netpbm-progs            x86_64     10.35.36-1.fc9   fedora            2.0 M
 pango                   x86_64     1.19.2-1.fc9     fedora            363 k
 pixman                  x86_64     0.9.6-3.fc9      fedora             85 k
 poppler                 x86_64     0.6.2-3.fc9      fedora            3.1 M
 psutils                 x86_64     1.17-27.fc8      fedora             92 k
 redhat-menus            noarch     8.9.11-2.fc9     fedora            214 k
 ruby                    x86_64     1.8.6.111-6.fc9  fedora            513 k
 ruby-libs               x86_64     1.8.6.111-6.fc9  fedora            1.7 M
 teckit                  x86_64     2.2.1-2.fc8      fedora            370 k
 tex-preview             noarch     11.84-6.fc9      fedora             51 k
 texlive                 x86_64     2007-8.fc9       fedora            5.9 M
 texlive-dvips           x86_64     2007-8.fc9       fedora            317 k
 texlive-latex           x86_64     2007-8.fc9       fedora             80 k
 texlive-texmf           noarch     2007-6.fc9       fedora            6.3 M
 texlive-texmf-dvips     noarch     2007-6.fc9       fedora            831 k
 texlive-texmf-errata    noarch     2007-0.10.fc9    fedora            3.2 k
 texlive-texmf-errata-dvips  noarch     2007-0.10.fc9    fedora            3.2 k
 texlive-texmf-errata-fonts  noarch     2007-0.10.fc9    fedora            3.3 k
 texlive-texmf-errata-latex  noarch     2007-0.10.fc9    fedora            3.2 k
 texlive-texmf-fonts     noarch     2007-6.fc9       fedora             56 M
 texlive-texmf-latex     noarch     2007-6.fc9       fedora            3.8 M
 urw-fonts               noarch     2.4-4.fc9        fedora            3.2 M
 xdg-utils               noarch     1.0.2-2.fc8      fedora             51 k
 xorg-x11-font-utils     x86_64     1:7.2-3.fc9      fedora             78 k

Transaction Summary
=============================================================================
Install     54 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 106 M


This really doesn't seem right for a such a simple library - it really shouldn't
be pulling in all of those X libs.

Comment 1 Patrice Dumas 2008-01-12 11:28:44 UTC
You are only seing the dependencies of texlive. Indeed, kpathsea
depends on texlive because the library call programs from texlive.
And kpathsea-devel depends on kpathsea. Maybe texlive shouldn't 
depend on X, but this is not a kpathsea issue as such.

texlive depends directly on libX11 and libXt.
ghostscript depends on libICE libSM libXext libXt.

The htmlview and gtk dependencies look less clean to me.

Comment 2 Jonathan Underwood 2008-01-12 12:25:37 UTC
Yes, I understand the texlive dependencies, but not eg. ruby, cairo, gtk etc
etc.  I think we need to work out which parts of texlive are pulling in X and
put those into subpackages. This *might* be due to the fact that currently xdvi
is built as part of texlive (which I am working to change by packaging it
separately), but that isn't being pulled in as a dependency anyway, so something
else is pulling in X... question is what.

Comment 3 Patrice Dumas 2008-01-12 12:36:01 UTC
ruby is also normal, context uses ruby. But indeed you are right
about the gtk deps should be avoided. The issue is not xdvi, it
is in a subpackage.

Comment 4 Jindrich Novy 2008-01-14 10:21:43 UTC
The libX11 and libXt dependencies are pulled in because of metafont (mf) binary,
which allows to use graphics. Since mktexpk and other scripts using metafont use
mf-nowin which doesn't support graphics for apparent reasons I'm about to move
mf with graphics support to a subpackage to have only a core functionality in
the baseline texlive package without unnecessary dependency bloat:

$ ldd -r mf | grep libX
        libXt.so.6 => /usr/lib64/libXt.so.6 (0x0000003e22000000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x0000003e16600000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x0000003284600000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x0000003284200000)


Comment 5 Patrice Dumas 2008-01-14 10:40:29 UTC
I think that it doesn't make sense if you don't exclude
the ghostscript dependencies too. Or ghostscript is split 
(if it is possible).

Comment 6 Jindrich Novy 2008-01-14 10:59:50 UTC
Hmm, maybe we should then look more into what scripts particularly need
ghostscript and focus on a possibility to package them in a subpackage.

Comment 7 Jindrich Novy 2008-01-23 05:30:09 UTC
*** Bug 429753 has been marked as a duplicate of this bug. ***

Comment 8 Jindrich Novy 2008-01-23 05:32:54 UTC
The packaging modification of the baseline texlive package is in progress
already. The main ideas are to package xetex in texlive-xetex (removed
dependency on teckit-devel, dvipdfmx), packaging stuff using ghostscript and
metafont with X support in texlive-utils (removing dependendencies on X, Perl),
also we should consider Requires: mendex as it's not needed by anything in
texlive and is kept for a sole purpose of tetex compatibility. Also we could
move dvips utilities such as "allneeded" and "allcm" to dvips to get rid of the
texlive-dvips requires.

These changes should be ready for commit during today.

Comment 9 Jindrich Novy 2008-01-23 08:21:39 UTC
Main dependency polluters are:

poppler - packages libpoppler and libpoppler-glib in a single package what pulls
in dependencies on libgdk-x11, libgdk_pixbuf, libjpeg, libpango, libpangocairo
and all libglib stack (#428509)

tex-preview - useless ghostscript dependency (#429811)

xdg-utils - depends on desktop-file-utils, which depend on libglib -> likely
unavoidable, because the original sources use glib, the only way how to get rid
of these dependencies is not use xdg-utils.


Comment 10 Patrice Dumas 2008-01-23 08:26:35 UTC
(In reply to comment #9)

> xdg-utils - depends on desktop-file-utils, which depend on libglib -> likely
> unavoidable, because the original sources use glib, the only way how to get rid
> of these dependencies is not use xdg-utils.

It seems to me that xdg-utils should only be a dependency of
texlive-doc.



Comment 11 Patrice Dumas 2008-01-23 08:31:46 UTC
(In reply to comment #8)
> The packaging modification of the baseline texlive package is in progress
> already. The main ideas are to package xetex in texlive-xetex (removed
> dependency on teckit-devel, dvipdfmx), packaging stuff using ghostscript and
> metafont with X support in texlive-utils (removing dependendencies on X, Perl),
> also we should consider Requires: mendex as it's not needed by anything in
> texlive and is kept for a sole purpose of tetex compatibility. Also we could
> move dvips utilities such as "allneeded" and "allcm" to dvips to get rid of the
> texlive-dvips requires.
> 
> These changes should be ready for commit during today.

Looks like a very good plan. I doubt it will solve the evince issue, 
though.

Comment 12 Jindrich Novy 2008-02-22 10:12:39 UTC
It should be fine now, after poppler/poppler-glib split and texlive(-texmf)
subpackaging. For more info:

https://www.redhat.com/archives/fedora-devel-list/2008-February/msg01825.html

Comment 13 Patrice Dumas 2008-02-26 00:00:22 UTC
There is still the xdg-utils which should be, in my opinion,
Required by texlive-doc only.

Also texlive-texmf-fonts has still:
# required for dvipdfmx
Requires:       ghostscript

It seems to be for the cmap files. Maybe ghostscript should be 
a direct requires for dvipdfmx, such that it isn't needed
by texlive?


Comment 14 Jonathan Underwood 2008-02-26 00:24:06 UTC
The current version of the separate dvipdfmx package does Requires: ghostrcript,
if that helps.

Comment 15 Jindrich Novy 2008-02-29 13:55:15 UTC
Applied, thanks!