Merge remote-tracking branch 'origin/staging-next' into staging

K900 a10dfa10 25563ee0

Changed files
+520 -308
ci
doc
release-notes
maintainers
nixos
doc
manual
release-notes
modules
services
databases
desktop-managers
networking
x11
window-managers
system
boot
tests
pkgs
applications
editors
vscode
extensions
bierner.color-info
miguelsolorio.min-theme
networking
browsers
firefox
seafile-client
by-name
ar
artichoke
ci
cs
csharp-ls
ff
ffsubsync
fr
freerdp
gh
ghostfolio
gi
git-extras
gx
ki
kimai
li
libsearpc
ma
masterpdfeditor
me
memray
mi
microfetch
microsoft-edge
mise
ms
msolve
ph
phpunit
pl
planify
pr
protoc-gen-go-ttrpc
qo
qownnotes
re
sc
scaleway-cli
se
seafile-server
seafile-shared
seahub
ty
typos-lsp
vc
vi
victorialogs
victoriametrics
vm
vmagent
vo
vopono
wa
waybar
desktops
pantheon
apps
elementary-code
development
compilers
python-modules
django-formtools
django-statici18n
etils
fedora-messaging
guidata
requests-unixsocket2
slack-sdk
tensorflow-datasets
textual
uiprotect
tools
misc
parallel
+4
ci/OWNERS
···
/pkgs/servers/home-assistant @mweinelt
/pkgs/by-name/es/esphome @mweinelt
# Network Time Daemons
/pkgs/by-name/ch/chrony @thoughtpolice
/pkgs/by-name/nt/ntp @thoughtpolice
···
/pkgs/servers/home-assistant @mweinelt
/pkgs/by-name/es/esphome @mweinelt
+
# Linux kernel
+
/pkgs/top-level/linux-kernels.nix @NixOS/linux-kernel
+
/pkgs/os-specific/linux/kernel/ @NixOS/linux-kernel
+
# Network Time Daemons
/pkgs/by-name/ch/chrony @thoughtpolice
/pkgs/by-name/nt/ntp @thoughtpolice
+2
doc/release-notes/rl-2511.section.md
···
- Derivations setting both `separateDebugInfo` and one of `allowedReferences`, `allowedRequistes`, `disallowedReferences` or `disallowedRequisites` must now set `__structuredAttrs` to `true`. The effect of reference whitelisting or blacklisting will be disabled on the `debug` output created by `separateDebugInfo`.
- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).
- `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.
···
- Derivations setting both `separateDebugInfo` and one of `allowedReferences`, `allowedRequistes`, `disallowedReferences` or `disallowedRequisites` must now set `__structuredAttrs` to `true`. The effect of reference whitelisting or blacklisting will be disabled on the `debug` output created by `separateDebugInfo`.
+
- `victoriametrics` no longer contains VictoriaLogs components. These have been separated into the new package `victorialogs`.
+
- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).
- `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.
+7
maintainers/maintainer-list.nix
···
githubId = 3799330;
name = "Timo Kaufmann";
};
timor = {
email = "timor.dd@googlemail.com";
github = "timor";
···
githubId = 3799330;
name = "Timo Kaufmann";
};
+
timon = {
+
name = "Timon Schelling";
+
email = "me@timon.zip";
+
matrix = "@timon:beeper.com";
+
github = "timon-schelling";
+
githubId = 36821505;
+
};
timor = {
email = "timor.dd@googlemail.com";
github = "timor";
+2
nixos/doc/manual/release-notes/rl-2511.section.md
···
- `vmalert` now supports multiple instances with the option `services.vmalert.instances."".enable`
- The `wstunnel` module was converted to RFC42-style settings, you will need to update your NixOS config if you make use of this module.
## Other Notable Changes {#sec-release-25.11-notable-changes}
···
- `vmalert` now supports multiple instances with the option `services.vmalert.instances."".enable`
+
- [`services.victorialogs.package`](#opt-services.victorialogs.package) now defaults to `victorialogs`, as `victoriametrics` no longer contains the VictoriaLogs binaries.
+
- The `wstunnel` module was converted to RFC42-style settings, you will need to update your NixOS config if you make use of this module.
## Other Notable Changes {#sec-release-25.11-notable-changes}
+1 -1
nixos/modules/services/databases/victorialogs.nix
···
{
options.services.victorialogs = {
enable = mkEnableOption "VictoriaLogs is an open source user-friendly database for logs from VictoriaMetrics";
-
package = mkPackageOption pkgs "victoriametrics" { };
listenAddress = mkOption {
default = ":9428";
type = types.str;
···
{
options.services.victorialogs = {
enable = mkEnableOption "VictoriaLogs is an open source user-friendly database for logs from VictoriaMetrics";
+
package = mkPackageOption pkgs "victorialogs" { };
listenAddress = mkOption {
default = ":9428";
type = types.str;
+1
nixos/modules/services/desktop-managers/plasma6.nix
···
gwenview
okular
kate
khelpcenter
dolphin
baloo-widgets # baloo information in Dolphin
···
gwenview
okular
kate
+
ktexteditor # provides elevated actions for kate
khelpcenter
dolphin
baloo-widgets # baloo information in Dolphin
-1
nixos/modules/services/networking/seafile.nix
···
};
meta.maintainers = with lib.maintainers; [
-
greizgh
schmittlauch
];
}
···
};
meta.maintainers = with lib.maintainers; [
schmittlauch
];
}
+1 -2
nixos/modules/services/x11/window-managers/i3.nix
···
default = with pkgs; [
dmenu
i3status
-
i3lock
];
defaultText = literalExpression ''
with pkgs; [
dmenu
i3status
-
i3lock
]
'';
description = ''
···
'';
}
];
environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages;
environment.etc."i3/config" = mkIf (cfg.configFile != null) {
source = cfg.configFile;
···
default = with pkgs; [
dmenu
i3status
];
defaultText = literalExpression ''
with pkgs; [
dmenu
i3status
]
'';
description = ''
···
'';
}
];
+
programs.i3lock.enable = mkDefault true;
environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages;
environment.etc."i3/config" = mkIf (cfg.configFile != null) {
source = cfg.configFile;
+51 -56
nixos/modules/system/boot/loader/limine/limine-install.py
···
import datetime
import hashlib
import json
-
import ctypes
import os
import psutil
import re
···
import tempfile
import textwrap
-
limine_dir = None
-
can_use_direct_paths = False
install_config = json.load(open('@configPath@', 'r'))
-
libc = ctypes.CDLL("libc.so.6")
-
def config(*path: List[str]) -> Optional[Any]:
result = install_config
for component in path:
result = result[component]
return result
-
def get_system_path(profile: str = 'system', gen: Optional[str] = None, spec: Optional[str] = None) -> str:
basename = f'{profile}-{gen}-link' if gen is not None else profile
···
def get_gens(profile: str = 'system') -> List[Tuple[int, List[str]]]:
-
nix_env = os.path.join(config('nixPath'), 'bin', 'nix-env')
output = subprocess.check_output([
nix_env, '--list-generations',
'-p', get_system_path(profile),
···
def is_encrypted(device: str) -> bool:
-
for name, _ in config('luksDevices').items():
if os.readlink(os.path.join('/dev/mapper', name)) == os.readlink(device):
return True
···
def is_fs_type_supported(fs_type: str) -> bool:
return fs_type.startswith('vfat')
-
paths = {}
-
def get_copied_path_uri(path: str, target: str) -> str:
result = ''
package_id = os.path.basename(os.path.dirname(path))
suffix = os.path.basename(path)
dest_file = f'{package_id}-{suffix}'
-
dest_path = os.path.join(limine_dir, target, dest_file)
if not os.path.exists(dest_path):
copy_file(path, dest_path)
···
def get_kernel_uri(kernel_path: str) -> str:
return get_copied_path_uri(kernel_path, "kernels")
-
-
@dataclass
-
class BootSpec:
-
system: str
-
init: str
-
kernel: str
-
kernelParams: List[str]
-
label: str
-
toplevel: str
-
specialisations: Dict[str, "BootSpec"]
-
initrd: str | None = None
-
initrdSecrets: str | None = None
-
-
def bootjson_to_bootspec(bootjson: dict) -> BootSpec:
specialisations = bootjson['org.nixos.specialisation.v1']
specialisations = {k: bootjson_to_bootspec(v) for k, v in specialisations.items()}
···
entry += f'module_path: ' + get_kernel_uri(bootspec.initrd) + '\n'
if bootspec.initrdSecrets:
-
initrd_secrets_path = limine_dir + '/kernels/' + os.path.basename(toplevel) + '-secrets'
os.makedirs(initrd_secrets_path)
-
old_umask = os.umask()
-
os.umask(0o137)
-
initrd_secrets_path_temp = tempfile.mktemp(os.path.basename(toplevel) + '-secrets')
if os.system(bootspec.initrdSecrets + " " + initrd_secrets_path_temp) != 0:
print(f'warning: failed to create initrd secrets for "{label}"', file=sys.stderr)
···
def install_bootloader() -> None:
-
global limine_dir
boot_fs = None
···
boot_fs = fs
if config('efiSupport'):
-
limine_dir = os.path.join(config('efiMountPoint'), 'limine')
elif boot_fs and is_fs_type_supported(boot_fs['fsType']) and not is_encrypted(boot_fs['device']):
-
limine_dir = '/boot/limine'
else:
possible_causes = []
if not boot_fs:
···
partition formatted as FAT.
'''))
-
if config('secureBoot')['enable'] and not config('secureBoot')['createAndEnrollKeys'] and not os.path.exists("/var/lib/sbctl"):
print("There are no sbctl secure boot keys present. Please generate some.")
sys.exit(1)
-
if not os.path.exists(limine_dir):
-
os.makedirs(limine_dir)
else:
-
for dir, dirs, files in os.walk(limine_dir, topdown=True):
for file in files:
paths[os.path.join(dir, file)] = False
···
last_gen_json = json.load(open(os.path.join(get_system_path('system', last_gen), 'boot.json'), 'r'))
last_gen_boot_spec = bootjson_to_bootspec(last_gen_json)
-
config_file = config('extraConfig') + '\n'
config_file += textwrap.dedent(f'''
timeout: {timeout}
editor_enabled: {editor_enabled}
···
config_file += generate_config_entry(profile, gen, isFirst)
isFirst = False
-
config_file_path = os.path.join(limine_dir, 'limine.conf')
config_file += '\n# NixOS boot entries end here\n\n'
-
config_file += config('extraEntries')
with open(f"{config_file_path}.tmp", 'w') as file:
file.truncate()
···
paths[config_file_path] = True
for dest_path, source_path in config('additionalFiles').items():
-
dest_path = os.path.join(limine_dir, dest_path)
copy_file(source_path, dest_path)
-
limine_binary = os.path.join(config('liminePath'), 'bin', 'limine')
cpu_family = config('hostArchitecture', 'family')
if config('efiSupport'):
if cpu_family == 'x86':
if config('hostArchitecture', 'bits') == 32:
boot_file = 'BOOTIA32.EFI'
···
else:
raise Exception(f'Unsupported CPU family: {cpu_family}')
-
efi_path = os.path.join(config('liminePath'), 'share', 'limine', boot_file)
-
dest_path = os.path.join(config('efiMountPoint'), 'efi', 'boot' if config('efiRemovable') else 'limine', boot_file)
copy_file(efi_path, dest_path)
···
print('error: failed to enroll limine config.', file=sys.stderr)
sys.exit(1)
-
if config('secureBoot')['enable']:
-
sbctl = os.path.join(config('secureBoot')['sbctl'], 'bin', 'sbctl')
-
if config('secureBoot')['createAndEnrollKeys']:
print("TEST MODE: creating and enrolling keys")
try:
subprocess.run([sbctl, 'create-keys'])
···
if config('efiRemovable'):
print('note: boot.loader.limine.efiInstallAsRemovable is true, no need to add EFI entry.')
else:
-
efibootmgr = os.path.join(config('efiBootMgrPath'), 'bin', 'efibootmgr')
-
efi_partition = find_mounted_device(config('efiMountPoint'))
efi_disk = find_disk_device(efi_partition)
efibootmgr_output = subprocess.check_output([efibootmgr], stderr=subprocess.STDOUT, universal_newlines=True)
···
if cpu_family != 'x86':
raise Exception(f'Unsupported CPU family for BIOS install: {cpu_family}')
-
limine_sys = os.path.join(config('liminePath'), 'share', 'limine', 'limine-bios.sys')
-
limine_sys_dest = os.path.join(limine_dir, 'limine-bios.sys')
copy_file(limine_sys, limine_sys_dest)
-
device = config('biosDevice')
if device == 'nodev':
print("note: boot.loader.limine.biosSupport is set, but device is set to nodev, only the stage 2 bootloader will be installed.", file=sys.stderr)
return
-
else:
-
limine_deploy_args = [limine_binary, 'bios-install', device]
if config('partitionIndex'):
limine_deploy_args.append(str(config('partitionIndex')))
if config('forceMbr'):
-
limine_deploy_args += '--force-mbr'
try:
subprocess.run(limine_deploy_args)
···
# it can leave the system in an unbootable state, when a crash/outage
# happens shortly after an update. To decrease the likelihood of this
# event sync the efi filesystem after each update.
-
rc = libc.syncfs(os.open(f"{config('efiMountPoint')}", os.O_RDONLY))
if rc != 0:
-
print(f"could not sync {config('efiMountPoint')}: {os.strerror(rc)}", file=sys.stderr)
if __name__ == '__main__':
main()
···
import datetime
import hashlib
import json
+
from ctypes import CDLL
import os
import psutil
import re
···
import tempfile
import textwrap
+
@dataclass
+
class BootSpec:
+
system: str
+
init: str
+
kernel: str
+
kernelParams: List[str]
+
label: str
+
toplevel: str
+
specialisations: Dict[str, "BootSpec"]
+
initrd: str | None = None
+
initrdSecrets: str | None = None
install_config = json.load(open('@configPath@', 'r'))
+
libc = CDLL("libc.so.6")
+
limine_install_dir: Optional[str] = None
+
can_use_direct_paths = False
+
paths: Dict[str, bool] = {}
+
def config(*path: str) -> Optional[Any]:
result = install_config
for component in path:
result = result[component]
return result
def get_system_path(profile: str = 'system', gen: Optional[str] = None, spec: Optional[str] = None) -> str:
basename = f'{profile}-{gen}-link' if gen is not None else profile
···
def get_gens(profile: str = 'system') -> List[Tuple[int, List[str]]]:
+
nix_env = os.path.join(str(config('nixPath')), 'bin', 'nix-env')
output = subprocess.check_output([
nix_env, '--list-generations',
'-p', get_system_path(profile),
···
def is_encrypted(device: str) -> bool:
+
for name in config('luksDevices'):
if os.readlink(os.path.join('/dev/mapper', name)) == os.readlink(device):
return True
···
def is_fs_type_supported(fs_type: str) -> bool:
return fs_type.startswith('vfat')
def get_copied_path_uri(path: str, target: str) -> str:
result = ''
package_id = os.path.basename(os.path.dirname(path))
suffix = os.path.basename(path)
dest_file = f'{package_id}-{suffix}'
+
dest_path = os.path.join(str(limine_install_dir), target, dest_file)
if not os.path.exists(dest_path):
copy_file(path, dest_path)
···
def get_kernel_uri(kernel_path: str) -> str:
return get_copied_path_uri(kernel_path, "kernels")
def bootjson_to_bootspec(bootjson: dict) -> BootSpec:
specialisations = bootjson['org.nixos.specialisation.v1']
specialisations = {k: bootjson_to_bootspec(v) for k, v in specialisations.items()}
···
entry += f'module_path: ' + get_kernel_uri(bootspec.initrd) + '\n'
if bootspec.initrdSecrets:
+
initrd_secrets_path = str(limine_install_dir) + '/kernels/' + os.path.basename(bootspec.toplevel) + '-secrets'
os.makedirs(initrd_secrets_path)
+
old_umask = os.umask(0o137)
+
initrd_secrets_path_temp = tempfile.mktemp(os.path.basename(bootspec.toplevel) + '-secrets')
if os.system(bootspec.initrdSecrets + " " + initrd_secrets_path_temp) != 0:
print(f'warning: failed to create initrd secrets for "{label}"', file=sys.stderr)
···
def install_bootloader() -> None:
+
global limine_install_dir
boot_fs = None
···
boot_fs = fs
if config('efiSupport'):
+
limine_install_dir = os.path.join(str(config('efiMountPoint')), 'limine')
elif boot_fs and is_fs_type_supported(boot_fs['fsType']) and not is_encrypted(boot_fs['device']):
+
limine_install_dir = '/boot/limine'
else:
possible_causes = []
if not boot_fs:
···
partition formatted as FAT.
'''))
+
if config('secureBoot', 'enable') and not config('secureBoot', 'createAndEnrollKeys') and not os.path.exists("/var/lib/sbctl"):
print("There are no sbctl secure boot keys present. Please generate some.")
sys.exit(1)
+
if not os.path.exists(limine_install_dir):
+
os.makedirs(limine_install_dir)
else:
+
for dir, dirs, files in os.walk(limine_install_dir, topdown=True):
for file in files:
paths[os.path.join(dir, file)] = False
···
last_gen_json = json.load(open(os.path.join(get_system_path('system', last_gen), 'boot.json'), 'r'))
last_gen_boot_spec = bootjson_to_bootspec(last_gen_json)
+
config_file = str(config('extraConfig')) + '\n'
config_file += textwrap.dedent(f'''
timeout: {timeout}
editor_enabled: {editor_enabled}
···
config_file += generate_config_entry(profile, gen, isFirst)
isFirst = False
+
config_file_path = os.path.join(limine_install_dir, 'limine.conf')
config_file += '\n# NixOS boot entries end here\n\n'
+
config_file += str(config('extraEntries'))
with open(f"{config_file_path}.tmp", 'w') as file:
file.truncate()
···
paths[config_file_path] = True
for dest_path, source_path in config('additionalFiles').items():
+
dest_path = os.path.join(limine_install_dir, dest_path)
copy_file(source_path, dest_path)
+
limine_binary = os.path.join(str(config('liminePath')), 'bin', 'limine')
cpu_family = config('hostArchitecture', 'family')
if config('efiSupport'):
+
boot_file = ""
if cpu_family == 'x86':
if config('hostArchitecture', 'bits') == 32:
boot_file = 'BOOTIA32.EFI'
···
else:
raise Exception(f'Unsupported CPU family: {cpu_family}')
+
efi_path = os.path.join(str(config('liminePath')), 'share', 'limine', boot_file)
+
dest_path = os.path.join(str(config('efiMountPoint')), 'efi', 'boot' if config('efiRemovable') else 'limine', boot_file)
copy_file(efi_path, dest_path)
···
print('error: failed to enroll limine config.', file=sys.stderr)
sys.exit(1)
+
if config('secureBoot', 'enable'):
+
sbctl = os.path.join(str(config('secureBoot', 'sbctl')), 'bin', 'sbctl')
+
if config('secureBoot', 'createAndEnrollKeys'):
print("TEST MODE: creating and enrolling keys")
try:
subprocess.run([sbctl, 'create-keys'])
···
if config('efiRemovable'):
print('note: boot.loader.limine.efiInstallAsRemovable is true, no need to add EFI entry.')
else:
+
efibootmgr = os.path.join(str(config('efiBootMgrPath')), 'bin', 'efibootmgr')
+
efi_partition = find_mounted_device(str(config('efiMountPoint')))
efi_disk = find_disk_device(efi_partition)
efibootmgr_output = subprocess.check_output([efibootmgr], stderr=subprocess.STDOUT, universal_newlines=True)
···
if cpu_family != 'x86':
raise Exception(f'Unsupported CPU family for BIOS install: {cpu_family}')
+
limine_sys = os.path.join(str(config('liminePath')), 'share', 'limine', 'limine-bios.sys')
+
limine_sys_dest = os.path.join(limine_install_dir, 'limine-bios.sys')
copy_file(limine_sys, limine_sys_dest)
+
device = str(config('biosDevice'))
if device == 'nodev':
print("note: boot.loader.limine.biosSupport is set, but device is set to nodev, only the stage 2 bootloader will be installed.", file=sys.stderr)
return
+
+
limine_deploy_args: List[str] = [limine_binary, 'bios-install', device]
if config('partitionIndex'):
limine_deploy_args.append(str(config('partitionIndex')))
if config('forceMbr'):
+
limine_deploy_args.append('--force-mbr')
try:
subprocess.run(limine_deploy_args)
···
# it can leave the system in an unbootable state, when a crash/outage
# happens shortly after an update. To decrease the likelihood of this
# event sync the efi filesystem after each update.
+
rc = libc.syncfs(os.open(f"{str(config('efiMountPoint'))}", os.O_RDONLY))
if rc != 0:
+
print(f"could not sync {str(config('efiMountPoint'))}: {os.strerror(rc)}", file=sys.stderr)
if __name__ == '__main__':
main()
+2 -3
nixos/modules/system/boot/loader/limine/limine.nix
···
liminePath = cfg.package;
efiMountPoint = efi.efiSysMountPoint;
fileSystems = config.fileSystems;
-
luksDevices = config.boot.initrd.luks.devices;
canTouchEfiVariables = efi.canTouchEfiVariables;
efiSupport = cfg.efiSupport;
efiRemovable = cfg.efiInstallAsRemovable;
···
options.boot.loader.limine = {
enable = lib.mkEnableOption "the Limine Bootloader";
enableEditor = lib.mkEnableOption null // {
description = ''
···
error at boot time.
'';
};
-
-
package = lib.mkPackageOption pkgs "limine" { };
efiSupport = lib.mkEnableOption null // {
default = pkgs.stdenv.hostPlatform.isEfi;
···
liminePath = cfg.package;
efiMountPoint = efi.efiSysMountPoint;
fileSystems = config.fileSystems;
+
luksDevices = builtins.attrNames config.boot.initrd.luks.devices;
canTouchEfiVariables = efi.canTouchEfiVariables;
efiSupport = cfg.efiSupport;
efiRemovable = cfg.efiInstallAsRemovable;
···
options.boot.loader.limine = {
enable = lib.mkEnableOption "the Limine Bootloader";
+
package = lib.mkPackageOption pkgs "limine" { };
enableEditor = lib.mkEnableOption null // {
description = ''
···
error at boot time.
'';
};
efiSupport = lib.mkEnableOption null // {
default = pkgs.stdenv.hostPlatform.isEfi;
+1
nixos/tests/all-tests.nix
···
vector = import ./vector { inherit runTest; };
velocity = runTest ./velocity.nix;
vengi-tools = runTest ./vengi-tools.nix;
victoriametrics = handleTest ./victoriametrics { };
vikunja = runTest ./vikunja.nix;
virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { };
···
vector = import ./vector { inherit runTest; };
velocity = runTest ./velocity.nix;
vengi-tools = runTest ./vengi-tools.nix;
+
victorialogs = runTest ./victorialogs.nix;
victoriametrics = handleTest ./victoriametrics { };
vikunja = runTest ./vikunja.nix;
virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { };
+26
nixos/tests/victorialogs.nix
···
···
+
{ lib, ... }:
+
{
+
name = "victorialogs";
+
meta.maintainers = with lib.maintainers; [ marie ];
+
+
nodes.machine =
+
{ pkgs, ... }:
+
{
+
services.victorialogs.enable = true;
+
+
services.journald.upload = {
+
enable = true;
+
settings = {
+
Upload.URL = "http://localhost:9428/insert/journald";
+
};
+
};
+
environment.systemPackages = [ pkgs.curl ];
+
};
+
+
testScript = ''
+
machine.wait_for_unit("victorialogs.service")
+
+
machine.succeed("echo 'meow' | systemd-cat -p info")
+
machine.wait_until_succeeds("curl --fail http://localhost:9428/select/logsql/query -d 'query=\"meow\"' | grep meow")
+
'';
+
}
+18
pkgs/applications/editors/vscode/extensions/bierner.color-info/default.nix
···
···
+
{ lib, vscode-utils }:
+
+
vscode-utils.buildVscodeMarketplaceExtension {
+
mktplcRef = {
+
name = "color-info";
+
publisher = "bierner";
+
version = "0.7.2";
+
hash = "sha256-Bf0thdt4yxH7OsRhIXeqvaxD1tbHTrUc4QJcju7Hv90=";
+
};
+
meta = {
+
description = "VSCode Extension that provides additional information about css colors";
+
downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.color-info";
+
homepage = "https://github.com/mattbierner/vscode-color-info";
+
changelog = "https://marketplace.visualstudio.com/items/bierner.color-info/changelog";
+
license = lib.licenses.mit;
+
maintainers = [ lib.maintainers.timon ];
+
};
+
}
+10 -6
pkgs/applications/editors/vscode/extensions/default.nix
···
};
};
bierner.docs-view = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "docs-view";
···
mktplcRef = {
name = "composer-php-vscode";
publisher = "devsense";
-
version = "1.59.17466";
-
hash = "sha256-efgwdF1bRE4sngayKq0fcFWDNtvkX+tgEKbF3RyYY68=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.composer-php-vscode/changelog";
···
mktplcRef = {
publisher = "github";
name = "vscode-pull-request-github";
-
version = "0.110.0";
-
hash = "sha256-roD6ugBm04L2IOKIQiAWULhhq4wo1O9VMYiYtdwCrCc=";
};
meta = {
license = lib.licenses.mit;
···
license = lib.licenses.unfree;
};
};
mikestead.dotenv = buildVscodeMarketplaceExtension {
mktplcRef = {
···
mktplcRef = {
name = "tabnine-vscode";
publisher = "tabnine";
-
version = "3.288.0";
-
hash = "sha256-2wq7ohOIAzF2EXeSkg2ADRLMvksaIeYBDJfSbPwX9vk=";
};
meta = {
license = lib.licenses.mit;
···
};
};
+
bierner.color-info = callPackage ./bierner.color-info { };
+
bierner.docs-view = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "docs-view";
···
mktplcRef = {
name = "composer-php-vscode";
publisher = "devsense";
+
version = "1.59.17515";
+
hash = "sha256-unqWaEtShJHqol0tV4ocb0nI81rWFQuv/W1i+2zMeZM=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.composer-php-vscode/changelog";
···
mktplcRef = {
publisher = "github";
name = "vscode-pull-request-github";
+
version = "0.112.0";
+
hash = "sha256-L1xXgjhYmBEO+M7wZ7vkM5ktOflB9xrouAcWx9KKKT4=";
};
meta = {
license = lib.licenses.mit;
···
license = lib.licenses.unfree;
};
};
+
+
miguelsolorio.min-theme = callPackage ./miguelsolorio.min-theme { };
mikestead.dotenv = buildVscodeMarketplaceExtension {
mktplcRef = {
···
mktplcRef = {
name = "tabnine-vscode";
publisher = "tabnine";
+
version = "3.291.0";
+
hash = "sha256-OuLjM/b1quixFRJePmbyHK9UqvtLGjc88rs0OnH67nU=";
};
meta = {
license = lib.licenses.mit;
+16
pkgs/applications/editors/vscode/extensions/miguelsolorio.min-theme/default.nix
···
···
+
{ lib, vscode-utils }:
+
+
vscode-utils.buildVscodeMarketplaceExtension {
+
mktplcRef = {
+
name = "min-theme";
+
publisher = "miguelsolorio";
+
version = "1.5.0";
+
hash = "sha256-DF/9OlWmjmnZNRBs2hk0qEWN38RcgacdVl9e75N8ZMY=";
+
};
+
meta = {
+
description = "Minimal theme for VS Code that comes in dark and light";
+
downloadPage = "https://marketplace.visualstudio.com/items?itemName=miguelsolorio.min-theme";
+
homepage = "https://github.com/miguelsolorio/min-theme";
+
license = lib.licenses.mit;
+
};
+
}
+9
pkgs/applications/networking/browsers/firefox/packages/firefox-devedition.nix
···
sha512 = "c653824a5be5e376f53bd73589760af6bb74d7ee66f6557ec9fda4e3d795a851f49d73c063abac69aa6663f7f8b3c76b9487d0c067e33bd1c2be7733b9356325";
};
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Developer Edition source tree";
···
sha512 = "c653824a5be5e376f53bd73589760af6bb74d7ee66f6557ec9fda4e3d795a851f49d73c063abac69aa6663f7f8b3c76b9487d0c067e33bd1c2be7733b9356325";
};
+
# buildMozillaMach sets MOZ_APP_REMOTINGNAME during configuration, but
+
# unfortunately if the branding file also defines MOZ_APP_REMOTINGNAME, the
+
# branding file takes precedence. ("aurora" is the only branding to do this,
+
# so far.) We remove it so that the name set in buildMozillaMach takes
+
# effect.
+
extraPostPatch = ''
+
sed -i '/^MOZ_APP_REMOTINGNAME=/d' browser/branding/aurora/configure.sh
+
'';
+
meta = {
changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
description = "Web browser built from Firefox Developer Edition source tree";
-1
pkgs/applications/networking/seafile-client/default.nix
···
platforms = platforms.linux;
maintainers = with maintainers; [
schmittlauch
-
greizgh
];
mainProgram = "seafile-applet";
};
···
platforms = platforms.linux;
maintainers = with maintainers; [
schmittlauch
];
mainProgram = "seafile-applet";
};
+4 -4
pkgs/by-name/ar/artichoke/package.nix
···
rustPlatform.buildRustPackage {
pname = "artichoke";
-
version = "0-unstable-2025-06-01";
src = fetchFromGitHub {
owner = "artichoke";
repo = "artichoke";
-
rev = "7c35392d8c7622cd8ab8eccaee73d57633b2b901";
-
hash = "sha256-7YPExT+5F+5MMk/yLfG4Rk8ZDwsYfVKlkvIroFB22No=";
};
-
cargoHash = "sha256-cN70yYYKhktUoswow63ZXHvfFbXDo1rUrTWm22LluCM=";
nativeBuildInputs = [
rustPlatform.bindgenHook
···
rustPlatform.buildRustPackage {
pname = "artichoke";
+
version = "0-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "artichoke";
repo = "artichoke";
+
rev = "94921a493f680381c83465e5c50e5d494a7048f6";
+
hash = "sha256-JdCGCvs7GK/I3yyIl4n9OGtN9VwzmwdDdglwbTHfx0Y=";
};
+
cargoHash = "sha256-a43awTdhOlu+KO3B6XQ7Vdv4NbZ3iffq4rpmBBgUcZ8=";
nativeBuildInputs = [
rustPlatform.bindgenHook
-38
pkgs/by-name/ci/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch
···
-
From eb4a1eae754f222b1be902c2f050704fb0511cf7 Mon Sep 17 00:00:00 2001
-
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
-
Date: Sat, 5 Sep 2020 23:19:23 +0200
-
Subject: [PATCH] Use dbus_glib instead of elogind
-
-
---
-
cinnamon-session/meson.build | 4 ++--
-
1 file changed, 2 insertions(+), 2 deletions(-)
-
-
diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build
-
index d8428dc..1f15115 100644
-
--- a/cinnamon-session/meson.build
-
+++ b/cinnamon-session/meson.build
-
@@ -56,6 +56,7 @@ cinnamon_session_sources = [
-
gdbus_sources,
-
]
-
-
+dbus_glib = dependency('dbus-glib-1')
-
executable('cinnamon-session-binary',
-
cinnamon_session_sources,
-
dependencies: [
-
@@ -74,7 +75,7 @@ executable('cinnamon-session-binary',
-
xext,
-
xrender,
-
xtest,
-
- elogind,
-
+ dbus_glib,
-
],
-
link_with: [
-
libegg,
-
@@ -98,4 +99,3 @@ foreach unit: units
-
dependencies: unit[2]
-
)
-
endforeach
-
-
-
--
-
2.28.0
-
···
-7
pkgs/by-name/ci/cinnamon-session/package.nix
···
cinnamon-desktop,
cinnamon-settings-daemon,
cinnamon-translations,
-
dbus-glib,
glib,
gsettings-desktop-schemas,
gtk3,
···
hash = "sha256-4uTKcmwfEytoAy4CFiOedYJqmPtBFBHk0P1gEGgm6pU=";
};
-
patches = [
-
./0001-Use-dbus_glib-instead-of-elogind.patch
-
];
-
buildInputs = [
# meson.build
cinnamon-desktop
···
# other (not meson.build)
cinnamon-settings-daemon
-
dbus-glib
-
glib
gsettings-desktop-schemas
pythonEnv # for cinnamon-session-quit
];
···
cinnamon-desktop,
cinnamon-settings-daemon,
cinnamon-translations,
glib,
gsettings-desktop-schemas,
gtk3,
···
hash = "sha256-4uTKcmwfEytoAy4CFiOedYJqmPtBFBHk0P1gEGgm6pU=";
};
buildInputs = [
# meson.build
cinnamon-desktop
···
# other (not meson.build)
cinnamon-settings-daemon
gsettings-desktop-schemas
pythonEnv # for cinnamon-session-quit
];
+2 -2
pkgs/by-name/cs/csharp-ls/package.nix
···
buildDotnetGlobalTool rec {
pname = "csharp-ls";
-
version = "0.17.0";
-
nugetHash = "sha256-8dPBDhLc+L/njlRE4UPqhWRV2k+jjgRri4rLW0dIHzM=";
inherit dotnet-sdk;
dotnet-runtime = dotnet-sdk;
···
buildDotnetGlobalTool rec {
pname = "csharp-ls";
+
version = "0.18.0";
+
nugetHash = "sha256-VSlyAt5c03Oiha21ZyQ4Xm/2iIse0h1eVrVpu+nWW3s=";
inherit dotnet-sdk;
dotnet-runtime = dotnet-sdk;
+8 -2
pkgs/by-name/ff/ffsubsync/package.nix
···
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
···
charset-normalizer
faust-cchardet
ffmpeg-python
-
future
numpy
-
pkgs.ffmpeg
pysubs2
chardet
rich
···
nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
pythonImportsCheck = [ "ffsubsync" ];
meta = {
homepage = "https://github.com/smacke/ffsubsync";
···
lib,
python3,
fetchFromGitHub,
+
ffmpeg,
}:
python3.pkgs.buildPythonApplication rec {
···
charset-normalizer
faust-cchardet
ffmpeg-python
numpy
pysubs2
chardet
rich
···
nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
pythonImportsCheck = [ "ffsubsync" ];
+
+
makeWrapperArgs = [
+
"--prefix"
+
"PATH"
+
":"
+
"${ffmpeg}/bin"
+
];
meta = {
homepage = "https://github.com/smacke/ffsubsync";
+2 -12
pkgs/by-name/fr/freerdp/package.nix
···
stdenv,
lib,
fetchFromGitHub,
-
fetchpatch2,
cmake,
writableTmpDirAsHomeHook,
docbook-xsl-nons,
···
stdenv.mkDerivation (finalAttrs: {
pname = "freerdp";
-
version = "3.15.0-unstable-2025-05-16";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
rev = finalAttrs.version;
-
hash = "sha256-xz1vP58hElXe/jLVrJOSpXcbqShBV7LHRpzqPLa2fDU=";
};
-
-
patches = [
-
# Patch from https://github.com/FreeRDP/FreeRDP/pull/11439
-
# To be removed at the next release
-
(fetchpatch2 {
-
url = "https://github.com/FreeRDP/FreeRDP/commit/67fabc34dce7aa3543e152f78cb4ea88ac9d1244.patch";
-
hash = "sha256-kYCEjH1kXZJbg2sN6YNhh+y19HTTCaC7neof8DTKZ/8=";
-
})
-
];
postPatch =
''
···
stdenv,
lib,
fetchFromGitHub,
cmake,
writableTmpDirAsHomeHook,
docbook-xsl-nons,
···
stdenv.mkDerivation (finalAttrs: {
pname = "freerdp";
+
version = "3.16.0";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
rev = finalAttrs.version;
+
hash = "sha256-HF4Is3ak2nYD2Fq6HGHwyM5OTBVqYqbB22otOprzfiQ=";
};
postPatch =
''
+3 -3
pkgs/by-name/gh/ghostfolio/package.nix
···
buildNpmPackage rec {
pname = "ghostfolio";
-
version = "2.170.0";
src = fetchFromGitHub {
owner = "ghostfolio";
repo = "ghostfolio";
tag = version;
-
hash = "sha256-zXT0gSHixUeFaNA0y1JDtR5rrIBQTwlpWPeg9fR4Sf8=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
···
'';
};
-
npmDepsHash = "sha256-92MSin46MURmOPFOCobB2646/zl84LTNVwdYQG8Talo=";
nativeBuildInputs = [
prisma
···
buildNpmPackage rec {
pname = "ghostfolio";
+
version = "2.173.0";
src = fetchFromGitHub {
owner = "ghostfolio";
repo = "ghostfolio";
tag = version;
+
hash = "sha256-+x9xpY0Yd0tj8zZdMbfstMznypn1Up4hxFXkp6bjcAo=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
···
'';
};
+
npmDepsHash = "sha256-0Kme7RwXfxJuJ/6vWPPalvBYhGy0SpRViP5o4YrVeLI=";
nativeBuildInputs = [
prisma
+2 -2
pkgs/by-name/gi/git-extras/package.nix
···
stdenv.mkDerivation rec {
pname = "git-extras";
-
version = "7.3.0";
src = fetchFromGitHub {
owner = "tj";
repo = "git-extras";
rev = version;
-
sha256 = "sha256-0XZwEhDjh+rL6ZEWb60+GUw7hFOS3Xr32hgPNJcOL9I=";
};
postPatch = ''
···
stdenv.mkDerivation rec {
pname = "git-extras";
+
version = "7.4.0";
src = fetchFromGitHub {
owner = "tj";
repo = "git-extras";
rev = version;
+
sha256 = "sha256-xxBmOAJgoVR+K3gEM5KFKyWenwFnar+zF26HnTG5vuw=";
};
postPatch = ''
+2 -1
pkgs/by-name/gx/gxml/package.nix
···
--replace-fail ">=0" ">= 0"
'';
-
doCheck = true;
passthru.updateScript = gitUpdater { };
···
--replace-fail ">=0" ">= 0"
'';
+
# https://github.com/NixOS/nixpkgs/issues/407969
+
doCheck = false;
passthru.updateScript = gitUpdater { };
+3 -3
pkgs/by-name/ki/kimai/package.nix
···
php.buildComposerProject2 (finalAttrs: {
pname = "kimai";
-
version = "2.35.1";
src = fetchFromGitHub {
owner = "kimai";
repo = "kimai";
tag = finalAttrs.version;
-
hash = "sha256-QcrlwKpnKuTrJ7U8BzUsxKnJoFzV/U+ZUj5v8FcJXvI=";
};
php = php.buildEnv {
···
'';
};
-
vendorHash = "sha256-hENucMcLgG6w0hUF/tnXvFYssgqQLspD+36Jl4cJmig=";
composerNoPlugins = false;
composerNoScripts = false;
···
php.buildComposerProject2 (finalAttrs: {
pname = "kimai";
+
version = "2.36.1";
src = fetchFromGitHub {
owner = "kimai";
repo = "kimai";
tag = finalAttrs.version;
+
hash = "sha256-TZMkCKwfmn2Iv1BXKH49NRB6oCIKlPmkrPcLNZlyaPo=";
};
php = php.buildEnv {
···
'';
};
+
vendorHash = "sha256-ROy/ZWVOZ6fM92kV94uPiyUudmuCpK+9zE/5xzd+BQc=";
composerNoPlugins = false;
composerNoScripts = false;
+1 -1
pkgs/by-name/li/libsearpc/package.nix
···
mainProgram = "searpc-codegen.py";
license = lib.licenses.lgpl3;
platforms = lib.platforms.linux;
-
maintainers = with lib.maintainers; [ greizgh ];
};
}
···
mainProgram = "searpc-codegen.py";
license = lib.licenses.lgpl3;
platforms = lib.platforms.linux;
+
maintainers = [ ];
};
}
+41 -30
pkgs/by-name/ma/masterpdfeditor/package.nix
···
{
stdenv,
fetchurl,
-
sane-backends,
-
nss,
autoPatchelfHook,
-
lib,
libsForQt5,
pkcs11helper,
}:
-
stdenv.mkDerivation rec {
pname = "masterpdfeditor";
-
version = "5.9.86";
src =
let
···
in
fetchurl {
url = selectSystem {
-
x86_64-linux = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.x86_64-qt_include.tar.gz";
-
aarch64-linux = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.arm64.tar.gz";
};
hash = selectSystem {
-
x86_64-linux = "sha256-QBwcsEz13+EdgkKJRdmdsb6f3dt3N6WR/EEACdWbYNo=";
-
aarch64-linux = "sha256-OTn5Z82fRMLQwVSLwoGAaj9c9SfEicyl8e1A1ICOUf0=";
};
};
···
libsForQt5.wrapQtAppsHook
];
-
buildInputs = with libsForQt5; [
nss
-
qtbase
-
qtsvg
sane-backends
-
stdenv.cc.cc
-
pkcs11helper
];
dontStrip = true;
···
installPhase = ''
runHook preInstall
-
p=$out/opt/masterpdfeditor
-
mkdir -p $out/bin
-
-
substituteInPlace masterpdfeditor5.desktop \
-
--replace-fail 'Exec=/opt/master-pdf-editor-5' "Exec=$out/bin" \
-
--replace-fail 'Path=/opt/master-pdf-editor-5' "Path=$out/bin" \
-
--replace-fail 'Icon=/opt/master-pdf-editor-5' "Icon=$out/share/pixmaps"
-
-
install -Dm644 -t $out/share/pixmaps masterpdfeditor5.png
-
install -Dm644 -t $out/share/applications masterpdfeditor5.desktop
-
install -Dm755 -t $p masterpdfeditor5
-
install -Dm644 license_en.txt $out/share/$name/LICENSE
-
ln -s $p/masterpdfeditor5 $out/bin/masterpdfeditor5
-
cp -v -r stamps templates lang fonts $p
runHook postInstall
'';
preFixup = ''
-
patchelf $out/opt/masterpdfeditor/masterpdfeditor5 --add-needed libsmime3.so
'';
meta = {
···
maintainers = with lib.maintainers; [ cmcdragonkai ];
mainProgram = "masterpdfeditor5";
};
-
}
···
{
+
lib,
stdenv,
fetchurl,
autoPatchelfHook,
libsForQt5,
+
cups,
+
libinput,
+
mtdev,
+
nss,
pkcs11helper,
+
sane-backends,
+
common-updater-scripts,
+
nix-update,
+
writeShellScript,
}:
+
stdenv.mkDerivation (finalAttrs: {
pname = "masterpdfeditor";
+
version = "5.9.89";
src =
let
···
in
fetchurl {
url = selectSystem {
+
x86_64-linux = "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.x86_64-qt_include.tar.gz";
+
aarch64-linux = "https://code-industry.net/public/master-pdf-editor-${finalAttrs.version}-qt5.arm64.tar.gz";
};
hash = selectSystem {
+
x86_64-linux = "sha256-HTYFo3tZD1JiYpsx/q9mr1Sp9JIWA6Kp0ThzmDcvxmo=";
+
aarch64-linux = "sha256-uxCp9iv4923Qbyd2IldHm1/a50GU6VISSG6jfVzQqq4=";
};
};
···
libsForQt5.wrapQtAppsHook
];
+
buildInputs = [
+
(lib.getLib stdenv.cc.cc)
+
cups
+
libsForQt5.qtbase
+
libsForQt5.qtsvg
+
libinput
+
mtdev
nss
+
pkcs11helper
sane-backends
];
dontStrip = true;
···
installPhase = ''
runHook preInstall
+
substituteInPlace usr/share/applications/net.code-industry.masterpdfeditor5.desktop \
+
--replace-fail "Exec=/opt/master-pdf-editor-5/masterpdfeditor5" "Exec=masterpdfeditor5" \
+
--replace-fail "Path=/opt/master-pdf-editor-5" "Path=$out/share/masterpdfeditor" \
+
--replace-fail "/opt/master-pdf-editor-5/masterpdfeditor5.png" "masterpdfeditor5"
+
cp -r usr $out
+
install -Dm755 masterpdfeditor5 -t $out/share/masterpdfeditor
+
cp -r stamps templates lang fonts $out/share/masterpdfeditor
+
mkdir $out/bin
+
ln -s $out/share/masterpdfeditor/masterpdfeditor5 $out/bin/masterpdfeditor5
runHook postInstall
'';
preFixup = ''
+
patchelf $out/share/masterpdfeditor/masterpdfeditor5 \
+
--add-needed libsmime3.so
+
'';
+
+
passthru.updateScript = writeShellScript "update-masterpdfeditor" ''
+
latestVersion=$(curl -s https://code-industry.net/downloads/ | grep -A1 "fa-linux" | grep -oP 'Version\s+\K[\d.]+' | head -n 1)
+
${lib.getExe nix-update} masterpdfeditor --version $latestVersion --system x86_64-linux
+
${lib.getExe' common-updater-scripts "update-source-version"} masterpdfeditor $latestVersion --system=aarch64-linux --ignore-same-version
'';
meta = {
···
maintainers = with lib.maintainers; [ cmcdragonkai ];
mainProgram = "masterpdfeditor5";
};
+
})
+8
pkgs/by-name/me/memray/package.nix
···
# Import issue
"test_header_allocator"
"test_hybrid_stack_of_allocations_inside_ceval"
];
disabledTestPaths = [
···
# Import issue
"test_header_allocator"
"test_hybrid_stack_of_allocations_inside_ceval"
+
+
# The following snapshot tests started failing since updating textual to 3.5.0
+
"TestTUILooks"
+
"test_merge_threads"
+
"test_tui_basic"
+
"test_tui_gradient"
+
"test_tui_pause"
+
"test_unmerge_threads"
];
disabledTestPaths = [
+3 -3
pkgs/by-name/mi/microfetch/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "microfetch";
-
version = "0.4.8";
src = fetchFromGitHub {
owner = "NotAShelf";
repo = "microfetch";
tag = "v${version}";
-
hash = "sha256-WGr2qqxcbh7hotqPj8ZQbSB3E4qG5U2LEmqXx/aEc18=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-/siuEdZeIk23aIagbjrd5cYvb5/xEdAq84PoSVLWz60=";
passthru.updateScript = nix-update-script { };
···
rustPlatform.buildRustPackage rec {
pname = "microfetch";
+
version = "0.4.9";
src = fetchFromGitHub {
owner = "NotAShelf";
repo = "microfetch";
tag = "v${version}";
+
hash = "sha256-F3yRJrOzBzSDLadVTZqOPMaqF+3NSzedi222EawqVWQ=";
};
useFetchCargoVendor = true;
+
cargoHash = "sha256-Ewtge3yaegzZM4DgUXSquyJM7xcpmSp6lLmMrfrgy4Y=";
passthru.updateScript = nix-update-script { };
+2 -2
pkgs/by-name/mi/microsoft-edge/package.nix
···
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "microsoft-edge";
-
version = "137.0.3296.83";
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
-
hash = "sha256-wbiijvxzyyM9lxoMtcQHFqZYChlsHh0hNQTwdgxPpZY=";
};
# With strictDeps on, some shebangs were not being patched correctly
···
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "microsoft-edge";
+
version = "137.0.3296.93";
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
+
hash = "sha256-SC8h6UQ/ee5ZlQWAZsmC1Co5Ky4kaXuoMpvVZtTIMHQ=";
};
# With strictDeps on, some shebangs were not being patched correctly
+3 -3
pkgs/by-name/mi/mise/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "mise";
-
version = "2025.6.2";
src = fetchFromGitHub {
owner = "jdx";
repo = "mise";
rev = "v${version}";
-
hash = "sha256-vptTQdP7r9m328DK7USB6bV7muLVPIkZG8596nfdNQ8=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-0PS3WWQo3+fJ2TivvRalYCzDFmNxPRZStJj13kAP9bg=";
nativeBuildInputs = [
installShellFiles
···
rustPlatform.buildRustPackage rec {
pname = "mise";
+
version = "2025.6.5";
src = fetchFromGitHub {
owner = "jdx";
repo = "mise";
rev = "v${version}";
+
hash = "sha256-aSiIhR7Lg5bBt/0YmuqcSbl4PiNXMrt6ok+e/IAt19s=";
};
useFetchCargoVendor = true;
+
cargoHash = "sha256-+4y3/EZVIcfnkqU4krXovnfZNZw1luHH4VxgAERry8U=";
nativeBuildInputs = [
installShellFiles
+2 -2
pkgs/by-name/ms/msolve/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "msolve";
-
version = "0.8.0";
src = fetchFromGitHub {
owner = "algebraic-solving";
repo = "msolve";
tag = "v${finalAttrs.version}";
-
hash = "sha256-0kqRnBJA5CwsLY/YWZXu2+y4aiZAQQYl30Qb3JX3zEo=";
};
postPatch = ''
···
stdenv.mkDerivation (finalAttrs: {
pname = "msolve";
+
version = "0.9.0";
src = fetchFromGitHub {
owner = "algebraic-solving";
repo = "msolve";
tag = "v${finalAttrs.version}";
+
hash = "sha256-6TU/h6ewQreomjStHZRViYTrrDG3+MZXa8mLg1NvvZg=";
};
postPatch = ''
+3 -3
pkgs/by-name/ph/phpunit/package.nix
···
php.buildComposerProject2 (finalAttrs: {
pname = "phpunit";
-
version = "12.2.2";
src = fetchFromGitHub {
owner = "sebastianbergmann";
repo = "phpunit";
tag = finalAttrs.version;
-
hash = "sha256-CcN+2EuniPvCB0WXKI4IOOWUfguOlVq7lSdYzBNccfs=";
};
-
vendorHash = "sha256-GLQNRoxwdGm4MWaxyqM4Va5qZgEXFO4AB8IMQL2TAws=";
passthru = {
updateScript = nix-update-script { };
···
php.buildComposerProject2 (finalAttrs: {
pname = "phpunit";
+
version = "12.2.3";
src = fetchFromGitHub {
owner = "sebastianbergmann";
repo = "phpunit";
tag = finalAttrs.version;
+
hash = "sha256-wdUx2/f+VGaclDO5DtJprqsGuKMXXdw/CE10py19Dvc=";
};
+
vendorHash = "sha256-zc9ZXFhS78gZ5VevbAs0r+R30+It5BzUkgPau8qLjFE=";
passthru = {
updateScript = nix-update-script { };
+2 -6
pkgs/by-name/pl/planify/package.nix
···
stdenv.mkDerivation rec {
pname = "planify";
-
version = "4.12.0";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
-
hash = "sha256-YgNM+fzss1+Q6Fv9mhedhCorWFnerx5oC3iISEhs6z8=";
};
nativeBuildInputs = [
···
pantheon.granite7
sqlite
webkitgtk_6_0
-
];
-
-
mesonFlags = [
-
"-Dprofile=default"
];
meta = with lib; {
···
stdenv.mkDerivation rec {
pname = "planify";
+
version = "4.12.2";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
+
hash = "sha256-v5Fwbl02t178t+l+VZybeUojIsblLX3Ws5itAAoEZwI=";
};
nativeBuildInputs = [
···
pantheon.granite7
sqlite
webkitgtk_6_0
];
meta = with lib; {
+42
pkgs/by-name/pr/protoc-gen-go-ttrpc/package.nix
···
···
+
{
+
buildGoModule,
+
fetchFromGitHub,
+
lib,
+
}:
+
+
buildGoModule (finalAttrs: {
+
pname = "protoc-gen-go-ttrpc";
+
version = "1.2.7";
+
+
src = fetchFromGitHub {
+
owner = "containerd";
+
repo = "ttrpc";
+
tag = "v${finalAttrs.version}";
+
hash = "sha256-oQamR59cQrcuw9tervKrf+2vYnweRRNgST8GObFNjTk=";
+
};
+
+
proxyVendor = true;
+
vendorHash = "sha256-ecEO3ZM4RWl6fXvCkncetjgUZB4+LBzSFVTgiYO3tOU=";
+
+
subPackages = [
+
"cmd/protoc-gen-go-ttrpc"
+
"cmd/protoc-gen-gogottrpc"
+
];
+
+
env.CGO_ENABLED = 0;
+
ldflags = [
+
"-s"
+
];
+
+
meta = {
+
description = "GRPC for low-memory environments";
+
homepage = "https://github.com/containerd/ttrpc";
+
changelog = "https://github.com/containerd/ttrpc/releases/tag/v${finalAttrs.version}";
+
license = lib.licenses.asl20;
+
maintainers = with lib.maintainers; [
+
charludo
+
katexochen
+
];
+
mainProgram = "protoc-gen-go-ttrpc";
+
};
+
})
+5 -2
pkgs/by-name/qo/qownnotes/package.nix
···
cmake,
makeWrapper,
botan3,
pkg-config,
nixosTests,
installShellFiles,
···
stdenv.mkDerivation (finalAttrs: {
pname = "qownnotes";
appname = "QOwnNotes";
-
version = "25.6.2";
src = fetchurl {
url = "https://github.com/pbek/QOwnNotes/releases/download/v${finalAttrs.version}/qownnotes-${finalAttrs.version}.tar.xz";
-
hash = "sha256-JzUAZe0ktpn2ri2pO5780kOCLjCpRMzswOK4FaJAXe0=";
};
nativeBuildInputs =
···
qt6Packages.qtsvg
qt6Packages.qtwebsockets
botan3
] ++ lib.optionals stdenv.hostPlatform.isLinux [ qt6Packages.qtwayland ];
cmakeFlags = [
"-DQON_QT6_BUILD=ON"
"-DBUILD_WITH_SYSTEM_BOTAN=ON"
];
# Install shell completion on Linux (with xvfb-run)
···
cmake,
makeWrapper,
botan3,
+
libgit2,
pkg-config,
nixosTests,
installShellFiles,
···
stdenv.mkDerivation (finalAttrs: {
pname = "qownnotes";
appname = "QOwnNotes";
+
version = "25.6.4";
src = fetchurl {
url = "https://github.com/pbek/QOwnNotes/releases/download/v${finalAttrs.version}/qownnotes-${finalAttrs.version}.tar.xz";
+
hash = "sha256-CL/jrWdyBpE27MuyjMaSO7ofzrCihXie15xbuWVjS28=";
};
nativeBuildInputs =
···
qt6Packages.qtsvg
qt6Packages.qtwebsockets
botan3
+
libgit2
] ++ lib.optionals stdenv.hostPlatform.isLinux [ qt6Packages.qtwayland ];
cmakeFlags = [
"-DQON_QT6_BUILD=ON"
"-DBUILD_WITH_SYSTEM_BOTAN=ON"
+
"-DBUILD_WITH_LIBGIT2=ON"
];
# Install shell completion on Linux (with xvfb-run)
+3 -3
pkgs/by-name/re/redu/package.nix
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "redu";
-
version = "0.2.13";
src = fetchFromGitHub {
owner = "drdo";
repo = "redu";
tag = "v${finalAttrs.version}";
-
hash = "sha256-iea3tt1WB0/5XPNeCAk38/UoCHVSngXfNmfZQyspmsw=";
};
-
cargoHash = "sha256-fiMZIFIVeFnBnRBgmdUB8E5A2pM5nrTfUgD1LS6a4LQ=";
env.RUSTC_BOOTSTRAP = 1;
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "redu";
+
version = "0.2.14";
src = fetchFromGitHub {
owner = "drdo";
repo = "redu";
tag = "v${finalAttrs.version}";
+
hash = "sha256-E5itus0l1eENVWaSXUQHumxfo0ZMfSsguJuVSw0Uauk=";
};
+
cargoHash = "sha256-ZUA9zmWzPvyFmqQFW3ShnQRqG3TODN7K8Ex1jrOZxd0=";
env.RUSTC_BOOTSTRAP = 1;
+3 -3
pkgs/by-name/sc/scaleway-cli/package.nix
···
buildGoModule rec {
pname = "scaleway-cli";
-
version = "2.40.0";
src = fetchFromGitHub {
owner = "scaleway";
repo = "scaleway-cli";
rev = "v${version}";
-
sha256 = "sha256-nYJKWei9ObQTN1bMrkdSG/++1E3Y70L88+noyrFbKQ4=";
};
-
vendorHash = "sha256-FQgUyVCBUSJnFxnYO7I4ibz6KS6M2TUUaL+uNtNW6Pg=";
ldflags = [
"-w"
···
buildGoModule rec {
pname = "scaleway-cli";
+
version = "2.41.0";
src = fetchFromGitHub {
owner = "scaleway";
repo = "scaleway-cli";
rev = "v${version}";
+
sha256 = "sha256-DB+x2V1KrZzv6qingL2z/dcFtaFKEeOs8JMwWWIIQkk=";
};
+
vendorHash = "sha256-CYRQxs/Jj/tXoUWx+O/NFeGyNyi2mmLphHvhxZdBFnw=";
ldflags = [
"-w"
-1
pkgs/by-name/se/seafile-server/libevhtp.nix
···
homepage = "https://github.com/criticalstack/libevhtp";
license = licenses.bsd3;
maintainers = with maintainers; [
-
greizgh
schmittlauch
melvyn2
];
···
homepage = "https://github.com/criticalstack/libevhtp";
license = licenses.bsd3;
maintainers = with maintainers; [
schmittlauch
melvyn2
];
-1
pkgs/by-name/se/seafile-server/package.nix
···
license = licenses.agpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [
-
greizgh
schmittlauch
melvyn2
];
···
license = licenses.agpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [
schmittlauch
melvyn2
];
-1
pkgs/by-name/se/seafile-shared/package.nix
···
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [
-
greizgh
schmittlauch
];
};
···
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [
schmittlauch
];
};
-1
pkgs/by-name/se/seahub/package.nix
···
homepage = "https://github.com/haiwen/seahub";
license = licenses.asl20;
maintainers = with maintainers; [
-
greizgh
schmittlauch
melvyn2
];
···
homepage = "https://github.com/haiwen/seahub";
license = licenses.asl20;
maintainers = with maintainers; [
schmittlauch
melvyn2
];
+3 -3
pkgs/by-name/ty/typos-lsp/package.nix
···
pname = "typos-lsp";
# Please update the corresponding VSCode extension too.
# See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
-
version = "0.1.38";
src = fetchFromGitHub {
owner = "tekumara";
repo = "typos-lsp";
tag = "v${version}";
-
hash = "sha256-WzQh+XGROekMzjnR292REI0S1hhaxSHYNWbtwPHy/tA=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-TDcf8AyvpgpVUC5Pw2y+N6ZBhnimrpt39appwZAE8T0=";
# fix for compilation on aarch64
# see https://github.com/NixOS/nixpkgs/issues/145726
···
pname = "typos-lsp";
# Please update the corresponding VSCode extension too.
# See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
+
version = "0.1.39";
src = fetchFromGitHub {
owner = "tekumara";
repo = "typos-lsp";
tag = "v${version}";
+
hash = "sha256-GMU7xWVwHleBbtCVjKWzpOvAl8JcObX/phpTphP7N5I=";
};
useFetchCargoVendor = true;
+
cargoHash = "sha256-7BN+K14M4dzKP89ATA/zK1QfJxnEFD1j7kwBvvWrHQw=";
# fix for compilation on aarch64
# see https://github.com/NixOS/nixpkgs/issues/145726
+13 -7
pkgs/by-name/vc/vcsh/package.nix
···
lib,
stdenv,
fetchurl,
makeWrapper,
pkg-config,
git,
perlPackages,
}:
-
stdenv.mkDerivation rec {
pname = "vcsh";
-
version = "2.0.8";
src = fetchurl {
-
url = "https://github.com/RichiH/vcsh/releases/download/v${version}/${pname}-${version}.tar.xz";
-
sha256 = "sha256-VgRA3v5PIKwizmXoc8f/YMoMCDGFJK/m2uhq3EsT1xQ=";
};
nativeBuildInputs = [
-
pkg-config
makeWrapper
];
buildInputs = [ git ];
···
meta = {
description = "Version Control System for $HOME";
homepage = "https://github.com/RichiH/vcsh";
-
changelog = "https://github.com/RichiH/vcsh/blob/v${version}/changelog";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
ttuegel
···
platforms = lib.platforms.unix;
mainProgram = "vcsh";
};
-
}
···
lib,
stdenv,
fetchurl,
+
autoconf,
+
automake,
makeWrapper,
pkg-config,
+
unzip,
git,
perlPackages,
}:
+
stdenv.mkDerivation (finalAttrs: {
pname = "vcsh";
+
version = "2.0.10";
src = fetchurl {
+
url = "https://github.com/RichiH/vcsh/releases/download/v${finalAttrs.version}/vcsh-${finalAttrs.version}.zip";
+
hash = "sha256-M/UME2kNCxwzngKXMYp0cdps7LWVwoS2I/mTrvPts7g=";
};
nativeBuildInputs = [
+
autoconf
+
automake
makeWrapper
+
pkg-config
+
unzip
];
buildInputs = [ git ];
···
meta = {
description = "Version Control System for $HOME";
homepage = "https://github.com/RichiH/vcsh";
+
changelog = "https://github.com/RichiH/vcsh/blob/v${finalAttrs.version}/changelog";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
ttuegel
···
platforms = lib.platforms.unix;
mainProgram = "vcsh";
};
+
})
+77
pkgs/by-name/vi/victorialogs/package.nix
···
···
+
{
+
lib,
+
buildGoModule,
+
fetchFromGitHub,
+
nix-update-script,
+
nixosTests,
+
}:
+
+
buildGoModule (finalAttrs: {
+
pname = "VictoriaLogs";
+
version = "1.24.0";
+
+
src = fetchFromGitHub {
+
owner = "VictoriaMetrics";
+
repo = "VictoriaMetrics";
+
tag = "v${finalAttrs.version}-victorialogs";
+
hash = "sha256-E52hvxazzbz9FcPFZFcRHs2vVg6fJJQ8HsieQovQSi4=";
+
};
+
+
vendorHash = null;
+
+
subPackages = [
+
"app/victoria-logs"
+
"app/vlinsert"
+
"app/vlselect"
+
"app/vlstorage"
+
"app/vlogsgenerator"
+
"app/vlogscli"
+
];
+
+
postPatch = ''
+
# main module (github.com/VictoriaMetrics/VictoriaMetrics) does not contain package
+
# github.com/VictoriaMetrics/VictoriaMetrics/app/vmui/packages/vmui/web
+
#
+
# This appears to be some kind of test server for development purposes only.
+
# rm -f app/vmui/packages/vmui/web/{go.mod,main.go}
+
+
# Increase timeouts in tests to prevent failure on heavily loaded builders
+
substituteInPlace lib/storage/storage_test.go \
+
--replace-fail "time.After(10 " "time.After(120 " \
+
--replace-fail "time.NewTimer(30 " "time.NewTimer(120 " \
+
--replace-fail "time.NewTimer(time.Second * 10)" "time.NewTimer(time.Second * 120)" \
+
'';
+
+
ldflags = [
+
"-s"
+
"-w"
+
"-X github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo.Version=${finalAttrs.version}"
+
];
+
+
preCheck = ''
+
# `lib/querytracer/tracer_test.go` expects `buildinfo.Version` to be unset
+
export ldflags=''${ldflags//=${finalAttrs.version}/=}
+
'';
+
+
__darwinAllowLocalNetworking = true;
+
+
passthru = {
+
tests = {
+
inherit (nixosTests)
+
victorialogs
+
;
+
};
+
updateScript = nix-update-script {
+
extraArgs = [ "--version-regex=(.*)-victorialogs" ];
+
};
+
};
+
+
meta = {
+
homepage = "https://docs.victoriametrics.com/victorialogs/";
+
description = "User friendly log database from VictoriaMetrics";
+
license = lib.licenses.asl20;
+
maintainers = with lib.maintainers; [ marie ];
+
changelog = "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/${finalAttrs.src.tag}";
+
mainProgram = "victoria-logs";
+
};
+
})
-7
pkgs/by-name/vi/victoriametrics/package.nix
···
withVmAuth ? true, # HTTP proxy for authentication
withBackupTools ? true, # vmbackup, vmrestore
withVmctl ? true, # vmctl is used to migrate time series
-
withVictoriaLogs ? true, # logs server
}:
buildGoModule (finalAttrs: {
···
++ lib.optionals withBackupTools [
"app/vmbackup"
"app/vmrestore"
-
]
-
++ lib.optionals withVictoriaLogs [
-
"app/victoria-logs"
-
"app/vlinsert"
-
"app/vlselect"
-
"app/vlstorage"
];
postPatch = ''
···
withVmAuth ? true, # HTTP proxy for authentication
withBackupTools ? true, # vmbackup, vmrestore
withVmctl ? true, # vmctl is used to migrate time series
}:
buildGoModule (finalAttrs: {
···
++ lib.optionals withBackupTools [
"app/vmbackup"
"app/vmrestore"
];
postPatch = ''
-1
pkgs/by-name/vm/vmagent/package.nix
···
lib.addMetaAttrs { mainProgram = "vmagent"; } (
victoriametrics.override {
withServer = false;
-
withVictoriaLogs = false;
withVmAlert = false;
withVmAuth = false;
withBackupTools = false;
···
lib.addMetaAttrs { mainProgram = "vmagent"; } (
victoriametrics.override {
withServer = false;
withVmAlert = false;
withVmAuth = false;
withBackupTools = false;
+3 -3
pkgs/by-name/vo/vopono/package.nix
···
rustPlatform.buildRustPackage rec {
pname = "vopono";
-
version = "0.10.12";
src = fetchCrate {
inherit pname version;
-
hash = "sha256-bn3I5Yx9Kzj9ZQWn0fQUeDa6qjFAhWM38wJ/Oz3Q72k=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-vtZeL8XjsdzJcuHAVZKoI4GpcqHaOucX9qkjToIVqfQ=";
meta = with lib; {
description = "Run applications through VPN connections in network namespaces";
···
rustPlatform.buildRustPackage rec {
pname = "vopono";
+
version = "0.10.13";
src = fetchCrate {
inherit pname version;
+
hash = "sha256-xcxOdQyTNpC8Jhy8sE4AZPoFYTd/1gGdwMjc2W4S8Jc=";
};
useFetchCargoVendor = true;
+
cargoHash = "sha256-ZDnSI30pVyvBcVe8Yeug42LxPcdVK1axeBWcpaaXYJQ=";
meta = with lib; {
description = "Run applications through VPN connections in network namespaces";
+8 -8
pkgs/by-name/wa/waybar/package.nix
···
fftw,
glib,
gobject-introspection,
gtk-layer-shell,
gtkmm3,
howard-hinnant-date,
···
enableManpages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
evdevSupport ? true,
experimentalPatches ? true,
inputSupport ? true,
jackSupport ? true,
mpdSupport ? true,
···
stdenv.mkDerivation (finalAttrs: {
pname = "waybar";
-
version = "0.12.0-unstable-2025-06-13";
src = fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
-
# TODO: switch back to using tag when a new version is released which
-
# includes the fixes for issues like
-
# https://github.com/Alexays/Waybar/issues/3956
-
rev = "2c482a29173ffcc03c3e4859808eaef6c9014a1f";
-
hash = "sha256-29g4SN3Yr4q7zxYS3dU48i634jVsXHBwUUeALPAHZGM=";
};
postUnpack = lib.optional cavaSupport ''
···
portaudio
]
++ lib.optional evdevSupport libevdev
++ lib.optional inputSupport libinput
++ lib.optional jackSupport libjack2
++ lib.optional mpdSupport libmpdclient
···
(lib.mapAttrsToList lib.mesonEnable {
"cava" = cavaSupport && lib.asserts.assertMsg sndioSupport "Sndio support is required for Cava";
"dbusmenu-gtk" = traySupport;
"jack" = jackSupport;
"libevdev" = evdevSupport;
"libinput" = inputSupport;
···
];
versionCheckProgramArg = "--version";
-
# TODO: re-enable after bump to next release.
-
doInstallCheck = false;
passthru = {
updateScript = nix-update-script { };
···
fftw,
glib,
gobject-introspection,
+
gpsd,
gtk-layer-shell,
gtkmm3,
howard-hinnant-date,
···
enableManpages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
evdevSupport ? true,
experimentalPatches ? true,
+
gpsSupport ? true,
inputSupport ? true,
jackSupport ? true,
mpdSupport ? true,
···
stdenv.mkDerivation (finalAttrs: {
pname = "waybar";
+
version = "0.13.0";
src = fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
+
tag = finalAttrs.version;
+
hash = "sha256-KfWjYDqJf2jNmYAnmV7EQHweMObEBreUc2G7/LpvvC0=";
};
postUnpack = lib.optional cavaSupport ''
···
portaudio
]
++ lib.optional evdevSupport libevdev
+
++ lib.optional gpsSupport gpsd
++ lib.optional inputSupport libinput
++ lib.optional jackSupport libjack2
++ lib.optional mpdSupport libmpdclient
···
(lib.mapAttrsToList lib.mesonEnable {
"cava" = cavaSupport && lib.asserts.assertMsg sndioSupport "Sndio support is required for Cava";
"dbusmenu-gtk" = traySupport;
+
"gps" = gpsSupport;
"jack" = jackSupport;
"libevdev" = evdevSupport;
"libinput" = inputSupport;
···
];
versionCheckProgramArg = "--version";
+
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
+19 -10
pkgs/desktops/pantheon/apps/elementary-code/default.nix
···
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
-
appstream,
-
desktop-file-utils,
meson,
ninja,
pkg-config,
···
libgee,
libgit2-glib,
libhandy,
-
libpeas,
-
libsoup_2_4,
vte,
ctags,
}:
stdenv.mkDerivation rec {
pname = "elementary-code";
-
version = "7.4.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "code";
rev = version;
-
sha256 = "sha256-KoRpGBYen1eOdMBHOTBMopC+mPMOkD+iYWV3JA21mKc=";
};
nativeBuildInputs = [
-
appstream
-
desktop-file-utils
meson
ninja
pkg-config
···
libgee
libgit2-glib
libhandy
-
libpeas
-
libsoup_2_4
vte
];
···
lib,
stdenv,
fetchFromGitHub,
+
fetchpatch,
nix-update-script,
meson,
ninja,
pkg-config,
···
libgee,
libgit2-glib,
libhandy,
+
libpeas2,
+
libsoup_3,
vte,
ctags,
}:
stdenv.mkDerivation rec {
pname = "elementary-code";
+
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "code";
rev = version;
+
hash = "sha256-muW7K9cFITZaoNi3id+iplmokN5sSE8x1CVQ62+myUU=";
};
+
patches = [
+
# Fix build with GCC 14
+
# https://github.com/elementary/code/pull/1606
+
(fetchpatch {
+
url = "https://github.com/elementary/code/commit/9b8347adcbb94f3186815413d927eecc51be2ccf.patch";
+
hash = "sha256-VhpvWgOGniOEjxBOjvX30DZIRGalxfPlb9j1VaOAJTA=";
+
})
+
];
+
+
strictDeps = true;
+
nativeBuildInputs = [
meson
ninja
pkg-config
···
libgee
libgit2-glib
libhandy
+
libpeas2
+
libsoup_3
+
vala # for ValaSymbolResolver provided by libvala
vte
];
+3 -3
pkgs/development/compilers/llvm/default.nix
···
"19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I=";
"20.1.6".officialRelease.sha256 = "sha256-PfCzECiCM+k0hHqEUSr1TSpnII5nqIxg+Z8ICjmMj0Y=";
"21.0.0-git".gitRelease = {
-
rev = "9adde28df784f5c0cc960bdabd413ac131a5852e";
-
rev-version = "21.0.0-unstable-2025-06-15";
-
sha256 = "sha256-8HrUSKL3vOd/Jg9svso9ChCr4tvlGOliyGfi18oZLDY=";
};
} // llvmVersions;
···
"19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I=";
"20.1.6".officialRelease.sha256 = "sha256-PfCzECiCM+k0hHqEUSr1TSpnII5nqIxg+Z8ICjmMj0Y=";
"21.0.0-git".gitRelease = {
+
rev = "f9fce4975bbad835deba6e639c21a62154dd8c14";
+
rev-version = "21.0.0-unstable-2025-06-22";
+
sha256 = "sha256-Xu9RD6R6tQDZ0kaSD7N0GTp1TcUV6BK12fobK0qPkIw=";
};
} // llvmVersions;
-1
pkgs/development/python-modules/django-formtools/default.nix
···
changelog = "https://github.com/jazzband/django-formtools/blob/master/docs/changelog.rst";
license = licenses.bsd3;
maintainers = with maintainers; [
-
greizgh
schmittlauch
];
};
···
changelog = "https://github.com/jazzband/django-formtools/blob/master/docs/changelog.rst";
license = licenses.bsd3;
maintainers = with maintainers; [
schmittlauch
];
};
-1
pkgs/development/python-modules/django-statici18n/default.nix
···
homepage = "https://github.com/zyegfryed/django-statici18n";
license = licenses.bsd3;
maintainers = with maintainers; [
-
greizgh
schmittlauch
];
};
···
homepage = "https://github.com/zyegfryed/django-statici18n";
license = licenses.bsd3;
maintainers = with maintainers; [
schmittlauch
];
};
+23 -3
pkgs/development/python-modules/etils/default.nix
···
jupyter,
mediapy,
numpy,
importlib-resources,
typing-extensions,
zipp,
absl-py,
tqdm,
dm-tree,
jax,
···
optional-dependencies = rec {
array-types = enp;
eapp = [
-
absl-py # FIXME package simple-parsing
] ++ epy;
ecolab =
[
jupyter
numpy
mediapy
]
++ enp
-
++ epy;
edc = epy;
-
enp = [ numpy ] ++ epy;
epath = [
importlib-resources
typing-extensions
zipp
] ++ epy;
epy = [ typing-extensions ];
etqdm = [
absl-py
···
etree-dm = [ dm-tree ] ++ etree;
etree-jax = [ jax ] ++ etree;
etree-tf = [ tensorflow ] ++ etree;
all =
array-types
++ eapp
···
++ edc
++ enp
++ epath
++ epy
++ etqdm
++ etree
···
jupyter,
mediapy,
numpy,
+
packaging,
+
protobuf,
+
fsspec,
importlib-resources,
typing-extensions,
zipp,
absl-py,
+
simple-parsing,
+
einops,
+
gcsfs,
+
s3fs,
tqdm,
dm-tree,
jax,
···
optional-dependencies = rec {
array-types = enp;
eapp = [
+
absl-py
+
simple-parsing
] ++ epy;
ecolab =
[
jupyter
numpy
mediapy
+
packaging
+
protobuf
]
++ enp
+
++ epy
+
++ etree;
edc = epy;
+
enp = [
+
numpy
+
einops
+
] ++ epy;
epath = [
+
fsspec
importlib-resources
typing-extensions
zipp
] ++ epy;
+
epath-gcs = [ gcsfs ] ++ epath;
+
epath-s3 = [ s3fs ] ++ epath;
epy = [ typing-extensions ];
etqdm = [
absl-py
···
etree-dm = [ dm-tree ] ++ etree;
etree-jax = [ jax ] ++ etree;
etree-tf = [ tensorflow ] ++ etree;
+
lazy-imports = ecolab;
all =
array-types
++ eapp
···
++ edc
++ enp
++ epath
+
++ epath-gcs
+
++ epath-s3
++ epy
++ etqdm
++ etree
+2 -2
pkgs/development/python-modules/fedora-messaging/default.nix
···
buildPythonPackage rec {
pname = "fedora-messaging";
-
version = "3.7.1";
pyproject = true;
src = fetchFromGitHub {
owner = "fedora-infra";
repo = "fedora-messaging";
tag = "v${version}";
-
hash = "sha256-ZITCX6MFPpQvhr3OoFT/yxOubXihrljv5hwntUOSpf4=";
};
build-system = [ poetry-core ];
···
buildPythonPackage rec {
pname = "fedora-messaging";
+
version = "3.8.0";
pyproject = true;
src = fetchFromGitHub {
owner = "fedora-infra";
repo = "fedora-messaging";
tag = "v${version}";
+
hash = "sha256-2EWeJddhD6tV5jRyr3pvWYQBfq6nq0GxeTgL6MRf/jE=";
};
build-system = [ poetry-core ];
+2 -2
pkgs/development/python-modules/guidata/default.nix
···
buildPythonPackage rec {
pname = "guidata";
-
version = "3.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "PlotPyStack";
repo = "guidata";
tag = "v${version}";
-
hash = "sha256-W3d7LGfQJ9DVngZxhnuQpoTHvXyHenaXzm7qeqi/zGQ=";
};
build-system = [
···
buildPythonPackage rec {
pname = "guidata";
+
version = "3.10.0";
pyproject = true;
src = fetchFromGitHub {
owner = "PlotPyStack";
repo = "guidata";
tag = "v${version}";
+
hash = "sha256-jVRUnP+0mPA79K23VI8/BXaCGvR2DUfyd+cXA8On34Y=";
};
build-system = [
+15 -16
pkgs/development/python-modules/requests-unixsocket2/default.nix
···
{
lib,
buildPythonPackage,
-
fetchPypi,
-
-
pbr,
-
requests,
poetry-core,
-
pytestCheckHook,
waitress,
}:
buildPythonPackage rec {
pname = "requests-unixsocket2";
-
version = "0.4.2";
pyproject = true;
-
src = fetchPypi {
-
inherit version;
-
pname = "requests_unixsocket2";
-
hash = "sha256-kpxY7MWYHz0SdmHOueyMduDwjTHFLkSrFGKsDc1VtfU=";
};
-
nativeBuildInputs = [ pbr ];
-
propagatedBuildInputs = [
requests
-
poetry-core
];
nativeCheckInputs = [
···
pythonImportsCheck = [ "requests_unixsocket" ];
-
meta = with lib; {
description = "Use requests to talk HTTP via a UNIX domain socket";
homepage = "https://gitlab.com/thelabnyc/requests-unixsocket2";
-
license = licenses.bsd0;
-
maintainers = with maintainers; [ mikut ];
};
}
···
{
lib,
buildPythonPackage,
+
fetchFromGitLab,
requests,
poetry-core,
pytestCheckHook,
+
urllib3,
waitress,
}:
buildPythonPackage rec {
pname = "requests-unixsocket2";
+
version = "1.0.0";
pyproject = true;
+
src = fetchFromGitLab {
+
owner = "thelabnyc";
+
repo = "requests-unixsocket2";
+
tag = "v${version}";
+
hash = "sha256-HD68YczUy7bexm3Rrh0OfgOux3ItSYQB9lj68p7WtnU=";
};
+
build-system = [ poetry-core ];
+
dependencies = [
requests
+
urllib3
];
nativeCheckInputs = [
···
pythonImportsCheck = [ "requests_unixsocket" ];
+
meta = {
+
changelog = "https://gitlab.com/thelabnyc/requests-unixsocket2/-/blob/${src.tag}/CHANGELOG.md";
description = "Use requests to talk HTTP via a UNIX domain socket";
homepage = "https://gitlab.com/thelabnyc/requests-unixsocket2";
+
license = lib.licenses.bsd0;
+
maintainers = with lib.maintainers; [ mikut ];
};
}
+12 -7
pkgs/development/python-modules/slack-sdk/default.nix
···
boto3,
buildPythonPackage,
fetchFromGitHub,
-
flake8,
moto,
-
psutil,
pytest-asyncio,
pytestCheckHook,
setuptools,
···
hash = "sha256-yjYpALyHSTLQSuwd6xth7nqfi3m1C9tqnWrrVRmI220=";
};
build-system = [ setuptools ];
-
dependencies = [
aiodns
aiohttp
-
aiosqlite
boto3
sqlalchemy
websocket-client
···
pythonImportsCheck = [ "slack_sdk" ];
nativeCheckInputs = [
-
flake8
moto
-
psutil
pytest-asyncio
pytestCheckHook
-
];
disabledTests = [
# Requires internet access (to slack API)
···
boto3,
buildPythonPackage,
fetchFromGitHub,
+
fetchpatch,
moto,
pytest-asyncio,
pytestCheckHook,
setuptools,
···
hash = "sha256-yjYpALyHSTLQSuwd6xth7nqfi3m1C9tqnWrrVRmI220=";
};
+
patches = [
+
(fetchpatch {
+
name = "fix-aiohttp-test_init_with_loop.patch";
+
url = "https://github.com/slackapi/python-slack-sdk/pull/1697.patch";
+
hash = "sha256-rHaJBH/Yxm3Sz/jmzc4G1pVJJXz0PL2880bz5n7w3ck=";
+
})
+
];
+
build-system = [ setuptools ];
+
optional-dependencies.optional = [
aiodns
aiohttp
boto3
sqlalchemy
websocket-client
···
pythonImportsCheck = [ "slack_sdk" ];
nativeCheckInputs = [
+
aiosqlite
moto
pytest-asyncio
pytestCheckHook
+
] ++ optional-dependencies.optional;
disabledTests = [
# Requires internet access (to slack API)
+39 -22
pkgs/development/python-modules/tensorflow-datasets/default.nix
···
buildPythonPackage,
fetchFromGitHub,
# dependencies
array-record,
-
dill,
dm-tree,
-
future,
immutabledict,
-
importlib-resources,
numpy,
promise,
protobuf,
psutil,
requests,
simple-parsing,
-
six,
tensorflow-metadata,
termcolor,
tqdm,
# tests
apache-beam,
···
click,
cloudpickle,
datasets,
ffmpeg,
imagemagick,
jax,
···
hash = "sha256-ZXaPYmj8aozfe6ygzKybId8RZ1TqPuIOSpd8XxnRHus=";
};
-
dependencies = [
-
array-record
-
dill
-
dm-tree
-
future
-
immutabledict
-
importlib-resources
-
numpy
-
promise
-
protobuf
-
psutil
-
requests
-
simple-parsing
-
six
-
tensorflow-metadata
-
termcolor
-
tqdm
-
];
pythonImportsCheck = [ "tensorflow_datasets" ];
···
click
cloudpickle
datasets
ffmpeg
imagemagick
jax
···
buildPythonPackage,
fetchFromGitHub,
+
# build system
+
setuptools,
+
# dependencies
+
absl-py,
array-record,
dm-tree,
+
etils,
immutabledict,
numpy,
promise,
protobuf,
psutil,
+
pyarrow,
requests,
simple-parsing,
tensorflow-metadata,
termcolor,
+
toml,
tqdm,
+
wrapt,
+
pythonOlder,
+
importlib-resources,
# tests
apache-beam,
···
click,
cloudpickle,
datasets,
+
dill,
ffmpeg,
imagemagick,
jax,
···
hash = "sha256-ZXaPYmj8aozfe6ygzKybId8RZ1TqPuIOSpd8XxnRHus=";
};
+
build-system = [ setuptools ];
+
+
dependencies =
+
[
+
absl-py
+
array-record
+
dm-tree
+
etils
+
immutabledict
+
numpy
+
promise
+
protobuf
+
psutil
+
pyarrow
+
requests
+
simple-parsing
+
tensorflow-metadata
+
termcolor
+
toml
+
tqdm
+
wrapt
+
]
+
++ etils.optional-dependencies.epath
+
++ etils.optional-dependencies.etree
+
++ lib.optionals (pythonOlder "3.9") [
+
importlib-resources
+
];
pythonImportsCheck = [ "tensorflow_datasets" ];
···
click
cloudpickle
datasets
+
dill
ffmpeg
imagemagick
jax
+2 -2
pkgs/development/python-modules/textual/default.nix
···
buildPythonPackage rec {
pname = "textual";
-
version = "3.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Textualize";
repo = "textual";
tag = "v${version}";
-
hash = "sha256-oI0W4KjGHmAGsPFBT2yMWDOLolNPkNOBcLv1K/+dqMc=";
};
build-system = [ poetry-core ];
···
buildPythonPackage rec {
pname = "textual";
+
version = "3.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Textualize";
repo = "textual";
tag = "v${version}";
+
hash = "sha256-mr/pzW6EhB+STtVHW1a/+CivzPINHEvvYWnCizycjeo=";
};
build-system = [ poetry-core ];
+2 -2
pkgs/development/python-modules/uiprotect/default.nix
···
buildPythonPackage rec {
pname = "uiprotect";
-
version = "7.13.0";
pyproject = true;
disabled = pythonOlder "3.10";
···
owner = "uilibs";
repo = "uiprotect";
tag = "v${version}";
-
hash = "sha256-qquFyKtGvm+115XB+i4XqaH07sHgBPTe9XUPvZR274M=";
};
build-system = [ poetry-core ];
···
buildPythonPackage rec {
pname = "uiprotect";
+
version = "7.14.1";
pyproject = true;
disabled = pythonOlder "3.10";
···
owner = "uilibs";
repo = "uiprotect";
tag = "v${version}";
+
hash = "sha256-e5VfG20hl+SGssNsLMoQ2ULJAcVS6gahNkC6XqRuXb0=";
};
build-system = [ poetry-core ];
+2 -2
pkgs/tools/misc/parallel/default.nix
···
stdenv.mkDerivation rec {
pname = "parallel";
-
version = "20250522";
src = fetchurl {
url = "mirror://gnu/parallel/parallel-${version}.tar.bz2";
-
hash = "sha256-tLKPR1+M/4u27UsDzFpnBB8Y/HP6JWkjsjGBtWr9sss=";
};
outputs = [
···
stdenv.mkDerivation rec {
pname = "parallel";
+
version = "20250622";
src = fetchurl {
url = "mirror://gnu/parallel/parallel-${version}.tar.bz2";
+
hash = "sha256-afV4zxHxsSS6PCtnOhZkHevmOus9KsTOxa1l+KU9SJs=";
};
outputs = [