Why does the freebsd port have 200+ dependancies?

(FreeBSD specific post, if you’re not using you can simply ignore this
message)

After seeing the ten bazillion things that www/rt38 wanted to install
I ended up building a new machine separate from our build server just
to build all of these ports. I installed every one of them by hand
(non-root user, typing the root password each time, manually checking
the config option for each port). I disabled every option in GD and
GraphWiz that I could, and it still installed 272 ports.

In particular, it installed 120-something X11 apps and libraries on a
machine which doesn’t have X11, will never have X11, and explicitly
has WITHOUT_X11=yes in /etc/make.conf. So it’s being overridden
somewhere.

I have now removed 100-something of these ports and RT continues to
operate and function in every way, without any difficulty. After
every 10 or so ports I remove (usually in the same dependancy branch)
I stop and retest every function RT provides.

Before I continue to waste my time trying to figure out why so many
things are enabled, could you as a maintainer perhaps address the
question of why so many extra ports are added? Are these extra ports
added to satisfy requirements in extensions that you have added to
RT? Can I convince you to put those dependancies in a separate port
with that extension so that we aren’t required to have massive port
bloat with the base package?

Note to RT Maintainers: it would be nice if you documented the
explicit list of dependancies rather than forcing us to read the code
to figure it out.

Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source
and other randomness

Note to RT Maintainers: it would be nice if you documented the
explicit list of dependancies rather than forcing us to read the code
to figure it out.

I couldn’t tell if this bit was FreeBSD specific or targeted at me.
If the latter, sbin/rt-test-dependencies should be the canonical source
of what you want.
-Jesse

(FreeBSD specific post, if you’re not using you can simply ignore
this message)

After seeing the ten bazillion things that www/rt38 wanted to
install I ended up building a new machine separate from our build
server just to build all of these ports. I installed every one of
them by hand (non-root user, typing the root password each time,
manually checking the config option for each port). I disabled
every option in GD and GraphWiz that I could, and it still installed
272 ports.

In particular, it installed 120-something X11 apps and libraries on
a machine which doesn’t have X11, will never have X11, and
explicitly has WITHOUT_X11=yes in /etc/make.conf. So it’s being
overridden somewhere.

graphics/graphviz requires X11 to build so WITHOUT_X11 is ignored for
that port.

I have now removed 100-something of these ports and RT continues to
operate and function in every way, without any difficulty. After
every 10 or so ports I remove (usually in the same dependancy
branch) I stop and retest every function RT provides.

I assume you haven’t been testing the “Reports” function.

Before I continue to waste my time trying to figure out why so many
things are enabled, could you as a maintainer perhaps address the
question of why so many extra ports are added?

Because RT requires them.

Are these extra ports added to satisfy requirements in extensions
that you have added to RT?

Nope.

Can I convince you to put those dependancies in a separate port with
that extension so that we aren’t required to have massive port bloat
with the base package?

You would have to figure out a way to make graphviz compile without
x11. I’m not sure that is possible.

Note to RT Maintainers: it would be nice if you documented the
explicit list of dependancies rather than forcing us to read the
code to figure it out.

http://portsmon.freebsd.org/portdependencytree.py?category=www&portname=rt38

Steven Kreuzer
http://www.exit2shell.com/~skreuzer

In particular, it installed 120-something X11 apps and libraries on
a machine which doesn’t have X11, will never have X11, and
explicitly has WITHOUT_X11=yes in /etc/make.conf. So it’s being
overridden somewhere.

graphics/graphviz requires X11 to build so WITHOUT_X11 is ignored
for that port.

This is incredibly non-functional. The 2 - count them - 2, TWO
reports which produce graphs do very elementary graphs that don’t
require 1/100th of the functionality of the GD library, nevermind
whatever GraphViz brings to the table. This is an incredible bloat
with no functional purpose.

I have now removed 100-something of these ports and RT continues to
operate and function in every way, without any difficulty. After
every 10 or so ports I remove (usually in the same dependancy
branch) I stop and retest every function RT provides.

I assume you haven’t been testing the “Reports” function.

Yes, I am. I have at this point removed every X11-related port I can
find, and nothing in Reports has broken.

Before I continue to waste my time trying to figure out why so many
things are enabled, could you as a maintainer perhaps address the
question of why so many extra ports are added?

Because RT requires them.

See above. It does not appear that GraphViz requires any of the X11
functionality. It’s port might think so, but functional practice
would disagree. (for at least whatever RT requires of it)

Note to RT Maintainers: it would be nice if you documented the
explicit list of dependancies rather than forcing us to read the
code to figure it out.

http://portsmon.freebsd.org/portdependencytree.py?category=www&portname=rt38

The actual dependancies – not the ones included by the freebsd port.
It’s clear and easy to read in Makefile.cpan :wink:

Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source
and other randomness

In particular, it installed 120-something X11 apps and libraries on
a machine which doesn’t have X11, will never have X11, and
explicitly has WITHOUT_X11=yes in /etc/make.conf. So it’s being
overridden somewhere.

graphics/graphviz requires X11 to build so WITHOUT_X11 is ignored
for that port.

This is incredibly non-functional. The 2 - count them - 2, TWO
reports which produce graphs do very elementary graphs that don’t
require 1/100th of the functionality of the GD library, nevermind
whatever GraphViz brings to the table. This is an incredible bloat
with no functional purpose.

GrpaphViz is an optional dependency for RT and can be turned during
./configure and in config. I think there is an option in the config,
however even if it’s not there then feature will be disabled on
systems where perl’s GraphViz bindings are not installed.

Oh, you don’t use ./configure but ports. Then you should help
maintainer of the port make things optional.

You don’t like that we don’t use 100% of GD? Welcome a board! Help us
utilize its powers.

I have now removed 100-something of these ports and RT continues to
operate and function in every way, without any difficulty. After
every 10 or so ports I remove (usually in the same dependancy
branch) I stop and retest every function RT provides.

I assume you haven’t been testing the “Reports” function.

Yes, I am. I have at this point removed every X11-related port I can
find, and nothing in Reports has broken.

Actually, we plot graphs of links between tickets using GraphViz that
depends on X libs that is sad.

Before I continue to waste my time trying to figure out why so many
things are enabled, could you as a maintainer perhaps address the
question of why so many extra ports are added?

Because RT requires them.

See above. It does not appear that GraphViz requires any of the X11
functionality. It’s port might think so, but functional practice
would disagree. (for at least whatever RT requires of it)

That’s most probably not true.

Best regards, Ruslan.

Steven, can we have an option in the 3.8.2 port to not use graphviz,
please?On Jan 27, 2009, at 5:30 PM, Ruslan Zakirov wrote:

]GrpaphViz is an optional dependency for RT and can be turned during
./configure and in config. I think there is an option in the config,
however even if it’s not there then feature will be disabled on
systems where perl’s GraphViz bindings are not installed.

Oh, you don’t use ./configure but ports. Then you should help
maintainer of the port make things optional.

Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source
and other randomness

graphics/graphviz requires X11 to build so WITHOUT_X11 is ignored
for that port.

So digging into the port it seems you need to enable graphviz support
with a configure option, but the current port doesn’t invoke that
option. So the inclusion of all the dependancies was an immense
waste :frowning:

I’ve submitted a patch that upgrades the port to rt-3.8.2, and allows
a config knob to enable or disable graphviz support for parity with
configure.

http://www.freebsd.org/cgi/query-pr.cgi?pr=131167

Jo Rhett
Net Consonance : consonant endings by net philanthropy, open source
and other randomness