Re: Superfluous dependencies
On 12/03/2011 23:25, Doug Barton wrote: That said, what is really needed is for the OPTIONS framework to take environmental preferences into account when dealing with defaults. In other words, if WITHOUT_X11 is defined in make.conf, then the defaults for OPTIONS that are related to requiring X11 stuff should be off. There are a few ports that have rolled their own manipulation of this, but that logic really needs to be in bsd.options.mk. Any volunteers? +1 I've always felt it quite bizarre that WITHOUT_X11=yes has precisely no effect on the various X11 ports themselves. Mind you, X11 is only the largest and most obvious target here. There's also CUPS, SASL, MYSQL, POSTGRESQL, SQLITE, LDAP and many more where it would be handy to be able to set a server-wide policy which: * disabled any optional dependency on the named target * blocked installation of any port with an obligatory dependency on the target * blocked installation of the target port or ports themselves -- which I think is doable, given you're installing onto a clean system. What I can't get my head round is how to cope with changes of policy on a system with plenty of packages already installed. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate JID: matt...@infracaninophile.co.uk Kent, CT11 9PW signature.asc Description: OpenPGP digital signature
Re: Superfluous dependencies
On Sat, Mar 12, 2011 at 10:53 PM, Mark Linimon lini...@lonesome.com wrote: On Thu, Mar 10, 2011 at 10:28:40AM +0100, Hans Ottevanger wrote: If anybody is interested I could consolidate my results and post a few patches. I would like to see them. This is the kind of really-dull-but-necessary work that we need to have people work on to fight the creeping dependencies :-) mcl Real life intervened the last few days, so excuses for the delay. Since the test system I used last week became a mess in the process, I restarted the effort this morning on my 9.0-CURRENT system (amd64, r219593). I have cvsupped the ports tree at about 10:45 UTC. Limiting the discussion to Xorg alone for now, I made the following changes to just three makefiles: Index: devel/glib20/Makefile === RCS file: /home/ncvs/ports/devel/glib20/Makefile,v retrieving revision 1.174 diff -r1.174 Makefile 42,43c42,43 USE_PYTHON= yes USE_PERL5=yes --- USE_PYTHON_BUILD=yes USE_PERL5_BUILD=yes Index: sysutils/hal/Makefile === RCS file: /home/ncvs/ports/sysutils/hal/Makefile,v retrieving revision 1.69 diff -r1.69 Makefile 29c29 USE_PYTHON= yes --- USE_PYTHON_BUILD=yes Index: sysutils/polkit/Makefile === RCS file: /home/ncvs/ports/sysutils/polkit/Makefile,v retrieving revision 1.9 diff -r1.9 Makefile 20c20 RUN_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection --- #RUN_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection The first two are quite trivial, the third could be a bit tricky, but I cannot find (and imagine) a situation where gobject-introspection is needed on run-time for a normal end-user. After building and installing xorg-7.5.1 I can deinstall the following packages (and probably quite a few others that are only needed at build-time): autoconf-2.68 automake-1.11.1 bison-2.4.3,1 gobject-introspection-0.9.12_1 help2man-1.39.2 intltool-0.41.1 m4-1.4.15,1 p5-Locale-gettext-1.05_3 p5-XML-Parser-2.40 perl-5.10.1_3 python27-2.7.1_1 xcb-proto-1.6 As far as I can see now, X functions OK, though I still have to compile KDE. Kind regards Hans Ottevanger ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sun, Mar 13, 2011 at 4:27 PM, Hans Ottevanger hans.ottevan...@gmail.com wrote: On Sat, Mar 12, 2011 at 10:53 PM, Mark Linimon lini...@lonesome.com wrote: On Thu, Mar 10, 2011 at 10:28:40AM +0100, Hans Ottevanger wrote: If anybody is interested I could consolidate my results and post a few patches. I would like to see them. This is the kind of really-dull-but-necessary work that we need to have people work on to fight the creeping dependencies :-) mcl Real life intervened the last few days, so excuses for the delay. Since the test system I used last week became a mess in the process, I restarted the effort this morning on my 9.0-CURRENT system (amd64, r219593). I have cvsupped the ports tree at about 10:45 UTC. Limiting the discussion to Xorg alone for now, I made the following changes to just three makefiles: Index: devel/glib20/Makefile === RCS file: /home/ncvs/ports/devel/glib20/Makefile,v retrieving revision 1.174 diff -r1.174 Makefile 42,43c42,43 USE_PYTHON= yes USE_PERL5= yes --- USE_PYTHON_BUILD=yes USE_PERL5_BUILD=yes Index: sysutils/hal/Makefile === RCS file: /home/ncvs/ports/sysutils/hal/Makefile,v retrieving revision 1.69 diff -r1.69 Makefile 29c29 USE_PYTHON= yes --- USE_PYTHON_BUILD=yes Index: sysutils/polkit/Makefile === RCS file: /home/ncvs/ports/sysutils/polkit/Makefile,v retrieving revision 1.9 diff -r1.9 Makefile 20c20 RUN_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection --- #RUN_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection The first two are quite trivial, the third could be a bit tricky, but I cannot find (and imagine) a situation where gobject-introspection is needed on run-time for a normal end-user. After building and installing xorg-7.5.1 I can deinstall the following packages (and probably quite a few others that are only needed at build-time): autoconf-2.68 automake-1.11.1 bison-2.4.3,1 gobject-introspection-0.9.12_1 help2man-1.39.2 intltool-0.41.1 m4-1.4.15,1 p5-Locale-gettext-1.05_3 p5-XML-Parser-2.40 perl-5.10.1_3 python27-2.7.1_1 xcb-proto-1.6 As far as I can see now, X functions OK, though I still have to compile KDE. Kind regards Hans Ottevanger As suggested by Chris Rees, also as unified diffs: --- devel/glib20/Makefile.orig 2011-03-13 17:26:30.0 +0100 +++ devel/glib20/Makefile 2011-03-13 17:26:47.0 +0100 @@ -39,8 +39,8 @@ USE_GNOME= gnomehack pkgconfig ltverhack USE_GMAKE= yes MAKE_JOBS_SAFE=yes -USE_PYTHON=yes -USE_PERL5= yes +USE_PYTHON_BUILD=yes +USE_PERL5_BUILD=yes CONFIGURE_ARGS=--enable-static --with-libiconv=gnu \ --disable-gtk-doc --with-html-dir=${PREFIX}/share/doc \ --disable-man --without-xml-catalog \ --- sysutils/hal/Makefile.orig 2011-03-13 17:05:01.0 +0100 +++ sysutils/hal/Makefile 2011-03-13 17:27:58.0 +0100 @@ -26,7 +26,7 @@ USE_GNOME= gnomehack intlhack ltverhack USE_AUTOTOOLS= libtool USE_LDCONFIG= yes -USE_PYTHON=yes +USE_PYTHON_BUILD=yes CONFIGURE_ARGS=--disable-gtk-doc \ --with-backend=freebsd \ --disable-docbook-docs \ --- sysutils/polkit/Makefile.orig 2011-03-13 17:05:11.0 +0100 +++ sysutils/polkit/Makefile2011-03-13 17:28:54.0 +0100 @@ -17,7 +17,7 @@ BUILD_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection LIB_DEPENDS= eggdbus-1.0:${PORTSDIR}/devel/eggdbus \ expat.6:${PORTSDIR}/textproc/expat2 -RUN_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection +#RUN_DEPENDS= ${LOCALBASE}/share/gir-1.0/GLib-2.0.gir:${PORTSDIR}/devel/gobject-introspection USE_GNOME= gnomehack glib20 intlhack USE_GMAKE= yes Kind regards, Hans Ottevanger ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
Charlie Kester wrote: [...] A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I made a simple shell script similar to pkg_tree but for ports about year ago. http://freebsd.quip.cz/script/ports_tree.sh It is very simple script showing full dependency tree for all listed dependencies (not skipping already shown deps - portdependencytree.py is not showing them again). This way, you can find what needs libtool for example. You can call it 'ports_tree.sh lang/php5', then it will show you all dependencies (build + run), or you can use -b (build deps only) or -r (run deps only) example of build deps for Vim: ports_tree.sh -b editors/vim editors/vim converters/libiconv devel/libtool devel/gettext converters/libiconv devel/libtool devel/libtool run deps for Vim: ports_tree.sh -r editors/vim editors/vim converters/libiconv devel/gettext converters/libiconv Shown dependency tree is affected by make.conf / ports.conf, options etc. Miroslav Lachman ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On 13/03/2011 03:39, Charlie Kester wrote: On Sat 12 Mar 2011 at 18:28:42 PST Doug Barton wrote: On 03/12/2011 18:13, per...@pluto.rain.com wrote: Charlie Kestercorky1...@comcast.net wrote: A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. make all-depends-list creates exactly what it suggests, a list, and doesn't show any of the hierarchical info that is needed to answer questions like the one I was working on. If there is such a tool, I'd love to hear about it. Would something along the lines of make -n fetch-recursive help at all? I would expect it to walk the dependency tree in a predictable order. The problem with the pre-existing targets is that they do not take the user's choices in OPTIONS into account. portmaster's technique (while not perfect) at least does that. True, but that's not really needed in order to answer questions like Why is this port installing foo? Once we know which dependency leads to foo, we can look to see if there's an option to disable it somewhere up the tree. Same for the original problem at the start of this thread. Once we know where foo gets pulled in, we can look to see if it's a BUILD or a RUN dependency. (Although it would be nice if whatever tool is displaying the tree would have indicated that already, just as it would nice if portions of the tree were greyed out if the controlling options are turned off...) Well, this seems to be turning into a bit of a band-wagon. Here's my attempt to jump on it. Since I already had about 90% of the necessary code already in my FreeBSD::Portindex stuff, I've added a new 'portdepends' script. This generates a detailed dependency tree printout for a port using the data stored in the portindex cache. Output looks like this: % portdepends textproc/sphinxsearch [..] sphinxsearch-0.9.9 (textproc/sphinxsearch) [.L] - libiconv-1.13.1_1 (converters/libiconv) [...B..] - - libtool-2.4 (devel/libtool) [.L] - mysql-client-5.1.55 (databases/mysql51-client) [...BR.] - - openssl-1.0.0_5 (security/openssl) [...B..] - - - makedepend-1.0.3,1 (devel/makedepend) [...BR.] - - - - pkg-config-0.25_1 (devel/pkg-config) [...B..] - - - - - gmake-3.81_4 (devel/gmake) [.L] - - - - - - gettext-0.18.1.1 (devel/gettext) [.L] - - - - - - - libiconv-1.13.1_1 (converters/libiconv) [...B..] - - - - - - - - libtool-2.4 (devel/libtool) [...B..] - - - - - - - libtool-2.4 (devel/libtool) [...BR.] - - - - xproto-7.0.16 (x11/xproto) [...BR.] - - - - - pkg-config-0.25_1 (devel/pkg-config) [...B..] - - - - - - gmake-3.81_4 (devel/gmake) [.L] - - - - - - - gettext-0.18.1.1 (devel/gettext) [.L] - - - - - - - - libiconv-1.13.1_1 (converters/libiconv) [...B..] - - - - - - - - - libtool-2.4 (devel/libtool) [...B..] - - - - - - - - libtool-2.4 (devel/libtool) [EP.B..] - - - perl-5.10.1_3 (lang/perl5.10) [.L] - expat-2.0.1_1 (textproc/expat2) The left hand column shows the type of dependency: one of Extract, Patch, Fetch (v. rare), Build, Run or Lib. It's kind of repetitive, unlike Mark Linimon's python script, mostly because I wanted to keep the code relatively simple. Download here: http://www.infracaninophile.co.uk/portindex/FreeBSD-Portindex-2.3.tar.bz2 I'll submit a ports PR shortly. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate JID: matt...@infracaninophile.co.uk Kent, CT11 9PW signature.asc Description: OpenPGP digital signature
Re: Superfluous dependencies
On Thu, Mar 10, 2011 at 10:28:40AM +0100, Hans Ottevanger wrote: If anybody is interested I could consolidate my results and post a few patches. I would like to see them. This is the kind of really-dull-but-necessary work that we need to have people work on to fight the creeping dependencies :-) mcl ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat 12 Mar 2011 at 13:53:07 PST Mark Linimon wrote: On Thu, Mar 10, 2011 at 10:28:40AM +0100, Hans Ottevanger wrote: If anybody is interested I could consolidate my results and post a few patches. I would like to see them. This is the kind of really-dull-but-necessary work that we need to have people work on to fight the creeping dependencies :-) A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. make all-depends-list creates exactly what it suggests, a list, and doesn't show any of the hierarchical info that is needed to answer questions like the one I was working on. If there is such a tool, I'd love to hear about it. Otherwise, it might be an interesting and useful project for someone to take a stab at. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat, Mar 12, 2011 at 02:12:34PM -0800, Charlie Kester wrote: I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. http://portsmon.freebsd.org/portdependencytree.py Note: it's running a live set of queries on the tree, so it's slow. mcl ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat 12 Mar 2011 at 14:21:35 PST Mark Linimon wrote: On Sat, Mar 12, 2011 at 02:12:34PM -0800, Charlie Kester wrote: I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. http://portsmon.freebsd.org/portdependencytree.py Note: it's running a live set of queries on the tree, so it's slow. Thanks, the exactly the kind of thing I was looking for. Is the underlying sourcecode available somewhere? The speed is acceptable, but I'd rather not be burdening the portsmon server everytime I want to run a query. If it was running against my local copy of the portstree, then nobody else would be inconvenienced. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat, Mar 12, 2011 at 02:35:23PM -0800, Charlie Kester wrote: Is the underlying sourcecode available somewhere? The code is really gross :-( Right now I don't have the cycles to 'productize' it, sorry. Feel free to abuse that server in the meantime. mcl ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
Mark Linimon said: On Sat, Mar 12, 2011 at 02:12:34PM -0800, Charlie Kester wrote: I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. http://portsmon.freebsd.org/portdependencytree.py Note: it's running a live set of queries on the tree, so it's slow. Wonderful tool! Using it i have found a nice illustration of the title of the thread by looking at the dependencies generated by the ports math/maxima. If you run it you will find *tons* of dependecies. However, being a regular user of maxima, that i compile myself on my machine using cmucl i know that maxima has exactly *one* dependency, a lisp system. Taking the example of cmucl one needs only a previous binary version of cmucl, because it is written in lisp, and the base C compiler to produce the executable lisp. It should not be much different with sbcl, except if one foolishly adjoins unnecessary optional software. When having a lisp, one can in fact compile maxima without even using make, but make simplifies the job. It is not *necessary* to have optional gnuplot (which one may or may not desire), and even less to have (*) graphical front ends like xmaxima or wxmaxima. The teTeX dependency is completely superfluous. I mention this example because it is characteristic of a tendency of many FreeBSD ports to add a kitchen sink of superfluous dependencies which render upgrades and so on complicated. (*) most serious users of CAS software i know (maple, etc.) always type their code in a window using a standard editor, and copy-paste it in another window running maple, maxima, etc. Using the GUI toolkits is almost always a considerable loss of time. -- Michel TALON ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On 03/12/2011 14:12, Charlie Kester wrote: I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. portmaster doesn't _quite_ do that, but it does walk you through all of the config screens (and thus, the related dependencies) prior to building, then present you a list of everything that will be built before you build it. That said, what is really needed is for the OPTIONS framework to take environmental preferences into account when dealing with defaults. In other words, if WITHOUT_X11 is defined in make.conf, then the defaults for OPTIONS that are related to requiring X11 stuff should be off. There are a few ports that have rolled their own manipulation of this, but that logic really needs to be in bsd.options.mk. Any volunteers? :) Doug -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat 12 Mar 2011 at 15:25:09 PST Doug Barton wrote: On 03/12/2011 14:12, Charlie Kester wrote: I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. portmaster doesn't _quite_ do that, but it does walk you through all of the config screens (and thus, the related dependencies) prior to building, then present you a list of everything that will be built before you build it. Yep. That's marginally better than make all-depends-list because it filters out any dependencies that would have been pulled in by disabled options. That said, what is really needed is for the OPTIONS framework to take environmental preferences into account when dealing with defaults. In other words, if WITHOUT_X11 is defined in make.conf, then the defaults for OPTIONS that are related to requiring X11 stuff should be off. There are a few ports that have rolled their own manipulation of this, but that logic really needs to be in bsd.options.mk. Any volunteers? X11 is just one example. There are similar scenarios involving XML crap (excuse my language). What's really needed are better tools to help maintainers see what their ports are installing, and for them to exercise more disciple in asking Is this really necessary, or should I make it optional? Is it really a run dependency, or is it only needed for the build? (*) And maybe also to give end users better tools too, so they can be better informed about the consequences of installing a particular port or enabling certain options. Threads like this one usually get started when someone has an unpleasant surprise. The WITHOUT_X11 logic wrt options can get complicated, btw. If you're installing a GTK or KDE app, for example, you probably don't want WITHOUT_X11 disabling any of its options! Or do we want to interpret WITHOUT_X11 as a signal that the user intends to run a textmode system only, and disallow installation of any GUI ports whatsoever? (* For me, testing the port in a tinderbox with --clean-packages has always had a sobering effect. When it takes all day -- or more! -- to finish the test, I start looking for things to trim. Some of you might recall me asking a while ago whether I could put some pre-built manpages under files, in order to avoid pulling in a bunch of docbook dependencies.) ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat 12 Mar 2011 at 15:57:09 PST Charlie Kester wrote: What's really needed are better tools to help maintainers see what their ports are installing, and for them to exercise more disciple in asking Is this really necessary, or should I make it optional? Is it really a run dependency, or is it only needed for the build? (*) s/disciple/discipline I need to exercise more proofreading discipline. :) ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat, Mar 12, 2011 at 02:12:34PM -0800, Charlie Kester wrote: On Sat 12 Mar 2011 at 13:53:07 PST Mark Linimon wrote: On Thu, Mar 10, 2011 at 10:28:40AM +0100, Hans Ottevanger wrote: If anybody is interested I could consolidate my results and post a few patches. I would like to see them. This is the kind of really-dull-but-necessary work that we need to have people work on to fight the creeping dependencies :-) A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. make all-depends-list creates exactly what it suggests, a list, and doesn't show any of the hierarchical info that is needed to answer questions like the one I was working on. If there is such a tool, I'd love to hear about it. Otherwise, it might be an interesting and useful project for someone to take a stab at. There is always the missing target to show you what is currently missing if a particular port were to be installed with whatever options you have chosen. I use this target regularly, because I'm often too lazy to read OPTIONS and other knobs. -- WXS ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
Charlie Kester corky1...@comcast.net wrote: A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. make all-depends-list creates exactly what it suggests, a list, and doesn't show any of the hierarchical info that is needed to answer questions like the one I was working on. If there is such a tool, I'd love to hear about it. Would something along the lines of make -n fetch-recursive help at all? I would expect it to walk the dependency tree in a predictable order. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On 03/12/2011 18:13, per...@pluto.rain.com wrote: Charlie Kestercorky1...@comcast.net wrote: A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. make all-depends-list creates exactly what it suggests, a list, and doesn't show any of the hierarchical info that is needed to answer questions like the one I was working on. If there is such a tool, I'd love to hear about it. Would something along the lines of make -n fetch-recursive help at all? I would expect it to walk the dependency tree in a predictable order. The problem with the pre-existing targets is that they do not take the user's choices in OPTIONS into account. portmaster's technique (while not perfect) at least does that. Doug -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Sat 12 Mar 2011 at 18:28:42 PST Doug Barton wrote: On 03/12/2011 18:13, per...@pluto.rain.com wrote: Charlie Kestercorky1...@comcast.net wrote: A few minutes ago, I was answering a post on the forums, in which a user expressed surprise (and outrage) that the phpmyadmin port was installing libX11 and similar things on his server. By installing it myself and then using pkg_tree -v to examine the dependencies, I was able to narrow it down to two of the port's options that were ON by default. I'm not aware of any tool that will display a similar dependency tree for a port *before* it is installed. make all-depends-list creates exactly what it suggests, a list, and doesn't show any of the hierarchical info that is needed to answer questions like the one I was working on. If there is such a tool, I'd love to hear about it. Would something along the lines of make -n fetch-recursive help at all? I would expect it to walk the dependency tree in a predictable order. The problem with the pre-existing targets is that they do not take the user's choices in OPTIONS into account. portmaster's technique (while not perfect) at least does that. True, but that's not really needed in order to answer questions like Why is this port installing foo? Once we know which dependency leads to foo, we can look to see if there's an option to disable it somewhere up the tree. Same for the original problem at the start of this thread. Once we know where foo gets pulled in, we can look to see if it's a BUILD or a RUN dependency. (Although it would be nice if whatever tool is displaying the tree would have indicated that already, just as it would nice if portions of the tree were greyed out if the controlling options are turned off...) ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
Doug Barton do...@freebsd.org wrote: ... what is really needed is for the OPTIONS framework to take environmental preferences into account when dealing with defaults ... if WITHOUT_X11 is defined in make.conf, then the defaults for OPTIONS that are related to requiring X11 stuff should be off ... that logic really needs to be in bsd.options.mk. Any volunteers? While we are at it, WITHOUT_X11 really needs a WITHOUT_X11_SERVER subcase. There's precious little use for an X11 _server_ on many headless systems -- I don't say all because someone might want VNC even on a headless box -- but they may well want some X11 _clients_. I'd consider volunteering if not for ENOTIME -- I'm having enough trouble finding time to get an 8.x system set up the way I want it before my current (6.1) box dies of old age. (The principal problem involves either a geom issue or, much more likely, my misunderstanding of how that part of geom works. The same trace code will work equally well to clear up either case :) ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On 03/10/11 11:28, Hans Ottevanger wrote: By making a few trivial changes i can make xorg-7.5.1 fully independent on run-time of Python, Perl and Bison. The same can be done for kde-lite-3.5.10_8 when I also disable the Perl support in net-snmp, which is a dependency of kdeutils-3.5.10_8. If anybody is interested I could consolidate my results and post a few patches. Just a heads up, be aware of pkg_add -r: http://lists.freebsd.org/pipermail/freebsd-ports/2010-October/064256.html I look forward to seeing your changes too. :) Regards, Aragon ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Tue, Mar 8, 2011 at 3:51 PM, Michael Scheidell michael.scheid...@secnap.com wrote: On 3/8/11 4:42 AM, Hans Ottevanger wrote: One of them that I already hunted down is bison-2.4.3,1 that gets dragged in via gobject-introspection-0.9.12_1 when installing xorg-7,5.1 (even as a package). This is caused by bison specified as a dependency of type both in the port Makefile of gobject-introspection where it should be specified as build. I don't think that Bison is used on run-time here and most likely not even on build- time. appears one of our 'short cuts' causes this. and I found it on a port I took over maint of. happens all the time if you do a 'RUN_DEPENDS += BUILD_DEPENDS' pulls in all kind of cruft. Indeed I see this 'shortcut' being used all over the place. But in the cases I have looked into the last few days, i.e. the xorg-7.5.1 and kde-lite-3.5.10_8 ports, the problem is just a trivial, but slightly different. It appears that in many occasions USE_PYTHON and USE_PERL are specified in situations where I think USE_PYTHON_BUILD and USE_PERL_BUILD, respectively, would suffice. By making a few trivial changes i can make xorg-7.5.1 fully independent on run-time of Python, Perl and Bison. The same can be done for kde-lite-3.5.10_8 when I also disable the Perl support in net-snmp, which is a dependency of kdeutils-3.5.10_8. If anybody is interested I could consolidate my results and post a few patches. Kind regards, Hans Ottevanger ]...] ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Thu, 10 Mar 2011, Hans Ottevanger wrote: Indeed I see this 'shortcut' being used all over the place. But in the cases I have looked into the last few days, i.e. the xorg-7.5.1 and kde-lite-3.5.10_8 ports, the problem is just a trivial, but slightly different. It appears that in many occasions USE_PYTHON and USE_PERL are specified in situations where I think USE_PYTHON_BUILD and USE_PERL_BUILD, respectively, would suffice. By making a few trivial changes i can make xorg-7.5.1 fully independent on run-time of Python, Perl and Bison. The same can be done for kde-lite-3.5.10_8 when I also disable the Perl support in net-snmp, which is a dependency of kdeutils-3.5.10_8. If anybody is interested I could consolidate my results and post a few patches. Anything that makes ports more accurate is good. Please post, and the maintainers of those ports would likely be interested also. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On Thursday, March 10, 2011 03:28:40 am Hans Ottevanger wrote: On Tue, Mar 8, 2011 at 3:51 PM, Michael Scheidell michael.scheid...@secnap.com wrote: On 3/8/11 4:42 AM, Hans Ottevanger wrote: One of them that I already hunted down is bison-2.4.3,1 that gets dragged in via gobject-introspection-0.9.12_1 when installing xorg-7,5.1 (even as a package). This is caused by bison specified as a dependency of type both in the port Makefile of gobject-introspection where it should be specified as build. I don't think that Bison is used on run-time here and most likely not even on build- time. FWIW, I was just investigating why bison made it into a embedded device I'm working on, and if you look at the sources for gobject-introspection, there is actually a code path where bison is used at run time. While it seems unlikely it would be used, it is technically a runtime depend. -- Thanks, Josh Paetzel signature.asc Description: This is a digitally signed message part.
Superfluous dependencies
Porters, I have been working on some fresh FreeBSD 8.2 installations recently and I was surprised about the amount of extra ports that get installed as dependencies. Once I finish an installation of Xorg and KDE 3 (yes, still using it, like many FreeBSD users and developers), I end up with a handful of scripting languages and development tools I did not ask for. One of them that I already hunted down is bison-2.4.3,1 that gets dragged in via gobject-introspection-0.9.12_1 when installing xorg-7,5.1 (even as a package). This is caused by bison specified as a dependency of type both in the port Makefile of gobject-introspection where it should be specified as build. I don't think that Bison is used on run-time here and most likely not even on build- time. I also doubt the need for Python in this case, i.e. as a dependency for an Xorg installation, but it may be needed in a more general use case of gobject-introspection. I have changed the dependency in my Makefile and rebuilt everything. I now do not have bison as a dependency anymore and can safely delete it, just like all other build dependencies. I am sure there are more of these superfluous dependencies and I will probably hunt down a few more. Does anyone have an idea how to do this systematically? Kind regards, Hans Ottevanger ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Superfluous dependencies
On 3/8/11 4:42 AM, Hans Ottevanger wrote: One of them that I already hunted down is bison-2.4.3,1 that gets dragged in via gobject-introspection-0.9.12_1 when installing xorg-7,5.1 (even as a package). This is caused by bison specified as a dependency of type both in the port Makefile of gobject-introspection where it should be specified as build. I don't think that Bison is used on run-time here and most likely not even on build- time. appears one of our 'short cuts' causes this. and I found it on a port I took over maint of. happens all the time if you do a 'RUN_DEPENDS += BUILD_DEPENDS' pulls in all kind of cruft. example: tshark_lite.. pulls in pkg_conf.. makes it messy if you make a port binary package, and try to install it with pkg_add {port}.tbz. lots of ports used that short cut above. and it should not (and I think port lint complains) Q: wireshark/tshark_lite maintainer: do you really need perl for runtime? or just to build tshark_lite? I installed it with pkg_add -f tshark_lite and never needed it (and system didn't have perl) -- Michael Scheidell, CTO o: 561-999-5000 d: 561-948-2259 ISN: 1259*1300 *| *SECNAP Network Security Corporation * Certified SNORT Integrator * 2008-9 Hot Company Award Winner, World Executive Alliance * Five-Star Partner Program 2009, VARBusiness * Best in Email Security,2010: Network Products Guide * King of Spam Filters, SC Magazine 2008 __ This email has been scanned and certified safe by SpammerTrap(r). For Information please see http://www.secnap.com/products/spammertrap/ __ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org