Hallo Mihai, Mihai Popescu B. S. wrote on Sun, Jan 06, 2008 at 01:00:19PM -0800:
> I used to work with OpenBSD-realease and OpenBSD-stable by applying > the patches for the base and upgrade the packages. > > Since the packages are not updated anymore for the -stable branch (still no > announcement on the project's web page) I switched to the -current option. I > don't want to go with the pure -current so I choosed to use snapshots. This is fine, so far. > My concern is about the relation between a snapshot and the precompiled > packages. Usually I grab a .iso from snapshot and install it. > > Are the packages updated (precompiled) for each snapshot ? No. Usually, base snapshots are built much more often than ports bulk builds because the former can be done much quicker than the latter. This may vary depending on your architecture, though. > Is the package update performed only for the ones requesting that to > run on the new snapshot? I fear i don't understand this question at all; sorry. > Is there a rule like for each snapshot the project recompiles > the whole package collection? No, that's not feasible. It would take way too long. > What I want to do is to install an updated package (a greater version) > on and old already installed snapshot. Is it ok? Sometimes yes, sometimes no. Snapshot packages will always work with the base snapshot they were compiled for. But if you take an older base snapshot and try to install newer packages, this might fail if, in the meantime, shared library versions were bumped and the new packages require shared libraries not yet available on your system. Much more rarely, your newer packages might depend on system calls not yet available in your older kernel. By the way, the reverse situation can also cause problems. If you install a brand-new snapshot from scratch and then try to install older packages, this might fail if, in the meantime, shared library major versions were bumped and the old versions required by the packages are no more available in your new snapshot. Thus, the safest road is to wait until the developers are doing a bulk build for your architecture. After that, quickly install both the latest base snapshot and the packages you need. From that starting configuration, pay attention not to miss library version bumps in base: After each library version bump in base, you should upgrade to the latest base snaphot. Because old libraries are not deleted, existing packages will continue to work, and having all intermediate library versions installed, you will usually be able to install arbitrary -current packages, even if they do not exactly match your currently installed base snapshot. If you cannot afford waiting for the next ports bulk build before switching to -current but feel the urge to act at once, you have two options: Either you read the commit messages and figure out whether the latest snapshot packages can be expected to work with the latest base snapshot for your architecture, or you install the latest -release, at once upgrade to the lastest snapshot, try installing the latest snapshot packages and hope for the best. As far as i understand, this might only fail if the library major version for at least one base library was bumped at least twice between -release and -current, and the last bulk build happened right in between, which should hardly ever happen. Following the above advice, you will rarely run into problems with missing library versions. In case you are unfortunate enough and this happens to you all the same, the easiest way to resolve the problem usually is to update your -current /usr/ports tree and to build the affected package yourself, from source. But you will very rarely need this last resort, if at all. Hope this helps, Ingo P.S. Even though -current is the best OpenBSD version available, the potential library version mismatch troubles describes above are one of the main reasons why i'm still not fully comfortable with recommending -current to newbies, even though i do observe that Nick is slowly leaning towards issuing such recommendations.

