diff --git a/hosts/marvin/default.nix b/hosts/marvin/default.nix index 3f51e012..9dd949ba 100644 --- a/hosts/marvin/default.nix +++ b/hosts/marvin/default.nix @@ -29,7 +29,6 @@ ./services/podman.nix ./services/postgres.nix ./services/prometheus.nix - ./services/romm.nix ./services/scrutiny.nix ./services/syncthing.nix ./services/tailscale.nix diff --git a/hosts/marvin/services/nginx.nix b/hosts/marvin/services/nginx.nix index b5644a5d..b2659086 100644 --- a/hosts/marvin/services/nginx.nix +++ b/hosts/marvin/services/nginx.nix @@ -1,101 +1,20 @@ { self, - pkgs, - self', ... }: let n = self.lib.data.services.nextcloud; - r = self.lib.data.services.romm; in { services.nginx = { recommendedGzipSettings = true; - virtualHosts = { - "${n.extUrl}" = { - listen = [ - { - inherit (n) port; - addr = "0.0.0.0"; - } - ]; - }; - "${r.tsHost}.${self.lib.data.tsNet}" = { - locations = { - "/" = { - extraConfig = '' - try_files $uri $uri/ /index.html; - proxy_redirect off; - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Methods *; - add_header Access-Control-Allow-Headers *; - add_header Cross-Origin-Embedder-Policy $coep_header; - add_header Cross-Origin-Opener-Policy $coop_header; - ''; - }; - "/assets".tryFiles = "$uri $uri/ =404"; - "/openapi.json".proxyPass = "http://romm_wsgi"; - "/api".extraConfig = '' - proxy_pass http://romm_wsgi; - proxy_request_buffering off; - proxy_buffering off; - ''; - "/ws".extraConfig = '' - proxy_pass http://romm_wsgi; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - ''; - "/library/".extraConfig = '' - internal; - alias "/var/media/roms/library/"; - ''; - "/decode".extraConfig = '' - internal; - js_path ${self'.packages.romm}/lib/romm/ngx_js; - js_content decode.decodeBase64; - ''; - }; - root = "${self'.packages.romm.frontend}/lib/node_modules/romm/dist"; - extraConfig = '' - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $forwardscheme; - ''; - listen = [ - { - port = r.nginxPort; - addr = "0.0.0.0"; - } - ]; - }; - }; - commonHttpConfig = '' - # Helper to get scheme regardless if we are behind a proxy or not - map $http_x_forwarded_proto $forwardscheme { - default $scheme; - https https; - } - # COEP and COOP headers for cross-origin isolation, which are set only for the - # EmulatorJS player path, to enable SharedArrayBuffer support, which is needed - # for multi-threaded cores. - map $request_uri $coep_header { - default ""; - ~^/rom/.*/ejs$ "require-corp"; - } - map $request_uri $coop_header { - default ""; - ~^/rom/.*/ejs$ "same-origin"; - } - - ''; - additionalModules = [ - pkgs.nginxModules.zip - pkgs.nginxModules.njs - ]; - upstreams.romm_wsgi.servers = { - "unix:/run/romm/server.sock" = { }; + virtualHosts."${n.extUrl}" = { + listen = [ + { + inherit (n) port; + addr = "0.0.0.0"; + } + ]; }; }; } diff --git a/hosts/marvin/services/romm.nix b/hosts/marvin/services/romm.nix deleted file mode 100644 index 414f0a9b..00000000 --- a/hosts/marvin/services/romm.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ - config, - self, - self', - lib, - pkgs, - ... -}: -let - sec = config.age.secrets; - d = self.lib.data.services.romm; - configFileFormat = pkgs.formats.yaml { }; - rommConfig = { - exclude.platforms = [ ]; - filesystem.roms_folder = "roms"; - scan = { - priority = { - metadata = [ - "igdb" - "moby" - "launchbox" - "hasheous" - "flashpoint" - "ra" - "hltb" - ]; - }; - }; - }; -in -{ - systemd.services = { - romm-server = { - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - description = "Romm.app server"; - path = [ pkgs.cron ]; - environment = { - # Server - TZ = "US/New_York"; - ROMM_BASE_PATH = "/var/media/roms"; - ROMM_BASE_URL = "${d.tsHost}.${self.lib.data.tsNet}:${toString d.port}"; - DB_HOST = "/run/postgresql"; - DB_PORT = "5432"; - DB_NAME = "romm"; - DB_USER = "romm"; - DB_PASSWD = "romm"; - ROMM_DB_DRIVER = "postgresql"; - REDIS_PORT = toString d.redisPort; - CRON_COMMAND = lib.getExe pkgs.cron; - ROMM_CONFIG_FILE = configFileFormat.generate "config.yml" rommConfig; - - # Metadata Providers - LAUNCHBOX_API_ENABLED = "true"; - PLAYMATCH_API_ENABLED = "true"; - HASHEOUS_API_ENABLED = "true"; - FLASHPOINT_API_ENABLED = "true"; - HLTB_API_ENABLED = "true"; - - # Background Tasks - ENABLE_RESCAN_ON_FILESYSTEM_CHANGE = "true"; - ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA = "true"; - }; - serviceConfig = { - ExecStartPre = lib.getExe' self'.packages.romm "romm-startup"; - ExecStart = "${lib.getExe self'.packages.romm} --bind=0.0.0.0:${toString d.port} --bind=unix:/run/romm/server.sock"; - User = "romm"; - Group = "romm"; - EnvironmentFile = [ sec.romm-secrets.path ]; - StateDirectory = "romm"; - RuntimeDirectory = "romm"; - }; - }; - }; - - users.users.romm = { - isSystemUser = true; - group = "romm"; - }; - users.groups.romm = { }; - - systemd.tmpfiles.settings."10-romm"."/var/media/roms".d = { - group = "romm"; - user = "romm"; - mode = "755"; - }; - - services.postgresql.ensureUsers = [ - { - name = "romm"; - ensureDBOwnership = true; - ensureClauses.login = true; - } - ]; - services.postgresql.ensureDatabases = [ "romm" ]; - - services.redis.servers.romm = { - enable = true; - databases = 1; - port = d.redisPort; - }; - - age.secrets = { - romm-secrets = { - file = ./secrets/romm-secrets.age; - owner = "romm"; - group = "romm"; - }; - }; -} diff --git a/hosts/marvin/services/secrets/secrets.nix b/hosts/marvin/services/secrets/secrets.nix index f12ba4d3..b6e6358b 100644 --- a/hosts/marvin/services/secrets/secrets.nix +++ b/hosts/marvin/services/secrets/secrets.nix @@ -37,7 +37,6 @@ in "pinchflat-secrets.age".publicKeys = marvinDefault; "planka-env.age".publicKeys = marvinDefault; "pocket-id-secrets.age".publicKeys = marvinDefault; - "romm-secrets.age".publicKeys = marvinDefault; "vaultwarden-vars.age".publicKeys = marvinDefault; "webmentiond-env.age".publicKeys = marvinDefault; } diff --git a/lib/data/services.toml b/lib/data/services.toml index 55112e25..dfd3f339 100644 --- a/lib/data/services.toml +++ b/lib/data/services.toml @@ -5,7 +5,8 @@ # anubis: What port the anubis service for this domain will use, int # tsHost: (optional) What Tailscale host this service will run on, for services only available via Tailscale. # # Should only be set if this is available externally, if at all, since TS-only services aren't able to be scraped. -# Current lowest unassigned port: 6941 +# Current lowest unassigned port: 6938 + [authentik] port = 6908 host = "marvin" @@ -119,12 +120,6 @@ port = 6901 host = "marvin" tsHost = "reddit" -[romm] -port = 6938 -nginxPort = 6939 -tsHost = "romm" -redisPort = 6940 - [scrutiny] port = 6931 diff --git a/packages/romm/common.nix b/packages/romm/common.nix deleted file mode 100644 index 1c902165..00000000 --- a/packages/romm/common.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, fetchFromGitHub }: -rec { - version = "4.4.1"; - src = fetchFromGitHub { - owner = "rommapp"; - repo = "romm"; - tag = version; - hash = "sha256-0xcGd0z4uNCFbqo6xiRqde83g2Ns1NZBB6CzfqZRjVU="; - }; - - meta = { - changelog = "https://github.com/rommapp/romm/releases/tag/${version}"; - description = "Beautiful, powerful, self-hosted rom manager and player"; - homepage = "https://romm.app/"; - license = lib.licenses.agpl3Only; - maintainers = [ lib.maintainers.pyrox0 ]; - platforms = lib.platforms.linux; - }; -} diff --git a/packages/romm/emulatorjs.nix b/packages/romm/emulatorjs.nix deleted file mode 100644 index 2cbf591b..00000000 --- a/packages/romm/emulatorjs.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - stdenvNoCC, - fetchurl, - _7zz, -}: -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "emulatorjs"; - version = "4.2.3"; - - src = fetchurl { - url = "https://github.com/EmulatorJS/EmulatorJS/releases/download/v${finalAttrs.version}/${finalAttrs.version}.7z"; - hash = "sha256-B9RRvAb6OtBKsw2blOtjrDStC6vuUtYDV7ACvejzhQs="; - }; - - nativeBuildInputs = [ _7zz ]; - - dontUnpack = true; - dontConfigure = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/emulatorjs - 7zz x -y $src -o$out/lib/emulatorjs - - runHook postInstall - ''; - - meta = { - changelog = "https://github.com/EmulatorJS/EmulatorJS/releases/tag/v${finalAttrs.version}"; - description = "Web-based frontend for RetroArch"; - homepage = "https://emulatorjs.org/"; - license = lib.licenses.gpl3Only; - maintainers = [ lib.maintainers.pyrox0 ]; - }; -}) diff --git a/packages/romm/frontend.nix b/packages/romm/frontend.nix deleted file mode 100644 index 10bd4102..00000000 --- a/packages/romm/frontend.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - buildNpmPackage, - common, - ruffle-web, - emulatorjs, -}: -buildNpmPackage { - inherit (common) version src; - pname = "romm-frontend"; - - sourceRoot = "${common.src.name}/frontend"; - - npmDepsHash = "sha256-ytbH58i1D63Z73tG4WLSDsLjscjSRjWg0yqOrtXhluo="; - - postInstall = '' - cp -r $out/lib/node_modules/romm/assets/* $out/lib/node_modules/romm/dist/assets/ - rm -rf $out/lib/node_modules/romm/{assets,*.js,public,*.json,src,node_modules} - rommAssets="$out/lib/node_modules/romm/dist/assets" - cp -r ${ruffle-web}/lib/ruffle-web/* $rommAssets/ruffle/ - cp -r ${emulatorjs}/lib/emulatorjs/* $rommAssets/emulatorjs/ - - ''; - meta = (lib.filterAttrs (n: _: n != "position") common.meta); -} diff --git a/packages/romm/libchdr.nix b/packages/romm/libchdr.nix deleted file mode 100644 index 277285ac..00000000 --- a/packages/romm/libchdr.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - cmake, - zlib, - zstd, -}: -stdenv.mkDerivation { - pname = "libchdr"; - version = "0-unstable-2025-06-08"; - - src = fetchFromGitHub { - owner = "rtissera"; - repo = "libchdr"; - rev = "8bba7745d758627258b315997a860039244cedaf"; - hash = "sha256-w/MwzXGi9ZtqNHuG00sw+l4lgmkcYHzebjVVM6u4Xhc="; - }; - - postPatch = '' - substituteInPlace pkg-config.pc.in \ - --replace-fail "@CMAKE_INSTALL_LIBDIR@" "lib" \ - --replace-fail "@CMAKE_INSTALL_INCLUDEDIR@" "include" - ''; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = [ - zlib - zstd - ]; - - cmakeFlags = [ - (lib.cmakeBool "WITH_SYSTEM_ZLIB" true) - (lib.cmakeBool "WITH_SYSTEM_ZSTD" true) - (lib.cmakeBool "INSTALL_STATIC_LIBS" true) - (lib.cmakeBool "BUILD_SHARED_LIBS" true) - (lib.cmakeBool "BUILD_LTO" true) - ]; - - meta = { - description = "Standalone library for reading MAME's CHDv1-v5 formats"; - homepage = "https://github.com/rtissera/libchdr"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ pyrox0 ]; - }; -} diff --git a/packages/romm/package.nix b/packages/romm/package.nix deleted file mode 100644 index 5dd46b4f..00000000 --- a/packages/romm/package.nix +++ /dev/null @@ -1,142 +0,0 @@ -{ - lib, - python3Packages, - makeBinaryWrapper, - callPackage, - writeShellScript, - python-packages ? (callPackage ./python-packages { }), - rahasher ? (callPackage ./rahasher.nix { }), - ruffle-web ? (callPackage ./ruffle-web.nix { }), - emulatorjs ? (callPackage ./emulatorjs.nix { }), - common ? (callPackage ./common.nix { }), - frontend ? (callPackage ./frontend.nix { inherit common emulatorjs ruffle-web; }), -}: -python3Packages.buildPythonPackage { - inherit (common) version src; - pname = "romm"; - pyproject = false; - - # Get config file from nix and not from a folder in the library - postPatch = '' - substituteInPlace backend/config/config_manager.py \ - --replace-fail 'f"{ROMM_USER_CONFIG_PATH}/config.yml"' 'os.environ["ROMM_CONFIG_FILE"]' - ''; - - dependencies = - with python3Packages; - [ - pyyaml - sqlalchemy - unidecode - aiohttp - alembic - anyio - authlib - colorama - defusedxml - python-packages.fastapi-pagination - fastapi - gunicorn - httpx - itsdangerous - joserfc - opentelemetry-distro - opentelemetry-exporter-otlp - opentelemetry-instrumentation-aiohttp-client - opentelemetry-instrumentation-fastapi - opentelemetry-instrumentation-httpx - opentelemetry-instrumentation-redis - opentelemetry-instrumentation-sqlalchemy - passlib - pillow - psycopg - pydash - python-dotenv - python-magic - python-socketio - redis - rq - python-packages.rq-scheduler - sentry-sdk - starlette - streaming-form-data - python-packages.strsimpy - types-colorama - python-packages.types-passlib - types-pyyaml - types-redis - user-agents - uvicorn - uvicorn-worker - watchfiles - yarl - python-packages.zipfile-inflate64 - ] - ++ python3Packages.sqlalchemy.optional-dependencies.mariadb_connector - ++ python3Packages.sqlalchemy.optional-dependencies.mysql_connector - ++ python3Packages.sqlalchemy.optional-dependencies.postgresql_psycopg - ++ python3Packages.passlib.optional-dependencies.bcrypt - ++ python3Packages.psycopg.optional-dependencies.c - ++ python3Packages.fastapi.optional-dependencies.standard - ++ python-packages.fastapi-pagination.optional-dependencies.sqlalchemy; - - optional-dependencies = { - test = with python3Packages; [ - fakeredis - pytest_8_3 - pytest-asyncio - pytest-cov-stub - pytest-env - pytest-mock - pytest-recording - ]; - }; - - buildInputs = [ - rahasher - makeBinaryWrapper - python3Packages.gunicorn - ]; - - installPhase = - let - mainScript = writeShellScript "romm-main" '' - ${lib.getExe python3Packages.gunicorn} "$@" -k uvicorn.workers.UvicornWorker main:app; - ''; - in - '' - runHook postInstall - - mkdir -p $out/lib/romm - mkdir $out/bin - - mv backend/* $out/lib/romm - - mv docker/nginx/js $out/lib/romm/ngx_js - - chmod +x $out/lib/romm/main.py - - makeWrapper ${python3Packages.python.pythonOnBuildForHost.interpreter} $out/bin/romm-startup \ - --prefix PYTHONPATH : "$PYTHONPATH" \ - --chdir "$out/lib/romm" \ - --add-flag "$out/lib/romm/startup.py" - - makeWrapper ${mainScript} $out/bin/romm \ - --chdir "$out/lib/romm" \ - --prefix PYTHONPATH : "$PYTHONPATH" \ - ''; - - passthru = { - inherit - common - emulatorjs - frontend - python-packages - rahasher - ruffle-web - ; - }; - meta = (lib.filterAttrs (n: _: n != "position") common.meta) // { - mainProgram = "romm"; - }; -} diff --git a/packages/romm/python-packages/default.nix b/packages/romm/python-packages/default.nix deleted file mode 100644 index 8d4d7bf7..00000000 --- a/packages/romm/python-packages/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - lib, - callPackage, - newScope, -}: -lib.packagesFromDirectoryRecursive { - inherit callPackage newScope; - directory = ./pkgs; -} diff --git a/packages/romm/python-packages/pkgs/crontab/package.nix b/packages/romm/python-packages/pkgs/crontab/package.nix deleted file mode 100644 index 5e8b28e0..00000000 --- a/packages/romm/python-packages/pkgs/crontab/package.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - lib, - python3Packages, - fetchFromGitHub, -}: -python3Packages.buildPythonPackage rec { - pname = "crontab"; - version = "1.0.5"; - pyproject = true; - - src = fetchFromGitHub { - owner = "josiahcarlson"; - repo = "parse-crontab"; - tag = version; - hash = "sha256-iZS4vkfp93BK5wp1S3qCg0bC7NcT7o5/nNMRI+SXTws="; - }; - - build-system = [ python3Packages.setuptools ]; - - dependencies = with python3Packages; [ - build - python-dateutil - pytz - setuptools - twine - ]; - - nativeCheckInputs = [ python3Packages.pytestCheckHook ]; - - meta = { - description = "Parse and use crontab schedules in Python"; - homepage = "https://github.com/josiahcarlson/parse-crontab"; - license = [ - lib.licenses.lgpl21 - lib.licenses.lgpl3 - ]; - maintainers = [ lib.maintainers.pyrox0 ]; - }; -} diff --git a/packages/romm/python-packages/pkgs/fastapi-pagination/package.nix b/packages/romm/python-packages/pkgs/fastapi-pagination/package.nix deleted file mode 100644 index 46dae93e..00000000 --- a/packages/romm/python-packages/pkgs/fastapi-pagination/package.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ - lib, - python3Packages, - fetchFromGitHub, - sqlakeyset, -}: -python3Packages.buildPythonPackage rec { - pname = "fastapi-pagination"; - version = "0.15.2"; - pyproject = true; - - src = fetchFromGitHub { - owner = "uriyyo"; - repo = "fastapi-pagination"; - tag = version; - hash = "sha256-4ffpqSI/oyV5LOPGBsCI7EZ6lKPkMY8Bw9b1ONsBg8I="; - }; - - build-system = [ python3Packages.hatchling ]; - - dependencies = with python3Packages; [ - fastapi - pydantic - typing-extensions - ]; - - optional-dependencies = with python3Packages; { - sqlmodel = [ - sqlmodel - sqlakeyset - ]; - sqlalchemy = [ - sqlalchemy - sqlakeyset - ]; - databases = [ databases ]; - # orm = [ - # # orm - # databases - # ]; - # tortoise = [tortoise-orm]; - asyncpg = [ - sqlalchemy - asyncpg - ]; - django = [ - django_5 - databases - ]; - piccolo = [ piccolo ]; - motor = [ motor ]; - # bunnet = [ bunnet ]; - mongoengine = [ mongoengine ]; - # beanie = [ beanie ]; - # scylla-driver = [ scylla-driver ]; - # odmantic = [ odmantic ]; - elasticsearch = [ elasticsearch-dsl ]; - firestore = [ google-cloud-firestore ]; - }; - - disabledTestPaths = [ - "tests/ext" - ]; - - nativeCheckInputs = - with python3Packages; - [ - pytestCheckHook - pytest-cov-stub - pytest-asyncio - aiosqlite - asgi-lifespan - cassandra-driver - httpx - faker - dirty-equals - ] - ++ lib.concatAttrValues optional-dependencies; - - pythonImportsCheck = [ "fastapi_pagination" ]; - - meta = { - changelog = "https://github.com/uriyyo/fastapi-pagination/releases/tag/${version}"; - description = "simplify pagination in FastAPI applications"; - homepage = "https://uriyyo-fastapi-pagination.netlify.app/"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ - pyrox0 - ]; - }; -} diff --git a/packages/romm/python-packages/pkgs/rq-scheduler/package.nix b/packages/romm/python-packages/pkgs/rq-scheduler/package.nix deleted file mode 100644 index 16a9ae04..00000000 --- a/packages/romm/python-packages/pkgs/rq-scheduler/package.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - lib, - python3Packages, - fetchFromGitHub, - crontab, -}: -python3Packages.buildPythonPackage { - pname = "rq-scheduler"; - version = "0.14.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "adamantike"; - repo = "rq-scheduler"; - # https://github.com/rq/rq-scheduler/pull/325 - rev = "feat/script-options-username-ssl"; - hash = "sha256-VOgMuzSDwCIWOlWc2+dxZHXqO3IigTi0F7ZRAzbgzLE="; - }; - - postPatch = '' - # Only contains python2 compat stuff, also causes warnings, so remove - rm setup.cfg - ''; - - build-system = [ python3Packages.setuptools ]; - - dependencies = with python3Packages; [ - crontab - rq - python-dateutil - ]; - - # Tests require running Redis server - doCheck = false; - - pythonImportsCheck = [ "rq_scheduler" ]; - - meta = { - description = "lightweight library that adds job scheduling capabilities to RQ"; - homepage = "https://github.com/rq/rq-scheduler"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.pyrox0 ]; - }; -} diff --git a/packages/romm/python-packages/pkgs/sqlakeyset/package.nix b/packages/romm/python-packages/pkgs/sqlakeyset/package.nix deleted file mode 100644 index 2c7df8f8..00000000 --- a/packages/romm/python-packages/pkgs/sqlakeyset/package.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - python3Packages, - fetchPypi, -}: -python3Packages.buildPythonPackage rec { - pname = "sqlakeyset"; - version = "2.0.1762907931"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-gLGrHYgTt8kf17Rd5ESJeL4s7bPHX/8/0ZKw+c+RUI0="; - }; - - build-system = [ - python3Packages.hatchling - ]; - - dependencies = - with python3Packages; - [ - sqlalchemy - python-dateutil - packaging - ] - ++ (lib.optionals (python3Packages.pythonOlder "3.13") [ - typing-extensions - ]); -} diff --git a/packages/romm/python-packages/pkgs/strsimpy/package.nix b/packages/romm/python-packages/pkgs/strsimpy/package.nix deleted file mode 100644 index 91a718a4..00000000 --- a/packages/romm/python-packages/pkgs/strsimpy/package.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - lib, - fetchFromGitHub, - python3Packages, -}: -python3Packages.buildPythonPackage rec { - pname = "strsimpy"; - version = "0.2.1"; - pyproject = true; - - src = fetchFromGitHub { - owner = "luozhouyang"; - repo = "python-string-similarity"; - tag = "v${version}"; - hash = "sha256-MMueTVLdNYpr37H7e5vc9TrGO+2bDPleH8xoSTQTUdQ="; - }; - - postPatch = '' - substituteInPlace strsimpy/sift4_test.py \ - --replace-warn "assertEquals" "assertEqual" - ''; - - build-system = [ python3Packages.setuptools ]; - - nativeCheckInputs = [ - python3Packages.pytestCheckHook - ]; - - pythonImportsCheck = [ "strsimpy" ]; - - meta = { - description = "Library implementing different string similarity and distance measures using Python"; - homepage = "https://github.com/luozhouyang/python-string-similarity"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.pyrox0 ]; - }; -} diff --git a/packages/romm/python-packages/pkgs/types-passlib/package.nix b/packages/romm/python-packages/pkgs/types-passlib/package.nix deleted file mode 100644 index 1ef66908..00000000 --- a/packages/romm/python-packages/pkgs/types-passlib/package.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - python3Packages, - fetchPypi, -}: - -python3Packages.buildPythonPackage rec { - pname = "types-passlib"; - version = "1.7.7.20250602"; - pyproject = true; - - src = fetchPypi { - inherit version; - pname = "types_passlib"; - hash = "sha256-zyNQ5402trCeTbRChNlmUbVyhfSZz6vxEbYWBlq6t7M="; - }; - - build-system = [ python3Packages.setuptools ]; - - # Module doesn't have tests - doCheck = false; - - meta = with lib; { - description = "Typing stubs for passlib"; - homepage = "https://github.com/python/typeshed"; - license = licenses.asl20; - maintainers = with maintainers; [ pyrox0 ]; - }; -} diff --git a/packages/romm/python-packages/pkgs/zipfile-inflate64/package.nix b/packages/romm/python-packages/pkgs/zipfile-inflate64/package.nix deleted file mode 100644 index 8a97e251..00000000 --- a/packages/romm/python-packages/pkgs/zipfile-inflate64/package.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - fetchFromGitea, - python3Packages, -}: -python3Packages.buildPythonPackage rec { - pname = "zipfile-inflate64"; - version = "0.1"; - pyproject = true; - - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "miurahr"; - repo = "zipfile-inflate64"; - tag = "v${version}"; - hash = "sha256-gdN5We/PWO5Ndf6wyF7Nqq5ps8KrdxhNsjSFzzkH5XQ="; - fetchLFS = true; - }; - - build-system = with python3Packages; [ - setuptools - wheel - setuptools-scm - ]; - - nativeCheckInputs = [ - python3Packages.pytestCheckHook - ]; - - dependencies = [ python3Packages.inflate64 ]; - - meta = { - description = "Extract Enhanced Deflate ZIP archives with Python's zipfile API"; - homepage = "https://codeberg.org/miurahr/zipfile-inflate64"; - license = lib.licenses.gpl3Plus; - maintainers = [ lib.maintainers.pyrox0 ]; - }; -} diff --git a/packages/romm/rahasher.nix b/packages/romm/rahasher.nix deleted file mode 100644 index cd1698f2..00000000 --- a/packages/romm/rahasher.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - lib, - stdenv, - callPackage, - fetchFromGitHub, - libchdr ? (callPackage ./libchdr.nix { }), -}: -stdenv.mkDerivation (finalAttrs: { - pname = "rahasher"; - version = "1.8.1"; - - src = fetchFromGitHub { - owner = "RetroAchievements"; - repo = "RALibretro"; - tag = finalAttrs.version; - hash = "sha256-jcn8WhNCjr6gqjbkTlPUJVR7q5TOItAkpof2dX5kX4E="; - fetchSubmodules = true; - }; - - # - postPatch = '' - sed -i '6a #include ' \ - ./src/libchdr/deps/zlib-1.3.1/gzlib.c \ - ./src/libchdr/deps/zlib-1.3.1/gzread.c \ - ./src/libchdr/deps/zlib-1.3.1/gzwrite.c - ''; - - env = { - HAVE_CHD = 1; - }; - - buildPhase = '' - runHook preBuild - - make -f ./Makefile.RAHasher - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - mv bin64/RAHasher $out/bin/RAHasher - - runHook postInstall - ''; - - passthru = { - inherit libchdr; - }; - - meta = { - changelog = "https://github.com/RetroAchievements/RALibretro/releases/tag/${finalAttrs.version}"; - description = "CLI utility for verifying ROM checksums"; - homepage = "https://github.com/RetroAchievements/RALibretro"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ pyrox0 ]; - mainProgram = "RAHasher"; - platforms = lib.platforms.linux; - }; -}) diff --git a/packages/romm/ruffle-web.nix b/packages/romm/ruffle-web.nix deleted file mode 100644 index d65d8f97..00000000 --- a/packages/romm/ruffle-web.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - stdenvNoCC, - fetchzip, - ruffle, -}: -let - dlVersion = "nightly-2025_12_07"; - version = builtins.replaceStrings [ "_" ] [ "-" ] dlVersion; -in -stdenvNoCC.mkDerivation { - pname = "ruffle-web"; - inherit version; - - src = fetchzip { - url = "https://github.com/ruffle-rs/ruffle/releases/download/${version}/ruffle-${dlVersion}-web-selfhosted.zip"; - stripRoot = false; - hash = "sha256-4E+uW3cui18ynhMs5WyV1gV8L5ZhmEJybH5zLhFleTo="; - }; - - installPhase = '' - runHook preInstall - mkdir -p $out/lib/ruffle-web - mv * $out/lib/ruffle-web - runHook postInstall - ''; - - meta = { - inherit (ruffle.meta) - description - downloadPage - homepage - license - longDescription - ; - maintainers = [ lib.maintainers.pyrox0 ]; - }; -}