1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-12 03:00:28 +00:00

The code for this 2.0 version has been totally reorganized, and

in several cases totally rewritten. I am also glad to say that
all of the advertised features now work as advertised.  :)

The most exciting new feature is the completely new dependency
updater. I finally took the time to write the line-oriented version
of update_contents() that I wanted to write in the first place, so
no more sed, and no more warnings sent to $PAGER. This version relies
entirely on exact matches to DEPORIGIN to do its work, so it's 100%
reliable.

So what else is new? A lot of micro-optimizations have been done to
eliminate duplicated work, avoid using external commands when not
necessary, etc. There are also some not-so-micro optimizations, which
means that this version is noticably faster.

Totally new features:
1. --check-depends, which as described above calls the new functions
to parse existing +CONTENTS files for dependency data, uses that data
to update +REQUIRED_BY, and updates the +CONTENTS files.  These same
routines are also used for updating ports.

2. A "fetch only" feature (-F) that will go get distfiles for new
versions of installed ports by default, and can also be used to get
the files for all of your installed ports, or certain branches by
using the -aft options.

3. An option to hide the build and install process by saving it to a
log (-H). These logs are deleted on successful install, and saved if
the update process aborts.

4. We now keep track of all the ports that get updated or installed in
a given invocation, and print the list at the very end of the process.

5. There is now a little "map" to show you where you are in the
process of the form "parent >> child >> grandchild >> etc."

6. Support for running as an unprivileged user (via sudo) has been
added. See the man page for details on how to configure this.

Improved features:
1. When showing the pkg-message/+DISPLAY files at the end of the
process, all files are grouped together and spit out to $PAGER (or
just cat if -u). If there is an error, there is a pause first
(unless -u).

2. There is now much more sanity checking on user input so that we can
bail out early if there is a problem.

3. The error messages have been completely re-done to be more
informative, and many of them include helpful suggestions on how to
fix the problems.

4. In the expunge (-e) feature, if there is dependency data for the
port you want to delete we now offer you the chance to delete that
instead of just aborting. (Use at your own risk!)

5. The "save old shared libs" feature (-w) is now a lot more
efficient, only runs ldconfig when it has to, and uses
/etc/rc.d/ldconfig.

6. The /var/db/pkg/*/+IGNOREME file now has more functions associated
with it. See the man page for details.

7. When using the -L feature, there is a warning printed if the port
has been set to FORBIDDEN, DEPRECATED, BROKEN, or IGNORE.

8. If you have a real /usr/X11R6 directory (not a symlink) this is
added to the PATH. Otherwise it's assumed that LOCALBASE == X11BASE.

9. Backup packages of existing ports are now saved to
/usr/ports/packages/portmaster-backup, and left there if -b is used.
This way you can create backup packages of a port without disturbing
existing packages with the same version.

There are numerous other things that are not user-visible which have
been cleaned, polished, made more efficient, etc.
This commit is contained in:
Doug Barton 2008-01-24 02:36:58 +00:00
parent cf573ca6cb
commit 2815d6f989
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=206095

File diff suppressed because it is too large Load Diff