1{
2 lib,
3 stdenv,
4 fetchurl,
5 unzip,
6 sqlite,
7 tcl,
8}:
9
10let
11 archiveVersion = import ./archive-version.nix lib;
12 mkTool =
13 {
14 pname,
15 makeTarget,
16 description,
17 homepage,
18 mainProgram,
19 }:
20 stdenv.mkDerivation rec {
21 inherit pname;
22 version = "3.50.2";
23
24 # nixpkgs-update: no auto update
25 src =
26 assert version == sqlite.version;
27 fetchurl {
28 url = "https://sqlite.org/2025/sqlite-src-${archiveVersion version}.zip";
29 hash = "sha256-CR7uw64sy5Gqwh0OmkpYlE+yyxEvpnv/w+CMLsothcg=";
30 };
31
32 nativeBuildInputs = [ unzip ];
33 buildInputs = [ tcl ];
34
35 makeFlags = [ makeTarget ];
36
37 installPhase = "install -Dt $out/bin ${makeTarget}";
38
39 meta = with lib; {
40 inherit description homepage mainProgram;
41 downloadPage = "http://sqlite.org/download.html";
42 license = licenses.publicDomain;
43 maintainers = with maintainers; [ johnazoidberg ];
44 platforms = platforms.unix;
45 };
46 };
47in
48{
49 sqldiff = mkTool {
50 pname = "sqldiff";
51 makeTarget = "sqldiff";
52 description = "Tool that displays the differences between SQLite databases";
53 homepage = "https://www.sqlite.org/sqldiff.html";
54 mainProgram = "sqldiff";
55 };
56 sqlite-analyzer = mkTool {
57 pname = "sqlite-analyzer";
58 makeTarget = "sqlite3_analyzer";
59 description = "Tool that shows statistics about SQLite databases";
60 homepage = "https://www.sqlite.org/sqlanalyze.html";
61 mainProgram = "sqlite3_analyzer";
62 };
63 sqlite-rsync = mkTool {
64 pname = "sqlite-rsync";
65 makeTarget = "sqlite3_rsync";
66 description = "Database remote-copy tool for SQLite";
67 homepage = "https://www.sqlite.org/rsync.html";
68 mainProgram = "sqlite3_rsync";
69 };
70}