without rowid
;
+create table packagetags (
+ -- package id triple
+ package text,
+ version text,
+ release integer,
+ tag text,
+ set_time integer default (strftime('%s', 'now')),
+ primary key (package,version,release,tag),
+ foreign key (package,version,release) references packages (package,version,release) on delete cascade
+);
+
-- packagefile hash is columns as text, joined with null bytes, then
-- sha256 sum of that
-- package checksum is package columns as text, joined with null bytes,
-- really don't like this.
-- files contained in a package
-create table paths (
+create table packagefiles (
-- package id triple
package text,
version text,
;
create table elfinfo (
- file text, -- hash of blob
+ file text primary key, -- hash of blob
elftype text,
foreign key (file) references files on delete cascade
-);
+)
+without rowid
+;
+
+create table elfdeps (
+ file text,
+ soname text,
+ dependency text,
+ primary key (file, soname, dependency),
+ foreign key (file) references files on delete cascade
+)
+without rowid
+;
-- TODO just elf information?
-- and just hash, not package?
refreshed integer -- last refresh time
);
+-- urls for downloading packages. possibly unneeded
+create table repository_packages (
+ repo text,
+ pkg text, -- glob pattern? in which case others not needed
+ version text,
+ release text,
+ url text
+);
+
-- track which repository a package was cloned from, i.e. where we got it
create table packagesource (
name text,