Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot] 2025-03-17 18:05:11 +00:00 committed by GitHub
commit f2e2b1814d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
56 changed files with 913 additions and 368 deletions

View File

@ -47,7 +47,7 @@ jobs:
steps:
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci

View File

@ -26,7 +26,7 @@ jobs:
with:
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
if: github.repository_owner == 'NixOS'
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.

View File

@ -24,7 +24,7 @@ jobs:
with:
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
if: github.repository_owner == 'NixOS'
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.

View File

@ -142,6 +142,8 @@
- [victorialogs][https://docs.victoriametrics.com/victorialogs/], log database from VictoriaMetrics. Available as [services.victorialogs](#opt-services.victorialogs.enable)
- [gokapi](https://github.com/Forceu/Gokapi), Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported. Available with [services.gokapi](options.html#opt-services.gokapi.enable)
- [nostr-rs-relay](https://git.sr.ht/~gheartsfield/nostr-rs-relay/), This is a nostr relay, written in Rust. Available as [services.nostr-rs-relay](options.html#opt-services.nostr-rs-relay.enable).
- [Prometheus Node Cert Exporter](https://github.com/amimof/node-cert-exporter), a prometheus exporter to check for SSL cert expiry. Available under [services.prometheus.exporters.node-cert](#opt-services.prometheus.exporters.node-cert.enable).

View File

@ -1118,6 +1118,7 @@
./services/networking/go-neb.nix
./services/networking/go-shadowsocks2.nix
./services/networking/gobgpd.nix
./services/networking/gokapi.nix
./services/networking/gvpe.nix
./services/networking/hans.nix
./services/networking/harmonia.nix

View File

@ -8,7 +8,7 @@
services.userborn.enable = lib.mkDefault true;
# Random perl remnants
system.disableInstallerTools = lib.mkDefault true;
system.tools.nixos-generate-config.enable = lib.mkDefault false;
programs.less.lessopen = lib.mkDefault null;
programs.command-not-found.enable = lib.mkDefault false;
boot.enableContainers = lib.mkDefault false;
@ -20,9 +20,4 @@
# Check that the system does not contain a Nix store path that contains the
# string "perl".
system.forbiddenDependenciesRegexes = [ "perl" ];
# Re-add nixos-rebuild to the systemPackages that was removed by the
# `system.disableInstallerTools` option.
environment.systemPackages = [ pkgs.nixos-rebuild ];
}

View File

@ -520,7 +520,7 @@ in
elif [[ $compression == zstd ]]; then
compressionCmd=(zstd --rm)
fi
find ${baseDir}/build-logs -type f -name "*.drv" -mtime +3 -size +0c -print0 | xargs -0 -r "''${compressionCmd[@]}" --force --quiet
find ${baseDir}/build-logs -ignore_readdir_race -type f -name "*.drv" -mtime +3 -size +0c -print0 | xargs -0 -r "''${compressionCmd[@]}" --force --quiet
'';
startAt = "Sun 01:45";
serviceConfig.Slice = "system-hydra.slice";

View File

@ -86,7 +86,7 @@ in
ProtectProc = "invisible";
ProtectSystem = "strict";
ReadWritePaths = [
"${config.users.users.${cfg.user}.home}"
cfg.dataDir
];
RemoveIPC = true;
RestrictAddressFamilies = [

View File

@ -59,7 +59,7 @@ in
[bird]
listen = "0.0.0.0:29184"
config = "/etc/bird/bird.conf"
birdc = "''${pkgs.bird}/bin/birdc"
birdc = "''${pkgs.bird2}/bin/birdc"
ttl = 5 # time to live (in minutes) for caching of cli output
[parser]

View File

@ -0,0 +1,143 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.gokapi;
settingsFormat = pkgs.formats.json { };
userSettingsFile = settingsFormat.generate "generated-config.json" cfg.settings;
in
{
options.services.gokapi = {
enable = lib.mkEnableOption "Lightweight selfhosted Firefox Send alternative without public upload";
mutableSettings = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Allow changes to the program config made by the program to persist between restarts.
If disabled all required values must be set using nix, and all changes to config format over application updates must be resolved by user.
'';
};
package = lib.mkPackageOption pkgs "gokapi" { };
environment = lib.mkOption {
type = lib.types.submodule {
freeformType = lib.types.attrsOf (lib.types.either lib.types.str lib.types.int);
options = {
GOKAPI_CONFIG_DIR = lib.mkOption {
type = lib.types.str;
default = "%S/gokapi/config";
description = "Sets the directory for the config file.";
};
GOKAPI_CONFIG_FILE = lib.mkOption {
type = lib.types.str;
default = "config.json";
description = "Sets the filename for the config file.";
};
GOKAPI_DATA_DIR = lib.mkOption {
type = lib.types.str;
default = "%S/gokapi/data";
description = "Sets the directory for the data.";
};
GOKAPI_PORT = lib.mkOption {
type = lib.types.port;
default = 53842;
description = "Sets the port of the service.";
};
};
};
default = { };
description = ''
Environment variables to be set for the gokapi service. Can use systemd specifiers.
For full list see <https://gokapi.readthedocs.io/en/latest/advanced.html#environment-variables>.
'';
};
settings = lib.mkOption {
type = lib.types.submodule {
freeformType = settingsFormat.type;
options = { };
};
default = { };
description = ''
Configuration settings for the generated config json file.
See <https://gokapi.readthedocs.io/en/latest/advanced.html#config-json> for more information
'';
};
settingsFile = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
Path to config file to parse and append to settings.
Largely useful for loading secrets from a file not in the nix store. Can use systemd specifiers.
See <https://gokapi.readthedocs.io/en/latest/advanced.html#config-json> for more information
'';
};
};
config = lib.mkIf cfg.enable {
systemd.services.gokapi = {
wantedBy = [ "default.target" ];
wants = [ "network-online.target" ];
after = [ "network-online.target" ];
environment = lib.mapAttrs (_: value: toString value) cfg.environment;
unitConfig = {
Description = "gokapi service";
};
serviceConfig = {
ExecStartPre =
let
updateScript = lib.getExe (
pkgs.writeShellApplication {
name = "merge-config";
runtimeInputs = with pkgs; [ jq ];
text = ''
echo "Running merge-config"
mutableSettings="$1"
statefulSettingsFile="$2"
settingsFile="$3"
if [[ "$mutableSettings" == true ]]; then
if [[ -f "$statefulSettingsFile" ]]; then
echo "Updating stateful config file"
merged="$(jq -s '.[0] * .[1]' "$statefulSettingsFile" ${userSettingsFile})"
echo "$merged" > "$statefulSettingsFile"
fi
else
echo "Overwriting stateful config file"
mkdir -p "$(dirname "$statefulSettingsFile")"
cat ${userSettingsFile} > "$statefulSettingsFile"
fi
if [ "$settingsFile" != "null" ]; then
echo "Merging settings file into current stateful settings file"
merged="$(jq -s '.[0] * .[1]' "$statefulSettingsFile" "$settingsFile")"
echo "$merged" > "$statefulSettingsFile"
fi
'';
}
);
in
lib.strings.concatStringsSep " " [
updateScript
(lib.boolToString cfg.mutableSettings)
"${cfg.environment.GOKAPI_CONFIG_DIR}/${cfg.environment.GOKAPI_CONFIG_FILE}"
(if (cfg.settingsFile == null) then "null" else cfg.settingsFile)
];
ExecStart = lib.getExe cfg.package;
RestartSec = 30;
DynamicUser = true;
PrivateTmp = true;
StateDirectory = "gokapi";
CacheDirectory = "gokapi";
Restart = "on-failure";
};
};
};
meta.maintainers = with lib.maintainers; [
delliott
];
}

View File

@ -479,6 +479,7 @@ in {
gobgpd = handleTest ./gobgpd.nix {};
gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {};
gokapi = runTest ./gokapi.nix;
gollum = handleTest ./gollum.nix {};
gonic = handleTest ./gonic.nix {};
google-oslogin = handleTest ./google-oslogin {};

View File

@ -72,7 +72,7 @@ makeTest {
[bird]
listen = "0.0.0.0:29184"
config = "/etc/bird/bird.conf"
birdc = "${pkgs.bird}/bin/birdc"
birdc = "${pkgs.bird2}/bin/birdc"
ttl = 5 # time to live (in minutes) for caching of cli output
[parser]
filter_fields = []

22
nixos/tests/gokapi.nix Normal file
View File

@ -0,0 +1,22 @@
{ lib, ... }:
let
port = 6000;
in
{
name = "gokapi";
meta.maintainers = with lib.maintainers; [ delliott ];
nodes.machine = {
services.gokapi = {
enable = true;
environment.GOKAPI_PORT = port;
};
};
testScript = ''
machine.wait_for_unit("gokapi.service")
machine.wait_for_open_port(${toString port})
machine.succeed("curl --fail http://localhost:${toString port}/")
'';
}

View File

@ -24,6 +24,11 @@ let
inherit (neovimUtils) buildNeovimPlugin;
};
extras = callPackage ./extras.nix {
inherit buildVimPlugin;
inherit (neovimUtils) buildNeovimPlugin;
};
# TL;DR
# * Add your plugin to ./vim-plugin-names
# * run ./update.py
@ -36,9 +41,11 @@ let
};
aliases = if config.allowAliases then (import ./aliases.nix lib) else final: prev: { };
extensible-self = lib.makeExtensible (
extends aliases (extends overrides (extends plugins initialPackages))
);
in
extensible-self
lib.pipe initialPackages [
(extends plugins)
(extends extras)
(extends overrides)
(extends aliases)
lib.makeExtensible
]

View File

@ -0,0 +1,104 @@
{
lib,
buildVimPlugin,
buildNeovimPlugin,
nodePackages,
neovim-unwrapped,
}:
let
luaPackages = neovim-unwrapped.lua.pkgs;
in
self: super:
(
let
nodePackageNames = [
"coc-cmake"
"coc-docker"
"coc-emmet"
"coc-eslint"
"coc-explorer"
"coc-flutter"
"coc-git"
"coc-go"
"coc-haxe"
"coc-highlight"
"coc-html"
"coc-java"
"coc-jest"
"coc-json"
"coc-lists"
"coc-ltex"
"coc-markdownlint"
"coc-pairs"
"coc-prettier"
"coc-r-lsp"
"coc-rls"
"coc-rust-analyzer"
"coc-sh"
"coc-smartf"
"coc-snippets"
"coc-solargraph"
"coc-spell-checker"
"coc-sqlfluff"
"coc-stylelint"
"coc-sumneko-lua"
"coc-tabnine"
"coc-texlab"
"coc-tsserver"
"coc-ultisnips"
"coc-vetur"
"coc-vimlsp"
"coc-vimtex"
"coc-wxml"
"coc-yaml"
"coc-yank"
];
nodePackage2VimPackage =
name:
buildVimPlugin {
pname = name;
inherit (nodePackages.${name}) version meta;
src = "${nodePackages.${name}}/lib/node_modules/${name}";
};
in
lib.genAttrs nodePackageNames nodePackage2VimPackage
)
// (
let
luarocksPackageNames = [
"fidget-nvim"
"gitsigns-nvim"
"image-nvim"
"lsp-progress-nvim"
"lualine-nvim"
"luasnip"
"lush-nvim"
"lz-n"
"lze"
"lzextras"
"lzn-auto-require"
"middleclass"
"mini-test"
"neorg"
"neotest"
"nui-nvim"
"nvim-cmp"
"nvim-nio"
"nvim-web-devicons"
"oil-nvim"
"orgmode"
"papis-nvim"
"rest-nvim"
"rocks-config-nvim"
"rtp-nvim"
"telescope-manix"
"telescope-nvim"
];
toVimPackage =
name:
buildNeovimPlugin {
luaAttr = luaPackages.${name};
};
in
lib.genAttrs luarocksPackageNames toVimPackage
)

View File

@ -1281,6 +1281,7 @@ in
dependencies = [ self.plenary-nvim ];
};
# NOTE: this overrides a luaPackages-based plugin
gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
};
@ -1421,6 +1422,7 @@ in
doInstallCheck = true;
};
# NOTE: this overrides a luaPackages-based plugin
image-nvim = super.image-nvim.overrideAttrs {
dependencies = with self; [
nvim-treesitter
@ -1683,6 +1685,7 @@ in
dependencies = [ self.lualine-nvim ];
};
# NOTE: this overrides a luaPackages-based plugin
luasnip = super.luasnip.overrideAttrs {
dependencies = [ luaPackages.jsregexp ];
};
@ -1949,6 +1952,7 @@ in
];
};
# NOTE: this overrides a luaPackages-based plugin
neotest = super.neotest.overrideAttrs {
dependencies = with self; [
nvim-nio
@ -2838,6 +2842,7 @@ in
};
# needs "http" and "json" treesitter grammars too
# NOTE: this overrides a luaPackages-based plugin
rest-nvim = super.rest-nvim.overrideAttrs {
dependencies = with self; [
plenary-nvim
@ -3225,6 +3230,7 @@ in
dependencies = [ self.plenary-nvim ];
};
# NOTE: this overrides a luaPackages-based plugin
telescope-nvim = super.telescope-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
};
@ -3988,101 +3994,6 @@ in
'';
};
}
// (
let
nodePackageNames = [
"coc-cmake"
"coc-docker"
"coc-emmet"
"coc-eslint"
"coc-explorer"
"coc-flutter"
"coc-git"
"coc-go"
"coc-haxe"
"coc-highlight"
"coc-html"
"coc-java"
"coc-jest"
"coc-json"
"coc-lists"
"coc-ltex"
"coc-markdownlint"
"coc-pairs"
"coc-prettier"
"coc-r-lsp"
"coc-rls"
"coc-rust-analyzer"
"coc-sh"
"coc-smartf"
"coc-snippets"
"coc-solargraph"
"coc-spell-checker"
"coc-sqlfluff"
"coc-stylelint"
"coc-sumneko-lua"
"coc-tabnine"
"coc-texlab"
"coc-tsserver"
"coc-ultisnips"
"coc-vetur"
"coc-vimlsp"
"coc-vimtex"
"coc-wxml"
"coc-yaml"
"coc-yank"
];
nodePackage2VimPackage =
name:
buildVimPlugin {
pname = name;
inherit (nodePackages.${name}) version meta;
src = "${nodePackages.${name}}/lib/node_modules/${name}";
};
in
lib.genAttrs nodePackageNames nodePackage2VimPackage
)
// (
let
luarocksPackageNames = [
"fidget-nvim"
"gitsigns-nvim"
"image-nvim"
"lsp-progress-nvim"
"lualine-nvim"
"luasnip"
"lush-nvim"
"lz-n"
"lze"
"lzextras"
"lzn-auto-require"
"middleclass"
"mini-test"
"neorg"
"neotest"
"nui-nvim"
"nvim-cmp"
"nvim-nio"
"nvim-web-devicons"
"oil-nvim"
"orgmode"
"papis-nvim"
"rest-nvim"
"rocks-config-nvim"
"rtp-nvim"
"telescope-manix"
"telescope-nvim"
];
toVimPackage =
name:
neovimUtils.buildNeovimPlugin {
luaAttr = luaPackages.${name};
};
in
lib.genAttrs luarocksPackageNames toVimPackage
)
// {
rocks-nvim =
(neovimUtils.buildNeovimPlugin {

View File

@ -10,46 +10,11 @@
let
pname = "1password";
version = if channel == "stable" then "8.10.60" else "8.10.68-12.BETA";
sources = {
stable = {
x86_64-linux = {
url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
hash = "sha256-QCoV66LvGo6vA5fjuE3fG+LwehKVMPmgaDghh9YEvmA=";
};
aarch64-linux = {
url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
hash = "sha256-E5TniXur9ATJ3ER/zTFc6EiBrH/kbNvIao0ADLyBZZE=";
};
x86_64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
hash = "sha256-2Nv4CHKLgCFbU1TeJQhIq8YdkJSQJXtUw2S17B8cS4s=";
};
aarch64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
hash = "sha256-drJiM8EiUM3M54+KPQdLvAmSfBH5YPqQk14yjHzoBtM=";
};
};
beta = {
x86_64-linux = {
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
hash = "sha256-/0Y1qnCI/gXGKTHk9EIaUVbHTwRkOvwOOiMif6sRkqw=";
};
aarch64-linux = {
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
hash = "sha256-4J6a10r5n8ffqC5Y2pjO/GJLXY5AQDkQWmFNLYeK/Xw=";
};
x86_64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
hash = "sha256-XvflRqqUI59ekuSiQXyACzS94VIrl8wJjemi0xAznZU=";
};
aarch64-darwin = {
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
hash = "sha256-UErp3pcSXz/C5s3JraLoBN89tL8ghgJ3XLpg7KtU8Sc=";
};
};
};
versions = builtins.fromJSON (builtins.readFile ./versions.json);
inherit (versions.${channel} or (throw "unknown channel ${channel}")) version;
sources = builtins.fromJSON (builtins.readFile ./sources.json);
src = fetchurl {
inherit

View File

@ -0,0 +1,38 @@
{
"stable": {
"x86_64-linux": {
"url": "https://downloads.1password.com/linux/tar/stable/x86_64/1password-8.10.60.x64.tar.gz",
"hash": "sha256-QCoV66LvGo6vA5fjuE3fG+LwehKVMPmgaDghh9YEvmA="
},
"aarch64-linux": {
"url": "https://downloads.1password.com/linux/tar/stable/aarch64/1password-8.10.60.arm64.tar.gz",
"hash": "sha256-E5TniXur9ATJ3ER/zTFc6EiBrH/kbNvIao0ADLyBZZE="
},
"x86_64-darwin": {
"url": "https://downloads.1password.com/mac/1Password-8.10.60-x86_64.zip",
"hash": "sha256-2Nv4CHKLgCFbU1TeJQhIq8YdkJSQJXtUw2S17B8cS4s="
},
"aarch64-darwin": {
"url": "https://downloads.1password.com/mac/1Password-8.10.60-aarch64.zip",
"hash": "sha256-drJiM8EiUM3M54+KPQdLvAmSfBH5YPqQk14yjHzoBtM="
}
},
"beta": {
"x86_64-linux": {
"url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.10.68-12.BETA.x64.tar.gz",
"hash": "sha256-/0Y1qnCI/gXGKTHk9EIaUVbHTwRkOvwOOiMif6sRkqw="
},
"aarch64-linux": {
"url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.10.68-12.BETA.arm64.tar.gz",
"hash": "sha256-4J6a10r5n8ffqC5Y2pjO/GJLXY5AQDkQWmFNLYeK/Xw="
},
"x86_64-darwin": {
"url": "https://downloads.1password.com/mac/1Password-8.10.68-12.BETA-x86_64.zip",
"hash": "sha256-XvflRqqUI59ekuSiQXyACzS94VIrl8wJjemi0xAznZU="
},
"aarch64-darwin": {
"url": "https://downloads.1password.com/mac/1Password-8.10.68-12.BETA-aarch64.zip",
"hash": "sha256-UErp3pcSXz/C5s3JraLoBN89tL8ghgJ3XLpg7KtU8Sc="
}
}
}

View File

@ -1,58 +1,83 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p jq
#!nix-shell -i bash -p jq gnupg
#shellcheck shell=bash
CURRENT_HASH=""
set -euo pipefail
print_hash() {
OS="$1"
CHANNEL="$2"
ARCH="$3"
VERSION="$4"
cd -- "$(dirname "${BASH_SOURCE[0]}")"
if [[ "$OS" == "linux" ]]; then
if [[ "$ARCH" == "x86_64" ]]; then
EXT="x64.tar.gz"
else
EXT="arm64.tar.gz"
fi
URL="https://downloads.1password.com/${OS}/tar/${CHANNEL}/${ARCH}/1password-${VERSION}.${EXT}"
mk_url() {
local \
base_url="https://downloads.1password.com" \
os="$1" \
channel="$2" \
arch="$3" \
version="$4"
if [[ ${os} == "linux" ]]; then
if [[ ${arch} == "x86_64" ]]; then
ext="x64.tar.gz"
else
EXT="$ARCH.zip"
URL="https://downloads.1password.com/${OS}/1Password-${VERSION}-${EXT}"
ext="arm64.tar.gz"
fi
url="${base_url}/${os}/tar/${channel}/${arch}/1password-${version}.${ext}"
else
ext="${arch}.zip"
url="${base_url}/mac/1Password-${version}-${ext}"
fi
CURRENT_HASH=$(nix store prefetch-file "$URL" --json | jq -r '.hash')
echo "$CHANNEL ${ARCH}-${OS}: $CURRENT_HASH"
echo "${url}"
}
if [[ -z "$STABLE_VER" && -n "$1" ]]; then
STABLE_VER="$1"
fi
cleanup() {
if [[ -f ${GPG_KEYRING-} ]]; then
rm "${GPG_KEYRING}"
fi
if [[ -z "$BETA_VER" && -n "$2" ]]; then
BETA_VER="$2"
fi
if [[ -f ${JSON_HEAP-} ]]; then
rm "${JSON_HEAP}"
fi
}
if [[ "${BETA_VER: -4}" != "BETA" ]]; then
BETA_VER="$BETA_VER.BETA"
fi
trap cleanup EXIT
if [[ -z "$STABLE_VER" ]]; then
echo "No 'STABLE_VER' environment variable provided, skipping"
else
print_hash "linux" "stable" "x86_64" "$STABLE_VER"
print_hash "linux" "stable" "aarch64" "$STABLE_VER"
print_hash "mac" "stable" "x86_64" "$STABLE_VER"
print_hash "mac" "stable" "aarch64" "$STABLE_VER"
fi
# Get channel versions from versions.json
declare -A version=(
["stable"]=$(jq -r '.stable.version' versions.json)
["beta"]=$(jq -r '.beta.version' versions.json)
)
if [[ -z "$BETA_VER" ]]; then
echo "No 'BETA_VER' environment variable provided, skipping"
else
print_hash "linux" "beta" "x86_64" "$BETA_VER"
print_hash "linux" "beta" "aarch64" "$BETA_VER"
print_hash "mac" "beta" "x86_64" "$BETA_VER"
print_hash "mac" "beta" "aarch64" "$BETA_VER"
fi
#
GPG_KEYRING=$(mktemp -t 1password.kbx.XXXXXX)
gpg --no-default-keyring --keyring "${GPG_KEYRING}" \
--keyserver keyserver.ubuntu.com \
--receive-keys 3FEF9748469ADBE15DA7CA80AC2D62742012EA22
JSON_HEAP=$(mktemp -t 1password-gui.jsonheap.XXXXXX)
for channel in stable beta; do
for os in linux darwin; do
for arch in x86_64 aarch64; do
url=$(mk_url ${os} ${channel} ${arch} "${version[${channel}]}")
nix store prefetch-file --json "${url}" | jq "
{
\"${channel}\": {
\"${arch}-${os}\": {
\"url\": \"${url}\",
\"hash\": .hash,
\"storePath\": .storePath
}
}
}" >> "${JSON_HEAP}"
# For some reason 1Password PGP signs only Linux binaries.
if [[ ${os} == "linux" ]]; then
gpgv --keyring "${GPG_KEYRING}" \
$(nix store prefetch-file --json "${url}.sig" | jq -r .storePath) \
$(jq -r --slurp ".[-1].[].[].storePath" "${JSON_HEAP}")
fi
done
done
done
# Combine heap of hash+url objects into a single JSON object.
jq --slurp 'reduce .[] as $x ({}; . * $x) | del (.[].[].storePath)' "${JSON_HEAP}" > sources.json

View File

@ -0,0 +1,9 @@
{
"stable": {
"version": "8.10.60"
},
"beta": {
"version": "8.10.68-12.BETA"
}
}

View File

@ -0,0 +1,45 @@
{
lib,
fetchurl,
appimageTools,
makeWrapper,
}:
let
pname = "altus";
version = "5.6.0";
src = fetchurl {
name = "altus-${version}.AppImage";
url = "https://github.com/amanharwara/altus/releases/download/${version}/Altus-${version}.AppImage";
hash = "sha512-u4eBTboFJaU5qLFURXFchOmFV7GzlDbUokrBpxx8QeAJO6B0IwX1gJU0C69BKinIdO4Q93SAcjsvUkvSI+blrw==";
};
appimageContents = appimageTools.extractType2 {
inherit pname version src;
};
in
appimageTools.wrapType2 {
inherit pname version src;
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/Altus.desktop $out/share/applications/altus.desktop
install -m 444 -D ${appimageContents}/Altus.png \
$out/share/icons/hicolor/scalable/apps/altus.png
substituteInPlace $out/share/applications/altus.desktop \
--replace-fail 'Exec=AppRun' 'Exec=altus'
wrapProgram "$out/bin/altus" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
'';
meta = {
description = "Client for WhatsApp Web with themes, notifications and multiple accounts support";
homepage = "https://github.com/amanharwara/altus";
changelog = "https://github.com/amanharwara/altus/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ johnrtitor ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -56,13 +56,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "amnezia-vpn";
version = "4.8.4.1";
version = "4.8.4.4";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amnezia-client";
tag = finalAttrs.version;
hash = "sha256-iZKmwbSvyLTW9xWi/6WIwB1BeZai326e0Ut7x1RmKFw=";
hash = "sha256-uWO38eK4pJ7pkViyBh3QSVWPIMXn1tcMSS4Bt1M1bpk=";
fetchSubmodules = true;
};

View File

@ -1,23 +1,55 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, alsa-lib
, speexdsp
{
lib,
rustPlatform,
fetchFromGitHub,
fetchpatch,
alsa-lib,
libopus,
soxr,
cmake,
pkg-config,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage {
rustPlatform.buildRustPackage (final: {
pname = "bark";
version = "unstable-2023-08-22";
version = "0.6.0";
src = fetchFromGitHub {
owner = "haileys";
repo = "bark";
rev = "2586b9fb58b496f8ef06f516c9cd3aace77521f7";
hash = "sha256-sGroae6uJhB9UIpFmvt520Zs9k0ir7H8pGkhKJmVWek=";
tag = "v${final.version}";
hash = "sha256-JaUIWGCYhasM0DgqL+DiG2rE1OWVg/N66my/4RWDN1E=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-WqJZoYpOQQGJGvND2R1o2nvK5P24z7YeJ9i26mai45M=";
buildInputs = [ alsa-lib speexdsp ];
nativeBuildInputs = [ pkg-config ];
cargoHash = "sha256-LcmX8LbK8UHDDeqwLTFEUuRBv9GgDiCpXP4bmIR3gME=";
# Broken rustdoc comment
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/haileys/bark/pull/13.patch";
hash = "sha256-cA1bqc7XhJ2cxOYvjIJ9oopzBZ9I4rGERkiwDAUh3V4";
})
];
buildInputs = [
alsa-lib
libopus
soxr
];
nativeBuildInputs = [
cmake
pkg-config
];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Live sync audio streaming for local networks";
@ -27,5 +59,4 @@ rustPlatform.buildRustPackage {
platforms = lib.platforms.linux;
mainProgram = "bark";
};
}
})

View File

@ -1,20 +1,20 @@
{
buildGo124Module,
buildGoModule,
lib,
fetchFromGitHub,
nix-update-script,
buildNpmPackage,
}:
buildGo124Module rec {
buildGoModule rec {
pname = "beszel";
version = "0.10.1";
version = "0.10.2";
src = fetchFromGitHub {
owner = "henrygd";
repo = "beszel";
tag = "v${version}";
hash = "sha256-4RuYZcBR7X9Ug6l91N/FtyfT38HlW2guputzo4kF8YU=";
hash = "sha256-yYSX58qA4vE7Bp3ADc6rIMf9yaeU7Zw7D5rmES6x6oA=";
};
webui = buildNpmPackage {
@ -48,7 +48,7 @@ buildGo124Module rec {
sourceRoot = "${src.name}/beszel/site";
npmDepsHash = "sha256-UKOS7QyGsdKosjhxVhZErFkXhnfrFxdX0ozBUJGsNII=";
npmDepsHash = "sha256-27NUV23dNHFSwOHiB/wGSAWkp6eZMnw/6Pd3Fwn98+s=";
};
sourceRoot = "${src.name}/beszel";

View File

@ -6,17 +6,17 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-bundle-licenses";
version = "3.1.0";
version = "4.0.0";
src = fetchFromGitHub {
owner = "sstadick";
repo = "cargo-bundle-licenses";
rev = "v${version}";
hash = "sha256-leSHjl/B76Z4JM1wO9IBKbdfMgHtY/pGut1hnDd8/L0=";
hash = "sha256-pTxZ9s8ZccylMfEiifYmJuBB+riZ37QJSAMpVuSgLzs=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-I5zIrMZ9GnlAUfWaaFP6yr+pv8wWtxguxSL0zho3BRs=";
cargoHash = "sha256-4zolwQzK6dnFIcS2NwuxYZRS2AGcUGHh+KQzDkI0J6c=";
meta = with lib; {
description = "Generate a THIRDPARTY file with all licenses in a cargo project";

View File

@ -8,7 +8,7 @@
buildGoModule rec {
pname = "consul";
version = "1.20.4";
version = "1.20.5";
# Note: Currently only release tags are supported, because they have the Consul UI
# vendored. See
@ -22,7 +22,7 @@ buildGoModule rec {
owner = "hashicorp";
repo = pname;
tag = "v${version}";
hash = "sha256-pvTHrFrnRSprsbIPenVPVnnmU59OQCZc9DF+8wcWJ3A=";
hash = "sha256-dBx/WHi+qFrOyA0lIjvARcAZ96WvHCjVs94XicSL5L0=";
};
# This corresponds to paths with package main - normally unneeded but consul
@ -32,7 +32,7 @@ buildGoModule rec {
"connect/certgen"
];
vendorHash = "sha256-hAnIKuFtS6l4nhq8bTcHkvW43FT6K8+0FglRRNfDtPg=";
vendorHash = "sha256-rQDVXMLXI2/D4SNLfs3CT4chDnzhh1aU5xuMMBDMhLI=";
doCheck = false;

View File

@ -0,0 +1,48 @@
{
lib,
python3Packages,
fetchFromGitHub,
makeWrapper,
}:
python3Packages.buildPythonApplication rec {
pname = "countryguess";
version = "0-unstable-2025-03-04";
# upstream pyproject.toml is nonsense. Copied from another project
# without customizing it for this project.
format = "other";
src = fetchFromGitHub {
owner = "swarbler";
repo = "countryguess";
rev = "28f45231bc3d8bedeb7d1b51d56ca1b56796ff8c";
hash = "sha256-S/fy94aRoVI2CvICrviQ2ZgVESWYLuREb5mwsfXL6Hc=";
};
dependencies = with python3Packages; [
art
colorama
];
# upstream python file lacks shebang
postPatch = ''
echo '#!/usr/bin/env python3' | cat - countryguess.py > temp && mv temp countryguess.py
'';
installPhase = ''
runHook preInstall
install -Dm744 countryguess.py $out/bin/countryguess
runHook postInstall
'';
meta = {
description = "Guess the 193 U.N. recognised countries";
homepage = "https://github.com/swarbler/countryguess";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ethancedwards8 ];
mainProgram = "countryguess";
};
}

View File

@ -9,16 +9,16 @@
buildGoModule rec {
pname = "dnscontrol";
version = "4.16.0";
version = "4.17.0";
src = fetchFromGitHub {
owner = "StackExchange";
repo = "dnscontrol";
tag = "v${version}";
hash = "sha256-yFBKDb4XdCw5en/VN5IP8iCTdSRMqATVR8vV3G1gHJQ=";
hash = "sha256-4h911E5iAfqfuF66PsW0+amKw9hneaV3LS5UFsPR690=";
};
vendorHash = "sha256-4LDH1mJE0SJFvHYT14uCcgzy5CQ61V2gj1SfyHLEQXY=";
vendorHash = "sha256-158Rzie6fECkjDK18KE6WVSPlgTZAS++pSkv7KmdByk=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -0,0 +1,66 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
nix-update-script,
versionCheckHook,
}:
buildGoModule rec {
pname = "gokapi";
version = "1.9.6";
src = fetchFromGitHub {
owner = "Forceu";
repo = "Gokapi";
tag = "v${version}";
hash = "sha256-RDEvKh3tUun7wt1nhtCim95wEN9V9RlztZ9zcw9nS1o=";
};
vendorHash = "sha256-9GRAlgng+yq7q0VQz374jIOCjeDIIDD631BglM/FsQQ=";
# This is the go generate is ran in the upstream builder, but we have to run the components separately for things to work.
preBuild = ''
cd ./cmd/gokapi/
go run ../../build/go-generate/updateVersionNumbers.go
# Tries to download "golang.org/x/exp/slices"
# go run ../../build/go-generate/updateProtectedUrls.go
go run ../../build/go-generate/buildWasm.go
# Must be specify go root to import wasm_exec.js
GOROOT="$(go env GOROOT)" go run "../../build/go-generate/copyStaticFiles.go"
cd ../..
'';
subPackages = [
"cmd/gokapi"
];
ldflags = [
"-s"
"-w"
];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
tests = {
inherit (nixosTests) gokapi;
};
updateScript = nix-update-script { };
};
meta = {
description = "Lightweight selfhosted Firefox Send alternative without public upload";
homepage = "https://github.com/Forceu/Gokapi";
changelog = "https://github.com/Forceu/Gokapi/releases/tag/v${version}";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
delliott
];
mainProgram = "gokapi";
};
}

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hyprutils";
version = "0.5.1";
version = "0.5.2";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "hyprutils";
tag = "v${finalAttrs.version}";
hash = "sha256-h8HOCZ/rw2Buzku+GKF77VXxrGjCSOQkLhptiEKMYg0=";
hash = "sha256-EV3945SnjOCuRVbGRghsWx/9D89FyshnSO1Q6/TuQ14=";
};
nativeBuildInputs = [

View File

@ -19,7 +19,7 @@
rustPlatform.buildRustPackage rec {
pname = "just";
version = "1.39.0";
version = "1.40.0";
outputs =
[
"out"
@ -33,11 +33,11 @@ rustPlatform.buildRustPackage rec {
owner = "casey";
repo = "just";
tag = version;
hash = "sha256-K2MUS6wo0qxJnnIWDdmxHRNwyzx1z7yscVwMzXKAwQA=";
hash = "sha256-pmuwZoBIgUsKWFTXo8HYHVxrDWPMO8cumD/UHajFS6A=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-nDwJgZPWw86qpaGaYWB/Qqbym0FR2EpEKAme5CKbMv0=";
cargoHash = "sha256-mQQGxtSgNuRbz/83eWru+dmtWiLSKdVH+3z88BNugQE=";
nativeBuildInputs =
lib.optionals (installShellCompletions || installManPages) [ installShellFiles ]

View File

@ -18,7 +18,7 @@
stdenv.mkDerivation rec {
pname = "libgedit-amtk";
version = "5.9.0";
version = "5.9.1";
outputs = [
"out"
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
owner = "gedit";
repo = "libgedit-amtk";
rev = version;
hash = "sha256-D6jZmadUHDtxedw/tCsKHzcWXobs6Vb7dyhbVKqu2Zc=";
hash = "sha256-myKpZtqtf40UByBUKVF0jv521kGAUA6KDmbDJy/Q1q8=";
};
strictDeps = true;

View File

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "namespace-cli";
version = "0.0.405";
version = "0.0.406";
src = fetchFromGitHub {
owner = "namespacelabs";
repo = "foundation";
rev = "v${version}";
hash = "sha256-a81ToAFJAay9KpVigVNknaaGbZeKN7FKYQ6XG1tzv+s=";
hash = "sha256-uhLde8+5EmG+jb+Yn4F4SvDimXjH337OwR5rhdsREpM=";
};
vendorHash = "sha256-PoJy/tpjkUkxHiJZNFzl2UXj29iojwL9g6YrAEkSvKk=";
vendorHash = "sha256-hLxUr99gnEz2pFM0Dc8XCGgzMuoqzTmtP4Xp7vHF69U=";
subPackages = [
"cmd/nsc"

View File

@ -14,14 +14,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "newsraft";
version = "0.28";
version = "0.29";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "newsraft";
repo = "newsraft";
rev = "newsraft-${finalAttrs.version}";
hash = "sha256-iRoQLGmiAPpt9ZpvHpytIWHldkvV/5qVjurypCycJYI=";
hash = "sha256-6rDnGVOApSURuXom+XxPPOG7lxMbHGTL+4Oqrx+Jq2w=";
};
nativeBuildInputs = [ pkg-config ];

View File

@ -19,14 +19,14 @@
}:
stdenv.mkDerivation rec {
version = "2025-02-19";
version = "2025-03-11";
pname = "oh-my-zsh";
src = fetchFromGitHub {
owner = "ohmyzsh";
repo = "ohmyzsh";
rev = "6e7ac0544e71c7b777746cb50f70de68c6495b86";
sha256 = "sha256-d4w15ja5qe4axOwNyIoXZdVcgUedAIgZQrhINmNNJFw=";
rev = "f97e871c33da57d20e1b0411da6b1674126192a9";
sha256 = "sha256-L2g9kw5mFfIz+IwTSfdHN4O48tew6D807gJvrgtkjJM=";
};
strictDeps = true;

View File

@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec {
pname = "sequoia-sqv";
version = "1.2.1";
version = "1.3.0";
src = fetchFromGitLab {
owner = "sequoia-pgp";
repo = "sequoia-sqv";
rev = "v${version}";
hash = "sha256-frGukJDsxq+BWLPC/4imfc42lDKVF8BPIQQDazaLaQ0=";
hash = "sha256-xkvCEHVyRf1tQ/oo6Hg4Nri2WxdmH0fZFX24CPwJpZQ=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-WaLRBf+Umaa8LTQ97TsJJ7pUlmficIwuFV6d5QDT6SA=";
cargoHash = "sha256-ZynvC4t9NBri5gc9lt2tHd/45V6QsKHbZb7HjHUQQUI=";
nativeBuildInputs = [
pkg-config

View File

@ -5,6 +5,7 @@
autoPatchelfHook,
noto-fonts-color-emoji,
dpkg,
libarchive,
asar,
rsync,
python3,
@ -53,7 +54,9 @@
{
pname,
dir,
libdir,
bindir,
extractPkg,
version,
hash,
url,
@ -100,7 +103,7 @@ stdenv.mkDerivation rec {
recursiveHash = true;
downloadToTemp = true;
nativeBuildInputs = [
dpkg
(if ARCH == "x64" then dpkg else libarchive)
asar
];
# Signal ships the Apple emoji set without a licence via an npm
@ -117,10 +120,10 @@ stdenv.mkDerivation rec {
# unlicensed emoji files, but the rest of the work is done in the
# main derivation.
postFetch = ''
dpkg-deb -x $downloadedFile $out
asar extract "$out/opt/${dir}/resources/app.asar" $out/asar-contents
${extractPkg}
asar extract "$out/${libdir}/resources/app.asar" $out/asar-contents
rm -r \
"$out/opt/${dir}/resources/app.asar"{,.unpacked} \
"$out/${libdir}/resources/app.asar"{,.unpacked} \
$out/asar-contents/node_modules/emoji-datasource-apple
'';
};
@ -196,14 +199,14 @@ stdenv.mkDerivation rec {
mkdir -p $out/lib
mv usr/share $out/share
mv "opt/${dir}" "$out/lib/${dir}"
mv "${libdir}" "$out/lib/signal-desktop"
# Symlink to bin
mkdir -p $out/bin
ln -s "$out/lib/${dir}/${pname}" $out/bin/${pname}
ln -s "$out/lib/signal-desktop/signal-desktop" $out/bin/${meta.mainProgram}
# Create required symlinks:
ln -s libGLESv2.so "$out/lib/${dir}/libGLESv2.so.2"
ln -s libGLESv2.so "$out/lib/signal-desktop/libGLESv2.so.2"
# Copy the Noto Color Emoji PNGs into the ASAR contents. See `src`
# for the motivation, and the script for the technical details.
@ -218,7 +221,7 @@ stdenv.mkDerivation rec {
substituteInPlace asar-contents/preload.bundle.js \
--replace-fail \
'emoji://jumbo?emoji=' \
"file://$out/lib/${lib.escapeURL dir}/resources/app.asar/$emojiPrefix/"
"file://$out/lib/signal-desktop/resources/app.asar/$emojiPrefix/"
# `asar(1)` copies files from the corresponding `.unpacked`
# directory when extracting, and will put them back in the modified
@ -227,7 +230,7 @@ stdenv.mkDerivation rec {
asar pack \
--unpack '*.node' \
asar-contents \
"$out/lib/${dir}/resources/app.asar"
"$out/lib/signal-desktop/resources/app.asar"
runHook postInstall
'';
@ -239,13 +242,13 @@ stdenv.mkDerivation rec {
)
# Fix the desktop link
substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail "/opt/${dir}/${pname}" ${meta.mainProgram} \
substituteInPlace $out/share/applications/signal-desktop.desktop \
--replace-fail "/${bindir}/signal-desktop" ${meta.mainProgram} \
--replace-fail "StartupWMClass=Signal" "StartupWMClass=signal"
# Note: The following path contains bundled libraries:
# $out/lib/${dir}/resources/app.asar.unpacked/node_modules/
patchelf --add-needed ${libpulseaudio}/lib/libpulse.so "$out/lib/${dir}/resources/app.asar.unpacked/node_modules/@signalapp/ringrtc/build/linux/libringrtc-${ARCH}.node"
# $out/lib/signal-desktop/resources/app.asar.unpacked/node_modules/
patchelf --add-needed ${libpulseaudio}/lib/libpulse.so "$out/lib/signal-desktop/resources/app.asar.unpacked/node_modules/@signalapp/ringrtc/build/linux/libringrtc-${ARCH}.node"
'';
passthru = {

View File

@ -1,8 +1,15 @@
{ callPackage }:
callPackage ./generic.nix { } rec {
callPackage ./generic.nix { } {
pname = "signal-desktop";
dir = "Signal";
version = "7.36.0";
url = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version}/builds/release/signal-desktop_${version}_arm64.deb";
hash = "sha256-nmAqFDw35pdZg5tiq9MUlqXnbRLRkSOX9SWhccnE2Xw=";
version = "7.46.0-1";
libdir = "usr/lib64/signal-desktop";
bindir = "usr/bin";
extractPkg = ''
mkdir -p $out
bsdtar -xf $downloadedFile -C "$out"
'';
url = "https://download.copr.fedorainfracloud.org/results/useidel/signal-desktop/fedora-42-aarch64/08759579-signal-desktop/signal-desktop-7.46.0-1.fc42.aarch64.rpm";
hash = "sha256-kiNwaB+jNOgkfkJ4V5Fj23RNILP3IOZfKWKAehMmtZ0=";
}

View File

@ -1,8 +1,12 @@
{ callPackage }:
callPackage ./generic.nix { } rec {
pname = "signal-desktop";
dir = "Signal";
version = "7.46.0";
libdir = "opt/Signal";
bindir = libdir;
extractPkg = "dpkg-deb -x $downloadedFile $out";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
hash = "sha256-HbmyivfhvZfXdtcL/Cjzl4v0Ck/fJCD517iTjIeidgc=";
}

View File

@ -1,39 +1,33 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash nix-update curl coreutils jq
#!nix-shell -i bash -p bash common-updater-scripts curl coreutils jq
set -ex
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
curl_github() {
curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "$@"
}
latestTag=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
"https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest" \
| jq -r ".tag_name")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
case "$UPDATE_NIX_ATTR_PATH" in
signal-desktop)
latestTag=$(curl_github https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest | jq -r ".tag_name")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
latestVersionAarch64=$(curl_github "https://api.github.com/repos/0mniteck/Signal-Desktop-Mobian/releases/latest" | jq -r ".tag_name")
latestBuildInfoAarch64=$(curl \
"https://copr.fedorainfracloud.org/api_3/package/?ownername=useidel&projectname=signal-desktop&packagename=signal-desktop&with_latest_succeeded_build=true" \
| jq '.builds.latest_succeeded')
latestBuildAarch64=$(jq '.id' <<< $latestBuildInfoAarch64)
latestVersionAarch64=$(jq -r '.source_package.version' <<< $latestBuildInfoAarch64)
echo "Updating signal-desktop for x86_64-linux"
nix-update --version "$latestVersion" \
--system x86_64-linux \
--override-filename "$SCRIPT_DIR/signal-desktop.nix" \
signal-desktop
echo "Updating signal-desktop for x86_64-linux"
update-source-version signal-desktop "$latestVersion" \
--system=x86_64-linux \
--file="$SCRIPT_DIR/signal-desktop.nix"
echo "Updating signal-desktop for aarch64-linux"
nix-update --version "$latestVersionAarch64" \
--system aarch64-linux \
--override-filename "$SCRIPT_DIR/signal-desktop-aarch64.nix" \
signal-desktop
echo "Updating signal-desktop for aarch64-linux"
update-source-version signal-desktop "$latestVersionAarch64" "" \
"https://download.copr.fedorainfracloud.org/results/useidel/signal-desktop/fedora-42-aarch64/$(printf "%08d" $latestBuildAarch64)-signal-desktop/signal-desktop-$latestVersionAarch64.fc42.aarch64.rpm" \
--system=aarch64-linux \
--file="$SCRIPT_DIR/signal-desktop-aarch64.nix"
echo "Updating signal-desktop for darwin"
nix-update --version "$latestVersion" \
--system aarch64-darwin \
--override-filename "$SCRIPT_DIR/signal-desktop-darwin.nix" \
signal-desktop
;;
*)
echo "Unknown attr path $UPDATE_NIX_ATTR_PATH"
;;
esac
echo "Updating signal-desktop for darwin"
update-source-version signal-desktop "$latestVersion" \
--system=aarch64-darwin \
--file="$SCRIPT_DIR/signal-desktop-darwin.nix"

View File

@ -6,18 +6,18 @@
buildGoModule rec {
pname = "storj-uplink";
version = "1.123.4";
version = "1.124.4";
src = fetchFromGitHub {
owner = "storj";
repo = "storj";
rev = "v${version}";
hash = "sha256-H62QB/lS3rDUPDJMckRVhChgevyXfQzPBT+XI4/uDNE=";
hash = "sha256-3VrmFSE5YdZYxcEoWtEgonQz7ZERLfF12zcPExNToVs=";
};
subPackages = [ "cmd/uplink" ];
vendorHash = "sha256-s6UrM7Kj/w09EXLHeyzcE6YLzucUz/qEpXsghFETRig=";
vendorHash = "sha256-d/ddvixerg30JZtQGNWycUR93Qeaha89W8unKUFPkDg=";
ldflags = [
"-s"

View File

@ -8,17 +8,17 @@
}:
rustPlatform.buildRustPackage rec {
pname = "television";
version = "0.10.7";
version = "0.10.8";
src = fetchFromGitHub {
owner = "alexpasmantier";
repo = "television";
tag = version;
hash = "sha256-M3n644064cmg7PHmJqQpPZHl4SjshERh2gkKCWvOzcw=";
hash = "sha256-2jUCRt0Ws0KHAClSsTAui8LOz6eGGpV7F7Z3DdzqORM=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-TtLPH6k1oXAJRgbUXTvcOMOWmYCOCuhM+82yLBkwPXo=";
cargoHash = "sha256-lwIUmJ/Hgl6Kycd+SVRCawwlF7UJ0pyE2r6iJInYWX8=";
passthru = {
tests.version = testers.testVersion {

View File

@ -11,25 +11,39 @@
libepoxy,
wrapGAppsHook4,
nix-update-script,
stdenv,
meson,
ninja,
rustc,
cargo,
dbus,
desktop-file-utils,
}:
rustPlatform.buildRustPackage rec {
stdenv.mkDerivation rec {
pname = "tsukimi";
version = "0.19.3";
version = "0.19.4";
src = fetchFromGitHub {
owner = "tsukinaha";
repo = "tsukimi";
tag = "v${version}";
hash = "sha256-MNPg3qg9wRRWKofH4NSRIa76+nA3IFoMfOt6s5+4y8A=";
fetchSubmodules = true;
hash = "sha256-7Us+mz0FHetka4uVDCWkAGyGMZRhQDotRsySljYZgCo=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-mS5qKEm3oCHiFP5i/XHnIOBmXzvlgfE2i/f0lLl4TN4=";
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
hash = "sha256-JaBFL7XHVjf4NP41n9qtb5oQyaP1bYQETPYMCR9XEvQ=";
};
nativeBuildInputs = [
pkg-config
wrapGAppsHook4
meson
ninja
rustPlatform.cargoSetupHook
rustc
cargo
desktop-file-utils
];
buildInputs =
@ -39,6 +53,7 @@ rustPlatform.buildRustPackage rec {
libadwaita
openssl
libepoxy
dbus
]
++ (with gst_all_1; [
gstreamer
@ -51,23 +66,6 @@ rustPlatform.buildRustPackage rec {
doCheck = false; # tests require networking
postPatch = ''
substituteInPlace build.rs \
--replace-fail 'i18n/locale' "$out/share/locale"
substituteInPlace src/lib.rs \
--replace-fail '/usr/share/locale' "$out/share/locale"
'';
postInstall = ''
install -Dm644 resources/moe.tsuna.tsukimi.gschema.xml -t $out/share/glib-2.0/schemas
glib-compile-schemas $out/share/glib-2.0/schemas
install -Dm644 resources/icons/tsukimi.png -t $out/share/pixmaps
install -Dm644 resources/moe.tsuna.tsukimi.desktop.in $out/share/applications/moe.tsuna.tsukimi.desktop
'';
passthru.updateScript = nix-update-script { };
meta = {

View File

@ -161,6 +161,65 @@ qtModule (
# Fix race condition exposed by missing dependency
# https://bugs.gentoo.org/933368
./qtwebengine-fix_build_pdf_extension_util.patch
# The latest version of Clang changed what macros it predefines on Apple
# targets, causing errors about predefined macros in zlib.
(fetchpatch2 {
url = "https://github.com/chromium/chromium/commit/2f39ac8d0a414dd65c0e1d5aae38c8f97aa06ae9.patch";
hash = "sha256-3kA2os0IntxIiJwzS5nPd7QWYlOWOpoLKYsOQFYv0Sk=";
stripLen = 1;
extraPrefix = "src/3rdparty/chromium/";
})
# The latest version of Clang changed what macros it predefines on Apple
# targets, causing errors about predefined macros in libpng.
(fetchpatch2 {
url = "https://github.com/chromium/chromium/commit/66defc14abe47c0494da9faebebfa0a5b6efcf38.patch";
hash = "sha256-ErS5Eycls5+xQLGYKz1r/tQC6IcRJWb/WoGsUyzO9WY=";
stripLen = 1;
extraPrefix = "src/3rdparty/chromium/";
})
# https://trac.macports.org/ticket/71563
# src/3rdparty/chromium/third_party/freetype/src/src/gzip/ftzconf.h:228:12: error: unknown type name 'Byte'
(fetchpatch2 {
url = "https://github.com/macports/macports-ports/raw/f9a4136c48020b01ecc6dffa99b88333c360f056/aqua/qt5/files/patch-qtwebengine-chromium-freetype-gzip.diff";
hash = "sha256-NeLmMfYMo80u3h+5GTenMANWfWLPeS35cKg+h3vzW4g=";
extraPrefix = "";
})
# src/3rdparty/chromium/base/process/process_metrics_mac.cc:303:17: error: static assertion expression is not an integral constant expression
(fetchpatch2 {
url = "https://github.com/macports/macports-ports/raw/f9a4136c48020b01ecc6dffa99b88333c360f056/aqua/qt5/files/patch-qtwebengine_chromium_static_page_size.diff";
hash = "sha256-8TFN5XU0SUvPJCFU6wvcKP5a8HCd0ygUnLT8BF4MZ/E=";
extraPrefix = "";
})
# Add "-target-feature +aes" to the arm crc32c build flags
(fetchpatch2 {
url = "https://github.com/chromium/chromium/commit/9f43d823b6b4cdea62f0cc7563ff01f9239b8970.patch";
hash = "sha256-2WCx+ZOWA8ZyV2yiSQLx9uFZOoeWQHxLqwLEZsV41QU=";
stripLen = 1;
extraPrefix = "src/3rdparty/chromium/";
})
# Fix build with clang and libc++ 19
# https://github.com/freebsd/freebsd-ports/commit/0ddd6468fb3cb9ba390973520517cb1ca2cd690d
(fetchpatch2 {
url = "https://github.com/freebsd/freebsd-ports/raw/0ddd6468fb3cb9ba390973520517cb1ca2cd690d/www/qt5-webengine/files/patch-libc++19";
hash = "sha256-pSVPnuEpjFHW60dbId5sZ3zHP709EWG4LSWoS+TkgcQ=";
extraPrefix = "";
})
(fetchpatch2 {
url = "https://github.com/freebsd/freebsd-ports/raw/0ddd6468fb3cb9ba390973520517cb1ca2cd690d/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_wtf_hash__table.h";
hash = "sha256-+vyWC7Indd1oBhvL5fMTlIH4mM4INgISZFAbHsq32Lg=";
extraPrefix = "";
})
(fetchpatch2 {
url = "https://github.com/freebsd/freebsd-ports/raw/0ddd6468fb3cb9ba390973520517cb1ca2cd690d/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_perfetto_include_perfetto_tracing_internal_track__event__data__source.h";
hash = "sha256-DcAYOV9b30ogPCiedvQimEmiZpUJquk5j6WLjJxR54U=";
extraPrefix = "";
})
];
postPatch =
@ -248,6 +307,8 @@ qtModule (
# https://trac.macports.org/ticket/70850
"-Wno-enum-constexpr-conversion"
"-Wno-unused-but-set-variable"
# Clang 19
"-Wno-error=missing-template-arg-list-after-template-kw"
]
);
}

View File

@ -26,12 +26,6 @@ buildPythonPackage rec {
hash = "sha256-WzkhmCk8C5Il1Fm+i6cQz4JI8e4zAGves9kvsAElkrQ=";
};
postPatch = ''
# only a small portion of the listed packages are actually needed for running the tests
# so instead of removing them one by one remove everything
rm test-requirements.txt
'';
build-system = [
openstackdocstheme
setuptools

View File

@ -7,14 +7,14 @@
buildPythonPackage rec {
pname = "knx-frontend";
version = "2025.1.30.194235";
version = "2025.3.8.214559";
pyproject = true;
# TODO: source build, uses yarn.lock
src = fetchPypi {
pname = "knx_frontend";
inherit version;
hash = "sha256-P3KUpmltw7xX/6xq9RMFlP8UMDp2/ynvVCkK3rvwzk0=";
hash = "sha256-ExAQPrvK6lQ+tmsgNNAvbsVWGuZyqjRecL/5fW0dLgY=";
};
build-system = [ setuptools ];

View File

@ -18,14 +18,14 @@
buildPythonPackage rec {
pname = "lightning-utilities";
version = "0.14.0";
version = "0.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Lightning-AI";
repo = "utilities";
tag = "v${version}";
hash = "sha256-lRH1ZQQHnn18NxmLDHy/uSgzgXpLuDD5/08OIErEs7g=";
hash = "sha256-QHE2ksoINQ0sfTSxXxM9ZVEIhEOncaq1i8ZNqznISJw=";
};
postPatch = ''
@ -49,9 +49,13 @@ buildPythonPackage rec {
];
disabledTests = [
"lightning_utilities.core.enums.StrEnum"
# DocTestFailure
"lightning_utilities.core.imports.RequirementCache"
# NameError: name 'operator' is not defined. Did you forget to import 'operator'
"lightning_utilities.core.imports.compare_version"
# importlib.metadata.PackageNotFoundError: No package metadata was found for pytorch-lightning==1.8.0
"lightning_utilities.core.imports.get_dependency_min_version_spec"
# weird doctests fail on imports, but providing the dependency

View File

@ -0,0 +1,70 @@
{
stdenv,
apple-sdk_15,
buildPythonPackage,
fetchFromGitHub,
lib,
pkg-config,
pythonOlder,
pytestCheckHook,
rustPlatform,
}:
buildPythonPackage rec {
pname = "pyoxigraph";
pyproject = true;
version = "0.4.8";
src = fetchFromGitHub {
owner = "oxigraph";
repo = "oxigraph";
tag = "v${version}";
fetchSubmodules = true;
hash = "sha256-yMXNt7pGiwYDXjmHxKUQpqNrAmnFpg21Vc5R1DmwsHc=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-qOGpM3SOAOMO5W3wj4ruXlymp9bV4sqOU75gMVSEyfk=";
};
buildAndTestSubdir = "python";
dependencies = lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_15
];
disabled = pythonOlder "3.8";
disabledTests = [
"test_update_load"
];
disabledTestPaths = [
# These require network access
"lints/test_spec_links.py"
"lints/test_debian_compatibility.py"
"oxrocksdb-sys/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py"
"oxrocksdb-sys/rocksdb/tools"
];
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "pyoxigraph" ];
meta = {
homepage = "https://github.com/oxigraph/oxigraph";
description = "SPARQL graph database";
maintainers = with lib.maintainers; [ dadada ];
license = with lib.licenses; [
asl20
mit
];
platforms = lib.platforms.unix;
};
}

View File

@ -7,12 +7,12 @@
buildPythonPackage rec {
pname = "pyqt5-sip";
version = "12.15.0";
version = "12.17.0";
src = fetchPypi {
pname = "PyQt5_sip";
pname = "pyqt5_sip";
inherit version;
hash = "sha256-0j/fzzY7XO3Z05+KnFcQ59UoBPWwiljpHGOLNur8twI=";
hash = "sha256-aC2tzb0iOa+f3AwGKOJ3a4IOEovsiLSbjWkv5oL5C08=";
};
# There is no test code and the check phase fails with:

View File

@ -65,7 +65,16 @@ buildPythonPackage rec {
checkPhase = ''
runHook preCheck
stestr run
stestr run -e <(echo "
ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_no_options
ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_description
ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_extra
ironicclient.tests.unit.osc.v1.test_baremetal_chassis.TestChassisCreate.test_chassis_create_with_uuid
ironicclient.tests.unit.osc.v1.test_baremetal_conductor.TestBaremetalConductorShow.test_conductor_show
ironicclient.tests.unit.osc.v1.test_baremetal_node.TestBaremetalCreate
ironicclient.tests.unit.osc.v1.test_baremetal_node.TestBaremetalShow.test_baremetal_show
ironicclient.tests.unit.osc.v1.test_baremetal_node.TestNodeHistoryEventGet.test_baremetal_node_history_list
")
runHook postCheck
'';

View File

@ -36,8 +36,6 @@ buildPythonPackage rec {
version = "42.0.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-nW6cSOhC56YkyUQiXcJTqaojRseIf9q8YGSe4skhTA4=";
@ -86,6 +84,9 @@ buildPythonPackage rec {
chmod +x bin/*
stestr --test-path tempest/tests run -e <(echo "
tempest.tests.cmd.test_cleanup.TestTempestCleanup.test_load_json_resource_list
tempest.tests.cmd.test_cleanup.TestTempestCleanup.test_load_json_saved_state
tempest.tests.cmd.test_cleanup.TestTempestCleanup.test_take_action_got_exception
tempest.tests.lib.cli.test_execute.TestExecute.test_execute_with_prefix
")
'';

View File

@ -1,40 +1,27 @@
{
lib,
rustPlatform,
fetchCrate,
fetchFromGitHub,
pkg-config,
openssl,
stdenv,
curl,
CoreFoundation,
CoreServices,
Security,
SystemConfiguration,
}:
rustPlatform.buildRustPackage rec {
pname = "cargo-outdated";
version = "0.16.0";
version = "0.17.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-bAo3098QxepKbvBb9uF6iGNW0+RAKCCMyWfuG5WyREo=";
src = fetchFromGitHub {
owner = "kbknapp";
repo = "cargo-outdated";
rev = "v${version}";
hash = "sha256-ey11ANSflWGnCsn6M9GupgC4DE5mWww6vw5pK0CFdLo=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-h+sxnTAJ1uhPUk5dRiYPgPoxvbpVggnCn0TQ6kRCzO4=";
cargoHash = "sha256-PYlVXGfitsjEGiw07L5b+L8pfxvtkHshIjTXeuPUTdk=";
nativeBuildInputs = [ pkg-config ];
buildInputs =
[ openssl ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
curl
CoreFoundation
CoreServices
Security
SystemConfiguration
];
buildInputs = [ openssl ];
meta = with lib; {
description = "Cargo subcommand for displaying when Rust dependencies are out of date";

View File

@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "KartoffelToby";
domain = "better_thermostat";
version = "1.6.1";
version = "1.7.0";
src = fetchFromGitHub {
owner = "KartoffelToby";
repo = "better_thermostat";
tag = version;
hash = "sha256-zXO2UDLhSTOemzsO9G5ZUzr50Zg8kDW/aObn6Y3j70k=";
hash = "sha256-rE14iKAXo3hecK3bQ9MLcOtnZviwjOpYKGlIc4+uCfw=";
};
passthru.updateScript = gitUpdater {

View File

@ -213,7 +213,7 @@ mapAliases {
bibata-extra-cursors = throw "bibata-cursors has been removed as it was broken"; # Added 2024-07-15
bitcoin-unlimited = throw "bitcoin-unlimited has been removed as it was broken and unmaintained"; # Added 2024-07-15
bitcoind-unlimited = throw "bitcoind-unlimited has been removed as it was broken and unmaintained"; # Added 2024-07-15
bird = bird2; # Added 2025-01-11
bird = throw "The bird alias was ambiguous and has been removed for the time being. Please explicitly choose bird2 or bird3."; # Added 2025-01-11
bisq-desktop = throw "bisq-desktop has been removed because OpenJFX 11 was removed"; # Added 2024-11-17
bitwarden = bitwarden-desktop; # Added 2024-02-25
blender-with-packages = args:

View File

@ -6583,9 +6583,7 @@ with pkgs;
cargo-edit = callPackage ../development/tools/rust/cargo-edit {
inherit (darwin.apple_sdk.frameworks) Security;
};
cargo-outdated = callPackage ../development/tools/rust/cargo-outdated {
inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security SystemConfiguration;
};
cargo-outdated = callPackage ../development/tools/rust/cargo-outdated { };
inherit (callPackages ../development/tools/rust/cargo-pgrx { })
cargo-pgrx_0_12_0_alpha_1
cargo-pgrx_0_12_5

View File

@ -12641,6 +12641,8 @@ self: super: with self; {
pyowm = callPackage ../development/python-modules/pyowm { };
pyoxigraph = callPackage ../development/python-modules/pyoxigraph { };
pypager = callPackage ../development/python-modules/pypager { };
pypamtest = toPythonModule (pkgs.libpam-wrapper.override {