the snapshot way

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

the snapshot way

Mihai Popescu B. S.
Hello,

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.

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 ?

Is the package update performed only for the ones requesting that to run on the
new snapshot?

Is there a rule like for each snapshot the project recompiles the whole package
collection?

What I want to do is to install an updated package (a greater version) on and
old already installed snapshot. Is it ok?

Thanks


      ____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page.
http://www.yahoo.com/r/hs

Reply | Threaded
Open this post in threaded view
|

Re: the snapshot way

Stuart Henderson
On 2008/01/06 13:00, Mihai Popescu B. S. wrote:
> Are the packages updated (precompiled) for each snapshot ?

No, there are often 2 base snapshots a day, package snapshots take
a fair bit longer than this to build. Usually this isn't a problem,
things are close enough, but there are occasions when a package
snap won't work on a freshly installed base snap (if this happens,
you can just build from source, or if this is on a machine arch
with frequent package snapshots e.g. i386, just wait a while).

> What I want to do is to install an updated package (a greater version) on and
> old already installed snapshot. Is it ok?

pkg_add will complain if library versions are incorrect; this will
account for the majority of problems, but there are some other changes
which can take place in the OS which a newer package might depend on.
You can always try it, if it doesn't work, update your base OS to
a newer snapshot.

Reply | Threaded
Open this post in threaded view
|

Re: the snapshot way

Ingo Schwarze
In reply to this post by Mihai Popescu B. S.
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.