feat(romm): package version 5.4.0
This commit was merged in pull request #201.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -31,13 +32,26 @@ in
|
||||
|
||||
services.romm = {
|
||||
enable = true;
|
||||
package = pkgs.alexion.romm;
|
||||
group = "storage";
|
||||
database.createLocally = true;
|
||||
redis.createLocally = true;
|
||||
watcher.enable = true;
|
||||
extraEnvironment.ROM_CONVERTO_ENABLED = "false";
|
||||
inherit (cfg) environmentFile;
|
||||
};
|
||||
|
||||
systemd.tmpfiles.settings."10-romm"."${config.services.romm.dataDir}/config/config.yml"."L+".argument =
|
||||
toString (
|
||||
(pkgs.formats.yaml { }).generate "romm-config.yml" {
|
||||
emulatorjs.auto_save_sync = false;
|
||||
filesystem.structure = {
|
||||
default = "roms/{platform}/{game}";
|
||||
firmware = "bios/{platform}";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
users.users = {
|
||||
romm.uid = config.registry."stable-uid".${config.networking.hostName}.romm;
|
||||
redis-romm.uid = config.registry."stable-uid".${config.networking.hostName}."redis-romm";
|
||||
|
||||
@@ -3,8 +3,8 @@ aliases:
|
||||
- "0015"
|
||||
- RomM 5.4 Package
|
||||
date-created: 2026-10-19 19:40
|
||||
date-modified: 2026-10-19 19:40
|
||||
status: open
|
||||
date-modified: 2026-10-21 00:01
|
||||
status: closed
|
||||
area: "[[homelab]]"
|
||||
blocked-by:
|
||||
- "[[0014-romm-guest]]"
|
||||
|
||||
@@ -4,5 +4,7 @@
|
||||
inherit root;
|
||||
};
|
||||
|
||||
romm = pkgs.callPackage ./romm.nix { };
|
||||
|
||||
waybar = pkgs.callPackage ./waybar.nix { };
|
||||
}
|
||||
|
||||
124
src/flake/packages/romm.nix
Normal file
124
src/flake/packages/romm.nix
Normal file
@@ -0,0 +1,124 @@
|
||||
{
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
python3,
|
||||
romm,
|
||||
}:
|
||||
romm.overrideAttrs (
|
||||
finalAttrs: previousAttrs:
|
||||
let
|
||||
frontend = buildNpmPackage {
|
||||
pname = "romm-frontend";
|
||||
inherit (finalAttrs) version;
|
||||
src = "${finalAttrs.src}/frontend";
|
||||
|
||||
npmDepsHash = "sha256-f5IcpOVv7JYFzUPkZIq5nbT3dS1f/KCSllh8Vkgl1P0=";
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
makeCacheWritable = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp -r dist $out
|
||||
chmod u+w $out/assets
|
||||
cp -r assets/. $out/assets/
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
|
||||
# RomM 5.4 requires packages absent from the Nixpkgs 5.2 environment.
|
||||
pythonEnv = python3.withPackages (
|
||||
ps: with ps; [
|
||||
aiohttp
|
||||
alembic
|
||||
anyio
|
||||
apprise
|
||||
asyncssh
|
||||
authlib
|
||||
bcrypt
|
||||
colorama
|
||||
croniter
|
||||
cryptography
|
||||
defusedxml
|
||||
email-validator
|
||||
fastapi
|
||||
gunicorn
|
||||
httpx
|
||||
httpx2
|
||||
itsdangerous
|
||||
jinja2
|
||||
joserfc
|
||||
mariadb
|
||||
mutagen
|
||||
mysql-connector-python
|
||||
opentelemetry-distro
|
||||
opentelemetry-exporter-otlp
|
||||
opentelemetry-instrumentation-aiohttp-client
|
||||
opentelemetry-instrumentation-fastapi
|
||||
opentelemetry-instrumentation-httpx
|
||||
opentelemetry-instrumentation-redis
|
||||
opentelemetry-instrumentation-sqlalchemy
|
||||
passlib
|
||||
pillow
|
||||
psycopg
|
||||
pydantic
|
||||
pydash
|
||||
python-dotenv
|
||||
python-magic
|
||||
python-multipart
|
||||
python-socketio
|
||||
pyyaml
|
||||
redis
|
||||
rq
|
||||
rq-scheduler
|
||||
sentry-sdk
|
||||
sqlalchemy
|
||||
starlette
|
||||
streaming-form-data
|
||||
strsimpy
|
||||
ua-parser
|
||||
unidecode
|
||||
uvicorn
|
||||
uvicorn-worker
|
||||
watchfiles
|
||||
yarl
|
||||
zipfile-inflate64
|
||||
zstandard
|
||||
]
|
||||
);
|
||||
in
|
||||
{
|
||||
version = "5.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rommapp";
|
||||
repo = "romm";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-oIYEdIAJgXkcqjZtWlWKD/NFiQ3gbo7gxwLhqZOCWpM=";
|
||||
};
|
||||
|
||||
postPatch = previousAttrs.postPatch + ''
|
||||
# Redis 8.0.1 removed this argument.
|
||||
# RomM disables the related maintenance notifications.
|
||||
substituteInPlace backend/handler/redis_handler.py \
|
||||
--replace-fail 'from redis.maint_notifications import MaintNotificationsConfig' "" \
|
||||
--replace-fail ' "maint_notifications_config": MaintNotificationsConfig(enabled=False),' ""
|
||||
'';
|
||||
|
||||
installPhase =
|
||||
lib.replaceStrings
|
||||
[
|
||||
"${previousAttrs.passthru.frontend}"
|
||||
"${previousAttrs.passthru.pythonEnv}"
|
||||
]
|
||||
[
|
||||
"${frontend}"
|
||||
"${pythonEnv}"
|
||||
]
|
||||
previousAttrs.installPhase;
|
||||
|
||||
passthru = previousAttrs.passthru // {
|
||||
inherit frontend pythonEnv;
|
||||
};
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user