# Strange depencies for some ports



## elvis4526 (Mar 2, 2011)

I love FreeBSD, but there is just one thing that I hate about it. Sometimes, ports have very strange dependencies. E.g. if I install misc/freebsd-doc-en, to have the man pages locally, I tried to install me Tetex_Base Oo. What does Latex have to do with the doc?

For example too, I tried to install VLC, I think I set the right options in the config menu, but it tried to install qt3 and qt4 plus a lot of kde4 apps. Is it normal? 

I always read everywhere on the Web that when you install from source, you can choose more efficiently the dependencies. For example, compile xorg-server without hal support. But now, when I install from ports, for almost every port, it brings me many more dependencies than any other minimal GNU/Linux distro. 

For example, with Gentoo, I just had to put the -kde use flag, and when I installed VLC, there were not really kde dependencies  .

Thanks for reading,

GoodBye


----------



## wblock@ (Mar 2, 2011)

The man pages are part of the base system, not a port.  misc/freebsd-doc-en is all the stuff in /usr/doc, a lot of which is built with various versions of TeX.  So that's just a misunderstanding.


----------



## jb_fvwm2 (Mar 2, 2011)

With vlc, you can deselect qt4 (at least for now). Maybe you want to install the "portsopt" port for easier pre-install choosing (and "lookat")

```
#cd /usr/ports/devel/boost-all
#portsopt | lookat
```
for example.


----------



## kpedersen (Mar 2, 2011)

Though you probably already know this...

When you build and install from the ports collection, you also require the build dependencies (stuff that is only needed to compile from source).

So by compiling from ports in order to remove many dependencies you actually end up with more packages installed on your build host. It is only when you then install those packages on other machines that you reap the benefits of less bloated packages.

Perhaps these strange dependencies that you are describing are simply the build deps.


----------



## jrm@ (Mar 2, 2011)

You may also be interested in ports-mgmt/pkg_cutleaves.


----------



## ckester (Mar 3, 2011)

The number of build- or run-dependencies can be surprising.  Especially since the port Makefile only needs to call out the top-level deps, which pull in the things they depend on -- which then pull in the things *they* depend on.  

With some ports it does indeed feel like there's no end to these cascading dependencies.  (It's turtles all the way down, as the saying goes.)

To avoid surprises, and to get some forewarning of what you're getting yourself into, try using this command before doing the actual build and install:

`# make all-depends-list`

There's a similar target for listing the build dependencies:

`# make build-depends-list`

and also, as you might have guessed, one for the run dependencies:

`# make run-depends-list`

As for why some ports have so many dependencies, well, that's just the way a lot of software is being developed nowadays.  People don't write programs for Unix, they write programs for the Gnome or KDE _environments_, and such programs end up depending on an entire ecosystem of shared libraries and build tools.


----------



## DutchDaemon (Mar 3, 2011)

Also quite useful in this context: [cmd=]make missing[/cmd] That one has saved me from some planet-sized installations (sorry, Pluto).

E.g.: I run XFCE, not KDE, but suppose I would like to try it out. What would I need to install _additionally_ to make it work?


```
[B][/usr/ports/x11/kde4] $ make missing[/B]
x11/kdebase4-runtime
x11/kdelibs4
x11/kdebase4
deskutils/kdepimlibs4
x11/kdebase4-workspace
accessibility/kdeaccessibility4
sysutils/kdeadmin4
x11-themes/kdeartwork4
games/kdegames4
misc/kdeedu4
graphics/kdegraphics4
net/kdenetwork4
multimedia/kdemultimedia4
deskutils/kdepim4
deskutils/kdeplasma-addons
x11-clocks/kdetoys4
devel/kdesdk4
misc/kdeutils4
www/kdewebdev4
accessibility/ktts
astro/marble
x11/plasma-scriptengine-python
x11/plasma-scriptengine-ruby
print/kdeutils4-printer-applet
print/system-config-printer-kde
multimedia/phonon-xine
x11-themes/kde4-icons-oxygen
security/libssh
devel/dbus-qt4
x11/qt4-opengl
multimedia/phonon
devel/automoc4
graphics/OpenEXR
multimedia/libxine
net/openslp
x11-toolkits/attica
net/cagibi
misc/kdehier4
hebrew/hspell
x11-toolkits/shared-desktop-ontologies
devel/qt4-assistant
devel/qt4-designer
graphics/qt4-imageformats
devel/qt4-makeqpf
net/qt4-network
devel/qt4-qdbusviewer
devel/qt4-qt3support
devel/qt4-qtestlib
devel/qt4-script
databases/qt4-sql
graphics/qt4-svg
textproc/qt4-xml
misc/kde4-shared-mime-info
deskutils/strigi
textproc/soprano
devel/qca
sysutils/policykit-qt
devel/libdbusmenu-qt
net/mDNSResponder
x11/qimageblitz
www/kwebkitpart
devel/qt4-help
security/gpgme
security/cyrus-sasl2
devel/boost-libs
devel/libical
net/openldap24-client
databases/akonadi
devel/qt4-porting
devel/qt4-uic3
www/qt4-webkit
x11/libxklavier
astro/gpsd
math/libqalculate
misc/kde4-xdg-env
math/eigen2
graphics/qt4-iconengines
multimedia/qt4-multimedia
graphics/qt4-pixeltool
games/ggz-client-libs
lang/ocaml
math/facile
math/gmm++
astro/xplanet
devel/boost-python-libs
astro/libnova
science/openbabel
astro/cfitsio
math/gsl
print/libspectre
print/teTeX-base
graphics/libart_lgpl
converters/fribidi
graphics/poppler-qt4
misc/chmlib
graphics/sane-backends
graphics/libgphoto2
graphics/djvulibre-nox11
textproc/ebook-tools
security/libotr
net/libvncserver
net-im/libmsn
polish/libgadu
net/ortp
net-im/telepathy-qt4
net-im/meanwhile
net-p2p/libktorrent
security/qca-ossl
audio/cdparanoia
audio/libmusicbrainz
audio/libtunepimp
audio/vorbis-tools
deskutils/kdepim4-runtime
hungarian/hunspell
security/gnupg
www/tidy-lib
accessibility/speech-dispatcher
devel/kdebindings4-python-pykde4
lang/ruby18
devel/kdebindings4-ruby
print/system-config-printer
print/py-cups
devel/kdebindings4-python-pykdeuic4
graphics/ilmbase
multimedia/libfame
sysutils/libcdio
audio/libmodplug
multimedia/vcdimager
multimedia/libvdpau
misc/qt4-doc
devel/qt4-declarative
textproc/qt4-clucene
textproc/clucene
textproc/raptor
textproc/redland
databases/libiodbc
databases/qt4-sqlite3-plugin
security/libassuan
devel/icu
databases/mysql55-server
databases/qt4-mysql-plugin
multimedia/phonon-gstreamer
devel/qt4-scripttools
textproc/qt4-xmlpatterns
math/cln
games/libggz
x11-toolkits/tk85
lang/f2c
print/teTeX-texmf
print/tex-texmflocal
www/libwww
graphics/poppler
graphics/poppler-data
archivers/libzip
net-im/telepathy-farsight
net-im/telepathy-glib
multimedia/mp4v2
audio/libofa
audio/musepack
audio/libao
multimedia/libkate
security/libksba
devel/pth
devel/dotconf
audio/espeak
x11-toolkits/py-qt4-gui
net/py-qt4-network
graphics/py-qt4-svg
www/py-qt4-webkit
textproc/py-qt4-xml
multimedia/py-qt4-phonon
devel/py-qt4-dbus
devel/kdebindings4-smoke
x11-toolkits/qwt5
devel/py-notify
print/cups-pk-helper
audio/libcddb
textproc/rasqal
databases/mysql55-client
print/cmpsfont
print/amspsfnt
graphics/openjpeg
lang/vala-vapigen
audio/portaudio
devel/py-sip
devel/qscintilla2
devel/py-qt4-core
x11/qt4-inputmethods
x11-fonts/p5-type1inst
textproc/p5-XML-LibXML
```

That's a pretty big planet.


----------

