Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jul 2007 13:26:54 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        Garrett Cooper <youshi10@u.washington.edu>
Cc:        Yoshihiro Ota <ota@j.email.ne.jp>, freebsd-ports@freebsd.org
Subject:   Re: Call for testers for yet another ports upgrade program, ports+
Message-ID:  <46AA550E.3090704@FreeBSD.org>
In-Reply-To: <46A9B112.7040408@u.washington.edu>
References:  <20070726011654.cec378be.ota@j.email.ne.jp>	<46A866BE.1000407@u.washington.edu>	<20070726233610.e536c2e2.ota@j.email.ne.jp> <46A9B112.7040408@u.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Cooper wrote:

>    Every time you run make install, portmaster, or portupgrade, there's
> a lot of stuff going on behind the scenes. One of the things involved is
> installing package information in /var/db/pkg. That's where pkg_version
> gets its information from, along with portmaster (AFAIK) and the
> makefiles for ports (for sure).

Garrett's right on the mark in this post, so I'll just confirm that
this is what portmaster does:

1. port_ver=`make -V PKGNAME`

2. Check if that is empty, and error out if it is (moved ports and
other edge cases are handled elsewhere already).

3. If the port version from the Makefile matches what's installed,
check to see if it's a forced upgrade, and if not cache the fact that
it's up to date.

4. case `pkg_version -t $1 $port_ver` in
   \<)     do_update=yes ;;
   =)      ;;      # Should not be reached
   *) if [ -n "$VERBOSE" ]; then
         echo "  ===>>> Port version $port_ver does not"
         echo "  ===>>> seem newer than installed $1"
      fi
           ;;
   esac

hth,

Doug

-- 

    This .signature sanitized for your protection



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46AA550E.3090704>