![](https://secure.gravatar.com/avatar/4e374bb9f03cbbca5d9541a8bf8ec8bf.jpg?s=120&d=mm&r=g)
Hi there, Lately, I've been going through the TODO list of prt-get, and started to implement some of them; cause they're changing the user experience quite drastically, I'd like to hear what people think about them. Since both the old and the new variant rely on the same core, it should be fairly easy to keep around both if we want to. So if you don't like what you read, don't worry :-). There are two major chances: 1. User interface: less commands -------------------------------- Many of its current features weren't there from the start, and I've usually chosen to add a separate 'command' (think: prt-get <command> ...), for example depends/deptree/dependent. In addition, there's a major overlap between some of the commands in query (printf is just a more specific form of either list or info, depending on the filter argument). For a long time, I wanted to change this, and finally got around it. That might look like this: [old] [new] prt-get depends <port> pgt depends <port> prt-get deptree <port> pgt depends -T <port> prt-get quickdep <port> pgt depends -Q <port> prt-get dependent <port> pgt depends -R <port> (reverse) prt-get diff [<port>] pgt diff [<port>] prt-get quickdiff [<port>] pgt diff -Q [<port>] Note how -Q has the same meaning. There a list of mapping here: http://jw.smts.ch/pg-ng 7 commands in pgt replace 18 in prt-get. The 'find' generalizations might be a bit too much, I may go for a find/list combo. 2. Dependency handling ---------------------- When prt-get was introduced, the "Depends on:" header was optional (and somtimes even frowned upon). As a consequence of this, the default 'install' command did not install dependencies. As a side effect, 'update' and 'sysup' never got --with-deps options, since it's impossible to tell whether a user omitted a dependency by calling 'install' instead of 'depinst' or whether it was introduced in the last update (think: pkgutils and libarchive). Nowadays, things are different: we expect people to install dependencies, and if errors get reported we typically ask first whether all dependencies are met. Therefore, I'd suggest the following: - pgt install <port> would install <port> and its dependencies (like depinst) - pgt update <port> would install <port>'s missing dependencies, and update <port> - pgt sysup would install all missing dependencies, and update outdated ports in the system All commands will get a -N/--no-deps switch to really only handle a single port, however the next update or sysup will of course bring them back. In other words prt-get no more silently assumes that the user didn't want a particular dependency. Now, if you don't want a package (and believe it's only an optional dependency for your usage pattern although the maintainer listed it), you can still do it, but explicitely by calling 'pgt lock' on an uninstalled package. Locked packages won't be touched by any pgt command (but there will be a warning printed in the end of install if a locked dependency was requested in that transaction). As mentioned, I'd like to hear your comments on those two changes. I'm sure both will take some time to get used to (heck, even the new name; I keep typing 'prt-get' on the machine where I installed pgt to test it ;-)), but are worth it in the long run. Best regards, Johannes -- Johannes Winkelmann mailto:jw@smts.ch Zurich, Switzerland http://jw.smts.ch