diff options
Diffstat (limited to 'pkgs/servers')
32 files changed, 803 insertions, 163 deletions
diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix index f72f4dfcbfc2e..8c897bf33c62f 100644 --- a/pkgs/servers/adguardhome/bins.nix +++ b/pkgs/servers/adguardhome/bins.nix @@ -1,31 +1,31 @@ { fetchurl, fetchzip }: { x86_64-darwin = fetchzip { - sha256 = "sha256-mOn0RYWmGzIeHyVwVTGPUvFyVQ8Zu57KW7UkGMWRejA="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_darwin_amd64.zip"; + sha256 = "sha256-hGa1SrueZWGokeJb+p/6eaYv1AP1a2TUiGo+rcJBw3Y="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_darwin_amd64.zip"; }; aarch64-darwin = fetchzip { - sha256 = "sha256-urdLtEOMJ2ZeaWezihpv5UU8Li2gnmYk6+gzn9E/3Nw="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_darwin_arm64.zip"; + sha256 = "sha256-wm8scjBaQuKJQu2OfYWDQqF2TLdPEZQEGSgaLzoGTb0="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_darwin_arm64.zip"; }; i686-linux = fetchurl { - sha256 = "sha256-yWlo7adaQcPrM4zOPq5BLw6rZPYg2Qr2T1R7H8QZuvA="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_linux_386.tar.gz"; + sha256 = "sha256-nie5WOeMajq8ucOwLHDXMG1FU7wBS3GTQHKCn0XjBCQ="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_linux_386.tar.gz"; }; x86_64-linux = fetchurl { - sha256 = "sha256-pD1vs4NHWByZmEozdgpzBXDeSzbEBouyawd41Emf8QE="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_linux_amd64.tar.gz"; + sha256 = "sha256-Ai6QzmNrALHKxJIX5gx5GQiLlcpKRuT+ALxN0PDJQ9E="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_linux_amd64.tar.gz"; }; aarch64-linux = fetchurl { - sha256 = "sha256-BpknO9qL4Jo31d/vRXjuU/wJWfCVvLfgh6tZLG/6ipI="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_linux_arm64.tar.gz"; + sha256 = "sha256-cJ7vvv4Yyo0r01eOuZI6jqc4LFmSDmVl84aJjwxkuR4="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_linux_arm64.tar.gz"; }; armv6l-linux = fetchurl { - sha256 = "sha256-yUyRz/2hqvN8XkuzfMfG6ibYOb68WjJaqgAIAfoZH0s="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_linux_armv6.tar.gz"; + sha256 = "sha256-DfeSBIOO/vZQExbrqku28s8a9s22tfuojccIwe37tS4="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_linux_armv6.tar.gz"; }; armv7l-linux = fetchurl { - sha256 = "sha256-MOvDKvq24+NFmgseZZA3zz0z6Vr/7OvO8sHpsDWvMuo="; - url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.25/AdGuardHome_linux_armv7.tar.gz"; + sha256 = "sha256-OHoU8dP5b2jqFTfn4FCxL88HrQntcxZ5enMFr/YN1zI="; + url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.26/AdGuardHome_linux_armv7.tar.gz"; }; } diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix index 77a5530d30986..b6252ef604135 100644 --- a/pkgs/servers/adguardhome/default.nix +++ b/pkgs/servers/adguardhome/default.nix @@ -7,7 +7,7 @@ in stdenv.mkDerivation rec { pname = "adguardhome"; - version = "0.107.25"; + version = "0.107.26"; src = sources.${system} or (throw "Source for ${pname} is not available for ${system}"); installPhase = '' @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = ./update.sh; - schema_version = 16; + schema_version = 17; tests.adguardhome = nixosTests.adguardhome; }; diff --git a/pkgs/servers/haste-server/default.nix b/pkgs/servers/haste-server/default.nix index cc445312e691d..14ec58afa3504 100644 --- a/pkgs/servers/haste-server/default.nix +++ b/pkgs/servers/haste-server/default.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "haste-server"; - version = "ccc5049b07e9f90ec19fc2a88e5056367c53e202"; + version = "b52b394bad909ddf151073987671e843540d91d6"; src = fetchFromGitHub { owner = "toptal"; repo = "haste-server"; rev = version; - hash = "sha256-ODFHB2QwfLPxfjFsHrblSeiqLc9nPo7EOPGQ3AoqzSQ="; + hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/haste-server/node-deps.nix b/pkgs/servers/haste-server/node-deps.nix index 36a5d6fd39764..2c8e11bb92478 100644 --- a/pkgs/servers/haste-server/node-deps.nix +++ b/pkgs/servers/haste-server/node-deps.nix @@ -850,13 +850,13 @@ let sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="; }; }; - "pg-8.8.0" = { + "pg-8.10.0" = { name = "pg"; packageName = "pg"; - version = "8.8.0"; + version = "8.10.0"; src = fetchurl { - url = "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz"; - sha512 = "UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw=="; + url = "https://registry.npmjs.org/pg/-/pg-8.10.0.tgz"; + sha512 = "ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ=="; }; }; "pg-connection-string-2.5.0" = { @@ -877,22 +877,22 @@ let sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; }; }; - "pg-pool-3.5.2" = { + "pg-pool-3.6.0" = { name = "pg-pool"; packageName = "pg-pool"; - version = "3.5.2"; + version = "3.6.0"; src = fetchurl { - url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz"; - sha512 = "His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w=="; + url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz"; + sha512 = "clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ=="; }; }; - "pg-protocol-1.5.0" = { + "pg-protocol-1.6.0" = { name = "pg-protocol"; packageName = "pg-protocol"; - version = "1.5.0"; + version = "1.6.0"; src = fetchurl { - url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz"; - sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="; + url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz"; + sha512 = "M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q=="; }; }; "pg-types-2.2.0" = { @@ -985,13 +985,13 @@ let sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ=="; }; }; - "readable-stream-3.6.0" = { + "readable-stream-3.6.1" = { name = "readable-stream"; packageName = "readable-stream"; - version = "3.6.0"; + version = "3.6.1"; src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; - sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz"; + sha512 = "+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ=="; }; }; "readdirp-3.5.0" = { @@ -1350,7 +1350,7 @@ let name = "haste"; packageName = "haste"; version = "0.1.0"; - src = ../../../../../../../../../nix/store/zmi5rwpy1kmyj52ymv3yc8ziiypjgrxd-source; + src = ../../../../../../../../../nix/store/v45nw2igqcjw58j7ns9xrqj6f6n3jafd-source; dependencies = [ sources."@ungap/promise-all-settled-1.1.2" sources."ansi-colors-4.1.1" @@ -1365,7 +1365,7 @@ let sources."binary-extensions-2.2.0" (sources."bl-4.1.0" // { dependencies = [ - sources."readable-stream-3.6.0" + sources."readable-stream-3.6.1" sources."string_decoder-1.3.0" ]; }) @@ -1466,11 +1466,11 @@ let sources."parseurl-1.3.3" sources."path-exists-4.0.0" sources."path-is-absolute-1.0.1" - sources."pg-8.8.0" + sources."pg-8.10.0" sources."pg-connection-string-2.5.0" sources."pg-int8-1.0.1" - sources."pg-pool-3.5.2" - sources."pg-protocol-1.5.0" + sources."pg-pool-3.6.0" + sources."pg-protocol-1.6.0" sources."pg-types-2.2.0" sources."pgpass-1.0.5" sources."picomatch-2.3.1" diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 00b8f30fe5035..26c2a1f9c8d37 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2023.3.1"; + version = "2023.3.3"; components = { "3_day_blinds" = ps: with ps; [ ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 89d6ead490684..51f6b41d03292 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -181,11 +181,11 @@ let }); sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec { - version = "2.0.4"; + version = "2.0.5.post1"; src = super.fetchPypi { pname = "SQLAlchemy"; inherit version; - hash = "sha256-laGOGmryEU29nuTxaK0zBw1jF+Ebr6KNmDzHtYX+kAs="; + hash = "sha256-E+sqWILP2fTu2q7BSlYDoJbwEl98PLSGEbO/o8JT8l0="; }; nativeCheckInputs = oldAttrs.nativeCheckInputs ++ (with super; [ pytest-xdist @@ -263,7 +263,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2023.3.1"; + hassVersion = "2023.3.3"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -279,7 +279,7 @@ in python.pkgs.buildPythonApplication rec { # Primary source is the pypi sdist, because it contains translations src = fetchPypi { inherit pname version; - hash = "sha256-FvdMNtiLJ6p9I6aEeICukx9mykGGMoONGNdM/I4u/eY="; + hash = "sha256-AJJ0w66a8D3kiLHhnoFmnGRWyDJ4OCebwwKTGdprGa0="; }; # Secondary source is git for tests @@ -287,7 +287,7 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-2usXU1a/QKEIaeg8JFBf/4ID2nzZLoGsfK7KXreKEBE="; + hash = "sha256-KTmMA8P0MhYAiwp073Q3s60budFKHrsBnAJSqYC7zis="; }; nativeBuildInputs = with python3.pkgs; [ @@ -442,6 +442,7 @@ in python.pkgs.buildPythonApplication rec { python supportedComponentsWithTests; pythonPath = python3.pkgs.makePythonPath (componentBuildInputs ++ extraBuildInputs); + frontend = python.pkgs.home-assistant-frontend; intents = python.pkgs.home-assistant-intents; tests = { nixos = nixosTests.home-assistant; diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 6c7329d20707d..76462fc851bf0 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,7 +4,7 @@ buildPythonPackage rec { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20230302.0"; + version = "20230309.0"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-G+XexUc5yvADjbXBgg97FB03Al3zR9WTb4cuVBBrSuI="; + hash = "sha256-gHc93xKIm0LDQrkTtlMdLv/N2smfYz5lQ6uLV+Cqj+s="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py index 162bb4af04b9f..7f0cb371769f9 100755 --- a/pkgs/servers/home-assistant/parse-requirements.py +++ b/pkgs/servers/home-assistant/parse-requirements.py @@ -1,5 +1,5 @@ #! /usr/bin/env nix-shell -#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ mypy attrs packaging rich ]) +#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ attrs packaging rich ])" -p nodePackages.pyright ruff isort" # # This script downloads Home Assistant's source tarball. # Inside the homeassistant/components directory, each integration has an associated manifest.json, @@ -25,8 +25,9 @@ import tarfile import tempfile from functools import reduce from io import BytesIO -from typing import Dict, Optional, Set, Any +from typing import Any, Dict, List, Optional, Set from urllib.request import urlopen + from packaging import version as Version from rich.console import Console from rich.table import Table @@ -45,17 +46,21 @@ PKG_PREFERENCES = { } -def run_mypy() -> None: - cmd = ["mypy", "--ignore-missing-imports", __file__] + +def run_sync(cmd: List[str]) -> None: print(f"$ {' '.join(cmd)}") - subprocess.run(cmd, check=True) + process = subprocess.run(cmd) + + if process.returncode != 0: + sys.exit(1) -def get_version(): +def get_version() -> str: with open(os.path.dirname(sys.argv[0]) + "/default.nix") as f: # A version consists of digits, dots, and possibly a "b" (for beta) - m = re.search('hassVersion = "([\\d\\.b]+)";', f.read()) - return m.group(1) + if match := re.search('hassVersion = "([\\d\\.b]+)";', f.read()): + return match.group(1) + raise RuntimeError("hassVersion not in default.nix") def parse_components(version: str = "master"): @@ -74,7 +79,7 @@ def parse_components(version: str = "master"): components_with_tests.append(entry.name) sys.path.append(core_path) - from script.hassfest.model import Integration + from script.hassfest.model import Integration # type: ignore integrations = Integration.load_dir( pathlib.Path( os.path.join(core_path, "homeassistant/components") @@ -270,5 +275,7 @@ def main() -> None: if __name__ == "__main__": - run_mypy() + run_sync(["pyright", __file__]) + run_sync(["ruff", "--ignore=E501", __file__]) + run_sync(["isort", __file__]) main() diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix index 4e31078381ff5..0576814b68ee2 100644 --- a/pkgs/servers/home-assistant/stubs.nix +++ b/pkgs/servers/home-assistant/stubs.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "homeassistant-stubs"; - version = "2023.3.1"; + version = "2023.3.2"; format = "pyproject"; disabled = python.version != home-assistant.python.version; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "KapJI"; repo = "homeassistant-stubs"; rev = "refs/tags/${version}"; - hash = "sha256-WMuQgoWwri4nfKkZ8cW5o6S6G3PbHqlUxC9wyJSZhxQ="; + hash = "sha256-tgXjACNGD3QTrsgYtcTinW4HflwGSoCR6k6SrawQz6A="; }; nativeBuildInputs = [ @@ -25,6 +25,14 @@ buildPythonPackage rec { home-assistant ]; + postPatch = '' + # Relax constraint to year and month + substituteInPlace pyproject.toml --replace \ + 'homeassistant = "${version}"' \ + 'homeassistant = "~${lib.versions.majorMinor home-assistant.version}"' + cat pyproject.toml + ''; + pythonImportsCheck = [ "homeassistant-stubs" ]; diff --git a/pkgs/servers/home-assistant/update.py b/pkgs/servers/home-assistant/update.py new file mode 100755 index 0000000000000..c914979e28bd3 --- /dev/null +++ b/pkgs/servers/home-assistant/update.py @@ -0,0 +1,263 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=channel:nixpkgs-unstable -i python3 -p "python3.withPackages (ps: with ps; [ aiohttp packaging ])" -p git nurl nodePackages.pyright ruff isort + +import asyncio +import json +import os +import re +import sys +from subprocess import check_output, run +from typing import Dict, Final, List, Optional, Union + +import aiohttp +from aiohttp import ClientSession +from packaging.version import Version + +ROOT: Final = check_output([ + "git", + "rev-parse", + "--show-toplevel", +]).decode().strip() + + +def run_sync(cmd: List[str]) -> None: + print(f"$ {' '.join(cmd)}") + process = run(cmd) + + if process.returncode != 0: + sys.exit(1) + + +async def check_async(cmd: List[str]) -> str: + print(f"$ {' '.join(cmd)}") + process = await asyncio.create_subprocess_exec( + *cmd, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE + ) + stdout, stderr = await process.communicate() + + if process.returncode != 0: + error = stderr.decode() + raise RuntimeError(f"{cmd[0]} failed: {error}") + + return stdout.decode().strip() + + +async def run_async(cmd: List[str]): + print(f"$ {' '.join(cmd)}") + + process = await asyncio.create_subprocess_exec( + *cmd, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) + stdout, stderr = await process.communicate() + + print(stdout.decode()) + + if process.returncode != 0: + error = stderr.decode() + raise RuntimeError(f"{cmd[0]} failed: {error}") + + +class File: + def __init__(self, path: str): + self.path = os.path.join(ROOT, path) + + def __enter__(self): + with open(self.path, "r") as handle: + self.text = handle.read() + return self + + def get_exact_match(self, attr: str, value: str): + matches = re.findall( + rf'{re.escape(attr)}\s+=\s+\"?{re.escape(value)}\"?', + self.text + ) + + n = len(matches) + if n > 1: + raise ValueError(f"multiple occurrences found for {attr}={value}") + elif n == 1: + return matches.pop() + else: + raise ValueError(f"no occurrence found for {attr}={value}") + + def substitute(self, attr: str, old_value: str, new_value: str) -> None: + old_line = self.get_exact_match(attr, old_value) + new_line = old_line.replace(old_value, new_value) + self.text = self.text.replace(old_line, new_line) + print(f"Substitute `{attr}` value `{old_value}` with `{new_value}`") + + def __exit__(self, exc_type, exc_val, exc_tb): + with open(self.path, "w") as handle: + handle.write(self.text) + +class Nurl: + @classmethod + async def prefetch(cls, url: str, version: str, *extra_args: str) -> str: + cmd = [ + "nurl", + "--hash", + url, + version, + ] + cmd.extend(extra_args) + return await check_async(cmd) + + +class Nix: + base_cmd: Final = [ + "nix", + "--show-trace", + "--extra-experimental-features", "nix-command" + ] + + @classmethod + async def _run(cls, args: List[str]) -> Optional[str]: + return await check_async(cls.base_cmd + args) + + @classmethod + async def eval(cls, expr: str) -> Union[List, Dict, int, float, str, bool]: + response = await cls._run([ + "eval", + "-f", f"{ROOT}/default.nix", + "--json", + expr + ]) + if response is None: + raise RuntimeError("Nix eval expression returned no response") + try: + return json.loads(response) + except (TypeError, ValueError): + raise RuntimeError("Nix eval response could not be parsed from JSON") + + @classmethod + async def hash_to_sri(cls, algorithm: str, value: str) -> Optional[str]: + return await cls._run([ + "hash", + "to-sri", + "--type", algorithm, + value + ]) + + +class HomeAssistant: + def __init__(self, session: ClientSession): + self._session = session + + async def get_latest_core_version( + self, + owner: str = "home-assistant", + repo: str = "core" + ) -> str: + async with self._session.get( + f"https://api.github.com/repos/{owner}/{repo}/releases/latest" + ) as response: + document = await response.json() + try: + return str(document.get("name")) + except KeyError: + raise RuntimeError("No tag name in response document") + + + async def get_latest_frontend_version( + self, + core_version: str + ) -> str: + async with self._session.get( + f"https://raw.githubusercontent.com/home-assistant/core/{core_version}/homeassistant/components/frontend/manifest.json" + ) as response: + document = await response.json(content_type="text/plain") + + requirements = [ + requirement + for requirement in document.get("requirements", []) + if requirement.startswith("home-assistant-frontend==") + ] + + if len(requirements) > 1: + raise RuntimeError( + "Found more than one version specifier for the frontend package" + ) + elif len(requirements) == 1: + requirement = requirements.pop() + _, version = requirement.split("==", maxsplit=1) + return str(version) + else: + raise RuntimeError( + "Found no version specifier for frontend package" + ) + + + async def update_core(self, old_version: str, new_version: str) -> None: + old_sdist_hash = str(await Nix.eval("home-assistant.src.outputHash")) + new_sdist_hash = await Nurl.prefetch("https://pypi.org/project/homeassistant/", new_version) + print(f"sdist: {old_sdist_hash} -> {new_sdist_hash}") + + old_git_hash = str(await Nix.eval("home-assistant.gitSrc.outputHash")) + new_git_hash = await Nurl.prefetch("https://github.com/home-assistant/core/", new_version) + print(f"git: {old_git_hash} -> {new_git_hash}") + + with File("pkgs/servers/home-assistant/default.nix") as file: + file.substitute("hassVersion", old_version, new_version) + file.substitute("hash", old_sdist_hash, new_sdist_hash) + file.substitute("hash", old_git_hash, new_git_hash) + + async def update_frontend(self, old_version: str, new_version: str) -> None: + old_hash = str(await Nix.eval("home-assistant.frontend.src.outputHash")) + new_hash = await Nurl.prefetch( + "https://pypi.org/project/home_assistant_frontend/", + new_version, + "-A", "format", "wheel", + "-A", "dist", "py3", + "-A", "python", "py3" + ) + print(f"frontend: {old_hash} -> {new_hash}") + + with File("pkgs/servers/home-assistant/frontend.nix") as file: + file.substitute("version", old_version, new_version) + file.substitute("hash", old_hash, new_hash) + + async def update_components(self): + await run_async([ + f"{ROOT}/pkgs/servers/home-assistant/parse-requirements.py" + ]) + + +async def main(): + headers = {} + if token := os.environ.get("GITHUB_TOKEN", None): + headers.update({"GITHUB_TOKEN": token}) + + async with aiohttp.ClientSession(headers=headers) as client: + hass = HomeAssistant(client) + + core_current = str(await Nix.eval("home-assistant.version")) + core_latest = await hass.get_latest_core_version() + + if Version(core_latest) > Version(core_current): + print(f"New Home Assistant version {core_latest} is available") + await hass.update_core(str(core_current), str(core_latest)) + + frontend_current = str(await Nix.eval("home-assistant.frontend.version")) + frontend_latest = await hass.get_latest_frontend_version(str(core_latest)) + + if Version(frontend_latest) > Version(frontend_current): + await hass.update_frontend(str(frontend_current), str(frontend_latest)) + + await hass.update_components() + + else: + print(f"Home Assistant {core_current} is still the latest version.") + + # wait for async client sessions to close + # https://docs.aiohttp.org/en/stable/client_advanced.html#graceful-shutdown + await asyncio.sleep(0) + +if __name__ == "__main__": + run_sync(["pyright", __file__]) + run_sync(["ruff", "--ignore=E501", __file__]) + run_sync(["isort", __file__]) + asyncio.run(main()) diff --git a/pkgs/servers/home-assistant/update.sh b/pkgs/servers/home-assistant/update.sh deleted file mode 100755 index 05f2e93dfe464..0000000000000 --- a/pkgs/servers/home-assistant/update.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p nix -p jq -p curl -p bash -p git -p nix-update -i bash - -set -eux - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -cd "$DIR" - -CURRENT_VERSION=$(nix-instantiate ../../.. --eval --strict -A home-assistant.version | tr -d '"') -TARGET_VERSION=$(curl https://api.github.com/repos/home-assistant/core/releases/latest | jq -r '.name') -MANIFEST=$(curl https://raw.githubusercontent.com/home-assistant/core/${TARGET_VERSION}/homeassistant/components/frontend/manifest.json) -FRONTEND_VERSION=$(echo $MANIFEST | jq -r '.requirements[] | select(startswith("home-assistant-frontend")) | sub(".*==(?<vers>.*)"; .vers)') - -if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then - echo "home-assistant is up-to-date: ${CURRENT_VERSION}" - exit 0 -fi - - -sed -i -e "s/version =.*/version = \"${TARGET_VERSION}\";/" \ - component-packages.nix - -sed -i -e "s/hassVersion =.*/hassVersion = \"${TARGET_VERSION}\";/" \ - default.nix - -( - # update the frontend before running parse-requirements, so it doesn't get shown as outdated - cd ../../.. - nix-update --version "$FRONTEND_VERSION" home-assistant.python.pkgs.home-assistant-frontend -) - -./parse-requirements.py - -read - -( - cd ../../.. - nix-update --version "$TARGET_VERSION" --build home-assistant -) - -#git add ./component-packages.nix ./default.nix ./frontend.nix -#git commit -m "home-assistant: ${CURRENT_VERSION} -> ${TARGET_VERSION}" diff --git a/pkgs/servers/home-automation/evcc/default.nix b/pkgs/servers/home-automation/evcc/default.nix index faadfff26e56b..04a4251692075 100644 --- a/pkgs/servers/home-automation/evcc/default.nix +++ b/pkgs/servers/home-automation/evcc/default.nix @@ -16,16 +16,16 @@ buildGo120Module rec { pname = "evcc"; - version = "0.114.0"; + version = "0.114.1"; src = fetchFromGitHub { owner = "evcc-io"; repo = pname; rev = version; - hash = "sha256-YPqt1UfXP2LGSopQuM4PXQJG3MmXg+5VjDpBKpV5axI="; + hash = "sha256-c+XHSO6waDyju8oXFWGYeaCCqyaYdU2JLXr+NDXijdU="; }; - vendorHash = "sha256-CNBwOVykQW7RUuf6oFTxO2DU6sd5IJVqN+6FPytQh+U="; + vendorHash = "sha256-O58Y9mfHmNUWtHmdO3hvZQbFlcqfZs0GmQDcx2RKRUs="; npmDeps = fetchNpmDeps { inherit src; diff --git a/pkgs/servers/http/gitlab-pages/default.nix b/pkgs/servers/http/gitlab-pages/default.nix deleted file mode 100644 index bdd8c4c43f6fd..0000000000000 --- a/pkgs/servers/http/gitlab-pages/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ buildGoModule, lib, fetchFromGitLab }: - -buildGoModule rec { - pname = "gitlab-pages"; - version = "15.7.3"; - - src = fetchFromGitLab { - owner = "gitlab-org"; - repo = "gitlab-pages"; - rev = "v${version}"; - sha256 = "sha256-Aj6XQVIdulwx6mWivwYafR4yrWiNaDeyje3LFQzZPfU="; - }; - - vendorHash = "sha256-mGcIN9gDCFfr1MvBdfR26LAbrAE2RNivhXP7fCNMyBQ="; - subPackages = [ "." ]; - - meta = with lib; { - description = "Daemon used to serve static websites for GitLab users"; - homepage = "https://gitlab.com/gitlab-org/gitlab-pages"; - changelog = "https://gitlab.com/gitlab-org/gitlab-pages/-/blob/v${version}/CHANGELOG.md"; - license = licenses.mit; - maintainers = with maintainers; [ ajs124 das_j ]; - }; -} diff --git a/pkgs/servers/invidious/versions.json b/pkgs/servers/invidious/versions.json index 9258e5a3f8660..925fcf3eff7e7 100644 --- a/pkgs/servers/invidious/versions.json +++ b/pkgs/servers/invidious/versions.json @@ -4,9 +4,9 @@ "sha256": "sha256-EU6T9yQCdOLx98Io8o01rEsgxDFF/Xoy42LgPopD2/A=" }, "invidious": { - "rev": "0995e0447c2b54d80b55231830b847d41c19b404", - "sha256": "sha256-hXF836jxMriMJ/qcBJIF5cRvQG719PStKqTZQcIRqlw=", - "version": "unstable-2023-02-22" + "rev": "d79d6f38b20376f27b3472e7f359f286b54760a1", + "sha256": "sha256-bek+tUAT99WikwVTKAC9sJxTauD9NoebWujWHO006a8=", + "version": "unstable-2023-03-07" }, "lsquic": { "sha256": "sha256-hG8cUvhbCNeMOsKkaJlgGpzUrIx47E/WhmPIdI5F3qM=", diff --git a/pkgs/servers/jellyseerr/default.nix b/pkgs/servers/jellyseerr/default.nix new file mode 100644 index 0000000000000..80dffed68e343 --- /dev/null +++ b/pkgs/servers/jellyseerr/default.nix @@ -0,0 +1,93 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, mkYarnPackage +, nodejs +, sqlite +, fetchYarnDeps +, python3 +, pkg-config +, glib +}: + +let + pin = lib.importJSON ./pin.json; +in + +mkYarnPackage rec { + pname = "jellyseerr"; + inherit (pin) version; + + src = fetchFromGitHub { + owner = "Fallenbagel"; + repo = "jellyseerr"; + rev = "v${version}"; + sha256 = pin.srcSha256; + }; + + packageJSON = ./package.json; + + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + sha256 = pin.yarnSha256; + }; + + doDist = false; + + nativeBuildInputs = [ + nodejs + makeWrapper + ]; + + # Fixes "SQLite package has not been found installed" at launch + pkgConfig.sqlite3 = { + nativeBuildInputs = [ nodejs.pkgs.node-pre-gyp python3 ]; + postInstall = '' + export CPPFLAGS="-I${nodejs}/include/node" + node-pre-gyp install --prefer-offline --build-from-source --nodedir=${nodejs}/include/node + rm -r build-tmp-napi-v6 + ''; + }; + + pkgConfig.bcrypt = { + nativeBuildInputs = [ nodejs.pkgs.node-pre-gyp python3 ]; + postInstall = '' + export CPPFLAGS="-I${nodejs}/include/node" + node-pre-gyp install --prefer-offline --build-from-source --nodedir=${nodejs}/include/node + ''; + }; + + buildPhase = '' + runHook preBuild + ( + shopt -s dotglob + cd deps/jellyseerr + rm -r config/* + yarn build + rm -r .next/cache + ) + runHook postBuild + ''; + + postInstall = '' + makeWrapper '${nodejs}/bin/node' "$out/bin/jellyseerr" \ + --add-flags "$out/libexec/jellyseerr/deps/jellyseerr/dist/index.js" \ + --set NODE_ENV production + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Fork of overseerr for jellyfin support"; + homepage = "https://github.com/Fallenbagel/jellyseerr"; + longDescription = '' + Jellyseerr is a free and open source software application for managing + requests for your media library. It is a a fork of Overseerr built to + bring support for Jellyfin & Emby media servers! + ''; + license = licenses.mit; + maintainers = with maintainers; [ camillemndn ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/jellyseerr/package.json b/pkgs/servers/jellyseerr/package.json new file mode 100644 index 0000000000000..dd5fb6cf187e8 --- /dev/null +++ b/pkgs/servers/jellyseerr/package.json @@ -0,0 +1,246 @@ +{ + "name": "jellyseerr", + "version": "1.4.1", + "private": true, + "scripts": { + "dev": "nodemon -e ts --watch server --watch overseerr-api.yml -e .json,.ts,.yml -x ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/index.ts", + "build:server": "tsc --project server/tsconfig.json && copyfiles -u 2 server/templates/**/*.{html,pug} dist/templates && tsc-alias -p server/tsconfig.json", + "build:next": "next build", + "build": "yarn build:next && yarn build:server", + "lint": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\" --cache", + "start": "NODE_ENV=production node dist/index.js", + "i18n:extract": "extract-messages -l=en -o src/i18n/locale -d en --flat true --overwriteDefault true \"./src/**/!(*.test).{ts,tsx}\"", + "migration:generate": "ts-node -r tsconfig-paths/register --project server/tsconfig.json ./node_modules/typeorm/cli.js migration:generate -d server/datasource.ts", + "migration:create": "ts-node -r tsconfig-paths/register --project server/tsconfig.json ./node_modules/typeorm/cli.js migration:create -d server/datasource.ts", + "migration:run": "ts-node -r tsconfig-paths/register --project server/tsconfig.json ./node_modules/typeorm/cli.js migration:run -d server/datasource.ts", + "format": "prettier --loglevel warn --write --cache .", + "format:check": "prettier --check --cache .", + "typecheck": "yarn typecheck:server && yarn typecheck:client", + "typecheck:server": "tsc --project server/tsconfig.json --noEmit", + "typecheck:client": "tsc --noEmit", + "prepare": "husky install", + "cypress:open": "cypress open", + "cypress:prepare": "ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/scripts/prepareTestDb.ts", + "cypress:build": "yarn build && yarn cypress:prepare" + }, + "repository": { + "type": "git", + "url": "https://github.com/fallenbagel/jellyseerr.git" + }, + "license": "MIT", + "dependencies": { + "@formatjs/intl-displaynames": "6.2.3", + "@formatjs/intl-locale": "3.0.11", + "@formatjs/intl-pluralrules": "5.1.8", + "@formatjs/intl-utils": "3.8.4", + "@headlessui/react": "1.7.7", + "@heroicons/react": "2.0.13", + "@supercharge/request-ip": "1.2.0", + "@svgr/webpack": "6.5.1", + "@tanem/react-nprogress": "5.0.22", + "ace-builds": "1.14.0", + "axios": "1.2.2", + "axios-rate-limit": "1.3.0", + "bcrypt": "5.1.0", + "bowser": "2.11.0", + "connect-typeorm": "1.1.4", + "cookie-parser": "1.4.6", + "copy-to-clipboard": "3.3.3", + "country-flag-icons": "1.5.5", + "cronstrue": "2.21.0", + "csurf": "1.11.0", + "date-fns": "2.29.3", + "dayjs": "1.11.7", + "email-templates": "9.0.0", + "email-validator": "2.0.4", + "express": "4.18.2", + "express-openapi-validator": "4.13.8", + "express-rate-limit": "6.7.0", + "express-session": "1.17.3", + "formik": "2.2.9", + "gravatar-url": "3.1.0", + "intl": "1.2.5", + "lodash": "4.17.21", + "next": "12.3.4", + "node-cache": "5.1.2", + "node-gyp": "9.3.1", + "node-schedule": "2.1.0", + "nodemailer": "6.8.0", + "openpgp": "5.5.0", + "plex-api": "5.3.2", + "pug": "3.0.2", + "pulltorefreshjs": "0.1.22", + "react": "18.2.0", + "react-ace": "10.1.0", + "react-animate-height": "2.1.2", + "react-aria": "3.22.0", + "react-dom": "18.2.0", + "react-intersection-observer": "9.4.1", + "react-intl": "6.2.5", + "react-markdown": "8.0.4", + "react-popper-tooltip": "4.4.2", + "react-select": "5.7.0", + "react-spring": "9.6.1", + "react-tailwindcss-datepicker-sct": "1.3.4", + "react-toast-notifications": "2.5.1", + "react-truncate-markup": "5.1.2", + "react-use-clipboard": "1.0.9", + "reflect-metadata": "0.1.13", + "secure-random-password": "0.2.3", + "semver": "7.3.8", + "sqlite3": "5.1.4", + "swagger-ui-express": "4.6.0", + "swr": "2.0.0", + "typeorm": "0.3.11", + "web-push": "3.5.0", + "winston": "3.8.2", + "winston-daily-rotate-file": "4.7.1", + "xml2js": "0.4.23", + "yamljs": "0.3.0", + "yup": "0.32.11", + "zod": "3.20.2" + }, + "devDependencies": { + "@babel/cli": "7.20.7", + "@commitlint/cli": "17.4.0", + "@commitlint/config-conventional": "17.4.0", + "@semantic-release/changelog": "6.0.2", + "@semantic-release/commit-analyzer": "9.0.2", + "@semantic-release/exec": "6.0.3", + "@semantic-release/git": "10.0.1", + "@tailwindcss/aspect-ratio": "0.4.2", + "@tailwindcss/forms": "0.5.3", + "@tailwindcss/typography": "0.5.8", + "@types/bcrypt": "5.0.0", + "@types/cookie-parser": "1.4.3", + "@types/country-flag-icons": "1.2.0", + "@types/csurf": "1.11.2", + "@types/email-templates": "8.0.4", + "@types/express": "4.17.15", + "@types/express-session": "1.17.5", + "@types/lodash": "4.14.191", + "@types/node": "17.0.36", + "@types/node-schedule": "2.1.0", + "@types/nodemailer": "6.4.7", + "@types/pulltorefreshjs": "0.1.5", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10", + "@types/react-transition-group": "4.4.5", + "@types/secure-random-password": "0.2.1", + "@types/semver": "7.3.13", + "@types/swagger-ui-express": "4.1.3", + "@types/web-push": "3.3.2", + "@types/xml2js": "0.4.11", + "@types/yamljs": "0.2.31", + "@types/yup": "0.29.14", + "@typescript-eslint/eslint-plugin": "5.48.0", + "@typescript-eslint/parser": "5.48.0", + "autoprefixer": "10.4.13", + "babel-plugin-react-intl": "8.2.25", + "babel-plugin-react-intl-auto": "3.3.0", + "commitizen": "4.2.6", + "copyfiles": "2.4.1", + "cy-mobile-commands": "0.3.0", + "cypress": "12.3.0", + "cz-conventional-changelog": "3.3.0", + "eslint": "8.31.0", + "eslint-config-next": "12.3.4", + "eslint-config-prettier": "8.6.0", + "eslint-plugin-formatjs": "4.3.9", + "eslint-plugin-jsx-a11y": "6.6.1", + "eslint-plugin-no-relative-import-paths": "1.5.2", + "eslint-plugin-prettier": "4.2.1", + "eslint-plugin-react": "7.31.11", + "eslint-plugin-react-hooks": "4.6.0", + "extract-react-intl-messages": "4.1.1", + "husky": "8.0.3", + "lint-staged": "13.1.0", + "nodemon": "2.0.20", + "postcss": "8.4.20", + "prettier": "2.8.1", + "prettier-plugin-organize-imports": "3.2.1", + "prettier-plugin-tailwindcss": "0.2.1", + "semantic-release": "19.0.5", + "semantic-release-docker-buildx": "1.0.1", + "tailwindcss": "3.2.4", + "ts-node": "10.9.1", + "tsc-alias": "1.8.2", + "tsconfig-paths": "4.1.2", + "typescript": "4.9.4" + }, + "resolutions": { + "sqlite3/node-gyp": "8.4.1", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10" + }, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + }, + "lint-staged": { + "**/*.{ts,tsx,js}": [ + "prettier --write", + "eslint" + ], + "**/*.{json,md,css}": [ + "prettier --write" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release": { + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + [ + "@semantic-release/changelog", + { + "changelogFile": "CHANGELOG.md" + } + ], + "@semantic-release/npm", + [ + "@semantic-release/git", + { + "assets": [ + "package.json", + "CHANGELOG.md" + ], + "message": "chore(release): ${nextRelease.version}" + } + ], + "semantic-release-docker-buildx", + [ + "@semantic-release/github", + { + "addReleases": "bottom" + } + ] + ], + "branches": [ + "main" + ], + "npmPublish": false, + "publish": [ + { + "path": "semantic-release-docker-buildx", + "buildArgs": { + "COMMIT_TAG": "$GIT_SHA" + }, + "imageNames": [ + "fallenbagel/jellyseerr" + ], + "platforms": [ + "linux/amd64", + "linux/arm64", + "linux/arm/v7" + ] + }, + "@semantic-release/github" + ] + } +} diff --git a/pkgs/servers/jellyseerr/pin.json b/pkgs/servers/jellyseerr/pin.json new file mode 100644 index 0000000000000..3681e3df6853d --- /dev/null +++ b/pkgs/servers/jellyseerr/pin.json @@ -0,0 +1,5 @@ +{ + "version": "1.4.1", + "srcSha256": "LDqlQfy1bm2xMNn1oulImfanQmJX57P48VaZn0Jxwpk=", + "yarnSha256": "162aip7r5vcpfj1sn42qwwdlwnaii32bd2k0gp9py1z0zmw0lwlf" +} diff --git a/pkgs/servers/jellyseerr/update.sh b/pkgs/servers/jellyseerr/update.sh new file mode 100755 index 0000000000000..b1561bae217da --- /dev/null +++ b/pkgs/servers/jellyseerr/update.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix curl jq prefetch-yarn-deps nix-prefetch-github + +set -euo pipefail + +if [[ "$#" -gt 1 || "$1" == -* ]]; then + echo "Regenerates packaging data for jellyseerr." + echo "Usage: $0 [git release tag]" + exit 1 +fi + +tag="$1" + +if [ -z "$tag" ]; then + tag="$( + curl "https://api.github.com/repos/Fallenbagel/jellyseerr/releases?per_page=1" | + jq -r '.[0].tag_name' + )" +fi + +src="https://raw.githubusercontent.com/Fallenbagel/jellyseerr/$tag" +src_sha256=$(nix-prefetch-github Fallenbagel jellyseerr --rev ${tag} | jq -r .sha256) + +tmpdir=$(mktemp -d) +trap 'rm -rf "$tmpdir"' EXIT + +pushd $tmpdir +curl -O "$src/yarn.lock" +yarn_sha256=$(prefetch-yarn-deps yarn.lock) +popd + +curl -O "$src/package.json" +cat > pin.json << EOF +{ + "version": "$(echo $tag | grep -P '(\d|\.)+' -o)", + "srcSha256": "$src_sha256", + "yarnSha256": "$yarn_sha256" +} +EOF diff --git a/pkgs/servers/komga/default.nix b/pkgs/servers/komga/default.nix index 5af5a44d16853..1f651a5f46e59 100644 --- a/pkgs/servers/komga/default.nix +++ b/pkgs/servers/komga/default.nix @@ -8,11 +8,11 @@ stdenvNoCC.mkDerivation rec { pname = "komga"; - version = "0.162.0"; + version = "0.163.0"; src = fetchurl { url = "https://github.com/gotson/${pname}/releases/download/v${version}/${pname}-${version}.jar"; - sha256 = "sha256-RcEAqMfpXH7PudLOROpSZw/5HrEeuBFBkllOjGdXZCU="; + sha256 = "sha256-dKbdzfjb+brY++uflVvuF1LaOIaYn1UqIGIjCsyLMv8="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/libreddit/default.nix b/pkgs/servers/libreddit/default.nix index 442d590cf64f8..f7a77c6962c5a 100644 --- a/pkgs/servers/libreddit/default.nix +++ b/pkgs/servers/libreddit/default.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage rec { pname = "libreddit"; - version = "0.29.4"; + version = "0.30.0"; src = fetchFromGitHub { owner = "libreddit"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-xGjCki0fQWXLXqCvNj6GjQ7qbFBcaJBPuPb8Aj1whLk="; + hash = "sha256-jV8U7znBFCYBmtI6fm+/5oKsLJ3/tQG16GUvNnBlp7A="; }; - cargoHash = "sha256-+fEHD648za4tNEQiu1AYfFXf3Hbe9f0D3MFYJ0OCfqQ="; + cargoHash = "sha256-V7bT1uwSk9IW5rhKHW+6yHv+o+H3w7O/yuRpPDrcFic="; buildInputs = lib.optionals stdenv.isDarwin [ Security diff --git a/pkgs/servers/misc/navidrome/default.nix b/pkgs/servers/misc/navidrome/default.nix index 770ca8c76e868..7a48fa7daee13 100644 --- a/pkgs/servers/misc/navidrome/default.nix +++ b/pkgs/servers/misc/navidrome/default.nix @@ -14,13 +14,13 @@ let - version = "0.49.1"; + version = "0.49.3"; src = fetchFromGitHub { owner = "navidrome"; repo = "navidrome"; rev = "v${version}"; - hash = "sha256-YaBtzMW2zUHRYJDDF+mMll2rMBAg5os2HSP0uEujoWI="; + hash = "sha256-JBvY+0QAouEc0im62aVSJ27GAB7jt0qVnYtc6VN2qTA="; }; ui = callPackage ./ui { @@ -35,7 +35,7 @@ buildGoModule { inherit src version; - vendorSha256 = "sha256-9JDP58UxlSadMXD7gUl2oN+uiYN9RlGO4HMuZJhO9mw="; + vendorSha256 = "sha256-C8w/qCts8VqNDTQVXtykjmSbo5uDrvS9NOu3SHpAlDE="; nativeBuildInputs = [ makeWrapper pkg-config ]; diff --git a/pkgs/servers/misc/oven-media-engine/default.nix b/pkgs/servers/misc/oven-media-engine/default.nix index b14efeaabecf0..42d86bedfc54a 100644 --- a/pkgs/servers/misc/oven-media-engine/default.nix +++ b/pkgs/servers/misc/oven-media-engine/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "oven-media-engine"; - version = "0.15.1"; + version = "0.15.3"; src = fetchFromGitHub { owner = "AirenSoft"; repo = "OvenMediaEngine"; rev = "v${version}"; - sha256 = "sha256-Ob+0Ak0ELyHrZfeCiACX2IHsp+6jE//iqPoW6je6GfQ="; + sha256 = "sha256-HbtKEWDCT6DpJYc25I+WZw6HwZeeYRUz+OzPcf8bCfw="; }; sourceRoot = "source/src"; diff --git a/pkgs/servers/monitoring/prometheus/statsd-exporter.nix b/pkgs/servers/monitoring/prometheus/statsd-exporter.nix index 6930398407c68..309ccfd4dfa59 100644 --- a/pkgs/servers/monitoring/prometheus/statsd-exporter.nix +++ b/pkgs/servers/monitoring/prometheus/statsd-exporter.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "statsd_exporter"; - version = "0.23.0"; + version = "0.23.1"; src = fetchFromGitHub { owner = "prometheus"; repo = "statsd_exporter"; rev = "v${version}"; - hash = "sha256-7atRLwucO09yN2odu0uNe7xrtKLq9kmy6JyI1y4Sww8="; + hash = "sha256-JbRkLRXTQo40wBynfG6BRR4+yPqy7VLJ33vsjus5okg="; }; - vendorHash = "sha256-H0f7bDnSddlabpRbMpk9tInlne2tI5J+MQ23mw1N71E="; + vendorHash = "sha256-YzcgEQ1S2qn7v2SVSBiodprtc+D4cSZOFBJwpq3jz8Y="; meta = with lib; { description = "Receives StatsD-style metrics and exports them to Prometheus"; diff --git a/pkgs/servers/onlyoffice-documentserver/default.nix b/pkgs/servers/onlyoffice-documentserver/default.nix index 517d288b8f7b3..c79548a0e9f9f 100644 --- a/pkgs/servers/onlyoffice-documentserver/default.nix +++ b/pkgs/servers/onlyoffice-documentserver/default.nix @@ -15,11 +15,11 @@ let # var/www/onlyoffice/documentserver/server/DocService/docservice onlyoffice-documentserver = stdenv.mkDerivation rec { pname = "onlyoffice-documentserver"; - version = "7.3.0"; + version = "7.3.2"; src = fetchurl { url = "https://github.com/ONLYOFFICE/DocumentServer/releases/download/v${lib.concatStringsSep "." (lib.take 3 (lib.splitVersion version))}/onlyoffice-documentserver_amd64.deb"; - sha256 = "sha256-PBea6VYJkjBf19AQ702OtLsHJ230Sc3e3K9HAccL0BM="; + sha256 = "sha256-BXKf5M10/ICxSDXJDmJB+T3HSsVXzSs5gu1AApUra3I="; }; preferLocalBuild = true; diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix index 5a0368d36f7d0..b1afed46ec81c 100644 --- a/pkgs/servers/plex/raw.nix +++ b/pkgs/servers/plex/raw.nix @@ -12,16 +12,16 @@ # server, and the FHS userenv and corresponding NixOS module should # automatically pick up the changes. stdenv.mkDerivation rec { - version = "1.31.1.6733-bc0674160"; + version = "1.31.1.6782-77dfff442"; pname = "plexmediaserver"; # Fetch the source src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl { url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb"; - sha256 = "0nj9n250lhin58xlqvn2l0pjxdbajj0bla2wrgan8gs2m45nk3q9"; + sha256 = "1ssnqkyghjpc81jmh67j5bwqqbvjb9aaan9j1yp2rj89fgg9br2c"; } else fetchurl { url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb"; - sha256 = "0a5h151gh1ja3frqzaqw3pj1kyh5p0wgnfmmxiz0q3zx1drjs611"; + sha256 = "0mnqbh5cfpvbhq2s0jg207cy45dm6dkz3d88qgwsi8spwfaj84p7"; }; outputs = [ "out" "basedb" ]; diff --git a/pkgs/servers/pocketbase/default.nix b/pkgs/servers/pocketbase/default.nix index c8da1b233c21a..34b2324c81093 100644 --- a/pkgs/servers/pocketbase/default.nix +++ b/pkgs/servers/pocketbase/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "pocketbase"; - version = "0.12.3"; + version = "0.13.2"; src = fetchFromGitHub { owner = "pocketbase"; repo = pname; rev = "v${version}"; - sha256 = "sha256-/uqUOuNHFyah6nrQI3lRNkB2vpV9vKXJog1ck0zoruo="; + sha256 = "sha256-P150wEJHTC294LcRhSHF5/+w08WKBvhUZsJ9ENi1EM8="; }; - vendorHash = "sha256-8NBudXcU3cjSbo6qpGZVLtbrLedzwijwrbiTgC+OMcU="; + vendorHash = "sha256-hvziOq5zyYwWcvqa23IzHXj/DT27MAcNVegYR38beJ4="; # This is the released subpackage from upstream repo subPackages = [ "examples/base" ]; diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix index c59aa621cc4d6..fde3454dd310b 100644 --- a/pkgs/servers/redpanda/default.nix +++ b/pkgs/servers/redpanda/default.nix @@ -7,12 +7,12 @@ , stdenv }: let - version = "22.3.13"; + version = "23.1.1"; src = fetchFromGitHub { owner = "redpanda-data"; repo = "redpanda"; rev = "v${version}"; - sha256 = "sha256-cUQFDXWnQYSLcfKFYg6BLrxF77iX+Yx3hcul4tMxdoc="; + sha256 = "sha256-3IRhr+XQLZXCeKhUHOlE8REwUkxLw1jcHYIataG3BaM="; }; server = callPackage ./server.nix { inherit src version; }; in @@ -21,7 +21,7 @@ buildGoModule rec { inherit doCheck src version; modRoot = "./src/go/rpk"; runVend = false; - vendorSha256 = "sha256-JVZuHRh3gavIGArxDkqUQsL5oBjz35EKGsC75Sy+cMo="; + vendorHash = "sha256-hG1UPy6Lp0F6y0h9Py28zRPS/s5JvoJ2P3OSOrrjz8U="; ldflags = [ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"'' diff --git a/pkgs/servers/search/qdrant/default.nix b/pkgs/servers/search/qdrant/default.nix index 47e4f04bac891..87a73a7e850b6 100644 --- a/pkgs/servers/search/qdrant/default.nix +++ b/pkgs/servers/search/qdrant/default.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "qdrant"; - version = "1.0.2"; + version = "1.0.3"; src = fetchFromGitHub { owner = "qdrant"; repo = "qdrant"; rev = "refs/tags/v${version}"; - sha256 = "sha256-AVglZr3J9fEWgE2g5UHt1j6YQud/viGp0IvuR9XRntE="; + sha256 = "sha256-r47mfyuM3z3SKbUi1bz8cz7BS/X8/tsIOAMKavNTgN4="; }; - cargoSha256 = "sha256-4hzixh1/nVIMRsBSoldmbtpcpBMmvxik3lV/h4FPOrk="; + cargoHash = "sha256-EwB0Vz0NyKCek2rn1QHqk5zpReMjP0o46ajete9KmWk="; prePatch = lib.optionalString stdenv.isAarch64 '' substituteInPlace .cargo/config.toml \ diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix index 045e381edd734..a476d3e21d3ae 100644 --- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix +++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { pname = "timescaledb"; - version = "2.10.0"; + version = "2.10.1"; nativeBuildInputs = [ cmake ]; buildInputs = [ postgresql openssl libkrb5 ]; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { owner = "timescale"; repo = "timescaledb"; rev = version; - sha256 = "sha256-3Pne4L9P8mJv2ja6EpxtpCBCYvlCP6D5CzDtkkvE23c="; + sha256 = "sha256-D0jo1Z9hpaJBFJQhypo76cKaahNF498OLDco2YNktA8="; }; cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" "-DTAP_CHECKS=OFF" ] diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix new file mode 100644 index 0000000000000..d672928cd3d6b --- /dev/null +++ b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix @@ -0,0 +1,42 @@ +{ lib +, fetchFromGitHub +, buildPgxExtension +, postgresql +, stdenv +, nixosTests +}: + +buildPgxExtension rec { + inherit postgresql; + + pname = "timescaledb_toolkit"; + version = "1.14.0"; + + src = fetchFromGitHub { + owner = "timescale"; + repo = "timescaledb-toolkit"; + rev = version; + sha256 = "sha256-ADmYALsCzZGqTX0XSkCif7ndvXwa8nEqddQpty4hbZ0="; + }; + + cargoSha256 = "sha256-ukjJ11LmfG+k8D20rj68i43gOWUN80nf3hIAjUWXihI="; + buildAndTestSubdir = "extension"; + + passthru.tests = { + timescaledb_toolkit = nixosTests.timescaledb; + }; + + # tests take really long + doCheck = false; + + meta = with lib; { + description = "Provide additional tools to ease all things analytic when using TimescaleDB"; + homepage = "https://github.com/timescale/timescaledb-toolkit"; + maintainers = with maintainers; [ typetetris ]; + platforms = postgresql.meta.platforms; + license = licenses.asl20; + + # as it needs to be used with timescaledb, simply use the condition from there + broken = versionOlder postgresql.version "12"; + }; +} diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix index 2bf9db061a918..b6fc6480aecb2 100644 --- a/pkgs/servers/sql/postgresql/packages.nix +++ b/pkgs/servers/sql/postgresql/packages.nix @@ -56,6 +56,8 @@ self: super: { timescaledb = super.callPackage ./ext/timescaledb.nix { }; + timescaledb_toolkit = super.callPackage ./ext/timescaledb_toolkit.nix { }; + tsearch_extras = super.callPackage ./ext/tsearch_extras.nix { }; tds_fdw = super.callPackage ./ext/tds_fdw.nix { }; diff --git a/pkgs/servers/syncstorage-rs/default.nix b/pkgs/servers/syncstorage-rs/default.nix index e71d71dc78c9a..da6bc19d8ba31 100644 --- a/pkgs/servers/syncstorage-rs/default.nix +++ b/pkgs/servers/syncstorage-rs/default.nix @@ -21,13 +21,13 @@ in rustPlatform.buildRustPackage rec { pname = "syncstorage-rs"; - version = "0.13.5"; + version = "0.13.6"; src = fetchFromGitHub { owner = "mozilla-services"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-eFrrZ/+8OsmIfCEoXPAKqVkZlgN8sfXueJQvQN8VCB0="; + hash = "sha256-LCMbhFoxi/fYaivW5gNyDhfytW/avhrrd29fXobSxJU="; }; nativeBuildInputs = [ @@ -47,7 +47,7 @@ rustPlatform.buildRustPackage rec { --prefix PATH : ${lib.makeBinPath [ pyFxADeps ]} ''; - cargoHash = "sha256-SgOxXzI6IZcP5Q06Aj5Pv6Rrvb7xVShUcGaViLuESOw="; + cargoHash = "sha256-OPPU1SKR+zNmJ1NNAv4B3C9FOF/Ddg53genUkVwNgSs="; buildFeatures = [ "grpcio/openssl" ]; |