pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Is it a must to keep kernel up-to-date for -current pkgsrc user?

On Freitag, 18. November 2011 at 20:24, Mayuresh wrote:

> This document suggests if the -current code uses new system calls
> supported only by newer kernel there could be a problem. So better to
> update the kernel in such cases.

> Is there anything in pkgsrc that will warn of need of a kernel upgrade, in
> case the changes use a new system call?

Hey Mayuresh,

you're mixing a few things up here. There are three different items that can be 
updated in Net- or any other BSD.

a) the kernel (built with "make buildkernel" in /usr/src)
b) the userland (built with "make buildworld" in /usr/src)
c) the package manager (in this case, pkgsrc, living in /usr/pkgsrc)

a) and b) are collectively called "the base system" – this is (Net)BSD. The 
package manager is a means of installing extra software that is not part of the 
base system; it is not directly a part of (Net)BSD, it just happens to be run 
by the same people on the same servers.

The userland is basically everything that lives in and around /usr and comes 
from the (Net)BSD source tree. The userland SHOULD never be newer than the 
kernel – this is what the documentation you linked is referring to. This is 
because in a BSD, userland and kernel are fairly closely linked and userland 
tools might expect kernel features not available in an older kernel. Running a 
_newer_ kernel with an _older_ userland MAY not work, but it usually does.

The package manager – pkgsrc – is completely separate from all this, it lives 
in its own source tree and can even be used on completely different systems. 
I'm running pkgsrc on Mac OS X right now. Because of this, you can more or less 
use any version of pkgsrc on any version of NetBSD* – nothing speaks against 
using pkgsrc-current on NetBSD 4 or something. You MAY have to re-build your 
packages after some upgrades to the kernel (rarely) or userland (sometimes), 
because the packages do use some libraries from the base system and might break 
when those are updated. I.e., whenever you experience problems with "missing" 
libraries or wrong library versions after a NetBSD update, re-build the 
affected or all packages from pkgsrc.

Regarding your last question: If you are continuously upgrading NetBSD-current 
from source, no "large" binary updates are required. The same goes for 
pkgsrc-current. Some people call this a "rolling upgrade" procedure, as you 
roll along with the progress of the respective -current branches and never jump 
from one version to the next. But as said above, this is true _separately_ for 
both. It is very likely though that, should you choose to only use rolling 
upgrades for pkgsrc, you need to re-build all your packages when upgrading the 
base system.

I hope this answers your questions.


* small caveat: sometimes a "bug" in one of the packages or even the pkgsrc 
infrastructure is actually a bug in some version(s) of the base system. In that 
case you may have to upgrade the base system to fix them.

Home | Main Index | Thread Index | Old Index