builld(nix): add nix flake and derivations
This commit is contained in:
parent
d1f53019b2
commit
1922324b40
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -25,3 +25,5 @@ mapnames
|
||||||
|
|
||||||
|
|
||||||
viz1090
|
viz1090
|
||||||
|
|
||||||
|
result
|
||||||
|
|
61
flake.lock
Normal file
61
flake.lock
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739758141,
|
||||||
|
"narHash": "sha256-uq6A2L7o1/tR6VfmYhZWoVAwb3gTy7j4Jx30MIrH0rE=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c618e28f70257593de75a7044438efc1c1fc0791",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
50
flake.nix
Normal file
50
flake.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
# TODO desc
|
||||||
|
description = "viz1090";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
in rec
|
||||||
|
{
|
||||||
|
# Nix formatter, run using `$ nix fmt`
|
||||||
|
formatter = pkgs.alejandra;
|
||||||
|
|
||||||
|
# Exports the package
|
||||||
|
# Build with `$ nix build`
|
||||||
|
packages.viz1090 = pkgs.callPackage ./nix/viz1090.nix {inherit self system;};
|
||||||
|
packages.viz1090-mapdata = pkgs.callPackage ./nix/viz1090-mapdata.nix {};
|
||||||
|
packages.default = packages.viz1090;
|
||||||
|
|
||||||
|
# Creates a shell with the necessary dependencies
|
||||||
|
# Enter using `$ nix develop`
|
||||||
|
devShell = pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
rtl-sdr-librtlsdr
|
||||||
|
SDL2
|
||||||
|
SDL2_ttf
|
||||||
|
SDL2_gfx
|
||||||
|
gdal
|
||||||
|
python3
|
||||||
|
python312Packages.pip
|
||||||
|
python312Packages.shapely
|
||||||
|
python312Packages.fiona
|
||||||
|
python312Packages.tqdm
|
||||||
|
unzip
|
||||||
|
python312Packages.requests
|
||||||
|
git
|
||||||
|
];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
69
nix/viz1090-mapdata.nix
Normal file
69
nix/viz1090-mapdata.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitea,
|
||||||
|
}: let
|
||||||
|
runways = fetchTarball {
|
||||||
|
url = "https://opendata.arcgis.com/datasets/4d8fa46181aa470d809776c57a8ab1f6_0.zip";
|
||||||
|
sha256 = "sha256:1ivwx8glk8yk68nmqz467yzvlb3l66l1s3ibmd9p41wz737lmz88";
|
||||||
|
};
|
||||||
|
provinces = fetchTarball {
|
||||||
|
url = "https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_1_states_provinces.zip";
|
||||||
|
sha256 = "sha256:06ai02b8rfsfzpa0gq4nsg29lxvwy4zvjw44099hc78vr7dkfsdp";
|
||||||
|
};
|
||||||
|
places = fetchTarball {
|
||||||
|
url = "https://naciscdn.org/naturalearth/10m/cultural/ne_10m_populated_places.zip";
|
||||||
|
sha256 = "sha256:1dhh569520f02yml1m5zp2znjv85cqbccl4nvpmigynxd37kid3j";
|
||||||
|
};
|
||||||
|
airports = fetchTarball {
|
||||||
|
url = "https://naciscdn.org/naturalearth/10m/cultural/ne_10m_airports.zip";
|
||||||
|
sha256 = "sha256:0893zg63ygr2l2d1wpyigls1syfkryjlygvnbbjikpqk5i5cwr56";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "viz1090-mapdata";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitea {
|
||||||
|
domain = "git.vulpecula.zone";
|
||||||
|
owner = "tasiaiso";
|
||||||
|
repo = pname;
|
||||||
|
rev = "d1f53019b22a9e605506bed90fcffcdc5f7e6186";
|
||||||
|
hash = "sha256-gtv0u7o+5fqVgA0CHDWdZr0h9A1Nbky1+okHvSv1cVU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
python3
|
||||||
|
python312Packages.pip
|
||||||
|
python312Packages.shapely
|
||||||
|
python312Packages.fiona
|
||||||
|
python312Packages.tqdm
|
||||||
|
python312Packages.requests
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
mkdir -p mapdata
|
||||||
|
|
||||||
|
cp ${runways}/* mapdata
|
||||||
|
cp ${provinces}/* mapdata
|
||||||
|
cp ${places}/* mapdata
|
||||||
|
cp ${airports}/* mapdata
|
||||||
|
# ls -al mapdata
|
||||||
|
|
||||||
|
python3 mapconverter.py \
|
||||||
|
--mapfile mapdata/ne_10m_admin_1_states_provinces.shp \
|
||||||
|
--mapnames mapdata/ne_10m_populated_places.shp \
|
||||||
|
--airportfile mapdata/Runways.shp \
|
||||||
|
--airportnames mapdata/ne_10m_airports.shp
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
|
||||||
|
cp airportdata.bin $out
|
||||||
|
cp airportnames $out
|
||||||
|
cp mapdata.bin $out
|
||||||
|
cp mapnames $out
|
||||||
|
'';
|
||||||
|
}
|
58
nix/viz1090.nix
Normal file
58
nix/viz1090.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitea,
|
||||||
|
self,
|
||||||
|
system,
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "viz1090";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitea {
|
||||||
|
domain = "git.vulpecula.zone";
|
||||||
|
owner = "tasiaiso";
|
||||||
|
repo = pname;
|
||||||
|
rev = "d1f53019b22a9e605506bed90fcffcdc5f7e6186";
|
||||||
|
hash = "sha256-gtv0u7o+5fqVgA0CHDWdZr0h9A1Nbky1+okHvSv1cVU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
rtl-sdr-librtlsdr
|
||||||
|
SDL2
|
||||||
|
SDL2_ttf
|
||||||
|
SDL2_gfx
|
||||||
|
gdal
|
||||||
|
git
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
self.packages.${system}.viz1090-mapdata
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
echo "--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -3,7 +3,7 @@
|
||||||
|
# sure that the variable PREFIX is defined, e.g. make PREFIX=/usr/local
|
||||||
|
#
|
||||||
|
|
||||||
|
-CXXFLAGS=-O2 -std=c++11 -g
|
||||||
|
+CXXFLAGS=-O2 -std=c++11 -g -I ${pkgs.SDL2.dev}/include/SDL2/
|
||||||
|
LIBS= -lm -lSDL2 -lSDL2_ttf -lSDL2_gfx -g
|
||||||
|
CXX=g++
|
||||||
|
" | git apply -
|
||||||
|
|
||||||
|
make
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp -v viz1090 $out/bin
|
||||||
|
|
||||||
|
# runHook postInstall
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in a new issue