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

This commit is contained in:
K900 2024-07-28 01:04:35 +03:00
commit 24076029d2
192 changed files with 4392 additions and 2157 deletions

View File

@ -15,7 +15,7 @@ permissions:
jobs:
nixos:
runs-on: ubuntu-latest
if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')"
if: "!contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
@ -76,7 +76,7 @@ jobs:
if [[ -n "$source" ]] && ! nixfmt --check ${{ env.base }}/"$source" 2>/dev/null; then
echo "Ignoring file $file because it's not formatted in the base commit"
elif ! nixfmt --check "$dest"; then
unformattedFiles+=("$file")
unformattedFiles+=("$dest")
fi
done < <(git diff -z --name-status ${{ env.baseRev }} -- '*.nix')

128
.github/workflows/check-nixf-tidy.yml vendored Normal file
View File

@ -0,0 +1,128 @@
name: Check changed Nix files with nixf-tidy (experimental)
on:
pull_request_target:
types: [opened, synchronize, reopened, edited]
permissions:
contents: read
jobs:
nixos:
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
# Fetches the merge commit and its parents
fetch-depth: 2
- name: Checking out base branch
run: |
base=$(mktemp -d)
baseRev=$(git rev-parse HEAD^1)
git worktree add "$base" "$baseRev"
echo "baseRev=$baseRev" >> "$GITHUB_ENV"
echo "base=$base" >> "$GITHUB_ENV"
- name: Get Nixpkgs revision for nixf
run: |
# pin to a commit from nixpkgs-unstable to avoid e.g. building nixf
# from staging
# This should not be a URL, because it would allow PRs to run arbitrary code in CI!
rev=$(jq -r .rev ci/pinned-nixpkgs.json)
echo "url=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
nix_path: nixpkgs=${{ env.url }}
- name: Install nixf and jq
# provided jq is incompatible with our expression
run: "nix-env -f '<nixpkgs>' -iAP nixf jq"
- name: Check that Nix files pass nixf-tidy
run: |
# Filtering error messages we don't like
nixf_wrapper(){
nixf-tidy --variable-lookup < "$1" | jq -r '
[
"sema-escaping-with"
]
as $ignored_errors|[.[]|select(.sname as $s|$ignored_errors|index($s)|not)]
'
}
failedFiles=()
# Don't report errors to file overview
# to avoid duplicates when editing title and description
if [[ "${{ github.event.action }}" == 'edited' ]] && [[ -z "${{ github.event.edited.changes.base }}" ]]; then
DONT_REPORT_ERROR=1
else
DONT_REPORT_ERROR=
fi
# TODO: Make this more parallel
# Loop through all Nix files touched by the PR
while readarray -d '' -n 2 entry && (( ${#entry[@]} != 0 )); do
type=${entry[0]}
file=${entry[1]}
case $type in
A*)
source=""
dest=$file
;;
M*)
source=$file
dest=$file
;;
C*|R*)
source=$file
read -r -d '' dest
;;
*)
echo "Ignoring file $file with type $type"
continue
esac
if [[ -n "$source" ]] && [[ "$(nixf_wrapper ${{ env.base }}/"$source")" != '[]' ]] 2>/dev/null; then
echo "Ignoring file $file because it doesn't pass nixf-tidy in the base commit"
echo # insert blank line
else
nixf_report="$(nixf_wrapper "$dest")"
if [[ "$nixf_report" != '[]' ]]; then
echo "$dest doesn't pass nixf-tidy. Reported by nixf-tidy:"
errors=$(echo "$nixf_report" | jq -r --arg dest "$dest" '
def getLCur: "line=" + (.line+1|tostring) + ",col=" + (.column|tostring);
def getRCur: "endLine=" + (.line+1|tostring) + ",endColumn=" + (.column|tostring);
def getRange: "file=\($dest)," + (.lCur|getLCur) + "," + (.rCur|getRCur);
def getBody: . as $top|(.range|getRange) + ",title="+ .sname + "::" +
(.message|sub("{}" ; ($top.args.[]|tostring)));
def getNote: "\n::notice " + (.|getBody);
def getMessage: "::error " + (.|getBody) + (if (.notes|length)>0 then
([.notes.[]|getNote]|add) else "" end);
.[]|getMessage
')
if [[ -z "$DONT_REPORT_ERROR" ]]; then
echo "$errors"
else
# just print in plain text
echo "$errors" | sed 's/^:://'
echo # add one empty line
fi
failedFiles+=("$dest")
fi
fi
done < <(git diff -z --name-status ${{ env.baseRev }} -- '*.nix')
if [[ -n "$DONT_REPORT_ERROR" ]]; then
echo "Edited the PR but didn't change the base branch, only the description/title."
echo "Not reporting errors again to avoid duplication."
echo # add one empty line
fi
if (( "${#failedFiles[@]}" > 0 )); then
echo "Some new/changed Nix files don't pass nixf-tidy."
echo "See ${{ github.event.pull_request.html_url }}/files for reported errors."
echo "If you believe this is a false positive, ping @Aleksanaa and @inclyc in this PR."
exit 1
fi

File diff suppressed because it is too large Load Diff

View File

@ -822,6 +822,12 @@
githubId = 20405311;
name = "Aksh Gupta";
};
akssri = {
email = "akssri@vakra.xyz";
github = "akssri";
githubId = 108771991;
name = "Akaya Śrīnivāsan";
};
aktaboot = {
email = "akhtaboo@protonmail.com";
github = "aktaboot";
@ -2369,6 +2375,13 @@
githubId = 164148;
name = "Ben Darwin";
};
bchmnn = {
email = "jacob.bachmann@posteo.de";
matrix = "@trilloyd:matrix.tu-berlin.de";
github = "bchmnn";
githubId = 34620799;
name = "Jacob Bachmann";
};
bdd = {
email = "bdd@mindcast.org";
github = "bdd";

View File

@ -16,6 +16,8 @@
- `hardware.display` is a new module implementing workarounds for misbehaving monitors
through setting up custom EDID files and forcing kernel/framebuffer modes.
- NixOS now has support for *automatic boot assessment* (see [here](https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/)) for detailed description of the feature) for `systemd-boot` users. Available as [boot.loader.systemd-boot.bootCounting](#opt-boot.loader.systemd-boot.bootCounting.enable).
## New Services {#sec-release-24.11-new-services}
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr), proxy server to bypass Cloudflare protection. Available as [services.flaresolverr](#opt-services.flaresolverr.enable) service.

View File

@ -15,7 +15,7 @@ in
default = "8000";
example = "127.0.0.1:8080";
type = types.str;
description = "Listen on a specific IP address and port.";
description = "Listen on a specific IP address and port or unix socket.";
};
dataDir = mkOption {

View File

@ -164,11 +164,8 @@ in
};
config = lib.mkIf cfg.enable {
services.archisteamfarm = {
# TODO: drop with 24.11
dataDir = lib.mkIf (lib.versionAtLeast config.system.stateVersion "24.05") (lib.mkDefault "/var/lib/asf");
settings.IPC = lib.mkIf (!cfg.web-ui.enable) false;
};
# TODO: drop with 24.11
services.archisteamfarm.dataDir = lib.mkIf (lib.versionAtLeast config.system.stateVersion "24.05") (lib.mkDefault "/var/lib/asf");
users = {
users.archisteamfarm = {

View File

@ -0,0 +1,38 @@
# Automatic boot assessment with systemd-boot {#sec-automatic-boot-assessment}
## Overview {#sec-automatic-boot-assessment-overview}
Automatic boot assessment (or boot-counting) is a feature of `systemd-boot` that allows for automatically detecting invalid boot entries.
When the feature is active, each boot entry has an associated counter with a user defined number of trials. Whenever `systemd-boot` boots an entry, its counter is decreased by one, ultimately being marked as *bad* if the counter ever reaches zero. However, if an entry is successfully booted, systemd will permanently mark it as *good* and remove the counter altogether. Whenever an entry is marked as *bad*, it is sorted last in the `systemd-boot` menu.
A complete explanation of how that feature works can be found [here](https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/).
## Enabling the feature {#sec-automatic-boot-assessment-enable}
The feature can be enabled by toogling the [boot.loader.systemd-boot.bootCounting](#opt-boot.loader.systemd-boot.bootCounting.enable) option.
## The boot-complete.target unit {#sec-automatic-boot-assessment-boot-complete-target}
A *successful boot* for an entry is defined in terms of the `boot-complete.target` synchronisation point. It is up to the user to schedule all necessary units for the machine to be considered successfully booted before that synchronisation point.
For example, if you are running `docker` on a machine and you want to be sure that a *good* entry is an entry where docker is started successfully.
A configuration for that NixOS machine could look like that:
```
boot.loader.systemd-boot.bootCounting.enable = true;
services.docker.enable = true;
systemd.services.docker = {
before = [ "boot-complete.target" ];
wantedBy = [ "boot-complete.target" ];
unitConfig.FailureAction = "reboot";
};
```
The systemd service type must be of type `notify` or `oneshot` for systemd to dectect the startup error properly.
## Interaction with specialisations {#sec-automatic-boot-assessment-specialisations}
When the boot-counting feature is enabled, `systemd-boot` will still try the boot entries in the same order as they are displayed in the boot menu. This means that the specialisations of a given generation will be tried directly after that generation, but that behavior is customizable with the [boot.loader.systemd-boot.sortKey](#opt-boot.loader.systemd-boot.sortKey) option.
## Limitations {#sec-automatic-boot-assessment-limitations}
This feature has to be used wisely to not risk any data integrity issues. Rollbacking into past generations can sometimes be dangerous, for example if some of the services may have undefined behaviors in the presence of unrecognized data migrations from future versions of themselves.

View File

@ -12,8 +12,9 @@ import subprocess
import sys
import warnings
import json
from typing import NamedTuple, Any
from typing import NamedTuple, Any, Type
from dataclasses import dataclass
from pathlib import Path
# These values will be replaced with actual values during the package build
EFI_SYS_MOUNT_POINT = "@efiSysMountPoint@"
@ -32,6 +33,8 @@ CAN_TOUCH_EFI_VARIABLES = "@canTouchEfiVariables@"
GRACEFUL = "@graceful@"
COPY_EXTRA_FILES = "@copyExtraFiles@"
CHECK_MOUNTPOINTS = "@checkMountpoints@"
BOOT_COUNTING_TRIES = "@bootCountingTries@"
BOOT_COUNTING = "@bootCounting@" == "True"
@dataclass
class BootSpec:
@ -46,6 +49,104 @@ class BootSpec:
sortKey: str # noqa: N815
initrdSecrets: str | None = None # noqa: N815
@dataclass
class Entry:
profile: str | None
generation_number: int
specialisation: str | None
@classmethod
def from_path(cls: Type["Entry"], path: Path) -> "Entry":
filename = path.name
# Matching nixos-$profile-generation-*.conf
rex_profile = re.compile(r"^nixos-(.*)-generation-.*\.conf$")
# Matching nixos*-generation-$number*.conf
rex_generation = re.compile(r"^nixos.*-generation-([0-9]+).*\.conf$")
# Matching nixos*-generation-$number-specialisation-$specialisation_name*.conf
rex_specialisation = re.compile(r"^nixos.*-generation-([0-9]+)-specialisation-([a-zA-Z0-9]+).*\.conf$")
profile = rex_profile.sub(r"\1", filename) if rex_profile.match(filename) else None
specialisation = rex_specialisation.sub(r"\2", filename) if rex_specialisation.match(filename) else None
try:
generation_number = int(rex_generation.sub(r"\1", filename))
except ValueError:
raise
return cls(profile, generation_number, specialisation)
@dataclass
class DiskEntry:
entry: Entry
default: bool
counters: str | None
title: str | None
description: str | None
kernel: str
initrd: str
kernel_params: str | None
machine_id: str | None
sort_key: str
@classmethod
def from_path(cls: Type["DiskEntry"], path: Path) -> "DiskEntry":
entry = Entry.from_path(path)
data = path.read_text().splitlines()
if '' in data:
data.remove('')
entry_map = dict(lines.split(' ', 1) for lines in data)
assert "linux" in entry_map
assert "initrd" in entry_map
filename = path.name
# Matching nixos*-generation-*$counters.conf
rex_counters = re.compile(r"^nixos.*-generation-.*(\+\d(-\d)?)\.conf$")
counters = rex_counters.sub(r"\1", filename) if rex_counters.match(filename) else None
disk_entry = cls(
entry=entry,
default=(entry_map.get("sort-key") == "default"),
counters=counters,
title=entry_map.get("title"),
description=entry_map.get("version"),
kernel=entry_map["linux"],
initrd=entry_map["initrd"],
kernel_params=entry_map.get("options"),
machine_id=entry_map.get("machine-id"),
sort_key=entry_map.get("sort_key", "nixos"))
return disk_entry
def write(self, sorted_first: str) -> None:
# Compute a sort-key sorted before sorted_first
# This will compute something like: nixos -> nixor-default to make sure we come before other nixos entries,
# while allowing users users can pre-pend their own entries before.
default_sort_key = sorted_first[:-1] + chr(ord(sorted_first[-1])-1) + "-default"
tmp_path = self.path.with_suffix(".tmp")
with tmp_path.open('w') as f:
# We use "sort-key" to sort the default generation first.
# The "default" string is sorted before "non-default" (alphabetically)
boot_entry = [
f"title {self.title}" if self.title is not None else None,
f"version {self.description}" if self.description is not None else None,
f"linux {self.kernel}",
f"initrd {self.initrd}",
f"options {self.kernel_params}" if self.kernel_params is not None else None,
f"machine-id {self.machine_id}" if self.machine_id is not None else None,
f"sort-key {default_sort_key if self.default else self.sort_key}"
]
f.write("\n".join(filter(None, boot_entry)))
f.flush()
os.fsync(f.fileno())
tmp_path.rename(self.path)
@property
def path(self) -> Path:
pieces = [
"nixos",
self.entry.profile or None,
"generation",
str(self.entry.generation_number),
f"specialisation-{self.entry.specialisation}" if self.entry.specialisation else None,
]
prefix = "-".join(p for p in pieces if p)
return Path(f"{BOOT_MOUNT_POINT}/loader/entries/{prefix}{self.counters if self.counters else ''}.conf")
libc = ctypes.CDLL("libc.so.6")
@ -78,30 +179,14 @@ def system_dir(profile: str | None, generation: int, specialisation: str | None)
else:
return d
BOOT_ENTRY = """title {title}
sort-key {sort_key}
version Generation {generation} {description}
linux {kernel}
initrd {initrd}
options {kernel_params}
"""
def generation_conf_filename(profile: str | None, generation: int, specialisation: str | None) -> str:
pieces = [
"nixos",
profile or None,
"generation",
str(generation),
f"specialisation-{specialisation}" if specialisation else None,
]
return "-".join(p for p in pieces if p) + ".conf"
def write_loader_conf(profile: str | None, generation: int, specialisation: str | None) -> None:
with open(f"{LOADER_CONF}.tmp", 'w') as f:
def write_loader_conf(profile: str | None) -> None:
with open(f"{EFI_SYS_MOUNT_POINT}/loader/loader.conf.tmp", 'w') as f:
if TIMEOUT != "":
f.write(f"timeout {TIMEOUT}\n")
f.write("default %s\n" % generation_conf_filename(profile, generation, specialisation))
if profile:
f.write("default nixos-%s-generation-*\n" % profile)
else:
f.write("default nixos-generation-*\n")
if not EDITOR:
f.write("editor 0\n")
f.write(f"console-mode {CONSOLE_MODE}\n")
@ -109,6 +194,19 @@ def write_loader_conf(profile: str | None, generation: int, specialisation: str
os.fsync(f.fileno())
os.rename(f"{LOADER_CONF}.tmp", LOADER_CONF)
def scan_entries() -> list[DiskEntry]:
"""
Scan all entries in $ESP/loader/entries/*
Does not support Type 2 entries as we do not support them for now.
Returns a generator of Entry.
"""
entries = []
for path in Path(f"{EFI_SYS_MOUNT_POINT}/loader/entries/").glob("nixos*-generation-[1-9]*.conf"):
try:
entries.append(DiskEntry.from_path(path))
except ValueError:
continue
return entries
def get_bootspec(profile: str | None, generation: int) -> BootSpec:
system_directory = system_dir(profile, generation, None)
@ -151,8 +249,14 @@ def copy_from_file(file: str, dry_run: bool = False) -> str:
copy_if_not_exists(store_file_path, f"{BOOT_MOUNT_POINT}{efi_file_path}")
return efi_file_path
def write_entry(profile: str | None, generation: int, specialisation: str | None,
machine_id: str, bootspec: BootSpec, current: bool) -> None:
def write_entry(profile: str | None,
generation: int,
specialisation: str | None,
machine_id: str,
bootspec: BootSpec,
entries: list[DiskEntry],
sorted_first: str,
current: bool) -> None:
if specialisation:
bootspec = bootspec.specialisations[specialisation]
kernel = copy_from_file(bootspec.kernel)
@ -175,29 +279,32 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None
f'for "{title} - Configuration {generation}", an older generation', file=sys.stderr)
print("note: this is normal after having removed "
"or renamed a file in `boot.initrd.secrets`", file=sys.stderr)
entry_file = f"{BOOT_MOUNT_POINT}/loader/entries/%s" % (
generation_conf_filename(profile, generation, specialisation))
tmp_path = "%s.tmp" % (entry_file)
kernel_params = "init=%s " % bootspec.init
kernel_params = kernel_params + " ".join(bootspec.kernelParams)
build_time = int(os.path.getctime(system_dir(profile, generation, specialisation)))
build_date = datetime.datetime.fromtimestamp(build_time).strftime('%F')
counters = f"+{BOOT_COUNTING_TRIES}" if BOOT_COUNTING else ""
entry = Entry(profile, generation, specialisation)
# We check if the entry we are writing is already on disk
# and we update its "default entry" status
for entry_on_disk in entries:
if entry == entry_on_disk.entry:
entry_on_disk.default = current
entry_on_disk.write(sorted_first)
return
with open(tmp_path, 'w') as f:
f.write(BOOT_ENTRY.format(title=title,
sort_key=bootspec.sortKey,
generation=generation,
kernel=kernel,
initrd=initrd,
kernel_params=kernel_params,
description=f"{bootspec.label}, built on {build_date}"))
if machine_id is not None:
f.write("machine-id %s\n" % machine_id)
f.flush()
os.fsync(f.fileno())
os.rename(tmp_path, entry_file)
DiskEntry(
entry=entry,
title=title,
kernel=kernel,
initrd=initrd,
counters=counters,
kernel_params=kernel_params,
machine_id=machine_id,
description=f"Generation {generation} {bootspec.label}, built on {build_date}",
sort_key=bootspec.sortKey,
default=current
).write(sorted_first)
def get_generations(profile: str | None = None) -> list[SystemIdentifier]:
gen_list = run(
@ -225,30 +332,19 @@ def get_generations(profile: str | None = None) -> list[SystemIdentifier]:
return configurations[-configurationLimit:]
def remove_old_entries(gens: list[SystemIdentifier]) -> None:
rex_profile = re.compile(r"^" + re.escape(BOOT_MOUNT_POINT) + r"/loader/entries/nixos-(.*)-generation-.*\.conf$")
rex_generation = re.compile(r"^" + re.escape(BOOT_MOUNT_POINT) + r"/loader/entries/nixos.*-generation-([0-9]+)(-specialisation-.*)?\.conf$")
def remove_old_entries(gens: list[SystemIdentifier], disk_entries: list[DiskEntry]) -> None:
known_paths = []
for gen in gens:
bootspec = get_bootspec(gen.profile, gen.generation)
known_paths.append(copy_from_file(bootspec.kernel, True))
known_paths.append(copy_from_file(bootspec.initrd, True))
for path in glob.iglob(f"{BOOT_MOUNT_POINT}/loader/entries/nixos*-generation-[1-9]*.conf"):
if rex_profile.match(path):
prof = rex_profile.sub(r"\1", path)
else:
prof = None
try:
gen_number = int(rex_generation.sub(r"\1", path))
except ValueError:
continue
if (prof, gen_number, None) not in gens:
os.unlink(path)
for path in glob.iglob(f"{BOOT_MOUNT_POINT}/{NIXOS_DIR}/*"):
for disk_entry in disk_entries:
if (disk_entry.entry.profile, disk_entry.entry.generation_number, None) not in gens:
os.unlink(disk_entry.path)
for path in glob.iglob(f"{EFI_SYS_MOUNT_POINT}/efi/nixos/*"):
if path not in known_paths and not os.path.isdir(path):
os.unlink(path)
def cleanup_esp() -> None:
for path in glob.iglob(f"{EFI_SYS_MOUNT_POINT}/loader/entries/nixos*"):
os.unlink(path)
@ -267,7 +363,7 @@ def get_profiles() -> list[str]:
def install_bootloader(args: argparse.Namespace) -> None:
try:
with open("/etc/machine-id") as machine_file:
machine_id = machine_file.readlines()[0]
machine_id = machine_file.readlines()[0].strip()
except IOError as e:
if e.errno != errno.ENOENT:
raise
@ -351,18 +447,32 @@ def install_bootloader(args: argparse.Namespace) -> None:
gens = get_generations()
for profile in get_profiles():
gens += get_generations(profile)
remove_old_entries(gens)
entries = scan_entries()
remove_old_entries(gens, entries)
# Compute the sort-key that will be sorted first.
sorted_first = ""
for gen in gens:
try:
bootspec = get_bootspec(gen.profile, gen.generation)
if bootspec.sortKey < sorted_first or sorted_first == "":
sorted_first = bootspec.sortKey
except OSError as e:
# See https://github.com/NixOS/nixpkgs/issues/114552
if e.errno == errno.EINVAL:
profile = f"profile '{gen.profile}'" if gen.profile else "default profile"
print("ignoring {} in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr)
else:
raise e
for gen in gens:
try:
bootspec = get_bootspec(gen.profile, gen.generation)
is_default = os.path.dirname(bootspec.init) == args.default_config
write_entry(*gen, machine_id, bootspec, current=is_default)
write_entry(*gen, machine_id, bootspec, entries, sorted_first, current=is_default)
for specialisation in bootspec.specialisations.keys():
write_entry(gen.profile, gen.generation, specialisation, machine_id, bootspec, current=is_default)
write_entry(gen.profile, gen.generation, specialisation, machine_id, bootspec, entries, sorted_first, current=(is_default and bootspec.specialisations[specialisation].sortKey == bootspec.sortKey))
if is_default:
write_loader_conf(*gen)
write_loader_conf(gen.profile)
except OSError as e:
# See https://github.com/NixOS/nixpkgs/issues/114552
if e.errno == errno.EINVAL:

View File

@ -80,6 +80,8 @@ let
${pkgs.coreutils}/bin/install -D $empty_file "${bootMountPoint}/${nixosDir}/.extra-files/loader/entries/"${escapeShellArg n}
'') cfg.extraEntries)}
'';
bootCountingTries = cfg.bootCounting.tries;
bootCounting = if cfg.bootCounting.enable then "True" else "False";
};
finalSystemdBootBuilder = pkgs.writeScript "install-systemd-boot.sh" ''
@ -89,7 +91,10 @@ let
'';
in {
meta.maintainers = with lib.maintainers; [ julienmalka ];
meta = {
maintainers = with lib.maintainers; [ julienmalka ];
doc = ./boot-counting.md;
};
imports =
[ (mkRenamedOptionModule [ "boot" "loader" "gummiboot" "enable" ] [ "boot" "loader" "systemd-boot" "enable" ])
@ -319,6 +324,15 @@ in {
'';
};
bootCounting = {
enable = mkEnableOption "automatic boot assessment";
tries = mkOption {
default = 3;
type = types.int;
description = "number of tries each entry should start with";
};
};
};
config = mkIf cfg.enable {

View File

@ -107,6 +107,10 @@ let
"systemd-rfkill.service"
"systemd-rfkill.socket"
# Boot counting
"boot-complete.target"
] ++ lib.optional config.boot.loader.systemd-boot.bootCounting.enable "systemd-bless-boot.service" ++ [
# Hibernate / suspend.
"hibernate.target"
"suspend.target"

View File

@ -13,6 +13,8 @@ let
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
environment.systemPackages = [ pkgs.efibootmgr ];
# Needed for machine-id to be persisted between reboots
environment.etc."machine-id".text = "00000000000000000000000000000000";
};
commonXbootldr = { config, lib, pkgs, ... }:
@ -81,7 +83,7 @@ let
os.environ['NIX_DISK_IMAGE'] = tmp_disk_image.name
'';
in
{
rec {
basic = makeTest {
name = "systemd-boot";
meta.maintainers = with pkgs.lib.maintainers; [ danielfullmer julienmalka ];
@ -93,7 +95,8 @@ in
machine.wait_for_unit("multi-user.target")
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.succeed("grep 'sort-key nixos' /boot/loader/entries/nixos-generation-1.conf")
# our sort-key will uses r to sort before nixos
machine.succeed("grep 'sort-key nixor-default' /boot/loader/entries/nixos-generation-1.conf")
# Ensure we actually booted using systemd-boot
# Magic number is the vendor UUID used by systemd-boot.
@ -401,15 +404,15 @@ in
'';
};
garbage-collect-entry = makeTest {
name = "systemd-boot-garbage-collect-entry";
garbage-collect-entry = { withBootCounting ? false, ... }: makeTest {
name = "systemd-boot-garbage-collect-entry" + optionalString withBootCounting "-with-boot-counting";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes = {
inherit common;
machine = { pkgs, nodes, ... }: {
imports = [ common ];
boot.loader.systemd-boot.bootCounting.enable = withBootCounting;
# These are configs for different nodes, but we'll use them here in `machine`
system.extraDependencies = [
nodes.common.system.build.toplevel
@ -424,8 +427,12 @@ in
''
machine.succeed("nix-env -p /nix/var/nix/profiles/system --set ${baseSystem}")
machine.succeed("nix-env -p /nix/var/nix/profiles/system --delete-generations 1")
# At this point generation 1 has already been marked as good so we reintroduce counters artificially
${optionalString withBootCounting ''
machine.succeed("mv /boot/loader/entries/nixos-generation-1.conf /boot/loader/entries/nixos-generation-1+3.conf")
''}
machine.succeed("${baseSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.fail("test -e /boot/loader/entries/nixos-generation-1*")
machine.succeed("test -e /boot/loader/entries/nixos-generation-2.conf")
'';
};
@ -445,4 +452,138 @@ in
machine.wait_for_unit("multi-user.target")
'';
};
# Check that we are booting the default entry and not the generation with largest version number
defaultEntry = { withBootCounting ? false, ... }: makeTest {
name = "systemd-boot-default-entry" + optionalString withBootCounting "-with-boot-counting";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes = {
machine = { pkgs, lib, nodes, ... }: {
imports = [ common ];
system.extraDependencies = [ nodes.other_machine.system.build.toplevel ];
boot.loader.systemd-boot.bootCounting.enable = withBootCounting;
};
other_machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.bootCounting.enable = withBootCounting;
environment.systemPackages = [ pkgs.hello ];
};
};
testScript = { nodes, ... }:
let
orig = nodes.machine.system.build.toplevel;
other = nodes.other_machine.system.build.toplevel;
in
''
orig = "${orig}"
other = "${other}"
def check_current_system(system_path):
machine.succeed(f'test $(readlink -f /run/current-system) = "{system_path}"')
check_current_system(orig)
# Switch to other configuration
machine.succeed("nix-env -p /nix/var/nix/profiles/system --set ${other}")
machine.succeed(f"{other}/bin/switch-to-configuration boot")
# Rollback, default entry is now generation 1
machine.succeed("nix-env -p /nix/var/nix/profiles/system --rollback")
machine.succeed(f"{orig}/bin/switch-to-configuration boot")
machine.shutdown()
machine.start()
machine.wait_for_unit("multi-user.target")
# Check that we booted generation 1 (default)
# even though generation 2 comes first in alphabetical order
check_current_system(orig)
'';
};
bootCounting =
let
baseConfig = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.bootCounting.enable = true;
boot.loader.systemd-boot.bootCounting.trials = 2;
};
in
makeTest {
name = "systemd-boot-counting";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes = {
machine = { pkgs, lib, nodes, ... }: {
imports = [ baseConfig ];
system.extraDependencies = [ nodes.bad_machine.system.build.toplevel ];
};
bad_machine = { pkgs, lib, ... }: {
imports = [ baseConfig ];
systemd.services."failing" = {
script = "exit 1";
requiredBy = [ "boot-complete.target" ];
before = [ "boot-complete.target" ];
serviceConfig.Type = "oneshot";
};
};
};
testScript = { nodes, ... }:
let
orig = nodes.machine.system.build.toplevel;
bad = nodes.bad_machine.system.build.toplevel;
in
''
orig = "${orig}"
bad = "${bad}"
def check_current_system(system_path):
machine.succeed(f'test $(readlink -f /run/current-system) = "{system_path}"')
# Ensure we booted using an entry with counters enabled
machine.succeed(
"test -e /sys/firmware/efi/efivars/LoaderBootCountPath-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
)
# systemd-bless-boot should have already removed the "+2" suffix from the boot entry
machine.wait_for_unit("systemd-bless-boot.service")
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
check_current_system(orig)
# Switch to bad configuration
machine.succeed("nix-env -p /nix/var/nix/profiles/system --set ${bad}")
machine.succeed(f"{bad}/bin/switch-to-configuration boot")
# Ensure new bootloader entry has initialized counter
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.succeed("test -e /boot/loader/entries/nixos-generation-2+2.conf")
machine.shutdown()
machine.start()
machine.wait_for_unit("multi-user.target")
check_current_system(bad)
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.succeed("test -e /boot/loader/entries/nixos-generation-2+1-1.conf")
machine.shutdown()
machine.start()
machine.wait_for_unit("multi-user.target")
check_current_system(bad)
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.succeed("test -e /boot/loader/entries/nixos-generation-2+0-2.conf")
machine.shutdown()
# Should boot back into original configuration
machine.start()
check_current_system(orig)
machine.wait_for_unit("multi-user.target")
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.succeed("test -e /boot/loader/entries/nixos-generation-2+0-2.conf")
machine.shutdown()
'';
};
defaultEntryWithBootCounting = defaultEntry { withBootCounting = true; };
garbageCollectEntryWithBootCounting = garbage-collect-entry { withBootCounting = true; };
}

View File

@ -19,6 +19,7 @@
, pango
, pipewire
, pulseaudio
, vulkan-loader
, wrapGAppsHook3
, xdg-utils
, xorg
@ -27,11 +28,11 @@
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "5.1.9";
version = "5.2";
src = fetchurl {
url = "https://www.bitwig.com/dl/Bitwig%20Studio/${version}/installer_linux/";
hash = "sha256-J5kLqXCMnGb0ZMhES6PQIPjN51ptlBGj4Fy8qSzJ6Qg=";
hash = "sha256:0cnjwgjbpyrb4pd0841zbhy84ps7gkmq3j148ga826nrxnw082pi";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook3 ];
@ -66,6 +67,7 @@ stdenv.mkDerivation rec {
pipewire
pulseaudio
stdenv.cc.cc.lib
vulkan-loader
xcbutil
xcbutilwm
zlib

View File

@ -11,7 +11,7 @@
}:
stdenv.mkDerivation rec {
version = "2.3.0";
version = "2.3.1";
pname = "jacktrip";
src = fetchFromGitHub {
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
repo = "jacktrip";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-MUP+8Hjrj95D5SONIEsweB5j+kgEhLEWTKWBlEWLt94=";
hash = "sha256-p5NXGmWIzi8M177bPzMKfXMmyMgS1qZuWHdCtBBLeDA=";
};
preConfigure = ''

View File

@ -11,6 +11,7 @@
, qmake
, qtbase
, qtsvg
, qtwayland
, stdenv
, usePipewire ? true
, usePulseaudio ? false
@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
libarchive
qtbase
qtsvg
qtwayland
] ++ lib.optionals usePipewire [
pipewire
] ++ lib.optionals usePulseaudio [

View File

@ -2,6 +2,7 @@
, stdenv
, fetchFromGitHub
, callPackage
, fetchpatch
# Required build tools
, cmake
@ -69,9 +70,16 @@ in stdenv.mkDerivation rec {
outputs = [ "out" "doc" ];
patches = [
# Hardcode system installed banks & presets
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/zynaddsubfx/zynaddsubfx/pull/295.patch";
hash = "sha256-UN62i9/JBs7uWTmHDKk3lkAxUXsVmIs6+6avOcL1NBg=";
})
];
postPatch = ''
patchShebangs rtosc/test/test-port-checker.rb src/Tests/check-ports.rb
substituteInPlace src/Misc/Config.cpp --replace /usr $out
'';
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
@ -87,7 +95,11 @@ in stdenv.mkDerivation rec {
++ lib.optionals (guiModule == "ntk") [ ntk cairo libXpm ]
++ lib.optionals (guiModule == "zest") [ libGL libX11 ];
cmakeFlags = [ "-DGuiModule=${guiModule}" ]
cmakeFlags =
[
"-DGuiModule=${guiModule}"
"-DZYN_DATADIR=${placeholder "out"}/share/zynaddsubfx"
]
# OSS library is included in glibc.
# Must explicitly disable if support is not wanted.
++ lib.optional (!ossSupport) "-DOssEnable=OFF"

View File

@ -12,7 +12,7 @@
"new": "vim-fern"
},
"gina-vim": {
"date": "2024-07-18",
"date": "2024-07-27",
"new": "vim-gina"
},
"gist-vim": {
@ -60,7 +60,7 @@
"new": "vim-suda"
},
"vim-fsharp": {
"date": "2024-07-18",
"date": "2024-07-27",
"new": "zarchive-vim-fsharp"
},
"vim-jade": {

File diff suppressed because it is too large Load Diff

View File

@ -27,12 +27,12 @@
};
angular = buildGrammar {
language = "angular";
version = "0.0.0+rev=b96a0d1";
version = "0.0.0+rev=31182d4";
src = fetchFromGitHub {
owner = "dlvandenberg";
repo = "tree-sitter-angular";
rev = "b96a0d1605da3492f6474245098b6f0c503e596d";
hash = "sha256-M2eDOlxHb0bjm3SfjE84M9ByVevApMqfoauKYdDG6s4=";
rev = "31182d43b062a350d4bd2449f2fc0d5654972be9";
hash = "sha256-E+MrOQJIUsAGPMIIM43gROs1yIiokCHXJB2pmWGe0i0=";
};
meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
};
@ -127,12 +127,12 @@
};
beancount = buildGrammar {
language = "beancount";
version = "0.0.0+rev=c25f803";
version = "0.0.0+rev=384c55e";
src = fetchFromGitHub {
owner = "polarmutex";
repo = "tree-sitter-beancount";
rev = "c25f8034c977681653a8acd541c8b4877a58f474";
hash = "sha256-j+TyGT5FycEj+E6si7GSKUauvXNvl1L2NEw98jU7jns=";
rev = "384c55ede2a1f13e83d8e18dbef8f11304c379c2";
hash = "sha256-OEfiJWF3+wxwaqk4kyMSvJG9c6NbyphHG2hnf7fCiOQ=";
};
meta.homepage = "https://github.com/polarmutex/tree-sitter-beancount";
};
@ -193,12 +193,12 @@
};
c = buildGrammar {
language = "c";
version = "0.0.0+rev=deca017";
version = "0.0.0+rev=be23d2c";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c";
rev = "deca017a554045b4c203e7ddff39ae64ff05e071";
hash = "sha256-uvvARjD4729GO8vpmrhAzheEQ3oz7LYmF8awdyS2/Rw=";
rev = "be23d2c9d8e5b550e713ef0f86126a248462ca6e";
hash = "sha256-6R9bx0UMjln8W1DrHG1AyA+Ziq9XGuLti2m/bC6lPgg=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
};
@ -325,12 +325,12 @@
};
cpp = buildGrammar {
language = "cpp";
version = "0.0.0+rev=7ce8946";
version = "0.0.0+rev=0b4aa47";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-cpp";
rev = "7ce8946cae4bb25adebe5b50394f702beb007026";
hash = "sha256-haU0fXNwYh3YaP8VMY1krRHxrGvNkDV4hMcxp5z9TVA=";
rev = "0b4aa47f07d958a49260aadc87e8474b03897c23";
hash = "sha256-z2cG/woWbpvLJdmlN7ZuPiDwWhHnmwr3speMDFz3cEk=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
};
@ -359,12 +359,12 @@
};
cuda = buildGrammar {
language = "cuda";
version = "0.0.0+rev=b93070b";
version = "0.0.0+rev=07f2f15";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "b93070b5a91ee9537d45e59d741737b1289c5dcc";
hash = "sha256-IINYPEysz5bI2cmFY6eNCR86b0OfBIqws5a61UxCfg4=";
rev = "07f2f157d484a27dc91c04cc116f94f6fd4fc654";
hash = "sha256-GWiSQzMHtXd0EESjC1a0l0O8Q7zx3gjvNy8YZw/U/Bk=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
@ -447,12 +447,12 @@
};
djot = buildGrammar {
language = "djot";
version = "0.0.0+rev=87bf828";
version = "0.0.0+rev=886601b";
src = fetchFromGitHub {
owner = "treeman";
repo = "tree-sitter-djot";
rev = "87bf82874c86dcf563f5521069d603ed50e5f0cc";
hash = "sha256-abAEVbS9hqc1uHx6NxXRBA2SLrCL3gBBPLgAK9Tz3G4=";
rev = "886601b67d1f4690173a4925c214343c30704d32";
hash = "sha256-uh41umECO8mIgML4JV5yz2iaNy6h5uLQWodcXvhI/MM=";
};
meta.homepage = "https://github.com/treeman/tree-sitter-djot";
};
@ -526,12 +526,12 @@
};
editorconfig = buildGrammar {
language = "editorconfig";
version = "0.0.0+rev=c5f8368";
version = "0.0.0+rev=fd0d64d";
src = fetchFromGitHub {
owner = "ValdezFOmar";
repo = "tree-sitter-editorconfig";
rev = "c5f83685a64117872ae750ce14333a7a1dddcf0b";
hash = "sha256-kmQ3+QTwWd/92wL6YS6UchI819eLnD9YfT5TPANvCXA=";
rev = "fd0d64d2fc91eab903bed4c11ce280b62e46f16e";
hash = "sha256-7Q8+XEGWqOnkLW7b9Vnubr2LhvdTK48at45k/Gsm9Us=";
};
meta.homepage = "https://github.com/ValdezFOmar/tree-sitter-editorconfig";
};
@ -614,12 +614,12 @@
};
erlang = buildGrammar {
language = "erlang";
version = "0.0.0+rev=19ca500";
version = "0.0.0+rev=8f41b58";
src = fetchFromGitHub {
owner = "WhatsApp";
repo = "tree-sitter-erlang";
rev = "19ca500fa5a17ab58dc18aa03b50e2db305e7a8a";
hash = "sha256-5WUuy8+O9yujzoAjO2sNGM1+IEnaS7HEphTKcvFJJNo=";
rev = "8f41b588fe38b981156651ef56b192ed3d158efd";
hash = "sha256-B/SF86W+0t6rVzo/QpQ6QQPsD7pH5dHGLCqxzoIhNTg=";
};
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
};
@ -713,12 +713,12 @@
};
fortran = buildGrammar {
language = "fortran";
version = "0.0.0+rev=dde9829";
version = "0.0.0+rev=6b63343";
src = fetchFromGitHub {
owner = "stadelmanma";
repo = "tree-sitter-fortran";
rev = "dde9829554b831cf6cbf927294f22dfb9a8f0419";
hash = "sha256-QvEKisBE4Qrnv1CjeCMhIt/L1BdXEJLCprw/hJoAE20=";
rev = "6b633433fb3f132f21250cf8e8be76d5a6389b7e";
hash = "sha256-0P3fY7DVnBqzBIg+e5E5i80jZl/GEYO8SIdxf/ZdkfI=";
};
meta.homepage = "https://github.com/stadelmanma/tree-sitter-fortran";
};
@ -790,12 +790,12 @@
};
git_rebase = buildGrammar {
language = "git_rebase";
version = "0.0.0+rev=274e27e";
version = "0.0.0+rev=bff4b66";
src = fetchFromGitHub {
owner = "the-mikedavis";
repo = "tree-sitter-git-rebase";
rev = "274e27ea0f09371122ab55b8a812a32d6ef644e8";
hash = "sha256-W0aDOZ2uPXHGAbt/p3slyotw4dPsmgADnRAH3e9NT1Y=";
rev = "bff4b66b44b020d918d67e2828eada1974a966aa";
hash = "sha256-k4C7dJUkvQxIxcaoVmG2cBs/CeYzVqrip2+2mRvHtZc=";
};
meta.homepage = "https://github.com/the-mikedavis/tree-sitter-git-rebase";
};
@ -834,12 +834,12 @@
};
gleam = buildGrammar {
language = "gleam";
version = "0.0.0+rev=02a17bf";
version = "0.0.0+rev=426e670";
src = fetchFromGitHub {
owner = "gleam-lang";
repo = "tree-sitter-gleam";
rev = "02a17bf9d0553406268cdbf466d57808ae712bf3";
hash = "sha256-rZPe7rrnPa4QGnFUjwoaj/7HJzNDSigc7w4gJEFXZD4=";
rev = "426e67087fd62be5f4533581b5916b2cf010fb5b";
hash = "sha256-SI3/gUksiRgUpCabsll6g0mUcm5iiNMTzxlxQxCujpY=";
};
meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
};
@ -856,12 +856,12 @@
};
glsl = buildGrammar {
language = "glsl";
version = "0.0.0+rev=3736dfc";
version = "0.0.0+rev=ddc3137";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-glsl";
rev = "3736dfc811c07fa749ca818f94c9a3977734dd26";
hash = "sha256-BIEM9i7GItQZmOcJDMHm2yY+4xeL5x9BzZORtYOxr28=";
rev = "ddc3137a2d775aca93084ff997fa13cc1691058a";
hash = "sha256-q1xL3/4W442z1wjYL0HQNdz4sPZqqEijyLSvECHugXw=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
};
@ -988,12 +988,12 @@
};
groovy = buildGrammar {
language = "groovy";
version = "0.0.0+rev=f361500";
version = "0.0.0+rev=3912291";
src = fetchFromGitHub {
owner = "murtaza64";
repo = "tree-sitter-groovy";
rev = "f3615006429251a966d7452bd46a0171364bcb7b";
hash = "sha256-n3haDlldeFk9FzHY7k5zhzDNHA6TzjncZpsQuHl/Q00=";
rev = "391229139d9f79879ccc84cb271889c9240c28a1";
hash = "sha256-AtA6249CHaOYQGgYfaECFESmJi9Wq+iFC58rHSh5x9M=";
};
meta.homepage = "https://github.com/murtaza64/tree-sitter-groovy";
};
@ -1065,12 +1065,12 @@
};
heex = buildGrammar {
language = "heex";
version = "0.0.0+rev=b5ad6e3";
version = "0.0.0+rev=6dd0303";
src = fetchFromGitHub {
owner = "connorlay";
repo = "tree-sitter-heex";
rev = "b5ad6e34eea18a15bbd1466ca707a17f9bff7b93";
hash = "sha256-o0ArFfBJTrEQVXVet+AIDPCB/b9KKvOYrrtMGyLgtM8=";
rev = "6dd0303acf7138dd2b9b432a229e16539581c701";
hash = "sha256-VakMZtWQ/h7dNy5ehk2Bh14a5s878AUgwY3Ipq8tPec=";
};
meta.homepage = "https://github.com/connorlay/tree-sitter-heex";
};
@ -1198,12 +1198,12 @@
};
idl = buildGrammar {
language = "idl";
version = "0.0.0+rev=556f287";
version = "0.0.0+rev=1a6683f";
src = fetchFromGitHub {
owner = "cathaysia";
repo = "tree-sitter-idl";
rev = "556f2878db1c26da33a921df8226f3268fadef75";
hash = "sha256-WXF+Opb5GrMqRErJvmPgzTrVnHfstfZKZ+4tWbULLGo=";
rev = "1a6683f6809f7bc630f10fcad7d9ac6471deb706";
hash = "sha256-eDoERNfSMzpbccX438H2c1AWQMXNm9tJBnCREYqMvic=";
};
meta.homepage = "https://github.com/cathaysia/tree-sitter-idl";
};
@ -1242,12 +1242,12 @@
};
janet_simple = buildGrammar {
language = "janet_simple";
version = "0.0.0+rev=3b08641";
version = "0.0.0+rev=ea842cb";
src = fetchFromGitHub {
owner = "sogaiu";
repo = "tree-sitter-janet-simple";
rev = "3b08641373cb3e37bc531e6e3cdb85d02b454702";
hash = "sha256-0bCagqSY/MFAqJNajkaR8Y6J2YiXzOF249cm0pFjTfs=";
rev = "ea842cb57a90865c8f50bcb4499de1a94860f3a4";
hash = "sha256-0gy4kylOoaC5BigpppAN1va3eRZaS6UmxNcQkbxz1Ag=";
};
meta.homepage = "https://github.com/sogaiu/tree-sitter-janet-simple";
};
@ -1429,12 +1429,12 @@
};
latex = buildGrammar {
language = "latex";
version = "0.0.0+rev=08d8b88";
version = "0.0.0+rev=f074e14";
src = fetchFromGitHub {
owner = "latex-lsp";
repo = "tree-sitter-latex";
rev = "08d8b885a3fa67a6e8aa8edd8988eaa55db46ba4";
hash = "sha256-QOlnE5JnJHdupL12YMT6cIRcP/2GKsewPkRuWwAwliI=";
rev = "f074e142ade9cdc292346d0484be27f9ebdbc4ea";
hash = "sha256-t6P+5RW426enWVFB/SPFHIIhXqshjKzmKQpOWfu0eQg=";
};
generate = true;
meta.homepage = "https://github.com/latex-lsp/tree-sitter-latex";
@ -1551,12 +1551,12 @@
};
m68k = buildGrammar {
language = "m68k";
version = "0.0.0+rev=9e082a2";
version = "0.0.0+rev=e128454";
src = fetchFromGitHub {
owner = "grahambates";
repo = "tree-sitter-m68k";
rev = "9e082a2253c50eb3d80e84bbd635e57cfb1476a2";
hash = "sha256-QJZDozY0UO7tWemKGk3MjDrM/bjpbwCJbWXY0fTL9fQ=";
rev = "e128454c2210c0e0c10b68fe45ddb8fee80182a3";
hash = "sha256-g7SZ/TrTaaeGDNOqId4eom9R/5gOyXcmmhWY4WW0fF4=";
};
meta.homepage = "https://github.com/grahambates/tree-sitter-m68k";
};
@ -1597,12 +1597,12 @@
};
matlab = buildGrammar {
language = "matlab";
version = "0.0.0+rev=2825fb5";
version = "0.0.0+rev=821f7bd";
src = fetchFromGitHub {
owner = "acristoffers";
repo = "tree-sitter-matlab";
rev = "2825fb578325ac308945318881445a89ea06e0f6";
hash = "sha256-M7dECDfpRZHlkjCNvQcAneKR9KHf6HwtoHADZRjIB/Y=";
rev = "821f7bdf9d922822302a0170c2f157e36ffb7a94";
hash = "sha256-oaq1b/yBH+EOQZ8IW7j2f1nz66RFjXT45IGXz7B8pnY=";
};
meta.homepage = "https://github.com/acristoffers/tree-sitter-matlab";
};
@ -1876,35 +1876,35 @@
};
perl = buildGrammar {
language = "perl";
version = "0.0.0+rev=309cb8d";
version = "0.0.0+rev=7581cbf";
src = fetchFromGitHub {
owner = "tree-sitter-perl";
repo = "tree-sitter-perl";
rev = "309cb8d33bcfd0a81050b21be08f9eb3f2fe2138";
hash = "sha256-eMmU6qkg9ZVjtxaW1tSPhqsPe2WX3/frPfqMxXCziyo=";
rev = "7581cbf8fb793bce94d0241c89fe49b01b1477f9";
hash = "sha256-iBr2KbfJWohjHXlFUGvVMg3xUAy78zPk2Kr3UsqXtUs=";
};
meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
};
php = buildGrammar {
language = "php";
version = "0.0.0+rev=575a080";
version = "0.0.0+rev=c07d697";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "575a0801f430c8672db70b73493c033a9dcfc328";
hash = "sha256-lvgxProv6EYBSFqMuQZh3nzC9ayjBQeafOECrRHzYtU=";
rev = "c07d69739ba71b5a449bdbb7735991f8aabf8546";
hash = "sha256-It3UC98PZn1jXJ/LQfPdJ5e/dRdADPMgAawBzvlJfQE=";
};
location = "php";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
php_only = buildGrammar {
language = "php_only";
version = "0.0.0+rev=575a080";
version = "0.0.0+rev=c07d697";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "575a0801f430c8672db70b73493c033a9dcfc328";
hash = "sha256-lvgxProv6EYBSFqMuQZh3nzC9ayjBQeafOECrRHzYtU=";
rev = "c07d69739ba71b5a449bdbb7735991f8aabf8546";
hash = "sha256-It3UC98PZn1jXJ/LQfPdJ5e/dRdADPMgAawBzvlJfQE=";
};
location = "php_only";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
@ -1975,6 +1975,17 @@
};
meta.homepage = "https://github.com/amaanq/tree-sitter-pony";
};
powershell = buildGrammar {
language = "powershell";
version = "0.0.0+rev=804d86f";
src = fetchFromGitHub {
owner = "airbus-cert";
repo = "tree-sitter-powershell";
rev = "804d86fd4ad286bd0cc1c1f0f7b28bd7af6755ad";
hash = "sha256-W+v+Gj1KViIF+8wd9auy448hyxz0Uam5FpIpdjCzF/k=";
};
meta.homepage = "https://github.com/airbus-cert/tree-sitter-powershell";
};
printf = buildGrammar {
language = "printf";
version = "0.0.0+rev=0e0acea";
@ -2376,12 +2387,12 @@
};
scala = buildGrammar {
language = "scala";
version = "0.0.0+rev=599d12b";
version = "0.0.0+rev=a13f2d1";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-scala";
rev = "599d12b59fed092f5a3d4a7019fd85d90cb39ec1";
hash = "sha256-OIMrIuN5lE1VBGRhIb2B52VYaihQ/sjYkf8oiqpsXCw=";
rev = "a13f2d1ee9609cc5c4c8ffce9640c353b77a24d8";
hash = "sha256-KaELrU+4XMHsSacNZnPlWvfNcQRZizQNhxfbsFpsBdw=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
};
@ -2432,12 +2443,12 @@
};
slint = buildGrammar {
language = "slint";
version = "0.0.0+rev=d82ab8c";
version = "0.0.0+rev=4a0558c";
src = fetchFromGitHub {
owner = "slint-ui";
repo = "tree-sitter-slint";
rev = "d82ab8c19ea1b60ff570256eaef7d137cc5ecb63";
hash = "sha256-NFKh3Z9vU1KImjU4Yd/Bnxq3E8kz8k/w2TzEvAtffnY=";
rev = "4a0558cc0fcd7a6110815b9bbd7cc12d7ab31e74";
hash = "sha256-F+DtGNXc00lv08EnR6sQgTQVYkttgf/xw3bq3IdsQMA=";
};
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
};
@ -2465,12 +2476,12 @@
};
snakemake = buildGrammar {
language = "snakemake";
version = "0.0.0+rev=5a7b140";
version = "0.0.0+rev=46d4de8";
src = fetchFromGitHub {
owner = "osthomas";
repo = "tree-sitter-snakemake";
rev = "5a7b14074bca95b25935e865ca8f1efad32317e4";
hash = "sha256-mYqftgJOnlWgQZrXaNtFXvjRQgC14PXYyruTVw5J8Zg=";
rev = "46d4de8e6cfca8a97c0489aea936bb15beeaf666";
hash = "sha256-MNJLveFI5oybM9QE8wgYT7k3GK1E4lIOm3xWJmJazls=";
};
meta.homepage = "https://github.com/osthomas/tree-sitter-snakemake";
};
@ -2511,12 +2522,12 @@
};
sourcepawn = buildGrammar {
language = "sourcepawn";
version = "0.0.0+rev=645d093";
version = "0.0.0+rev=6b9bf9c";
src = fetchFromGitHub {
owner = "nilshelmig";
repo = "tree-sitter-sourcepawn";
rev = "645d093763bcaaf7535edbdf6575a5c978b16491";
hash = "sha256-P5l0jaDsPXFenVaoLeeGSp6firHpeNM4/v93eshd8l0=";
rev = "6b9bf9cbab91443380d2ca8a2f6c491cc7fac5bf";
hash = "sha256-2DjGCZ701c2rMxQZM4YF61rZokZUov4ECb0gwAmyuVk=";
};
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
};
@ -2533,12 +2544,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=89fd00d";
version = "0.0.0+rev=a966446";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "89fd00d0aff3bc9985ac37caf362ec4fd9b2ba1d";
hash = "sha256-QTKggsvVWhszlcYS/WOPkykUyTDgwV1yVJ7jADA/5SM=";
rev = "a9664463580473e92d8f5e29fa06fb1be88752af";
hash = "sha256-0SY6dOofB+zv4xa7oXabEoUZd5NUV1NHhB+Jx6m137I=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -2621,23 +2632,23 @@
};
svelte = buildGrammar {
language = "svelte";
version = "0.0.0+rev=7218cf6";
version = "0.0.0+rev=7ab8221";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-svelte";
rev = "7218cf622b057ae9c530e1f0a7a3ce49806ca55e";
hash = "sha256-mS4KxJXXb/EzQB5H+Pj+/SEbCTerGFjKiJah8oAGA8c=";
rev = "7ab8221e3f378a3b04b4b488f07c1f408c5bd0d8";
hash = "sha256-ooeQNwFgDZrn+Vj6nFOS8TJMknl/DgbEghfm0e1EJDE=";
};
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-svelte";
};
swift = buildGrammar {
language = "swift";
version = "0.0.0+rev=9653f29";
version = "0.0.0+rev=b3dc8cc";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "9653f291ab2179185dc3703672d9fbbd29e80cfb";
hash = "sha256-apboik9JCxFFvPu6wjZnwm2K21KLvmhm8iesDMbsBl4=";
rev = "b3dc8cc5c266effd7bcfde01aa086b83927f2eda";
hash = "sha256-GtOE80hjFsyFEVkpuxbpNt9vCHrbw2+WnQgyCKAU0jQ=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@ -2666,12 +2677,12 @@
};
systemverilog = buildGrammar {
language = "systemverilog";
version = "0.0.0+rev=a478beb";
version = "0.0.0+rev=4f897d5";
src = fetchFromGitHub {
owner = "zhangwwpeng";
repo = "tree-sitter-systemverilog";
rev = "a478beb76be72fa8f305f5fe9cc6141ac91b91a4";
hash = "sha256-pgZDu2tSgTtE80VXL1T+zAq2dl3B1DoEY/zzxLvqNvM=";
rev = "4f897d5e3f0e38bf8fbb55e8f39dc97d2bc2229e";
hash = "sha256-guNdS07QqbqegFICNHP1ECX9bc+ZCW9li3ILIZVHRwM=";
};
meta.homepage = "https://github.com/zhangwwpeng/tree-sitter-systemverilog";
};
@ -2845,12 +2856,12 @@
};
tsx = buildGrammar {
language = "tsx";
version = "0.0.0+rev=e45cb32";
version = "0.0.0+rev=198d035";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-typescript";
rev = "e45cb3225bf47a04da827e4575b9791523d953fd";
hash = "sha256-7xP8ufPV/ndKmi8gfDYpHSY6D6lfsR0/YXfq3/RT8x0=";
rev = "198d03553f43a45b92ac5d0ee167db3fec6a6fd6";
hash = "sha256-U597+o8gakd4nU9H2FE2aVhGqSG/eRh6BUhtEmwMzrU=";
};
location = "tsx";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@ -2879,12 +2890,12 @@
};
typescript = buildGrammar {
language = "typescript";
version = "0.0.0+rev=e45cb32";
version = "0.0.0+rev=198d035";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-typescript";
rev = "e45cb3225bf47a04da827e4575b9791523d953fd";
hash = "sha256-7xP8ufPV/ndKmi8gfDYpHSY6D6lfsR0/YXfq3/RT8x0=";
rev = "198d03553f43a45b92ac5d0ee167db3fec6a6fd6";
hash = "sha256-U597+o8gakd4nU9H2FE2aVhGqSG/eRh6BUhtEmwMzrU=";
};
location = "typescript";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@ -2913,12 +2924,12 @@
};
typst = buildGrammar {
language = "typst";
version = "0.0.0+rev=90f6af2";
version = "0.0.0+rev=abe60cb";
src = fetchFromGitHub {
owner = "uben0";
repo = "tree-sitter-typst";
rev = "90f6af21271dee246a9cafe109e2b456c5bc10a6";
hash = "sha256-53BCAdQLpeV2l6kmfllrCU186svZ4RE/2+VVrWuFV8Y=";
rev = "abe60cbed7986ee475d93f816c1be287f220c5d8";
hash = "sha256-hwM1oEzABe9sqY0mpDXSfwT+tQsLV5ZNSG8yJhES6Qg=";
};
meta.homepage = "https://github.com/uben0/tree-sitter-typst";
};
@ -3023,6 +3034,17 @@
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-verilog";
};
vhdl = buildGrammar {
language = "vhdl";
version = "0.0.0+rev=4ab3e25";
src = fetchFromGitHub {
owner = "jpt13653903";
repo = "tree-sitter-vhdl";
rev = "4ab3e251eae8890a020d083d00acd1b8c2653c07";
hash = "sha256-egNgZ1GgRNvIdH08cf6V83bMeOECs23yiV5RzcXZENg=";
};
meta.homepage = "https://github.com/jpt13653903/tree-sitter-vhdl";
};
vhs = buildGrammar {
language = "vhs";
version = "0.0.0+rev=90028bb";

View File

@ -15,7 +15,8 @@
, python3
, rustPlatform
, # Misc dependencies
Cocoa
arrow-cpp
, Cocoa
, code-minimap
, dasht
, deno
@ -1200,8 +1201,11 @@
dbee-go = buildGoModule {
name = "nvim-dbee";
src = "${oa.src}/dbee";
vendorHash = "sha256-AItvgOehVskGLARJWDnJLtWM5YHKN/zn/FnZQ0evAtI=";
buildInputs = [ duckdb ];
vendorHash = "sha256-U/3WZJ/+Bm0ghjeNUILsnlZnjIwk3ySaX3Rd4L9Z62A=";
buildInputs = [
arrow-cpp
duckdb
];
};
in {
dependencies = [ self.nui-nvim ];

View File

@ -56,12 +56,12 @@
}:
stdenv.mkDerivation rec {
version = "4.8.0";
version = "4.8.1";
pname = "darktable";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "sha256-QZhJ6QFScOQHXyNBxrVTLT0czMz6jxlZLLLqOtF/klU=";
sha256 = "sha256-kBsOLK7Tb7hhn99MYO37jTETS5R9MFS1xm/VXDivWZE=";
};
nativeBuildInputs = [ cmake ninja llvmPackages.llvm pkg-config intltool perl desktop-file-utils wrapGAppsHook3 ];

View File

@ -12,6 +12,9 @@
, Cocoa
, OpenGL
, python3Packages
, opencascade-occt
, assimp
, fontconfig
, withManual ? !stdenv.isDarwin
, withPythonBinding ? false
}:
@ -42,6 +45,9 @@ stdenv.mkDerivation rec {
buildInputs = [
vtk_9
opencascade-occt
assimp
fontconfig
] ++ lib.optionals stdenv.isDarwin [
Cocoa
OpenGL
@ -58,6 +64,8 @@ stdenv.mkDerivation rec {
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_BINDIR=bin"
"-DF3D_MODULE_EXTERNAL_RENDERING=ON"
"-DF3D_PLUGIN_BUILD_ASSIMP=ON"
"-DF3D_PLUGIN_BUILD_OCCT=ON"
] ++ lib.optionals withManual [
"-DF3D_LINUX_GENERATE_MAN=ON"
] ++ lib.optionals withPythonBinding [

View File

@ -22,13 +22,13 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
perl
];
buildInputs = [
libjpeg
libpng
libtiff
perl
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Carbon
];

View File

@ -11,13 +11,13 @@
buildDotnetModule rec {
pname = "ArchiSteamFarm";
# nixpkgs-update: no auto update
version = "6.0.3.4";
version = "6.0.4.4";
src = fetchFromGitHub {
owner = "JustArchiNET";
repo = "ArchiSteamFarm";
rev = version;
hash = "sha256-qYB94SJYCwcUrXdKtD+ZdiPRpwXg3rOHVmFWD+Y1ZXg=";
hash = "sha256-5jV+EJDZ90qtYF8w7RW8jGiy36nPYsLfoOVM35ilVvw=";
};
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;

View File

@ -2,153 +2,147 @@
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "AngleSharp"; version = "1.1.2"; sha256 = "0rfild46lmqhxkfh6nhy7a9m8zzv25lj29riav5j6dmzw07l7wif"; })
(fetchNuGet { pname = "AngleSharp.XPath"; version = "2.0.4"; sha256 = "0cqgabpjc7pwhlix5j43x6ppj21qnsc7nswn3zm6z004vcggfwf3"; })
(fetchNuGet { pname = "ConfigureAwaitChecker.Analyzer"; version = "5.0.0.1"; sha256 = "01llfwhra5m3jj1qpa4rj1hbh01drirakzjc2963vkl9iwrzscyl"; })
(fetchNuGet { pname = "CryptSharpStandard"; version = "1.0.0"; sha256 = "0nikzb92z4a2n969sz747ginwxsbrap5741bcwwxr4r6m2na9jz7"; })
(fetchNuGet { pname = "Humanizer"; version = "2.14.1"; sha256 = "18cycx9gvbc3735chdi2r583x73m2fkz1ws03yi3g640j9zv00fp"; })
(fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
(fetchNuGet { pname = "Humanizer.Core.af"; version = "2.14.1"; sha256 = "197lsky6chbmrixgsg6dvxbdbbpis0an8mn6vnwjcydhncis087h"; })
(fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.14.1"; sha256 = "03rz12mxrjv5afm1hn4rrpimkkb8wdzp17634dcq10fhpbwhy6i5"; })
(fetchNuGet { pname = "Humanizer.Core.az"; version = "2.14.1"; sha256 = "138kdhy86afy5n72wy12qlb25q4034z73lz5nbibmkixxdnj9g5r"; })
(fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.14.1"; sha256 = "0scwzrvv8332prijkbp4y11n172smjb4sf7ygia6bi3ibhzq7zjy"; })
(fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.14.1"; sha256 = "1322kn7ym46mslh32sgwkv07l3jkkx7cw5wjphql2ziphxw536p8"; })
(fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.14.1"; sha256 = "1zl3vsdd2pw3nm05qpnr6c75y7gacgaghg9sj07ksvsjmklgqqih"; })
(fetchNuGet { pname = "Humanizer.Core.da"; version = "2.14.1"; sha256 = "10rmrvzwp212fpxv0sdq8f0sjymccsdn71k99f845kz0js83r70s"; })
(fetchNuGet { pname = "Humanizer.Core.de"; version = "2.14.1"; sha256 = "0j7kld0jdiqwin83arais9gzjj85mpshmxls64yi58qhl7qjzk0j"; })
(fetchNuGet { pname = "Humanizer.Core.el"; version = "2.14.1"; sha256 = "143q1321qh5506wwvcpy0fj7hpbd9i1k75247mqs2my05x9vc8n0"; })
(fetchNuGet { pname = "Humanizer.Core.es"; version = "2.14.1"; sha256 = "011kscy671mgyx412h55b0x9a1ngmdsgqzqq1w0l10xhf90y4hc8"; })
(fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.14.1"; sha256 = "184dxwkf251c27h7gg9y5zciixgcwy1cmdrs0bqrph7gg69kp6yq"; })
(fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.14.1"; sha256 = "144jlnlipr3pnbcyhbgrd2lxibx8vy00lp2zn60ihxppgbisircc"; })
(fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.14.1"; sha256 = "0klnfy8n659sp8zngd87gy7qakd56dwr1axjjzk0zph1zvww09jq"; })
(fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.14.1"; sha256 = "0b70illi4m58xvlqwcvar0smh6292zadzk2r8c25ryijh6d5a9qv"; })
(fetchNuGet { pname = "Humanizer.Core.he"; version = "2.14.1"; sha256 = "08xkiv88qqd1b0frpalb2npq9rvz2q1yz48k6dikrjvy6amggirh"; })
(fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.14.1"; sha256 = "12djmwxfg03018j2bqq5ikwkllyma8k7zmvpw61vxs7cv4izc6wh"; })
(fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.14.1"; sha256 = "0lw13p9b2kbqf96lif5kx59axxiahd617h154iswjfka9kxdw65x"; })
(fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.14.1"; sha256 = "1bgm0yabhvsv70amzmkvf3mls32lvd7yyr59yxf3xc96msqczgjh"; })
(fetchNuGet { pname = "Humanizer.Core.id"; version = "2.14.1"; sha256 = "1w0bnyac46f2321l09ckb6vz66s1bxl27skfww1iwrmf03i7m2cw"; })
(fetchNuGet { pname = "Humanizer.Core.is"; version = "2.14.1"; sha256 = "10w1fprlhxm1qy3rh0qf6z86ahrv8fcza3wrsx55idlmar1x9jyz"; })
(fetchNuGet { pname = "Humanizer.Core.it"; version = "2.14.1"; sha256 = "1msrmih8cp7r4yj7r85kr0l5h4yln80450mivliy1x322dav8xz2"; })
(fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.14.1"; sha256 = "04ry6z0v85y4y5vzbqlbxppfdm04i02dxbxaaykbps09rwqaa250"; })
(fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.14.1"; sha256 = "156641v0ilrpbzprscvbzfha57pri4y1i66n9v056nc8bm10ggbg"; })
(fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.14.1"; sha256 = "1scz21vgclbm1xhaw89f0v8s0vx46yv8yk3ij0nr6shsncgq9f7h"; })
(fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.14.1"; sha256 = "1909dsbxiv2sgj6myfhn8lbbmvkp2hjahj0knawypyq3jw9sq86g"; })
(fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.14.1"; sha256 = "1dmjrxb0kb297ycr8xf7ni3l7y4wdqrdhqbhy8xnm8dx90nmj9x5"; })
(fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.14.1"; sha256 = "0b183r1apzfa1hasimp2f27yfjkfp87nfbd8qdyrqdigw6nzcics"; })
(fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.14.1"; sha256 = "12rd75f83lv6z12b5hbwnarv3dkk29pvc836jpg2mzffm0g0kxj2"; })
(fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.14.1"; sha256 = "1n033yfw44sjf99mv51c53wggjdffz8b9wv7gwm3q7i6g7ck4vv1"; })
(fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.14.1"; sha256 = "0q4231by40bsr6mjy93n0zs365pz6da32pwkxcz1cc2hfdlkn0vd"; })
(fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.14.1"; sha256 = "0h2wbwrlcmjk8b2mryyd8rbb1qmripvg0zyg61gg0hifiqfg3cr2"; })
(fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.14.1"; sha256 = "0pg260zvyhqz8h1c96px1vs9q5ywvd0j2ixsq21mj96dj7bl5fay"; })
(fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.14.1"; sha256 = "04mr28bjcb9hs0wmpb4nk2v178i0fjr0ymc78dv9bbqkmrzfsmcn"; })
(fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.14.1"; sha256 = "060abvk7mrgawipjgw0h4hrvizby7acmj58w2g35fv54g43isgcl"; })
(fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.14.1"; sha256 = "182xiqf71kiqp42b8yqrag6z57wzqraqi10bnhx0crrc1gxq8v0j"; })
(fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.14.1"; sha256 = "12ygvzyqa0km7a0wz42zssq8qqakvghh96x1ng7qvwcrna3v2rdi"; })
(fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.14.1"; sha256 = "1ggj15qksyr16rilq2w76x38bxp6a6z75b30c9b7w5ni88nkgc7x"; })
(fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.14.1"; sha256 = "0lwr0gnashirny8lgaw0qnbb7x0qrjg8fs11594x8l7li3mahzz3"; })
(fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.14.1"; sha256 = "1c7yx59haikdqx7k7vqll6223jjmikgwbl3dzmrcs3laywgfnmgn"; })
(fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.14.1"; sha256 = "0kyyi5wc23i2lcag3zvrhga9gsnba3ahl4kdlaqvvg2jhdfarl4m"; })
(fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.14.1"; sha256 = "0rdvp0an263b2nj3c5v11hvdwgmj86ljf2m1h3g1x28pygbcx6am"; })
(fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.14.1"; sha256 = "0a2p6mhh0ajn0y7x98zbfasln1l04iiknd50sgf3svna99wybnxd"; })
(fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.14.1"; sha256 = "1jfzfgnk6wz5na2md800vq0djm6z194x618yvwxbnk2c7wikbjj2"; })
(fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.14.1"; sha256 = "0vimhw500rq60naxfari8qm6gjmjm8h9j6c04k67fs447djy8ndi"; })
(fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.14.1"; sha256 = "1yr0l73cy2qypkssmmjwfbbqgdplam62dqnzk9vx6x47dzpys077"; })
(fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.14.1"; sha256 = "1k6nnawd016xpwgzdzy84z1lcv2vc1cygcksw19wbgd8dharyyk7"; })
(fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
(fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
(fetchNuGet { pname = "Markdig.Signed"; version = "0.37.0"; sha256 = "0pcysg74pvhqs13087dh5r90xnixklmnz7bwv02304927mkv5345"; })
(fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.22.0"; sha256 = "0h5qkhmazlvwvjmxxj9pp2404rmvk55yf6npwcmlskv9mgfkli4r"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.0"; sha256 = "05y1xb5fw8lzvb4si77a5qwfwfz1855crqbphrwky6x9llivbhkx"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.0"; sha256 = "18zdbcb2bn7wy1dp14z5jyqiiwr9rkad1lcb158r5ikjfq1rg5iw"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.0"; sha256 = "1nbxzmj6cnccylxis67c54c0ik38ma4rwdvgg6sxd6r04219maqm"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.0"; sha256 = "1wqkbjd1ywv9w397l7rsb89mijc5n0hv7jq9h09xfz6wn9qsp152"; })
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.10.0"; sha256 = "0s0v7jmrq85n356xv7zixvwa4z94fszjcr5vll8x4im1a2lp00f9"; })
(fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; sha256 = "1pi2bm3cm0a7jzqzmfc2r7bpcdkmk3hhjfvb2c81j7wl7xdw3624"; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg"; })
(fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; sha256 = "15m4j6w9n8h0mj7hlfzb83hd3wn7aq1s7fxbicm16slsjfwzj82i"; })
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; sha256 = "1idq65fxwcn882c06yci7nscy9i0rgw6mqjrl7362prvvsd9f15r"; })
(fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; sha256 = "00d5dwmzw76iy8z40ly01hy9gly49a7rpf7k7m99vrid1kxp346h"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6"; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "8.0.0"; sha256 = "1d9b734vnll935661wqkgl7ry60rlh5p876l2bsa930mvfsaqfcv"; })
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
(fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403"; })
(fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.6.0"; sha256 = "18g4j9n47387k4ym3kl2dzhhhs6fs5rq96757fc4lcdql2rpkmp0"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.6.0"; sha256 = "11znwbbg44hhz3ly6j6q81qz83yqf97jj5zhpldng5zq0h791srl"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.6.0"; sha256 = "1slkzygcn4abpqip4rmi73h9096ihjkkaiwgmkaiba9pidn9lzlx"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.6.0"; sha256 = "1blj1ayw9qpjpsnb4k95s03pdkin0032mxgznfaw1z1qhhiqdnsi"; })
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.10.0"; sha256 = "13g8fwl09li8fc71nk13dgkb7gahd4qhamyg2xby7am63nlchhdf"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.0"; sha256 = "0gwqmkmr7jy3sjh9gha82amlry41gp8nwswy2iqfw54f28db63n7"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.0"; sha256 = "042cjvnwrrjs3mw5q8q5kinh0cwkks33i3n1vyifaid2jbr3wlc0"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.0"; sha256 = "06ndp4wh1cap01dql3nixka4g56bf6ipmqys7xaxvg4xisf79x8d"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.0"; sha256 = "1kh5bnaf6h9mr4swcalrp304625frjiw6mlz1052rxwzsdq98a96"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.6.14"; sha256 = "1wr8crmjg4gznm3jqgz9s9p285vrwb8a6baqc6gz3b58rn4m88km"; })
(fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.2.1"; sha256 = "1a6hyd3szjjpjkbr0ncfria0x2qijv3lwr4drhxm15xamfy23azw"; })
(fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.2.1"; sha256 = "19309m0b9cjy1642m99ipjvr6gxq6qb008bam3l10m1mz8m81j31"; })
(fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.2.1"; sha256 = "1bly8375zng21yjbfdi08c14lgapngv06p1dlzbryimxicqzxixx"; })
(fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.2.1"; sha256 = "0zlbqmvdb1vxnvmxh6lk65mz57c7mz6dqb1s8in0cfww8kxg058k"; })
(fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.2.1"; sha256 = "07674xnhc84h36pvzswx6ibjy0bgfi2bxhqm1zyq9fidmim0ch07"; })
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.10.0"; sha256 = "07j69cw8r39533w4p39mnj00kahazz38760in3jfc45kmlcdb26x"; })
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.10.0"; sha256 = "1bl471s7fx9jycr0cc8rylwf34mrvlg9qn1an6l86nisavfcyb7v"; })
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
(fetchNuGet { pname = "MSTest"; version = "3.4.3"; sha256 = "070avma2zdxdpn23a9chgz9n1kglxh8nbb1g2ggzk3xxi5sdjj0n"; })
(fetchNuGet { pname = "MSTest.Analyzers"; version = "3.4.3"; sha256 = "14a6rzh4cvaf9bw63qlxw242fbmk4agyx9qgl19swpciqcaq7pxi"; })
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.4.3"; sha256 = "0hsslndnfyb6shgkmgy10f1c9p6b47ry20zr2l1msagmkrk49s5q"; })
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.4.3"; sha256 = "0hviglzfv16dd3aczny455sy1k0rikzd5w34smfpjyxc0wqx6xvp"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
(fetchNuGet { pname = "Nito.AsyncEx.Coordination"; version = "5.1.2"; sha256 = "0sxvmqnv8a94k3pq1w3lh1vgjb8l62h1qamxcjl3pkq634h2fwrl"; })
(fetchNuGet { pname = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
(fetchNuGet { pname = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
(fetchNuGet { pname = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
(fetchNuGet { pname = "NLog"; version = "5.3.2"; sha256 = "01qnzmwvc93yywhvy5g29fb8jnalfi82az7296nblyqjalhbzz3g"; })
(fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.11"; sha256 = "0j276q0a14qk9nc3f03265jl5wp38bnm7dyyx0s4kxkyb3kx3z8c"; })
(fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.11"; sha256 = "17xvaj54liyk9zq0f80z1ai6wq4rgj6xy93znvsdcnldmin1icz9"; })
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
(fetchNuGet { pname = "OpenTelemetry"; version = "1.7.0-rc.1"; sha256 = "0y16qp3xrypk48f27pfvccic47p9wpl4qx8mar4rf2b78ca21c9p"; })
(fetchNuGet { pname = "OpenTelemetry"; version = "1.8.1"; sha256 = "1slyjdzbiv179sq91bq6bhbqw20jmk6j9x1g5fhvnqsymfqmnmq2"; })
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.7.0-rc.1"; sha256 = "1i09vjjrimg0bwraamsjdqx886apscwj72skds3ysvc9c7n0hpl2"; })
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.0"; sha256 = "0s402mz4gz1chlg29159awawpi6ms4ln5gdds01y38wx6cia6lb9"; })
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.1"; sha256 = "0c2dvnnnizn5g50js336lkgfxh6klcdb0h8pppf68v3liwlhxly5"; })
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.7.0-rc.1"; sha256 = "1ayy2q9cg6482ahvz3cx7a3cikjrnmr5kr7yk9qnbbwy0wfmb6gw"; })
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.0"; sha256 = "1vhl02w068ynhpak0pyjn2xmrnisl9m73lmsckwkncrhinplw7hz"; })
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.1"; sha256 = "0lys1l0qsna2h82j2rbxi5fc8barrq43fs0lradr85r7sy3x91cg"; })
(fetchNuGet { pname = "OpenTelemetry.Exporter.Prometheus.AspNetCore"; version = "1.7.0-rc.1"; sha256 = "1777nbj78yppmqmwvv0bsl4l0vp8lfc5fpsdmknf6wl354f0z1f8"; })
(fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.8.1"; sha256 = "01vi9sqb2j25i6926c581w067nadf4q4hs0hkwjg8wpzhxz0n3xq"; })
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.AspNetCore"; version = "1.8.1"; sha256 = "0s5kxqjhmwm2p2sblmmsavvmknqb8yr0b07ngq8hk0w8b48kyc0h"; })
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Http"; version = "1.8.1"; sha256 = "0p3mw08vi9ljf06239n8b1hfj0cqqb198qn89sf39mdjsy13ca95"; })
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.8.1"; sha256 = "0j2i01378848nvib1krk948lp74x8ykgspka05g37a3s284p1nyd"; })
(fetchNuGet { pname = "protobuf-net"; version = "3.2.30"; sha256 = "08bjdn8dbqpzn5c9fw89y5766irwplgyzhyxcrjzpywkwpj75r4i"; })
(fetchNuGet { pname = "protobuf-net.Core"; version = "3.2.30"; sha256 = "01mgw4s0b2vxf55v6fa3n5l9jwk6bkl60aaqv7azl198wwslkjhq"; })
(fetchNuGet { pname = "SteamKit2"; version = "3.0.0-alpha.1"; sha256 = "01lrbkbpfqdkhba9hsfg9fqyh1sa9r2cp54r2wlb83zfr3f5q8l8"; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.6.2"; sha256 = "0lq774iggpvsmykbrplvv2a5z2ylsslv5wynmvpnlznd4lvgxb4h"; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.6.2"; sha256 = "1snz71ws87kr8pz4c3zcla51mqbly015ib6b0y20xvkj25qx7gl8"; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.6.2"; sha256 = "0j93y0krn5fzvji0k7g4cxi22b7j8n3brxw4698pjq2pqqf2d8qy"; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.6.2"; sha256 = "00lar7246mncidflm15xz5b9hpni9bf8wj37dc0l2sj3hhv9nvwj"; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.6.2"; sha256 = "0w0h2cs8n5avczzm5plzmkvkc6xn0pj425f4400fk21h8ysvhg8h"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
(fetchNuGet { pname = "System.Composition"; version = "8.0.0"; sha256 = "0y7rp5qwwvh430nr0r15zljw01gny8yvr0gg6w5cmsk3q7q7a3dc"; })
(fetchNuGet { pname = "System.Composition.AttributedModel"; version = "8.0.0"; sha256 = "16j61piz1jf8hbh14i1i4m2r9vw79gdqhjr4f4i588h52249fxlz"; })
(fetchNuGet { pname = "System.Composition.Convention"; version = "8.0.0"; sha256 = "10fwp7692a6yyw1p8b923k061zh95a6xs3vzfdmdv5pmf41cxlb7"; })
(fetchNuGet { pname = "System.Composition.Hosting"; version = "8.0.0"; sha256 = "1gbfimhxx6v6073pblv4rl5shz3kgx8lvfif5db26ak8pl5qj4kb"; })
(fetchNuGet { pname = "System.Composition.Runtime"; version = "8.0.0"; sha256 = "0snljpgfmg0wlkwilkvn9qjjghq1pjdfgdpnwhvl2qw6vzdij703"; })
(fetchNuGet { pname = "System.Composition.TypedParts"; version = "8.0.0"; sha256 = "0skwla26d8clfz3alr8m42qbzsrbi7dhg74z6ha832b6730mm4pr"; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "8.0.0"; sha256 = "0nzra1i0mljvmnj1qqqg37xs7bl71fnpl68nwmdajchh65l878zr"; })
(fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; sha256 = "1hg5i9hiihj9x4d0mlvhfddmivzrhzz83dyh26fqw1nd8jvqccxk"; })
(fetchNuGet { pname = "System.Linq.Async"; version = "6.0.1"; sha256 = "10ira8hmv0i54yp9ggrrdm1c06j538sijfjpn1kmnh9j2xk5yzmq"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
(fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
(fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "8.0.0"; sha256 = "1ysjx3b5ips41s32zacf4vs7ig41906mxrsbmykdzi0hvdmjkgbx"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
(fetchNuGet { pname = "AngleSharp"; version = "1.1.2"; hash = "sha256-LvJDD+C/NiPLVjEnIWkR+39UkzoeWgPd7BBXakij0WU="; })
(fetchNuGet { pname = "AngleSharp.XPath"; version = "2.0.4"; hash = "sha256-w3H3HtsEgG/qH5Zre5i2OAh5r+mDyNIjhfweJu9SDzM="; })
(fetchNuGet { pname = "ConfigureAwaitChecker.Analyzer"; version = "5.0.0.1"; hash = "sha256-1DP9M4+Jzj1MEkz+qXLMLQC4YJCZqIuDlKMWlSF3lAY="; })
(fetchNuGet { pname = "CryptSharpStandard"; version = "1.0.0"; hash = "sha256-58ukrKgmk9w5ZyuQU67KS3du4zvkfJ1MskKRL9L6M1o="; })
(fetchNuGet { pname = "Humanizer"; version = "3.0.0-beta.54"; hash = "sha256-QIQFZYsW58l1xi9iw5VyAzo9bCCAojHQKXi0+dMH86Y="; })
(fetchNuGet { pname = "Humanizer.Core"; version = "3.0.0-beta.54"; hash = "sha256-KQdtkJ1uqstncqPmvWNW/PwMenyw1bW54P9unDVtO0Y="; })
(fetchNuGet { pname = "Humanizer.Core.af"; version = "3.0.0-beta.54"; hash = "sha256-b2F23Ntez1spMh+H90P1yIMzTghyLSw6SoQgSoH7MGI="; })
(fetchNuGet { pname = "Humanizer.Core.ar"; version = "3.0.0-beta.54"; hash = "sha256-deIHuegZjN178w9bHU3QgG5wUSm3ZeepyHihBdiXbtQ="; })
(fetchNuGet { pname = "Humanizer.Core.az"; version = "3.0.0-beta.54"; hash = "sha256-jFMlxjSVIz2Qiv4DSHK2U8OqyBWL9juQOlB2xrC84YE="; })
(fetchNuGet { pname = "Humanizer.Core.bg"; version = "3.0.0-beta.54"; hash = "sha256-MfCHFo3SjU3QScfD/TQuV7FdR18i6EQVb/ophQY/6Yk="; })
(fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "3.0.0-beta.54"; hash = "sha256-lBSo0VFbuIagbznWWK7U+ecr3jz7dBGwFvCx3ligXsk="; })
(fetchNuGet { pname = "Humanizer.Core.cs"; version = "3.0.0-beta.54"; hash = "sha256-mhD6davLTy+v1tatG7wBYQdpo204hTKureuVpx8E7MA="; })
(fetchNuGet { pname = "Humanizer.Core.da"; version = "3.0.0-beta.54"; hash = "sha256-5mE9JXGhBichj39Ds8ue4NOymzUQIjjJnSO84fZKK+c="; })
(fetchNuGet { pname = "Humanizer.Core.de"; version = "3.0.0-beta.54"; hash = "sha256-AknBQzk94LVu2NY2QYJqjCI11pfpLXi2pLgelZCpvds="; })
(fetchNuGet { pname = "Humanizer.Core.el"; version = "3.0.0-beta.54"; hash = "sha256-O8XR1zUP1lk3OFFI1vtwvzXOoLQfN7LxQlR6MEumPKM="; })
(fetchNuGet { pname = "Humanizer.Core.es"; version = "3.0.0-beta.54"; hash = "sha256-Mp5SZwO5TOhK+wghOxEoKySlH19xx2Vs80pD8zJuWQU="; })
(fetchNuGet { pname = "Humanizer.Core.fa"; version = "3.0.0-beta.54"; hash = "sha256-ONY2tAvoVpGbR3rFUsNfN3ldkjb9okH6GNTN72P983Y="; })
(fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "3.0.0-beta.54"; hash = "sha256-NgdDNR8qtQYFx8qBcy3ybPqWRBqKy4w7xrL4F/79SvI="; })
(fetchNuGet { pname = "Humanizer.Core.fr"; version = "3.0.0-beta.54"; hash = "sha256-/aGQGAB4FIZ9P6ah+weq39XOC0MZMGOvhgainLIYvk4="; })
(fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "3.0.0-beta.54"; hash = "sha256-bLNidoLR5tZASSP85DCX2QjTPTgqoFZDLsZXov3ec8Q="; })
(fetchNuGet { pname = "Humanizer.Core.he"; version = "3.0.0-beta.54"; hash = "sha256-Ef0yaO9mbcHqpUhruZpWZgGcLtEZEu4yRC0nvujTOKQ="; })
(fetchNuGet { pname = "Humanizer.Core.hr"; version = "3.0.0-beta.54"; hash = "sha256-Loifax8U+8ho/Gyw2NcwNFywleKYNB1Hr9waTHGjmrg="; })
(fetchNuGet { pname = "Humanizer.Core.hu"; version = "3.0.0-beta.54"; hash = "sha256-tPgZGD2AE68c67Rrpo5PK15q9ZXP7RwttaGwGfUp4lU="; })
(fetchNuGet { pname = "Humanizer.Core.hy"; version = "3.0.0-beta.54"; hash = "sha256-YWwDuwrilm22gzCMui+u71Q+FVg/kMxVa8xCX2v+isU="; })
(fetchNuGet { pname = "Humanizer.Core.id"; version = "3.0.0-beta.54"; hash = "sha256-SZYleWmQ10OguOylRlgct7TVN8Sc2vrs4g492fteghM="; })
(fetchNuGet { pname = "Humanizer.Core.is"; version = "3.0.0-beta.54"; hash = "sha256-7xIFwbQqqcFZhJFgQGgcDj0aS9GCkzk5hoxpUSPVfG0="; })
(fetchNuGet { pname = "Humanizer.Core.it"; version = "3.0.0-beta.54"; hash = "sha256-ckKN4D4Ae/TsxytAeqznNMgzT+Jv82x2MQSnZJMios4="; })
(fetchNuGet { pname = "Humanizer.Core.ja"; version = "3.0.0-beta.54"; hash = "sha256-kHZAfhn8FXJTND/09ue7wpD7WpGxCWHHpn0CgypJLqw="; })
(fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "3.0.0-beta.54"; hash = "sha256-zLT2nlRba85r85s2Bt9WSJwuueYSr3xLwJHOW8Soy20="; })
(fetchNuGet { pname = "Humanizer.Core.ku"; version = "3.0.0-beta.54"; hash = "sha256-Ef+QUC0b3kE6HmTa8CQinsHyd+ehpFlFxtmr5A/E9dE="; })
(fetchNuGet { pname = "Humanizer.Core.lb"; version = "3.0.0-beta.54"; hash = "sha256-5hP1M9H+6uo7inDJMYNAjo0r/V3lIPb3mnmUKFe+CCw="; })
(fetchNuGet { pname = "Humanizer.Core.lt"; version = "3.0.0-beta.54"; hash = "sha256-SVDSW5CLqGL0SzqIJF+LbPuKmD/92CA/xjgsDXucNc8="; })
(fetchNuGet { pname = "Humanizer.Core.lv"; version = "3.0.0-beta.54"; hash = "sha256-idNNH20jP++HlWli9FAcNoDsGz4Tc5UST4gxlb/ZvJA="; })
(fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "3.0.0-beta.54"; hash = "sha256-aOrRmEDXCbN9Fmf0uUFn2zFePDT1uC6/gvqEThH4Frg="; })
(fetchNuGet { pname = "Humanizer.Core.mt"; version = "3.0.0-beta.54"; hash = "sha256-B5mZrT0iTnfcxAOWNXt+SOXYi1klCqjPiP58p05gfFs="; })
(fetchNuGet { pname = "Humanizer.Core.nb"; version = "3.0.0-beta.54"; hash = "sha256-+vGxff/C9l6P40MCy24ZEcS+GwlYQoBCjOv1TgX7ZZ0="; })
(fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "3.0.0-beta.54"; hash = "sha256-PdAieSuOp883+5fQY4OQYhMXgclTaX7RYSRQgmJcuWM="; })
(fetchNuGet { pname = "Humanizer.Core.nl"; version = "3.0.0-beta.54"; hash = "sha256-hwpUHNioWLXOAPePZ6atdfm9B2mrv3YDUinxtp5l5cQ="; })
(fetchNuGet { pname = "Humanizer.Core.pl"; version = "3.0.0-beta.54"; hash = "sha256-MTxJ+XGfR/ShDV5HlI5iOQ8fJpwhLuk+ELwipgz/SYM="; })
(fetchNuGet { pname = "Humanizer.Core.pt"; version = "3.0.0-beta.54"; hash = "sha256-cshgIqnIU+28cIKiGX4aojdDdAVu0Y3oTo9LPfuuxmk="; })
(fetchNuGet { pname = "Humanizer.Core.ro"; version = "3.0.0-beta.54"; hash = "sha256-1RsFju1P3XCi+12zWH9jVhp3iQ1htPCq4A3DIE/dErI="; })
(fetchNuGet { pname = "Humanizer.Core.ru"; version = "3.0.0-beta.54"; hash = "sha256-c5Ll2kUZm1vhDfkIblW2yi+MmQTSCrDmjaS9FkC63nc="; })
(fetchNuGet { pname = "Humanizer.Core.sk"; version = "3.0.0-beta.54"; hash = "sha256-MeFFOBinomAJ1aooldh2BfFi2jKl4gsf3rF6sqHiRRE="; })
(fetchNuGet { pname = "Humanizer.Core.sl"; version = "3.0.0-beta.54"; hash = "sha256-ggOLhhI8RcjmG4nG6vJVK4EbubN/Mw1l1n8CchgMZJc="; })
(fetchNuGet { pname = "Humanizer.Core.sr"; version = "3.0.0-beta.54"; hash = "sha256-05yA3P0VMmRFfq0v0hCItNuYt++LDkBCk7ScYa3UOXw="; })
(fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "3.0.0-beta.54"; hash = "sha256-62kozBOCEdLM1W1AzqsoMHGtU3S3msK2uGTm7qxCf5Q="; })
(fetchNuGet { pname = "Humanizer.Core.sv"; version = "3.0.0-beta.54"; hash = "sha256-g+t6p+0AqyptEHkc+a1HKm77vBggMTNeqQf6KjeuygU="; })
(fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "3.0.0-beta.54"; hash = "sha256-mGYaSb8TaThiJc+iJ1mj6zjzQOjQSbTlaGs4mZyAiQA="; })
(fetchNuGet { pname = "Humanizer.Core.tr"; version = "3.0.0-beta.54"; hash = "sha256-NOeZorj9vNpsImBcUjqlc7bN1bugS1rS1/4QVV8oYMk="; })
(fetchNuGet { pname = "Humanizer.Core.uk"; version = "3.0.0-beta.54"; hash = "sha256-fY/xIRXhIWofcCQg3aBJ9Jue0A8p1K7qEZjwGsJKpQ4="; })
(fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "3.0.0-beta.54"; hash = "sha256-vnFy9SKfYZXM0o824X1/bgoux+r0zCbblcYx7yj0PQU="; })
(fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "3.0.0-beta.54"; hash = "sha256-5xUO7jqWUeq5OSNiiORBf/5Wa9faV8e0D0NQahGn4S4="; })
(fetchNuGet { pname = "Humanizer.Core.vi"; version = "3.0.0-beta.54"; hash = "sha256-rcCMfEmpjuUTF5rOG0mAoq8JtV5Rk4QNxAvaW+TD9O4="; })
(fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "3.0.0-beta.54"; hash = "sha256-fh4CRrhOAkuY89dtwHCkbclG8AxjizRQSJCLJvpRGyo="; })
(fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "3.0.0-beta.54"; hash = "sha256-0BXsdNBRWTqaloHdCCpVjAyU9IHz5FtweHjqvzpwW4Q="; })
(fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "3.0.0-beta.54"; hash = "sha256-lemSDWy2Jz6gg8+ObqC3uyw846yghzmVUeakNZj7prg="; })
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; hash = "sha256-/Eykez68qYMO5mlmUelzAke8aJehyp8fspO5Z+yt5G4="; })
(fetchNuGet { pname = "Markdig.Signed"; version = "0.37.0"; hash = "sha256-hYyyZz0iETAE2HydbyudPdoOUi6wHQRG0BjuS87Tnl0="; })
(fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.22.0"; hash = "sha256-mUQ63atpT00r49ca50uZu2YCiLg3yd6r3HzTryqcuEA="; })
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; hash = "sha256-49+H/iFwp+AfCICvWcqo9us4CzxApPKC37Q5Eqrw+JU="; })
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.10.0"; hash = "sha256-yQFwqVChRtIRpbtkJr92JH2i+O7xn91NGbYgnKs8G2g="; })
(fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; hash = "sha256-RJjBWz+UHxkQE2s7CeGYdTZ218mCufrxl0eBykZdIt4="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; hash = "sha256-9BPsASlxrV8ilmMCjdb3TiUcm5vFZxkBnAI/fNBSEyA="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; hash = "sha256-4eBpDkf7MJozTZnOwQvwcfgRKQGcNXe0K/kF+h5Rl8o="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; hash = "sha256-GanfInGzzoN2bKeNwON8/Hnamr6l7RTpYLA49CNXD9Q="; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; hash = "sha256-+qIDR8hRzreCHNEDtUcPfVHQdurzWPo/mqviCH78+EQ="; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; hash = "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8="; })
(fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; hash = "sha256-USD5uZOaahMqi6u7owNWx/LR4EDrOwqPrAAim7iRpJY="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; hash = "sha256-uQSXmt47X2HGoVniavjLICbPtD2ReQOYQMgy3l0xuMU="; })
(fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; hash = "sha256-0JBx+wwt5p1SPfO4m49KxNOXPAzAU0A+8tEc/itvpQE="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; hash = "sha256-Meh0Z0X7KyOEG4l0RWBcuHHihcABcvCyfUXgasmQ91o="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; hash = "sha256-Jmddjeg8U5S+iBTwRlVAVLeIHxc4yrrNgqVMOB7EjM4="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "8.0.0"; hash = "sha256-mzmstNsVjKT0EtQcdAukGRifD30T82BMGYlSu8k4K7U="; })
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; hash = "sha256-n2m4JSegQKUTlOsKLZUUHHKMq926eJ0w9N9G+I3FoFw="; })
(fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; hash = "sha256-A5Bbzw1kiNkgirk5x8kyxwg9lLTcSngojeD+ocpG1RI="; })
(fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; hash = "sha256-FU8qj3DR8bDdc1c+WeGZx/PCZeqqndweZM9epcpXjSo="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.6.2"; hash = "sha256-Ipd8+JFpj44vqouRGO8YvxzVyjKOeFXczTeKguxdcgs="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.6.2"; hash = "sha256-lHzkMQIlbSwmetyGLbtuptHZP+HgG8n2aLtBDqDr1S4="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.6.2"; hash = "sha256-hNIbOZ6leANvh+i1I2ZXS35+yXUmhTlyomkA8PbF++w="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.6.2"; hash = "sha256-P0lN2+Die2ftnJh43A3X3CR207vvzfCCJjlow6yweVs="; })
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.10.0"; hash = "sha256-rkHIqB2mquNXF89XBTFpUL2z5msjTBsOcyjSBCh36I0="; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; hash = "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="; })
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.6.14"; hash = "sha256-dSJUic2orPGfYVgto9DieRckbtLpPyxHtf+RJ2tmKPM="; })
(fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.2.1"; hash = "sha256-/KshvKuql1A7zI1kTseWEYsOVMyOWZDXlFfKr0fz0Kg="; })
(fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.2.1"; hash = "sha256-YciAKvo1VBDoqGohABY2uD+Tt7wxpSqICV6ytEBNYKQ="; })
(fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.2.1"; hash = "sha256-vcf+MYu9Rp/Xpy1cA/azVz1KAkMgNrekD+LZX85Anq4="; })
(fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.2.1"; hash = "sha256-ExXw+kScOwZsRDos3Myvh53yazGTGtjrtn2H1XbFi34="; })
(fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.2.1"; hash = "sha256-B0AGaqwtuoT9DxXDvkR0bwEvVzSd67+vGZAgBm0nxxw="; })
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.10.0"; hash = "sha256-3YjVGK2zEObksBGYg8b/CqoJgLQ1jUv4GCWNjDhLRh4="; })
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; hash = "sha256-mj5UH+aqVk7f3Uu0+L47aqZUudJNCx3Lk7cbP4fzcmI="; })
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.10.0"; hash = "sha256-+yzP3FY6WoOosSpYnB7duZLhOPUZMQYy8zJ1d3Q4hK4="; })
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; hash = "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="; })
(fetchNuGet { pname = "MSTest"; version = "3.4.3"; hash = "sha256-FkjZdIm9j/nfEy+sZRHs9M1g03+QJTWEva23L1TdChw="; })
(fetchNuGet { pname = "MSTest.Analyzers"; version = "3.4.3"; hash = "sha256-sd+DFcORXa5ToA+n7p8isy4niOCd4mH4Sk5tRuDPRpE="; })
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.4.3"; hash = "sha256-uOhEZp71KV0DFfkD4fMhy9zEggPBvzof1GZ5Z5ulWkM="; })
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.4.3"; hash = "sha256-d3fTMQese3ld1WTw0v6MGczgdSnE28/UaM2E7T59cUM="; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; hash = "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="; })
(fetchNuGet { pname = "Nito.AsyncEx.Coordination"; version = "5.1.2"; hash = "sha256-NHMnIBkGzzuoZL0qHKAwFC35doB08IDvmCQptC2uu2s="; })
(fetchNuGet { pname = "Nito.AsyncEx.Tasks"; version = "5.1.2"; hash = "sha256-W5jxZZ0pbPHte6TkWTq4FDtHOejvlrdyb1Inw+Yhl4c="; })
(fetchNuGet { pname = "Nito.Collections.Deque"; version = "1.1.1"; hash = "sha256-6Pmz6XQ+rY32O21Z3cUDVQsLH+i53LId18UCPTAxRZQ="; })
(fetchNuGet { pname = "Nito.Disposables"; version = "2.2.1"; hash = "sha256-FKDLUWysqroSHLU2kLjK1m0g417AAPh6n2TIkwiapcM="; })
(fetchNuGet { pname = "NLog"; version = "5.3.2"; hash = "sha256-b/y/IFUSe7qsSeJ8JVB0VFmJlkviFb8h934ktnn9Fgc="; })
(fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.11"; hash = "sha256-DP3R51h+9kk06N63U+1C4/JCZTFiADeYTROToAA2R0g="; })
(fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.11"; hash = "sha256-6bMYbKyNWtb0tn8k3418mWBuogofIAfwT9NHSopUu58="; })
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; hash = "sha256-n+hxcrf+sXM80Tv9YH9x4+hwTslVidFq4tjBNPAzYnM="; })
(fetchNuGet { pname = "OpenTelemetry"; version = "1.7.0-rc.1"; hash = "sha256-N7EgFENnCZdJVhV1TOjl6R7CImPb3SMcIvP63MfFJng="; })
(fetchNuGet { pname = "OpenTelemetry"; version = "1.9.0"; hash = "sha256-QVV6ecnVk73bvi4Lw1RnTsaEUH/6CT0/zIJkYdg6CGg="; })
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.7.0-rc.1"; hash = "sha256-gl4I7GGJbe2HblOLIznTVxmEOm5SV6UyX+DVmKXcCcQ="; })
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.9.0"; hash = "sha256-raXpHi2DZ3mSLn9dnJYF64XaP23epdfu8zgagSpm8+4="; })
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.7.0-rc.1"; hash = "sha256-/JlVHQeer2Vxmv7kWXK1Wc7Ihjqdjb+hEoiYxxIW3qs="; })
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.9.0"; hash = "sha256-Yy3EcKBW7XH7nhLcvwQB0NIfxiGChuy6UPc7MJpxEbE="; })
(fetchNuGet { pname = "OpenTelemetry.Exporter.Prometheus.AspNetCore"; version = "1.7.0-rc.1"; hash = "sha256-yIUPHCmDcuPsrE1fV5ij6G5ACdUL7M0rrvd6dOSy55w="; })
(fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.9.0"; hash = "sha256-vvIrTeDGzgz8dI7/SkLL0ZrV+9u3e9uhvW6VVdsd6Ps="; })
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.AspNetCore"; version = "1.9.0"; hash = "sha256-XYqa7kV4rhHPCgHsjQtMvyKCemW1OvQd/23QhjquYR4="; })
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Http"; version = "1.9.0"; hash = "sha256-y/UbDt6n6heD+ayzv0xPurXLFNL+eSldwqoyGpvCg7o="; })
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.9.0"; hash = "sha256-Xov89h4Py7MCz6SAOjV0tjtZvvjHbx7NyPXZsY1PZhk="; })
(fetchNuGet { pname = "protobuf-net"; version = "3.2.30"; hash = "sha256-keRy5OWT+/tlZt3D7x+9PEdjTvEJcZdYsf/i1ZBtciE="; })
(fetchNuGet { pname = "protobuf-net.Core"; version = "3.2.30"; hash = "sha256-GMpJNecoBfrV2VgpYOhcZnKZaLFDObNLcX2LBTThrwY="; })
(fetchNuGet { pname = "SteamKit2"; version = "3.0.0-alpha.1"; hash = "sha256-iCJc3MjuD7QoF5mUy0ROSgfosUvPaZjUgrNhd9dcmQY="; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.6.2"; hash = "sha256-kKz+NiXNfmrvrtbzsqnW1ItflNib3rymr3rf9yI5B1M="; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.6.2"; hash = "sha256-iL7TcRFy7g6EB8usWALwdOEaiqLsD0b+RXkepHk43+o="; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.6.2"; hash = "sha256-HqMmHMZXYHlRMoT3vIZF8iwhYmfknQmi3N8VmyfwI0k="; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.6.2"; hash = "sha256-km+bNoRDakEBa2dIjtxK0V6YVvm9hEpdi8xWQ8TJigI="; })
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.6.2"; hash = "sha256-ED24tUcwiOkAIMQVQeQFths296yf3lL/Z1sVizQTEHA="; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; hash = "sha256-WMMAUqoxT3J1gW9DI8v31VAuhwqTc4Posose5jq1BNo="; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; hash = "sha256-9an2wbxue2qrtugYES9awshQg+KfJqajhnhs45kQIdk="; })
(fetchNuGet { pname = "System.Composition"; version = "8.0.0"; hash = "sha256-rA118MFj6soKN++BvD3y9gXAJf0lZJAtGARuznG5+Xg="; })
(fetchNuGet { pname = "System.Composition.AttributedModel"; version = "8.0.0"; hash = "sha256-n3aXiBAFIlQicSRLiNtLh++URSUxRBLggsjJ8OMNRpo="; })
(fetchNuGet { pname = "System.Composition.Convention"; version = "8.0.0"; hash = "sha256-Z9HOAnH1lt1qc38P3Y0qCf5gwBwiLXQD994okcy53IE="; })
(fetchNuGet { pname = "System.Composition.Hosting"; version = "8.0.0"; hash = "sha256-axKJC71oKiNWKy66TVF/c3yoC81k03XHAWab3mGNbr0="; })
(fetchNuGet { pname = "System.Composition.Runtime"; version = "8.0.0"; hash = "sha256-AxwZ29+GY0E35Pa255q8AcMnJU52Txr5pBy86t6V1Go="; })
(fetchNuGet { pname = "System.Composition.TypedParts"; version = "8.0.0"; hash = "sha256-+ZJawThmiYEUNJ+cB9uJK+u/sCAVZarGd5ShZoSifGo="; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; hash = "sha256-6mW3N6FvcdNH/pB58pl+pFSCGWgyaP4hfVtC/SMWDV4="; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "8.0.0"; hash = "sha256-+aODaDEQMqla5RYZeq0Lh66j+xkPYxykrVvSCmJQ+Vs="; })
(fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; hash = "sha256-szOGt0TNBo6dEdC3gf6H+e9YW3Nw0woa6UnCGGGK5cE="; })
(fetchNuGet { pname = "System.Linq.Async"; version = "6.0.1"; hash = "sha256-uH5fZhcyQVtnsFc6GTUaRRrAQm05v5euJyWCXSFSOYI="; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; hash = "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI="; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; hash = "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E="; })
(fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; hash = "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="; })
(fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "8.0.0"; hash = "sha256-fb0pa9sQxN+mr0vnXg1Igbx49CaOqS+GDkTfWNboUvs="; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; hash = "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="; })
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; hash = "sha256-fjCLQc1PRW0Ix5IZldg0XKv+J1DqPSfu9pjMyNBp7dE="; })
(fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; hash = "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI="; })
]

View File

@ -2,7 +2,7 @@
buildNpmPackage rec {
pname = "asf-ui";
version = "78188871dfce90fb04096e9fd0b6ce2411312dae";
version = "3ae4df4206a3f5fbbe582403403df848fd29847f";
src = fetchFromGitHub {
owner = "JustArchiNET";
@ -10,10 +10,10 @@ buildNpmPackage rec {
# updated by the update script
# this is always the commit that should be used with asf-ui from the latest asf version
rev = version;
hash = "sha256-NBxN3pQFiDsRYp2Ro0WwWdGzKVjPTKx4/xWQrMNuv0M=";
hash = "sha256-81PESllqRmtfdYFda1fBRZMczlWQq2xSPWELIOIpi3s=";
};
npmDepsHash = "sha256-9pLbSOMfKwkWtzmKNmeKNrgdtzh3riWWJlrbuoDRUrw=";
npmDepsHash = "sha256-OIkT5XMWcVRbCemaC+hkHkZACCzNedJKHLvGmNXEye4=";
installPhase = ''
runHook preInstall

View File

@ -1,14 +1,13 @@
{ lib
, fetchFromGitHub
, docutils
, gettext
, glibcLocales
, glib-networking
, gobject-introspection
, gtk3
, python3
, libnotify
, python3Packages
, steam-run
, substituteAll
, unzip
, webkitgtk
, wrapGAppsHook3
@ -16,23 +15,29 @@
python3Packages.buildPythonApplication rec {
pname = "minigalaxy";
version = "1.2.2";
version = "1.3.0";
src = fetchFromGitHub {
owner = "sharkwouter";
repo = pname;
repo = "minigalaxy";
rev = "refs/tags/${version}";
sha256 = "sha256-bpNtdMYBl2dJ4PQsxkhm/Y+3A0dD/Y2XC0VaUYyRhvM=";
hash = "sha256-CMPBKnNrcjHVpsbBjY97FiygEJNG9jKHR/LoVMfuxG4=";
};
checkPhase = ''
runHook preCheck
env HOME=$PWD LC_ALL=en_US.UTF-8 pytest
runHook postCheck
patches = [
(substituteAll {
src = ./inject-launcher-steam-run.diff;
steamrun = lib.getExe steam-run;
})
];
postPatch = ''
substituteInPlace minigalaxy/installer.py \
--replace-fail '"unzip"' "\"${lib.getExe unzip}\"" \
--replace-fail "'unzip'" "\"${lib.getExe unzip}\""
'';
nativeBuildInputs = [
gettext
wrapGAppsHook3
gobject-introspection
];
@ -40,29 +45,29 @@ python3Packages.buildPythonApplication rec {
buildInputs = [
glib-networking
gtk3
libnotify
];
nativeCheckInputs = with python3Packages; [
glibcLocales
pytest
tox
pytestCheckHook
simplejson
];
preCheck = ''
export HOME=$(mktemp -d)
'';
pythonPath = [
docutils
python3.pkgs.pygobject3
python3.pkgs.requests
python3.pkgs.setuptools
python3.pkgs.simplejson
steam-run
unzip
python3Packages.pygobject3
python3Packages.requests
webkitgtk
];
# Run Linux games using the Steam Runtime by using steam-run in the wrapper
# FIXME: not working with makeBinaryWrapper
postFixup = ''
sed -e 's#exec -a "$0"#exec -a "$0" ${steam-run}/bin/steam-run#' -i $out/bin/minigalaxy
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
meta = with lib; {

View File

@ -0,0 +1,32 @@
diff --git a/minigalaxy/launcher.py b/minigalaxy/launcher.py
index 641db77..712c55b 100644
--- a/minigalaxy/launcher.py
+++ b/minigalaxy/launcher.py
@@ -77,6 +77,7 @@ def get_execute_command(game) -> list:
if game.get_info("use_mangohud") is True:
exe_cmd.insert(0, "mangohud")
exe_cmd.insert(1, "--dlsym")
+ exe_cmd.insert(0, "@steamrun@")
exe_cmd = get_exe_cmd_with_var_command(game, exe_cmd)
logger.info("Launch command for %s: %s", game.name, " ".join(exe_cmd))
return exe_cmd
diff --git a/tests/test_installer.py b/tests/test_installer.py
index 8e6cb76..a9d9f46 100644
--- a/tests/test_installer.py
+++ b/tests/test_installer.py
@@ -296,13 +296,13 @@ def test_get_exec_line(self, mock_list_dir, mock_which):
mock_list_dir.return_value = ["data", "docs", "scummvm", "support", "beneath.ini", "gameinfo", "start.sh"]
result1 = installer.get_exec_line(game1)
- self.assertEqual(result1, "scummvm -c beneath.ini")
+ self.assertEqual(result1, "@steamrun@ scummvm -c beneath.ini")
game2 = Game("Blocks That Matter", install_dir="/home/test/GOG Games/Blocks That Matter", platform="linux")
mock_list_dir.return_value = ["data", "docs", "support", "gameinfo", "start.sh"]
result2 = installer.get_exec_line(game2)
- self.assertEqual(result2, "./start.sh")
+ self.assertEqual(result2, "@steamrun@ ./start.sh")
@mock.patch('os.path.getsize')
@mock.patch('os.listdir')

View File

@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
gettext
perl
pkg-config
wxGTK32
zip
];

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "argocd";
version = "2.11.5";
version = "2.11.7";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo-cd";
rev = "v${version}";
hash = "sha256-0Td4TMi9HTvf+GeW2f/ufRW0Y3KBrBSDWhgPW4noXi4=";
hash = "sha256-/gbclPcYSDobwftFi0CECgBp6PNqxHW9svP3A5y8eEY=";
};
proxyVendor = true; # darwin/linux hash mismatch

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kn";
version = "1.14.0";
version = "1.15.0";
src = fetchFromGitHub {
owner = "knative";
repo = "client";
rev = "knative-v${version}";
sha256 = "sha256-sUMQrBAOhpMxMawOdvLFSUrcU9od6pmT7NabSywoQn8=";
sha256 = "sha256-bXICU1UBNPVIumzRPSOWa1I5hUYWEvo6orBpUvbPEvg=";
};
vendorHash = null;

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "roxctl";
version = "4.4.4";
version = "4.5.0";
src = fetchFromGitHub {
owner = "stackrox";
repo = "stackrox";
rev = version;
sha256 = "sha256-1eu7khgs6nzp+d1Gtz2DggD2Gie08auw1XxSZsnRdaM=";
sha256 = "sha256-DX7q8TgCJuM4G/gYnh+ZhbaGFO4BezRShZyNqZ2VRMg=";
};
vendorHash = "sha256-j/ouxh4nMg5hyzT2RuP+hJrAeK7+PleT2W0DWxxjOfA=";
vendorHash = "sha256-K1jtwrfzRpzMApDW0WPmIZaJ5hADlMjEkFDWFmzmDc0=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -5,19 +5,19 @@
buildGoModule rec {
pname = "coreth";
version = "0.13.5";
version = "0.13.7";
src = fetchFromGitHub {
owner = "ava-labs";
repo = pname;
rev = "v${version}";
hash = "sha256-cnxNIFf0zCpbUg9G+bHNoApxB31O7RH5BVgprYN2GYk=";
hash = "sha256-ZWM45RoGfGd9mRQkQ/Hz7MGlYq4X26J/QV7FWDjMVrk=";
};
# go mod vendor has a bug, see: golang/go#57529
proxyVendor = true;
vendorHash = "sha256-IVmz+2pWHsiZOhHKEK9GW9zZq8m1IH5lpfKeClnmc3o=";
vendorHash = "sha256-KSBoqp56n/b9zk5elEWsv7EAv3oyVhmc7hjyudicTWs=";
ldflags = [
"-s"

View File

@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
substituteInPlace bindings/python/CMakeLists.txt --replace " -u -r" ""
'';
nativeBuildInputs = [ cmake ];
nativeBuildInputs = [ cmake python3 ];
buildInputs = [ openssl python3.pkgs.pybind11 ];
propagatedBuildInputs = [ caf' ];

View File

@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
file
flex
python
swig
];
buildInputs = [
@ -55,7 +56,6 @@ stdenv.mkDerivation rec {
libpcap
ncurses
openssl
swig
zlib
python
] ++ lib.optionals stdenv.isLinux [

View File

@ -2,7 +2,7 @@
let
versions =
if stdenv.isLinux then {
stable = "0.0.60";
stable = "0.0.61";
ptb = "0.0.95";
canary = "0.0.455";
development = "0.0.24";
@ -17,7 +17,7 @@ let
x86_64-linux = {
stable = fetchurl {
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
hash = "sha256-hu1+/z/ZtHoobjHF+pgNm040r4LQJUTnpZ06RNERFr8=";
hash = "sha256-jJapVZ67nqLSNhti7LkfsGNV3JzglZjQkHhTwJvPO98=";
};
ptb = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";

View File

@ -1,32 +1,32 @@
{ lib
, makeDesktopItem
, copyDesktopItems
, stdenvNoCC
, fetchurl
, appimageTools
, makeWrapper
{
lib,
makeDesktopItem,
copyDesktopItems,
stdenvNoCC,
fetchurl,
appimageTools,
makeWrapper,
}:
let
version = "1.11.5";
version = "1.12.5";
pname = "session-desktop";
src = fetchurl {
url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
hash = "sha256-Sma8e3A1tf7JmnlS4mbtlF98Ow5aRPqw+aUoitzCjmk=";
};
appimage = appimageTools.wrapType2 {
inherit version pname src;
};
appimage-contents = appimageTools.extractType2 {
inherit version pname src;
hash = "sha256-5lE2jab9AK40j2rKYE8zFJr3a+drwCKnVmIZoihhJv8=";
};
appimage = appimageTools.wrapType2 { inherit version pname src; };
appimage-contents = appimageTools.extractType2 { inherit version pname src; };
in
stdenvNoCC.mkDerivation {
inherit version pname;
src = appimage;
nativeBuildInputs = [ copyDesktopItems makeWrapper ];
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
desktopItems = [
(makeDesktopItem {

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
pname = "signal-cli";
version = "0.13.4";
version = "0.13.5";
# Building from source would be preferred, but is much more involved.
src = fetchurl {
url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
hash = "sha256-R+ylymM0k9wvK12qo+S1Ezu2kheH1x4Ll3VFR7HKVXo=";
hash = "sha256-MWQz/+eusZpXUlpPemLf8Y2nOsh2lv0+Ilf/w+7na+k=";
};
buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];

View File

@ -8,14 +8,14 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lcsync";
version = "0.3.0";
version = "0.3.1";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "librecast";
repo = "lcsync";
rev = "v${finalAttrs.version}";
hash = "sha256-eiYbS/LYnM2ZjDHO9KhBp1rrovbhm+OVVfmLtjxAE+Y=";
hash = "sha256-x8KjvUtn00g+zxDfSWZq4WgALDKRgbCF9rtipdOMbpc=";
};
buildInputs = [ lcrq librecast libsodium ];
configureFlags = [ "SETCAP_PROGRAM=true" ];

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://celestia.space/";
homepage = "https://celestiaproject.space/";
description = "Real-time 3D simulation of space";
mainProgram = "celestia";
changelog = "https://github.com/CelestiaProject/Celestia/releases/tag/${version}";

View File

@ -54,12 +54,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
bison
cmake
flex
installShellFiles
];
buildInputs = [
boost
flex
gmp
libxml2
mpfi

View File

@ -3,23 +3,23 @@
{
"kicad" = {
kicadVersion = {
version = "8.0.3";
version = "8.0.4";
src = {
rev = "8ba5ba46af8502ea7a7d2a9754363167c2742399";
sha256 = "0hafvcjjwylgcpgyyasmb2q210k82wvcswvgjvwwh76bwshwcpwa";
rev = "5609722002776982320b6a8fbe6d096bbccf469b";
sha256 = "03971przr1kzmkr302qzx30mmp92mkwg29dwjvzayc522iskxcbx";
};
};
libVersion = {
version = "8.0.3";
version = "8.0.4";
libSources = {
symbols.rev = "2bc103c46a8daacbba2cded8b9f095b330ba928d";
symbols.sha256 = "1za0spq09bbj7xwfwr1abmwjnqfd3zx0crayaz7915ja0ifi75hd";
templates.rev = "0f57b59d365d1f8b8fdd0745e10beb035e88ba37";
symbols.rev = "967a2828636d21f90ccc28dcfdc0e48508101c9d";
symbols.sha256 = "1s8mkxb3ncb0w8z5q8jzhryb0yri7g51vx29qykqwv4ksra1f07i";
templates.rev = "9c51a73b2e2fc4ea75d8b8be0a78bc9fb1785433";
templates.sha256 = "03idwrk3vj9h2az8j8lqpbdbnfxdbkzh4db68kq3644yj3cnlcza";
footprints.rev = "539ffd8c0898ad8c8c51c2ab85ba56bfd77271c7";
footprints.sha256 = "0ik4hjl5m65wnpaymg58zbvsfvchhyq5x3psvj6005mgv2hrican";
packages3d.rev = "3172a1cc0931c1734efad68623374d5277f8ab60";
packages3d.sha256 = "1yjlg7cxwhlzcdbxjqyqamr140sz8gvzi63k2401mhdbh88c9kii";
footprints.rev = "a2aa9b5aea64c0efad9a31bc9ca88d48c0203752";
footprints.sha256 = "1aqdb7mamz8xzz1qrw3qnvnaj97asb8z37w1cjz6y06sjcznlihn";
packages3d.rev = "5430edd57b3a66fe69288aa8fda714f9732a7f52";
packages3d.sha256 = "0vixdcldvnl8lr8bq3rc748q3vhx1lr2a0i071w914xyn983z9vz";
};
};
};

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "nvc";
version = "1.13.0";
version = "1.13.1";
src = fetchFromGitHub {
owner = "nickg";
repo = "nvc";
rev = "r${version}";
hash = "sha256-mM2TkNXZSTr6fo8FxqDYbRlKw4dsADddS+VUEeeH3h8=";
hash = "sha256-mi/ruW+KLOeT6QpyRr+ZRtyOAyXsoKiO5WKAuXz5Wc4=";
};
nativeBuildInputs = [

View File

@ -116,7 +116,7 @@ let
# We need to replace the ssh-askpass-sublime executable because the default one
# will not function properly, in order to work it needs to pass an argv[0] to
# the sublime_merge binary, and the built-in version will will try to call the
# the sublime_merge binary, and the built-in version will try to call the
# sublime_merge wrapper script which cannot pass through the original argv[0] to
# the sublime_merge binary. Thankfully the ssh-askpass-sublime functionality is
# very simple and can be replaced with a simple wrapper script.

View File

@ -7,7 +7,7 @@ let
# sandboxed builds, we manually download them and save them so these files
# are fetched ahead-of-time instead of during the CMake build. To update
# plex-media-player use the update.sh script, so the versions and hashes
# for these files are are also updated!
# for these files are also updated!
depSrcs = import ./deps.nix { inherit fetchurl; };
in mkDerivation rec {
pname = "plex-media-player";

View File

@ -49,7 +49,7 @@ let
helpersBin = symlinkJoin {
name = "podman-helper-binary-wrapper";
# this only works for some binaries, others may need to be be added to `binPath` or in the modules
# this only works for some binaries, others may need to be added to `binPath` or in the modules
paths = [
gvproxy
] ++ lib.optionals stdenv.isLinux [

View File

@ -41,6 +41,7 @@
valgrind,
wayland,
wayland-protocols,
wayland-scanner,
xcbutil,
xcbutilwm,
xz,
@ -63,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake
makeWrapper
pkg-config
wayland-scanner
] ++ lib.optionals buildManPages [ ruby ];
buildInputs = [

View File

@ -0,0 +1,113 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
buildFHSEnv,
installShellFiles,
go-task,
}:
let
pkg = buildGoModule rec {
pname = "arduino-cli";
version = "1.0.3";
src = fetchFromGitHub {
owner = "arduino";
repo = pname;
rev = "v${version}";
hash = "sha256-/2GtWiks/d8sTJ6slX2nQtFpGkqm4PSfgDd0uVG+qN8=";
};
nativeBuildInputs = [ installShellFiles ];
nativeCheckInputs = [ go-task ];
subPackages = [ "." ];
vendorHash = "sha256-OkilZMDTueHfn6T5Af8e+CVersSPDMcAUUB2o1ny6nc=";
postPatch =
let
skipTests = [
# tries to "go install"
"TestDummyMonitor"
# try to Get "https://downloads.arduino.cc/libraries/library_index.tar.bz2"
"TestDownloadAndChecksums"
"TestParseArgs"
"TestParseReferenceCores"
"TestPlatformSearch"
"TestPlatformSearchSorting"
];
in
''
substituteInPlace Taskfile.yml \
--replace-fail "go test" "go test -p $NIX_BUILD_CORES -skip '(${lib.concatStringsSep "|" skipTests})'"
'';
doCheck = stdenv.isLinux;
checkPhase = ''
runHook preCheck
task go:test
runHook postCheck
'';
ldflags = [
"-s"
"-w"
"-X github.com/arduino/arduino-cli/version.versionString=${version}"
"-X github.com/arduino/arduino-cli/version.commit=unknown"
] ++ lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
export HOME="$(mktemp -d)"
installShellCompletion --cmd arduino-cli \
--bash <($out/bin/arduino-cli completion bash) \
--zsh <($out/bin/arduino-cli completion zsh) \
--fish <($out/bin/arduino-cli completion fish)
unset HOME
'';
meta = with lib; {
inherit (src.meta) homepage;
description = "Arduino from the command line";
mainProgram = "arduino-cli";
changelog = "https://github.com/arduino/arduino-cli/releases/tag/${version}";
license = [
licenses.gpl3Only
licenses.asl20
];
maintainers = with maintainers; [
ryantm
sfrijters
];
};
};
in
if stdenv.isLinux then
# buildFHSEnv is needed because the arduino-cli downloads compiler
# toolchains from the internet that have their interpreters pointed at
# /lib64/ld-linux-x86-64.so.2
buildFHSEnv {
inherit (pkg) name meta;
runScript = "${pkg.outPath}/bin/arduino-cli";
extraInstallCommands =
''
mv $out/bin/$name $out/bin/arduino-cli
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
cp -r ${pkg.outPath}/share $out/share
'';
passthru.pureGoPkg = pkg;
targetPkgs = pkgs: with pkgs; [ zlib ];
}
else
pkg

View File

@ -85,6 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeCheckInputs = [
dbus
dbus-test-runner
(python3.withPackages (ps: with ps; [
python-dbusmock
]))

View File

@ -6,7 +6,7 @@
cargo-shear,
}:
let
version = "1.1.0";
version = "1.1.1";
in
rustPlatform.buildRustPackage {
pname = "cargo-shear";
@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
owner = "Boshen";
repo = "cargo-shear";
rev = "v${version}";
hash = "sha256-D6O8raELxmcv47vaIa7XSmnPNhrsEx8fIpt/n1dp+8Y=";
hash = "sha256-4HGI0G3fOzj787fXyUMt4XK4KMtrilOJUw1DqRpUoYY=";
};
cargoHash = "sha256-GpEG6yoRTmnjeC74tz6mq6vbG4hnIWbbijIIos7Ng3Y=";
cargoHash = "sha256-sQiWd8onSJMo7+ouCPye7IaGzYp0N3rMC4PZv+/DPt4=";
# https://github.com/Boshen/cargo-shear/blob/a0535415a3ea94c86642f39f343f91af5cdc3829/src/lib.rs#L20-L23
SHEAR_VERSION = version;

View File

@ -73,6 +73,7 @@ in stdenv.mkDerivation (finalAttrs: {
nasm
ninja
pkg-config
wxGTK32
];
buildInputs = [

View File

@ -29,6 +29,8 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
strictDeps = true;
nativeBuildInputs = [
meson
ninja
@ -56,6 +58,10 @@ stdenv.mkDerivation rec {
"-Dprofiler=disabled"
];
postPatch = ''
patchShebangs --build build/choose-tests-locale.sh
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/cjs";
description = "JavaScript bindings for Cinnamon";

View File

@ -5,13 +5,13 @@ rustPlatform.buildRustPackage rec {
# Since then, `dust` has been freed up, allowing this package to take that attribute.
# However in order for tools like `nix-env` to detect package updates, keep `du-dust` for pname.
pname = "du-dust";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "bootandy";
repo = "dust";
rev = "v${version}";
hash = "sha256-ERcXVLzgurY6vU+exZ5IcM0rPbWrpghDO1m2XwE5i38=";
hash = "sha256-oaDJLDFI193tSzUDqQI/Lvrks0FLYTMLrrwigXwJ+rY=";
# Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation.
postFetch = ''
@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
'';
};
cargoHash = "sha256-ubcfLNiLQ71QcD5YneMD5N1ipsR1GK5GJQ0PrJyv6qI=";
cargoHash = "sha256-o9ynFkdx6a8kHS06NQN7BzWrOIxvdVwnUHmxt4cnmQU=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -17,16 +17,16 @@
rustPlatform.buildRustPackage rec {
pname = "eza";
version = "0.18.22";
version = "0.18.23";
src = fetchFromGitHub {
owner = "eza-community";
repo = "eza";
rev = "v${version}";
hash = "sha256-AZTfFMovNZao/zYzXkVZFGuxUnWz41PmJhuzcIPmwZc=";
hash = "sha256-Zwi6YfYhOLZ+RcIH/u1IeUn4Ty9jOvv9R0RTLO8Yi8Q=";
};
cargoHash = "sha256-c35CscrsKrzOpzP00K63VUtNcQOzEvS2412s16O4wHw=";
cargoHash = "sha256-6g9EtHJaUAoIyjiklX/FxlGNZMzh6/mN9Yug35svfrE=";
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
buildInputs = [ zlib ]

View File

@ -120,7 +120,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "fwupd";
version = "1.9.21";
version = "1.9.22";
# libfwupd goes to lib
# daemon, plug-ins and libfwupdplugin go to out
@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "fwupd";
repo = "fwupd";
rev = finalAttrs.version;
hash = "sha256-V3v3lTz3KUt/zEv5BuUcN7S2ZXHPbhYN5vsFPNuxbFY=";
hash = "sha256-skmfTejj9cPdihwPIbsyoSI8ekVNcUXUNMcpPs9uSNo=";
};
patches = [

View File

@ -11,13 +11,13 @@
buildGoModule rec {
pname = "fzf";
version = "0.54.1";
version = "0.54.2";
src = fetchFromGitHub {
owner = "junegunn";
repo = "fzf";
rev = "v${version}";
hash = "sha256-nE4ibYAOH3fgZbpf/tPocXFH6GfialYk/gvLltO8x/w=";
hash = "sha256-9vuz18rosYpkBmJc37CNXEry4OWMSQ03atdCiwY+KYY=";
};
vendorHash = "sha256-uhjJPB/jfRPAu9g41vWFnSBIN9TIZW3s6BGz0fA2ygE=";

View File

@ -11,6 +11,7 @@
pam,
wayland,
wayland-protocols,
wayland-scanner,
cairo,
file,
libjpeg,
@ -37,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
wayland-scanner
];
buildInputs = [

View File

@ -0,0 +1,58 @@
{
lib,
fetchPypi,
python3Packages,
util-linux,
}:
python3Packages.buildPythonApplication rec {
pname = "isisdl";
version = "1.3.20";
src = fetchPypi {
inherit pname version;
hash = "sha256-s0vGCJVSa6hf6/sIhzmaxpziP4izoRwcZfxvm//5inY=";
};
pyproject = true;
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
cryptography
requests
pyyaml
packaging
colorama
pyinotify
distro
psutil
];
pythonRelaxDeps = [
"cryptography"
"requests"
"packaging"
"distro"
"psutil"
];
buildInputs = [
util-linux # for runtime dependency `lsblk`
];
# disable tests since they require valid login credentials
doCheck = false;
meta = {
homepage = "https://github.com/Emily3403/isisdl";
description = "Downloader for ISIS of TU-Berlin";
longDescription = ''
A downloading utility for ISIS of TU-Berlin.
Download all your files and videos from ISIS.
'';
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ bchmnn ];
mainProgram = "isisdl";
platforms = lib.platforms.linux;
};
}

View File

@ -23,6 +23,7 @@
, metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
, vulkanSupport ? false
, rpcSupport ? false
, shaderc
, vulkan-headers
, vulkan-loader
, ninja
@ -61,6 +62,7 @@ let
];
vulkanBuildInputs = [
shaderc
vulkan-headers
vulkan-loader
];

View File

@ -21,7 +21,8 @@ let
qtbase
qtmultimedia
qtwayland
wrapQtAppsHook;
wrapQtAppsHook
;
in
stdenv.mkDerivation (finalAttrs: {
pname = "melonDS";
@ -40,38 +41,45 @@ stdenv.mkDerivation (finalAttrs: {
wrapQtAppsHook
];
buildInputs = [
SDL2
extra-cmake-modules
libarchive
libslirp
libGL
qtbase
qtmultimedia
zstd
] ++ lib.optionals stdenv.isLinux [
wayland
qtwayland
];
buildInputs =
[
SDL2
extra-cmake-modules
libarchive
libslirp
libGL
qtbase
qtmultimedia
zstd
]
++ lib.optionals stdenv.isLinux [
wayland
qtwayland
];
cmakeFlags = [
(lib.cmakeBool "USE_QT6" true)
];
cmakeFlags = [ (lib.cmakeBool "USE_QT6" true) ];
strictDeps = true;
qtWrapperArgs = lib.optionals stdenv.isLinux [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
] ++ lib.optionals stdenv.isDarwin [
"--prefix DYLD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
];
qtWrapperArgs =
lib.optionals stdenv.isLinux [
"--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libpcap
wayland
]
}"
]
++ lib.optionals stdenv.isDarwin [
"--prefix DYLD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
];
installPhase = lib.optionalString stdenv.isDarwin ''
runHook preInstall
mkdir -p $out/Applications
cp -r melonDS.app $out/Applications/
runHook postInstall
'';
'';
passthru = {
updateScript = unstableGitUpdater { };

View File

@ -4,14 +4,12 @@
, installShellFiles
, fetchFromGitHub
, pkg-config
}: stdenv.mkDerivation (finalAttrs: {
name = "mouse_m908";
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mouse_m908";
version = "3.4";
nativeBuildInputs = [ pkg-config installShellFiles ];
buildInputs = [ libusb1.dev ];
src = fetchFromGitHub {
owner = "dokutan";
repo = "mouse_m908";
@ -19,6 +17,10 @@
sha256 = "sha256-sCAvjNpJYkp4G0KkDJtHOBR1vc80DZJtWR2W9gakkzQ=";
};
nativeBuildInputs = [ pkg-config installShellFiles ];
buildInputs = [ libusb1 ];
# Uses proper nix directories rather than the ones specified in the makefile
installPhase = ''
runHook preInstall
@ -28,11 +30,11 @@
$out/share/doc/mouse_m908 \
$out/lib/udev/rules.d
cp mouse_m908 $out/bin/mouse_m908 && \
cp mouse_m908.rules $out/lib/udev/rules.d && \
cp examples/* $out/share/doc/mouse_m908 && \
cp README.md $out/share/doc/mouse_m908 && \
cp keymap.md $out/share/doc/mouse_m908 && \
cp mouse_m908 $out/bin/mouse_m908
cp mouse_m908.rules $out/lib/udev/rules.d
cp examples/* $out/share/doc/mouse_m908
cp README.md $out/share/doc/mouse_m908
cp keymap.md $out/share/doc/mouse_m908
installManPage mouse_m908.1
runHook postInstall

View File

@ -40,10 +40,10 @@ stdenv.mkDerivation rec {
sourceRoot = main_src.name;
nativeBuildInputs
= [ cmake ]
= [ cmake python3 ]
++ (lib.optional enableGui wrapQtAppsHook);
buildInputs
= [ boostPython python3 eigen python3Packages.apycula ]
= [ boostPython eigen python3Packages.apycula ]
++ (lib.optional enableGui qtbase)
++ (lib.optional stdenv.cc.isClang llvmPackages.openmp);

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "nomnatong";
version = "5.10";
version = "5.11";
src = fetchFromGitHub {
owner = "nomfoundation";
repo = "font";
rev = "v${finalAttrs.version}";
hash = "sha256-e7LT6lwm4jbqL+mtvfZsCC7F6KOVYD/lAGRPAgyyMxc=";
hash = "sha256-LaMggMZIehQynA6tokOte28bbV3H0kagJRsbE8ZczsM=";
};
nativeBuildInputs = [

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "nrr";
version = "0.9.3";
version = "0.9.4";
src = fetchFromGitHub {
owner = "ryanccn";
repo = "nrr";
rev = "v${version}";
hash = "sha256-P1LJFVe2MUkvKFP4XJvuFup9JKPv9Y2uWfoi8/N7JUo=";
hash = "sha256-X1zgQvgjWbTQAOHAZ+G2u0yO+qeiU0hamTLM39VOK20=";
};
cargoHash = "sha256-owj5rzqtlbMMc84u5so0QbEzd2vnWk3KyM/A9ChxoVw=";
cargoHash = "sha256-NpvYN68l5wibrFxST35sWDBbUG1mauNszA8NYIWGGa0=";
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.CoreFoundation

View File

@ -1,37 +1,35 @@
{ lib
, stdenv
, fetchFromGitLab
, cmake
, glm
, libGL
, openxr-loader
, python3
, vulkan-headers
, vulkan-loader
, xorg
, unstableGitUpdater
{
cmake,
fetchFromGitLab,
glm,
jsoncpp,
lib,
libGL,
openxr-loader,
python3,
stdenv,
unstableGitUpdater,
vulkan-headers,
vulkan-loader,
xorg,
}:
stdenv.mkDerivation {
pname = "opencomposite";
version = "0-unstable-2024-06-12";
version = "0-unstable-2024-07-23";
src = fetchFromGitLab {
owner = "znixian";
repo = "OpenOVR";
rev = "de1658db7e2535fd36c2e37fa8dd3d756280c86f";
hash = "sha256-xyEiuEy3nt2AbF149Pjz5wi/rkTup2SgByR4DrNOJX0=";
rev = "632e5cc50b913e93194ca2970e6f13021182579f";
hash = "sha256-KQmNyGRlbUrntTPNn5rzTyyR+Bvh3EfSqBgyNGGDo04=";
};
nativeBuildInputs = [
cmake
];
nativeBuildInputs = [ cmake ];
buildInputs = [
glm
jsoncpp
libGL
openxr-loader
python3
@ -41,19 +39,11 @@ stdenv.mkDerivation {
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_CXX_FLAGS" "-Wno-error=format-security")
(lib.cmakeBool "USE_SYSTEM_OPENXR" true)
(lib.cmakeBool "USE_SYSTEM_GLM" true)
];
# NOTE: `cmakeFlags` will get later tokenized by bash and there is no way
# of inserting a flag value with a space in it (inserting `"` or `'` won't help).
# https://discourse.nixos.org/t/cmakeflags-and-spaces-in-option-values/20170/2
preConfigure = ''
cmakeFlagsArray+=(
"-DCMAKE_CXX_FLAGS=-DGLM_ENABLE_EXPERIMENTAL -Wno-error=format-security"
)
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/opencomposite
@ -66,10 +56,10 @@ stdenv.mkDerivation {
branch = "openxr";
};
meta = with lib; {
meta = {
description = "Reimplementation of OpenVR, translating calls to OpenXR";
homepage = "https://gitlab.com/znixian/OpenOVR";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [ Scrumplex ];
license = with lib.licenses; [ gpl3Only ];
maintainers = with lib.maintainers; [ Scrumplex ];
};
}

View File

@ -41,15 +41,16 @@ let
# get cccl from source to avoid license issues
nvidia-cccl = clangStdenv.mkDerivation {
pname = "nvidia-cccl";
# note that v2.2.0 has some cmake issues
version = "2.2.0-unstable-2024-01-26";
# note, after v2.2.0, manifold dependency fails with some swap() ambiguities
version = "2.2.0";
src = fetchFromGitHub {
owner = "NVIDIA";
repo = "cccl";
fetchSubmodules = true;
rev = "0c9d03276206a5f59368e908e3d643610f9fddcd";
hash = "sha256-f11CNfa8jF9VbzvOoX1vT8zGIJL9cZ/VBpiklUn0YdU=";
rev = "v2.2.0";
hash = "sha256-azHDAuK0rAHrH+XkN3gHDrbwZOclP3zbEMe8VRpMjDQ=";
};
patches = [ ./thrust-cmake.patch ];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ tbb_2021_11 ];
cmakeFlags = [
@ -81,12 +82,12 @@ in
# clang consume much less RAM than GCC
clangStdenv.mkDerivation rec {
pname = "openscad-unstable";
version = "2024-03-10";
version = "2024-07-24";
src = fetchFromGitHub {
owner = "openscad";
repo = "openscad";
rev = "db167b1df31fbd8a2101cf3a13dac148b0c2165d";
hash = "sha256-i2ZGYsNfMLDi3wRd/lohs9BuO2KuQ/7kJIXGtV65OQU=";
rev = "48f4430b12c29a95ab89ffdd8307205d7189421c";
hash = "sha256-A75JHmWVNlgURb5one5JFkztCrVff2RbyaDaObUp4ZY=";
fetchSubmodules = true;
};
patches = [ ./test.diff ];

View File

@ -0,0 +1,13 @@
diff --git a/thrust/thrust/cmake/thrust-header-search.cmake.in b/thrust/thrust/cmake/thrust-header-search.cmake.in
index 8529d89fe..94879ee01 100644
--- a/thrust/thrust/cmake/thrust-header-search.cmake.in
+++ b/thrust/thrust/cmake/thrust-header-search.cmake.in
@@ -7,7 +7,6 @@ set(from_install_prefix "@from_install_prefix@")
find_path(_THRUST_VERSION_INCLUDE_DIR thrust/version.h
NO_CMAKE_FIND_ROOT_PATH # Don't allow CMake to re-root the search
NO_DEFAULT_PATH # Only search explicit paths below:
- PATHS
- "${CMAKE_CURRENT_LIST_DIR}/${from_install_prefix}/@CMAKE_INSTALL_INCLUDEDIR@"
+ PATHS "@CMAKE_INSTALL_INCLUDEDIR@"
)
set_property(CACHE _THRUST_VERSION_INCLUDE_DIR PROPERTY TYPE INTERNAL)

View File

@ -21,13 +21,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "opentelemetry-cpp";
version = "1.16.0";
version = "1.16.1";
src = fetchFromGitHub {
owner = "open-telemetry";
repo = "opentelemetry-cpp";
rev = "v${finalAttrs.version}";
hash = "sha256-rMqNz8F/ahgDtQiLsswckd2jQPR9FTeSZKRFz2jWVoo=";
hash = "sha256-31zwIZ4oehhfn+oCyg8VQTurPOmdgp72plH1Pf/9UKQ=";
};
patches = [

View File

@ -8,11 +8,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-pass";
version = "1.20.1";
version = "1.20.2";
src = fetchurl {
url = "https://proton.me/download/PassDesktop/linux/x64/ProtonPass_${finalAttrs.version}.deb";
hash = "sha256-G14/gVevvccV8ILPr701IP8krR2/mOnRn0icCP1Hi4s=";
hash = "sha256-4QSBKVnEH7yDXwqY+29/a+yWv89i/TVCYO26V95KA4s=";
};
dontConfigure = true;

View File

@ -1,32 +1,41 @@
{ lib
, stdenv
, fetchurl
, tk
, tcllib
, tcl
, tkremind ? true
{
lib,
stdenv,
fetchurl,
tk,
tcllib,
tcl,
tkremind ? null,
withGui ?
if tkremind != null then
lib.warn "tkremind is deprecated and should be removed; use withGui instead." tkremind
else
true,
}:
tcl.mkTclDerivation rec {
pname = "remind";
version = "05.00.01";
version = "05.00.02";
src = fetchurl {
url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
hash = "sha256-tj36/lLn67/hkNMrRVGXRLqQ9Sx6oDKZHeajiSYn97c=";
hash = "sha256-XxVjAV3TGDPI8XaFXXSminsMffq8m8ljw68YMIC2lYg=";
};
propagatedBuildInputs = lib.optionals tkremind [ tcllib tk ];
propagatedBuildInputs = lib.optionals withGui [
tcllib
tk
];
postPatch = lib.optionalString tkremind ''
postPatch = lib.optionalString withGui ''
# NOTA BENE: The path to rem2pdf is replaced in tkremind for future use
# as rem2pdf is currently not build since it requires the JSON::MaybeXS,
# Pango and Cairo Perl modules.
substituteInPlace scripts/tkremind \
--replace-fail "exec wish" "exec ${lib.getBin tk}/bin/wish" \
--replace-fail 'set Remind "remind"' "set Remind \"$out/bin/remind\"" \
--replace-fail 'set Rem2PS "rem2ps"' "set Rem2PS \"$out/bin/rem2ps\"" \
--replace-fail 'set Rem2PDF "rem2pdf"' "set Rem2PDF \"$out/bin/rem2pdf\""
--replace-fail "exec wish" "exec ${lib.getExe' tk "wish"}" \
--replace-fail 'set Remind "remind"' 'set Remind "$out/bin/remind"' \
--replace-fail 'set Rem2PS "rem2ps"' 'set Rem2PS "$out/bin/rem2ps"' \
--replace-fail 'set Rem2PDF "rem2pdf"' 'set Rem2PDF "$out/bin/rem2pdf"'
'';
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin (toString [
@ -39,7 +48,10 @@ tcl.mkTclDerivation rec {
homepage = "https://dianne.skoll.ca/projects/remind/";
description = "Sophisticated calendar and alarm program for the console";
license = licenses.gpl2Only;
maintainers = with maintainers; [ raskin kovirobi ];
maintainers = with maintainers; [
raskin
kovirobi
];
mainProgram = "remind";
platforms = platforms.unix;
};

View File

@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
pkg-config
protobuf
cmake
qt5.wrapQtAppsHook
];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "tippecanoe";
version = "2.56.0";
version = "2.57.0";
src = fetchFromGitHub {
owner = "felt";
repo = "tippecanoe";
rev = finalAttrs.version;
hash = "sha256-n1ZhOlhrI1cSOwv7NP2VDAPC/2HmMJBkNLH6NPY3BnM=";
hash = "sha256-IFyewy/is5BNJ7/LzhHXLwLaSrMAJ6II1aSY9AspEk4=";
};
buildInputs = [ sqlite zlib ];

View File

@ -0,0 +1,31 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation rec {
pname = "ttf-indic";
version = "0.2";
src = fetchurl {
url = "https://www.indlinux.org/downloads/files/indic-otf-${version}.tar.gz";
hash = "sha256-ZFmg1JanAf3eeF7M+yohrXYSUb0zLgNSFldEMzkhXnI=";
};
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts/truetype OpenType/*.ttf
runHook postInstall
'';
meta = {
homepage = "https://www.indlinux.org/wiki/index.php/Downloads";
description = "Indic Opentype Fonts collection";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.akssri ];
platforms = lib.platforms.all;
};
}

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "uxn";
version = "1.0-unstable-2024-06-15";
version = "1.0-unstable-2024-07-26";
src = fetchFromSourcehut {
owner = "~rabbits";
repo = "uxn";
rev = "1c74aa173147b19135f1bf21af5fb30f9b76e02d";
hash = "sha256-xhMXDAc/laQKZtYBFvFSyVtJv5AkvugV8olHmB6Mt4g=";
rev = "bf10311d5aad4184098c84a96845e30b1f53634d";
hash = "sha256-OVITP8AbWchcFaVOHkck8hwGlEl/TgtbtkApoKex4ig=";
};
outputs = [ "out" "projects" ];

View File

@ -10,11 +10,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "wiremock";
version = "3.8.0";
version = "3.9.1";
src = fetchurl {
url = "mirror://maven/org/wiremock/wiremock-standalone/${finalAttrs.version}/wiremock-standalone-${finalAttrs.version}.jar";
hash = "sha256-cEsa2xg8ZDb5/LQO5Gj+LCuV18D+LbEK7nrGT+cm158=";
hash = "sha256-cjqIDVDTsKFFrw3wfleMLLhed/6yIx5pkcmhNmkmkSw=";
};
dontUnpack = true;

View File

@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication {
computer readable data, it is also often used as a format for hierarchical
data that can be rendered into human readable formats. A traditional diff
on such a format would tell you line by line the differences, but this
would not be be readable by a human. xmldiff provides tools to make human
would not be readable by a human. xmldiff provides tools to make human
readable diffs in those situations.
'';
license = lib.licenses.mit;

View File

@ -2,11 +2,11 @@
buildGraalvmNativeImage rec {
pname = "yamlscript";
version = "0.1.66";
version = "0.1.68";
src = fetchurl {
url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
hash = "sha256-FsSMH4kdfMjWe3sMsCkdTf5bhYX0abqGOQvNdHYBu80=";
hash = "sha256-NeiG8o5Le549kYILw9vA1EmQ1PcHjCAdwQAnKdYNMwk=";
};
executable = "ys";

View File

@ -17,7 +17,7 @@ let
in
stdenv.mkDerivation rec {
pname = "${name}-bin";
version = "30.3.2";
version = "30.3.3";
src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";

View File

@ -1,93 +1,93 @@
# This file was autogenerated. DO NOT EDIT!
{
Iosevka = "1d8ial7bmqwg7msmz5gqfddfp0dnqck9v02h8ghjnkf3gwc1myn1";
IosevkaAile = "1wl05qa21rzbir80ig4li7mym9w8gbx7fnxi3mm4g6r32a397p4v";
IosevkaCurly = "1anyvcixknxf9vld83yv7w2mn63rvmanq1a1hy3kgjyk9d67gxfi";
IosevkaCurlySlab = "01byfnvyypacwk5mmlhzz769d6l81z4px5ywn2m9zrphcfvvy42k";
IosevkaEtoile = "1k6s4x7j9yiv62lc4bxp122x13b126xgy0d8jz4fyawnzzcqwadq";
IosevkaSlab = "0rq1gdrz89vlvk41wmlghfnlkmfrwl18lh1glki87wkpyc303wnz";
IosevkaSS01 = "1yfbangcfqmf8k5iw7if9zgb4f4rxr60wyi2gah79bab4aamqifd";
IosevkaSS02 = "1qpdkr9qw0n04j80gi8x6w0qn7z3s71lg1asxpg11jpba6hqb57y";
IosevkaSS03 = "12jwd3falkl58dhn2bdr01s08s9cxff20apfz2p29245arb7gppz";
IosevkaSS04 = "1k4kq83cnxm3sprzrx8gbqf7vhlrs8hcaby7iw5llzrf3nyh7ipq";
IosevkaSS05 = "0bfr9ngicz01jlmcrcsw173h33bp2xc9c7p6bcb86gf6fgqq38rw";
IosevkaSS06 = "13whqch4mf5zznq30xya240qsi8zsd2s56zl4df86vfzv4l5yr4v";
IosevkaSS07 = "19q0pi54ch3bsw3h5bngk57rj8p6pm4h6zzq08avcwzid3cz4rik";
IosevkaSS08 = "0j7lrj3hzcc7j3hz6p2pnh5fjf5ajgmsmbzac7fa23j5mhg71vi6";
IosevkaSS09 = "143gj6mzwn7267h8dp8p8cm0yqq2kjm8gdyf6v9pdr3yq3g0dmwy";
IosevkaSS10 = "1v94gf7rbapf7rp2r9yb11k2qqxn4p5cdb0fbws0wshhjd2akb09";
IosevkaSS11 = "049z96078fl98kidp6mm3535d9fq53jmipz51hsz64ba91azj82l";
IosevkaSS12 = "0f827rvzndzkb5w69piydd6vygmzj7gkaffk0wnh1ksz561x4nmc";
IosevkaSS13 = "1mrrl8szsmnxyys9r5y6a6ziagrcrvgikw845whs25p6v2vrz7ag";
IosevkaSS14 = "088sga3clabsffwd2asdxcn0nzn2jm4njp3sf7rfi9xrcy4nvwrr";
IosevkaSS15 = "08p7zaj977yssn2x7rd00ij9j53jg1322ni36a4narhsbikms32j";
IosevkaSS16 = "12zbdlpnvp9cx2x0x7xr929z0qxk3w4waam5m54ycrkjkx5qbjzb";
IosevkaSS17 = "1b57w2zqplrfjhxd4ylwl6gbzza3msyccm843v90yhzyazdhbl30";
IosevkaSS18 = "1wi65nlw0ag2haqcjikvw2vzgpy7n60cqnh0c06dfvvv8b499k3i";
SGr-Iosevka = "01hisr1h4ipxhcaqbvyq1cbwmwi5l74q8k0k3smc0b66icar3yqx";
SGr-IosevkaCurly = "166mhny2kl4cfpaiid1dqmjr6pm9di1cf7n1v998ddzdz8i4jnyi";
SGr-IosevkaCurlySlab = "0c3argr2dsg9z9xjpl6rhnvarz6mbhi8ar1d0w937l1sj4rnqs7w";
SGr-IosevkaFixed = "0wrw3swn07w907x7hwq0mciki07dhqzr0zdkirq2f61a87hdfkl8";
SGr-IosevkaFixedCurly = "12nycck76j9aj6n052f2s2ygfhvn3r2xscnpl757klhfvzfcdvjy";
SGr-IosevkaFixedCurlySlab = "032jax5aj0k0qdqa3184xqnczsvsqkw15z5dpygxbnrz6s0s7999";
SGr-IosevkaFixedSlab = "1lv6ys56m5fry5ngzn1gjipi75a1ivcszlx4dywriasmqg84b16x";
SGr-IosevkaFixedSS01 = "1cbjx7a721a7vinrrz7wcq2hzkqjhwwvipny061p6m6fsci5pnzz";
SGr-IosevkaFixedSS02 = "02rqfz0b8pfny2np4cv9ba4f1bv1ciplxhpjf67c3q80vlgljmcr";
SGr-IosevkaFixedSS03 = "089w4r5xv4xvcr4id2nl78syak83zx7qzbg7kl4bm50n7xfm794w";
SGr-IosevkaFixedSS04 = "0cgadjx4gxlhqd93lnq87y201qpcf1v6v8sqnkwv0az5biil7pbc";
SGr-IosevkaFixedSS05 = "146v7y49gg0jb5x6isqsmjandq5ya4nil0zcmiadqxrmyhx40lvh";
SGr-IosevkaFixedSS06 = "1x9lykvkhjzz084i7ndq5gpd2hy2s19vqyvrgja79qddifir3k3k";
SGr-IosevkaFixedSS07 = "1b0m46c4kq639y0csckd5f6hcl9d9i6b0745i8aynfhla2wva3j9";
SGr-IosevkaFixedSS08 = "0ysy7xiismi3pr7sk3b9nn4nh1dw6jr5l0wllvj30f8rh8z05a0s";
SGr-IosevkaFixedSS09 = "1b36n1lv6c5k2asv4xrcmgyc09n704slfbzsi4g2q20c032nax1l";
SGr-IosevkaFixedSS10 = "1f1gscpfzqghmmdygvy5v39vj38rsi4k1hx3dp4zl08nbvfic0rb";
SGr-IosevkaFixedSS11 = "1vxy002j4vqi8xqpm551kw804j8vllsw1hs3p4xfqn8qfkqklb3v";
SGr-IosevkaFixedSS12 = "1w4r2w60d962f48xlyg3yfl6q4fn90cwmfjpgf1nlhnpalcpqq99";
SGr-IosevkaFixedSS13 = "16bh6wa06nybqg017hp2k35dphxh1sqzzqnspqkkkssp0pqrljl3";
SGr-IosevkaFixedSS14 = "15jwzgjcsy6agvacn4xz46ijkkwxsgsr5nbvsbhxa3al0yhbkl89";
SGr-IosevkaFixedSS15 = "036aph9qixsrb657n6qzckcbcpf6rswyc945j8m94rx4lar6k10r";
SGr-IosevkaFixedSS16 = "0hx2vz7lpfbxhvs3g8psmlfywzmjksxr5s0d36m4mnga90scwjiw";
SGr-IosevkaFixedSS17 = "1s5hl874bskix5vdxz0w37wmqf5yj633k779gccyq5mlwy9yjmrl";
SGr-IosevkaFixedSS18 = "1zbmpkm17vcrg53qv8sqcpasc97hlz4lh2i0pjz58qsidfsqhcgr";
SGr-IosevkaSlab = "1lhfhag73bhpfzr5fapgcn68awjzk960dc08481p3qb4aphqczlw";
SGr-IosevkaSS01 = "15j23226497zvsk8s9dkgh1dbxjxcc1mdqpc9p7868vl4qjgcyg6";
SGr-IosevkaSS02 = "0cr4h84w9429ypwf1i8h289gfv3k2ls9lfyxgqhdy99ckqgmy8gz";
SGr-IosevkaSS03 = "0am1lck3l2m7pw7nwv62xjcvi5yz94hpx3rmzj4ji22qn6l633zq";
SGr-IosevkaSS04 = "1ggjsdczpjqnhikbp88kch7sai29r4m557y4f9xr7njfzwqkssdy";
SGr-IosevkaSS05 = "0s3iwasn8p72snyp9r4c7bwzxwg5lh6sj2vvwv48clp0aynqj9nm";
SGr-IosevkaSS06 = "1yh2qh718w94dsvm4bf6j4lqbamc0p8054f71kmk4d8zj9iijjy5";
SGr-IosevkaSS07 = "0njr2mgr5gpa5yiymzg3n52xw6zi5zpswmsfhlq3gxw5xgjfv4q9";
SGr-IosevkaSS08 = "0kf3p5yf202s45vkxn6zjk5im2rlmqpqcwn2p6vwanj2r4c0mq6j";
SGr-IosevkaSS09 = "15zvggmz43fq9p9jqp40f7s7sa63sk8ss6qk5hpj7661lmw95cli";
SGr-IosevkaSS10 = "1fnkrklrk6rz6nl0l9xwbz5rpjsizfan0rw3b1ylzbv7s6hjm3z6";
SGr-IosevkaSS11 = "06j98fzfi3wqsm1vsc6b3prascfh9ycrfgg240471qx7fyynsnzs";
SGr-IosevkaSS12 = "1a689igs4ygqq87g1yx2v0h29hvv69n78a3dlnyab2p9likidzhi";
SGr-IosevkaSS13 = "124v6asig6in0vwh513yk9a93sl3j3vbnbgx85zk24601r6j4sgd";
SGr-IosevkaSS14 = "017pjpj9m9l8hgpy5d801kdy1xvsyddyb0lzizqj0wlwgwafgayh";
SGr-IosevkaSS15 = "1wf7wvcxfjcywaxjjwa97iy103vfihgmap585kkmjsign72gvhnd";
SGr-IosevkaSS16 = "0069a898ba44460j94jbyiah5i0k8frr84njp75dhm3rbx9xrqh3";
SGr-IosevkaSS17 = "0yqb51y1zfxbzvpmvy08r9q1al4gvmwsnbsj5b5ixspmvda475rn";
SGr-IosevkaSS18 = "1ss8b6dn08a8ch3qcjqrnmh3v205nrr3q7727zvl0xcv47l54kr0";
SGr-IosevkaTerm = "1hygc8cq3qlw5yc2399g6h95bgkwniy3wmcmppr5dd72mhr5ghvn";
SGr-IosevkaTermCurly = "0cyfbmp7ns2jjzcgi1xw92cip3gk7j5imzx1846xdjdb2xima806";
SGr-IosevkaTermCurlySlab = "1vqlqphj860bzs90jci8kmd8dvpd9ggl97r5dwfb3jh8nshyi56c";
SGr-IosevkaTermSlab = "1n61lybs2v9n61mrdg1s7a9yy0ai5p1qqsgj16rh05k72zan66mn";
SGr-IosevkaTermSS01 = "1cgqcz318dl85y8mmqrlr946c7w686bfgbankyqbkda7503xl18c";
SGr-IosevkaTermSS02 = "0yb5c0iphlcwv8k4bh3p6vk2yk8gpyy213vsvb95sxa6838x27pp";
SGr-IosevkaTermSS03 = "0b00s45xfg25ffnfylkiz4ba6acn8b4p64c5q4pans8gfjfnb275";
SGr-IosevkaTermSS04 = "0icmi402xwrd1qn35qpacqzvcxgj42imm1kgixjgmnvbzs508h6a";
SGr-IosevkaTermSS05 = "0qd7jrfgj5niaw8a8l3qf3z4m87hvb3wwcy3fndg1zlmwlbg2cfd";
SGr-IosevkaTermSS06 = "0pg13v5q22k5hfy8vwk1hwh28v52wnfc28amgbkjxgcjyvd5m2xl";
SGr-IosevkaTermSS07 = "0vww5dwpakmwhq5l0g371ha3hy1p0arnfp0f47lw9qsahyl0hhw2";
SGr-IosevkaTermSS08 = "0y3gvmh4fyx2xxyn008i873m3fjwssalg8ib10zjj6mbz767az3l";
SGr-IosevkaTermSS09 = "10jkdw8i4jz16x2kfsh7cmg1s6si3n3d5n65yr9n9ipmgdk2qj2r";
SGr-IosevkaTermSS10 = "0wp9f6982dqha5dwyb4r09bm4fg690pqmb337i9237vzp6q6w0lq";
SGr-IosevkaTermSS11 = "00qqyi4xxgfhcyr2qf5jn42rmnhdn0fpn66qh99v15fa7b8r7iz7";
SGr-IosevkaTermSS12 = "0pz3c13zzvpxd2v2vlvgwk0j4fki1yfd95kycgafrijk2s2g9684";
SGr-IosevkaTermSS13 = "1l5d59vh9ji0rmdixinix10nxcglbll55ad2syra5hvb9rfb6q2q";
SGr-IosevkaTermSS14 = "0nqp05vhjjjg4aci5gaf6zf4w1z973y3wzxv3ndwkagn4gzq7y15";
SGr-IosevkaTermSS15 = "019nzx7azrkgxvlrj2f3gfxjhjdf4ywy2gwan7fwj3kv983s4s6f";
SGr-IosevkaTermSS16 = "16j3v6sbvav27p3i8q2qz76sw5i8bqr6i08khjc5cfx9pf9kfh2f";
SGr-IosevkaTermSS17 = "0gd32ddi0q60scvv10qx5fwmgwwdjrx6j0ymsimmnd4gi3n3ylbr";
SGr-IosevkaTermSS18 = "04j17062cs4h7dcrqb2qzx94wkq8n633j63vdqk72las513535xa";
Iosevka = "0mma97rhjpfq20mq6dji50mxbdgaz72ccfqhrqim6hj5x5pkc2w2";
IosevkaAile = "1frmm1q57xqsxqvz1vmz5fzammpgkgk2lspnkilb1adavla5a5j6";
IosevkaCurly = "0zq07z1nx6b52mxh9kqr880p9aw10whjs0qgwzlyyij7jnk4mx2l";
IosevkaCurlySlab = "0g6p9gpjqmdan81cv9rg2bppcdg7s8iiyn8whxqmxf0prbsyxcw6";
IosevkaEtoile = "1sh3d69m0p8glr8szjd1cyxzsi66qsbmasjlmkwc1fhbw9w5kb5c";
IosevkaSlab = "0sk90cq1zl4d0yjh0p78idjpi2hmr0hy4c4650xls9js0nzszjyj";
IosevkaSS01 = "10f63fkyfcr0mngjql69zsfmy2wffbdzxkacw5jwlcnnpw6lwrz2";
IosevkaSS02 = "0ydmp0mp5n6rh9s48pixrk41vdai3ys4q2wz60rpp8pl2sl7l58f";
IosevkaSS03 = "0k2k54jh2w1pf2hhdx5m1bkk4pj9p541ddnvkw8jxdc30ab9pg0x";
IosevkaSS04 = "12j2d7h1hp1m16m893rn79v56a13kvsz2vabp395fdhjswffpjly";
IosevkaSS05 = "1cvl4hg058675h9amvvjw2qkjk7fs9zs3prdqvllpch77fkznbv3";
IosevkaSS06 = "19cvfxrgqwyaan8xdyfrz1wsnr7cd43szcq0ijwsjxv0afvadp03";
IosevkaSS07 = "1kd3s41nqiihl2wf0944mw7x1gq7xa5jfgis0z23snb9p25gyzli";
IosevkaSS08 = "02yd5s4gvvl2xg68cznj00giqzngmdhmjz290q5d7kkzgzf8v6d4";
IosevkaSS09 = "13hd8f38b0882paqr4pw2wx6raqr9m5d9ndphs8fvyadhsh70xaf";
IosevkaSS10 = "1j0lbwvzqx0lmj3irf01aywqny94sidz8m06xl8vrljczhhz619w";
IosevkaSS11 = "19kndxn9lynx3ambah3gn63d8fdqq5p7i5yxjlsn7g0d5vgvaa9h";
IosevkaSS12 = "0jbsmsh6c2kzrn4kbkj4klc2pk1z54c1pf3c7y1vr8xyqkg43bjs";
IosevkaSS13 = "0jgf400xl1hnd78vi3vdvxmax415rq475v1shfrf0ms3hm0kbrp0";
IosevkaSS14 = "0acrv8frx88292iw55944mfp814iskafyknymiayxnpmmppn078g";
IosevkaSS15 = "18jzzd5jsb9yvv5gcybnn8gcp03x7rhl2z40d16ln9cx150336sx";
IosevkaSS16 = "0405qngdwkxxzyjxx9qy18p37jz1sc5f32ynaiiif0zg0c8bbsrb";
IosevkaSS17 = "0f8is0b4rvy8n2fnydc9f2g958y9xnrww44fhb28vglgwil6pvya";
IosevkaSS18 = "12hz34zfvdlw0dxni23j5knsxcrkvnpvankidkd0y500zisx4i46";
SGr-Iosevka = "1izcklbrm8f993vhdqvyiy9c33d7aykvj4vv2sqwvwid2mv0rvdn";
SGr-IosevkaCurly = "1r7cy3scf8gjp7hp3q80xf28d3px9vmsis8g0a8nr0vrg7wvc0p7";
SGr-IosevkaCurlySlab = "0ja6i81fnz8kvzlfasvm5gx5c7l2hkvl1qfdan9knj6p5390rp25";
SGr-IosevkaFixed = "1gcd6jms5z6pgclr8lgb0ip6z0y6vx9c79wvf0w7ixjcyafb1aq4";
SGr-IosevkaFixedCurly = "1q415xikr2ihrxl3xvpfj7ix1kn1sva089abpjf0yp76rjfx5v9x";
SGr-IosevkaFixedCurlySlab = "1cfii72ci508m7lrv701hsz5bzphjswdpcaccyhzkjqyjbajgvj4";
SGr-IosevkaFixedSlab = "128rcxi2zjaxcbi7a6w739lvxcbaw6ph8q6a1gy20pgapna1l9xf";
SGr-IosevkaFixedSS01 = "0pbv1x4mm7h43sz4r7rb0hkhsm6g7i4pkpi0lbnx2awiafzzlg3s";
SGr-IosevkaFixedSS02 = "11d0si4bmgvz3pl43qbpszj9h9x4g53r29359y2mi5rmw5jym01l";
SGr-IosevkaFixedSS03 = "1nmw3g30hm2rgy0lji0lbihi08iphy943pkrs5fl2c36yf9qxl0d";
SGr-IosevkaFixedSS04 = "18jhd61d4vrmq9ck3wass07ph8frxnq8knl0cdpgqx6izk3fk0ss";
SGr-IosevkaFixedSS05 = "0x9q7jvzsrs71frx662cb4872z9alc2y0r7cjaxpaifc420826z6";
SGr-IosevkaFixedSS06 = "17f9c4cwi46c5jlrj6r6xw6gwjq2cmkjm4832cyjw9fqh4kpb0ih";
SGr-IosevkaFixedSS07 = "1x3j7lp88zrxkmak3fnglin2sp450lmlyv92n56dz2a7gvw0nbs9";
SGr-IosevkaFixedSS08 = "03m7wmwlajhjw3ifhmxl4cxkjjfyldw0bbybhk4cdsw9qni0cbhi";
SGr-IosevkaFixedSS09 = "127466bq6m3k7is2jh45j9c3iik2ckgajhrkhgmhk3fr272ip00z";
SGr-IosevkaFixedSS10 = "1qczqa9lv0hlqjhh5n3j32ampflriwyhp7cvk8vraxp8w01f20vv";
SGr-IosevkaFixedSS11 = "0pm10asyl566l9s00hxb1r43yvhb24hqn3z5akirfxxp5klp9hf3";
SGr-IosevkaFixedSS12 = "0lsy3097aid17hqxljkxj9lpswxvlmk5gv047dh7m6m8vxm3dzcy";
SGr-IosevkaFixedSS13 = "1h5bv9c6yvbvfslx3wm5657f982f17pb2q8j2hl5c50114dbkdib";
SGr-IosevkaFixedSS14 = "1lglsqhcy22hf4zbczpwc7pkmyaglknqpkv9bgckphpzaqgmavln";
SGr-IosevkaFixedSS15 = "18hc5kfj4m57k8p90jc2fnr89ji6q34q6v3b1xkyb0lv9bagq2nl";
SGr-IosevkaFixedSS16 = "0k4nrdqnh6jg40q5xvkrm1jx0iplwybhxy8bn3q7k461d3rn9smv";
SGr-IosevkaFixedSS17 = "02higr5lxiyi6z8b916pkgch2dq0si7m7bf0vxb86daplgljbrna";
SGr-IosevkaFixedSS18 = "0b4ljypil31n0861k43k0dxrmj9djgy8qffwy5vv856lcrdipy8h";
SGr-IosevkaSlab = "18y0j05jjkdkavidrn2bpfd1319yzxp7m0zyhn08394d4m74m8w2";
SGr-IosevkaSS01 = "0k9l74q9lijhxq1slxxkq7wb71nsrdv2bkqsbdxxb5gypqjh136y";
SGr-IosevkaSS02 = "1gzjf6j6ljxnqi3xzcs1q1qzazyzw9d4az4l1nmsbkk5nfw3skbi";
SGr-IosevkaSS03 = "1d8ihwf8m47lvlyyar4wd2xqjn4g5qmy1pp81dd2p999j47fzz84";
SGr-IosevkaSS04 = "0dwhmlsv4x3z2xmnqwdciys0j22z25vcwqrb7wmy7c5sdhfkd4pn";
SGr-IosevkaSS05 = "02nid5vi8q71lcaxwllyaa7j2qdb8hycw5k3b9fiw9bvliip7bwl";
SGr-IosevkaSS06 = "1vx6nqv2m1f32xqgv6px2r0rr60rb8rns6f2y2dmnz1b55j4ap84";
SGr-IosevkaSS07 = "0rgk9z2mrz990szq1m5664x1jq3056df9warjpj0nnr0d3a8406q";
SGr-IosevkaSS08 = "1sv09fsd3xwwjdkiw93v7pvs3a1r7mbxqgyw73l4v8k5c8f16q14";
SGr-IosevkaSS09 = "1hrk9pn407f57bx6zjc9mxzr7286vz2llyrkn808q1dlvisp3gc9";
SGr-IosevkaSS10 = "1sk339gl5r004pd52daclk2zl5zybcfra2hdafvrmc81fkd2pz7b";
SGr-IosevkaSS11 = "0rp7488skw396qdw8lyv69fgkz3b5i5nbjzkbrlfjasp2sgyg1i9";
SGr-IosevkaSS12 = "04446s3bjdpvk25361n88xmcc3ylh9frabb11wgs79brm2i8qf57";
SGr-IosevkaSS13 = "1xsdp07272bmp6fj68ky40hs53lhsm9y9c6fpk2cqvm25mv5w7fn";
SGr-IosevkaSS14 = "1r3d7g4kqrj6zwpivzsjvhvv9q4gysb6a8s0m1fvaarsxhcrvkf1";
SGr-IosevkaSS15 = "0cy8jg4g95zxbcq8y6bksmjbfz5dbp3c7qv16z533n2b5fn5h912";
SGr-IosevkaSS16 = "05rs3hkv92h2s3p3v4v33jrfx5b6vk5v5d8kbwg989y8azzsj52m";
SGr-IosevkaSS17 = "1i28qsazi4q51x1rk9p6h6zvk6pbbm9g5fs567a5wwlhagjha2cd";
SGr-IosevkaSS18 = "0ghs5b6zg1jmibgypqwgnl8vpvzhj5c8di4izp5rgw8lzsi5n9yb";
SGr-IosevkaTerm = "1vxs9sxc8q54cg4ydln1zqqwj8rs7x87xn3yz7nhgswk2zdyfxnr";
SGr-IosevkaTermCurly = "1v4hwghycmlzi57m7qnp60v618x4wkqg3pbzpvm80v528lvrsrsh";
SGr-IosevkaTermCurlySlab = "0z2z117saryawik1xnklzn8schgy4q10yqax1ypl1sj0lq80b6dm";
SGr-IosevkaTermSlab = "04qbdia36haqisrm8z4waknpfvgrxb2cymjk6pwdqgk4jbfd6yh8";
SGr-IosevkaTermSS01 = "1y3ggssvk39kv4igli2q7qy35spj5vddngsn4izh089a4irr7462";
SGr-IosevkaTermSS02 = "06ddjjfj2h83ya4hw4yla6fzd3kpv3q6fnscx2aydxc4qjryqws7";
SGr-IosevkaTermSS03 = "03jjlllq4x9h6pkg67vfivvc3p0swawah94yi10ar1hbgaljqhn4";
SGr-IosevkaTermSS04 = "0n36y3pz660j0rv1zhyjrahcz87a65fw59s9x320aix502msaqn2";
SGr-IosevkaTermSS05 = "0h71560ln3my53giyw75mq9cynjnnj6dkvdd4anbkvyw2j133497";
SGr-IosevkaTermSS06 = "0fhmzjzxy8hjcdk3rjl9igykfmlgji7v5lyzm1p04fs4wa289bh6";
SGr-IosevkaTermSS07 = "0girzhdwgwsjqqrhz0bky81rrqj62hxgkqy3sklr1w55snhq9yb4";
SGr-IosevkaTermSS08 = "08rz3bjimxmn6xp4dqv9177bhyyqv10rdfxz697fkajq0wxvy4xc";
SGr-IosevkaTermSS09 = "095bzk8ir4zxmrikr48fbfhsdhhnrcwg3xrkvqxhqancgqj4rzsz";
SGr-IosevkaTermSS10 = "0kb3nhdy1pilhvdyfb3igaalf888qx55vhigvail05dnkp23iyaw";
SGr-IosevkaTermSS11 = "1sxihqvswi66pbjnixfv1f4gv08x6n28qfzyj03lzw1d7sz3m1gp";
SGr-IosevkaTermSS12 = "0w2sh563azjam2fcdbpxh466ddlc4h6vpc2xlawl78w5n63wsnys";
SGr-IosevkaTermSS13 = "00h1kq3a2kbippqcy49jiagh6zl01qb40489njdg1vpd6s04x50c";
SGr-IosevkaTermSS14 = "0k97x43appi5azlnghinwmyq13h5fqkj0p2rysnz28v5r6razikm";
SGr-IosevkaTermSS15 = "1ziqhmp9af9b0djm9mhh2yy5f85rwwk82xhwsd84y9bl3mwil5cr";
SGr-IosevkaTermSS16 = "00lyihlkv7h5pr2w74rb56kwzjqwh1kh7cp7dfzhwhwicy5bxc50";
SGr-IosevkaTermSS17 = "03zgm0qsw5p8i1567ghslgb3cqwxznc9rbwnx9xiwv4972lbad6w";
SGr-IosevkaTermSS18 = "1dmvvn1ny1bym8k32nvp2qzrzmy0qy4l6w1clfza4g6c23k6d4dd";
}

View File

@ -18,7 +18,7 @@ assert lib.elem allowPolkitPolicy [
stdenvNoCC.mkDerivation rec {
pname = "gnome-shell-extension-systemd-manager";
version = "16";
version = "17";
# Upstream doesn't post new versions in extensions.gnome.org anymore, see also:
# https://github.com/hardpixel/systemd-manager/issues/19
@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
owner = "hardpixel";
repo = "systemd-manager";
rev = "v${version}";
hash = "sha256-JecSIRj582jJWdrCQYBWFRkIhosxRhD3BxSAy8/0nVw=";
hash = "sha256-3cKjjKXc7lLG7PB8+8ExTRmC23uPRONUI3eEx+jTUVA=";
};
nativeBuildInputs = [ glib ];

View File

@ -127,6 +127,7 @@ stdenv.mkDerivation (finalAttrs: {
glib # glib-compile-schemas
intltool
pkg-config
qtdeclarative
validatePkgConfig
];

View File

@ -41,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake
pkg-config
python3
qtdeclarative
];
buildInputs = [

View File

@ -155,8 +155,6 @@ stdenv.mkDerivation (finalAttrs: {
patchShebangs tests/whitespace/check_whitespace.py
'';
strictDeps = true;
nativeBuildInputs = [
cmake
glib # populates GSETTINGS_SCHEMAS_PATH

View File

@ -150,8 +150,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
--replace-fail '/usr/libexec/Xwayland.lomiri' '${lib.getBin lomiri}/libexec/Xwayland.lomiri'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
makeWrapper

View File

@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
doxygen
graphviz
pkg-config
qtdeclarative
];
buildInputs = [

View File

@ -76,6 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
cmake
dpkg # for setting LOMIRI_APP_LAUNCH_ARCH
gobject-introspection
lttng-ust
pkg-config
validatePkgConfig
] ++ lib.optionals withDocumentation [

View File

@ -96,6 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
glib # glib-compile-schemas
lttng-ust
pkg-config
validatePkgConfig
wrapQtAppsHook

View File

@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
qtdeclarative
validatePkgConfig
];

View File

@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
qtdeclarative
];
buildInputs = [

View File

@ -45,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
qtdeclarative
];
buildInputs = [

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "binaryen";
version = "117";
version = "118";
src = fetchFromGitHub {
owner = "WebAssembly";
repo = "binaryen";
rev = "version_${version}";
hash = "sha256-QYJkrvwcUWbFV5oQdP11JuVmfOTYaFWGQGksboQ1d58=";
hash = "sha256-akMW3S2/qUyLK8F77EtnaXPDXvIMpkGfNB2jOD6hQho=";
};
nativeBuildInputs = [ cmake python3 ];
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/WebAssembly/binaryen";
description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
platforms = platforms.all;
maintainers = with maintainers; [ asppsa ];
maintainers = with maintainers; [ asppsa willcohen ];
license = licenses.asl20;
};

View File

@ -18,12 +18,12 @@ let
in
stdenv.mkDerivation rec {
pname = "circt";
version = "1.78.1";
version = "1.79";
src = fetchFromGitHub {
owner = "llvm";
repo = "circt";
rev = "firtool-${version}";
hash = "sha256-MV70tU9orK46IXM46HUuxgAuSP4JerXdKpOyPiMfsUE=";
hash = "sha256-/PEny7+E/s1Y08NigO22uDnhFfMBtccqaI8hsBOO2fI=";
fetchSubmodules = true;
};

View File

@ -8,7 +8,7 @@
stdenv.mkDerivation rec {
pname = "emscripten";
version = "3.1.55";
version = "3.1.64";
llvmEnv = symlinkJoin {
name = "emscripten-llvm-${version}";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
name = "emscripten-node-modules-${version}";
inherit pname version src;
npmDepsHash = "sha256-7tZEZ7NN1jJBHa9G5sRz/ZpWJvgnTJj4i5EvQMsGQH4=";
npmDepsHash = "sha256-2dsIuB6P+Z3wflIsn6QaZvjHeHHGzsFAI3GcP3SfiP4=";
dontBuild = true;
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "emscripten-core";
repo = "emscripten";
hash = "sha256-3SqbkXI8xn4Zj3bDLCegxslYH5m/PkF6n/pPfm5z5VA=";
hash = "sha256-AbO1b4pxZ7I6n1dRzxhLC7DnXIUnaCK9SbLy96Qxqr0=";
rev = version;
};
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
patches = [
(substituteAll {
src = ./0001-emulate-clang-sysroot-include-logic.patch;
resourceDir = "${llvmEnv}/lib/clang/18/";
resourceDir = "${llvmEnv}/lib/clang/${lib.versions.major llvmPackages.llvm.version}/";
})
];
@ -51,9 +51,6 @@ stdenv.mkDerivation rec {
patchShebangs .
# emscripten 3.1.55 requires LLVM tip-of-tree instead of LLVM 18
sed -i -e "s/EXPECTED_LLVM_VERSION = 19/EXPECTED_LLVM_VERSION = 18/g" tools/shared.py
# fixes cmake support
sed -i -e "s/print \('emcc (Emscript.*\)/sys.stderr.write(\1); sys.stderr.flush()/g" emcc.py

View File

@ -31,13 +31,13 @@ in
stdenv.mkDerivation rec {
pname = "intel-graphics-compiler";
version = "1.0.16695.4";
version = "1.0.17193.4";
src = fetchFromGitHub {
owner = "intel";
repo = "intel-graphics-compiler";
rev = "igc-${version}";
hash = "sha256-XgQ2Gk3HDKBpsfomlpRUt8WybEIoHfKlyuWJCwCnmDA=";
hash = "sha256-OOKj3kfl+0/dgeICFtbiOVE0nsYYvI4v97BLjcExAmc=";
};
nativeBuildInputs = [ bison cmake flex (python3.withPackages (ps : with ps; [ mako ])) ];

View File

@ -76,6 +76,8 @@ stdenv.mkDerivation (finalAttrs: {
bison
flex
cmake
protobuf
python3
]
++ lib.optionals enableDocumentation [ doxygen graphviz ]
++ lib.optionals enableBPF [ libllvm libbpf ];
@ -86,7 +88,6 @@ stdenv.mkDerivation (finalAttrs: {
boehmgc
gmp
flex
python3
];
meta = {

View File

@ -10,12 +10,12 @@
let
versionMap = {
"2.4.5" = {
sha256 = "sha256-TfaOkMkDGAdkK0t2GYjetb9qG9FSxHI0goNO+nNae9E=";
};
"2.4.6" = {
sha256 = "sha256-pImQeELa4JoXJtYphb96VmcKrqLz7KH7cCO8pnw/MJE=";
};
"2.4.7" = {
sha256 = "sha256-aFRNJQNjWs0BXVNMzJsq6faJltQptakGP9Iv8JJQEdI=";
};
};
# Collection of pre-built SBCL binaries for platforms that need them for
# bootstrapping. Ideally these are to be avoided. If ECL (or any other

View File

@ -32,9 +32,9 @@ let
rev = "v${version}";
hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI=";
} else if llvmMajor == "14" then {
version = "14.0.0+unstable-2024-02-14";
rev = "2221771c28dc224d5d560faf6a2cd73f8ecf713d";
hash = "sha256-J4qOgDdcsPRU1AXXXWN+qe4c47uMCrjmtM8MSrl9NjE=";
version = "14.0.0+unstable-2024-05-27";
rev = "62f5b09b11b1da42274371b1f7535f6f2ab11485";
hash = "sha256-lEOdWHyq9hEyBZPz9z1LxUAZqNub+mZFHHWMlzh3HaI=";
} else if llvmMajor == "11" then {
version = "11.0.0+unstable-2022-05-04";
rev = "4ef524240833abfeee1c5b9fff6b1bd53f4806b3"; # 267 commits ahead of v11.0.0

View File

@ -1,99 +0,0 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildFHSEnv, installShellFiles, go-task }:
let
pkg = buildGoModule rec {
pname = "arduino-cli";
version = "1.0.2";
src = fetchFromGitHub {
owner = "arduino";
repo = pname;
rev = "v${version}";
hash = "sha256-lRCkUF0BBX0nej/HxfV9u8NIuA5W0aBKP2xPR8C61NY=";
};
nativeBuildInputs = [
installShellFiles
];
nativeCheckInputs = [
go-task
];
subPackages = [ "." ];
vendorHash = "sha256-lB/PfUZFL5+YBcAhrMMV2ckAHPhtW2SL3/zM3L4XGVc=";
postPatch = let
skipTests = [
# tries to "go install"
"TestDummyMonitor"
# try to Get "https://downloads.arduino.cc/libraries/library_index.tar.bz2"
"TestDownloadAndChecksums"
"TestParseArgs"
"TestParseReferenceCores"
"TestPlatformSearch"
"TestPlatformSearchSorting"
];
in ''
substituteInPlace Taskfile.yml \
--replace-fail "go test" "go test -p $NIX_BUILD_CORES -skip '(${lib.concatStringsSep "|" skipTests})'"
'';
doCheck = stdenv.isLinux;
checkPhase = ''
runHook preCheck
task go:test
runHook postCheck
'';
ldflags = [
"-s" "-w" "-X github.com/arduino/arduino-cli/version.versionString=${version}" "-X github.com/arduino/arduino-cli/version.commit=unknown"
] ++ lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
export HOME="$(mktemp -d)"
installShellCompletion --cmd arduino-cli \
--bash <($out/bin/arduino-cli completion bash) \
--zsh <($out/bin/arduino-cli completion zsh) \
--fish <($out/bin/arduino-cli completion fish)
unset HOME
'';
meta = with lib; {
inherit (src.meta) homepage;
description = "Arduino from the command line";
mainProgram = "arduino-cli";
changelog = "https://github.com/arduino/arduino-cli/releases/tag/${version}";
license = [ licenses.gpl3Only licenses.asl20 ];
maintainers = with maintainers; [ ryantm sfrijters ];
};
};
in
if stdenv.isLinux then
# buildFHSEnv is needed because the arduino-cli downloads compiler
# toolchains from the internet that have their interpreters pointed at
# /lib64/ld-linux-x86-64.so.2
buildFHSEnv
{
inherit (pkg) name meta;
runScript = "${pkg.outPath}/bin/arduino-cli";
extraInstallCommands = ''
mv $out/bin/$name $out/bin/arduino-cli
'' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
cp -r ${pkg.outPath}/share $out/share
'';
passthru.pureGoPkg = pkg;
targetPkgs = pkgs: with pkgs; [
zlib
];
}
else
pkg

View File

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "standard-library";
version = "2.0";
version = "2.1";
src = fetchFromGitHub {
repo = "agda-stdlib";
owner = "agda";
rev = "v${version}";
hash = "sha256-TjGvY3eqpF+DDwatT7A78flyPcTkcLHQ1xcg+MKgCoE=";
hash = "sha256-tv/Fj8ZJgSvieNLlXBjyIR7MSmDp0e2QbN1d/0xBpFg=";
};
nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];

View File

@ -4,6 +4,7 @@
, fetchFromGitHub
, meson
, mesonEmulatorHook
, appstream
, ninja
, pkg-config
, cmake
@ -80,6 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
gperf
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
appstream
];
buildInputs = [

Some files were not shown because too many files have changed in this diff Show More