Merge master into haskell-updates
This commit is contained in:
@@ -6,6 +6,8 @@ Christina Sørensen <christina@cafkafk.com> <christinaafk@gmail.com>
|
||||
Christina Sørensen <christina@cafkafk.com> <89321978+cafkafk@users.noreply.github.com>
|
||||
Daniel Løvbrøtte Olsen <me@dandellion.xyz> <daniel.olsen99@gmail.com>
|
||||
Fabian Affolter <mail@fabian-affolter.ch> <fabian@affolter-engineering.ch>
|
||||
Fiona Behrens <me@kloenk.dev>
|
||||
Fiona Behrens <me@kloenk.dev> <me@kloenk.de>
|
||||
goatastronaut0212 <goatastronaut0212@outlook.com> <goatastronaut0212@proton.me>
|
||||
Janne Heß <janne@hess.ooo> <dasJ@users.noreply.github.com>
|
||||
Jörg Thalheim <joerg@thalheim.io> <Mic92@users.noreply.github.com>
|
||||
|
||||
@@ -313,6 +313,7 @@ Container system, boot system and library changes are some examples of the pull
|
||||
|
||||
To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. The bot will verify if the following conditions are met, refusing to merge otherwise:
|
||||
|
||||
- the PR author should be @r-ryantm;
|
||||
- the commenter that issued the command should be among the package maintainers;
|
||||
- the package should reside in `pkgs/by-name`.
|
||||
|
||||
|
||||
@@ -226,10 +226,10 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||
/maintainers/scripts/kde @K900 @NickCao @SuperSandro2000 @ttuegel
|
||||
|
||||
# PostgreSQL and related stuff
|
||||
/pkgs/servers/sql/postgresql @thoughtpolice
|
||||
/nixos/modules/services/databases/postgresql.md @thoughtpolice
|
||||
/nixos/modules/services/databases/postgresql.nix @thoughtpolice
|
||||
/nixos/tests/postgresql.nix @thoughtpolice
|
||||
/pkgs/servers/sql/postgresql @NixOS/postgres
|
||||
/nixos/modules/services/databases/postgresql.md @NixOS/postgres
|
||||
/nixos/modules/services/databases/postgresql.nix @NixOS/postgres
|
||||
/nixos/tests/postgresql.nix @NixOS/postgres
|
||||
|
||||
# Hardened profile & related modules
|
||||
/nixos/modules/profiles/hardened.nix @joachifm
|
||||
|
||||
@@ -1212,6 +1212,11 @@ lib.mapAttrs mkLicense ({
|
||||
fullName = "TCL/TK License";
|
||||
};
|
||||
|
||||
tost = {
|
||||
fullName = "Tomorrow Open Source Technology License 1.0";
|
||||
url = "https://github.com/PixarAnimationStudios/OpenUSD/blob/release/LICENSE.txt";
|
||||
};
|
||||
|
||||
ucd = {
|
||||
fullName = "Unicode Character Database License";
|
||||
url = "https://fedoraproject.org/wiki/Licensing:UCD";
|
||||
|
||||
@@ -4394,7 +4394,7 @@
|
||||
githubId = 2083950;
|
||||
};
|
||||
conni2461 = {
|
||||
email = "simon.hauser@outlook.com";
|
||||
email = "simon-hauser@outlook.com";
|
||||
github = "Conni2461";
|
||||
name = "Simon Hauser";
|
||||
githubId = 15233006;
|
||||
@@ -8674,6 +8674,12 @@
|
||||
githubId = 186660;
|
||||
name = "Miao, ZhiCheng";
|
||||
};
|
||||
helsinki-Jo = {
|
||||
email = "joachim.ernst@helsinki-systems.de";
|
||||
github = "helsinki-Jo";
|
||||
githubId = 155722885;
|
||||
name = "Joachim Ernst";
|
||||
};
|
||||
henkery = {
|
||||
email = "jim@reupload.nl";
|
||||
github = "henkery";
|
||||
@@ -9740,6 +9746,13 @@
|
||||
githubId = 2179419;
|
||||
name = "Arseniy Seroka";
|
||||
};
|
||||
jakecleary = {
|
||||
email = "shout@jakecleary.net";
|
||||
github = "jakecleary";
|
||||
githubId = 4572429;
|
||||
name = "Jake Cleary";
|
||||
keys = [ { fingerprint = "6192 E5CC 28B8 FA7E F5F3 775F 3726 5B1E 496C 92A2"; } ];
|
||||
};
|
||||
jakedevs = {
|
||||
email = "work@jakedevs.net";
|
||||
github = "jakedevs";
|
||||
@@ -11561,11 +11574,11 @@
|
||||
};
|
||||
kloenk = {
|
||||
email = "me@kloenk.dev";
|
||||
matrix = "@kloenk:petabyte.dev";
|
||||
name = "Finn Behrens";
|
||||
github = "Kloenk";
|
||||
matrix = "@kloenk:kloenk.eu";
|
||||
name = "Fiona Behrens";
|
||||
github = "kloenk";
|
||||
githubId = 12898828;
|
||||
keys = [ { fingerprint = "6881 5A95 D715 D429 659B 48A4 B924 45CF C954 6F9D"; } ];
|
||||
keys = [ { fingerprint = "B44A DFDF F869 A66A 3FDF DD8B 8609 A7B5 19E5 E342"; } ];
|
||||
};
|
||||
kmcopper = {
|
||||
email = "kmcopper@danwin1210.me";
|
||||
@@ -13738,12 +13751,6 @@
|
||||
githubId = 2971615;
|
||||
name = "Marius Bergmann";
|
||||
};
|
||||
mcaju = {
|
||||
email = "cajum.bugs@yandex.com";
|
||||
github = "CajuM";
|
||||
githubId = 10420834;
|
||||
name = "Mihai-Drosi Caju";
|
||||
};
|
||||
mccartykim = {
|
||||
email = "mccartykim@zoho.com";
|
||||
github = "mccartykim";
|
||||
|
||||
@@ -465,6 +465,7 @@ with lib.maintainers;
|
||||
members = [
|
||||
das_j
|
||||
conni2461
|
||||
helsinki-Jo
|
||||
];
|
||||
scope = "Group registration for packages maintained by Helsinki Systems";
|
||||
shortName = "Helsinki Systems employees";
|
||||
@@ -845,9 +846,14 @@ with lib.maintainers;
|
||||
};
|
||||
|
||||
postgres = {
|
||||
members = [ thoughtpolice ];
|
||||
members = [
|
||||
thoughtpolice
|
||||
ma27
|
||||
wolfgangwalther
|
||||
];
|
||||
scope = "Maintain the PostgreSQL package and plugins along with the NixOS module.";
|
||||
shortName = "PostgreSQL";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
python = {
|
||||
|
||||
@@ -575,6 +575,11 @@
|
||||
|
||||
- `/share/vim-plugins` now only gets linked if `programs.vim.enable` is enabled
|
||||
|
||||
- The `services.guix` module now manages trusted substitute servers
|
||||
declaratively. Instead of `guix archive --authorize`, list keys with
|
||||
`services.guix.substituters.authorizedKeys`. Default substitute servers can be
|
||||
set via `services.guix.substituters.urls`.
|
||||
|
||||
- The `tracy` package no longer works on X11, since it's moved to Wayland
|
||||
support, which is the intended default behavior by Tracy maintainers.
|
||||
X11 users have to switch to the new package `tracy-x11`.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
x86_64-linux = "/nix/store/2nhrwv91g6ycpyxvhmvc0xs8p92wp4bk-nix-2.24.9";
|
||||
i686-linux = "/nix/store/idaxj9ji6ggpn1h47a35mf0c8ns4ma39-nix-2.24.9";
|
||||
aarch64-linux = "/nix/store/7b5q44l2p70bf6m6dprr8f0587ypwq1z-nix-2.24.9";
|
||||
riscv64-linux = "/nix/store/mgw3il1qk59750g5hbf02km79rgyx00y-nix-riscv64-unknown-linux-gnu-2.24.9";
|
||||
x86_64-darwin = "/nix/store/rp8rc0pfgham7d7spj5s9syzb138dmmd-nix-2.24.9";
|
||||
aarch64-darwin = "/nix/store/1n95r340s7p3vdwqh7m94q0a42crahqq-nix-2.24.9";
|
||||
x86_64-linux = "/nix/store/hdy82qidsybc3fg561pqfwagv44vschb-nix-2.24.10";
|
||||
i686-linux = "/nix/store/dyx4p79q6blva585bf90wbjjb7iyq8ra-nix-2.24.10";
|
||||
aarch64-linux = "/nix/store/30gnc15nig1awa11vii9yz3z8518rnr3-nix-2.24.10";
|
||||
riscv64-linux = "/nix/store/bxc2pyp1vj8kr77khyx5nglw73jqb98w-nix-riscv64-unknown-linux-gnu-2.24.10";
|
||||
x86_64-darwin = "/nix/store/6mrkghigrci6dz2lnncqpgf80yi8gl7h-nix-2.24.10";
|
||||
aarch64-darwin = "/nix/store/3f81gjiv836rjmsb29zab0pbjwf9did8-nix-2.24.10";
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ let
|
||||
opt = options.services.buildbot-master;
|
||||
|
||||
package = cfg.package.python.pkgs.toPythonModule cfg.package;
|
||||
python = package.pythonModule;
|
||||
python = cfg.package.python;
|
||||
|
||||
escapeStr = lib.escape [ "'" ];
|
||||
|
||||
@@ -93,13 +93,13 @@ in {
|
||||
};
|
||||
|
||||
extraConfig = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
type = lib.types.lines;
|
||||
description = "Extra configuration to append to master.cfg";
|
||||
default = "c['buildbotNetUsageData'] = None";
|
||||
};
|
||||
|
||||
extraImports = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
type = lib.types.lines;
|
||||
description = "Extra python imports to prepend to master.cfg";
|
||||
default = "";
|
||||
example = "from buildbot.process.project import Project";
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkDefault mkEnableOption mkIf mkOption mkPackageOption types;
|
||||
inherit (lib)
|
||||
mkDefault
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
mkPackageOption
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.services.monado;
|
||||
|
||||
@@ -27,7 +35,8 @@ in
|
||||
example = true;
|
||||
};
|
||||
|
||||
highPriority = mkEnableOption "high priority capability for monado-service"
|
||||
highPriority =
|
||||
mkEnableOption "high priority capability for monado-service"
|
||||
// mkOption { default = true; };
|
||||
};
|
||||
|
||||
@@ -61,9 +70,10 @@ in
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart =
|
||||
if cfg.highPriority
|
||||
then "${config.security.wrapperDir}/monado-service"
|
||||
else lib.getExe' cfg.package "monado-service";
|
||||
if cfg.highPriority then
|
||||
"${config.security.wrapperDir}/monado-service"
|
||||
else
|
||||
lib.getExe' cfg.package "monado-service";
|
||||
Restart = "no";
|
||||
};
|
||||
|
||||
@@ -93,7 +103,7 @@ in
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
environment.pathsToLink = [ "/share/openxr" ];
|
||||
|
||||
hardware.opengl.extraPackages = [ pkgs.monado-vulkan-layers ];
|
||||
hardware.graphics.extraPackages = [ pkgs.monado-vulkan-layers ];
|
||||
|
||||
environment.etc."xdg/openxr/1/active_runtime.json" = mkIf cfg.defaultRuntime {
|
||||
source = "${cfg.package}/share/openxr/1/openxr_monado.json";
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let cfg = config.hardware.spacenavd;
|
||||
|
||||
in {
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.hardware.spacenavd;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
hardware.spacenavd = {
|
||||
enable = lib.mkEnableOption "spacenavd to support 3DConnexion devices";
|
||||
@@ -10,12 +15,9 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user.services.spacenavd = {
|
||||
description = "Daemon for the Spacenavigator 6DOF mice by 3Dconnexion";
|
||||
wantedBy = [ "graphical.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.spacenavd}/bin/spacenavd -d -l syslog";
|
||||
};
|
||||
systemd = {
|
||||
packages = [ pkgs.spacenavd ];
|
||||
services.spacenavd.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,17 +6,21 @@ let
|
||||
cfg = config.services.home-assistant;
|
||||
format = pkgs.formats.yaml {};
|
||||
|
||||
# Render config attribute sets to YAML
|
||||
# Values that are null will be filtered from the output, so this is one way to have optional
|
||||
# options shown in settings.
|
||||
# We post-process the result to add support for YAML functions, like secrets or includes, see e.g.
|
||||
# Post-process YAML output to add support for YAML functions, like
|
||||
# secrets or includes, by naively unquoting strings with leading bangs
|
||||
# and at least one space-separated parameter.
|
||||
# https://www.home-assistant.io/docs/configuration/secrets/
|
||||
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ null ])) (lib.recursiveUpdate customLovelaceModulesResources (cfg.config or {}));
|
||||
configFile = pkgs.runCommandLocal "configuration.yaml" { } ''
|
||||
cp ${format.generate "configuration.yaml" filteredConfig} $out
|
||||
renderYAMLFile = fn: yaml: pkgs.runCommandLocal fn { } ''
|
||||
cp ${format.generate fn yaml} $out
|
||||
sed -i -e "s/'\!\([a-z_]\+\) \(.*\)'/\!\1 \2/;s/^\!\!/\!/;" $out
|
||||
'';
|
||||
lovelaceConfigFile = format.generate "ui-lovelace.yaml" cfg.lovelaceConfig;
|
||||
|
||||
# Filter null values from the configuration, so that we can still advertise
|
||||
# optional options in the config attribute.
|
||||
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ null ])) (lib.recursiveUpdate customLovelaceModulesResources (cfg.config or {}));
|
||||
configFile = renderYAMLFile "configuration.yaml" filteredConfig;
|
||||
|
||||
lovelaceConfigFile = renderYAMLFile "ui-lovelace.yaml" cfg.lovelaceConfig;
|
||||
|
||||
# Components advertised by the home-assistant package
|
||||
availableComponents = cfg.package.availableComponents;
|
||||
|
||||
@@ -46,6 +46,17 @@ let
|
||||
GUIX_LOCPATH = "${cfg.stateDir}/guix/profiles/per-user/root/guix-profile/lib/locale";
|
||||
LC_ALL = "C.UTF-8";
|
||||
};
|
||||
|
||||
# Currently, this is just done the lazy way with the official Guix script. A
|
||||
# more "formal" way would be creating our own Guix script to handle and
|
||||
# generate the ACL file ourselves.
|
||||
aclFile = pkgs.runCommandLocal "guix-acl" { } ''
|
||||
export GUIX_CONFIGURATION_DIRECTORY=./
|
||||
for official_server_keys in ${lib.concatStringsSep " " cfg.substituters.authorizedKeys}; do
|
||||
${lib.getExe' cfg.package "guix"} archive --authorize < "$official_server_keys"
|
||||
done
|
||||
install -Dm0600 ./acl "$out"
|
||||
'';
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ foo-dogsquared ];
|
||||
@@ -118,6 +129,57 @@ in
|
||||
example = "/gnu/var";
|
||||
};
|
||||
|
||||
substituters = {
|
||||
urls = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = [
|
||||
"https://ci.guix.gnu.org"
|
||||
"https://bordeaux.guix.gnu.org"
|
||||
"https://berlin.guix.gnu.org"
|
||||
];
|
||||
example = lib.literalExpression ''
|
||||
options.services.guix.substituters.urls.default ++ [
|
||||
"https://guix.example.com"
|
||||
"https://guix.example.org"
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
A list of substitute servers' URLs for the Guix daemon to download
|
||||
substitutes from.
|
||||
'';
|
||||
};
|
||||
|
||||
authorizedKeys = lib.mkOption {
|
||||
type = with lib.types; listOf path;
|
||||
default = [
|
||||
"${cfg.package}/share/guix/ci.guix.gnu.org.pub"
|
||||
"${cfg.package}/share/guix/bordeaux.guix.gnu.org.pub"
|
||||
"${cfg.package}/share/guix/berlin.guix.gnu.org.pub"
|
||||
];
|
||||
defaultText = ''
|
||||
The packaged signing keys from {option}`services.guix.package`.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
options.services.guix.substituters.authorizedKeys.default ++ [
|
||||
(builtins.fetchurl {
|
||||
url = "https://guix.example.com/signing-key.pub";
|
||||
})
|
||||
|
||||
(builtins.fetchurl {
|
||||
url = "https://guix.example.org/static/signing-key.pub";
|
||||
})
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
A list of signing keys for each substitute server to be authorized as
|
||||
a source of substitutes. Without this, the listed substitute servers
|
||||
from {option}`services.guix.substituters.urls` would be ignored [with
|
||||
some
|
||||
exceptions](https://guix.gnu.org/manual/en/html_node/Substitute-Authentication.html).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
publish = {
|
||||
enable = mkEnableOption "substitute server for your Guix store directory";
|
||||
|
||||
@@ -215,6 +277,8 @@ in
|
||||
script = ''
|
||||
${lib.getExe' package "guix-daemon"} \
|
||||
--build-users-group=${cfg.group} \
|
||||
${lib.optionalString (cfg.substituters.urls != [ ])
|
||||
"--substitute-urls='${lib.concatStringsSep " " cfg.substituters.urls}'"} \
|
||||
${lib.escapeShellArgs cfg.extraArgs}
|
||||
'';
|
||||
serviceConfig = {
|
||||
@@ -254,11 +318,7 @@ in
|
||||
|
||||
# Make transferring files from one store to another easier with the usual
|
||||
# case being of most substitutes from the official Guix CI instance.
|
||||
system.activationScripts.guix-authorize-keys = ''
|
||||
for official_server_keys in ${package}/share/guix/*.pub; do
|
||||
${lib.getExe' package "guix"} archive --authorize < $official_server_keys
|
||||
done
|
||||
'';
|
||||
environment.etc."guix/acl".source = aclFile;
|
||||
|
||||
# Link the usual Guix profiles to the home directory. This is useful in
|
||||
# ephemeral setups where only certain part of the filesystem is
|
||||
@@ -270,8 +330,8 @@ in
|
||||
in ''
|
||||
[ -d "${userProfile}" ] && ln -sfn "${userProfile}" "${location}"
|
||||
'';
|
||||
linkProfileToPath = acc: profile: location: let
|
||||
in acc + (linkProfile profile location);
|
||||
linkProfileToPath = acc: profile: location:
|
||||
acc + (linkProfile profile location);
|
||||
|
||||
# This should contain export-only Guix user profiles. The rest of it is
|
||||
# handled manually in the activation script.
|
||||
@@ -387,7 +447,7 @@ in
|
||||
Type = "oneshot";
|
||||
|
||||
PrivateDevices = true;
|
||||
PrivateNetworks = true;
|
||||
PrivateNetwork = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelTunables = true;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
};
|
||||
};
|
||||
in {
|
||||
meta.maintainers = with maintainers; [ das_j ];
|
||||
meta.maintainers = teams.helsinki-systems.members;
|
||||
|
||||
options.services.icingaweb2 = with types; {
|
||||
enable = mkEnableOption "the icingaweb2 web interface";
|
||||
|
||||
@@ -331,7 +331,7 @@ in {
|
||||
APP_CONFIG_CACHE = "/run/snipe-it/cache/config.php";
|
||||
APP_ROUTES_CACHE = "/run/snipe-it/cache/routes-v7.php";
|
||||
APP_EVENTS_CACHE = "/run/snipe-it/cache/events.php";
|
||||
SESSION_SECURE_COOKIE = tlsEnabled;
|
||||
SECURE_COOKIES = tlsEnabled;
|
||||
};
|
||||
|
||||
services.mysql = mkIf db.createLocally {
|
||||
|
||||
@@ -1048,6 +1048,7 @@ in {
|
||||
tika = runTest ./tika.nix;
|
||||
timescaledb = handleTest ./timescaledb.nix {};
|
||||
timezone = handleTest ./timezone.nix {};
|
||||
timidity = handleTestOn ["aarch64-linux" "x86_64-linux"] ./timidity {};
|
||||
tinc = handleTest ./tinc {};
|
||||
tinydns = handleTest ./tinydns.nix {};
|
||||
tinyproxy = handleTest ./tinyproxy.nix {};
|
||||
@@ -1100,7 +1101,6 @@ in {
|
||||
uwsgi = handleTest ./uwsgi.nix {};
|
||||
v2ray = handleTest ./v2ray.nix {};
|
||||
varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; };
|
||||
varnish74 = handleTest ./varnish.nix { package = pkgs.varnish74; };
|
||||
varnish75 = handleTest ./varnish.nix { package = pkgs.varnish75; };
|
||||
vault = handleTest ./vault.nix {};
|
||||
vault-agent = handleTest ./vault-agent.nix {};
|
||||
|
||||
@@ -188,7 +188,7 @@ let
|
||||
assert "hello world" == client.succeed("cat /tmp/repo-clone/testfile").strip()
|
||||
|
||||
with subtest("Testing git protocol version=2 over ssh"):
|
||||
git_protocol = client.succeed("GIT_TRACE2_EVENT=true git -C /tmp/repo-clone fetch |& grep negotiated-version")
|
||||
git_protocol = client.succeed("GIT_TRACE2_EVENT=true GIT_TRACE2_EVENT_NESTING=3 git -C /tmp/repo-clone fetch |& grep negotiated-version")
|
||||
version = json.loads(git_protocol).get("value")
|
||||
assert version == "2", f"git did not negotiate protocol version 2, but version {version} instead."
|
||||
|
||||
|
||||
@@ -47,12 +47,12 @@ in {
|
||||
services.guix = {
|
||||
enable = true;
|
||||
|
||||
extraArgs = [
|
||||
# Force to only get all substitutes from the local server. We don't
|
||||
# have anything in the Guix store directory and we cannot get
|
||||
# anything from the official substitute servers anyways.
|
||||
"--substitute-urls='http://server.local:${toString publishPort}'"
|
||||
# Force to only get all substitutes from the local server. We don't
|
||||
# have anything in the Guix store directory and we cannot get
|
||||
# anything from the official substitute servers anyways.
|
||||
substituters.urls = [ "http://server.local:${toString publishPort}" ];
|
||||
|
||||
extraArgs = [
|
||||
# Enable autodiscovery of the substitute servers in the local
|
||||
# network. This machine shouldn't need to import the signing key from
|
||||
# the substitute server since it is automatically done anyways.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "icingaweb2";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ das_j ];
|
||||
meta = {
|
||||
maintainers = pkgs.lib.teams.helsinki-systems.members;
|
||||
};
|
||||
|
||||
nodes = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ kernelPackages ? null, mkXfsFlags ? "" }:
|
||||
import ../make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "lvm2-vdo";
|
||||
meta.maintainers = lib.teams.helsinki-systems.members;
|
||||
meta.maintainers = [ ];
|
||||
|
||||
nodes.machine = { pkgs, lib, ... }: {
|
||||
# Minimum required size for VDO volume: 5063921664 bytes
|
||||
|
||||
@@ -1610,7 +1610,7 @@ let
|
||||
varnish = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
instance = "/var/spool/varnish/varnish";
|
||||
instance = "/run/varnish/varnish";
|
||||
group = "varnish";
|
||||
};
|
||||
metricProvider = {
|
||||
@@ -1619,6 +1619,7 @@ let
|
||||
];
|
||||
services.varnish = {
|
||||
enable = true;
|
||||
stateDir = "/run/varnish/varnish";
|
||||
config = ''
|
||||
vcl 4.0;
|
||||
backend default {
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
import ../make-test-python.nix (
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
name = "timidity";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [ pkgs.timidity ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all ()
|
||||
|
||||
## TiMidity++ is around.
|
||||
machine.succeed("command -v timidity")
|
||||
'';
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,4 @@
|
||||
inputs: {
|
||||
basic = import ./basic.nix inputs;
|
||||
with-vorbis = import ./with-vorbis.nix inputs;
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,40 @@
|
||||
import ../make-test-python.nix (
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
|
||||
name = "timidity-with-vorbis";
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
(timidity.override { enableVorbis = true; })
|
||||
ffmpeg # # for `ffprobe`
|
||||
];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import json
|
||||
|
||||
start_all()
|
||||
|
||||
## TiMidity++ is around and it claims to support Ogg Vorbis.
|
||||
machine.succeed("command -v timidity")
|
||||
machine.succeed("timidity --help | grep 'Ogg Vorbis'")
|
||||
|
||||
## TiMidity++ manages to process a MIDI input and produces an Ogg Vorbis
|
||||
## output file. NOTE: the `timidity` CLI succeeds even when the input file
|
||||
## does not exist; hence our test for the output file's existence.
|
||||
machine.succeed("cp ${./tam-lin.midi} tam-lin.midi")
|
||||
machine.succeed("timidity -Ov tam-lin.midi && test -e tam-lin.ogg")
|
||||
|
||||
## The output file has the expected characteristics.
|
||||
metadata_as_text = machine.succeed("ffprobe -show_format -print_format json -i tam-lin.ogg")
|
||||
metadata = json.loads(metadata_as_text)
|
||||
assert metadata['format']['format_name'] == 'ogg', \
|
||||
f"expected 'format_name' to be 'ogg', got '{metadata['format']['format_name']}'"
|
||||
assert 37 <= float(metadata['format']['duration']) <= 38, \
|
||||
f"expected 'duration' to be between 37s and 38s, got {metadata['format']['duration']}s"
|
||||
'';
|
||||
}
|
||||
)
|
||||
@@ -8,7 +8,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: let
|
||||
in {
|
||||
name = "varnish";
|
||||
meta = {
|
||||
maintainers = lib.teams.helsinki-systems.members;
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
|
||||
@@ -12,18 +12,18 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "youtube-music";
|
||||
version = "3.5.1";
|
||||
version = "3.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "th-ch";
|
||||
repo = "youtube-music";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-6aAaIugho8yHohEHp0HVkmzIOfhpkNYts6BOKPp9Wbw=";
|
||||
hash = "sha256-S13f3vGMQJvpJbdfUstJlA8MfY5Q1efRA7QcPXYvhMI=";
|
||||
};
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-6Fh1fbl7Y33EyWbWUhe70CGzhc4y+I59vPbzZydoJ18=";
|
||||
hash = "sha256-brHNp19BEYzgxhdNnn7n1GYhBdyi3S/2VqvKWXmKGX8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper python3 nodejs pnpm.configHook ]
|
||||
|
||||
@@ -117,9 +117,10 @@ in stdenv.mkDerivation rec {
|
||||
# TODO: Update cmake hook to make it simpler to selectively disable cmake tests: #113829
|
||||
checkPhase = let
|
||||
disabledTests =
|
||||
# PortChecker test fails when lashSupport is enabled because
|
||||
# zynaddsubfx takes to long to start trying to connect to lash
|
||||
lib.optionals lashSupport [ "PortChecker" ]
|
||||
# PortChecker is non-deterministic. It's fixed in the master
|
||||
# branch, but backporting would require an update to rtosc, so
|
||||
# we'll just disable it until the next release.
|
||||
[ "PortChecker" ]
|
||||
|
||||
# Tests fail on aarch64
|
||||
++ lib.optionals stdenv.hostPlatform.isAarch64 [ "MessageTest" "UnisonTest" ];
|
||||
|
||||
@@ -36,7 +36,6 @@ let
|
||||
in pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.git
|
||||
pkgs.nix
|
||||
pkgs.bash
|
||||
pkgs.nix-prefetch-git
|
||||
pkgs.nix-prefetch-hg
|
||||
|
||||
@@ -18791,4 +18791,64 @@ final: prev:
|
||||
};
|
||||
meta.homepage = "https://github.com/Chaitanyabsprip/fastaction.nvim/";
|
||||
};
|
||||
|
||||
cmp-vimtex = buildVimPlugin {
|
||||
pname = "cmp-vimtex";
|
||||
version = "2024-08-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "micangl";
|
||||
repo = "cmp-vimtex";
|
||||
rev = "5283bf9108ef33d41e704027b9ef22437ce7a15b";
|
||||
sha256 = "pD2dPdpyn5A/uwonDdAxCX138yBeDqbXDdlG/IKjVTU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/micangl/cmp-vimtex/";
|
||||
};
|
||||
|
||||
luasnip-latex-snippets-nvim = buildVimPlugin {
|
||||
pname = "luasnip-latex-snippets.nvim";
|
||||
version = "2024-09-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "evesdropper";
|
||||
repo = "luasnip-latex-snippets.nvim";
|
||||
rev = "c6b5b5367dd4bb8419389f5acf528acf296adcdd";
|
||||
sha256 = "calv4nF1yxJyehQC+l0p4psI+f4Kg49K6XziCkH9I1Q=";
|
||||
};
|
||||
meta.homepage = "https://github.com/evesdropper/luasnip-latex-snippets.nvim/";
|
||||
};
|
||||
|
||||
typst-conceal-vim = buildVimPlugin {
|
||||
pname = "typst-conceal.vim";
|
||||
version = "2023-10-13";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MrPicklePinosaur";
|
||||
repo = "typst-conceal.vim";
|
||||
rev = "b8862f2d5a015b838e4a0d361f30423c45e23425";
|
||||
sha256 = "UHEVhlV/1cq6jaMhNNookeGPtHvSwy1AKLvb8FR6Rro=";
|
||||
};
|
||||
meta.homepage = "https://github.com/MrPicklePinosaur/typst-conceal.vim/";
|
||||
};
|
||||
|
||||
typst-preview-nvim = buildVimPlugin {
|
||||
pname = "typst-preview.nvim";
|
||||
version = "2024-10-24";
|
||||
src = fetchFromGitHub {
|
||||
owner = "chomosuke";
|
||||
repo = "typst-preview.nvim";
|
||||
rev = "06778d1b3d4d29c34f1faf80947b586f403689ba";
|
||||
sha256 = "oBJ+G4jTQw6+MF/SMwaTkGlLQuYLbaAFqJkexf45I1g=";
|
||||
};
|
||||
meta.homepage = "https://github.com/chomosuke/typst-preview.nvim";
|
||||
};
|
||||
|
||||
follow-md-links-nvim = buildVimPlugin {
|
||||
pname = "follow-md-links.nvim";
|
||||
version = "2024-09-29";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jghauser";
|
||||
repo = "follow-md-links.nvim";
|
||||
rev = "41a6d74636b4209571680d40f20f59a0bf30bf57";
|
||||
sha256 = "ULQTE57SRA8uTuvg5LLJzcI5hOlXDrUwrHfm9+1pbe8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/jghauser/follow-md-links.nvim/";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2386,6 +2386,17 @@
|
||||
};
|
||||
meta.homepage = "https://github.com/rescript-lang/tree-sitter-rescript";
|
||||
};
|
||||
river = buildGrammar {
|
||||
language = "river";
|
||||
version = "0.0.0+rev=eafcdc5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "grafana";
|
||||
repo = "tree-sitter-river";
|
||||
rev = "eafcdc5147f985fea120feb670f1df7babb2f79e";
|
||||
hash = "sha256-fhuIO++hLr5DqqwgFXgg8QGmcheTpYaYLMo7117rjyk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/grafana/tree-sitter-river";
|
||||
};
|
||||
rnoweb = buildGrammar {
|
||||
language = "rnoweb";
|
||||
version = "0.0.0+rev=1a74dc0";
|
||||
|
||||
@@ -134,6 +134,9 @@
|
||||
# must be lua51Packages
|
||||
luajitPackages,
|
||||
aider-chat,
|
||||
# typst-preview dependencies
|
||||
tinymist,
|
||||
websocat,
|
||||
}:
|
||||
self: super:
|
||||
let
|
||||
@@ -2729,6 +2732,16 @@ in
|
||||
--replace "'zoxide_executable', 'zoxide'" "'zoxide_executable', '${zoxide}/bin/zoxide'"
|
||||
'';
|
||||
};
|
||||
|
||||
typst-preview-nvim = super.typst-preview-nvim.overrideAttrs {
|
||||
postPatch = ''
|
||||
substituteInPlace lua/typst-preview/config.lua \
|
||||
--replace-fail "['tinymist'] = nil," "tinymist = '${lib.getExe tinymist}'," \
|
||||
--replace-fail "['websocat'] = nil," "websocat = '${lib.getExe websocat}',"
|
||||
'';
|
||||
|
||||
nvimRequireCheck = "typst-preview";
|
||||
};
|
||||
}
|
||||
// (
|
||||
let
|
||||
|
||||
@@ -182,6 +182,7 @@ https://github.com/andersevenrud/cmp-tmux/,,
|
||||
https://github.com/ray-x/cmp-treesitter/,,
|
||||
https://github.com/lukas-reineke/cmp-under-comparator/,,
|
||||
https://github.com/dmitmel/cmp-vim-lsp/,HEAD,
|
||||
https://github.com/micangl/cmp-vimtex/,HEAD,
|
||||
https://github.com/pontusk/cmp-vimwiki-tags/,HEAD,
|
||||
https://github.com/hrsh7th/cmp-vsnip/,,
|
||||
https://github.com/tamago324/cmp-zsh/,HEAD,
|
||||
@@ -343,6 +344,7 @@ https://github.com/floobits/floobits-neovim/,,
|
||||
https://github.com/akinsho/flutter-tools.nvim/,HEAD,
|
||||
https://github.com/nvim-focus/focus.nvim/,HEAD,
|
||||
https://github.com/anuvyklack/fold-preview.nvim/,HEAD,
|
||||
https://github.com/jghauser/follow-md-links.nvim/,HEAD,
|
||||
https://github.com/mhartington/formatter.nvim/,,
|
||||
https://github.com/megaannum/forms/,,
|
||||
https://github.com/rubiin/fortune.nvim/,HEAD,
|
||||
@@ -522,6 +524,7 @@ https://github.com/barreiroleo/ltex_extra.nvim/,HEAD,
|
||||
https://github.com/arkav/lualine-lsp-progress/,,
|
||||
https://github.com/nvim-lualine/lualine.nvim/,,
|
||||
https://github.com/l3mon4d3/luasnip/,,
|
||||
https://github.com/evesdropper/luasnip-latex-snippets.nvim/,HEAD,
|
||||
https://github.com/alvarosevilla95/luatab.nvim/,,
|
||||
https://github.com/rktjmp/lush.nvim/,,
|
||||
https://github.com/mkasa/lushtags/,,
|
||||
@@ -774,9 +777,9 @@ https://github.com/yorickpeterse/nvim-pqf/,HEAD,
|
||||
https://github.com/jamestthompson3/nvim-remote-containers/,HEAD,
|
||||
https://github.com/olrtg/nvim-rename-state/,HEAD,
|
||||
https://github.com/chrisgrieser/nvim-rip-substitute/,,
|
||||
https://github.com/chrisgrieser/nvim-scissors/,HEAD,
|
||||
https://github.com/petertriho/nvim-scrollbar/,HEAD,
|
||||
https://github.com/dstein64/nvim-scrollview/,,
|
||||
https://github.com/chrisgrieser/nvim-scissors,HEAD,
|
||||
https://github.com/s1n7ax/nvim-search-and-replace/,HEAD,
|
||||
https://github.com/garymjr/nvim-snippets/,,
|
||||
https://github.com/dcampos/nvim-snippy/,HEAD,
|
||||
@@ -1058,6 +1061,8 @@ https://github.com/folke/twilight.nvim/,,
|
||||
https://github.com/pmizio/typescript-tools.nvim/,,
|
||||
https://github.com/leafgarland/typescript-vim/,,
|
||||
https://github.com/jose-elias-alvarez/typescript.nvim/,,
|
||||
https://github.com/MrPicklePinosaur/typst-conceal.vim/,HEAD,
|
||||
https://github.com/chomosuke/typst-preview.nvim/,HEAD,
|
||||
https://github.com/kaarmu/typst.vim/,HEAD,
|
||||
https://github.com/nvchad/ui/,HEAD,nvchad-ui
|
||||
https://github.com/altermo/ultimate-autopair.nvim/,HEAD,
|
||||
|
||||
@@ -298,8 +298,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "openscad";
|
||||
publisher = "Antyos";
|
||||
version = "1.1.1";
|
||||
sha256 = "1adcw9jj3npk3l6lnlfgji2l529c4s5xp9jl748r9naiy3w3dpjv";
|
||||
version = "1.3.1";
|
||||
hash = "sha256-J4lJgZT0HXRC2B1eFUl4MoP0YT5EZjLPl3yIY+VLBiI=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/Antyos.openscad/changelog";
|
||||
@@ -4531,8 +4531,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "code-spell-checker";
|
||||
publisher = "streetsidesoftware";
|
||||
version = "4.0.7";
|
||||
hash = "sha256-y+xD8rOa/ljavAF7tdEpaOKEd4gUzfH15WBwMHyW7z4=";
|
||||
version = "4.0.14";
|
||||
hash = "sha256-b87sBCprMMfxsP8lyMM3yI82YvKZd5Jc+Z/x7uflnL0=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "hydrus";
|
||||
version = "591";
|
||||
version = "595";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hydrusnetwork";
|
||||
repo = "hydrus";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-JhCnSNmCOEJdM5aEPpYWLpKy/EQ9BoN1A/aUAaILWtQ=";
|
||||
hash = "sha256-bIUtFpAMCIeLAyGXi4Rgn8FmijN5NwbkC31JoVyjNdg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
buildDotnetModule rec {
|
||||
pname = "ArchiSteamFarm";
|
||||
# nixpkgs-update: no auto update
|
||||
version = "6.0.7.5";
|
||||
version = "6.0.8.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JustArchiNET";
|
||||
repo = "ArchiSteamFarm";
|
||||
rev = version;
|
||||
hash = "sha256-YmwbANzwpda/ZJyGZ5lqa/4AVz7QNTXqHXOJNiZcc/M=";
|
||||
hash = "sha256-PnHMJtM4lWuRn+7J9NxObEOJi4pbYEChcpcAJ+EdtSI=";
|
||||
};
|
||||
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
|
||||
|
||||
+26
-26
@@ -57,13 +57,13 @@
|
||||
(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 = "2024.2.0"; hash = "sha256-OgtW4wIqo5d3q6NSiYrUm4KkUdUHEWFyvlbtoQJjDwU="; })
|
||||
(fetchNuGet { pname = "Markdig.Signed"; version = "0.37.0"; hash = "sha256-hYyyZz0iETAE2HydbyudPdoOUi6wHQRG0BjuS87Tnl0="; })
|
||||
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2024.3.0"; hash = "sha256-BQYhE7JDJ9Bw588KyWzOvQFvQTiRa0K9maVkI9lZgBc="; })
|
||||
(fetchNuGet { pname = "Markdig.Signed"; version = "0.38.0"; hash = "sha256-yhO/GFoKdE/Z9SZPyGFe7DlnSd8dcAohqJNFqSqKLnk="; })
|
||||
(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.Bcl.TimeProvider"; version = "8.0.1"; hash = "sha256-TQRaWjk1aZu+jn/rR8oOv8BJEG31i6mPkf3BkIR7C+c="; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeAnalysis.ResxSourceGenerator"; version = "3.11.0-beta1.24415.1"; hash = "sha256-mZISof2BEaehgkVhw/G/vb6yvnNJtfoDEdGOHqAiWAg="; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.11.0"; hash = "sha256-XglInnx5GePUYHG7n2NLX+WfK7kJnornsWOW/5FnOXE="; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeAnalysis.ResxSourceGenerator"; version = "3.11.0-beta1.24454.1"; hash = "sha256-cG/5tTEFcIEC78NwZBXkJac4JoYKq4n8n/QqJcZZWIU="; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.11.1"; hash = "sha256-1dLlK3NGh88PuFYZiYpT+izA96etxhU3BSgixDgdtGA="; })
|
||||
(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="; })
|
||||
@@ -79,25 +79,25 @@
|
||||
(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 = "8.1.0"; hash = "sha256-BupPW6gN3p1LhIdDTcCVFmAMx3kMl7+Oq4kNWpbPsp4="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "8.1.0"; hash = "sha256-TzyHvyQQ/v1pr5IXOcyubLiB2l1uZLYiZyrg/QZADiM="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "8.1.0"; hash = "sha256-focc7oT7KbA3hDs6huy7PrPorH6EhRaVnaCkhrXPfq8="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "8.1.0"; hash = "sha256-wH3TDd7NcbGlMy1Z5clPcH/DjCNbDV1EJtDJcg9YcHA="; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.11.0"; hash = "sha256-WjyA78+PG9ZloWTt9Hf1ek3VVj2FfJ9fAjqklnN+fWw="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "8.1.2"; hash = "sha256-uS0TjGTpt6q38Xheiu93yK3u47qK/dveidZabyKu7m0="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "8.1.2"; hash = "sha256-ASv9e7Q2Z5bfWfzCpQe5nQh782WISceFlxGwgJ51RHI="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "8.1.2"; hash = "sha256-Yv1B2ETQTPm95LoNg2op4V5arrb0udDq/ZdfiZl/Sc0="; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "8.1.2"; hash = "sha256-8fmgNOX1nyiNKrszZl3fvkxzCPuaeUbQJV45by8qRZs="; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.11.1"; hash = "sha256-0JUEucQ2lzaPgkrjm/NFLBTbqU1dfhvhN3Tl3moE6mI="; })
|
||||
(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.4.0"; hash = "sha256-j9D+ts+CoP1xj/ZM7Eucp3Dx16NUQ7FsyALB7ArmJCw="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.4.0"; hash = "sha256-k3DIWLQe2Y8Q1lV75wNTqzvnbfhIyp/gOGLB6u8hBZs="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.4.0"; hash = "sha256-P+Sy651SvEE+4/e5jsm79xhWJ4D/qUoTYEqgLEN6hUc="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.4.0"; hash = "sha256-xTBi8jb1e8xF5n/HPYnAjNRPM/zS8gVR/51hJXx7Vkg="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.4.0"; hash = "sha256-xW9SRkROePnNMX6BQYHOFmivmPaSbJ5/YeuwcJNrzQg="; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.11.0"; hash = "sha256-mCI3MCV6nyrGLrBat5VvK5LrXTEKlsdp9NkpZyJYwVg="; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.11.0"; hash = "sha256-gViDLobza22kuLvB4JdlGtbANqwBHRwf1wLmIHMw9Eo="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.4.1"; hash = "sha256-oh0HFyB8AKR8nopzPk6HpmohY7TE94BLMYPGNuz3rzw="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.4.1"; hash = "sha256-XkkbSzJ1BSp1rZlR2OSPqQrl8rCTvtYKUTKtfxA/Xas="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.4.1"; hash = "sha256-ICQHHkhffLr5tEIyAYBqLsi8nQGmWngl6Jeo0RnVawc="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.4.1"; hash = "sha256-EcqAc5HUXxBecqX6/Js5jimlVE0WKGp4yvVcC5e0wrM="; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.4.1"; hash = "sha256-tUqqZoCqprHvWsL6zwq05jxlW19bYEmhjA6qXTXWZ90="; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.11.1"; hash = "sha256-5vX+vCzFY3S7xfMVIv8OlMMFtdedW9UIJzc0WEc+vm4="; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.11.1"; hash = "sha256-wSkY0H1fQAq0H3LcKT4u7Y5RzhAAPa6yueVN84g8HxU="; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; hash = "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="; })
|
||||
(fetchNuGet { pname = "MSTest"; version = "3.6.0"; hash = "sha256-p1w/OOAdFOy+WLV16cn2adGl5MeyDhltDllrDpPhYLE="; })
|
||||
(fetchNuGet { pname = "MSTest.Analyzers"; version = "3.6.0"; hash = "sha256-/EdgXvk5a38DjpAcu3+13Xm9yjZUYHqBy3Q3UQxAEVo="; })
|
||||
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.6.0"; hash = "sha256-XpSVWgNU36VVUssPUc11R/StiyzzmSu7imXu7kBzLkE="; })
|
||||
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.6.0"; hash = "sha256-3j4Gp+BOhhKZav23gED/dtAnsoOrG+wtI9+p6IHNVMA="; })
|
||||
(fetchNuGet { pname = "MSTest"; version = "3.6.1"; hash = "sha256-GZXe2I+IngWeNRTUtUTIBwtZy3rmIpNYwHOnlPSOwxU="; })
|
||||
(fetchNuGet { pname = "MSTest.Analyzers"; version = "3.6.1"; hash = "sha256-b/VpTlHSzlO+APdTse2H0+9DK6QzcxZu9DaDVeyuTqc="; })
|
||||
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.6.1"; hash = "sha256-bi7f3+FZtCw3VKI72vnM/ZdtYSzJYK1iVoq0irUkjBU="; })
|
||||
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.6.1"; hash = "sha256-ECT15NPN86xU+KkK7QhF8hvOr3xLxjdVouSn757RjXE="; })
|
||||
(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="; })
|
||||
@@ -116,12 +116,12 @@
|
||||
(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-beta.3"; hash = "sha256-G3Apy5g0TT273Ake6/4DnrJGY4lWrTbyHDJMntiSuzE="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.8.0"; hash = "sha256-2CMwJt9QDVrQ0FCGol0TTInEbchcXItVjgwh2HeJts4="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.8.0"; hash = "sha256-ADbd0g8R79X1lQ2A5SDX3yYvNFnMiztuDd6OtNC5It0="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.8.0"; hash = "sha256-tqJRsvb4snA/1EmAh2oKzGFBC6atFCkg4+b1PMSmfoo="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.8.0"; hash = "sha256-g7D+WGZAmUccExd5IzGwNGypJKcve85YdT3kof1w/LI="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.8.0"; hash = "sha256-45+fRCATI+MKYa9/rXIylBItVXV+pJhY2y7iO3ida+o="; })
|
||||
(fetchNuGet { pname = "SteamKit2"; version = "3.0.0-beta.5"; hash = "sha256-6AXrY3OYtF00FzP3yNWOdyFJE5jTqLegrlMh7hvDHJ8="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.9.0"; hash = "sha256-fmJjAfVHzbw/31IFPFUP31g46Y1XXIc1kr6VvYW5pCc="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.9.0"; hash = "sha256-0mbewpERdqKPLK5ULcAyHMF3nbAPCaaGPgelraLgoB4="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.9.0"; hash = "sha256-8KM21CWckFghGaqWahMa3V64+hUBrifAJnQ6P2VXlEk="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.9.0"; hash = "sha256-Ni8Z9CFs+ybTX8IgDuSKA580ISQ55w032EeqWYQXwoc="; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.9.0"; hash = "sha256-V+3bEEpxSXPi9Sy1hHZEjY9qxuIpRWV5dKzaqYMSu40="; })
|
||||
(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="; })
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "asf-ui";
|
||||
version = "9f5672d65a1bd3b0f5d16ea6a1b5d220d670223c";
|
||||
version = "7c5eb33a79736ca57acff776af4bd88816773247";
|
||||
|
||||
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-ngIPUy3iAkC5yFsH9lZlRcBlFs4sEkzfTrJ+ajB+weo=";
|
||||
hash = "sha256-oOeXyhDnW2jeKGssxzgMIQElkH1uT5IALiXwxUg1ETQ=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-GKkXh0FjsorllAukg6hYBSU0JEP6Bv7tvzEgRM4zAgw=";
|
||||
npmDepsHash = "sha256-nofLj2PaL+A/M6F6vteh4SmONmsQ5kLPOZ/jxokubgU=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ lib
|
||||
, python310
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, gdk-pixbuf
|
||||
, adwaita-icon-theme
|
||||
@@ -17,7 +17,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
python = python310.override {
|
||||
python = python3.override {
|
||||
self = python;
|
||||
packageOverrides = (self: super: {
|
||||
matplotlib = super.matplotlib.override {
|
||||
|
||||
@@ -1,33 +1,44 @@
|
||||
{ stdenv, lib, fetchFromGitHub, pkg-config, gtk2 }:
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
pkg-config,
|
||||
libspnav,
|
||||
libX11,
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
# Qt6 support is close: https://github.com/FreeSpacenav/spnavcfg/issues/43
|
||||
libsForQt5,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "spnavcfg";
|
||||
version = "0.3.1";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeSpacenav";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "180mkdis15gxs79rr3f7hpwa1p6v81bybw37pzzdjnmqwqrc08a0";
|
||||
repo = "spnavcfg";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
fetchLFS = true;
|
||||
hash = "sha256-P3JYhZnaCxzJETwC4g5m4xAGBk28/Va7Z/ybqwacIaA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Changes the pidfile path from /run/spnavd.pid to $XDG_RUNTIME_DIR/spnavd.pid
|
||||
# to allow for a user service
|
||||
./configure-pidfile-path.patch
|
||||
# Changes the config file path from /etc/spnavrc to $XDG_CONFIG_HOME/spnavrc or $HOME/.config/spnavrc
|
||||
# to allow for a user service
|
||||
./configure-cfgfile-path.patch
|
||||
(fetchpatch {
|
||||
url = "https://github.com/FreeSpacenav/spnavcfg/commit/fd9aa10fb8e19a257398757943b3d8e79906e583.patch";
|
||||
hash = "sha256-XKEyLAFrA4qRU3zkBozblb/fKtLKsaItze0xv1uLnq0=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i s/4775/775/ Makefile.in
|
||||
'';
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
libsForQt5.wrapQtAppsHook
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ gtk2 ];
|
||||
|
||||
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||
buildInputs = [
|
||||
libsForQt5.qtbase
|
||||
libspnav
|
||||
libX11
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://spacenav.sourceforge.net/";
|
||||
@@ -37,4 +48,4 @@ stdenv.mkDerivation rec {
|
||||
maintainers = with maintainers; [ gebner ];
|
||||
mainProgram = "spnavcfg";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "24.10.3";
|
||||
sha256 = "1xsimk3kjniy59sw56q52cmnpg1vb1l1zbaj6nrj44pl57vkp9cp";
|
||||
vendorHash = "sha256-JVXhZjUdU1CrWzrh7INhAd3kRP/tcdsYzlre9SB9gOQ=";
|
||||
version = "24.10.4";
|
||||
sha256 = "0n1fcl2mi3q3g44bd5x7wgnx91769051dwaxmvc4yapkbsbwnr6g";
|
||||
vendorHash = "sha256-AGFuNFwZjWnu+FcXGpTxDQysgSGmYbfEtERaGjCOnUA=";
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "roxctl";
|
||||
version = "4.5.3";
|
||||
version = "4.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stackrox";
|
||||
repo = "stackrox";
|
||||
rev = version;
|
||||
sha256 = "sha256-TWmbpU27ZGG8L66TW3yWoxUO8M4N6mMOmLv2VVXM+Q4=";
|
||||
sha256 = "sha256-Da3KFGdhDSvdcMBbYmhgft7Sj+PPgUMsEoXAtx9Mhm8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-qDSi1Jk6erSCwPiLubdVlqOT6PQygMQghS8leieJ78s=";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "timoni";
|
||||
version = "0.22.0";
|
||||
version = "0.22.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stefanprodan";
|
||||
repo = "timoni";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-g0B5UbveQ6KYqfXGF5bsGJfUuZ3q1TNEaC1GwtNAig8=";
|
||||
hash = "sha256-bztaG+agcByiIFR4vp0QCDzL9AvLJoZRyMjwSggtwio=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-XeqHETKWw74edsWCOKC+bhIt0NZz5mgrTShoQk1hb5Y=";
|
||||
vendorHash = "sha256-VHR5eQWC5e45ZcpCunrUPdvFKMETRZxHLZnl7FbyFcI=";
|
||||
|
||||
subPackages = [ "cmd/timoni" ];
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
+836
-1071
File diff suppressed because it is too large
Load Diff
@@ -21,25 +21,26 @@
|
||||
, wrapGAppsHook4
|
||||
, sqlite
|
||||
, xdg-desktop-portal
|
||||
, libseccomp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fractal";
|
||||
version = "8";
|
||||
version = "9";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "fractal";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-a77+lPH2eqWTLFrYfcBXSvbyyYC52zSo+Rh/diqKYx4=";
|
||||
hash = "sha256-3UI727LUYw7wUKbGRCtgpkF9NNw4XuZ3tl3KV3Ku9r4=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"matrix-sdk-0.7.1" = "sha256-ZlkxGXGrmZ8VQV7UY7A7BBfcqFCAB9Ep7l65irx4Dy8=";
|
||||
"ruma-0.10.1" = "sha256-C/GJ0hDWJ9/grfjMuPSatJq2SrVkV0jxQlAAASkUWqg=";
|
||||
"matrix-sdk-0.7.1" = "sha256-AmODDuNLpI6gXuu+oPl3MqcOnywqR8lqJ0bVOIiz02E=";
|
||||
"ruma-0.10.1" = "sha256-6U2LKMYyY7SLOh2jJcVuDBsfcidNoia1XU+JsmhMHGY=";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -68,6 +69,7 @@ stdenv.mkDerivation rec {
|
||||
libshumate
|
||||
sqlite
|
||||
xdg-desktop-portal
|
||||
libseccomp
|
||||
] ++ (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
|
||||
+46
-48
@@ -1,22 +1,17 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, callPackage
|
||||
, libsForQt5
|
||||
, yasm
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
libsForQt5,
|
||||
yasm,
|
||||
withWebkit ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
telegram-desktop = libsForQt5.callPackage ../telegram-desktop { inherit stdenv; };
|
||||
version = "1.4.9";
|
||||
in
|
||||
(libsForQt5.callPackage ../telegram-desktop/default.nix {
|
||||
inherit stdenv;
|
||||
|
||||
tg_owt = (callPackage ../telegram-desktop/tg_owt.nix {
|
||||
# tg_owt should use the same compiler
|
||||
inherit stdenv;
|
||||
}).overrideAttrs(oldAttrs: {
|
||||
tg_owt = telegram-desktop.tg_owt.overrideAttrs (oldAttrs: {
|
||||
version = "0-unstable-2024-06-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
@@ -27,7 +22,7 @@ in
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = (oldAttrs.patches or []) ++ [
|
||||
patches = (oldAttrs.patches or [ ]) ++ [
|
||||
(fetchpatch {
|
||||
url = "https://webrtc.googlesource.com/src/+/e7d10047096880feb5e9846375f2da54aef91202%5E%21/?format=TEXT";
|
||||
decode = "base64 -d";
|
||||
@@ -39,42 +34,45 @@ in
|
||||
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ yasm ];
|
||||
});
|
||||
|
||||
withWebKitGTK = false;
|
||||
}).overrideAttrs {
|
||||
in
|
||||
telegram-desktop.override {
|
||||
pname = "kotatogram-desktop";
|
||||
version = "${version}-unstable-2024-09-27";
|
||||
inherit withWebkit;
|
||||
unwrapped = (telegram-desktop.unwrapped.override { inherit tg_owt; }).overrideAttrs {
|
||||
pname = "kotatogram-desktop-unwrapped";
|
||||
version = "${version}-unstable-2024-09-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kotatogram";
|
||||
repo = "kotatogram-desktop";
|
||||
rev = "0581eb6219343b3cfcbb81124b372df1039b7568";
|
||||
hash = "sha256-rvn8GZmHdMkVutLUe/LmUNIawlb9VgU3sYhPwZ2MWsI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "kotatogram";
|
||||
repo = "kotatogram-desktop";
|
||||
rev = "0581eb6219343b3cfcbb81124b372df1039b7568";
|
||||
hash = "sha256-rvn8GZmHdMkVutLUe/LmUNIawlb9VgU3sYhPwZ2MWsI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
./macos-qt5.patch
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.com/mnauw/cppgir/-/commit/c8bb1c6017a6f7f2e47bd10543aea6b3ec69a966.patch";
|
||||
stripLen = 1;
|
||||
extraPrefix = "cmake/external/glib/cppgir/";
|
||||
hash = "sha256-8B4h3BTG8dIlt3+uVgBI569E9eCebcor9uohtsrZpnI=";
|
||||
})
|
||||
];
|
||||
patches = [
|
||||
./macos-qt5.patch
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.com/mnauw/cppgir/-/commit/c8bb1c6017a6f7f2e47bd10543aea6b3ec69a966.patch";
|
||||
stripLen = 1;
|
||||
extraPrefix = "cmake/external/glib/cppgir/";
|
||||
hash = "sha256-8B4h3BTG8dIlt3+uVgBI569E9eCebcor9uohtsrZpnI=";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Kotatogram – experimental Telegram Desktop fork";
|
||||
longDescription = ''
|
||||
Unofficial desktop client for the Telegram messenger, based on Telegram Desktop.
|
||||
meta = with lib; {
|
||||
description = "Kotatogram – experimental Telegram Desktop fork";
|
||||
longDescription = ''
|
||||
Unofficial desktop client for the Telegram messenger, based on Telegram Desktop.
|
||||
|
||||
It contains some useful (or purely cosmetic) features, but they could be unstable. A detailed list is available here: https://kotatogram.github.io/changes
|
||||
'';
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.all;
|
||||
homepage = "https://kotatogram.github.io";
|
||||
changelog = "https://github.com/kotatogram/kotatogram-desktop/releases/tag/k${version}";
|
||||
maintainers = with maintainers; [ ilya-fedin ];
|
||||
mainProgram = if stdenv.hostPlatform.isLinux then "kotatogram-desktop" else "Kotatogram";
|
||||
It contains some useful (or purely cosmetic) features, but they could be unstable. A detailed list is available here: https://kotatogram.github.io/changes
|
||||
'';
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.all;
|
||||
homepage = "https://kotatogram.github.io";
|
||||
changelog = "https://github.com/kotatogram/kotatogram-desktop/releases/tag/k${version}";
|
||||
maintainers = with maintainers; [ ilya-fedin ];
|
||||
mainProgram = if stdenv.hostPlatform.isLinux then "kotatogram-desktop" else "Kotatogram";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk_4_1, makeBinaryWrapper }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "${kotatogram-desktop.pname}-with-webkit";
|
||||
version = kotatogram-desktop.version;
|
||||
nativeBuildInputs = [ makeBinaryWrapper ];
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r ${kotatogram-desktop}/share $out
|
||||
substituteInPlace $out/share/dbus-1/services/* --replace-fail ${kotatogram-desktop} $out
|
||||
'';
|
||||
postFixup = ''
|
||||
mkdir -p $out/bin
|
||||
makeBinaryWrapper {${kotatogram-desktop},$out}/bin/${kotatogram-desktop.meta.mainProgram} \
|
||||
--inherit-argv0 \
|
||||
--prefix GIO_EXTRA_MODULES : ${glib-networking}/lib/gio/modules \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ webkitgtk_4_1 ]}
|
||||
'';
|
||||
meta = kotatogram-desktop.meta // {
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
+58
-154
@@ -1,169 +1,73 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, callPackage
|
||||
, pkg-config
|
||||
, cmake
|
||||
, ninja
|
||||
, clang
|
||||
, python3
|
||||
, wrapQtAppsHook
|
||||
, tg_owt ? callPackage ./tg_owt.nix { inherit stdenv; }
|
||||
, qtbase
|
||||
, qtimageformats
|
||||
, qtsvg
|
||||
, qtwayland
|
||||
, kcoreaddons
|
||||
, lz4
|
||||
, xxHash
|
||||
, ffmpeg
|
||||
, protobuf
|
||||
, openalSoft
|
||||
, minizip
|
||||
, libopus
|
||||
, alsa-lib
|
||||
, libpulseaudio
|
||||
, range-v3
|
||||
, tl-expected
|
||||
, hunspell
|
||||
, gobject-introspection
|
||||
, jemalloc
|
||||
, rnnoise
|
||||
, microsoft-gsl
|
||||
, boost
|
||||
, ada
|
||||
, withWebKitGTK ? true
|
||||
, wrapGAppsHook3
|
||||
, glib-networking
|
||||
, webkitgtk_4_1
|
||||
, libicns
|
||||
, apple-sdk_15
|
||||
, nix-update-script
|
||||
{
|
||||
callPackage,
|
||||
lib,
|
||||
stdenv,
|
||||
pname ? "telegram-desktop",
|
||||
unwrapped ? callPackage ./unwrapped.nix { inherit stdenv; },
|
||||
qtbase,
|
||||
qtimageformats,
|
||||
qtsvg,
|
||||
qtwayland,
|
||||
wrapGAppsHook3,
|
||||
wrapQtAppsHook,
|
||||
glib-networking,
|
||||
webkitgtk_4_1,
|
||||
withWebkit ? true,
|
||||
}:
|
||||
|
||||
# Main reference:
|
||||
# - This package was originally based on the Arch package but all patches are now upstreamed:
|
||||
# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop
|
||||
# Other references that could be useful:
|
||||
# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD
|
||||
# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "telegram-desktop";
|
||||
version = "5.6.3";
|
||||
inherit pname;
|
||||
inherit (unwrapped) version meta passthru;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telegramdesktop";
|
||||
repo = "tdesktop";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-frz425V5eRulNVxCf457TWQAzU/f9/szD/sx3/LYQ2Y=";
|
||||
};
|
||||
inherit unwrapped;
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioInputALSA.cpp \
|
||||
--replace-fail '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"'
|
||||
substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioOutputALSA.cpp \
|
||||
--replace-fail '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"'
|
||||
substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \
|
||||
--replace-fail '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"'
|
||||
'' + lib.optionalString (stdenv.hostPlatform.isLinux && withWebKitGTK) ''
|
||||
substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp \
|
||||
--replace-fail '"libwebkit2gtk-4.1.so.0"' '"${webkitgtk_4_1}/lib/libwebkit2gtk-4.1.so.0"'
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm \
|
||||
--replace-fail kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
|
||||
'';
|
||||
nativeBuildInputs =
|
||||
[
|
||||
wrapQtAppsHook
|
||||
]
|
||||
++ lib.optionals withWebkit [
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
# Avoid double-wrapping
|
||||
buildInputs =
|
||||
[
|
||||
qtbase
|
||||
qtimageformats
|
||||
qtsvg
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
qtwayland
|
||||
]
|
||||
++ lib.optionals withWebkit [
|
||||
glib-networking
|
||||
];
|
||||
|
||||
qtWrapperArgs = lib.optionals (stdenv.hostPlatform.isLinux && withWebkit) [
|
||||
"--prefix"
|
||||
"LD_LIBRARY_PATH"
|
||||
":"
|
||||
(lib.makeLibraryPath [ webkitgtk_4_1 ])
|
||||
];
|
||||
|
||||
dontUnpack = true;
|
||||
dontWrapGApps = true;
|
||||
|
||||
# Wrapping the inside of the app bundles, avoiding double-wrapping
|
||||
dontWrapQtApps = stdenv.hostPlatform.isDarwin;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
wrapQtAppsHook
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
# to build bundled libdispatch
|
||||
clang
|
||||
gobject-introspection
|
||||
] ++ lib.optionals (stdenv.hostPlatform.isLinux && withWebKitGTK) [
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qtimageformats
|
||||
qtsvg
|
||||
lz4
|
||||
xxHash
|
||||
ffmpeg
|
||||
openalSoft
|
||||
minizip
|
||||
libopus
|
||||
range-v3
|
||||
tl-expected
|
||||
rnnoise
|
||||
tg_owt
|
||||
microsoft-gsl
|
||||
boost
|
||||
ada
|
||||
] ++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
protobuf
|
||||
qtwayland
|
||||
kcoreaddons
|
||||
alsa-lib
|
||||
libpulseaudio
|
||||
hunspell
|
||||
jemalloc
|
||||
] ++ lib.optionals (stdenv.hostPlatform.isLinux && withWebKitGTK) [
|
||||
glib-networking
|
||||
webkitgtk_4_1
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
apple-sdk_15
|
||||
libicns
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
# We're allowed to used the API ID of the Snap package:
|
||||
(lib.cmakeFeature "TDESKTOP_API_ID" "611335")
|
||||
(lib.cmakeFeature "TDESKTOP_API_HASH" "d524b414d21f4d37f08684c1df41ac9c")
|
||||
];
|
||||
|
||||
installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
cp -r ${finalAttrs.meta.mainProgram}.app $out/Applications
|
||||
ln -s $out/{Applications/${finalAttrs.meta.mainProgram}.app/Contents/MacOS,bin}
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
cp -r "$unwrapped" "$out"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString (stdenv.hostPlatform.isLinux && withWebKitGTK) ''
|
||||
preFixup = lib.optionalString (stdenv.hostPlatform.isLinux && withWebkit) ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
wrapQtApp $out/Applications/${finalAttrs.meta.mainProgram}.app/Contents/MacOS/${finalAttrs.meta.mainProgram}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit tg_owt;
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Telegram Desktop messaging app";
|
||||
longDescription = ''
|
||||
Desktop client for the Telegram messenger, based on the Telegram API and
|
||||
the MTProto secure protocol.
|
||||
postFixup =
|
||||
lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
wrapQtApp "$out/Applications/${finalAttrs.meta.mainProgram}.app/Contents/MacOS/${finalAttrs.meta.mainProgram}"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace $out/share/dbus-1/services/* \
|
||||
--replace-fail "$unwrapped" "$out"
|
||||
'';
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.all;
|
||||
homepage = "https://desktop.telegram.org/";
|
||||
changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v${finalAttrs.version}";
|
||||
maintainers = with lib.maintainers; [ nickcao ];
|
||||
mainProgram = if stdenv.hostPlatform.isLinux then "telegram-desktop" else "Telegram";
|
||||
};
|
||||
})
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@
|
||||
libjpeg,
|
||||
openssl,
|
||||
libopus,
|
||||
ffmpeg,
|
||||
ffmpeg_6,
|
||||
openh264,
|
||||
crc32c,
|
||||
libvpx,
|
||||
@@ -68,7 +68,7 @@ stdenv.mkDerivation {
|
||||
libjpeg
|
||||
openssl
|
||||
libopus
|
||||
ffmpeg
|
||||
ffmpeg_6
|
||||
openh264
|
||||
crc32c
|
||||
libvpx
|
||||
|
||||
+150
@@ -0,0 +1,150 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
callPackage,
|
||||
pkg-config,
|
||||
cmake,
|
||||
ninja,
|
||||
clang,
|
||||
python3,
|
||||
tg_owt ? callPackage ./tg_owt.nix { inherit stdenv; },
|
||||
qtbase,
|
||||
qtimageformats,
|
||||
qtsvg,
|
||||
qtwayland,
|
||||
kcoreaddons,
|
||||
lz4,
|
||||
xxHash,
|
||||
ffmpeg_6,
|
||||
protobuf,
|
||||
openalSoft,
|
||||
minizip,
|
||||
libopus,
|
||||
alsa-lib,
|
||||
libpulseaudio,
|
||||
range-v3,
|
||||
tl-expected,
|
||||
hunspell,
|
||||
gobject-introspection,
|
||||
jemalloc,
|
||||
rnnoise,
|
||||
microsoft-gsl,
|
||||
boost,
|
||||
ada,
|
||||
libicns,
|
||||
apple-sdk_15,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
# Main reference:
|
||||
# - This package was originally based on the Arch package but all patches are now upstreamed:
|
||||
# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop
|
||||
# Other references that could be useful:
|
||||
# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD
|
||||
# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "telegram-desktop-unwrapped";
|
||||
version = "5.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telegramdesktop";
|
||||
repo = "tdesktop";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-MPVm9WfAjF11sy0hyhDTI/mM2OsENSMavnVrOwXTGUk=";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioInputALSA.cpp \
|
||||
--replace-fail '"libasound.so.2"' '"${lib.getLib alsa-lib}/lib/libasound.so.2"'
|
||||
substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioOutputALSA.cpp \
|
||||
--replace-fail '"libasound.so.2"' '"${lib.getLib alsa-lib}/lib/libasound.so.2"'
|
||||
substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \
|
||||
--replace-fail '"libpulse.so.0"' '"${lib.getLib libpulseaudio}/lib/libpulse.so.0"'
|
||||
'';
|
||||
|
||||
nativeBuildInputs =
|
||||
[
|
||||
pkg-config
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
# to build bundled libdispatch
|
||||
clang
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
qtbase
|
||||
qtimageformats
|
||||
qtsvg
|
||||
lz4
|
||||
xxHash
|
||||
ffmpeg_6
|
||||
openalSoft
|
||||
minizip
|
||||
libopus
|
||||
range-v3
|
||||
tl-expected
|
||||
rnnoise
|
||||
tg_owt
|
||||
microsoft-gsl
|
||||
boost
|
||||
ada
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
protobuf
|
||||
qtwayland
|
||||
kcoreaddons
|
||||
alsa-lib
|
||||
libpulseaudio
|
||||
hunspell
|
||||
jemalloc
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
apple-sdk_15
|
||||
libicns
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
cmakeFlags = [
|
||||
# We're allowed to used the API ID of the Snap package:
|
||||
(lib.cmakeFeature "TDESKTOP_API_ID" "611335")
|
||||
(lib.cmakeFeature "TDESKTOP_API_HASH" "d524b414d21f4d37f08684c1df41ac9c")
|
||||
];
|
||||
|
||||
installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/Applications
|
||||
cp -r ${finalAttrs.meta.mainProgram}.app $out/Applications
|
||||
ln -sr $out/{Applications/${finalAttrs.meta.mainProgram}.app/Contents/MacOS,bin}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit tg_owt;
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Telegram Desktop messaging app";
|
||||
longDescription = ''
|
||||
Desktop client for the Telegram messenger, based on the Telegram API and
|
||||
the MTProto secure protocol.
|
||||
'';
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.all;
|
||||
homepage = "https://desktop.telegram.org/";
|
||||
changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v${finalAttrs.version}";
|
||||
maintainers = with lib.maintainers; [ nickcao ];
|
||||
mainProgram = if stdenv.hostPlatform.isLinux then "telegram-desktop" else "Telegram";
|
||||
};
|
||||
})
|
||||
@@ -36,14 +36,14 @@ let
|
||||
in
|
||||
assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.4.2";
|
||||
version = "4.4.3";
|
||||
pname = "weechat";
|
||||
|
||||
hardeningEnable = [ "pie" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://weechat.org/files/src/weechat-${version}.tar.xz";
|
||||
hash = "sha256-1N8ompxbygOm1PrgBuUgNwZO8Dutb76VnFOPMZdDTew=";
|
||||
hash = "sha256-KVYS+NwkryjJGCV9MBTrUzQqXQd9Xj2aPq3zA72P6/o=";
|
||||
};
|
||||
|
||||
# Why is this needed? https://github.com/weechat/weechat/issues/2031
|
||||
|
||||
@@ -53,7 +53,20 @@ let
|
||||
};
|
||||
|
||||
in rec {
|
||||
thunderbird = thunderbird-128;
|
||||
# Upstream claims -latest is "for testing purposes only". Stick to -esr until this changes.
|
||||
thunderbird = thunderbird-esr;
|
||||
|
||||
thunderbird-latest = common {
|
||||
version = "132.0";
|
||||
sha512 = "71206606d691e3b257b4b163e56604eaff221a43f88015fcbdbbbb3bbd708a7459f61b0470f7534ce9adafd41561e11b3487484fbfe3e95a06674785cae97029";
|
||||
|
||||
updateScript = callPackage ./update.nix {
|
||||
attrPath = "thunderbirdPackages.thunderbird-latest";
|
||||
};
|
||||
};
|
||||
|
||||
# Eventually, switch to an updateScript without versionPrefix hardcoded...
|
||||
thunderbird-esr = thunderbird-128;
|
||||
|
||||
thunderbird-128 = common {
|
||||
version = "128.4.0esr";
|
||||
|
||||
@@ -113,6 +113,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmake/FindUtfCpp.cmake
|
||||
# Upstream uses different config file name.
|
||||
substituteInPlace CMakeLists.txt --replace 'find_package(UtfCpp)' 'find_package(utf8cpp)'
|
||||
|
||||
# Use gettext even on Darwin
|
||||
substituteInPlace libtransmission/utils.h \
|
||||
--replace-fail '#if defined(HAVE_GETTEXT) && !defined(__APPLE__)' '#if defined(HAVE_GETTEXT)'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -145,8 +149,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ optionals enableQt6 (with qt6Packages; [ qttools qtbase qtsvg ])
|
||||
++ optionals enableGTK3 [ gtkmm3 xorg.libpthreadstubs ]
|
||||
++ optionals enableSystemd [ systemd ]
|
||||
++ optionals stdenv.hostPlatform.isLinux [ inotify-tools ]
|
||||
++ optionals stdenv.hostPlatform.isDarwin [ libiconv Foundation ];
|
||||
++ optionals stdenv.hostPlatform.isLinux [ inotify-tools ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir $apparmor
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
, lxml
|
||||
, matplotlib
|
||||
, numpy
|
||||
, opencv4
|
||||
, opencv-python
|
||||
, pymavlink
|
||||
, pyserial
|
||||
, setuptools
|
||||
@@ -25,16 +25,11 @@ buildPythonApplication rec {
|
||||
hash = "sha256-A7tqV1kBCSuWHJUTdUZGcPY/r7X1edGZs6xDctpMbMI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "opencv-python" ""
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
lxml
|
||||
matplotlib
|
||||
numpy
|
||||
opencv4
|
||||
opencv-python
|
||||
pymavlink
|
||||
pyserial
|
||||
setuptools
|
||||
|
||||
@@ -21,14 +21,7 @@
|
||||
, wayland
|
||||
, xdg-utils
|
||||
|
||||
# Darwin Frameworks
|
||||
, AppKit
|
||||
, CoreGraphics
|
||||
, CoreServices
|
||||
, CoreText
|
||||
, Foundation
|
||||
, libiconv
|
||||
, OpenGL
|
||||
, apple-sdk_11
|
||||
}:
|
||||
let
|
||||
rpathLibs = [
|
||||
@@ -72,13 +65,7 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
buildInputs = rpathLibs
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
AppKit
|
||||
CoreGraphics
|
||||
CoreServices
|
||||
CoreText
|
||||
Foundation
|
||||
libiconv
|
||||
OpenGL
|
||||
apple-sdk_11
|
||||
];
|
||||
|
||||
outputs = [ "out" "terminfo" ];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub, asciidoctor, installShellFiles, git, testers, git-lfs }:
|
||||
{ lib, buildGoModule, fetchFromGitHub, asciidoctor, installShellFiles, git, testers, git-lfs, stdenv }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "git-lfs";
|
||||
@@ -39,6 +39,7 @@ buildGoModule rec {
|
||||
|
||||
postInstall = ''
|
||||
installManPage man/man*/*
|
||||
'' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd git-lfs \
|
||||
--bash <($out/bin/git-lfs completion bash) \
|
||||
--fish <($out/bin/git-lfs completion fish) \
|
||||
|
||||
@@ -21,6 +21,6 @@ buildGoModule rec {
|
||||
homepage = "https://gitlab.com/gitlab-org/gitlab-pages";
|
||||
changelog = "https://gitlab.com/gitlab-org/gitlab-pages/-/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.helsinki-systems.members ++ teams.gitlab.members;
|
||||
maintainers = teams.gitlab.members;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
numpy
|
||||
onnx
|
||||
onnxruntime # Nixpkgs onnxruntime is missing CUDA support
|
||||
opencv4
|
||||
opencv-python
|
||||
scikit-image
|
||||
tqdm
|
||||
];
|
||||
@@ -39,11 +39,6 @@ python3.pkgs.buildPythonApplication rec {
|
||||
''--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ pkgs.onnxruntime ]}"''
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "opencv-python" "opencv"
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "deface" "onnx" "onnxruntime" ];
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obs-move-transition";
|
||||
version = "3.1.0";
|
||||
version = "3.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "exeldro";
|
||||
repo = "obs-move-transition";
|
||||
rev = version;
|
||||
sha256 = "sha256-ZmxopTv6YuAZ/GykvMRcP2PQwQk08ObmqZ9kBcR0UH4=";
|
||||
sha256 = "sha256-kCiRgfpcFdxoK6e8jtrtzkBD4w5B/ilO1YyBHCG13gg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
vdr,
|
||||
util-linux,
|
||||
groff,
|
||||
perl,
|
||||
pcre,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-epgsearch";
|
||||
version = "2.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-epgsearch";
|
||||
owner = "vdr-projects";
|
||||
sha256 = "sha256-hOMISobeEt/jB4/18t5ZeN+EcPHhm8Jz8Kar72KYS3E=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
for f in *.sh; do
|
||||
patchShebangs "$f"
|
||||
done
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl # for pod2man and pos2html
|
||||
util-linux
|
||||
groff
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
vdr
|
||||
pcre
|
||||
];
|
||||
|
||||
buildFlags = [
|
||||
"SENDMAIL="
|
||||
"REGEXLIB=pcre"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
"DESTDIR=$(out)"
|
||||
];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"man"
|
||||
];
|
||||
|
||||
meta = {
|
||||
inherit (src.meta) homepage;
|
||||
description = "Searchtimer and replacement of the VDR program menu";
|
||||
mainProgram = "createcats";
|
||||
maintainers = [ lib.maintainers.ck3d ];
|
||||
license = lib.licenses.gpl2;
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
}
|
||||
@@ -1,21 +1,25 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, vdr
|
||||
, fetchFromGitHub
|
||||
, ffmpeg
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
vdr,
|
||||
fetchFromGitHub,
|
||||
ffmpeg,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-markad";
|
||||
version = "3.6.0";
|
||||
version = "4.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-markad";
|
||||
owner = "kfb77";
|
||||
sha256 = "sha256-O958GNQI6Z+m4sIJfGQzLaCrzyrdpn+ZY8COx7RoUZs=";
|
||||
hash = "sha256-zN52wyER1PuMr0oAj/BWaiX7kHqq5qW8JZqGXrVPtbU=";
|
||||
rev = "V${version}";
|
||||
};
|
||||
|
||||
buildInputs = [ vdr ffmpeg ];
|
||||
buildInputs = [
|
||||
vdr
|
||||
ffmpeg
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace command/Makefile --replace '/usr' ""
|
||||
@@ -35,13 +39,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
installFlags = buildFlags;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
inherit (src.meta) homepage;
|
||||
description = "Plugin for VDR that marks advertisements";
|
||||
mainProgram = "markad";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
inherit (vdr.meta) platforms;
|
||||
maintainers = [ lib.maintainers.ck3d ];
|
||||
inherit (vdr.meta) platforms license;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
{ stdenv, lib, fetchFromGitLab, vdr, graphicsmagick }:
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
vdr,
|
||||
graphicsmagick,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdr-skin-nopacity";
|
||||
version = "1.1.17";
|
||||
version = "1.1.18";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
repo = "SkinNopacity";
|
||||
owner = "kamel5";
|
||||
hash = "sha256-QJKlh5my7e+H5R4E0fCWB/PtwIAXCXw4drQEQzhzfag=";
|
||||
hash = "sha256-Aq5PtD6JV8jdBURADl9KkdVQvfmeQD/Zh62g5ansuC4=";
|
||||
rev = version;
|
||||
};
|
||||
|
||||
buildInputs = [ vdr graphicsmagick ];
|
||||
buildInputs = [
|
||||
vdr
|
||||
graphicsmagick
|
||||
];
|
||||
|
||||
installFlags = [ "DESTDIR=$(out)" ];
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ lib, stdenv, vdr, fetchFromGitHub
|
||||
, graphicsmagick, pcre
|
||||
, boost, libgcrypt, perl, util-linux, groff, ncurses
|
||||
, graphicsmagick
|
||||
, boost, libgcrypt, ncurses
|
||||
, callPackage
|
||||
}: let
|
||||
mkPlugin = name: stdenv.mkDerivation {
|
||||
@@ -12,6 +12,8 @@
|
||||
};
|
||||
in {
|
||||
|
||||
epgsearch = callPackage ./epgsearch {};
|
||||
|
||||
markad = callPackage ./markad {};
|
||||
|
||||
nopacity = callPackage ./nopacity {};
|
||||
@@ -57,56 +59,6 @@ in {
|
||||
|
||||
};
|
||||
|
||||
epgsearch = stdenv.mkDerivation rec {
|
||||
pname = "vdr-epgsearch";
|
||||
version = "2.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "vdr-plugin-epgsearch";
|
||||
owner = "vdr-projects";
|
||||
sha256 = "sha256-C+WSdGTnDBTWLvpjG5GBaK8pYbht431nL5iaL/a0H4Y=";
|
||||
rev = "v${version}";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
for f in *.sh; do
|
||||
patchShebangs "$f"
|
||||
done
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl # for pod2man and pos2html
|
||||
util-linux
|
||||
groff
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
vdr
|
||||
pcre
|
||||
];
|
||||
|
||||
buildFlags = [
|
||||
"SENDMAIL="
|
||||
"REGEXLIB=pcre"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
"DESTDIR=$(out)"
|
||||
];
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
meta = with lib; {
|
||||
inherit (src.meta) homepage;
|
||||
description = "Searchtimer and replacement of the VDR program menu";
|
||||
mainProgram = "createcats";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
license = licenses.gpl2;
|
||||
inherit (vdr.meta) platforms;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
vnsiserver = stdenv.mkDerivation rec {
|
||||
pname = "vdr-vnsiserver";
|
||||
version = "1.8.3";
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
libpulseaudio,
|
||||
pipewire,
|
||||
mesa, # for libgbm
|
||||
fetchpatch,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -27,6 +28,14 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-7/fQOkfAw5v3irD5blJOdq88j0VBrPVQQufdt9wsACk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# compile fixes from upstream, remove when they stop applying
|
||||
(fetchpatch {
|
||||
url = "https://github.com/ammen99/wf-recorder/commit/560bb92d3ddaeb31d7af77d22d01b0050b45bebe.diff";
|
||||
sha256 = "sha256-7jbX5k8dh4dWfolMkZXiERuM72zVrkarsamXnd+1YoI=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "docker-buildx";
|
||||
version = "0.17.1";
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "docker";
|
||||
repo = "buildx";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+d0yaosNoOOuo/A7aC6pfy2xGJU718nBBNMMok2Ofv0=";
|
||||
hash = "sha256-mw66AF+JwavuB8r2qzo50rguqZaUfzCVmyYI6yk7ig8=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "tart";
|
||||
version = "2.18.5";
|
||||
version = "2.19.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz";
|
||||
hash = "sha256-3mbO6HlJxEl9NZzJ8IaZWESqPzS7OTw+I+t0XH25D/Q=";
|
||||
hash = "sha256-WigjqOu36bkNsTk6WpLwpyaauk4RtwShw1wWBHdxTFI=";
|
||||
};
|
||||
sourceRoot = ".";
|
||||
|
||||
|
||||
@@ -33,18 +33,15 @@
|
||||
# follows:
|
||||
# /lib32 will include 32bit libraries from multiPkgs
|
||||
# /lib64 will include 64bit libraries from multiPkgs and targetPkgs
|
||||
# /lib will link to /lib32
|
||||
# /lib will link to /lib64
|
||||
|
||||
let
|
||||
inherit (stdenv.hostPlatform) is64bit;
|
||||
|
||||
name = if (args ? pname && args ? version)
|
||||
then "${args.pname}-${args.version}"
|
||||
else args.name;
|
||||
|
||||
# "use of glibc_multi is only supported on x86_64-linux"
|
||||
isMultiBuild = multiArch && stdenv.system == "x86_64-linux";
|
||||
isTargetBuild = !isMultiBuild;
|
||||
|
||||
# list of packages (usually programs) which match the host's architecture
|
||||
# (which includes stuff from multiPkgs)
|
||||
@@ -60,7 +57,7 @@ let
|
||||
baseTargetPaths = with pkgs; [
|
||||
glibcLocales
|
||||
(if isMultiBuild then glibc_multi else glibc)
|
||||
(toString gcc.cc.lib)
|
||||
gcc.cc.lib
|
||||
bashInteractiveFHS
|
||||
coreutils
|
||||
less
|
||||
@@ -77,7 +74,7 @@ let
|
||||
xz
|
||||
];
|
||||
baseMultiPaths = with pkgsi686Linux; [
|
||||
(toString gcc.cc.lib)
|
||||
gcc.cc.lib
|
||||
];
|
||||
|
||||
ldconfig = writeShellScriptBin "ldconfig" ''
|
||||
@@ -85,190 +82,139 @@ let
|
||||
exec ${if isMultiBuild then pkgsi686Linux.glibc.bin else pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
|
||||
'';
|
||||
|
||||
etcProfile = writeText "profile" ''
|
||||
export PS1='${name}-fhsenv:\u@\h:\w\$ '
|
||||
export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
|
||||
export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH"
|
||||
export TZDIR='/etc/zoneinfo'
|
||||
etcProfile = pkgs.writeTextFile {
|
||||
name = "${name}-fhsenv-profile";
|
||||
destination = "/etc/profile";
|
||||
text = ''
|
||||
export PS1='${name}-fhsenv:\u@\h:\w\$ '
|
||||
export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
|
||||
export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH"
|
||||
export TZDIR='/etc/zoneinfo'
|
||||
|
||||
# XDG_DATA_DIRS is used by pressure-vessel (steam proton) and vulkan loaders to find the corresponding icd
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/run/opengl-driver/share:/run/opengl-driver-32/share
|
||||
# XDG_DATA_DIRS is used by pressure-vessel (steam proton) and vulkan loaders to find the corresponding icd
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/run/opengl-driver/share:/run/opengl-driver-32/share
|
||||
|
||||
# Following XDG spec [1], XDG_DATA_DIRS should default to "/usr/local/share:/usr/share".
|
||||
# In nix, it is commonly set without containing these values, so we add them as fallback.
|
||||
#
|
||||
# [1] <https://specifications.freedesktop.org/basedir-spec/latest>
|
||||
case ":$XDG_DATA_DIRS:" in
|
||||
*:/usr/local/share:*) ;;
|
||||
*) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/local/share" ;;
|
||||
esac
|
||||
case ":$XDG_DATA_DIRS:" in
|
||||
*:/usr/share:*) ;;
|
||||
*) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/share" ;;
|
||||
esac
|
||||
# Following XDG spec [1], XDG_DATA_DIRS should default to "/usr/local/share:/usr/share".
|
||||
# In nix, it is commonly set without containing these values, so we add them as fallback.
|
||||
#
|
||||
# [1] <https://specifications.freedesktop.org/basedir-spec/latest>
|
||||
case ":$XDG_DATA_DIRS:" in
|
||||
*:/usr/local/share:*) ;;
|
||||
*) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/local/share" ;;
|
||||
esac
|
||||
case ":$XDG_DATA_DIRS:" in
|
||||
*:/usr/share:*) ;;
|
||||
*) export XDG_DATA_DIRS="$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}/usr/share" ;;
|
||||
esac
|
||||
|
||||
# Force compilers and other tools to look in default search paths
|
||||
unset NIX_ENFORCE_PURITY
|
||||
export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
|
||||
export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32'
|
||||
export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32'
|
||||
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
|
||||
export ACLOCAL_PATH=/usr/share/aclocal
|
||||
# Force compilers and other tools to look in default search paths
|
||||
unset NIX_ENFORCE_PURITY
|
||||
export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
|
||||
export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32'
|
||||
export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32'
|
||||
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
|
||||
export ACLOCAL_PATH=/usr/share/aclocal
|
||||
|
||||
# GStreamer searches for plugins relative to its real binary's location
|
||||
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/bd97973ce0f2c5495bcda5cccd4f7ef7dcb7febc
|
||||
export GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/gstreamer-1.0:/usr/lib32/gstreamer-1.0
|
||||
# GStreamer searches for plugins relative to its real binary's location
|
||||
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/bd97973ce0f2c5495bcda5cccd4f7ef7dcb7febc
|
||||
export GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/gstreamer-1.0:/usr/lib32/gstreamer-1.0
|
||||
|
||||
${profile}
|
||||
${profile}
|
||||
'';
|
||||
};
|
||||
|
||||
ensureGsettingsSchemasIsDirectory = runCommandLocal "fhsenv-ensure-gsettings-schemas-directory" {} ''
|
||||
mkdir -p $out/share/glib-2.0/schemas
|
||||
touch $out/share/glib-2.0/schemas/.keep
|
||||
'';
|
||||
|
||||
# Compose /etc for the fhs environment
|
||||
etcPkg = runCommandLocal "${name}-fhs-etc" { } ''
|
||||
mkdir -p $out/etc
|
||||
pushd $out/etc
|
||||
# Shamelessly stolen (and cleaned up) from original buildEnv.
|
||||
# Should be semantically equivalent, except we also take
|
||||
# a list of default extra outputs that will be installed
|
||||
# for derivations that don't explicitly specify one.
|
||||
# Note that this is not the same as `extraOutputsToInstall`,
|
||||
# as that will apply even to derivations with an output
|
||||
# explicitly specified, so this does change the behavior
|
||||
# very slightly for that particular edge case.
|
||||
pickOutputs = let
|
||||
pickOutputsOne = outputs: drv:
|
||||
let
|
||||
isSpecifiedOutput = drv.outputSpecified or false;
|
||||
outputsToInstall = drv.meta.outputsToInstall or null;
|
||||
pickedOutputs = if isSpecifiedOutput || outputsToInstall == null
|
||||
then [ drv ]
|
||||
else map (out: drv.${out} or null) (outputsToInstall ++ outputs);
|
||||
extraOutputs = map (out: drv.${out} or null) extraOutputsToInstall;
|
||||
cleanOutputs = lib.filter (o: o != null) (pickedOutputs ++ extraOutputs);
|
||||
in {
|
||||
paths = cleanOutputs;
|
||||
priority = drv.meta.priority or lib.meta.defaultPriority;
|
||||
};
|
||||
in paths: outputs: map (pickOutputsOne outputs) paths;
|
||||
|
||||
# environment variables
|
||||
ln -s ${etcProfile} profile
|
||||
paths = let
|
||||
basePaths = [
|
||||
etcProfile
|
||||
# ldconfig wrapper must come first so it overrides the original ldconfig
|
||||
ldconfig
|
||||
# magic package that just creates a directory, to ensure that
|
||||
# the entire directory can't be a symlink, as we will write
|
||||
# compiled schemas to it
|
||||
ensureGsettingsSchemasIsDirectory
|
||||
] ++ baseTargetPaths ++ targetPaths;
|
||||
in pickOutputs basePaths ["out" "lib" "bin"];
|
||||
|
||||
paths32 = lib.optionals isMultiBuild (
|
||||
let
|
||||
basePaths = baseMultiPaths ++ multiPaths;
|
||||
in pickOutputs basePaths ["out" "lib"]
|
||||
);
|
||||
|
||||
allPaths = paths ++ paths32;
|
||||
|
||||
rootfs-builder = pkgs.rustPlatform.buildRustPackage {
|
||||
name = "fhs-rootfs-bulder";
|
||||
src = ./rootfs-builder;
|
||||
cargoLock.lockFile = ./rootfs-builder/Cargo.lock;
|
||||
doCheck = false;
|
||||
};
|
||||
|
||||
rootfs = pkgs.runCommand "${name}-fhsenv-rootfs" {
|
||||
__structuredAttrs = true;
|
||||
exportReferencesGraph.graph = lib.concatMap (p: p.paths) allPaths;
|
||||
inherit paths paths32 isMultiBuild includeClosures;
|
||||
nativeBuildInputs = [ pkgs.jq ];
|
||||
} ''
|
||||
${rootfs-builder}/bin/rootfs-builder
|
||||
|
||||
# create a bunch of symlinks for usrmerge
|
||||
ln -s /usr/bin $out/bin
|
||||
ln -s /usr/sbin $out/sbin
|
||||
ln -s /usr/lib $out/lib
|
||||
ln -s /usr/lib32 $out/lib32
|
||||
ln -s /usr/lib64 $out/lib64
|
||||
ln -s /usr/lib64 $out/usr/lib
|
||||
|
||||
# symlink 32-bit ld-linux so it's visible in /lib
|
||||
if [ -e $out/usr/lib32/ld-linux.so.2 ]; then
|
||||
ln -s /usr/lib32/ld-linux.so.2 $out/usr/lib64/ld-linux.so.2
|
||||
fi
|
||||
|
||||
# symlink /etc/mtab -> /proc/mounts (compat for old userspace progs)
|
||||
ln -s /proc/mounts mtab
|
||||
'';
|
||||
ln -s /proc/mounts $out/etc/mtab
|
||||
|
||||
# Composes a /usr-like directory structure
|
||||
staticUsrProfileTarget = buildEnv {
|
||||
name = "${name}-usr-target";
|
||||
# ldconfig wrapper must come first so it overrides the original ldconfig
|
||||
paths = [ etcPkg ldconfig ] ++ baseTargetPaths ++ targetPaths;
|
||||
extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
|
||||
ignoreCollisions = true;
|
||||
postBuild = ''
|
||||
if [[ -d $out/share/gsettings-schemas/ ]]; then
|
||||
# Recreate the standard schemas directory if its a symlink to make it writable
|
||||
if [[ -L $out/share/glib-2.0 ]]; then
|
||||
target=$(readlink $out/share/glib-2.0)
|
||||
rm $out/share/glib-2.0
|
||||
mkdir $out/share/glib-2.0
|
||||
ln -fsr $target/* $out/share/glib-2.0
|
||||
fi
|
||||
|
||||
if [[ -L $out/share/glib-2.0/schemas ]]; then
|
||||
target=$(readlink $out/share/glib-2.0/schemas)
|
||||
rm $out/share/glib-2.0/schemas
|
||||
mkdir $out/share/glib-2.0/schemas
|
||||
ln -fsr $target/* $out/share/glib-2.0/schemas
|
||||
fi
|
||||
|
||||
mkdir -p $out/share/glib-2.0/schemas
|
||||
|
||||
for d in $out/share/gsettings-schemas/*; do
|
||||
# Force symlink, in case there are duplicates
|
||||
ln -fsr $d/glib-2.0/schemas/*.xml $out/share/glib-2.0/schemas
|
||||
ln -fsr $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas
|
||||
done
|
||||
|
||||
# and compile them
|
||||
${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
|
||||
fi
|
||||
'';
|
||||
inherit includeClosures;
|
||||
};
|
||||
|
||||
staticUsrProfileMulti = buildEnv {
|
||||
name = "${name}-usr-multi";
|
||||
paths = baseMultiPaths ++ multiPaths;
|
||||
extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall;
|
||||
ignoreCollisions = true;
|
||||
inherit includeClosures;
|
||||
};
|
||||
|
||||
# setup library paths only for the targeted architecture
|
||||
setupLibDirsTarget = ''
|
||||
# link content of targetPaths
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib lib
|
||||
ln -s lib lib${if is64bit then "64" else "32"}
|
||||
'';
|
||||
|
||||
# setup /lib, /lib32 and /lib64
|
||||
setupLibDirsMulti = ''
|
||||
mkdir -m0755 lib32
|
||||
mkdir -m0755 lib64
|
||||
ln -s lib64 lib
|
||||
|
||||
# copy glibc stuff
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/
|
||||
chmod u+w -R lib32/
|
||||
|
||||
# copy content of multiPaths (32bit libs)
|
||||
if [ -d ${staticUsrProfileMulti}/lib ]; then
|
||||
cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/
|
||||
chmod u+w -R lib32/
|
||||
if [[ -d $out/usr/share/gsettings-schemas/ ]]; then
|
||||
for d in $out/usr/share/gsettings-schemas/*; do
|
||||
# Force symlink, in case there are duplicates
|
||||
ln -fsr $d/glib-2.0/schemas/*.xml $out/usr/share/glib-2.0/schemas
|
||||
ln -fsr $d/glib-2.0/schemas/*.gschema.override $out/usr/share/glib-2.0/schemas
|
||||
done
|
||||
${pkgs.glib.dev}/bin/glib-compile-schemas $out/usr/share/glib-2.0/schemas
|
||||
fi
|
||||
|
||||
# copy content of targetPaths (64bit libs)
|
||||
cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/
|
||||
chmod u+w -R lib64/
|
||||
|
||||
# symlink 32-bit ld-linux.so
|
||||
ln -Lsf ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/
|
||||
${extraBuildCommands}
|
||||
${lib.optionalString isMultiBuild extraBuildCommandsMulti}
|
||||
'';
|
||||
|
||||
setupLibDirs = if isTargetBuild
|
||||
then setupLibDirsTarget
|
||||
else setupLibDirsMulti;
|
||||
|
||||
# the target profile is the actual profile that will be used for the fhs
|
||||
setupTargetProfile = ''
|
||||
mkdir -m0755 usr
|
||||
pushd usr
|
||||
|
||||
${setupLibDirs}
|
||||
|
||||
'' + lib.optionalString isMultiBuild ''
|
||||
if [ -d "${staticUsrProfileMulti}/share" ]; then
|
||||
cp -rLf ${staticUsrProfileMulti}/share share
|
||||
fi
|
||||
'' + ''
|
||||
if [ -d "${staticUsrProfileTarget}/share" ]; then
|
||||
if [ -d share ]; then
|
||||
chmod -R 755 share
|
||||
cp -rLTf ${staticUsrProfileTarget}/share share
|
||||
else
|
||||
cp -rsHf ${staticUsrProfileTarget}/share share
|
||||
fi
|
||||
fi
|
||||
for i in bin sbin include; do
|
||||
if [ -d "${staticUsrProfileTarget}/$i" ]; then
|
||||
cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
|
||||
fi
|
||||
done
|
||||
cd ..
|
||||
|
||||
for i in etc opt; do
|
||||
if [ -d "${staticUsrProfileTarget}/$i" ]; then
|
||||
cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
|
||||
fi
|
||||
done
|
||||
for i in usr/{bin,sbin,lib,lib32,lib64}; do
|
||||
if [ -d "$i" ]; then
|
||||
ln -s "$i"
|
||||
fi
|
||||
done
|
||||
|
||||
popd
|
||||
'';
|
||||
|
||||
in runCommandLocal "${name}-fhs" {
|
||||
inherit nativeBuildInputs;
|
||||
passthru = {
|
||||
inherit args baseTargetPaths targetPaths baseMultiPaths ldconfig isMultiBuild;
|
||||
};
|
||||
} ''
|
||||
mkdir -p $out
|
||||
pushd $out
|
||||
|
||||
${setupTargetProfile}
|
||||
${extraBuildCommands}
|
||||
${lib.optionalString isMultiBuild extraBuildCommandsMulti}
|
||||
''
|
||||
in rootfs
|
||||
|
||||
@@ -0,0 +1,249 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.91"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8"
|
||||
|
||||
[[package]]
|
||||
name = "goblin"
|
||||
version = "0.9.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "53ab3f32d1d77146981dea5d6b1e8fe31eedcb7013e5e00d6ccd1259a4b4d923"
|
||||
dependencies = [
|
||||
"log",
|
||||
"plain",
|
||||
"scroll",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
||||
|
||||
[[package]]
|
||||
name = "plain"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rootfs-builder"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"goblin",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
version = "1.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
|
||||
|
||||
[[package]]
|
||||
name = "same-file"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
||||
dependencies = [
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "scroll"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
|
||||
dependencies = [
|
||||
"scroll_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "scroll_derive"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.213"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.213"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.132"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
"ryu",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.85"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
|
||||
|
||||
[[package]]
|
||||
name = "walkdir"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
||||
dependencies = [
|
||||
"same-file",
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
dependencies = [
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.59.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm",
|
||||
"windows_aarch64_msvc",
|
||||
"windows_i686_gnu",
|
||||
"windows_i686_gnullvm",
|
||||
"windows_i686_msvc",
|
||||
"windows_x86_64_gnu",
|
||||
"windows_x86_64_gnullvm",
|
||||
"windows_x86_64_msvc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
||||
|
||||
[[package]]
|
||||
name = "windows_aarch64_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnu"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
||||
|
||||
[[package]]
|
||||
name = "windows_i686_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnu"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_gnullvm"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
||||
|
||||
[[package]]
|
||||
name = "windows_x86_64_msvc"
|
||||
version = "0.52.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||
@@ -0,0 +1,11 @@
|
||||
[package]
|
||||
name = "rootfs-builder"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "*"
|
||||
serde = { version = "*", features = ["derive"] }
|
||||
serde_json = "*"
|
||||
walkdir = "*"
|
||||
goblin = "*"
|
||||
@@ -0,0 +1,293 @@
|
||||
#![deny(clippy::pedantic)]
|
||||
|
||||
use std::{
|
||||
collections::{hash_map::Entry, HashMap},
|
||||
env,
|
||||
fs::{self, File},
|
||||
io::{BufReader, Read},
|
||||
os::unix::fs as ufs,
|
||||
path::{Path, PathBuf},
|
||||
};
|
||||
|
||||
use anyhow::{anyhow, Context};
|
||||
use goblin::{Hint, Object};
|
||||
use serde::Deserialize;
|
||||
use walkdir::WalkDir;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct RefGraphNode {
|
||||
path: PathBuf,
|
||||
references: Vec<PathBuf>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct InputDrv {
|
||||
paths: Vec<PathBuf>,
|
||||
priority: i64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
struct StructuredAttrsRoot {
|
||||
graph: Vec<RefGraphNode>,
|
||||
paths: Vec<InputDrv>,
|
||||
paths32: Vec<InputDrv>,
|
||||
include_closures: bool,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
|
||||
struct PriorityKey {
|
||||
implicit: bool,
|
||||
group_priority: i64,
|
||||
priority: i64,
|
||||
root_index: usize,
|
||||
}
|
||||
|
||||
fn build_reference_map(refs: Vec<RefGraphNode>) -> HashMap<PathBuf, Vec<PathBuf>> {
|
||||
refs.into_iter()
|
||||
.map(|mut gn| {
|
||||
gn.references.retain_mut(|x| x != &gn.path);
|
||||
(gn.path, gn.references)
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn build_priority_keys(roots: &[InputDrv], group_priority: i64) -> HashMap<PathBuf, PriorityKey> {
|
||||
let mut roots_map = HashMap::new();
|
||||
|
||||
for (idx, path) in roots.iter().enumerate() {
|
||||
for subpath in &path.paths {
|
||||
let priority = PriorityKey {
|
||||
group_priority,
|
||||
priority: path.priority,
|
||||
root_index: idx,
|
||||
implicit: false,
|
||||
};
|
||||
|
||||
roots_map.entry(subpath.clone()).or_insert(priority);
|
||||
}
|
||||
}
|
||||
|
||||
roots_map
|
||||
}
|
||||
|
||||
fn extend_to_closure(
|
||||
roots: HashMap<PathBuf, PriorityKey>,
|
||||
refs: &HashMap<PathBuf, Vec<PathBuf>>,
|
||||
) -> anyhow::Result<HashMap<PathBuf, PriorityKey>> {
|
||||
let mut path_map = HashMap::new();
|
||||
|
||||
for (root, priority) in roots {
|
||||
path_map.insert(root.clone(), priority);
|
||||
|
||||
let mut priority = priority;
|
||||
priority.implicit = true;
|
||||
|
||||
let mut stack = vec![root.clone()];
|
||||
|
||||
while let Some(next) = stack.pop() {
|
||||
match path_map.entry(next.clone()) {
|
||||
Entry::Occupied(mut occupied_entry) => {
|
||||
let old_priority: &PriorityKey = occupied_entry.get();
|
||||
if old_priority > &priority {
|
||||
occupied_entry.insert(priority);
|
||||
}
|
||||
}
|
||||
Entry::Vacant(vacant_entry) => {
|
||||
vacant_entry.insert(priority);
|
||||
}
|
||||
}
|
||||
|
||||
stack.extend_from_slice(refs.get(&next).ok_or(anyhow!("encountered unknown path"))?);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(path_map)
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
struct CandidatePath {
|
||||
root: PathBuf,
|
||||
relative: PathBuf,
|
||||
priority: PriorityKey,
|
||||
}
|
||||
|
||||
fn collect_candidate_paths(
|
||||
paths: HashMap<PathBuf, PriorityKey>,
|
||||
mapper: impl Fn(&Path, &Path) -> Option<PathBuf>,
|
||||
) -> anyhow::Result<HashMap<PathBuf, Vec<CandidatePath>>> {
|
||||
let mut candidates: HashMap<_, Vec<_>> = HashMap::new();
|
||||
|
||||
for (path, priority) in paths {
|
||||
for entry in WalkDir::new(&path).follow_links(true) {
|
||||
let entry: PathBuf = match entry {
|
||||
Ok(ent) => {
|
||||
// we don't care about directory structure
|
||||
if ent.file_type().is_dir() {
|
||||
continue;
|
||||
}
|
||||
|
||||
ent.path().into()
|
||||
}
|
||||
Err(e) => {
|
||||
match e.io_error() {
|
||||
// could be a broken symlink, that's fine, we still want to handle those
|
||||
Some(_) => e
|
||||
.path()
|
||||
.ok_or_else(|| anyhow!("I/O error when walking {path:?}"))?
|
||||
.into(),
|
||||
None => {
|
||||
// symlink loop
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let relative = entry.strip_prefix(&path)?.to_owned();
|
||||
if let Some(mapped) = mapper(&path, &relative) {
|
||||
candidates.entry(mapped).or_default().push(CandidatePath {
|
||||
root: path.clone(),
|
||||
relative,
|
||||
priority,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(candidates)
|
||||
}
|
||||
|
||||
fn remap_native_path(root: &Path, p: &Path) -> Option<PathBuf> {
|
||||
if p.starts_with("bin/") || p.starts_with("sbin/") {
|
||||
return Some(PathBuf::from("usr/").join(p));
|
||||
}
|
||||
|
||||
// glibc-multilib special case
|
||||
if let Ok(no_lib32) = p.strip_prefix("lib/32/") {
|
||||
return Some(PathBuf::from("usr/lib32/").join(no_lib32));
|
||||
}
|
||||
|
||||
remap_multilib_path(root, p)
|
||||
}
|
||||
|
||||
fn is_32_bit(path: &Path) -> bool {
|
||||
// Be as pessimistic as possible, at least for now.
|
||||
let Ok(mut f) = File::open(path) else {
|
||||
return false;
|
||||
};
|
||||
|
||||
let Ok(Hint::Elf(hint)) = goblin::peek(&mut f) else {
|
||||
return false;
|
||||
};
|
||||
|
||||
if let Some(is64) = hint.is_64 {
|
||||
return !is64;
|
||||
}
|
||||
|
||||
let mut buf = vec![];
|
||||
let Ok(_) = f.read_to_end(&mut buf) else {
|
||||
return false;
|
||||
};
|
||||
|
||||
let Ok(Object::Elf(e)) = goblin::Object::parse(&buf) else {
|
||||
return false;
|
||||
};
|
||||
|
||||
!e.is_64
|
||||
}
|
||||
|
||||
fn remap_multilib_path(root: &Path, p: &Path) -> Option<PathBuf> {
|
||||
if let Ok(no_lib) = p.strip_prefix("lib/") {
|
||||
let full = root.join(p);
|
||||
|
||||
let libdir = if is_32_bit(&full) { "lib32" } else { "lib64" };
|
||||
|
||||
return Some(PathBuf::from("usr/").join(libdir).join(no_lib));
|
||||
}
|
||||
|
||||
if p.starts_with("etc/") || p.starts_with("opt/") {
|
||||
return Some(p.into());
|
||||
}
|
||||
|
||||
if p.starts_with("share/") || p.starts_with("include/") {
|
||||
return Some(PathBuf::from("usr/").join(p));
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
fn build_plan(
|
||||
paths: HashMap<PathBuf, PriorityKey>,
|
||||
paths32: HashMap<PathBuf, PriorityKey>,
|
||||
) -> anyhow::Result<HashMap<PathBuf, PathBuf>> {
|
||||
let candidates_native = collect_candidate_paths(paths, remap_native_path)?;
|
||||
let candidates_32 = collect_candidate_paths(paths32, remap_multilib_path)?;
|
||||
|
||||
let mut all_candidates: HashMap<_, Vec<_>> = HashMap::new();
|
||||
|
||||
for map in [candidates_native, candidates_32] {
|
||||
for (path, candidates) in map {
|
||||
all_candidates
|
||||
.entry(path)
|
||||
.or_default()
|
||||
.extend_from_slice(&candidates);
|
||||
}
|
||||
}
|
||||
|
||||
let mut final_plan: HashMap<PathBuf, PathBuf> = HashMap::new();
|
||||
for (path, candidates) in all_candidates {
|
||||
let best = candidates
|
||||
.into_iter()
|
||||
.min_by_key(|&CandidatePath { priority, .. }| priority)
|
||||
.ok_or(anyhow!("candidate list empty"))?;
|
||||
final_plan.insert(path, best.root.join(best.relative));
|
||||
}
|
||||
|
||||
Ok(final_plan)
|
||||
}
|
||||
|
||||
fn build_env(out: &Path, plan: HashMap<PathBuf, PathBuf>) -> anyhow::Result<()> {
|
||||
fs::create_dir_all(out)?;
|
||||
|
||||
for (dest, src) in plan {
|
||||
let full_dest = out.join(&dest);
|
||||
let dest_dir = full_dest
|
||||
.parent()
|
||||
.ok_or(anyhow!("destination directory is root"))
|
||||
.with_context(|| {
|
||||
format!("When trying to determine destination directory for {full_dest:?}")
|
||||
})?;
|
||||
fs::create_dir_all(dest_dir)
|
||||
.with_context(|| format!("When trying to create directory {dest_dir:?}"))?;
|
||||
ufs::symlink(&src, &full_dest)
|
||||
.with_context(|| format!("When symlinking {src:?} to {full_dest:?}"))?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn main() -> anyhow::Result<()> {
|
||||
let filename = env::var("NIX_ATTRS_JSON_FILE")?;
|
||||
|
||||
let reader = File::open(filename)?;
|
||||
let buf_reader = BufReader::new(reader);
|
||||
|
||||
let attrs: StructuredAttrsRoot = serde_json::from_reader(buf_reader)?;
|
||||
|
||||
let mut paths = build_priority_keys(&attrs.paths, 1);
|
||||
let mut paths32 = build_priority_keys(&attrs.paths32, 2);
|
||||
|
||||
if attrs.include_closures {
|
||||
let refs = build_reference_map(attrs.graph);
|
||||
|
||||
paths = extend_to_closure(paths, &refs)?;
|
||||
paths32 = extend_to_closure(paths32, &refs)?;
|
||||
};
|
||||
|
||||
let plan = build_plan(paths, paths32)?;
|
||||
|
||||
let out_dir = env::var("out")?;
|
||||
|
||||
build_env(&PathBuf::from(out_dir), plan)
|
||||
}
|
||||
@@ -4,6 +4,7 @@ lib.makeOverridable (
|
||||
{ owner, repo, rev, name ? "source"
|
||||
, fetchSubmodules ? false, leaveDotGit ? null
|
||||
, deepClone ? false, private ? false, forceFetchGit ? false
|
||||
, fetchLFS ? false
|
||||
, sparseCheckout ? []
|
||||
, githubBase ? "github.com", varPrefix ? null
|
||||
, meta ? { }
|
||||
@@ -25,7 +26,7 @@ let
|
||||
};
|
||||
passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ];
|
||||
varBase = "NIX${lib.optionalString (varPrefix != null) "_${varPrefix}"}_GITHUB_PRIVATE_";
|
||||
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []);
|
||||
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || fetchLFS || (sparseCheckout != []);
|
||||
# We prefer fetchzip in cases we don't need submodules as the hash
|
||||
# is more stable in that case.
|
||||
fetcher =
|
||||
@@ -52,7 +53,7 @@ let
|
||||
|
||||
fetcherArgs = (if useFetchGit
|
||||
then {
|
||||
inherit rev deepClone fetchSubmodules sparseCheckout; url = gitRepoUrl;
|
||||
inherit rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl;
|
||||
} // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; }
|
||||
else {
|
||||
url = "${baseUrl}/archive/${rev}.tar.gz";
|
||||
|
||||
@@ -1,46 +1,48 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, telegram-desktop
|
||||
, nix-update-script
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
telegram-desktop,
|
||||
withWebkit ? true,
|
||||
}:
|
||||
|
||||
telegram-desktop.overrideAttrs (old: rec {
|
||||
telegram-desktop.override {
|
||||
pname = "64gram";
|
||||
version = "1.1.43";
|
||||
inherit withWebkit;
|
||||
unwrapped = telegram-desktop.unwrapped.overrideAttrs (old: rec {
|
||||
pname = "64gram-unwrapped";
|
||||
version = "1.1.45";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TDesktop-x64";
|
||||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "TDesktop-x64";
|
||||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bDe4tmJRWnussa5QrBh2oStvIF7R5/nbPfljb3us3nk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-vRiAIGY3CU5+hsdn8xiNbgvSM3eGRVwnvsSmSoaDN/k=";
|
||||
};
|
||||
patches = (old.patches or [ ]) ++ [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/TDesktop-x64/tdesktop/commit/c996ccc1561aed089c8b596f6ab3844335bbf1df.patch";
|
||||
revert = true;
|
||||
hash = "sha256-Hz7BXl5z4owe31l9Je3QOXT8FAyKcbsXsKjGfCmXhzE=";
|
||||
})
|
||||
];
|
||||
|
||||
patches = (old.patches or []) ++ [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/TDesktop-x64/tdesktop/commit/c996ccc1561aed089c8b596f6ab3844335bbf1df.patch";
|
||||
revert = true;
|
||||
hash = "sha256-Hz7BXl5z4owe31l9Je3QOXT8FAyKcbsXsKjGfCmXhzE=";
|
||||
})
|
||||
];
|
||||
cmakeFlags = (old.cmakeFlags or [ ]) ++ [
|
||||
(lib.cmakeBool "DESKTOP_APP_DISABLE_AUTOUPDATE" true)
|
||||
(lib.cmakeBool "disable_autoupdate" true)
|
||||
];
|
||||
|
||||
cmakeFlags = (old.cmakeFlags or []) ++ [
|
||||
(lib.cmakeBool "DESKTOP_APP_DISABLE_AUTOUPDATE" true)
|
||||
(lib.cmakeBool "disable_autoupdate" true)
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Unofficial Telegram Desktop providing Windows 64bit build and extra features";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.all;
|
||||
homepage = "https://github.com/TDesktop-x64/tdesktop";
|
||||
changelog = "https://github.com/TDesktop-x64/tdesktop/releases/tag/v${version}";
|
||||
maintainers = with maintainers; [ clot27 ];
|
||||
mainProgram = if stdenv.hostPlatform.isLinux then "telegram-desktop" else "Telegram";
|
||||
};
|
||||
})
|
||||
meta = {
|
||||
description = "Unofficial Telegram Desktop providing Windows 64bit build and extra features";
|
||||
license = lib.licenses.gpl3Only;
|
||||
platforms = lib.platforms.all;
|
||||
homepage = "https://github.com/TDesktop-x64/tdesktop";
|
||||
changelog = "https://github.com/TDesktop-x64/tdesktop/releases/tag/v${version}";
|
||||
maintainers = with lib.maintainers; [ clot27 ];
|
||||
mainProgram = if stdenv.hostPlatform.isLinux then "telegram-desktop" else "Telegram";
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{ python3Packages }:
|
||||
|
||||
with python3Packages;
|
||||
toPythonApplication aggregate6
|
||||
@@ -1,9 +1,21 @@
|
||||
{ lib
|
||||
, python312Packages
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
{
|
||||
lib,
|
||||
python312Packages,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
fetchPypi,
|
||||
}:
|
||||
|
||||
let
|
||||
pixel-font-builder-compat = python312Packages.pixel-font-builder.overrideAttrs rec {
|
||||
version = "0.0.26";
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "pixel_font_builder";
|
||||
hash = "sha256-bgs2FbOA5tcUXe5+KuVztWGAv5yFxQNBaiZMeZ+ic+8=";
|
||||
};
|
||||
};
|
||||
in
|
||||
python312Packages.buildPythonPackage rec {
|
||||
pname = "ark-pixel-font";
|
||||
version = "2024.05.12";
|
||||
@@ -18,7 +30,7 @@ python312Packages.buildPythonPackage rec {
|
||||
format = "other";
|
||||
|
||||
nativeBuildInputs = with python312Packages; [
|
||||
pixel-font-builder
|
||||
pixel-font-builder-compat
|
||||
unidata-blocks
|
||||
character-encoding-utils
|
||||
pypng
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
bgpq4,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "arouteserver";
|
||||
version = "1.23.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pierky";
|
||||
repo = "arouteserver";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EZOBMDBsxbuVzzjQWU8V4n3gcLkRQxCq2eVK/Tyko4E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace tests/static/test_irr_queries_failover.py --replace-fail 'bgpq4 -h' '${lib.getExe bgpq4} -h'
|
||||
|
||||
substituteInPlace pierky/arouteserver/builder.py pierky/arouteserver/config/program.py tests/static/test_cfg_program.py \
|
||||
--replace-fail '"bgpq4"' '"${lib.getExe bgpq4}"'
|
||||
'';
|
||||
|
||||
build-system = with python3Packages; [ setuptools ];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
aggregate6
|
||||
jinja2
|
||||
pyyaml
|
||||
requests
|
||||
packaging
|
||||
urllib3
|
||||
setuptools
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
pytestCheckHook
|
||||
requests-mock
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"pierky"
|
||||
"pierky.arouteserver"
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "tests/static" ];
|
||||
|
||||
meta = {
|
||||
description = "Automatically build (and test) feature-rich configurations for BGP route servers";
|
||||
mainProgram = "arouteserver";
|
||||
homepage = "https://github.com/pierky/arouteserver";
|
||||
changelog = "https://github.com/pierky/arouteserver/blob/v${version}/CHANGES.rst";
|
||||
license = with lib.licenses; [ gpl3Only ];
|
||||
maintainers = lib.teams.wdz.members ++ (with lib.maintainers; [ marcel ]);
|
||||
};
|
||||
}
|
||||
@@ -62,14 +62,14 @@ let
|
||||
in
|
||||
py.pkgs.buildPythonApplication rec {
|
||||
pname = "awscli2";
|
||||
version = "2.18.15"; # N.B: if you change this, check if overrides are still up-to-date
|
||||
version = "2.19.0"; # N.B: if you change this, check if overrides are still up-to-date
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "aws-cli";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-dm4Z3WsFq5GQN6gvi5OS9J96PqhGx8Qz2OsHwUBrsAs=";
|
||||
hash = "sha256-kHJXdqGRVA4C3EB1T9gQYoM6M8E/UYTTma1RqLZqH58=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "baddns";
|
||||
version = "1.1.869";
|
||||
version = "1.3.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blacklanternsecurity";
|
||||
repo = "baddns";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-BoRR7duvkXjI8vVP59IOACuIV7NmQe1loMEUgPfsdNw=";
|
||||
hash = "sha256-pF7HYl1l+TSahJHuyVBZtYeET6wPCiSi+Yi7Rg46T44=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
@@ -48,7 +48,13 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
disabledTests = [
|
||||
# Tests require network access
|
||||
"test_cli_cname_http"
|
||||
"test_cli_direct"
|
||||
"test_cli_validation_customnameservers_valid"
|
||||
"test_cname_http_bigcartel_match"
|
||||
"test_cname_whois_unregistered_baddata"
|
||||
"test_cname_whois_unregistered_match"
|
||||
"test_cname_whois_unregistered_missingdata"
|
||||
"test_modules_customnameservers"
|
||||
"test_references_cname_css"
|
||||
"test_references_cname_js"
|
||||
@@ -57,6 +63,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
meta = {
|
||||
description = "Tool to check subdomains for subdomain takeovers and other DNS issues";
|
||||
homepage = "https://github.com/blacklanternsecurity/baddns/";
|
||||
changelog = "https://github.com/blacklanternsecurity/baddns/releases/tag/v${version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "baddns";
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
, gtk4
|
||||
, qt6
|
||||
, libX11
|
||||
, libXScrnSaver
|
||||
, libXcomposite
|
||||
@@ -83,7 +84,7 @@ let
|
||||
libxkbcommon libXScrnSaver libXcomposite libXcursor libXdamage
|
||||
libXext libXfixes libXi libXrandr libXrender libxshmfence
|
||||
libXtst libuuid mesa nspr nss pango pipewire udev wayland
|
||||
xorg.libxcb zlib snappy libkrb5
|
||||
xorg.libxcb zlib snappy libkrb5 qt6.qtbase
|
||||
]
|
||||
++ optional pulseSupport libpulseaudio
|
||||
++ optional libvaSupport libva;
|
||||
|
||||
Generated
+111
-108
@@ -8,6 +8,12 @@ version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
||||
|
||||
[[package]]
|
||||
name = "adler2"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.7.8"
|
||||
@@ -79,15 +85,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.86"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
|
||||
checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
|
||||
|
||||
[[package]]
|
||||
name = "arrayvec"
|
||||
version = "0.7.4"
|
||||
version = "0.7.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
|
||||
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
||||
|
||||
[[package]]
|
||||
name = "associative-cache"
|
||||
@@ -121,9 +127,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "async-executor"
|
||||
version = "1.13.0"
|
||||
version = "1.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
|
||||
checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec"
|
||||
dependencies = [
|
||||
"async-task",
|
||||
"concurrent-queue",
|
||||
@@ -175,9 +181,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "async-process"
|
||||
version = "2.2.4"
|
||||
version = "2.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374"
|
||||
checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"async-io",
|
||||
@@ -190,7 +196,6 @@ dependencies = [
|
||||
"futures-lite",
|
||||
"rustix",
|
||||
"tracing",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -201,7 +206,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -230,13 +235,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
|
||||
|
||||
[[package]]
|
||||
name = "async-trait"
|
||||
version = "0.1.81"
|
||||
version = "0.1.82"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
|
||||
checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -317,7 +322,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "browsers"
|
||||
version = "0.5.8"
|
||||
version = "0.6.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"cocoa-foundation 0.2.0",
|
||||
@@ -371,9 +376,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
||||
|
||||
[[package]]
|
||||
name = "bytemuck"
|
||||
version = "1.16.3"
|
||||
version = "1.18.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83"
|
||||
checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
@@ -408,9 +413,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.12"
|
||||
version = "1.1.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "68064e60dbf1f17005c2fde4d07c16d8baa506fd7ffed8ccab702d93617975c7"
|
||||
checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0"
|
||||
dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
@@ -439,18 +444,18 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.15"
|
||||
version = "4.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc"
|
||||
checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.15"
|
||||
version = "4.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
|
||||
checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
@@ -640,9 +645,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.13"
|
||||
version = "0.2.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
|
||||
checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
@@ -804,7 +809,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -899,9 +904,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
|
||||
|
||||
[[package]]
|
||||
name = "dwrote"
|
||||
version = "0.11.0"
|
||||
version = "0.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
|
||||
checksum = "2da3498378ed373237bdef1eddcc64e7be2d3ba4841f4c22a998e81cadeea83c"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"libc",
|
||||
@@ -933,7 +938,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -975,9 +980,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "fastrand"
|
||||
version = "2.1.0"
|
||||
version = "2.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
|
||||
checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
|
||||
|
||||
[[package]]
|
||||
name = "fdeflate"
|
||||
@@ -1000,12 +1005,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "flate2"
|
||||
version = "1.0.31"
|
||||
version = "1.0.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920"
|
||||
checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"miniz_oxide",
|
||||
"miniz_oxide 0.8.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1074,9 +1079,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "freedesktop-desktop-entry"
|
||||
version = "0.7.0"
|
||||
version = "0.7.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "714dc75515835140c365a1f199143577afe4650ef1277f2fba50032c8c20bbc2"
|
||||
checksum = "d83c9c25bc7e0ff18c6fee324db310497622be235fd45c0f7347ab81981a941e"
|
||||
dependencies = [
|
||||
"dirs 5.0.1",
|
||||
"gettext-rs",
|
||||
@@ -1154,7 +1159,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1268,9 +1273,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "gettext-rs"
|
||||
version = "0.7.0"
|
||||
version = "0.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
|
||||
checksum = "4a6716b8a0db461a2720b850ba1623e5b69e4b1aa0224cf5e1fb23a0fe49e65c"
|
||||
dependencies = [
|
||||
"gettext-sys",
|
||||
"locale_config",
|
||||
@@ -1278,9 +1283,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "gettext-sys"
|
||||
version = "0.21.3"
|
||||
version = "0.21.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
|
||||
checksum = "f7b8797f28f2dabfbe2caadb6db4f7fd739e251b5ede0a2ba49e506071edcf67"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"temp-dir",
|
||||
@@ -1374,9 +1379,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
||||
|
||||
[[package]]
|
||||
name = "globset"
|
||||
version = "0.4.14"
|
||||
version = "0.4.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
|
||||
checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19"
|
||||
dependencies = [
|
||||
"aho-corasick",
|
||||
"bstr",
|
||||
@@ -1516,9 +1521,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "2.4.0"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
|
||||
checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
|
||||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown 0.14.5",
|
||||
@@ -1621,9 +1626,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.156"
|
||||
version = "0.2.159"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a5f43f184355eefb8d17fc948dbecf6c13be3c141f20d834ae842193a448c72a"
|
||||
checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
|
||||
|
||||
[[package]]
|
||||
name = "libredox"
|
||||
@@ -1721,6 +1726,15 @@ dependencies = [
|
||||
"simd-adler32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "miniz_oxide"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
|
||||
dependencies = [
|
||||
"adler2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "naive-cityhash"
|
||||
version = "0.2.0"
|
||||
@@ -1929,9 +1943,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "parking"
|
||||
version = "2.2.0"
|
||||
version = "2.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
|
||||
checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
|
||||
|
||||
[[package]]
|
||||
name = "percent-encoding"
|
||||
@@ -2051,9 +2065,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pkg-config"
|
||||
version = "0.3.30"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
|
||||
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
|
||||
|
||||
[[package]]
|
||||
name = "png"
|
||||
@@ -2065,7 +2079,7 @@ dependencies = [
|
||||
"crc32fast",
|
||||
"fdeflate",
|
||||
"flate2",
|
||||
"miniz_oxide",
|
||||
"miniz_oxide 0.7.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2110,11 +2124,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-crate"
|
||||
version = "3.1.0"
|
||||
version = "3.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
|
||||
checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"
|
||||
dependencies = [
|
||||
"toml_edit 0.21.1",
|
||||
"toml_edit 0.22.21",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2152,9 +2166,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.36"
|
||||
version = "1.0.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
|
||||
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
@@ -2197,9 +2211,9 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175"
|
||||
|
||||
[[package]]
|
||||
name = "redox_users"
|
||||
version = "0.4.5"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
|
||||
checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"libredox",
|
||||
@@ -2268,18 +2282,18 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
||||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
||||
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
||||
dependencies = [
|
||||
"semver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.38.34"
|
||||
version = "0.38.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
|
||||
checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"errno",
|
||||
@@ -2323,29 +2337,29 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.208"
|
||||
version = "1.0.210"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
|
||||
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.208"
|
||||
version = "1.0.210"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
|
||||
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.125"
|
||||
version = "1.0.128"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
|
||||
checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
@@ -2361,7 +2375,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2479,9 +2493,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.74"
|
||||
version = "2.0.77"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7"
|
||||
checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -2528,28 +2542,28 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "textdistance"
|
||||
version = "1.0.2"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d321c8576c2b47e43953e9cce236550d4cd6af0a6ce518fe084340082ca6037b"
|
||||
checksum = "7f1835c76a9d443834c04539860f3ce46b9d93ef8c260057f939e967ca81180a"
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.63"
|
||||
version = "1.0.64"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
|
||||
checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.63"
|
||||
version = "1.0.64"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
|
||||
checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2646,7 +2660,7 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_spanned",
|
||||
"toml_datetime",
|
||||
"toml_edit 0.22.20",
|
||||
"toml_edit 0.22.21",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2671,20 +2685,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.21.1"
|
||||
version = "0.22.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"toml_datetime",
|
||||
"winnow 0.5.40",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.22.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
|
||||
checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"serde",
|
||||
@@ -2724,7 +2727,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2886,24 +2889,24 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-normalization"
|
||||
version = "0.1.23"
|
||||
version = "0.1.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
|
||||
checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
|
||||
dependencies = [
|
||||
"tinyvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-segmentation"
|
||||
version = "1.11.0"
|
||||
version = "1.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
|
||||
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
||||
|
||||
[[package]]
|
||||
name = "url"
|
||||
@@ -2974,7 +2977,7 @@ dependencies = [
|
||||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
@@ -2996,7 +2999,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
@@ -3339,10 +3342,10 @@ version = "4.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e"
|
||||
dependencies = [
|
||||
"proc-macro-crate 3.1.0",
|
||||
"proc-macro-crate 3.2.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
"zvariant_utils",
|
||||
]
|
||||
|
||||
@@ -3375,7 +3378,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3397,10 +3400,10 @@ version = "4.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449"
|
||||
dependencies = [
|
||||
"proc-macro-crate 3.1.0",
|
||||
"proc-macro-crate 3.2.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
"zvariant_utils",
|
||||
]
|
||||
|
||||
@@ -3412,5 +3415,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.74",
|
||||
"syn 2.0.77",
|
||||
]
|
||||
|
||||
@@ -10,17 +10,19 @@
|
||||
glib,
|
||||
gtk3,
|
||||
pango,
|
||||
stdenv,
|
||||
darwin,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "browsers";
|
||||
version = "0.5.8";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Browsers-software";
|
||||
repo = "browsers";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-o9vyrHQsZQ3qywA4bviM+W4xx64IZL24VHErMFAEMFE=";
|
||||
hash = "sha256-qLqyv5XXG7cpW+/eNCWguqemT3G2BhnolntHi2zZJ0o=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
@@ -36,14 +38,21 @@ rustPlatform.buildRustPackage rec {
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
atk
|
||||
cairo
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
pango
|
||||
];
|
||||
buildInputs =
|
||||
[
|
||||
atk
|
||||
cairo
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
pango
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
darwin.apple_sdk.frameworks.AppKit
|
||||
darwin.apple_sdk.frameworks.CoreGraphics
|
||||
darwin.apple_sdk.frameworks.CoreText
|
||||
darwin.apple_sdk.frameworks.Foundation
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -m 444 \
|
||||
@@ -67,7 +76,6 @@ rustPlatform.buildRustPackage rec {
|
||||
changelog = "https://github.com/Browsers-software/browsers/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ravenz46 ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "browsers";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "byedpi";
|
||||
version = "0.14.1";
|
||||
version = "0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hufrea";
|
||||
repo = "byedpi";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-JdL+3ETNxaEtOLUhgLSABL9C8w/EM4Ay37OXU5jLCFA=";
|
||||
hash = "sha256-jsQFfIvWvpJRBewUSS5bhDGocfPTvtG6LiejUxdqk28=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -15,14 +15,14 @@ let
|
||||
"cli"
|
||||
"desktop"
|
||||
];
|
||||
version = "0.42.0";
|
||||
version = "0.43.1";
|
||||
cli = fetchurl {
|
||||
url = "https://caido.download/releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
|
||||
hash = "sha256-Y0ygbdL9IKvTRLwR0oW1LjFQZfPxKOoZnSDV2zgtJjM=";
|
||||
hash = "sha256-6thdJf6UCzeKOgjPTkK4FsgbQ2u6Eu+tnHihXJPMEUQ=";
|
||||
};
|
||||
desktop = fetchurl {
|
||||
url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
|
||||
hash = "sha256-zS/lbcXK1iN2tuUMWc6Us0q2eUypD8mXsw0C+QKE3+w=";
|
||||
hash = "sha256-HEx+RFWF+qfFut5n1ZxKQHjSTGq5EbXAupPJ+5H5LQ0=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version;
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-make";
|
||||
version = "0.37.20";
|
||||
version = "0.37.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sagiegurari";
|
||||
repo = "cargo-make";
|
||||
rev = version;
|
||||
hash = "sha256-PmCpm+ZOqnJdGrQtOciU6hEKV2lfoUT8bGtWzRpBXxQ=";
|
||||
hash = "sha256-yYZasrnfxpLf0z6GndLYhkIFfVNjTkx4zdfHYX6WyXk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-RjsYrFbS/OiMQKTiPshGcBI9KF75Z5stn2HaB6mniZE=";
|
||||
cargoHash = "sha256-X4FhUqhf58wbl3A8nlXAqnYkkaXajxxqRyJn5K7BVqM=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -170,7 +170,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
apple-psl20
|
||||
gpl2 # GNU as
|
||||
];
|
||||
maintainers = with lib.maintainers; [ reckenrode ];
|
||||
maintainers = lib.teams.darwin.members;
|
||||
platforms = lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "connectome-workbench";
|
||||
version = "2.0.0";
|
||||
version = "2.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Washington-University";
|
||||
repo = "workbench";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-d0J5bXp6mJlUQBmInxPXPkd5P5H+3F6fE9fc8pD1fUc=";
|
||||
hash = "sha256-M5iverVDhBI/ijbgwfa6gHrthY4wrUi+/2A/443jBqg=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src";
|
||||
@@ -40,6 +40,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# ld: ../Brain/libBrain.a(BrainOpenGLVolumeObliqueSliceDrawing.cxx.o): undefined reference to symbol 'glGetFloatv'
|
||||
# ld: /nix/store/a5vcvrkh1c2ng5kr584g3zw3991vnhks-libGL-1.7.0/lib/libGL.so.1: error adding symbols: DSO missing from command line
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = "-fpermissive";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
libsForQt5.wrapQtAppsHook
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "cosmic-icons";
|
||||
version = "1.0.0-alpha.2";
|
||||
version = "1.0.0-alpha.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pop-os";
|
||||
repo = "cosmic-icons";
|
||||
rev = "341c84467fd863f0319cadf49b3d4bac1bf3029a";
|
||||
hash = "sha256-VA2QKuzTQBgubfjPXdpejFtZxqOZUXds/fZrfN6/8Nk=";
|
||||
rev = "epoch-1.0.0-alpha.3";
|
||||
hash = "sha256-7gWCRBiE+XJX1JSjopyPN4bIIgZih6ZKGVSA7wBq3i0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ just ];
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
diff --git a/XOptions/xoptions.cpp b/XOptions/xoptions.cpp
|
||||
index ca5723e..30574a5 100755
|
||||
index 8c887c3..36cdbc3 100755
|
||||
--- a/XOptions/xoptions.cpp
|
||||
+++ b/XOptions/xoptions.cpp
|
||||
@@ -1531,14 +1531,7 @@ bool XOptions::checkNative(const QString &sIniFileName)
|
||||
@@ -1754,14 +1754,7 @@ bool XOptions::checkNative(const QString &sIniFileName)
|
||||
#if defined(Q_OS_MAC)
|
||||
bResult = true;
|
||||
#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
|
||||
- QString sApplicationDirPath = qApp->applicationDirPath();
|
||||
-
|
||||
- if ((sApplicationDirPath == "/bin") || (sApplicationDirPath == "/usr/bin") || (sApplicationDirPath == "/usr/local/bin") ||
|
||||
- if ((sApplicationDirPath == "/bin") || (sApplicationDirPath == "/usr/bin") || (sApplicationDirPath == "/usr/local/bin") || (sApplicationDirPath == "/app/bin") ||
|
||||
- (sApplicationDirPath.contains("/usr/local/bin$")) || isAppImage()) {
|
||||
- bResult = true;
|
||||
- } else {
|
||||
@@ -18,7 +18,7 @@ index ca5723e..30574a5 100755
|
||||
#elif defined(Q_OS_WIN)
|
||||
QString sApplicationDirPath = qApp->applicationDirPath();
|
||||
|
||||
@@ -1565,22 +1558,7 @@ QString XOptions::getApplicationDataPath()
|
||||
@@ -1788,22 +1781,7 @@ QString XOptions::getApplicationDataPath()
|
||||
#ifdef Q_OS_MAC
|
||||
sResult = sApplicationDirPath + "/../Resources";
|
||||
#elif defined(Q_OS_LINUX)
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "detect-it-easy";
|
||||
version = "3.09";
|
||||
version = "3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "horsicq";
|
||||
repo = "DIE-engine";
|
||||
rev = finalAttrs.version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-A9YZBlGf3j+uSefPiDhrS1Qtu6vaLm4Yodt7BioGD2Q=";
|
||||
hash = "sha256-yHgxYig5myY2nExweUk2muKbJTKN3SiwOLgQcMIY/BQ=";
|
||||
};
|
||||
|
||||
patches = [ ./0001-remove-hard-coded-paths-in-xoptions.patch ];
|
||||
@@ -53,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
# clean up wrongly created dirs in `install.sh` and broken .desktop file
|
||||
postInstall = ''
|
||||
rm -r $out/lib/{bin,share}
|
||||
grep -v "Version=#VERSION#" $src/LINUX/die.desktop > $out/share/applications/die.desktop
|
||||
'';
|
||||
|
||||
@@ -61,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "Program for determining types of files for Windows, Linux and MacOS.";
|
||||
mainProgram = "die";
|
||||
homepage = "https://github.com/horsicq/Detect-It-Easy";
|
||||
changelog = "https://github.com/horsicq/Detect-It-Easy/blob/master/changelog.txt";
|
||||
maintainers = with lib.maintainers; [ ivyfanchiang ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = lib.licenses.mit;
|
||||
|
||||
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
(lib.enableFeature (!stdenv.hostPlatform.isDarwin) "sdltest")
|
||||
"--enable-debug-vdp"
|
||||
"--enable-debugger"
|
||||
"--enable-joystick"
|
||||
@@ -34,6 +35,8 @@ stdenv.mkDerivation rec {
|
||||
"--with-star=no" # Needs ASM support
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-reserved-user-defined-literal";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://dgen.sourceforge.net/";
|
||||
description = "Sega Genesis/Mega Drive emulator";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{ buildGoModule
|
||||
, fetchFromGitLab
|
||||
, fetchFromGitHub
|
||||
, gobject-introspection
|
||||
, gst_all_1
|
||||
@@ -12,6 +13,19 @@
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
|
||||
let
|
||||
libspelling_2_1 = libspelling.overrideAttrs {
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "libspelling";
|
||||
rev = "refs/tags/0.2.1";
|
||||
hash = "sha256-0OGcwPGWtYYf0XmvzXEaQgebBOW/6JWcDuF4MlQjCZQ=";
|
||||
};
|
||||
};
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "dissent";
|
||||
version = "0.0.30";
|
||||
@@ -39,7 +53,9 @@ buildGoModule rec {
|
||||
libadwaita
|
||||
libcanberra-gtk3
|
||||
sound-theme-freedesktop
|
||||
libspelling
|
||||
# gotk4-spelling fails to build with libspelling >= 0.3.0
|
||||
# https://github.com/diamondburned/gotk4-spelling/issues/1
|
||||
libspelling_2_1
|
||||
gtksourceview5
|
||||
];
|
||||
|
||||
|
||||
@@ -6,19 +6,20 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "dnsdiag";
|
||||
version = "2.5.0";
|
||||
version = "2.6.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "farrokhi";
|
||||
repo = "dnsdiag";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-qUbHwbLPDyy24GNu3dDJQKV3B71q1ODNMyRFIWwyRuo=";
|
||||
hash = "sha256-6TDs+ncbVa7LWtGLlqEXJb9zzXZ+nAhbi4QGyCSu3ho=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
aioquic
|
||||
cryptography
|
||||
cymruwhois
|
||||
dnspython
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From c82a6e988594e6bb703df1f39d31451ea5be6967 Mon Sep 17 00:00:00 2001
|
||||
From: wxt <3264117476@qq.com>
|
||||
Date: Sun, 3 Nov 2024 16:23:50 +0800
|
||||
Subject: [PATCH] fix build
|
||||
|
||||
---
|
||||
tests/conftest.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/conftest.py b/tests/conftest.py
|
||||
index 162781b..d13808d 100644
|
||||
--- a/tests/conftest.py
|
||||
+++ b/tests/conftest.py
|
||||
@@ -47,11 +47,12 @@ def wrap_function(function, function_path, arg_index, kwarg_key, root):
|
||||
|
||||
msg = "The '{0}' argument to {1}() must be an absolute path"
|
||||
msg = msg.format(kwarg_key, function_path)
|
||||
+ value = os.path.join(value)
|
||||
assert value == os.path.abspath(value), msg
|
||||
|
||||
msg = "The '{0}' argument to {1}() must be rooted in {2}"
|
||||
msg = msg.format(kwarg_key, function_path, root)
|
||||
- assert value[: len(str(root))] == str(root), msg
|
||||
+ assert value[: len(str(root))] == str(root) or value.find("pytest-cache")!=-1, msg
|
||||
|
||||
return function(*args, **kwargs)
|
||||
|
||||
--
|
||||
2.46.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
@@ -19,13 +20,18 @@ python3Packages.buildPythonApplication rec {
|
||||
patchShebangs bin/dotbot
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# ignore pytest-cache because it was not at /tmp/nix-shell and it was used by pytest itself not our program
|
||||
./0001-fix-build.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = with python3Packages; [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ pyyaml ];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tool that bootstraps your dotfiles";
|
||||
mainProgram = "dotbot";
|
||||
longDescription = ''
|
||||
@@ -36,9 +42,8 @@ python3Packages.buildPythonApplication rec {
|
||||
dotfiles.
|
||||
'';
|
||||
homepage = "https://github.com/anishathalye/dotbot";
|
||||
changelog =
|
||||
"https://github.com/anishathalye/dotbot/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ludat ];
|
||||
changelog = "https://github.com/anishathalye/dotbot/blob/v${version}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ludat ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ecapture";
|
||||
version = "0.8.8";
|
||||
version = "0.8.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gojue";
|
||||
repo = "ecapture";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-pw/qlYVw1ofYDrTWTQVdx/N9U2JjkB05c7IUXURd4B8=";
|
||||
hash = "sha256-snq6ypEEyIVxD19pdc2qw/j6FPgmRS9l6lmdDcUljKw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
+1389
-937
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
}:
|
||||
|
||||
let
|
||||
fetch_librusty_v8 =
|
||||
args:
|
||||
fetchurl {
|
||||
name = "librusty_v8-${args.version}";
|
||||
url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
|
||||
hash = args.shas.${stdenv.hostPlatform.system};
|
||||
meta = {
|
||||
inherit (args) version;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
};
|
||||
in
|
||||
fetch_librusty_v8 {
|
||||
version = "0.97.1";
|
||||
shas = {
|
||||
x86_64-linux = "sha256-wQBEi2Vs5ruhSkq0n3z8WWjls6V3th2cm+O6s4LDB8k=";
|
||||
aarch64-linux = "sha256-U0PCUNcshm7AaBuUgwQQ1Qn9dr1iL2Okodl6BI/nZR8=";
|
||||
x86_64-darwin = "sha256-cGXOstCOdqaOpU2LcOT5A0JfnkoDvUHhOcCJ9vsS7CM=";
|
||||
aarch64-darwin = "sha256-9TmAON0KUVRQISTudyryIhf4VC/Dc4caq69iquDdrTU=";
|
||||
};
|
||||
}
|
||||
+29
-15
@@ -1,17 +1,18 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, callPackage
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, nix-update-script
|
||||
, darwin
|
||||
, openssl
|
||||
, pkg-config
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
callPackage,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
nix-update-script,
|
||||
darwin,
|
||||
openssl,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "edge-runtime";
|
||||
version = "1.53.4";
|
||||
version = "1.60.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
@@ -20,21 +21,34 @@ rustPlatform.buildRustPackage {
|
||||
owner = "supabase";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-sDgGfQiAUuI+JaF0BRB5lwvjbWWIoTV/k/tbQsBBc4E=";
|
||||
hash = "sha256-w0iSKHT6aIixKh1bHg1lOQNEw/emKK7R2iLzWjb2Pnk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"ort-2.0.0-rc.0" = "sha256-j3g9ES2ZLmAAcPYgszBGDG16HiFJTnohwxSvXypFGTw=";
|
||||
"deno_core-0.293.0" = "sha256-5WBORHokzWPdro9rmBijcsx/j81YFaEfMIK276bfI1o=";
|
||||
"eszip-0.72.2" = "sha256-lzJeapA5NTWBnBaQY8i82OeYN2DIukJZKoRAXFG4qVA=";
|
||||
"ort-2.0.0-rc.2" = "sha256-jOKeulnW/m+q1xf77jaNzLT+In/AFcSDDbz7xF23x5g=";
|
||||
};
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ openssl ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [ Security CoreFoundation SystemConfiguration ]);
|
||||
buildInputs =
|
||||
lib.optionals stdenv.hostPlatform.isLinux [ openssl ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin (
|
||||
with darwin.apple_sdk.frameworks;
|
||||
[
|
||||
Security
|
||||
CoreFoundation
|
||||
SystemConfiguration
|
||||
]
|
||||
);
|
||||
|
||||
# The v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
|
||||
# To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE
|
||||
@@ -73,7 +73,6 @@ let
|
||||
};
|
||||
|
||||
allBeamDeps = import ./rebar-deps.nix {
|
||||
# TODO(@chuangzhu) add updateScript
|
||||
inherit fetchHex fetchgit fetchFromGitHub;
|
||||
builder = lib.makeOverridable beamPackages.buildRebar3;
|
||||
|
||||
@@ -142,7 +141,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs:{
|
||||
pname = "ejabberd";
|
||||
version = "24.07";
|
||||
version = "24.10";
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
@@ -171,7 +170,7 @@ stdenv.mkDerivation (finalAttrs:{
|
||||
owner = "processone";
|
||||
repo = "ejabberd";
|
||||
rev = "refs/tags/${finalAttrs.version}";
|
||||
hash = "sha256-4wEQBumWrHqN2uNrDxAJhgv2ok7pgQlAEPpL96ZOsTQ=";
|
||||
hash = "sha256-WQCFwhyaTVAX1bQURJkiCupgr3zc5yKrhQBiGyYsWZk=";
|
||||
};
|
||||
|
||||
passthru.tests = {
|
||||
@@ -211,6 +210,8 @@ stdenv.mkDerivation (finalAttrs:{
|
||||
}"''}
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Open-source XMPP application server written in Erlang";
|
||||
mainProgram = "ejabberdctl";
|
||||
|
||||
@@ -54,11 +54,11 @@ let
|
||||
};
|
||||
xmpp = builder {
|
||||
name = "xmpp";
|
||||
version = "1.8.3";
|
||||
version = "1.9.0";
|
||||
src = fetchHex {
|
||||
pkg = "xmpp";
|
||||
version = "1.8.3";
|
||||
sha256 = "sha256-7XAGX5qJqBjc/0O3TAgMnn9PFBThBRvt23KA24Ca9xE=";
|
||||
version = "1.9.0";
|
||||
sha256 = "sha256-wbkb50qalQOvpnZvdWR3UWkg/7/uoMJgwvoXE1X1PCc=";
|
||||
};
|
||||
beamDeps = [
|
||||
ezlib
|
||||
@@ -71,11 +71,11 @@ let
|
||||
};
|
||||
stun = builder {
|
||||
name = "stun";
|
||||
version = "1.2.14";
|
||||
version = "1.2.15";
|
||||
src = fetchHex {
|
||||
pkg = "stun";
|
||||
version = "1.2.14";
|
||||
sha256 = "sha256-4TSAext6jf/ZTmTu/uAOZce0BC89FOFvj0NWbSA3FYM=";
|
||||
version = "1.2.15";
|
||||
sha256 = "sha256-9tilQaKf0T8s5li2dsDMZhJiuW4EW1Le8WRLdevA7e8=";
|
||||
};
|
||||
beamDeps = [
|
||||
fast_tls
|
||||
@@ -124,11 +124,11 @@ let
|
||||
};
|
||||
p1_pgsql = builder {
|
||||
name = "p1_pgsql";
|
||||
version = "1.1.27";
|
||||
version = "1.1.28";
|
||||
src = fetchHex {
|
||||
pkg = "p1_pgsql";
|
||||
version = "1.1.27";
|
||||
sha256 = "sha256-jk0adgLLaHgOVdidxamy4arKP08e49GiXy+MPSNk/7k=";
|
||||
version = "1.1.28";
|
||||
sha256 = "sha256-ZVu3XfA2rOVd3OF8p0EUPELgZnxiBqwnpNy8Zfcaye8=";
|
||||
};
|
||||
beamDeps = [ xmpp ];
|
||||
};
|
||||
@@ -144,21 +144,21 @@ let
|
||||
};
|
||||
p1_mysql = builder {
|
||||
name = "p1_mysql";
|
||||
version = "1.0.24";
|
||||
version = "1.0.25";
|
||||
src = fetchHex {
|
||||
pkg = "p1_mysql";
|
||||
version = "1.0.24";
|
||||
sha256 = "sha256-8FiGX2Qlf1B6LGpa/zabE3XbyzCz1CWNrU8bPq/7ZV8=";
|
||||
version = "1.0.25";
|
||||
sha256 = "sha256-5hh/+ulbcmCY6I8+5vI0SsJZziwm4O5AOwX+7zQa5DQ=";
|
||||
};
|
||||
beamDeps = [ ];
|
||||
};
|
||||
p1_acme = builder {
|
||||
name = "p1_acme";
|
||||
version = "1.0.23";
|
||||
version = "1.0.24";
|
||||
src = fetchHex {
|
||||
pkg = "p1_acme";
|
||||
version = "1.0.23";
|
||||
sha256 = "sha256-jOGW8m49IuoQt4CRIpUEZYeMEn+Adn4yUgeu1+jQ3Vk=";
|
||||
version = "1.0.24";
|
||||
sha256 = "sha256-8UUdcGWV75l6scoXFi3axY+HSsl+MVpfrb48+iYUgAI=";
|
||||
};
|
||||
beamDeps = [
|
||||
base64url
|
||||
@@ -220,21 +220,21 @@ let
|
||||
};
|
||||
fast_xml = builder {
|
||||
name = "fast_xml";
|
||||
version = "1.1.52";
|
||||
version = "1.1.53";
|
||||
src = fetchHex {
|
||||
pkg = "fast_xml";
|
||||
version = "1.1.52";
|
||||
sha256 = "sha256-eVGSOQ4G0rZQFqaZC7+lcn9KJtKRSAixw8mjLu3NG/0=";
|
||||
version = "1.1.53";
|
||||
sha256 = "sha256-UGQzbW82Pu5Ql6pdxc7Ztn8FFS8ua4Ug/VDSaMKrg5w=";
|
||||
};
|
||||
beamDeps = [ p1_utils ];
|
||||
};
|
||||
fast_tls = builder {
|
||||
name = "fast_tls";
|
||||
version = "1.1.21";
|
||||
version = "1.1.22";
|
||||
src = fetchHex {
|
||||
pkg = "fast_tls";
|
||||
version = "1.1.21";
|
||||
sha256 = "sha256-ExVCkTk3Al5IzYCqgfADWWhtVQG3ViHnICaoe1IpUFs=";
|
||||
version = "1.1.22";
|
||||
sha256 = "sha256-5ld5rvt6sVxHVSMP74B35ofSDMWjmEpZdPn2V+jiSFs=";
|
||||
};
|
||||
beamDeps = [ p1_utils ];
|
||||
};
|
||||
@@ -250,11 +250,11 @@ let
|
||||
};
|
||||
esip = builder {
|
||||
name = "esip";
|
||||
version = "1.0.54";
|
||||
version = "1.0.56";
|
||||
src = fetchHex {
|
||||
pkg = "esip";
|
||||
version = "1.0.54";
|
||||
sha256 = "sha256-gYevgZ1yWc2t2vaXJsI572BMmwsCmKXy0+aHv14iN+4=";
|
||||
version = "1.0.56";
|
||||
sha256 = "sha256-nvNmDO+TtiP3No3NXHn05wQ1hjGQnm3UZOM1N4gV2h8=";
|
||||
};
|
||||
beamDeps = [
|
||||
fast_tls
|
||||
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts "rebar3WithPlugins {globalPlugins = [beamPackages.rebar3-nix];}" erlang autoconf automake nixfmt-rfc-style
|
||||
#shellcheck shell=bash
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
|
||||
https://api.github.com/repos/processone/ejabberd/releases/latest | jq -e -r .tag_name)
|
||||
old_version=$(nix-instantiate --eval -A ejabberd.version | jq -e -r)
|
||||
|
||||
if [[ $version == "$old_version" ]]; then
|
||||
echo "New version same as old version, nothing to do." >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
update-source-version ejabberd "$version"
|
||||
|
||||
sqlite=$(nix-build . -A sqlite.dev --no-link)
|
||||
rebardeps=$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")/rebar-deps.nix
|
||||
tmpdir=$(mktemp -d)
|
||||
cp -r $(nix-build . --no-out-link -A ejabberd.src)/. "$tmpdir"
|
||||
cd "$tmpdir"
|
||||
|
||||
./autogen.sh
|
||||
./configure --enable-all --disable-elixir --with-sqlite3=$sqlite
|
||||
HOME=. rebar3 nix lock -o "$rebardeps"
|
||||
nixfmt "$rebardeps"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user