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

Re: Status

Wilfredo Sanchez wrote:
> On Monday, September 11, 2000, at 03:57 PM, hubertf@netbsd.org wrote:
> > Hi Wilfredo!
>   Howdy!
> > No perl? No X?
>   Perl in perl of the base system; I didn't list everything.  :-)  See
> CVSROOT/modules in the Darwin repository for a complete list.
>   X is a "port", though we haven't really defined what than means in the
> context of Darwin yet.  It will probably be bundled with the next
> standalone release of Darwin, so that people can have a UI.  It will
> probably never be part of Mac OS X, though.
> > FYI, I've once made a small hack that made a binary package out of every
> > dir, resulting in netbsd-bin-ls-1.5 (including bin/ls and the manpage),
> > netbsd-usr.sbin-pkg_install-1.5, which in turn pulled in
> > netbsd-usr.sbin-pkg_install-pkg_add-1.5,
> > netbsd-usr.sbin-pkg_install-pkg_delete-1.5,
> > netbsd-usr.sbin-pkg_install-pkg_info-1.5, etc.
>   Cool!  I think that's pretty close to what I'm looking for.

I've always thought it would be a good idea to make `install` package
aware. If we could hack install to take a package name then it would
register the file that it is installing against that package name in a

It would also take care of reference counting, if a file already exists
and is the same (based on a checksum) then create a reference in the
database so that files can belong to multiple packages.

All the base system files can then be assigned to a particular package
by adding a make variable to the appropriate make file, which install
then picks up. It would make it fairly easy to control granularity that
way, if the variable is in /usr/src/bin then all subdirectories will be
in the /bin package, but if you want you could create a cat package by
putting the variable there.

You could in fact do both, if the bin package is installed but you want
to remove cat then doing so could also remove the reference to all cat
files in the bin package. Reference counting would therefore not only
give you the ability to share files amongst multiple packages, but also
to have package groups, which consist of finer granularity packages.
e.g. if I delete the cat package then the bin package is aware that
those files have gone, I can later delete the bin package to remove the

With a reference database you would also be able to do things like check
if files have gone missing from your filesystem, or find out if there
are any files that aren't registered against packages because all the
system files would be included in the package database.

The other issue that really needs solving is upgrading packages that
have dependencies. I don't think this is too hard, it just needs a tool
to update all the references to the old package to point to the new

Paul Richards
FreeBSD Services Ltd.

To unsubscribe: send mail to <majordomo@unixathome.org>
with "unsubscribe bsdports" in the body of the message