create table if not exists ValidPaths (
    id               integer primary key autoincrement not null,
    path             text unique not null,
    hash             text not null,
    registrationTime integer not null,
    deriver          text,
    narSize          integer
);

create table if not exists Refs (
    referrer  integer not null,
    reference integer not null,
    primary key (referrer, reference),
    foreign key (referrer) references ValidPaths(id) on delete cascade,
    foreign key (reference) references ValidPaths(id) on delete restrict
);

create index if not exists IndexReferrer on Refs(referrer);
create index if not exists IndexReference on Refs(reference);

-- Paths can refer to themselves, causing a tuple (N, N) in the Refs
-- table.  This causes a deletion of the corresponding row in
-- ValidPaths to cause a foreign key constraint violation (due to `on
-- delete restrict' on the `reference' column).  Therefore, explicitly
-- get rid of self-references.
create trigger if not exists DeleteSelfRefs before delete on ValidPaths
  begin
    delete from Refs where referrer = old.id and reference = old.id;
  end;

create table if not exists DerivationOutputs (
    drv  integer not null,
    id   text not null, -- symbolic output id, usually "out"
    path text not null,
    primary key (drv, id),
    foreign key (drv) references ValidPaths(id) on delete cascade
);

create index if not exists IndexDerivationOutputs on DerivationOutputs(path);

create table if not exists FailedPaths (
    path text primary key not null,
    time integer not null
);
t type='hidden' name='id' value='58b98edb186a3626eba24ee7b8a019b31709340b'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/guix/log/?id=58b98edb186a3626eba24ee7b8a019b31709340b'>root</a>/<a href='/guix/log/manifest.scm?id=58b98edb186a3626eba24ee7b8a019b31709340b'>manifest.scm</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/guix/log/manifest.scm?id=58b98edb186a3626eba24ee7b8a019b31709340b&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th></tr>
<tr><td><span title='2024-11-11 07:28:34 +0100'>2024-11-11</span></td><td><a href='/guix/commit/manifest.scm?id=a84586dad60fe28c3b1832c197f1e0b1f6f12721'>maint: Add installer dependencies to the manifest.</a><span class='msg-avail'>...<span class='msg-tooltip'>* manifest.scm: Add guile-newt, guile-parted, guile-webutils.

Change-Id: Idcf46320d29c15f36da05f66e81b7779e37c1bf6
</span></span></td><td>Janneke Nieuwenhuizen</td></tr>
<tr><td><span title='2024-08-31 19:06:37 +0200'>2024-08-31</span></td><td><a href='/guix/commit/manifest.scm?id=9af235335e8f8baf7f434a76570a954999231879'>gnu: guix: Remove unnecessary dependencies.</a><span class='msg-avail'>...<span class='msg-tooltip'>This reverts 0fda0486523d67c2c464386c07a0c2800d8d8c20, instead moving
the dependencies needed for ‘make dist’ to ‘manifest.scm’.

Removing this extra dependencies make it simpler to build the ‘guix’
package in particular on less-capable systems like i586-gnu.

* gnu/packages/package-management.scm (guix)[native-inputs]: Remove
IMAGEMAGICK and PERL.  Use GRAPHVIZ-MINIMAL instead of GRAPHVIZ.
* manifest.scm: Use the full-blown ‘graphviz’ package; add ‘imagemagick’
and ‘perl’.

Reported-by: Janneke Nieuwenhuizen &lt;janneke@gnu.org&gt;
Change-Id: Ia9d05c699e3cc2f9a9235a67f8ec840c26b66a82
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2024-06-24 08:51:43 -0400'>2024-06-24</span></td><td><a href='/guix/commit/manifest.scm?id=7f194852a46edfe47537d11bc39fb1dd20e18b37'>manifest: Streamline; add packages useful for patch review/submission.</a><span class='msg-avail'>...<span class='msg-tooltip'>* manifest.scm: Fix alternate command line invocation (which would not
consider 'manifest.scm').  Use specifications instead of packages.  Remove
perl (now in the guix package's native inputs).  Add b4, git, git:send-email,
mumi, nss-certs, openssl and patman to the manifest.

Change-Id: I49d92dda059856ce217cea9054a466a1754dcf94
Signed-off-by: Maxim Cournoyer &lt;maxim.cournoyer@gmail.com&gt;
</span></span></td><td>Maxim Cournoyer</td></tr>
<tr><td><span title='2024-04-02 23:28:58 +0200'>2024-04-02</span></td><td><a href='/guix/commit/manifest.scm?id=049273bb8c1ea3d6402db646312acdc4abf4678a'>maint: Add perl to the manifest.</a><span class='msg-avail'>...<span class='msg-tooltip'>* manifest.scm: Add perl.

Change-Id: Ie70cea1eb4d62f2a649292209391a92abdae2288
</span></span></td><td>Janneke Nieuwenhuizen</td></tr>
<tr><td><span title='2024-01-31 09:07:25 +0100'>2024-01-31</span></td><td><a href='/guix/commit/manifest.scm?id=66dd088d3c3404f5cbe2d4d4c5e8f93d184703b0'>maint: Add gnupg to the manifest.</a><span class='msg-avail'>...<span class='msg-tooltip'>* manifest.scm: Add gnupg.

Change-Id: Id5e90f87e5c3a07aa3e49afa97cc0b6d3ce71b41
</span></span></td><td>Ludovic Courtès</td></tr>
<tr><td><span title='2023-09-18 22:12:39 +0200'>2023-09-18</span></td><td><a href='/guix/commit/manifest.scm?id=7bf12820f61179900f9d1f753acf91fd33724976'>maint: Support `guix shell' in Guix's git archive with manifest.scm.</a><span class='msg-avail'>...<span class='msg-tooltip'>* manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
* doc/contributing.texi (Building from Git): Mention using it.
</span></span></td><td>Janneke Nieuwenhuizen</td></tr>
