cvs commit: ports/ports-mgmt/portmaster/files portmaster.sh.in

Doug Barton dougb at FreeBSD.org
Wed Jan 23 18:36:58 PST 2008


dougb       2008-01-24 02:36:58 UTC

  FreeBSD ports repository

  Modified files:        (Branch: 2.0)
    ports-mgmt/portmaster/files portmaster.sh.in 
  Log:
  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.
  
  Revision  Changes      Path
  2.0       +1721 -1395  ports/ports-mgmt/portmaster/files/portmaster.sh.in


More information about the cvs-all mailing list