2025-04-15 14:07:49 +00:00
|
|
|
{
|
|
|
|
npins ? import ./npins,
|
|
|
|
nixpkgs ? npins.nixpkgs,
|
|
|
|
pkgs ? import nixpkgs { },
|
|
|
|
lib ? pkgs.lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
|
|
|
|
lib.makeScope pkgs.newScope (
|
|
|
|
self:
|
|
|
|
let
|
|
|
|
addProtobuf = oldAttrs: {
|
|
|
|
nativeBuildInputs = oldAttrs.nativeBuildInputs or [ ] ++ [
|
|
|
|
(self.callPackage ({ protobuf }: protobuf) { })
|
|
|
|
];
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
sidx-crate2nix = (
|
|
|
|
self.callPackage ./Cargo.nix {
|
|
|
|
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
|
|
|
|
sidx = oldAttrs: {
|
|
|
|
src =
|
|
|
|
let
|
|
|
|
fs = pkgs.lib.fileset;
|
|
|
|
in
|
|
|
|
fs.toSource {
|
|
|
|
root = ./.;
|
|
|
|
fileset = fs.unions [
|
|
|
|
./src
|
|
|
|
./Cargo.toml
|
|
|
|
./Cargo.lock
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
snix-castore = addProtobuf;
|
|
|
|
# prost-wkt-types = addProtobuf;
|
|
|
|
# openssl-sys = oldAttrs: {
|
|
|
|
# nativeBuildInputs = oldAttrs.buildInputs or [ ] ++ [
|
|
|
|
# (self.callPackage ({ pkg-config }: pkg-config) { })
|
|
|
|
# ];
|
|
|
|
# buildInputs = oldAttrs.buildInputs or [ ] ++ [
|
|
|
|
# (self.callPackage ({ openssl }: openssl) { })
|
|
|
|
# ];
|
|
|
|
# };
|
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
|
|
|
sidx = self.sidx-crate2nix.rootCrate.build;
|
2025-04-29 02:34:44 +00:00
|
|
|
datasette-wrapped = self.callPackage (
|
|
|
|
{
|
|
|
|
datasette,
|
2025-05-09 04:01:38 +00:00
|
|
|
datasette-assets,
|
2025-04-29 02:34:44 +00:00
|
|
|
makeWrapper,
|
|
|
|
runCommand,
|
|
|
|
}:
|
2025-05-09 04:01:38 +00:00
|
|
|
runCommand "datasettew"
|
|
|
|
{
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
preferLocalBuild = true;
|
|
|
|
allowSubstitutes = false;
|
|
|
|
}
|
|
|
|
''
|
|
|
|
mkdir -p "$out/bin"
|
|
|
|
makeWrapper ${lib.getExe datasette} "$out/bin/datasettew" \
|
|
|
|
--append-flags --metadata=${datasette-assets}/metadata.json \
|
|
|
|
--append-flags --static=static:${datasette-assets}/static
|
|
|
|
''
|
|
|
|
) { };
|
|
|
|
datasette-assets = self.callPackage (
|
|
|
|
{
|
|
|
|
runCommand,
|
|
|
|
datasette-metadata,
|
|
|
|
datasette-settings,
|
|
|
|
}:
|
|
|
|
runCommand "datasette-assets"
|
|
|
|
{
|
|
|
|
preferLocalBuild = true;
|
|
|
|
allowSubstitutes = false;
|
|
|
|
}
|
|
|
|
''
|
|
|
|
mkdir "$out"
|
|
|
|
cp --no-preserve=mode -r ${./static} "$out"/static
|
|
|
|
cp ${datasette-metadata} "$out"/metadata.json
|
|
|
|
cp ${datasette-settings} "$out"/settings.json
|
|
|
|
''
|
|
|
|
) { };
|
|
|
|
datasette-settings = self.callPackage (
|
|
|
|
{ formats }:
|
|
|
|
(formats.json { }).generate "datasette-settings.json" {
|
|
|
|
sql_time_limit_ms = 8000;
|
|
|
|
}
|
2025-04-29 02:34:44 +00:00
|
|
|
) { };
|
|
|
|
datasette-metadata = self.callPackage (
|
|
|
|
{ formats }:
|
|
|
|
(formats.json { }).generate "datasette-metadata.json" {
|
2025-05-09 04:01:38 +00:00
|
|
|
title = "CUDA INDEX";
|
|
|
|
description_html = ''
|
|
|
|
<p>Visualizing the contents of <a href="https://nixos.org/manual/nixpkgs/unstable/#cuda">Nixpkgs' cudaPackages</a>.
|
|
|
|
Generated via an <a href="https://forge.someonex.net/else/sidx">ad-hoc indexing tool</a>.
|
|
|
|
</p>
|
|
|
|
'';
|
|
|
|
"extra_css_urls" = [
|
|
|
|
"/static/some.css"
|
|
|
|
];
|
2025-04-29 02:34:44 +00:00
|
|
|
"databases" = {
|
|
|
|
"sidx" = {
|
|
|
|
"tables" = {
|
|
|
|
"Hash" = {
|
|
|
|
"label_column" = "hash";
|
|
|
|
};
|
2025-05-09 04:01:38 +00:00
|
|
|
"CudaArtifact" = {
|
|
|
|
facets = [
|
|
|
|
"pname"
|
|
|
|
"platform"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
queries.cuda_conflicts = {
|
|
|
|
title = "CudaArtifact Conflicts";
|
|
|
|
description_html = ''
|
|
|
|
<code>CudaArtifact</code>s (identified by <code>sha256</code>)
|
|
|
|
claiming the same <code>(pname, version, platform)</code> triple
|
|
|
|
'';
|
|
|
|
sql = ''
|
|
|
|
SELECT
|
|
|
|
COUNT(DISTINCT sha256) AS conflicts,
|
|
|
|
pname.str AS pname,
|
|
|
|
ver.str AS ver,
|
|
|
|
plat.str AS plat,
|
|
|
|
GROUP_CONCAT(name.str, char(10)) AS name,
|
|
|
|
GROUP_CONCAT(tag.str, char(10)) AS tag,
|
|
|
|
GROUP_CONCAT(h.hash, char(10)) AS sha256
|
|
|
|
FROM
|
|
|
|
(
|
|
|
|
CudaArtifact AS cc,
|
|
|
|
Str AS name,
|
|
|
|
Str AS pname,
|
|
|
|
Str as ver,
|
|
|
|
Str as plat,
|
|
|
|
Hash as h
|
|
|
|
ON cc.name=name.id
|
|
|
|
AND cc.pname=pname.id
|
|
|
|
AND cc.version = ver.id
|
|
|
|
AND cc.platform = plat.id
|
|
|
|
AND cc.sha256 = h.id
|
|
|
|
)
|
|
|
|
LEFT JOIN Str AS tag
|
|
|
|
ON
|
|
|
|
cc.compat_tag=tag.id
|
|
|
|
GROUP BY
|
|
|
|
cc.pname, cc.version, cc.platform
|
|
|
|
HAVING
|
|
|
|
conflicts >= CAST(:min_conflicts AS INTEGER)
|
|
|
|
ORDER BY conflicts DESC
|
|
|
|
'';
|
2025-04-29 02:34:44 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
) { };
|
2025-04-15 14:07:49 +00:00
|
|
|
}
|
|
|
|
)
|