commit fe9d83a611be769e47f5d62b6f3cf9c3903f12a4
parent c3d190b0a45bc95ee13f11ae5c993ad0fdc441c8
Author: Nikolay Korotkiy <sikmir@disroot.org>
Date: Fri, 14 Feb 2025 23:34:30 +0400
Up
Diffstat:
20 files changed, 452 insertions(+), 378 deletions(-)
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
@@ -1,6 +1,6 @@
{
- elevation_server = ./services/elevation_server.nix;
+ elevation-server = ./services/elevation-server.nix;
level0 = ./services/level0.nix;
mbtileserver = ./services/mbtileserver.nix;
- tracks_storage_server = ./services/tracks_storage_server.nix;
+ tracks-storage-server = ./services/tracks-storage-server.nix;
}
diff --git a/modules/nixos/services/elevation-server.nix b/modules/nixos/services/elevation-server.nix
@@ -0,0 +1,95 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+
+with lib;
+
+let
+ cfg = config.services.elevation-server;
+in
+{
+ options.services.elevation-server = {
+ enable = mkEnableOption "elevation-server";
+ package = mkPackageOption pkgs "elevation-server" { };
+ address = mkOption {
+ type = types.str;
+ default = "127.0.0.1";
+ description = "Address to bind to.";
+ };
+ port = mkOption {
+ type = types.port;
+ default = 8080;
+ description = "Port to listen.";
+ };
+ threads = mkOption {
+ type = types.int;
+ default = 10;
+ description = "Maximum number of concurrently served requests.";
+ };
+ demTiles = mkOption {
+ type = types.path;
+ default = "/srv/tilesets/dem_tiles";
+ description = "The path to file with elevation tile.";
+ };
+ nginx = mkOption {
+ default = { };
+ description = ''
+ Configuration for nginx reverse proxy.
+ '';
+ type = types.submodule {
+ options = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Configure the nginx reverse proxy settings.
+ '';
+ };
+ hostName = mkOption {
+ type = types.str;
+ description = ''
+ The hostname use to setup the virtualhost configuration
+ '';
+ };
+ };
+ };
+ };
+ };
+
+ config = mkIf cfg.enable (mkMerge [
+ {
+ systemd.services.elevation-server = {
+ description = "Elevation server";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ DynamicUser = true;
+ LogsDirectory = "elevation-server";
+ ExecStart = "${getBin cfg.package}/bin/elevation_server -dem ${cfg.demTiles} -host ${cfg.address} -port ${toString cfg.port} -threads ${toString cfg.threads}";
+ Restart = "always";
+ };
+ };
+ }
+ (mkIf cfg.nginx.enable {
+ services.nginx = {
+ enable = true;
+ virtualHosts."${cfg.nginx.hostName}" = {
+ locations."/" = {
+ proxyPass = "http://${cfg.address}:${toString cfg.port}";
+ extraConfig = ''
+ more_clear_headers Access-Control-Allow-Origin;
+ more_clear_headers Access-Control-Allow-Credentials;
+ more_set_headers 'Access-Control-Allow-Origin: $http_origin';
+ more_set_headers 'Access-Control-Allow-Credentials: true';
+ more_set_headers 'Cache-Control: max-age=86400';
+ more_set_headers 'Vary: Origin';
+ '';
+ };
+ };
+ };
+ })
+ ]);
+}
diff --git a/modules/nixos/services/elevation_server.nix b/modules/nixos/services/elevation_server.nix
@@ -1,95 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-with lib;
-
-let
- cfg = config.services.elevation_server;
-in
-{
- options.services.elevation_server = {
- enable = mkEnableOption "elevation_server";
- package = mkPackageOption pkgs "elevation_server" { };
- address = mkOption {
- type = types.str;
- default = "127.0.0.1";
- description = "Address to bind to.";
- };
- port = mkOption {
- type = types.port;
- default = 8080;
- description = "Port to listen.";
- };
- threads = mkOption {
- type = types.int;
- default = 10;
- description = "Maximum number of concurrently served requests.";
- };
- demTiles = mkOption {
- type = types.path;
- default = "/srv/tilesets/dem_tiles";
- description = "The path to file with elevation tile.";
- };
- nginx = mkOption {
- default = { };
- description = ''
- Configuration for nginx reverse proxy.
- '';
- type = types.submodule {
- options = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Configure the nginx reverse proxy settings.
- '';
- };
- hostName = mkOption {
- type = types.str;
- description = ''
- The hostname use to setup the virtualhost configuration
- '';
- };
- };
- };
- };
- };
-
- config = mkIf cfg.enable (mkMerge [
- {
- systemd.services.elevation_server = {
- description = "Elevation server";
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- DynamicUser = true;
- LogsDirectory = "elevation_server";
- ExecStart = "${getBin cfg.package}/bin/elevation_server -dem ${cfg.demTiles} -host ${cfg.address} -port ${toString cfg.port} -threads ${toString cfg.threads}";
- Restart = "always";
- };
- };
- }
- (mkIf cfg.nginx.enable {
- services.nginx = {
- enable = true;
- virtualHosts."${cfg.nginx.hostName}" = {
- locations."/" = {
- proxyPass = "http://${cfg.address}:${toString cfg.port}";
- extraConfig = ''
- more_clear_headers Access-Control-Allow-Origin;
- more_clear_headers Access-Control-Allow-Credentials;
- more_set_headers 'Access-Control-Allow-Origin: $http_origin';
- more_set_headers 'Access-Control-Allow-Credentials: true';
- more_set_headers 'Cache-Control: max-age=86400';
- more_set_headers 'Vary: Origin';
- '';
- };
- };
- };
- })
- ]);
-}
diff --git a/modules/nixos/services/flashmq.nix b/modules/nixos/services/flashmq.nix
@@ -0,0 +1,34 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+
+with lib;
+
+let
+ cfg = config.services.flashmq;
+in
+{
+ options.services.flashmq = {
+ enable = mkEnableOption "flashmq";
+ };
+
+ config = mkIf cfg.enable {
+ systemd.services.flashmq = {
+ description = "FlashMQ MQTT server";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ DynamicUser = true;
+ LogsDirectory = "flashmq";
+ LimitNOFILE = "infinity";
+ ExecStart = "${cfg.flashmq}/bin/flashmq -c ${configFile}";
+ ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+ Restart = "on-failure";
+ RestartSec = "5s";
+ };
+ };
+ };
+}
diff --git a/modules/nixos/services/tracks-storage-server.nix b/modules/nixos/services/tracks-storage-server.nix
@@ -0,0 +1,80 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+
+with lib;
+
+let
+ cfg = config.services.tracks-storage-server;
+in
+{
+ options.services.tracks-storage-server = {
+ enable = mkEnableOption "tracks-storage-server";
+ package = mkPackageOption pkgs "tracks-storage-server" { };
+ nginx = mkOption {
+ default = { };
+ description = ''
+ Configuration for nginx reverse proxy.
+ '';
+ type = types.submodule {
+ options = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Configure the nginx reverse proxy settings.
+ '';
+ };
+ hostName = mkOption {
+ type = types.str;
+ description = ''
+ The hostname use to setup the virtualhost configuration
+ '';
+ };
+ };
+ };
+ };
+ };
+
+ config = mkIf cfg.enable (mkMerge [
+ {
+ services.uwsgi.enable = true;
+ services.uwsgi.plugins = [ "python3" ];
+ services.uwsgi.instance = {
+ type = "emperor";
+ vassals.tracks = {
+ type = "normal";
+ master = true;
+ workers = 2;
+ socket = "127.0.0.1:8181";
+ module = "server:application";
+ pythonPackages = self: [ cfg.package ];
+ };
+ };
+ }
+ (mkIf cfg.nginx.enable {
+ services.nginx = {
+ enable = true;
+ virtualHosts."${cfg.nginx.hostName}" = {
+ locations."/" = {
+ extraConfig = ''
+ uwsgi_pass localhost:8181;
+ include ${config.services.nginx.package}/conf/uwsgi_params;
+
+ more_clear_headers Access-Control-Allow-Origin;
+ more_clear_headers Access-Control-Allow-Credentials;
+ more_set_headers 'Access-Control-Allow-Origin: $http_origin';
+ more_set_headers 'Access-Control-Allow-Credentials: true';
+ more_set_headers 'Cache-Control: max-age=315360000';
+ more_set_headers 'Expires: Thu, 31 Dec 2037 23:55:55 GMT';
+ more_set_headers 'Vary: Origin';
+ '';
+ };
+ };
+ };
+ })
+ ]);
+}
diff --git a/modules/nixos/services/tracks_storage_server.nix b/modules/nixos/services/tracks_storage_server.nix
@@ -1,80 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-with lib;
-
-let
- cfg = config.services.tracks_storage_server;
-in
-{
- options.services.tracks_storage_server = {
- enable = mkEnableOption "tracks_storage_server";
- package = mkPackageOption pkgs "tracks_storage_server" { };
- nginx = mkOption {
- default = { };
- description = ''
- Configuration for nginx reverse proxy.
- '';
- type = types.submodule {
- options = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Configure the nginx reverse proxy settings.
- '';
- };
- hostName = mkOption {
- type = types.str;
- description = ''
- The hostname use to setup the virtualhost configuration
- '';
- };
- };
- };
- };
- };
-
- config = mkIf cfg.enable (mkMerge [
- {
- services.uwsgi.enable = true;
- services.uwsgi.plugins = [ "python3" ];
- services.uwsgi.instance = {
- type = "emperor";
- vassals.tracks = {
- type = "normal";
- master = true;
- workers = 2;
- socket = "127.0.0.1:8181";
- module = "server:application";
- pythonPackages = self: [ cfg.package ];
- };
- };
- }
- (mkIf cfg.nginx.enable {
- services.nginx = {
- enable = true;
- virtualHosts."${cfg.nginx.hostName}" = {
- locations."/" = {
- extraConfig = ''
- uwsgi_pass localhost:8181;
- include ${config.services.nginx.package}/conf/uwsgi_params;
-
- more_clear_headers Access-Control-Allow-Origin;
- more_clear_headers Access-Control-Allow-Credentials;
- more_set_headers 'Access-Control-Allow-Origin: $http_origin';
- more_set_headers 'Access-Control-Allow-Credentials: true';
- more_set_headers 'Cache-Control: max-age=315360000';
- more_set_headers 'Expires: Thu, 31 Dec 2037 23:55:55 GMT';
- more_set_headers 'Vary: Origin';
- '';
- };
- };
- };
- })
- ]);
-}
diff --git a/pkgs/data/maps/dem/default.nix b/pkgs/data/maps/dem/default.nix
@@ -4,7 +4,7 @@
fetchurl,
unzip,
gdal,
- elevation_server,
+ elevation-server,
}:
let
version = "2014-05-25";
@@ -55,7 +55,7 @@ in
nativeBuildInputs = [
unzip
- elevation_server
+ elevation-server
];
dontFixup = true;
diff --git a/pkgs/default.nix b/pkgs/default.nix
@@ -299,7 +299,7 @@ lib.makeScope newScope (
dockerImages = {
agate = callPackage ./images/agate { };
- elevation_server = callPackage ./images/elevation_server { };
+ elevation-server = callPackage ./images/elevation-server { };
git = callPackage ./images/git {
git = pkgs.gitMinimal.override {
perlSupport = false;
@@ -457,17 +457,18 @@ lib.makeScope newScope (
### NAKARTE
- elevation_server = callPackage ./nakarte/elevation_server { };
+ elevation-server = callPackage ./nakarte/elevation-server { };
map-tiler = callPackage ./nakarte/map-tiler { python3Packages = pkgs.python310Packages; };
+ mapillary-render = callPackage ./nakarte/mapillary-render { };
maprec = callPackage ./nakarte/maprec { python3Packages = pkgs.python310Packages; };
#nakarte = callPackage ./nakarte/nakarte { };
- ozi_map = callPackage ./nakarte/ozi_map { python3Packages = pkgs.python310Packages; };
+ ozi-map = callPackage ./nakarte/ozi-map { python3Packages = pkgs.python310Packages; };
pyimagequant = callPackage ./nakarte/pyimagequant { python3Packages = pkgs.python310Packages; };
thinplatespline = callPackage ./nakarte/thinplatespline {
python3Packages = pkgs.python310Packages;
};
- tracks_storage_server = pkgs.python3Packages.callPackage ./nakarte/tracks_storage_server { };
- westra_passes_for_nakarte = callPackage ./nakarte/westra_passes_for_nakarte { };
+ tracks-storage-server = pkgs.python3Packages.callPackage ./nakarte/tracks-storage-server { };
+ westra-passes = callPackage ./nakarte/westra-passes { };
### OSM
diff --git a/pkgs/images/elevation-server/default.nix b/pkgs/images/elevation-server/default.nix
@@ -0,0 +1,25 @@
+{ dockerTools, elevation-server }:
+
+dockerTools.buildImage {
+ name = "elevation-server";
+ tag = elevation-server.version;
+
+ contents = [ elevation-server ];
+ runAsRoot = "mkdir -p /dem";
+
+ config = {
+ Cmd = [
+ "elevation_server"
+ "-dem"
+ "/dem/dem_tiles"
+ "-host"
+ "0.0.0.0"
+ ];
+ Volumes = {
+ "/dem" = { };
+ };
+ ExposedPorts = {
+ "8080/tcp" = { };
+ };
+ };
+}
diff --git a/pkgs/images/elevation_server/default.nix b/pkgs/images/elevation_server/default.nix
@@ -1,25 +0,0 @@
-{ dockerTools, elevation_server }:
-
-dockerTools.buildImage {
- name = "elevation_server";
- tag = elevation_server.version;
-
- contents = [ elevation_server ];
- runAsRoot = "mkdir -p /dem";
-
- config = {
- Cmd = [
- "elevation_server"
- "-dem"
- "/dem/dem_tiles"
- "-host"
- "0.0.0.0"
- ];
- Volumes = {
- "/dem" = { };
- };
- ExposedPorts = {
- "8080/tcp" = { };
- };
- };
-}
diff --git a/pkgs/nakarte/elevation-server/default.nix b/pkgs/nakarte/elevation-server/default.nix
@@ -0,0 +1,37 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ buildGoModule,
+ lz4,
+}:
+
+buildGoModule {
+ pname = "elevation-server";
+ version = "1.2.0-unstable-2024-09-11";
+
+ src = fetchFromGitHub {
+ owner = "wladich";
+ repo = "elevation_server";
+ rev = "649297b32615f35e2c14d3c43216100ab4d83ea4";
+ hash = "sha256-nckgsaXtLd1D3gYqdAMF5VRRM4zkw4G6R0P//G9lqDM=";
+ };
+
+ vendorHash = "sha256-j43mafIXC1C4RvVIoqTV44kWSJgv1WDRphX3/G29Uxk=";
+
+ subPackages = [
+ "cmd/elevation_server"
+ "cmd/make_data"
+ ];
+
+ buildInputs = [ lz4 ];
+
+ meta = {
+ description = "The server providing elevation data";
+ homepage = "https://github.com/wladich/elevation_server";
+ license = lib.licenses.free;
+ maintainers = [ lib.maintainers.sikmir ];
+ platforms = lib.platforms.unix;
+ mainProgram = "elevation_server";
+ };
+}
diff --git a/pkgs/nakarte/elevation_server/default.nix b/pkgs/nakarte/elevation_server/default.nix
@@ -1,37 +0,0 @@
-{
- lib,
- stdenv,
- fetchFromGitHub,
- buildGoModule,
- lz4,
-}:
-
-buildGoModule rec {
- pname = "elevation_server";
- version = "1.2.0";
-
- src = fetchFromGitHub {
- owner = "sikmir";
- repo = "elevation_server";
- rev = "d8964ed01e81dea4bcd20cf6f7e092da4b2d5547";
- hash = "sha256-nckgsaXtLd1D3gYqdAMF5VRRM4zkw4G6R0P//G9lqDM=";
- };
-
- vendorHash = "sha256-j43mafIXC1C4RvVIoqTV44kWSJgv1WDRphX3/G29Uxk=";
-
- subPackages = [
- "cmd/elevation_server"
- "cmd/make_data"
- ];
-
- buildInputs = [ lz4 ];
-
- meta = {
- description = "The server providing elevation data";
- homepage = "https://github.com/wladich/elevation_server";
- license = lib.licenses.free;
- maintainers = [ lib.maintainers.sikmir ];
- platforms = lib.platforms.unix;
- mainProgram = "elevation_server";
- };
-}
diff --git a/pkgs/nakarte/map-tiler/default.nix b/pkgs/nakarte/map-tiler/default.nix
@@ -7,7 +7,7 @@
pango,
thinplatespline,
maprec,
- ozi_map,
+ ozi-map,
pyimagequant,
wrapGAppsHook,
}:
@@ -49,7 +49,7 @@ python3Packages.buildPythonApplication {
pycairo
thinplatespline
maprec
- ozi_map
+ ozi-map
pyimagequant
pygobject3
];
diff --git a/pkgs/nakarte/mapillary-render/default.nix b/pkgs/nakarte/mapillary-render/default.nix
@@ -0,0 +1,39 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ buildGoModule,
+ pkg-config,
+ cairo,
+}:
+
+buildGoModule rec {
+ pname = "mapillary-render";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "wladich";
+ repo = "mapillaryRender";
+ tag = version;
+ hash = "sha256-B2yDjbvpaa9zjPG9yF64s0tJ/bPAH0sOYqY74+f/TYE=";
+ };
+
+ vendorHash = "sha256-kRu8UST1gVnQ8WyIaVw/gFs3BXFNBQFJMmjul+x7fgs=";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ cairo ];
+
+ postInstall = ''
+ mv $out/bin/{cli,mapillary-render-cli}
+ mv $out/bin/{server,mapillary-render-server}
+ '';
+
+ meta = {
+ description = "Mapillary render";
+ homepage = "https://github.com/wladich/mapillaryRender";
+ license = lib.licenses.free;
+ maintainers = [ lib.maintainers.sikmir ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/pkgs/nakarte/ozi-map/default.nix b/pkgs/nakarte/ozi-map/default.nix
@@ -0,0 +1,40 @@
+{
+ lib,
+ stdenv,
+ python3Packages,
+ fetchFromGitHub,
+ maprec,
+}:
+
+python3Packages.buildPythonPackage {
+ pname = "ozi-map";
+ version = "0-unstable-2022-08-05";
+
+ src = fetchFromGitHub {
+ owner = "wladich";
+ repo = "ozi_map";
+ rev = "abd9e86d621ef5de89986e92b9e97e54b3173af4";
+ hash = "sha256-leYn+Z0BLptvtmHglwvmhzjHUZh0XEZ9LEBQHDCjfNc=";
+ };
+
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace-fail " @ git+https://github.com/wladich/maprec.git" ""
+ '';
+
+ dependencies = with python3Packages; [
+ maprec
+ pyproj
+ ];
+
+ doCheck = false;
+
+ pythonImportsCheck = [ "ozi_map" ];
+
+ meta = {
+ description = "Python module for reading OziExplorer .map files";
+ homepage = "https://github.com/wladich/ozi_map";
+ license = lib.licenses.free;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+}
diff --git a/pkgs/nakarte/ozi_map/default.nix b/pkgs/nakarte/ozi_map/default.nix
@@ -1,40 +0,0 @@
-{
- lib,
- stdenv,
- python3Packages,
- fetchFromGitHub,
- maprec,
-}:
-
-python3Packages.buildPythonPackage {
- pname = "ozi_map";
- version = "0-unstable-2022-08-05";
-
- src = fetchFromGitHub {
- owner = "wladich";
- repo = "ozi_map";
- rev = "abd9e86d621ef5de89986e92b9e97e54b3173af4";
- hash = "sha256-leYn+Z0BLptvtmHglwvmhzjHUZh0XEZ9LEBQHDCjfNc=";
- };
-
- postPatch = ''
- substituteInPlace setup.py \
- --replace-fail " @ git+https://github.com/wladich/maprec.git" ""
- '';
-
- dependencies = with python3Packages; [
- maprec
- pyproj
- ];
-
- doCheck = false;
-
- pythonImportsCheck = [ "ozi_map" ];
-
- meta = {
- description = "Python module for reading OziExplorer .map files";
- homepage = "https://github.com/wladich/ozi_map";
- license = lib.licenses.free;
- maintainers = [ lib.maintainers.sikmir ];
- };
-}
diff --git a/pkgs/nakarte/tracks-storage-server/default.nix b/pkgs/nakarte/tracks-storage-server/default.nix
@@ -0,0 +1,54 @@
+{
+ lib,
+ buildPythonPackage,
+ fetchFromGitHub,
+ writeText,
+ msgpack,
+ protobuf,
+ psycopg2,
+}:
+
+let
+ setupPy = writeText "setup.py" ''
+ from setuptools import setup
+ setup(
+ name='tracks_storage_server',
+ version='1.0',
+ install_requires=['msgpack', 'protobuf', 'psycopg2'],
+ py_modules=['server', 'nktk_raw_pb2', 'config'],
+ data_files=[('bin', ['init.sql'])],
+ scripts=['init_db.py'],
+ )
+ '';
+in
+buildPythonPackage {
+ pname = "tracks-storage-server";
+ version = "0-unstable-2024-04-27";
+
+ src = fetchFromGitHub {
+ owner = "wladich";
+ repo = "tracks_storage_server";
+ rev = "080526665a38c44e8c08e70d4ddcdda1c1911fc8";
+ hash = "sha256-fN7OG52t2pHxFlCxhnMkVMpctsuwBQyuXMO9CD9eWLg=";
+ };
+
+ postPatch = ''
+ cp ${setupPy} ${setupPy.name}
+ substitute config.py.example config.py --replace-fail "'password" "#'password"
+ '';
+
+ dependencies = [
+ msgpack
+ protobuf
+ psycopg2
+ ];
+
+ pythonImportsCheck = [ "server" ];
+
+ meta = {
+ description = "Tracks storage server";
+ homepage = "https://github.com/wladich/tracks_storage_server";
+ license = lib.licenses.free;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+}
diff --git a/pkgs/nakarte/tracks_storage_server/default.nix b/pkgs/nakarte/tracks_storage_server/default.nix
@@ -1,54 +0,0 @@
-{
- lib,
- buildPythonPackage,
- fetchFromGitHub,
- writeText,
- msgpack,
- protobuf,
- psycopg2,
-}:
-
-let
- setupPy = writeText "setup.py" ''
- from setuptools import setup
- setup(
- name='tracks_storage_server',
- version='1.0',
- install_requires=['msgpack', 'protobuf', 'psycopg2'],
- py_modules=['server', 'nktk_raw_pb2', 'config'],
- data_files=[('bin', ['init.sql'])],
- scripts=['init_db.py'],
- )
- '';
-in
-buildPythonPackage {
- pname = "tracks_storage_server";
- version = "2024-04-27";
-
- src = fetchFromGitHub {
- owner = "wladich";
- repo = "tracks_storage_server";
- rev = "080526665a38c44e8c08e70d4ddcdda1c1911fc8";
- hash = "sha256-fN7OG52t2pHxFlCxhnMkVMpctsuwBQyuXMO9CD9eWLg=";
- };
-
- postPatch = ''
- cp ${setupPy} ${setupPy.name}
- substitute config.py.example config.py --replace-fail "'password" "#'password"
- '';
-
- dependencies = [
- msgpack
- protobuf
- psycopg2
- ];
-
- pythonImportsCheck = [ "server" ];
-
- meta = {
- description = "Tracks storage server";
- homepage = "https://github.com/wladich/tracks_storage_server";
- license = lib.licenses.free;
- maintainers = [ lib.maintainers.sikmir ];
- };
-}
diff --git a/pkgs/nakarte/westra-passes/default.nix b/pkgs/nakarte/westra-passes/default.nix
@@ -0,0 +1,36 @@
+{
+ lib,
+ fetchFromGitHub,
+ python3Packages,
+}:
+
+python3Packages.buildPythonPackage {
+ pname = "westra-passes";
+ version = "0-unstable-2025-01-28";
+ pyproject = true;
+
+ src = fetchFromGitHub {
+ owner = "wladich";
+ repo = "westra_passes_for_nakarte";
+ rev = "98912314a192f58679c812b61c3a710891fbea7c";
+ hash = "sha256-Mtwmpvq0EK1H+Xz6HWmauKpo+ApSqfsgKOEGR3JwIXs=";
+ };
+
+ build-system = with python3Packages; [ setuptools ];
+
+ dependencies = with python3Packages; [
+ shapely
+ numpy
+ scipy
+ odfpy
+ ];
+
+ nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
+
+ meta = {
+ description = "Mountain passes for nakarte";
+ homepage = "https://github.com/wladich/westra_passes_for_nakarte";
+ license = lib.licenses.free;
+ maintainers = [ lib.maintainers.sikmir ];
+ };
+}
diff --git a/pkgs/nakarte/westra_passes_for_nakarte/default.nix b/pkgs/nakarte/westra_passes_for_nakarte/default.nix
@@ -1,36 +0,0 @@
-{
- lib,
- fetchFromGitHub,
- python3Packages,
-}:
-
-python3Packages.buildPythonPackage {
- pname = "westra_passes_for_nakarte";
- version = "0-unstable-2025-01-28";
- pyproject = true;
-
- src = fetchFromGitHub {
- owner = "wladich";
- repo = "westra_passes_for_nakarte";
- rev = "98912314a192f58679c812b61c3a710891fbea7c";
- hash = "sha256-Mtwmpvq0EK1H+Xz6HWmauKpo+ApSqfsgKOEGR3JwIXs=";
- };
-
- build-system = with python3Packages; [ setuptools ];
-
- dependencies = with python3Packages; [
- shapely
- numpy
- scipy
- odfpy
- ];
-
- nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
-
- meta = {
- description = "Mountain passes for nakarte";
- homepage = "https://github.com/wladich/westra_passes_for_nakarte";
- license = lib.licenses.free;
- maintainers = [ lib.maintainers.sikmir ];
- };
-}