tech-pkg archive

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

Re: pkg.refcount database as a flat file?



On Sun, Feb 12, 2017 at 04:17:59PM +0000, Taylor R Campbell wrote:
> > Date: 2017年2月11日 17:31:11 +0000
> > From: "Johnny C. Lam" <jlam%NetBSD.org@localhost>
> > 
> > Over the years, has there been any discussion about changing the
> > refcount database from a directory tree under /var/db/pkg.refcount
> > to a text file, perhaps in structured format like JSON or a Lua
> > table?
> 
> I'd be more inclined to use a sqlite3 database -- for this and the
> rest of the pkgdb.
> 
> Atomic backup: echo .backup /path/to/backup | sqlite3 /var/db/pkg.refcount
> Diff: diff -u <(echo .dump | sqlite3 old) <(echo .dump | sqlite3 new)
> More advanced manipulation: any SQL queries under the sun.
> 
> Updates become transactional, &c. Can process with awk, e.g.:
> 
> echo 'select * from pkgrefcount' | sqlite3 | awk -F'|' ...
> 
> (This is subject to some constraints about the character `|', of
> course; can get quoted CSV with `.mode csv'.)
I've abstracted the refcount manipulations into shell functions to be
used by the install scripts so it will be easy to switch out refcount
implementations later.
> There is, of course, a problem of gracefully transitioning any changes
> to the file format in existing installations.
The transition would be as follows:
1. Update pkgtools/pkg_install to use the new implementation and then
 be able to generate on-the-fly the package-specific parts of
 /var/db/pkg.refcount for the package(s) given on the command line.
2. Change the INSTALL scripts generated in pkgsrc-current to the new
 implementation and bump PKGTOOLS_REQD in pkgsrc-current to the
 latest version.
3. Wait through two quarterly tags of pkgsrc.
4. Remove the old implementation from pkgtools/pkg_install. There is
 no need to bump PKGTOOLS_REQD in pkgsrc-current.
I plan on figuring out what refcount implementation to switch to
after my changes to mk/pkginstall are in pkgsrc-current.
-- Johnny C. Lam


Home | Main Index | Thread Index | Old Index

AltStyle によって変換されたページ (->オリジナル) /