[csw-maintainers] checkpkg: New feature: file collision detection

Maciej (Matchek) Blizinski maciej at opencsw.org
Sat Dec 18 01:04:47 CET 2010


I would like to point out one implication of new checks.  Let's
suppose you're moving files from one package to another, and in
effect, you're emptying a package.  It can be CSWfoo_rt, which becomes
an empty transitional package, and starts depending on CSWlibfoo1,
which contains the library files.

Before:

CSWfoo_rt: libfoo.so.1

After:

CSWlibfoo1: libfoo.so.1
CSWfoo_rt: empty, depends on CSWlibfoo1

This is the usual scenario for libraries.  It may happen that
CSWfoo_rt does not have any reverse dependencies, meaning that it can
be removed.  You might think that you can skip building an empty
transitional package.  However, when you are building the new set of
packages, your old CSWfoo_rt is still in the catalog and will be part
of the context for package checks.  If you don't build new, empty
CSWfoo_rt, checkpkg will throw an error that your CSWlibfoo1 has file
collisions with CSWfoo_rt - the one from the catalog.  You can of
course override these errors, but there's a better way.

You can continue building the empty CSWfoo_rt.  This way, you'll tell
checkpkg that this package will be empty and will not collide with
other existing packages.  In other words, creating an empty package
can be used as a way to tell checkpkg that a package will be, or may
be removed from the catalog.

Therefore, it's a good idea to build the empty transitional packages
even if nothing depends on them.

Maciej


More information about the maintainers mailing list