[csw-maintainers] checkpkg: Detecting file conflicts (wrt the recent ev.h conflict)

Maciej (Matchek) Blizinski maciej at opencsw.org
Sat Apr 10 11:09:14 CEST 2010


2010/4/8 Ben Walton <bwalton at opencsw.org>:
> Excerpts from Maciej (Matchek) Blizinski's message of Thu Apr 08 12:05:02 -0400 2010:
>
>> file which is already provided by Python 2.6.  I'm thinking of
>> implementing a check catching file collisions.  Directories would be
>> excluded from the check.  What do you think about such check?
>
> I think it's a great idea.  As long as it's not too heavy, and I don't
> see why it would be, it should be a nice addition.

There might be a reason.  Currently, the data available to checkpkg are:

- the package set under examination
- /var/sadm/install/contents

I could easily implement a check that finds collisions against
packages installed on the buildfarm.  However, it would miss
collisions with packages that are not installed on the buildfarm.  In
this sense, Phil is right pointing at the package database; the
problem with that is that the package database is not available for
checkpkg, unless we want to tie checkpkg with the buildfarm, and I
think that we don't.

I think that we might add a new flag to checkpkg, that would point at
a specific catalog to include in the checks.

For example:

bin/checkpkg -c /export/mirror/opencsw/unstable/sparc/5.9 pkg1 pkg2 ...

This would make checkpkg verify whether it has the recent information
about all the packages from the catalog, and if there was anything
missing, it would get imported from the catalog, by unpacking each
package and collecting data from it.  The initial run might take
hours.

A central cache would certainly speed things up, but it has to be
something that can be also deployed outside of the buildfarm, so the
package database doesn't qualify.  Perhaps we could have a tool that
generates a file with the same format as /var/sadm/install/contents,
and checkpkg would take "additional /var/sadm/install/contents files"
as parameters:

bin/checkpkg/ \
    -c /var/sadm/install/contents \
    -c /opt/csw/share/install/contents \
    -c /home/maciej/mycontents \
    pkg1 pkg2 ...

The csw shared install/contents file could be generated from the
package database, if the database contains enough information.

This solution would require a party to take the responsibility of
updating the shared install/contents file, or else the check would not
be helpful.

Thoughts?


More information about the maintainers mailing list