Merge master into haskell-updates

This commit is contained in:
github-actions[bot]
2024-11-05 00:16:11 +00:00
committed by GitHub
299 changed files with 10702 additions and 6995 deletions
+2
View File
@@ -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>
+1
View File
@@ -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`.
+4 -4
View File
@@ -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
+5
View File
@@ -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";
+18 -11
View File
@@ -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";
+7 -1
View File
@@ -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";
+20 -10
View File
@@ -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";
+13 -11
View File
@@ -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;
+68 -8
View File
@@ -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";
+1 -1
View File
@@ -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 {
+1 -1
View File
@@ -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 {};
+1 -1
View File
@@ -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."
+5 -5
View File
@@ -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.
+2 -2
View File
@@ -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 -1
View File
@@ -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
+2 -1
View File
@@ -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 {
+20
View File
@@ -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")
'';
}
)
+4
View File
@@ -0,0 +1,4 @@
inputs: {
basic = import ./basic.nix inputs;
with-vorbis = import ./with-vorbis.nix inputs;
}
Binary file not shown.
+40
View File
@@ -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"
'';
}
)
+1 -1
View File
@@ -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
View File
@@ -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
+2 -2
View File
@@ -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 {
+31 -20
View File
@@ -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 ];
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
@@ -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";
};
};
}
@@ -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;
};
}
@@ -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";
};
})
@@ -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
@@ -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;
};
}
+1 -6
View File
@@ -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;
};
}
+15 -13
View File
@@ -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)" ];
+4 -52
View File
@@ -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)
}
+3 -2
View File
@@ -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";
+41 -39
View File
@@ -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";
};
});
}
+4
View File
@@ -0,0 +1,4 @@
{ python3Packages }:
with python3Packages;
toPythonApplication aggregate6
+17 -5
View File
@@ -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
+59
View File
@@ -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 ]);
};
}
+2 -2
View File
@@ -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 = ''
+9 -2
View File
@@ -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";
+2 -1
View File
@@ -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;
+111 -108
View File
@@ -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",
]
+19 -11
View File
@@ -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";
};
}
+2 -2
View File
@@ -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 = ''
+3 -3
View File
@@ -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;
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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)
+3 -3
View File
@@ -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;
+3
View File
@@ -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";
+17 -1
View File
@@ -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
];
+3 -2
View File
@@ -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
+13 -8
View File
@@ -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 ];
};
}
+2 -2
View File
@@ -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;
};
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=";
};
}
@@ -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
+4 -3
View File
@@ -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";
+24 -24
View File
@@ -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
+27
View File
@@ -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