Commit graph

10 commits

Author SHA1 Message Date
atatat
0b9baea4c8 Add a new -m option that prints sh script which invokes make for each
"interesting" package, where "interesting" is defined by the other
options given on the command line.

Rework the "rebuild", "delete", and "fetch" output modes to use a new
generic routine invoked with (the new) -m option.  Other new options
are:

 -a all packages (to make more packages becoming "interesting")
 -e adds an "existence check" to each of the lines of sh(1) style
    output (ala the current rebuild output)
 -r reverses the order in which the packages are listed
 -S package
    selects a subgraph of the installed package base
 -s print a simple list of packages instead of sh commands

Also: fix a dreadful bug in the group number assignment loop.  Groups
are now assigned more properly, meaning that wholely selected
subgraphs (via the new -S option) work.

Welcome to version 2.5.
2003-04-30 03:39:17 +00:00
wiz
79b9d8bc5a Drop a trailing space, and simplify some mdoc. 2003-04-16 09:50:01 +00:00
atatat
d708edcde7 Stuffing the value of MAKE into the environment seems to have
undesirable side-effects, so simply call $make directly.

Jump to 2.4.
2003-03-26 04:50:18 +00:00
atatat
67a94dc41f Add -F for "fetch" output, so that you can pre-fetch all the distfiles
you need and then build off-line (suggested by smb).

Add -M to set the name/location of the make program (for the -F and -R
output formats) to be used on systems where the make program is not
the one you want (suggested by seb).

Clean up a bug with subgraph assignment and counting.

Move to 2.3.
2003-03-25 18:21:20 +00:00
atatat
7aa8b3fea0 Add -A, which causes -R to print a list of pkg_add commands (instead
of commands to rebuild directly from pkgsrc), -K (as with lintpkgsrc)
as a way of specifying the PKG_PATH (the environment is also checked),
and convert to using Getopt::Long, so that we can stuff multiple
values for "out of date" packages or packages to be "updated" into
arrays.  Now you can make more than one package be out of date, etc.
2003-03-14 23:39:54 +00:00
atatat
21ae0a0fcd Bump pkgdepgraph to 2.1. New stuff:
* label the graph and the subgraphs (feature)
* rework subgraph identification in the main loop (feature)
* better handling of recoloring graphs that contain subgraphs (bugfix)
* be a little more picky about what *might* be a pkg directory (bugfix
  via seb)
* fix a bug in error reporting in canonification routine (bugfix via
  seb)
* add comments (bugfix?  feature?)
2003-03-10 22:31:20 +00:00
atatat
af0c469421 Jump to pkgdepgraph v2.0.
New features (excerpts from the man page, not in proper order, so that
you can better see how it fits together):

     -L       Limit the graph to those packages that are out of date or ulti-
              mately depend on some package that is.

     -D       Instead of the standard graph output, pkgdepgraph lists the
              packages that need to be deleted, in ``least required first''
              order, so that they can be deleted without any dependency prob-
              lems.

     -R       Instead of the standard graph output, emits a series of sh(1)
              commands that will rebuild all the out of date packages by re-
              building all the deleted leaf packages.

     -U package
              Generates a graph with only the out of date dependencies of
              package marked in red (ie, packages that are out of date but not
              dependencies of package will not be considered out of date).

     -f       Force a rebuild of all dependent packages.  This option is for
              use in conjunction with the -U option to force a rebuild of all
              the dependencies of a package to be updated.

     -O package
              Marks package as out of date so that you can see the impact of
              deleting dependent packages and rebuilding everything.

     -t target
              Changes the target of the -R output from ``install'' to target
              in case you want to ``make package'' or some other target.

     -c       Inserts a ``make clean'' command in the set of instructions to
              rebuild packages (see the -R option) after they are installed.

     -C       Asserts -c and adds ``CLEANDEPENDS=YES'' so that all rebuilt de-
              pendencies are cleaned as well.

The code was also cleaned up a bit, some unused or otherwise useless
variables were culled, the "multiple box" phenomenon of subgroups is
fixed, and the examples were all cleaned up to take advantage of all
the new features.

	Hey ma!  Now I can update my pkgs in four easy steps!

           $ lintpkgsrc -i > pkgdepgraph.in
           $ pkgdepgraph -R pkgdepgraph.in > rebuild.sh
           $ pkg_delete `pkgdepgraph -D pkgdepgraph.in`
           $ sh rebuild.sh
2003-03-06 21:13:13 +00:00
wiz
5726248e21 Drop a traling space, add abbreviation dots to an abbreviation, and replace
"\>" with (better convertible) "\*[Gt]".
2002-12-26 11:12:59 +00:00
atatat
ad6f4d4660 Upgrade pkgdepgraph to 1.1. New features are:
(1) Graph recoloring, so that as you delete and rebuild bunches of
packages, you can see how far along you are (I use this a *lot*).

(2) Subgraph grouping (based on work done by David Maxwell) which
clusters groups of packages with common prefixes in their names inside
a box.

(3) The explicit dependency on the graphviz pkg has been removed so
that pkgdepgraph can be run on "client machines" that only wish to
generate graph data, not to view it (ie, machines that have packages
installed but which do not wish to incur the overhead of X or the
other stuff that graphviz requires).  The fact that you should install
graphviz *somewhere* so that you can view the data is noted by the new
INSTALL script.

Some useless comments have also been removed.
2002-12-26 05:40:48 +00:00
atatat
d356b9d1be pkgdepgraph prints out a "dot" language specification of the
inter-dependencies of your installed packages.  The "dot" language
is interpreted by the graphviz package to make graphs.  There are
several uses for such information.

(1) A graphical representation of information is always good to
look at.

(2) The output itself can be sorted and filtered to provide a list
of packages to delete in order that they can be rebuilt (to replace
out-of-date components).

(3) You can visually estimate the work involved in (or impact of)
removing a given component in order to replace it.
2002-11-07 23:18:01 +00:00