Keeping Ports synchronised with Packages

Matthew Seaman m.seaman at
Thu Apr 22 08:01:58 PDT 2004

On Thu, Apr 22, 2004 at 02:57:53PM +0100, Richard Bradley wrote:

> Perhaps I am confused about the terminology here - by "packages" I mean 
> precompiled programs, and by "ports" I mean source code & make files for the 
> same programs.

Yes -- that's the correct terminology.  But there's no real difference
other than that: the pkg is built by compiling the port, and you can
freely mix software derived from either source on your system.
> I want to keep my programs up to date, and I want to use precompiled versions 
> as much as possible because it can take hours to compile a large program. 
> However some programs don't have packages, or the packages won't install 
> because I have used the ports system and other, required, programs are out of 
> sync.

Absolutely.  Now, where are you getting the pre-compiled packages
from?  If it's from one of the 4-Disk FreeBSD CD Rom sets, then yes,
you're going to have problems with file versions as there have been
updates to a number of major software systems gone into the ports tree
in the 4 months or so since 4.9-RELEASE.

On the other hand, if you're downloading the packages from the ftp
sites, you should be within a week or two of the latest versions.
Take a look at, eg:

(if you want to access that server for your FTP'ing needs, it's also
known as

That shows you all of the packages for 4-STABLE that have been updated
since 4.9-RELEASE came out. (There's a similar directory structure for
the 5.x packages).  Looks like there was a new batch produced on 11th
April, including the KDE packages:

That gets you kde-3.2.1_1 The ports tree is currently at kde-3.2.2 --
like you say, a minor version number behind.  Unfortunately, that's
just the way things are: the project only has a limited capacity to
keep compiling new packages when ports get updated, especially since
they're producing packages for both 4.x and 5.x at the moment.  Also,
sometime soon the new package set for 4.10-RELEASE will be produced,
which means compiling *everything* in the ports tree from scratch.

You should be able to get all of the dependencies of KDE etc. as
precompiled packages -- using:

    # pkg_add -r kde

will try and download everything required.  

I should note that you're particularly unlucky right now with both KDE
and Gnome having gone through some major updates just recently.
Usually the lag between the port coming out and the updated package
doesn't affect such a large proportion of all of the available
> If I use `portupgrade -PP` (i.e. forcing it to use packages) it (almost) 
> always fails because there are never precompiled packages of the same version 
> as my (cvsup'ed) ports tree. 
> In the same way, `portupgrade -P` (i.e. try to use packages) is equivalent to 
> `portupgrade` (i.e. compile from source) because of the version lag in the 
> packages as compared to the ports.
> One solution might be to get cvsup to check out slightly older versions of the 
> port tree that matches up with the available packages. However this doesn't 
> seem possible.

As someone else commented, you can hold various packages inside
pkgtools.conf -- that means portupgrade won't even attempt to upgrade
them.  Or you can tell portupgrade that you want certain ports to be
installed either preferentially or exclusively via packages -- see the
section in /usr/local/etc/pkgtools.conf on USE_PKGS and USE_PKGS_ONLY.
If you enter the names of the really big packages that you never want
to spend time compiling in one or other of those arrays, then you can
let portupgrade upgrade everything else around them.  You will find
that certain ports are marked as 'ignored' if they depend on a port
where there isn't the latest version of a package available yet, but
that includes a lot of ports that wouldn't need to be upgraded anyhow.

You can certainly check out a backdated version of the ports tree via
cvsup(1) -- eg. to get the ports tree from 1st April just add:

    *default date=2004.

to your supfile.



Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
                                                      Savill Way
PGP:         Marlow
Tel: +44 1628 476614                                  Bucks., SL7 1TH UK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url :

More information about the freebsd-questions mailing list