Merge staging-next into staging

Changed files
+912 -367
.github
nixos
doc
manual
release-notes
modules
profiles
services
continuous-integration
hydra
misc
networking
tests
pkgs
applications
by-name
al
altus
am
amnezia-vpn
ba
be
beszel
ca
cargo-bundle-licenses
co
consul
countryguess
dn
dnscontrol
go
gokapi
hy
hyprutils
ju
li
libgedit-amtk
na
namespace-cli
ne
newsraft
oh
oh-my-zsh
se
sequoia-sqv
si
st
storj-uplink
te
television
ts
tsukimi
development
libraries
qt-5
modules
python-modules
cliff
knx-frontend
lightning-utilities
pyoxigraph
pyqt
python-ironicclient
tempest
tools
rust
cargo-outdated
servers
home-assistant
custom-components
better_thermostat
top-level
+1 -1
.github/workflows/codeowners-v2.yml
···
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
+1 -1
.github/workflows/manual-nixos-v2.yml
···
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.
+1 -1
.github/workflows/manual-nixpkgs-v2.yml
···
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.
+2
nixos/doc/manual/release-notes/rl-2505.section.md
···
- [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).
+1
nixos/modules/module-list.nix
···
./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
+1 -6
nixos/modules/profiles/perlless.nix
···
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;
···
# 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 ];
-
}
+1 -1
nixos/modules/services/continuous-integration/hydra/default.nix
···
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";
+1 -1
nixos/modules/services/misc/jackett.nix
···
ProtectProc = "invisible";
ProtectSystem = "strict";
ReadWritePaths = [
-
"${config.users.users.${cfg.user}.home}"
+
cfg.dataDir
];
RemoveIPC = true;
RestrictAddressFamilies = [
+1 -1
nixos/modules/services/networking/birdwatcher.nix
···
[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]
+143
nixos/modules/services/networking/gokapi.nix
···
+
{
+
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
+
];
+
}
+1
nixos/tests/all-tests.nix
···
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 {};
+1 -1
nixos/tests/birdwatcher.nix
···
[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
···
+
{ 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}/")
+
'';
+
}
+12 -5
pkgs/applications/editors/vim/plugins/default.nix
···
inherit (neovimUtils) buildNeovimPlugin;
};
+
extras = callPackage ./extras.nix {
+
inherit buildVimPlugin;
+
inherit (neovimUtils) buildNeovimPlugin;
+
};
+
# TL;DR
# * Add your plugin to ./vim-plugin-names
# * run ./update.py
···
};
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
+
]
+104
pkgs/applications/editors/vim/plugins/extras.nix
···
+
{
+
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
+
)
+6 -95
pkgs/applications/editors/vim/plugins/overrides.nix
···
dependencies = [ self.plenary-nvim ];
};
+
# NOTE: this overrides a luaPackages-based plugin
gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
};
···
doInstallCheck = true;
};
+
# NOTE: this overrides a luaPackages-based plugin
image-nvim = super.image-nvim.overrideAttrs {
dependencies = with self; [
nvim-treesitter
···
dependencies = [ self.lualine-nvim ];
};
+
# NOTE: this overrides a luaPackages-based plugin
luasnip = super.luasnip.overrideAttrs {
dependencies = [ luaPackages.jsregexp ];
};
···
];
};
+
# NOTE: this overrides a luaPackages-based plugin
neotest = super.neotest.overrideAttrs {
dependencies = with self; [
nvim-nio
···
};
# 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
···
dependencies = [ self.plenary-nvim ];
};
+
# NOTE: this overrides a luaPackages-based plugin
telescope-nvim = super.telescope-nvim.overrideAttrs {
dependencies = [ self.plenary-nvim ];
};
···
'';
};
-
}
-
// (
-
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 {
+4 -39
pkgs/applications/misc/1password-gui/default.nix
···
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
+38
pkgs/applications/misc/1password-gui/sources.json
···
+
{
+
"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="
+
}
+
}
+
}
+68 -43
pkgs/applications/misc/1password-gui/update.sh
···
#!/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 "${url}"
+
}
-
echo "$CHANNEL ${ARCH}-${OS}: $CURRENT_HASH"
+
cleanup() {
+
if [[ -f ${GPG_KEYRING-} ]]; then
+
rm "${GPG_KEYRING}"
+
fi
+
+
if [[ -f ${JSON_HEAP-} ]]; then
+
rm "${JSON_HEAP}"
+
fi
}
-
if [[ -z "$STABLE_VER" && -n "$1" ]]; then
-
STABLE_VER="$1"
-
fi
+
trap cleanup EXIT
+
+
# 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" && -n "$2" ]]; then
-
BETA_VER="$2"
-
fi
+
#
+
GPG_KEYRING=$(mktemp -t 1password.kbx.XXXXXX)
+
gpg --no-default-keyring --keyring "${GPG_KEYRING}" \
+
--keyserver keyserver.ubuntu.com \
+
--receive-keys 3FEF9748469ADBE15DA7CA80AC2D62742012EA22
-
if [[ "${BETA_VER: -4}" != "BETA" ]]; then
-
BETA_VER="$BETA_VER.BETA"
-
fi
+
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}"
-
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
+
# 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
-
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
+
# Combine heap of hash+url objects into a single JSON object.
+
jq --slurp 'reduce .[] as $x ({}; . * $x) | del (.[].[].storePath)' "${JSON_HEAP}" > sources.json
+9
pkgs/applications/misc/1password-gui/versions.json
···
+
{
+
"stable": {
+
"version": "8.10.60"
+
},
+
+
"beta": {
+
"version": "8.10.68-12.BETA"
+
}
+
}
+45
pkgs/by-name/al/altus/package.nix
···
+
{
+
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" ];
+
};
+
}
+2 -2
pkgs/by-name/am/amnezia-vpn/package.nix
···
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;
};
+46 -15
pkgs/by-name/ba/bark/package.nix
···
-
{ 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";
···
platforms = lib.platforms.linux;
mainProgram = "bark";
};
-
}
-
+
})
+5 -5
pkgs/by-name/be/beszel/package.nix
···
{
-
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 {
···
sourceRoot = "${src.name}/beszel/site";
-
npmDepsHash = "sha256-UKOS7QyGsdKosjhxVhZErFkXhnfrFxdX0ozBUJGsNII=";
+
npmDepsHash = "sha256-27NUV23dNHFSwOHiB/wGSAWkp6eZMnw/6Pd3Fwn98+s=";
};
sourceRoot = "${src.name}/beszel";
+3 -3
pkgs/by-name/ca/cargo-bundle-licenses/package.nix
···
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";
+3 -3
pkgs/by-name/co/consul/package.nix
···
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
···
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
···
"connect/certgen"
];
-
vendorHash = "sha256-hAnIKuFtS6l4nhq8bTcHkvW43FT6K8+0FglRRNfDtPg=";
+
vendorHash = "sha256-rQDVXMLXI2/D4SNLfs3CT4chDnzhh1aU5xuMMBDMhLI=";
doCheck = false;
+48
pkgs/by-name/co/countryguess/package.nix
···
+
{
+
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";
+
};
+
}
+3 -3
pkgs/by-name/dn/dnscontrol/package.nix
···
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 ];
+66
pkgs/by-name/go/gokapi/package.nix
···
+
{
+
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";
+
};
+
}
+2 -2
pkgs/by-name/hy/hyprutils/package.nix
···
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 = [
+3 -3
pkgs/by-name/ju/just/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "just";
-
version = "1.39.0";
+
version = "1.40.0";
outputs =
[
"out"
···
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 ]
+2 -2
pkgs/by-name/li/libgedit-amtk/package.nix
···
stdenv.mkDerivation rec {
pname = "libgedit-amtk";
-
version = "5.9.0";
+
version = "5.9.1";
outputs = [
"out"
···
owner = "gedit";
repo = "libgedit-amtk";
rev = version;
-
hash = "sha256-D6jZmadUHDtxedw/tCsKHzcWXobs6Vb7dyhbVKqu2Zc=";
+
hash = "sha256-myKpZtqtf40UByBUKVF0jv521kGAUA6KDmbDJy/Q1q8=";
};
strictDeps = true;
+3 -3
pkgs/by-name/na/namespace-cli/package.nix
···
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"
+2 -2
pkgs/by-name/ne/newsraft/package.nix
···
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 ];
+3 -3
pkgs/by-name/oh/oh-my-zsh/package.nix
···
}:
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;
+3 -3
pkgs/by-name/se/sequoia-sqv/package.nix
···
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
+17 -14
pkgs/by-name/si/signal-desktop/generic.nix
···
autoPatchelfHook,
noto-fonts-color-emoji,
dpkg,
+
libarchive,
asar,
rsync,
python3,
···
{
pname,
-
dir,
+
libdir,
+
bindir,
+
extractPkg,
version,
hash,
url,
···
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
···
# 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
'';
};
···
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.
···
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
···
asar pack \
--unpack '*.node' \
asar-contents \
-
"$out/lib/${dir}/resources/app.asar"
+
"$out/lib/signal-desktop/resources/app.asar"
runHook postInstall
'';
···
)
# 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 = {
+12 -5
pkgs/by-name/si/signal-desktop/signal-desktop-aarch64.nix
···
{ 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=";
}
+5 -1
pkgs/by-name/si/signal-desktop/signal-desktop.nix
···
{ 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=";
}
+23 -29
pkgs/by-name/si/signal-desktop/update.sh
···
#!/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"
+3 -3
pkgs/by-name/st/storj-uplink/package.nix
···
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"
+3 -3
pkgs/by-name/te/television/package.nix
···
}:
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 {
+21 -23
pkgs/by-name/ts/tsukimi/package.nix
···
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 =
···
libadwaita
openssl
libepoxy
+
dbus
]
++ (with gst_all_1; [
gstreamer
···
]);
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 { };
+61
pkgs/development/libraries/qt-5/modules/qtwebengine.nix
···
# 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 =
···
# 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"
]
);
}
-6
pkgs/development/python-modules/cliff/default.nix
···
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
+2 -2
pkgs/development/python-modules/knx-frontend/default.nix
···
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 ];
+7 -3
pkgs/development/python-modules/lightning-utilities/default.nix
···
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 = ''
···
];
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
+70
pkgs/development/python-modules/pyoxigraph/default.nix
···
+
{
+
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;
+
};
+
}
+3 -3
pkgs/development/python-modules/pyqt/sip.nix
···
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:
+10 -1
pkgs/development/python-modules/python-ironicclient/default.nix
···
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
'';
+3 -2
pkgs/development/python-modules/tempest/default.nix
···
version = "42.0.0";
pyproject = true;
-
disabled = pythonOlder "3.8";
-
src = fetchPypi {
inherit pname version;
hash = "sha256-nW6cSOhC56YkyUQiXcJTqaojRseIf9q8YGSe4skhTA4=";
···
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
")
'';
+9 -22
pkgs/development/tools/rust/cargo-outdated/default.nix
···
{
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";
+2 -2
pkgs/servers/home-assistant/custom-components/better_thermostat/package.nix
···
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 {
+1 -1
pkgs/top-level/aliases.nix
···
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:
+1 -3
pkgs/top-level/all-packages.nix
···
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
+2
pkgs/top-level/python-packages.nix
···
pyowm = callPackage ../development/python-modules/pyowm { };
+
pyoxigraph = callPackage ../development/python-modules/pyoxigraph { };
+
pypager = callPackage ../development/python-modules/pypager { };
pypamtest = toPythonModule (pkgs.libpam-wrapper.override {