bluemap: 3.21 -> 5.3

This commit is contained in:
h7x4 2024-08-04 15:05:33 +02:00
parent 03c0a80f39
commit 32f34d13c2
No known key found for this signature in database
GPG Key ID: 9F2F7D8250F35146
3 changed files with 42 additions and 8 deletions

View File

@ -163,6 +163,8 @@
- `services.kubernetes.kubelet.clusterDns` now accepts a list of DNS resolvers rather than a single string, bringing the module more in line with the upstream Kubelet configuration schema. - `services.kubernetes.kubelet.clusterDns` now accepts a list of DNS resolvers rather than a single string, bringing the module more in line with the upstream Kubelet configuration schema.
- `bluemap` has changed the format used to store map tiles, and the database layout has been heavily modified. Upstream recommends a clean reinstallation: <https://github.com/BlueMap-Minecraft/BlueMap/releases/tag/v5.2>. Unless you are using an SQL storage backend, this should only entail deleting the contents of `config.services.bluemap.coreSettings.data` (defaults to `/var/lib/bluemap`) and `config.services.bluemap.webRoot` (defaults to `/var/lib/bluemap/web`).
- `wstunnel` has had a major version upgrade that entailed rewriting the program in Rust. - `wstunnel` has had a major version upgrade that entailed rewriting the program in Rust.
The module was updated to accommodate for breaking changes. The module was updated to accommodate for breaking changes.
Breaking changes to the module API were minimised as much as possible, Breaking changes to the module API were minimised as much as possible,

View File

@ -13,6 +13,9 @@ let
(format.generate "${name}.conf" value)) (format.generate "${name}.conf" value))
cfg.maps); cfg.maps);
addonsFolder = pkgs.linkFarm "addons"
(lib.attrsets.mapAttrs' (name: value: lib.nameValuePair "${name}.jar" value) cfg.addons);
storageFolder = pkgs.linkFarm "storage" storageFolder = pkgs.linkFarm "storage"
(lib.attrsets.mapAttrs' (name: value: (lib.attrsets.mapAttrs' (name: value:
lib.nameValuePair "${name}.conf" lib.nameValuePair "${name}.conf"
@ -25,11 +28,16 @@ let
"core.conf" = coreConfig; "core.conf" = coreConfig;
"webapp.conf" = webappConfig; "webapp.conf" = webappConfig;
"webserver.conf" = webserverConfig; "webserver.conf" = webserverConfig;
"resourcepacks" = pkgs.linkFarm "resourcepacks" cfg.resourcepacks; "packs" = pkgs.linkFarm "packs" cfg.resourcepacks;
"addons" = addonsFolder;
}; };
inherit (lib) mkOption; inherit (lib) mkOption;
in { in {
imports = [
(lib.mkRenamedOptionModule [ "services" "bluemap" "resourcepacks" ] [ "services" "bluemap" "packs" ])
];
options.services.bluemap = { options.services.bluemap = {
enable = lib.mkEnableOption "bluemap"; enable = lib.mkEnableOption "bluemap";
@ -219,6 +227,26 @@ in {
''; '';
}; };
addons = mkOption {
type = lib.types.attrsOf lib.types.pathInStore;
default = { };
description = ''
A set of jar addons to be loaded.
See <https://bluemap.bluecolored.de/3rdPartySupport.html> for a list of officially recognized addons.
'';
example = lib.literalExpression ''
{
blueBridge = ./blueBridge.jar;
blueBorder = pkgs.fetchurl {
url = "https://github.com/pop4959/BlueBorder/releases/download/1.1.1/BlueBorder-1.1.1.jar";
hash = "...";
};
}
'';
};
storage = mkOption { storage = mkOption {
type = lib.types.attrsOf (lib.types.submodule { type = lib.types.attrsOf (lib.types.submodule {
freeformType = format.type; freeformType = format.type;
@ -249,10 +277,13 @@ in {
''; '';
}; };
resourcepacks = mkOption { packs = mkOption {
type = lib.types.attrsOf lib.types.pathInStore; type = lib.types.attrsOf lib.types.pathInStore;
default = { }; default = { };
description = "A set of resourcepacks to use, loaded in alphabetical order"; description = ''
A set of resourcepacks, datapacks, and mods to extract resources from,
loaded in alphabetical order.
'';
}; };
}; };
@ -293,11 +324,12 @@ in {
"${cfg.host}" = { "${cfg.host}" = {
root = config.services.bluemap.webRoot; root = config.services.bluemap.webRoot;
locations = { locations = {
"~* ^/maps/[^/]*/tiles/[^/]*.json$".extraConfig = '' "@empty".return = "204";
error_page 404 =200 /assets/emptyTile.json;
"~* ^/maps/[^/]*/tiles/".extraConfig = ''
error_page 404 = @empty;
gzip_static always; gzip_static always;
''; '';
"~* ^/maps/[^/]*/tiles/[^/]*.png$".tryFiles = "$uri =204";
}; };
}; };
}; };

View File

@ -2,11 +2,11 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "bluemap"; pname = "bluemap";
version = "3.21"; version = "5.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/BlueMap-Minecraft/BlueMap/releases/download/v${version}/BlueMap-${version}-cli.jar"; url = "https://github.com/BlueMap-Minecraft/BlueMap/releases/download/v${version}/BlueMap-${version}-cli.jar";
hash = "sha256-YWf69+nsMfqk2x9xGTt+tdnGvaU+6rPsiBLWsP89ngM="; hash = "sha256-oL6aNjJfPKq8Ywbpxt0wau7EZLir6QfpO2WJZZyHUfU=";
}; };
dontUnpack = true; dontUnpack = true;