Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2024-12-05 18:04:54 +00:00
committed by GitHub
181 changed files with 5343 additions and 12108 deletions
+21
View File
@@ -222,6 +222,7 @@ jobs:
if: needs.process.outputs.baseRunId
permissions:
pull-requests: write
statuses: write
steps:
- name: Download process result
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
@@ -261,3 +262,23 @@ jobs:
GH_TOKEN: ${{ github.token }}
REPOSITORY: ${{ github.repository }}
NUMBER: ${{ github.event.number }}
- name: Add eval summary to commit statuses
if: ${{ github.event_name == 'pull_request_target' }}
run: |
description=$(jq -r '
"Package: added " + (.attrdiff.added | length | tostring) +
", removed " + (.attrdiff.removed | length | tostring) +
", changed " + (.attrdiff.changed | length | tostring) +
", Rebuild: linux " + (.rebuildCountByKernel.linux | tostring) +
", darwin " + (.rebuildCountByKernel.darwin | tostring)
' <comparison/changed-paths.json)
target_url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID?pr=$NUMBER"
gh api --method POST \
-H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$GITHUB_REPOSITORY/statuses/$PR_HEAD_SHA" \
-f "context=Eval / Summary" -f "state=success" -f "description=$description" -f "target_url=$target_url"
env:
GH_TOKEN: ${{ github.token }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
NUMBER: ${{ github.event.number }}
+4 -1
View File
@@ -755,6 +755,9 @@ Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash`
Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
If you want to fetch a tag you should pass the `tag` parameter instead of `rev` which has the same effect as setting `rev = "refs/tags"/${version}"`.
This is safer than just setting `rev = version` w.r.t. possible branch and tag name conflicts.
Additionally, the following optional arguments can be given:
*`fetchSubmodules`* (Boolean)
@@ -833,7 +836,7 @@ A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are m
## `fetchFromGitHub` {#fetchfromgithub}
`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred.
`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. If you need to fetch a tag however, you should prefer to use the `tag` parameter which achieves this in a safer way with less boilerplate. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred.
To use a different GitHub instance, use `githubBase` (defaults to `"github.com"`).
+23 -17
View File
@@ -27,42 +27,48 @@ mkShell {
name = "dotnet-env";
packages = [
(with dotnetCorePackages; combinePackages [
sdk_6_0
sdk_7_0
sdk_8_0
sdk_9_0
])
];
}
```
This will produce a dotnet installation that has the dotnet 6.0 7.0 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output:
This will produce a dotnet installation that has the dotnet 8.0 9.0 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output:
```ShellSession
$ dotnet --info
.NET SDK:
Version: 7.0.202
Commit: 6c74320bc3
Version: 9.0.100
Commit: 59db016f11
Workload version: 9.0.100-manifests.3068a692
MSBuild version: 17.12.7+5b8665660
Runtime Environment:
OS Name: nixos
OS Version: 23.05
OS Version: 25.05
OS Platform: Linux
RID: linux-x64
Base Path: /nix/store/n2pm44xq20hz7ybsasgmd7p3yh31gnh4-dotnet-sdk-7.0.202/sdk/7.0.202/
Base Path: /nix/store/a03c70i7x6rjdr6vikczsp5ck3v6rixh-dotnet-sdk-9.0.100/share/dotnet/sdk/9.0.100/
.NET workloads installed:
There are no installed workloads to display.
Configured to use loose manifests when installing new manifests.
Host:
Version: 7.0.4
Version: 9.0.0
Architecture: x64
Commit: 0a396acafe
Commit: 9d5a6a9aa4
.NET SDKs installed:
6.0.407 [/nix/store/3b19303vwrhv0xxz1hg355c7f2hgxxgd-dotnet-core-combined/sdk]
7.0.202 [/nix/store/3b19303vwrhv0xxz1hg355c7f2hgxxgd-dotnet-core-combined/sdk]
8.0.404 [/nix/store/6wlrjiy10wg766490dcmp6x64zb1vc8j-dotnet-core-combined/share/dotnet/sdk]
9.0.100 [/nix/store/6wlrjiy10wg766490dcmp6x64zb1vc8j-dotnet-core-combined/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.15 [/nix/store/3b19303vwrhv0xxz1hg355c7f2hgxxgd-dotnet-core-combined/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.4 [/nix/store/3b19303vwrhv0xxz1hg355c7f2hgxxgd-dotnet-core-combined/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.15 [/nix/store/3b19303vwrhv0xxz1hg355c7f2hgxxgd-dotnet-core-combined/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.4 [/nix/store/3b19303vwrhv0xxz1hg355c7f2hgxxgd-dotnet-core-combined/shared/Microsoft.NETCore.App]
Microsoft.AspNetCore.App 8.0.11 [/nix/store/6wlrjiy10wg766490dcmp6x64zb1vc8j-dotnet-core-combined/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.0 [/nix/store/6wlrjiy10wg766490dcmp6x64zb1vc8j-dotnet-core-combined/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.11 [/nix/store/6wlrjiy10wg766490dcmp6x64zb1vc8j-dotnet-core-combined/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.0 [/nix/store/6wlrjiy10wg766490dcmp6x64zb1vc8j-dotnet-core-combined/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
@@ -146,8 +152,8 @@ in buildDotnetModule rec {
buildInputs = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure.
dotnet-sdk = dotnetCorePackages.sdk_6_0;
dotnet-runtime = dotnetCorePackages.runtime_6_0;
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
executables = [ "foo" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`.
executables = []; # Don't install any executables.
+38
View File
@@ -2497,6 +2497,13 @@
githubId = 6987136;
keys = [ { fingerprint = "2C6D 37D4 6AA1 DCDA BE8D F346 43E2 CF4C 01B9 4940"; } ];
};
BastianAsmussen = {
name = "Bastian Asmussen";
email = "bastian@asmussen.tech";
github = "BastianAsmussen";
githubId = 76102128;
keys = [ { fingerprint = "3B11 7469 0893 85E7 16C2 7CD9 0FE5 A355 DBC9 2568"; } ];
};
basvandijk = {
email = "v.dijk.bas@gmail.com";
github = "basvandijk";
@@ -5584,6 +5591,12 @@
githubId = 15774340;
name = "Thomas Depierre";
};
DictXiong = {
email = "me@beardic.cn";
github = "DictXiong";
githubId = 41772157;
name = "Dict Xiong";
};
diegolelis = {
email = "diego.o.lelis@gmail.com";
github = "DiegoLelis";
@@ -10524,6 +10537,12 @@
githubId = 1058504;
name = "José Luis Lafuente";
};
jljox = {
email = "jeanluc.jox@gmail.com";
github = "jljox";
githubId = 3665886;
name = "Jean-Luc Jox";
};
jloyet = {
email = "ml@fatbsd.com";
github = "fatpat";
@@ -12863,6 +12882,13 @@
githubId = 1202012;
name = "Ignat Loskutov";
};
lostmsu = {
email = "lostfreeman@gmail.com";
github = "lostmsu";
githubId = 239520;
matrix = "@lostmsu:matrix.org";
name = "Victor Nova";
};
lostnet = {
email = "lost.networking@gmail.com";
github = "lostnet";
@@ -20253,6 +20279,12 @@
githubId = 293035;
name = "Shawn Dellysse";
};
ShawnToubeau = {
name = "Shawn Toubeau";
email = "shawntoubeau@gmail.com";
github = "ShawnToubeau";
githubId = 22332636;
};
shayne = {
email = "shaynesweeney@gmail.com";
github = "shayne";
@@ -22616,6 +22648,12 @@
githubId = 2125828;
name = "Alex Davies";
};
travgm = {
email = "travis@travgm.org";
github = "travgm";
githubId = 99630881;
name = "Travis Montoya";
};
travisbhartwell = {
email = "nafai@travishartwell.net";
github = "travisbhartwell";
@@ -27,6 +27,8 @@
- [Omnom](https://github.com/asciimoo/omnom), a webpage bookmarking and snapshotting service. Available as [services.omnom](options.html#opt-services.omnom.enable).
- [Traccar](https://www.traccar.org/), a modern GPS Tracking Platform. Available as [services.traccar](#opt-services.traccar.enable).
- [Amazon CloudWatch Agent](https://github.com/aws/amazon-cloudwatch-agent), the official telemetry collector for AWS CloudWatch and AWS X-Ray. Available as [services.amazon-cloudwatch-agent](#opt-services.amazon-cloudwatch-agent.enable).
- [agorakit](https://github.com/agorakit/agorakit), an organization tool for citizens' collectives. Available with [services.agorakit](#opt-services.agorakit.enable).
@@ -53,8 +55,12 @@
- `zammad` has had its support for MySQL removed, since it was never working correctly and is now deprecated upstream. Check the [migration guide](https://docs.zammad.org/en/latest/appendix/migrate-to-postgresql.html) for how to convert your database to PostgreSQL.
- `nodePackages.insect` has been removed, as it's deprecated by upstream. The suggested replacement is `numbat`.
- The behavior of the `networking.nat.externalIP` and `networking.nat.externalIPv6` options has been changed. `networking.nat.forwardPorts` now only forwards packets destined for the specified IP addresses.
- `nodePackages.meshcommander` has been removed, as the package was deprecated by Intel.
- `kanata` was updated to v1.7.0, which introduces several breaking changes.
See the release notes of
[v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0)
@@ -77,6 +83,8 @@
2.0](https://github.com/containerd/containerd/blob/main/docs/containerd-2.0.md) documentation for more
details.
- `nodePackages.stackdriver-statsd-backend` has been removed, as the StackDriver service has been discontinued by Google, and therefore the package no longer works.
- the notmuch vim plugin now lives in a separate output of the `notmuch`
package. Installing `notmuch` will not bring the notmuch vim package anymore,
add `vimPlugins.notmuch-vim` to your (Neo)vim configuration if you want the
+1
View File
@@ -947,6 +947,7 @@
./services/monitoring/telegraf.nix
./services/monitoring/thanos.nix
./services/monitoring/todesk.nix
./services/monitoring/traccar.nix
./services/monitoring/tremor-rs.nix
./services/monitoring/tuptime.nix
./services/monitoring/unpoller.nix
+1 -1
View File
@@ -313,5 +313,5 @@ in
'';
};
meta.maintainers = with lib.maintainers; [ sigmasquadron ];
}
@@ -139,7 +139,7 @@ in
serviceConfig = {
ExecStart = lib.escapeShellArgs (
startCLIList
++ lib.optionals (cfg.prometheusConfig != null) [ "-promscrape.config=${prometheusConfigYml}" ]
++ lib.optionals (cfg.prometheusConfig != {}) [ "-promscrape.config=${prometheusConfigYml}" ]
);
DynamicUser = true;
+2 -2
View File
@@ -69,9 +69,9 @@ in
serviceConfig = with pkgs; {
DynamicUser = true;
StateDirectory = baseNameOf libDir;
ExecStartPre = "${getBin pykms}/libexec/create_pykms_db.sh ${libDir}/clients.db";
ExecStartPre = "${lib.getBin pykms}/libexec/create_pykms_db.sh ${libDir}/clients.db";
ExecStart = lib.concatStringsSep " " ([
"${getBin pykms}/bin/server"
"${lib.getBin pykms}/bin/server"
"--logfile=STDOUT"
"--loglevel=${cfg.logLevel}"
"--sqlite=${libDir}/clients.db"
@@ -87,7 +87,6 @@ in
"console"
"repeater"
"statsd-librato-backend"
"stackdriver-statsd-backend"
"statsd-influxdb-backend"
];
type = lib.types.listOf lib.types.str;
@@ -0,0 +1,125 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.traccar;
stateDirectory = "/var/lib/traccar";
configFilePath = "${stateDirectory}/config.xml";
expandCamelCase = lib.replaceStrings lib.upperChars (map (s: ".${s}") lib.lowerChars);
mkConfigEntry = key: value: "<entry key='${expandCamelCase key}'>${value}</entry>";
mkConfig =
configurationOptions:
pkgs.writeText "traccar.xml" ''
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
${builtins.concatStringsSep "\n" (lib.mapAttrsToList mkConfigEntry configurationOptions)}
</properties>
'';
defaultConfig = {
databaseDriver = "org.h2.Driver";
databasePassword = "";
databaseUrl = "jdbc:h2:${stateDirectory}/traccar";
databaseUser = "sa";
loggerConsole = "true";
mediaPath = "${stateDirectory}/media";
templatesRoot = "${stateDirectory}/templates";
};
in
{
options.services.traccar = {
enable = lib.mkEnableOption "Traccar, an open source GPS tracking system";
settings = lib.mkOption {
apply = lib.recursiveUpdate defaultConfig;
default = defaultConfig;
description = ''
{file}`config.xml` configuration as a Nix attribute set.
Attribute names are translated from camelCase to dot-separated strings. For instance:
{option}`mailSmtpPort = "25"`
would result in the following configuration property:
`<entry key='mail.smtp.port'>25</entry>`
Configuration options should match those described in
[Traccar - Configuration File](https://www.traccar.org/configuration-file/).
Secret tokens should be specified using {option}`environmentFile`
instead of this world-readable attribute set.
'';
};
environmentFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = ''
File containing environment variables to substitute in the configuration before starting Traccar.
Can be used for storing the secrets without making them available in the world-readable Nix store.
For example, you can set {option}`services.traccar.settings.databasePassword = "$TRACCAR_DB_PASSWORD"`
and then specify `TRACCAR_DB_PASSWORD="<secret>"` in the environment file.
This value will get substituted in the configuration file.
'';
};
};
config =
let
configuration = mkConfig cfg.settings;
in
lib.mkIf cfg.enable {
systemd.services.traccar = {
enable = true;
description = "Traccar";
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ];
preStart = ''
# Copy new templates into our state directory.
cp -a --update=none ${pkgs.traccar}/templates ${stateDirectory}
test -f '${configFilePath}' && rm -f '${configFilePath}'
# Substitute the configFile from Envvars read from EnvironmentFile
old_umask=$(umask)
umask 0177
${lib.getExe pkgs.envsubst} \
-i ${configuration} \
-o ${configFilePath}
umask $old_umask
'';
serviceConfig = {
DynamicUser = true;
EnvironmentFile = cfg.environmentFile;
ExecStart = "${lib.getExe pkgs.traccar} ${configFilePath}";
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
Restart = "on-failure";
RestartSec = 10;
RestrictRealtime = true;
RestrictSUIDSGID = true;
StateDirectory = "traccar";
SuccessExitStatus = 143;
Type = "simple";
# Set the working directory to traccar's package.
# Traccar only searches for the DB migrations relative to it's WorkingDirectory and nothing worked to
# work around this. To avoid copying the migrations over to the state directory, we use the package as
# WorkingDirectory.
WorkingDirectory = "${pkgs.traccar}";
};
};
};
}
@@ -115,7 +115,7 @@ in {
CacheDirectory = "vmagent";
ExecStart = lib.escapeShellArgs (
startCLIList
++ lib.optionals (cfg.prometheusConfig != null) ["-promscrape.config=${prometheusConfigYml}"]
++ lib.optionals (cfg.prometheusConfig != {}) ["-promscrape.config=${prometheusConfigYml}"]
);
LoadCredential = lib.optional (cfg.remoteWrite.basicAuthPasswordFile != null) [
"remote_write_basic_auth_password:${cfg.remoteWrite.basicAuthPasswordFile}"
+58 -14
View File
@@ -1,12 +1,57 @@
{ config, lib, pkgs, ... }:
with lib;
let
inherit (lib)
any
attrsets
attrByPath
catAttrs
collect
concatMapStrings
concatStringsSep
escape
escapeShellArg
escapeShellArgs
hasInfix
isAttrs
isList
isStorePath
isString
mapAttrs
mapAttrsToList
optionalString
optionals
replaceStrings
splitString
substring
versionOlder
fileContents
readFile
literalExpression
literalMD
mkBefore
mkEnableOption
mkIf
mkMerge
mkOption
mkOptionType
mkPackageOption
types;
cfg = config.services.akkoma;
ex = cfg.config;
db = ex.":pleroma"."Pleroma.Repo";
web = ex.":pleroma"."Pleroma.Web.Endpoint";
format = pkgs.formats.elixirConf { elixir = cfg.package.elixirPackage; };
inherit (format.lib)
mkAtom
mkMap
mkRaw
mkTuple;
isConfined = config.systemd.services.akkoma.confinement.enable;
hasSmtp = (attrByPath [ ":pleroma" "Pleroma.Emails.Mailer" "adapter" "value" ] null ex) == "Swoosh.Adapters.SMTP";
@@ -96,16 +141,15 @@ let
passAsFile = [ "code" ];
} ''elixir "$codePath" >"$out"'');
format = pkgs.formats.elixirConf { elixir = cfg.package.elixirPackage; };
configFile = format.generate "config.exs"
(replaceSec
(attrsets.updateManyAttrsByPath [{
path = [ ":pleroma" "Pleroma.Web.Endpoint" "http" "ip" ];
update = addr:
if isAbsolutePath addr
then format.lib.mkTuple
[ (format.lib.mkAtom ":local") addr ]
else format.lib.mkRaw (erlAddr addr);
then mkTuple
[ (mkAtom ":local") addr ]
else mkRaw (erlAddr addr);
}] cfg.config));
writeShell = { name, text, runtimeInputs ? [ ] }:
@@ -282,7 +326,7 @@ let
AKKOMA_CONFIG_PATH="''${RUNTIME_DIRECTORY%%:*}/config.exs" \
ERL_EPMD_ADDRESS="${cfg.dist.address}" \
ERL_EPMD_PORT="${toString cfg.dist.epmdPort}" \
ERL_FLAGS=${lib.escapeShellArg (lib.escapeShellArgs ([
ERL_FLAGS=${escapeShellArg (escapeShellArgs ([
"-kernel" "inet_dist_use_interface" (erlAddr cfg.dist.address)
"-kernel" "inet_dist_listen_min" (toString cfg.dist.portMin)
"-kernel" "inet_dist_listen_max" (toString cfg.dist.portMax)
@@ -639,7 +683,7 @@ in {
"Pleroma.Repo" = mkOption {
type = elixirValue;
default = {
adapter = format.lib.mkRaw "Ecto.Adapters.Postgres";
adapter = mkRaw "Ecto.Adapters.Postgres";
socket_dir = "/run/postgresql";
username = cfg.user;
database = "akkoma";
@@ -769,7 +813,7 @@ in {
in {
base_url = mkOption {
type = types.nonEmptyStr;
default = if lib.versionOlder config.system.stateVersion "24.05"
default = if versionOlder config.system.stateVersion "24.05"
then "${httpConf.scheme}://${httpConf.host}:${builtins.toString httpConf.port}/media/"
else null;
defaultText = literalExpression ''
@@ -787,7 +831,7 @@ in {
":frontends" = mkOption {
type = elixirValue;
default = mapAttrs
(key: val: format.lib.mkMap { name = val.name; ref = val.ref; })
(key: val: mkMap { name = val.name; ref = val.ref; })
cfg.frontends;
defaultText = literalExpression ''
lib.mapAttrs (key: val:
@@ -816,7 +860,7 @@ in {
};
base_url = mkOption {
type = types.nullOr types.nonEmptyStr;
default = if lib.versionOlder config.system.stateVersion "24.05"
default = if versionOlder config.system.stateVersion "24.05"
then "${httpConf.scheme}://${httpConf.host}:${builtins.toString httpConf.port}"
else null;
defaultText = literalExpression ''
@@ -899,7 +943,7 @@ in {
":backends" = mkOption {
type = types.listOf elixirValue;
visible = false;
default = with format.lib; [
default = [
(mkTuple [ (mkRaw "ExSyslogger") (mkAtom ":ex_syslogger") ])
];
};
@@ -913,7 +957,7 @@ in {
level = mkOption {
type = types.nonEmptyStr;
apply = format.lib.mkAtom;
apply = mkAtom;
default = ":info";
example = ":warning";
description = ''
@@ -931,7 +975,7 @@ in {
":data_dir" = mkOption {
type = elixirValue;
internal = true;
default = format.lib.mkRaw ''
default = mkRaw ''
Path.join(System.fetch_env!("CACHE_DIRECTORY"), "tzdata")
'';
};
@@ -1136,6 +1180,6 @@ in {
};
};
meta.maintainers = with maintainers; [ mvs ];
meta.maintainers = with lib.maintainers; [ mvs ];
meta.doc = ./akkoma.md;
}
+4 -2
View File
@@ -15,6 +15,8 @@ in
description = ''Whether to enable the unl0kr on-screen keyboard in initrd to unlock LUKS.'';
};
package = lib.mkPackageOption pkgs "unl0kr" { };
allowVendorDrivers = lib.mkEnableOption "load optional drivers" // {
description = ''Whether to load additional drivers for certain vendors (I.E: Wacom, Intel, etc.)'';
};
@@ -85,7 +87,7 @@ in
libinput
xkeyboard_config
"${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password"
"${pkgs.unl0kr}/bin/unl0kr"
(lib.getExe' cfg.package "unl0kr")
];
services = {
unl0kr-ask-password = {
@@ -112,7 +114,7 @@ in
do
for file in `ls $DIR/ask.*`; do
socket="$(cat "$file" | ${pkgs.gnugrep}/bin/grep "Socket=" | cut -d= -f2)"
${pkgs.unl0kr}/bin/unl0kr -v -C "/etc/unl0kr.conf" | ${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password 1 "$socket"
${lib.getExe' cfg.package "unl0kr"} -v -C "/etc/unl0kr.conf" | ${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password 1 "$socket"
done
done
'';
+280 -154
View File
@@ -1,4 +1,10 @@
{ config, options, lib, pkgs, ... }:
{
config,
options,
lib,
pkgs,
...
}:
with lib;
let
@@ -8,7 +14,8 @@ let
defaultBackend = options.virtualisation.oci-containers.backend.default;
containerOptions =
{ ... }: {
{ ... }:
{
options = {
@@ -77,8 +84,8 @@ let
};
cmd = mkOption {
type = with types; listOf str;
default = [];
type = with types; listOf str;
default = [ ];
description = "Commandline arguments to pass to the image's entrypoint.";
example = literalExpression ''
["--port=9000"]
@@ -87,7 +94,7 @@ let
labels = mkOption {
type = with types; attrsOf str;
default = {};
default = { };
description = "Labels to attach to the container at runtime.";
example = literalExpression ''
{
@@ -105,26 +112,26 @@ let
environment = mkOption {
type = with types; attrsOf str;
default = {};
default = { };
description = "Environment variables to set for this container.";
example = literalExpression ''
{
DATABASE_HOST = "db.example.com";
DATABASE_PORT = "3306";
}
'';
'';
};
environmentFiles = mkOption {
type = with types; listOf path;
default = [];
default = [ ];
description = "Environment files for this container.";
example = literalExpression ''
[
/path/to/.env
/path/to/.env.secret
]
'';
'';
};
log-driver = mkOption {
@@ -147,7 +154,7 @@ let
ports = mkOption {
type = with types; listOf str;
default = [];
default = [ ];
description = ''
Network ports to publish from the container to the outer host.
@@ -194,7 +201,7 @@ let
volumes = mkOption {
type = with types; listOf str;
default = [];
default = [ ];
description = ''
List of volumes to attach to this container.
@@ -222,7 +229,7 @@ let
dependsOn = mkOption {
type = with types; listOf str;
default = [];
default = [ ];
description = ''
Define which other containers this one depends on. They will be added to both After and Requires for the unit.
@@ -247,14 +254,17 @@ let
preRunExtraOptions = mkOption {
type = with types; listOf str;
default = [];
default = [ ];
description = "Extra options for {command}`${defaultBackend}` that go before the `run` argument.";
example = [ "--runtime" "runsc" ];
example = [
"--runtime"
"runsc"
];
};
extraOptions = mkOption {
type = with types; listOf str;
default = [];
default = [ ];
description = "Extra options for {command}`${defaultBackend} run`.";
example = literalExpression ''
["--network=host"]
@@ -262,177 +272,293 @@ let
};
autoStart = mkOption {
type = types.bool;
type = with types; bool;
default = true;
description = ''
When enabled, the container is automatically started on boot.
If this option is set to false, the container has to be started on-demand via its service.
'';
};
pull = mkOption {
type =
with types;
enum [
"always"
"missing"
"never"
"newer"
];
default = "missing";
description = ''
Image pull policy for the container. Must be one of: always, missing, never, newer
'';
};
capAdd = mkOption {
type = with types; lazyAttrsOf (nullOr bool);
default = { };
description = ''
Capabilities to add to container
'';
example = literalExpression ''
{
SYS_ADMIN = true;
{
'';
};
capDrop = mkOption {
type = with types; lazyAttrsOf (nullOr bool);
default = { };
description = ''
Capabilities to drop from container
'';
example = literalExpression ''
{
SYS_ADMIN = true;
{
'';
};
devices = mkOption {
type = with types; listOf str;
default = [ ];
description = ''
List of devices to attach to this container.
'';
example = literalExpression ''
[
"/dev/dri:/dev/dri"
]
'';
};
privileged = mkOption {
type = with types; bool;
default = false;
description = ''
Give extended privileges to the container
'';
};
networks = mkOption {
type = with types; listOf str;
default = [ ];
description = ''
Networks to attach the container to
'';
};
};
};
isValidLogin = login: login.username != null && login.passwordFile != null && login.registry != null;
isValidLogin =
login: login.username != null && login.passwordFile != null && login.registry != null;
mkService = name: container: let
dependsOn = map (x: "${cfg.backend}-${x}.service") container.dependsOn;
escapedName = escapeShellArg name;
preStartScript = pkgs.writeShellApplication {
name = "pre-start";
runtimeInputs = [ ];
text = ''
${cfg.backend} rm -f ${name} || true
${optionalString (isValidLogin container.login) ''
# try logging in, if it fails, check if image exists locally
${cfg.backend} login \
${container.login.registry} \
--username ${container.login.username} \
--password-stdin < ${container.login.passwordFile} \
|| ${cfg.backend} image inspect ${container.image} >/dev/null \
|| { echo "image doesn't exist locally and login failed" >&2 ; exit 1; }
''}
${optionalString (container.imageFile != null) ''
${cfg.backend} load -i ${container.imageFile}
''}
${optionalString (container.imageStream != null) ''
${container.imageStream} | ${cfg.backend} load
''}
${optionalString (cfg.backend == "podman") ''
rm -f /run/podman-${escapedName}.ctr-id
''}
'';
mkService =
name: container:
let
dependsOn = map (x: "${cfg.backend}-${x}.service") container.dependsOn;
escapedName = escapeShellArg name;
preStartScript = pkgs.writeShellApplication {
name = "pre-start";
runtimeInputs = [ ];
text = ''
${cfg.backend} rm -f ${name} || true
${optionalString (isValidLogin container.login) ''
# try logging in, if it fails, check if image exists locally
${cfg.backend} login \
${container.login.registry} \
--username ${container.login.username} \
--password-stdin < ${container.login.passwordFile} \
|| ${cfg.backend} image inspect ${container.image} >/dev/null \
|| { echo "image doesn't exist locally and login failed" >&2 ; exit 1; }
''}
${optionalString (container.imageFile != null) ''
${cfg.backend} load -i ${container.imageFile}
''}
${optionalString (container.imageStream != null) ''
${container.imageStream} | ${cfg.backend} load
''}
${optionalString (cfg.backend == "podman") ''
rm -f /run/podman-${escapedName}.ctr-id
''}
'';
};
in
{
wantedBy = [ ] ++ optional (container.autoStart) "multi-user.target";
wants = lib.optional (
container.imageFile == null && container.imageStream == null
) "network-online.target";
after =
lib.optionals (cfg.backend == "docker") [
"docker.service"
"docker.socket"
]
# if imageFile or imageStream is not set, the service needs the network to download the image from the registry
++ lib.optionals (container.imageFile == null && container.imageStream == null) [
"network-online.target"
]
++ dependsOn;
requires = dependsOn;
environment = proxy_env;
path =
if cfg.backend == "docker" then
[ config.virtualisation.docker.package ]
else if cfg.backend == "podman" then
[ config.virtualisation.podman.package ]
else
throw "Unhandled backend: ${cfg.backend}";
script = concatStringsSep " \\\n " (
[
"exec ${cfg.backend} "
]
++ map escapeShellArg container.preRunExtraOptions
++ [
"run"
"--rm"
"--name=${escapedName}"
"--log-driver=${container.log-driver}"
]
++ optional (container.entrypoint != null) "--entrypoint=${escapeShellArg container.entrypoint}"
++ optional (container.hostname != null) "--hostname=${escapeShellArg container.hostname}"
++ lib.optionals (cfg.backend == "podman") [
"--cidfile=/run/podman-${escapedName}.ctr-id"
"--cgroups=no-conmon"
"--sdnotify=conmon"
"-d"
"--replace"
]
++ (mapAttrsToList (k: v: "-e ${escapeShellArg k}=${escapeShellArg v}") container.environment)
++ map (f: "--env-file ${escapeShellArg f}") container.environmentFiles
++ map (p: "-p ${escapeShellArg p}") container.ports
++ optional (container.user != null) "-u ${escapeShellArg container.user}"
++ map (v: "-v ${escapeShellArg v}") container.volumes
++ (mapAttrsToList (k: v: "-l ${escapeShellArg k}=${escapeShellArg v}") container.labels)
++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
++ optional (container.privileged) "--privileged"
++ mapAttrsToList (k: _: "--cap-add=${escapeShellArg k}") (
filterAttrs (_: v: v == true) container.capAdd
)
++ mapAttrsToList (k: _: "--cap-drop=${escapeShellArg k}") (
filterAttrs (_: v: v == true) container.capDrop
)
++ map (d: "--device=${escapeShellArg d}") container.devices
++ map (n: "--network=${escapeShellArg n}") container.networks
++ [ "--pull ${escapeShellArg container.pull}" ]
++ map escapeShellArg container.extraOptions
++ [ container.image ]
++ map escapeShellArg container.cmd
);
preStop =
if cfg.backend == "podman" then
"podman stop --ignore --cidfile=/run/podman-${escapedName}.ctr-id"
else
"${cfg.backend} stop ${name} || true";
postStop =
if cfg.backend == "podman" then
"podman rm -f --ignore --cidfile=/run/podman-${escapedName}.ctr-id"
else
"${cfg.backend} rm -f ${name} || true";
serviceConfig =
{
### There is no generalized way of supporting `reload` for docker
### containers. Some containers may respond well to SIGHUP sent to their
### init process, but it is not guaranteed; some apps have other reload
### mechanisms, some don't have a reload signal at all, and some docker
### images just have broken signal handling. The best compromise in this
### case is probably to leave ExecReload undefined, so `systemctl reload`
### will at least result in an error instead of potentially undefined
### behaviour.
###
### Advanced users can still override this part of the unit to implement
### a custom reload handler, since the result of all this is a normal
### systemd service from the perspective of the NixOS module system.
###
# ExecReload = ...;
###
ExecStartPre = [ "${preStartScript}/bin/pre-start" ];
TimeoutStartSec = 0;
TimeoutStopSec = 120;
Restart = "always";
}
// optionalAttrs (cfg.backend == "podman") {
Environment = "PODMAN_SYSTEMD_UNIT=podman-${name}.service";
Type = "notify";
NotifyAccess = "all";
};
};
in {
wantedBy = [] ++ optional (container.autoStart) "multi-user.target";
wants = lib.optional (container.imageFile == null && container.imageStream == null) "network-online.target";
after = lib.optionals (cfg.backend == "docker") [ "docker.service" "docker.socket" ]
# if imageFile or imageStream is not set, the service needs the network to download the image from the registry
++ lib.optionals (container.imageFile == null && container.imageStream == null) [ "network-online.target" ]
++ dependsOn;
requires = dependsOn;
environment = proxy_env;
path =
if cfg.backend == "docker" then [ config.virtualisation.docker.package ]
else if cfg.backend == "podman" then [ config.virtualisation.podman.package ]
else throw "Unhandled backend: ${cfg.backend}";
script = concatStringsSep " \\\n " ([
"exec ${cfg.backend} "
] ++ map escapeShellArg container.preRunExtraOptions ++ [
"run"
"--rm"
"--name=${escapedName}"
"--log-driver=${container.log-driver}"
] ++ optional (container.entrypoint != null)
"--entrypoint=${escapeShellArg container.entrypoint}"
++ optional (container.hostname != null)
"--hostname=${escapeShellArg container.hostname}"
++ lib.optionals (cfg.backend == "podman") [
"--cidfile=/run/podman-${escapedName}.ctr-id"
"--cgroups=no-conmon"
"--sdnotify=conmon"
"-d"
"--replace"
] ++ (mapAttrsToList (k: v: "-e ${escapeShellArg k}=${escapeShellArg v}") container.environment)
++ map (f: "--env-file ${escapeShellArg f}") container.environmentFiles
++ map (p: "-p ${escapeShellArg p}") container.ports
++ optional (container.user != null) "-u ${escapeShellArg container.user}"
++ map (v: "-v ${escapeShellArg v}") container.volumes
++ (mapAttrsToList (k: v: "-l ${escapeShellArg k}=${escapeShellArg v}") container.labels)
++ optional (container.workdir != null) "-w ${escapeShellArg container.workdir}"
++ map escapeShellArg container.extraOptions
++ [container.image]
++ map escapeShellArg container.cmd
);
preStop = if cfg.backend == "podman"
then "podman stop --ignore --cidfile=/run/podman-${escapedName}.ctr-id"
else "${cfg.backend} stop ${name} || true";
postStop = if cfg.backend == "podman"
then "podman rm -f --ignore --cidfile=/run/podman-${escapedName}.ctr-id"
else "${cfg.backend} rm -f ${name} || true";
serviceConfig = {
### There is no generalized way of supporting `reload` for docker
### containers. Some containers may respond well to SIGHUP sent to their
### init process, but it is not guaranteed; some apps have other reload
### mechanisms, some don't have a reload signal at all, and some docker
### images just have broken signal handling. The best compromise in this
### case is probably to leave ExecReload undefined, so `systemctl reload`
### will at least result in an error instead of potentially undefined
### behaviour.
###
### Advanced users can still override this part of the unit to implement
### a custom reload handler, since the result of all this is a normal
### systemd service from the perspective of the NixOS module system.
###
# ExecReload = ...;
###
ExecStartPre = [ "${preStartScript}/bin/pre-start" ];
TimeoutStartSec = 0;
TimeoutStopSec = 120;
Restart = "always";
} // optionalAttrs (cfg.backend == "podman") {
Environment="PODMAN_SYSTEMD_UNIT=podman-${name}.service";
Type="notify";
NotifyAccess="all";
};
};
in {
in
{
imports = [
(
lib.mkChangedOptionModule
[ "docker-containers" ]
[ "virtualisation" "oci-containers" ]
(oldcfg: {
backend = "docker";
containers = lib.mapAttrs (n: v: builtins.removeAttrs (v // {
extraOptions = v.extraDockerOptions or [];
}) [ "extraDockerOptions" ]) oldcfg.docker-containers;
})
)
(lib.mkChangedOptionModule [ "docker-containers" ] [ "virtualisation" "oci-containers" ] (oldcfg: {
backend = "docker";
containers = lib.mapAttrs (
n: v:
builtins.removeAttrs (
v
// {
extraOptions = v.extraDockerOptions or [ ];
}
) [ "extraDockerOptions" ]
) oldcfg.docker-containers;
}))
];
options.virtualisation.oci-containers = {
backend = mkOption {
type = types.enum [ "podman" "docker" ];
type = types.enum [
"podman"
"docker"
];
default = if versionAtLeast config.system.stateVersion "22.05" then "podman" else "docker";
description = "The underlying Docker implementation to use.";
};
containers = mkOption {
default = {};
default = { };
type = types.attrsOf (types.submodule containerOptions);
description = "OCI (Docker) containers to run as systemd services.";
};
};
config = lib.mkIf (cfg.containers != {}) (lib.mkMerge [
{
systemd.services = mapAttrs' (n: v: nameValuePair "${cfg.backend}-${n}" (mkService n v)) cfg.containers;
config = lib.mkIf (cfg.containers != { }) (
lib.mkMerge [
{
systemd.services = mapAttrs' (
n: v: nameValuePair "${cfg.backend}-${n}" (mkService n v)
) cfg.containers;
assertions =
let
toAssertion = _: { imageFile, imageStream, ... }:
{ assertion = imageFile == null || imageStream == null;
assertions =
let
toAssertion =
_:
{ imageFile, imageStream, ... }:
{
assertion = imageFile == null || imageStream == null;
message = "You can only define one of imageFile and imageStream";
};
message = "You can only define one of imageFile and imageStream";
};
in
in
lib.mapAttrsToList toAssertion cfg.containers;
}
(lib.mkIf (cfg.backend == "podman") {
virtualisation.podman.enable = true;
})
(lib.mkIf (cfg.backend == "docker") {
virtualisation.docker.enable = true;
})
]);
}
(lib.mkIf (cfg.backend == "podman") {
virtualisation.podman.enable = true;
})
(lib.mkIf (cfg.backend == "docker") {
virtualisation.docker.enable = true;
})
]
);
}
@@ -120,12 +120,13 @@ let
};
};
testScript = ''
start_all()
client.wait_for_unit("network.target")
router.start()
router.systemctl("start network-online.target")
router.wait_for_unit("network-online.target")
client.start()
client.wait_for_unit("network.target")
with subtest("Wait until we have an ip address on each interface"):
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q '192.168.1'")
client.wait_until_succeeds("ip addr show dev enp1s0 | grep -q 'fd00:1234:5678:1:'")
+17
View File
@@ -22,6 +22,16 @@ let
image = "nginx-container";
imageStream = pkgs.dockerTools.examples.nginxStream;
ports = ["8181:80"];
capAdd = {
CAP_AUDIT_READ = true;
};
capDrop = {
CAP_AUDIT_WRITE = true;
};
privileged = false;
devices = [
"/dev/random:/dev/random"
];
};
};
@@ -32,11 +42,18 @@ let
};
testScript = ''
import json
start_all()
${backend}.wait_for_unit("${backend}-nginx.service")
${backend}.wait_for_open_port(8181)
${backend}.wait_until_succeeds("curl -f http://localhost:8181 | grep Hello")
output = json.loads(${backend}.succeed("${backend} inspect nginx --format json").strip())[0]
${backend}.succeed("systemctl stop ${backend}-nginx.service", timeout=10)
assert output['HostConfig']['CapAdd'] == ["CAP_AUDIT_READ"]
assert output['HostConfig']['CapDrop'] == ${if backend == "docker" then "[\"CAP_AUDIT_WRITE\"]" else "[]"} # Rootless podman runs with no capabilities so it cannot drop them
assert output['HostConfig']['Privileged'] == False
assert output['HostConfig']['Devices'] == [{'PathOnHost': '/dev/random', 'PathInContainer': '/dev/random', 'CgroupPermissions': '${if backend == "docker" then "rwm" else ""}'}]
'';
};
+1
View File
@@ -7,4 +7,5 @@
{
remote-write = import ./remote-write.nix { inherit system pkgs; };
vmalert = import ./vmalert.nix { inherit system pkgs; };
external-promscrape-config = import ./external-promscrape-config.nix { inherit system pkgs; };
}
@@ -0,0 +1,82 @@
import ../make-test-python.nix (
{
lib,
pkgs,
...
}:
let
nodeExporterPort = 9100;
promscrapeConfig = {
global = {
scrape_interval = "2s";
};
scrape_configs = [
{
job_name = "node";
static_configs = [
{
targets = [
"node:${toString nodeExporterPort}"
];
}
];
}
];
};
settingsFormat = pkgs.formats.yaml { };
promscrapeConfigYaml = settingsFormat.generate "prometheusConfig.yaml" promscrapeConfig;
in
{
name = "victoriametrics-external-promscrape-config";
meta = with pkgs.lib.maintainers; {
maintainers = [
ryan4yin
];
};
nodes = {
victoriametrics =
{
config,
pkgs,
...
}:
{
environment.systemPackages = [ pkgs.jq ];
networking.firewall.allowedTCPPorts = [ 8428 ];
services.victoriametrics = {
enable = true;
extraOptions = [
"-promscrape.config=${toString promscrapeConfigYaml}"
];
};
};
node =
{ ... }:
{
services.prometheus.exporters.node = {
enable = true;
openFirewall = true;
};
};
};
testScript = ''
node.wait_for_unit("prometheus-node-exporter")
node.wait_for_open_port(${toString nodeExporterPort})
victoriametrics.wait_for_unit("victoriametrics")
victoriametrics.wait_for_open_port(8428)
promscrape_config = victoriametrics.succeed("journalctl -u victoriametrics -o cat | grep 'promscrape.config'")
assert '${toString promscrapeConfigYaml}' in promscrape_config
victoriametrics.wait_until_succeeds(
"curl -sf 'http://localhost:8428/api/v1/query?query=node_exporter_build_info\{instance=\"node:9100\"\}' | "
+ "jq '.data.result[0].value[1]' | grep '\"1\"'"
)
'';
}
)
@@ -17,6 +17,6 @@ melpaBuild rec {
homepage = "https://gitweb.gentoo.org/proj/ebuild-mode.git/";
description = "Major modes for Gentoo package files";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ qyliss ];
maintainers = with lib.maintainers; [ ];
};
}
+1 -1
View File
@@ -76,7 +76,7 @@ in stdenv.mkDerivation rec {
homepage = "https://www.nano-editor.org/";
description = "Small, user-friendly console text editor";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ joachifm nequissimus ];
maintainers = with maintainers; [ joachifm nequissimus sigmasquadron ];
platforms = platforms.all;
mainProgram = "nano";
};
@@ -3006,6 +3006,22 @@ let
};
};
ltex-plus.vscode-ltex-plus = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "vscode-ltex-plus";
publisher = "ltex-plus";
version = "15.3.0";
hash = "sha256-hkHFDLeH+kJ7MJIYtXmCfi8LlCGujy/yPotwkZDrmHY=";
};
meta = {
description = "VS Code extension for grammar/spell checking using LanguageTool with support for LaTeX, Markdown, and others";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ltex-plus.vscode-ltex-plus";
homepage = "https://github.com/ltex-plus/vscode-ltex-plus";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ thtrf ];
};
};
lucperkins.vrl-vscode = buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "lucperkins";
+1 -1
View File
@@ -154,7 +154,7 @@ stdenv.mkDerivation rec {
homepage = "https://keepassxc.org/";
license = licenses.gpl2Plus;
mainProgram = "keepassxc";
maintainers = with maintainers; [ blankparticle ];
maintainers = with maintainers; [ blankparticle sigmasquadron ];
platforms = platforms.linux ++ platforms.darwin;
};
}
+28 -25
View File
@@ -1,22 +1,23 @@
{ pname
, program
, src
, year
, version
, desktopName
, longDescription
, broken ? false
, buildFHSEnv
, extraBuildInputs ? [ ]
, jdk
, stdenv
, lib
, dpkg
, makeDesktopItem
, copyDesktopItems
, autoPatchelfHook
, sane-backends
, cups
{
pname,
program,
src,
year,
version,
desktopName,
longDescription,
broken ? false,
buildFHSEnv,
extraBuildInputs ? [ ],
jdk,
stdenv,
lib,
dpkg,
makeDesktopItem,
copyDesktopItems,
autoPatchelfHook,
sane-backends,
cups,
}:
let
thisPackage = stdenv.mkDerivation rec {
@@ -24,7 +25,7 @@ let
strictDeps = true;
buildInputs = [
sane-backends #for libsane.so.1
sane-backends # for libsane.so.1
] ++ extraBuildInputs;
nativeBuildInputs = [
@@ -70,10 +71,12 @@ in
# Package with cups in FHS sandbox, because JAVA bin expects "/usr/bin/lpr" for printing.
buildFHSEnv {
inherit pname version;
targetPkgs = pkgs: [
cups
thisPackage
];
runScript = "${program}${year}";
# link desktop item and icon into FHS user environment
@@ -84,18 +87,18 @@ buildFHSEnv {
ln -s ${thisPackage}/share/pixmaps/*.png "$out/share/pixmaps/"
'';
meta = with lib; {
meta = {
inherit broken;
homepage = "https://www.qoppa.com/${pname}/";
description = "Easy to use, full-featured PDF editing software";
longDescription = longDescription;
sourceProvenance = with sourceTypes; [
sourceProvenance = with lib.sourceTypes; [
binaryBytecode
binaryNativeCode
];
license = licenses.unfree;
platforms = platforms.linux;
license = lib.licenses.unfree;
platforms = lib.platforms.linux;
mainProgram = pname;
maintainers = [ maintainers.pwoelfel ];
maintainers = with lib.maintainers; [ pwoelfel ];
};
}
+58 -30
View File
@@ -8,90 +8,118 @@
# - year identifies the year portion of the version, defaults to most recent year.
# - pname is either "pdfstudio${year}" or "pdfstudioviewer".
{ lib
, stdenv
, program ? "pdfstudio"
, year ? "2023"
, fetchurl
, callPackage
, jdk11
, jdk17
{
lib,
stdenv,
program ? "pdfstudio",
year ? "2024",
fetchurl,
callPackage,
jdk11,
jdk17,
}:
let
longDescription = ''
PDF Studio is an easy to use, full-featured PDF editing software. This is the standard/pro edition, which requires a license. For the free PDF Studio Viewer see the package pdfstudioviewer.
'';
pname = if (program == "pdfstudio") then "${program}${year}" else program;
desktopName =
if (program == "pdfstudio")
then "PDF Studio ${year}"
else "PDF Studio Viewer";
desktopName = if (program == "pdfstudio") then "PDF Studio ${year}" else "PDF Studio Viewer";
dot2dash = str: builtins.replaceStrings [ "." ] [ "_" ] str;
in
{
pdfstudioviewer = callPackage ./common.nix rec {
inherit desktopName pname program year;
version = "${year}.0.3";
inherit
desktopName
pname
program
year
;
version = "${year}.0.1";
longDescription = ''
PDF Studio Viewer is an easy to use, full-featured PDF editing software. This is the free edition. For the standard/pro edition, see the package pdfstudio.
'';
src = fetchurl {
url = "https://download.qoppa.com/pdfstudioviewer/PDFStudioViewer_linux64.deb";
sha256 = "sha256-JQx5yJLjwW4VRXLM+/VNDXFN8ZcHJxlxyKDIzc++hEs=";
url = "https://web.archive.org/web/20241201121627/https://download.qoppa.com/pdfstudioviewer/PDFStudioViewer_linux64.deb";
hash = "sha256-hxReGuyGsBiEr7wWxWzQUQvxk11sgF9HkJ07L9i+e+0=";
};
jdk = jdk17;
};
pdfstudio2021 = callPackage ./common.nix rec {
inherit desktopName longDescription pname program year;
inherit
desktopName
longDescription
pname
program
year
;
version = "${year}.2.2";
src = fetchurl {
url = "https://download.qoppa.com/pdfstudio/v${year}/PDFStudio_v${dot2dash version}_linux64.deb";
sha256 = "sha256-HdkwRMqwquAaW6l3AukGReFtw2f5n36tZ8vXo6QiPvU=";
hash = "sha256-HdkwRMqwquAaW6l3AukGReFtw2f5n36tZ8vXo6QiPvU=";
};
extraBuildInputs = [
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
];
jdk = jdk11;
};
pdfstudio2022 = callPackage ./common.nix rec {
inherit desktopName longDescription pname program year;
inherit
desktopName
longDescription
pname
program
year
;
version = "${year}.2.5";
src = fetchurl {
url = "https://download.qoppa.com/pdfstudio/v${year}/PDFStudio_v${dot2dash version}_linux64.deb";
sha256 = "sha256-3faZyWUnFe//S+gOskWhsZ6jzHw67FRsv/xP77R1jj4=";
hash = "sha256-3faZyWUnFe//S+gOskWhsZ6jzHw67FRsv/xP77R1jj4=";
};
extraBuildInputs = [
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
];
jdk = jdk17;
};
pdfstudio2023 = callPackage ./common.nix rec {
inherit desktopName longDescription pname program year;
version = "${year}.0.3";
inherit
desktopName
longDescription
pname
program
year
;
version = "${year}.0.4";
src = fetchurl {
url = "https://download.qoppa.com/pdfstudio/v${year}/PDFStudio_v${dot2dash version}_linux64.deb";
sha256 = "sha256-Po7BMmEWoC46rP7tUwZT9Ji/Wi8lKc6WN8x47fx2DXg=";
hash = "sha256-TTh0yzpCOpxFKGfrakvnu1Y+l9NI0nfWlVuvSWpkRkE=";
};
extraBuildInputs = [
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
];
jdk = jdk17;
};
pdfstudio2024 = callPackage ./common.nix rec {
inherit desktopName longDescription pname program year;
inherit
desktopName
longDescription
pname
program
year
;
version = "${year}.0.0";
src = fetchurl {
url = "https://download.qoppa.com/pdfstudio/v${year}/PDFStudio_v${dot2dash version}_linux64.deb";
sha256 = "sha256-9TMSKtBE0+T7wRnBgtUjRr/JUmCaYdyD/7y0ML37wCM=";
hash = "sha256-9TMSKtBE0+T7wRnBgtUjRr/JUmCaYdyD/7y0ML37wCM=";
};
extraBuildInputs = [
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
(lib.getLib stdenv.cc.cc) # for libstdc++.so.6 and libgomp.so.1
];
jdk = jdk17;
};
}.${pname}
}
.${pname}
@@ -1,9 +1,9 @@
{
"version" = "1.11.86";
"version" = "1.11.87";
"hashes" = {
"desktopSrcHash" = "sha256-GP5KnXL63J0076cVu0OpodlNT7Ypeso4iGrQNKq/17M=";
"desktopYarnHash" = "0bcq89nmx03h106hp875mv482d4r1xahdsimw3cs5c592zl50kx2";
"webSrcHash" = "sha256-cqB77ffTbFLoNsGjXUOb2tdlXhSIS3X1/oDXOzOn99s=";
"webYarnHash" = "1cwj77a997lb4229ngry0b6kip1ggs82b9v126rzfgzavvwh9k1v";
"desktopSrcHash" = "sha256-rIxuXMHQVJrbfWibpiIBmTkXKHrBqnTMiBYIP8VOIH4=";
"desktopYarnHash" = "05qs1an3mbqsfn1nmgwagp564lqvyrbkyj58z5h2cbczqbavnxxz";
"webSrcHash" = "sha256-FcXYwYCx//fqWuUKRqTTntlT7jVBD1Heayg4T7ACHmc=";
"webYarnHash" = "0anamnfm5g4nj7wp18byi49x38aia490qfard2d34myzjgiby8v3";
};
}
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs:{
pname = "wxmaxima";
version = "24.08.0";
version = "24.11.0";
src = fetchFromGitHub {
owner = "wxMaxima-developers";
repo = "wxmaxima";
rev = "Version-${finalAttrs.version}";
hash = "sha256-W9sZlCPi+pz37OQoICnRGQR2hoe/UciMN6NIzDgHNPQ=";
hash = "sha256-3tGMkxp7nadD+LNluIiyPf55Daf7N1MPTH62U8/GxuA=";
};
buildInputs = [
@@ -34,7 +34,7 @@ let
davinci = (
stdenv.mkDerivation rec {
pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
version = "19.0.2";
version = "19.1";
nativeBuildInputs = [
(appimage-run.override { buildFHSEnv = buildFHSEnvChroot; } )
@@ -55,8 +55,8 @@ let
outputHashAlgo = "sha256";
outputHash =
if studioVariant
then "sha256-q11stWFWRDUebAUzGH23R3Spd3EdDG85+6yB/srYCJY="
else "sha256-dYTrO0wpIN68WhBovmYLK5uWOQ1nubpSyKqPCDMPMiM=";
then "sha256-uEUZt0TQ4XrAag6NoCPUtYSnkwpwh3BNlol1z/EmP9E="
else "sha256-3VVyfXT/mZFuf2GGkNS47ErSdAGpdUUwwwKY19zBBZo=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+2 -2
View File
@@ -25,13 +25,13 @@
stdenv.mkDerivation rec {
pname = "haruna";
version = "1.1.2";
version = "1.2.1";
src = fetchFromGitLab {
owner = "multimedia";
repo = "haruna";
rev = "v${version}";
hash = "sha256-PjELW0evn53gIbScrM2bYEpb9U/TE/lOCD2DiJ1aodo=";
hash = "sha256-RxHCs5NiKORikbTyNwRD27aQfX5id4K/Lp1bQ8cAwVo=";
domain = "invent.kde.org";
};
@@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
cmakeFlags = [ "-DENABLE_QT=ON" ];
env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
dontWrapQtApps = true;
meta = with lib; {
@@ -205,7 +205,7 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
homepage = "https://github.com/tianocore/tianocore.github.io/wiki/OVMF";
license = lib.licenses.bsd2;
platforms = metaPlatforms;
maintainers = with lib.maintainers; [ adamcstephens raitobezarius mjoerg ];
maintainers = with lib.maintainers; [ adamcstephens raitobezarius mjoerg sigmasquadron ];
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
};
})
@@ -8,12 +8,12 @@ rec {
, runcRev, runcHash
, containerdRev, containerdHash
, tiniRev, tiniHash
, buildxSupport ? true, composeSupport ? true, sbomSupport ? false
, buildxSupport ? true, composeSupport ? true, sbomSupport ? false, initSupport ? false
# package dependencies
, stdenv, fetchFromGitHub, fetchpatch, buildGoModule
, makeWrapper, installShellFiles, pkg-config, glibc
, go-md2man, go, containerd, runc, tini, libtool
, sqlite, iproute2, docker-buildx, docker-compose, docker-sbom
, sqlite, iproute2, docker-buildx, docker-compose, docker-sbom, docker-init
, iptables, e2fsprogs, xz, util-linux, xfsprogs, gitMinimal
, procps, rootlesskit, slirp4netns, fuse-overlayfs, nixosTests
, clientOnly ? !stdenv.hostPlatform.isLinux, symlinkJoin
@@ -185,7 +185,8 @@ rec {
plugins = lib.optional buildxSupport docker-buildx
++ lib.optional composeSupport docker-compose
++ lib.optional sbomSupport docker-sbom;
++ lib.optional sbomSupport docker-sbom
++ lib.optional initSupport docker-init;
pluginsRef = symlinkJoin { name = "docker-plugins"; paths = plugins; };
in
buildGoModule (lib.optionalAttrs (!clientOnly) {
@@ -9,14 +9,14 @@ let
callPackage
(import ./generic.nix rec {
pname = "apptainer";
version = "1.3.5";
version = "1.3.6";
projectName = "apptainer";
src = fetchFromGitHub {
owner = "apptainer";
repo = "apptainer";
rev = "refs/tags/v${version}";
hash = "sha256-yBUCUHc9vgyKFqAOHXQjAYQnmN0yXSIvkpR/s3LNAmk=";
hash = "sha256-ZdSo9bKZ7Q1xwMe4SR840U3+fVpKwtiZQA5KDM5qF9M=";
};
# Update by running
@@ -9,13 +9,13 @@
mkHyprlandPlugin hyprland {
pluginName = "hyprscroller";
version = "0-unstable-2024-11-23";
version = "0-unstable-2024-11-29";
src = fetchFromGitHub {
owner = "dawsers";
repo = "hyprscroller";
rev = "f1e09fd86d0fff30aff0b9ca2e429c7331bab5ac";
hash = "sha256-5j7IqHKiXfmaq193ltGX4/150NA1YWNXNB1GIFwEfuc=";
rev = "50a87a8a7dc56494a5b71e95182ef4b907d71448";
hash = "sha256-4Gzj0HWovu0hzzw+2zEXne7vDmP6yIK2GmtURB1EZxQ=";
};
nativeBuildInputs = [ cmake ];
+26 -4
View File
@@ -13,13 +13,16 @@ in
lib.makeOverridable (lib.fetchers.withNormalizedHash { } (
# NOTE Please document parameter additions or changes in
# doc/build-helpers/fetchers.chapter.md
{ url, rev ? "HEAD", leaveDotGit ? deepClone
{ url
, tag ? null
, rev ? null
, leaveDotGit ? deepClone
, outputHash ? lib.fakeHash, outputHashAlgo ? null
, fetchSubmodules ? true, deepClone ? false
, branchName ? null
, sparseCheckout ? []
, nonConeMode ? false
, name ? urlToName url rev
, name ? null
, # Shell code executed after the file has been fetched
# successfully. This can do things like check or transform the file.
postFetch ? ""
@@ -59,12 +62,30 @@ lib.makeOverridable (lib.fetchers.withNormalizedHash { } (
assert deepClone -> leaveDotGit;
assert nonConeMode -> (sparseCheckout != []);
let
revWithTag =
let
warningMsg = "fetchgit requires one of either `rev` or `tag` to be provided (not both).";
otherIsNull = other: lib.assertMsg (other == null) warningMsg;
in
if tag != null then
assert (otherIsNull rev);
"refs/tags/${tag}"
else if rev != null then
assert (otherIsNull tag);
rev
else
# FIXME fetching HEAD if no rev or tag is provided is problematic at best
"HEAD";
in
if builtins.isString sparseCheckout then
# Changed to throw on 2023-06-04
throw "Please provide directories/patterns for sparse checkout as a list of strings. Passing a (multi-line) string is not supported any more."
else
stdenvNoCC.mkDerivation {
inherit name;
name = if name != null then name else urlToName url revWithTag;
builder = ./builder.sh;
fetcher = ./nix-prefetch-git;
@@ -79,7 +100,8 @@ stdenvNoCC.mkDerivation {
# > from standard in as a newline-delimited list instead of from the arguments.
sparseCheckout = builtins.concatStringsSep "\n" sparseCheckout;
inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch;
inherit url leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch;
rev = revWithTag;
postHook = if netrcPhase == null then null else ''
${netrcPhase}
+13 -5
View File
@@ -1,7 +1,10 @@
{ lib, fetchgit, fetchzip }:
lib.makeOverridable (
{ owner, repo, rev, name ? "source"
{ owner, repo
, tag ? null
, rev ? null
, name ? "source"
, fetchSubmodules ? false, leaveDotGit ? null
, deepClone ? false, private ? false, forceFetchGit ? false
, fetchLFS ? false
@@ -11,11 +14,16 @@ lib.makeOverridable (
, ... # For hash agility
}@args:
assert (lib.assertMsg (lib.xor (tag == null) (rev == null)) "fetchFromGitHub requires one of either `rev` or `tag` to be provided (not both).");
let
position = (if args.meta.description or null != null
then builtins.unsafeGetAttrPos "description" args.meta
else builtins.unsafeGetAttrPos "rev" args
else if tag != null then
builtins.unsafeGetAttrPos "tag" args
else
builtins.unsafeGetAttrPos "rev" args
);
baseUrl = "https://${githubBase}/${owner}/${repo}";
newMeta = meta // {
@@ -24,7 +32,7 @@ let
# to indicate where derivation originates, similar to make-derivation.nix's mkDerivation
position = "${position.file}:${toString position.line}";
};
passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ];
passthruAttrs = removeAttrs args [ "owner" "repo" "tag" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ];
varBase = "NIX${lib.optionalString (varPrefix != null) "_${varPrefix}"}_GITHUB_PRIVATE_";
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || fetchLFS || (sparseCheckout != []);
# We prefer fetchzip in cases we don't need submodules as the hash
@@ -53,10 +61,10 @@ let
fetcherArgs = (if useFetchGit
then {
inherit rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl;
inherit tag rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl;
} // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; }
else {
url = "${baseUrl}/archive/${rev}.tar.gz";
url = "${baseUrl}/archive/${if tag != null then "refs/tags/${tag}" else rev}.tar.gz";
passthru = {
inherit gitRepoUrl;
+3 -3
View File
@@ -10,13 +10,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "adw-gtk3";
version = "5.5";
version = "5.6";
src = fetchFromGitHub {
owner = "lassekongo83";
repo = "adw-gtk3";
rev = "v${finalAttrs.version}";
sha256 = "sha256-WW6lJmGNn+e0jXu319SSX6e6POWfdgsIeg/U1vmwy1U=";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-S/H6JGXwEgiqmcH1W+ZyHYOkk0gQtKG9Q3BiI2IjnEM=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "alt-tab-macos";
version = "7.4.0";
version = "7.7.0";
src = fetchurl {
url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
hash = "sha256-uCernCv52gZUxyn9LxsZGxd33z0y0YoEHEZ4mf4Ve4Y=";
hash = "sha256-ASFlOYOy1uAKPJyrohFmdCD0JwJybJahpaRTiz9rFUk=";
};
sourceRoot = ".";
@@ -9,16 +9,17 @@
writeShellApplication,
curl,
common-updater-scripts,
jq,
unzip,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "angular-language-server";
version = "18.2.0";
version = "19.0.3";
src = fetchurl {
name = "angular-language-server-${finalAttrs.version}.zip";
url = "https://github.com/angular/vscode-ng-language-service/releases/download/v${finalAttrs.version}/ng-template.vsix";
hash = "sha256-rl04nqSSBMjZfPW8Y+UtFLFLDFd5FSxJs3S937mhDWE=";
hash = "sha256-QVvXwzSaj5wMYEwMMXGJwRwg7v6HdB0JKLkQiUNR0y4=";
};
nativeBuildInputs = [
@@ -56,6 +57,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runtimeInputs = [
curl
common-updater-scripts
jq
];
text = ''
if [ -z "''${GITHUB_TOKEN:-}" ]; then
+1 -1
View File
@@ -26,6 +26,6 @@ in stdenv.mkDerivation {
homepage = "https://robobunny.com/projects/asciiquarium/html/";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = [ maintainers.utdemir ];
maintainers = with maintainers; [ sigmasquadron utdemir ];
};
}
+65
View File
@@ -0,0 +1,65 @@
{
lib,
python3Packages,
fetchFromGitHub,
replaceVars,
ffmpeg,
yt-dlp,
}:
python3Packages.buildPythonApplication rec {
pname = "auto-editor";
version = "24w29a";
pyproject = true;
src = fetchFromGitHub {
owner = "WyattBlue";
repo = "auto-editor";
rev = "refs/tags/${version}";
hash = "sha256-2/6IqwMlaWobOlDr/h2WV2OqkxqVmUI65XsyBphTbpA=";
};
patches = [
(replaceVars ./set-exe-paths.patch {
ffmpeg = lib.getExe ffmpeg;
yt_dlp = lib.getExe yt-dlp;
})
];
postPatch = ''
# pyav is a fork of av, but has since mostly been un-forked
substituteInPlace pyproject.toml \
--replace-fail '"pyav==12.2.*"' '"av"'
'';
# our patch file also removes the dependency on ae-ffmpeg
pythonRemoveDeps = [ "ae-ffmpeg" ];
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
av
numpy
];
checkPhase = ''
runHook preCheck
$out/bin/auto-editor test all
runHook postCheck
'';
pythonImportsCheck = [ "auto_editor" ];
meta = {
changelog = "https://github.com/WyattBlue/auto-editor/releases/tag/${version}";
description = "Command line application for automatically editing video and audio by analyzing a variety of methods, most notably audio loudness";
homepage = "https://auto-editor.com/";
license = lib.licenses.unlicense;
mainProgram = "auto-editor";
maintainers = with lib.maintainers; [ tomasajt ];
};
}
@@ -0,0 +1,32 @@
diff --git a/auto_editor/ffwrapper.py b/auto_editor/ffwrapper.py
index b6df2d4..8409032 100644
--- a/auto_editor/ffwrapper.py
+++ b/auto_editor/ffwrapper.py
@@ -30,13 +30,7 @@ class FFmpeg:
return ff_location
if my_ffmpeg:
return "ffmpeg"
-
- try:
- import ae_ffmpeg
-
- return ae_ffmpeg.get_path()
- except ImportError:
- return "ffmpeg"
+ return "@ffmpeg@"
self.debug = debug
self.show_cmd = show_cmd
diff --git a/auto_editor/utils/types.py b/auto_editor/utils/types.py
index ccd6581..a66e5e3 100644
--- a/auto_editor/utils/types.py
+++ b/auto_editor/utils/types.py
@@ -218,7 +218,7 @@ def resolution(val: str | None) -> tuple[int, int] | None:
@dataclass
class Args:
- yt_dlp_location: str = "yt-dlp"
+ yt_dlp_location: str = "@yt_dlp@"
download_format: str | None = None
output_format: str | None = None
yt_dlp_extras: str | None = None
+1 -1
View File
@@ -75,6 +75,6 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/sharkdp/bat/raw/v${version}/CHANGELOG.md";
license = with licenses; [ asl20 /* or */ mit ];
mainProgram = "bat";
maintainers = with maintainers; [ dywedir zowoq SuperSandro2000 ];
maintainers = with maintainers; [ dywedir zowoq SuperSandro2000 sigmasquadron ];
};
}
@@ -0,0 +1,39 @@
From 5da393e32336534222c77659ff138a4e512e6a1f Mon Sep 17 00:00:00 2001
From: Austin Horstman <khaneliman12@gmail.com>
Date: Wed, 4 Dec 2024 13:23:15 -0600
Subject: [PATCH] Disable autoUpdate
---
source/index.ts | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/source/index.ts b/source/index.ts
index b8511949a..205c513fe 100644
--- a/source/index.ts
+++ b/source/index.ts
@@ -14,7 +14,6 @@ import {
nativeTheme,
} from 'electron';
import {ipcMain as ipc} from 'electron-better-ipc';
-import {autoUpdater} from 'electron-updater';
import electronDl from 'electron-dl';
import electronContextMenu from 'electron-context-menu';
import electronLocalshortcut from 'electron-localshortcut';
@@ -65,17 +64,6 @@ if (!config.get('hardwareAcceleration')) {
app.disableHardwareAcceleration();
}
-if (!is.development && config.get('autoUpdate')) {
- (async () => {
- const FOUR_HOURS = 1000 * 60 * 60 * 4;
- setInterval(async () => {
- await autoUpdater.checkForUpdatesAndNotify();
- }, FOUR_HOURS);
-
- await autoUpdater.checkForUpdatesAndNotify();
- })();
-}
-
let mainWindow: BrowserWindow;
let isQuitting = false;
let previousMessageCount = 0;
+8 -3
View File
@@ -6,22 +6,23 @@
makeDesktopItem,
copyDesktopItems,
electron,
nix-update-script,
}:
buildNpmPackage rec {
pname = "caprine";
version = "2.60.1";
version = "2.60.3";
src = fetchFromGitHub {
owner = "sindresorhus";
repo = "caprine";
rev = "v${version}";
hash = "sha256-y4W295i7FhgJC3SlwSr801fLOGJY1WF136bbkkBUvyw=";
hash = "sha256-yfCilJ62m7nKe8B+4puwAbNgr2g1P7HaKIhFINdv0/k=";
};
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
npmDepsHash = "sha256-JHaUc2p+wHsqWtls8xquHK9qnypuCrR0AQMGxcrTsC0=";
npmDepsHash = "sha256-hNOAplCSXrO4NZqDTkmhf0oZVeGRUHr2Y/Qdx2RIV9c=";
nativeBuildInputs = [ copyDesktopItems ];
@@ -37,6 +38,8 @@ buildNpmPackage rec {
-c.electronVersion=${electron.version}
'';
patches = [ ./001-disable-auto-update.patch ];
installPhase = ''
runHook preInstall
@@ -79,6 +82,8 @@ buildNpmPackage rec {
})
];
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/sindresorhus/caprine/releases/tag/${src.rev}";
description = "Elegant Facebook Messenger desktop app";
+3 -3
View File
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-sort";
version = "1.1.0";
version = "1.0.9";
src = fetchFromGitHub {
owner = "devinr528";
repo = pname;
rev = "v${version}";
sha256 = "sha256-AUtue1xkhrhlF7PtqsCQ9rdhV0/0i85DWrp7YL9SAYk=";
sha256 = "sha256-fqmyL4ZSz+nKfUIrcrfLRT9paEas5d00Y/kvEqyz2vw=";
};
cargoHash = "sha256-y6lLwk40hmFQKDU7sYz3+QQzdn5eGoEX7izmloK22dg=";
cargoHash = "sha256-JON6cE1ZHeI+0vU9AJp0e1TIbiH3AWjHyn0jd9PNqQU=";
meta = with lib; {
description = "Tool to check that your Cargo.toml dependencies are sorted alphabetically";
+42 -24
View File
@@ -1,39 +1,46 @@
{ stdenv
, lib
, autoPatchelfHook
, copyDesktopItems
, dbus
, dpkg
, fetchurl
, gtk3
, libpcap
, makeDesktopItem
, makeWrapper
, nftables
, nss
, openssl
{
stdenv,
lib,
autoPatchelfHook,
versionCheckHook,
copyDesktopItems,
dbus,
dpkg,
fetchurl,
gtk3,
libpcap,
makeDesktopItem,
makeWrapper,
nftables,
nss,
openssl,
}:
stdenv.mkDerivation rec {
pname = "cloudflare-warp";
version = "2024.11.309";
suffix = {
aarch64-linux = "arm64";
x86_64-linux = "amd64";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
suffix =
{
aarch64-linux = "arm64";
x86_64-linux = "amd64";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
src = fetchurl {
url = "https://pkg.cloudflareclient.com/pool/noble/main/c/cloudflare-warp/cloudflare-warp_${version}.0_${suffix}.deb";
hash = {
aarch64-linux = "sha256-pdCPN4NxaQqWNRPZY1CN03KnTdzl62vJ3JNfxGozI4k=";
x86_64-linux = "sha256-THxXETyy08rBmvghrc8HIQ2cBSLeNVl8SkD43CVY/tE=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
hash =
{
aarch64-linux = "sha256-pdCPN4NxaQqWNRPZY1CN03KnTdzl62vJ3JNfxGozI4k=";
x86_64-linux = "sha256-THxXETyy08rBmvghrc8HIQ2cBSLeNVl8SkD43CVY/tE=";
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
versionCheckHook
makeWrapper
copyDesktopItems
];
@@ -51,7 +58,11 @@ stdenv.mkDerivation rec {
(makeDesktopItem {
name = "com.cloudflare.WarpCli";
desktopName = "Cloudflare Zero Trust Team Enrollment";
categories = [ "Utility" "Security" "ConsoleOnly" ];
categories = [
"Utility"
"Security"
"ConsoleOnly"
];
noDisplay = true;
mimeTypes = [ "x-scheme-handler/com.cloudflare.warp" ];
exec = "warp-cli --accept-tos registration token %u";
@@ -90,6 +101,10 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/warp-svc --prefix PATH : ${lib.makeBinPath [ nftables ]}
'';
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}";
versionCheckProgramArg = [ "--version" ];
meta = with lib; {
description = "Replaces the connection between your device and the Internet with a modern, optimized, protocol";
homepage = "https://pkg.cloudflareclient.com/packages/cloudflare-warp";
@@ -100,6 +115,9 @@ stdenv.mkDerivation rec {
devpikachu
marcusramberg
];
platforms = [ "x86_64-linux" "aarch64-linux" ];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
};
}
+1 -1
View File
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/Mic92/cntr";
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ maintainers.mic92 ];
maintainers = with maintainers; [ mic92 sigmasquadron ];
mainProgram = "cntr";
};
}
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
version = "1.26.2";
version = "1.27.1";
pname = "commons-compress";
src = fetchurl {
url = "mirror://apache/commons/compress/binaries/${pname}-${version}-bin.tar.gz";
sha256 = "sha256-EyGbVhcsuEhLfKh0TPFjySFd9/Z8BEBhkslpfdu4er8=";
sha256 = "sha256-psD9VseWxx2ovdUGjEbUCm+fjnQ/D2S70NuyZ2nsXwA=";
};
installPhase = ''
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
version = "2.17.0";
version = "2.18.0";
pname = "commons-io";
src = fetchurl {
url = "mirror://apache/commons/io/binaries/${pname}-${version}-bin.tar.gz";
sha256 = "sha256-4CM53Ujdtt0E9zAg9ytOa7UIw5bGNz/zrZqKJOQM9bg=";
sha256 = "sha256-qrB4cLnvaTQaZJWrrDO8IYsYI2hp6/nN7nCRcFhKTeE=";
};
installPhase = ''
+2 -2
View File
@@ -18,13 +18,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "corectrl";
version = "1.4.2";
version = "1.4.3";
src = fetchFromGitLab {
owner = "corectrl";
repo = "corectrl";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-WOljOakh177om7tLlroFwWO4gYsarfTCeVXX6+dmZs4=";
hash = "sha256-rQibIjLmSnkA8jk6GOo68JIeb4wZq0wxXpLs3zsB7GI=";
};
nativeBuildInputs = [
+1 -1
View File
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
homepage = "https://www.cryfs.org/";
changelog = "https://github.com/cryfs/cryfs/raw/${version}/ChangeLog.txt";
license = licenses.lgpl3Only;
maintainers = with maintainers; [ peterhoeg c0bw3b ];
maintainers = with maintainers; [ peterhoeg c0bw3b sigmasquadron ];
platforms = platforms.unix;
};
}
+43
View File
@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
haskellPackages,
}:
haskellPackages.mkDerivation {
pname = "dclock";
version = "0.1.0";
src = fetchFromGitHub {
owner = "travgm";
repo = "dclock";
rev = "main";
sha256 = "sha256-IJsbEg1dFiyIJSlVWy8x+tsa49YxLK8mNkJESFyUQoU=";
};
isLibrary = false;
isExecutable = true;
jailbreak = true;
doCheck = false;
executableHaskellDepends = with haskellPackages; [
base
QuickCheck
ansi-terminal
hspec
hspec-discover
lens
machines
optparse-applicative
text
time
process
];
description = "Decimal clock that breaks your day into a 1000 decimal minutes";
homepage = "https://github.com/travgm/dclock";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ travgm ];
mainProgram = "dclock";
}
+3 -3
View File
@@ -11,7 +11,7 @@
nixosTests,
}:
let
version = "4.12.1";
version = "4.12.2";
frontend = buildNpmPackage {
pname = "dependency-track-frontend";
@@ -41,7 +41,7 @@ maven.buildMavenPackage rec {
owner = "DependencyTrack";
repo = "dependency-track";
rev = version;
hash = "sha256-Gx7tGkibSu+v4gGKC61EFwUsdruMh0t2gTnnNazjqco=";
hash = "sha256-wn4HnOFhV02oq66LwBIOVzU+ehXemCuzOWcDASG/47c=";
};
patches = [
@@ -56,7 +56,7 @@ maven.buildMavenPackage rec {
'';
mvnJdk = jre_headless;
mvnHash = "sha256-4QtWvsIFiS4d55y45tj3RLE4YYdXLrqpzqS7mOqRWYw=";
mvnHash = "sha256-x1/b8LoXyGxCQiu7QB60XSpiufTk/y4492mOraFnRKY=";
manualMvnArtifacts = [ "com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0.1" ];
buildOffline = true;
+1 -1
View File
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
description =
"C compiler, assembler and linker environment for the production of 8086 executables";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.AndersonTorres ];
maintainers = with lib.maintainers; [ AndersonTorres sigmasquadron ];
platforms = lib.platforms.linux;
};
})
+47
View File
@@ -0,0 +1,47 @@
{
stdenv,
fetchurl,
zstd,
lib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "docker-init";
version = "v1.3.0";
tag = "157355";
src = fetchurl {
url = "https://desktop.docker.com/linux/main/amd64/${finalAttrs.tag}/docker-desktop-x86_64.pkg.tar.zst";
hash = "sha256-ysZorPBmoUvTJFFKDbZgQxPamONJKcXezmMrpZSVpwY=";
};
nativeBuildInputs = [
zstd
];
unpackPhase = ''
runHook preUnpack
tar --zstd -xvf $src
runHook postUnpack
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,libexec/docker/cli-plugins}
cp usr/lib/docker/cli-plugins/docker-init $out/libexec/docker/cli-plugins
ln -s $out/libexec/docker/cli-plugins/docker-init $out/bin/docker-init
runHook postInstall
'';
meta = {
description = "Creates Docker-related starter files for your project";
homepage = "https://docs.docker.com/reference/cli/docker/init";
downloadPage = "https://docs.docker.com/desktop/release-notes/#4320";
mainProgram = "docker-init";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
badPlatforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [ BastianAsmussen ];
};
})
+2 -2
View File
@@ -14,14 +14,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "door-knocker";
version = "0.5.0";
version = "0.6.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "tytan652";
repo = "door-knocker";
rev = finalAttrs.version;
hash = "sha256-932zUfCEN24hZxkCX9uJ2HpvmLNdTtbkXvv50Hu7KxE=";
hash = "sha256-n25Bcn1SJuTTRhl8u4M0DF5bAuWV2KVkFfMU65+np78=";
};
nativeBuildInputs = [
+22
View File
@@ -0,0 +1,22 @@
{ buildDotnetGlobalTool, lib }:
buildDotnetGlobalTool {
pname = "dotnet-ef";
version = "9.0.0";
nugetHash = "sha256-/Ru/H2WXX/SCqF2s0M1DJkaw+6Nikm+ccrveqiOXggA=";
meta = {
description = "The Entity Framework Core tools help with design-time development tasks.";
longDescription = ''
The Entity Framework Core tools help with design-time development tasks.
They're primarily used to manage Migrations and to scaffold a DbContext and entity types by reverse engineering the schema of a database.
'';
downloadPage = "https://www.nuget.org/packages/dotnet-ef";
homepage = "https://learn.microsoft.com/en-us/ef/core/cli/dotnet";
changelog = "https://learn.microsoft.com/en-us/ef/core/what-is-new/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lostmsu ];
mainProgram = "dotnet-ef";
};
}
+1 -1
View File
@@ -25,7 +25,7 @@ buildGoModule rec {
homepage = "https://github.com/muesli/duf/";
description = "Disk Usage/Free Utility";
license = licenses.mit;
maintainers = with maintainers; [ figsoda penguwin ];
maintainers = with maintainers; [ figsoda penguwin sigmasquadron ];
mainProgram = "duf";
};
}
+2 -2
View File
@@ -7,13 +7,13 @@
}:
let
version = "0.14.2";
version = "0.14.3";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "Klasse-Methode";
repo = "eintopf";
rev = "v${version}";
hash = "sha256-38lVbgAjKsg/yXGFmIdw4KmvfIDCAE3K6qhvza3c+dU=";
hash = "sha256-cWHWRxZFoArBB5PiuY6EQubKJKm3/79fwNhnABOtBrM=";
};
frontend = callPackage ./frontend.nix { inherit src version; };
in
+6 -6
View File
@@ -12,21 +12,21 @@ let
inherit (stdenv.hostPlatform) system;
throwSystem = throw "Unsupported system: ${system}";
offlineCacheHash = {
x86_64-linux = "sha256-g4PWB1EstNB7gd/yZyrXf+U8Py8OLeea0gDlEXhInhU=";
aarch64-linux = "sha256-g4PWB1EstNB7gd/yZyrXf+U8Py8OLeea0gDlEXhInhU=";
x86_64-darwin = "sha256-g4PWB1EstNB7gd/yZyrXf+U8Py8OLeea0gDlEXhInhU=";
aarch64-darwin = "sha256-g4PWB1EstNB7gd/yZyrXf+U8Py8OLeea0gDlEXhInhU=";
x86_64-linux = "sha256-bjWPoci9j3LZnOfDgmRVqQp1L2tXBwHQOryn+p5B1Mc=";
aarch64-linux = "sha256-bjWPoci9j3LZnOfDgmRVqQp1L2tXBwHQOryn+p5B1Mc=";
x86_64-darwin = "sha256-bjWPoci9j3LZnOfDgmRVqQp1L2tXBwHQOryn+p5B1Mc=";
aarch64-darwin = "sha256-bjWPoci9j3LZnOfDgmRVqQp1L2tXBwHQOryn+p5B1Mc=";
}.${system} or throwSystem;
in
stdenv.mkDerivation (finalAttrs: {
pname = "element-call";
version = "0.6.3";
version = "0.7.1";
src = fetchFromGitHub {
owner = "element-hq";
repo = "element-call";
rev = "v${finalAttrs.version}";
hash = "sha256-PyxqUhnlWfcACsoFYrppO7g5e74jI4/xxXBi6oWyWsg=";
hash = "sha256-HmkFr2DroN1uNNH2pnRwE7vsJsEPLYU6yhroiuR/E6Q=";
};
offlineCache = fetchYarnDeps {
+1 -1
View File
@@ -35,7 +35,7 @@ stdenvNoCC.mkDerivation rec {
that ensures the patched executable is never run with EAC enabled (unless explicity told to do so). Use at your own risk!
'';
license = licenses.mit;
maintainers = [ ];
maintainers = [ lib.maintainers.sigmasquadron ];
mainProgram = "er-patcher";
};
}
+1 -1
View File
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/eza-community/eza/releases/tag/v${version}";
license = licenses.eupl12;
mainProgram = "eza";
maintainers = with maintainers; [ cafkafk _9glenda ];
maintainers = with maintainers; [ cafkafk _9glenda sigmasquadron ];
platforms = platforms.unix ++ platforms.windows;
};
}
+34
View File
@@ -0,0 +1,34 @@
{
config,
lib,
fetchFromGitHub,
zlib,
stdenv,
}:
stdenv.mkDerivation {
pname = "fermi2";
version = "0.1-unstable-2021-05-21";
src = fetchFromGitHub {
owner = "lh3";
repo = "fermi2";
rev = "cb1410972b2bd330883823116931ae67ead8b30f";
hash = "sha256-jDn1OBuGWDMEHI5A3R9meOykEGM6yjItSnUpx36DxgA=";
};
buildInputs = [ zlib ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installPhase = ''
runHook preInstall
install -Dm755 fermi2 -t $out/bin
runHook postInstall
'';
meta = {
homepage = "https://github.com/lh3/fermi2";
description = "Successor of fermi, a whole genome de novo assembler based on the FMD-index for large genomes";
mainProgram = "fermi2";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ apraga ];
platforms = lib.intersectLists lib.platforms.x86_64 lib.platforms.unix;
};
}
+1
View File
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
ryneeverett
alyaeanyx
ryand56
sigmasquadron
];
inherit (electron.meta) platforms;
mainProgram = "freetube";
@@ -27,11 +27,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-network-displays";
version = "0.93.0";
version = "0.94.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-network-displays/${lib.versions.majorMinor finalAttrs.version}/gnome-network-displays-${finalAttrs.version}.tar.xz";
sha256 = "sha256-xxvR8zR+Yglo0e9HRrSFPbgEriYpcRN5K0SXg/D0Oo4=";
sha256 = "sha256-FzNaA2Our7gb8FgEmYjRtphGVcQt3pw+wQNyLHtKI4M=";
};
nativeBuildInputs = [
@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule rec {
pname = "google-alloydb-auth-proxy";
version = "1.11.3";
src = fetchFromGitHub {
owner = "GoogleCloudPlatform";
repo = "alloydb-auth-proxy";
rev = "refs/tags/v${version}";
hash = "sha256-MjLnGsZ4xoZpyjJQbBd3vihIA2sZ7AAhnW8Xtu7Au+U=";
};
subPackages = [ "." ];
vendorHash = "sha256-uUv/PqfuMAAwfcD2Sk36NcDoVWTrIVNxfoKM7cpFG5A=";
checkFlags = [
"-short"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Utility for connecting securely to your AlloyDB instances";
longDescription = ''
The AlloyDB Auth Proxy is a binary that provides IAM-based authorization and encryption when connecting to an AlloyDB instance.
See the Connecting Overview page for more information on connecting to an AlloyDB instance, or the About the proxy page for details on how the AlloyDB Auth Proxy works.
'';
homepage = "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy";
changelog = "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ShawnToubeau ];
mainProgram = "alloydb-auth-proxy";
};
}
+39 -30
View File
@@ -93,14 +93,14 @@ let
VideoToolbox
;
inherit (darwin) libobjc;
version = "1.8.2";
version = "1.9.0";
src = fetchFromGitHub {
owner = "HandBrake";
repo = "HandBrake";
# uses version commit for logic in version.txt
rev = "77f199ab02ff2e3bca4ca653e922e9fef67dec43";
hash = "sha256-vxvmyo03NcO2Nbjg76JLZqmYw7RiK4FehiB+iE3CgOw=";
rev = "fa9154a20f3f64fdc183a097e6b63f7fd4bc6cab";
hash = "sha256-Asf8NgYk4xxIkevYA0B62T8CTSaB7SHq0lHXkawVxb8=";
};
# Handbrake maintains a set of ffmpeg patches. In particular, these
@@ -108,11 +108,11 @@ let
# https://github.com/HandBrake/HandBrake/issues/4029
# base ffmpeg version is specified in:
# https://github.com/HandBrake/HandBrake/blob/master/contrib/ffmpeg/module.defs
ffmpeg-version = "7.0.2";
ffmpeg-version = "7.1";
ffmpeg-hb =
(ffmpeg_7-full.override {
version = ffmpeg-version;
hash = "sha256-6bcTxMt0rH/Nso3X7zhrFNkkmWYtxsbUqVQKh25R1Fs=";
hash = "sha256-erTkv156VskhYEJWjpWFvHjmcr2hr6qgUi28Ho8NFYk=";
}).overrideAttrs
(old: {
patches = (old.patches or [ ]) ++ [
@@ -120,28 +120,37 @@ let
"${src}/contrib/ffmpeg/A02-movenc-write-3gpp-track-titl-tag.patch"
"${src}/contrib/ffmpeg/A03-mov-read-3gpp-udta-tags.patch"
"${src}/contrib/ffmpeg/A04-movenc-write-3gpp-track-names-tags-for-all-available.patch"
"${src}/contrib/ffmpeg/A05-dvdsubdec-fix-processing-of-partial-packets.patch"
"${src}/contrib/ffmpeg/A06-dvdsubdec-return-number-of-bytes-used.patch"
"${src}/contrib/ffmpeg/A07-dvdsubdec-use-pts-of-initial-packet.patch"
"${src}/contrib/ffmpeg/A08-dvdsubdec-do-not-discard-zero-sized-rects.patch"
"${src}/contrib/ffmpeg/A09-ccaption_dec-fix-pts-in-real_time-mode.patch"
"${src}/contrib/ffmpeg/A10-matroskaenc-aac-extradata-updated.patch"
"${src}/contrib/ffmpeg/A11-videotoolbox-disable-H.264-10-bit-on-Intel-macOS.patch"
"${src}/contrib/ffmpeg/A05-avformat-mov-add-support-audio-fallback-track-ref.patch"
"${src}/contrib/ffmpeg/A06-dvdsubdec-fix-processing-of-partial-packets.patch"
"${src}/contrib/ffmpeg/A07-dvdsubdec-return-number-of-bytes-used.patch"
"${src}/contrib/ffmpeg/A08-dvdsubdec-use-pts-of-initial-packet.patch"
"${src}/contrib/ffmpeg/A09-dvdsubdec-add-an-option-to-output-subtitles-with-emp.patch"
"${src}/contrib/ffmpeg/A10-ccaption_dec-fix-pts-in-real_time-mode.patch"
"${src}/contrib/ffmpeg/A11-avformat-matroskaenc-return-error-if-aac-extradata-c.patch"
"${src}/contrib/ffmpeg/A12-videotoolbox-disable-H.264-10-bit-on-Intel-macOS-it-.patch"
# patch to fix <https://github.com/HandBrake/HandBrake/issues/5011>
# commented out because it causes ffmpeg's filter-pixdesc-p010le test to fail.
# "${src}/contrib/ffmpeg/A12-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
# "${src}/contrib/ffmpeg/A13-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
"${src}/contrib/ffmpeg/A13-qsv-fix-decode-10bit-hdr.patch"
"${src}/contrib/ffmpeg/A14-amfenc-Add-support-for-pict_type-field.patch"
"${src}/contrib/ffmpeg/A15-amfenc-Fixes-the-color-information-in-the-ou.patch"
"${src}/contrib/ffmpeg/A16-amfenc-HDR-metadata.patch"
"${src}/contrib/ffmpeg/A17-av1dec-dovi-rpu.patch"
"${src}/contrib/ffmpeg/A18-avformat-mov-add-support-audio-fallback-track-ref.patch"
"${src}/contrib/ffmpeg/A14-hevc_mp4toannexb.c-fix-qsv-decode-of-10bit-hdr.patch"
"${src}/contrib/ffmpeg/A15-Expose-the-unmodified-Dolby-Vision-RPU-T35-buffers.patch"
"${src}/contrib/ffmpeg/A16-avcodec-amfenc-Add-support-for-on-demand-key-frames.patch"
"${src}/contrib/ffmpeg/A17-avcodec-amfenc-properly-set-primaries-transfer-and-m.patch"
"${src}/contrib/ffmpeg/A18-Revert-avcodec-amfenc-GPU-driver-version-check.patch"
"${src}/contrib/ffmpeg/A19-lavc-pgssubdec-Add-graphic-plane-and-cropping.patch"
"${src}/contrib/ffmpeg/A28-enable-av1_mf-encoder.patch"
"${src}/contrib/ffmpeg/A29-Revert-lavc-Check-codec_whitelist-early-in-avcodec_o.patch"
];
});
x265-hb = x265.overrideAttrs (old: {
version = "4.1";
sourceRoot = "x265_4.1/source";
src = fetchurl {
url = "https://bitbucket.org/multicoreware/x265_git/downloads/x265_4.1.tar.gz";
hash = "sha256-oxaZxqiYBrdLAVHl5qffZd5LSQUEgv5ev4pDedevjyk=";
};
# nixpkgs' x265 sourceRoot is x265-.../source whereas handbrake's x265 patches
# are written with respect to the parent directory instead of that source directory.
# patches which don't cleanly apply are commented out.
@@ -149,12 +158,13 @@ let
(old.postPatch or "")
+ ''
pushd ..
patch -p1 < ${src}/contrib/x265/A01-threads-priority.patch
patch -p1 < ${src}/contrib/x265/A02-threads-pool-adjustments.patch
patch -p1 < ${src}/contrib/x265/A03-sei-length-crash-fix.patch
patch -p1 < ${src}/contrib/x265/A04-ambient-viewing-enviroment-sei.patch
# patch -p1 < ${src}/contrib/x265/A05-memory-leaks.patch
# patch -p1 < ${src}/contrib/x265/A06-crosscompile-fix.patch
patch -p1 < ${src}/contrib/x265/A01-Do-not-set-thread-priority-on-Windows.patch
# patch -p1 < ${src}/contrib/x265/A02-Apple-Silicon-tuning.patch
patch -p1 < ${src}/contrib/x265/A03-fix-crash-when-SEI-length-is-variable.patch
patch -p1 < ${src}/contrib/x265/A04-implement-ambient-viewing-environment-sei.patch
# patch -p1 < ${src}/contrib/x265/A05-Fix-Dolby-Vision-RPU-memory-management.patch
# patch -p1 < ${src}/contrib/x265/A06-Simplify-macOS-cross-compilation.patch
# patch -p1 < ${src}/contrib/x265/A07-add-new-matrix-coefficients-from-H.273-v3.patch
popd
'';
});
@@ -175,7 +185,6 @@ let
optional
optionals
optionalString
versions
;
self = stdenv.mkDerivation rec {
@@ -344,7 +353,7 @@ let
};
};
meta = with lib; {
meta = {
homepage = "https://handbrake.fr/";
description = "Tool for converting video files and ripping DVDs";
longDescription = ''
@@ -355,13 +364,13 @@ let
CLI - `HandbrakeCLI`
GTK GUI - `ghb`
'';
license = licenses.gpl2Only;
maintainers = with maintainers; [
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [
Anton-Latukha
wmertens
];
mainProgram = "HandBrakeCLI";
platforms = with platforms; unix;
platforms = with lib.platforms; unix;
broken = stdenv.hostPlatform.isDarwin; # https://github.com/NixOS/nixpkgs/pull/297984#issuecomment-2016503434
};
};
+8 -36
View File
@@ -2,11 +2,9 @@
lib,
fetchFromGitHub,
pkg-config,
flutter,
flutter324,
buildGoModule,
libayatana-appindicator,
stdenv,
fetchurl,
makeDesktopItem,
copyDesktopItems,
wrapGAppsHook3,
@@ -14,12 +12,12 @@
}:
let
pname = "hiddify-app";
version = "2.5.7-unstable-2024-10-30";
version = "2.5.7-unstable-2024-11-18";
src = fetchFromGitHub {
owner = "hiddify";
repo = "hiddify-app";
rev = "0144cddf670df11d1586a0dc76483f4c4f5b4230";
hash = "sha256-bjZkc0H0409YxM6AGrhm6gPaKNj/9SiVs0AUPoLJX+o=";
rev = "9d3de0ae2ea2687f189f75fa2a9196a035a0bb32";
hash = "sha256-P04A14lFfgvl0kkxMsNXNaHnwfJ3AWkhrfI7VMESGHc=";
fetchSubmodules = true;
};
libcore = buildGoModule rec {
@@ -55,9 +53,8 @@ let
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/lib
cp ./bin/HiddifyCli $out/bin/HiddifyCli
cp ./lib/libcore.so $out/lib/libcore.so
install -Dm0755 ./bin/HiddifyCli $out/bin/HiddifyCli
install -Dm0755 ./lib/libcore.so $out/lib/libcore.so
runHook postInstall
'';
@@ -71,12 +68,8 @@ let
maintainers = with lib.maintainers; [ aucub ];
};
};
sqlite-autoconf = fetchurl {
url = "https://sqlite.org/2024/sqlite-autoconf-3460000.tar.gz";
hash = "sha256-b45qezNSc3SIFvmztiu9w3Koid6HgtfwSMZTpEdBen0=";
};
in
flutter.buildFlutterApplication {
flutter324.buildFlutterApplication {
inherit pname version src;
pubspecLock = lib.importJSON ./pubspec.lock.json;
@@ -92,26 +85,6 @@ flutter.buildFlutterApplication {
copyDesktopItems
];
customSourceBuilders = {
sqlite3_flutter_libs =
{ version, src, ... }:
stdenv.mkDerivation rec {
pname = "sqlite3_flutter_libs";
inherit version src;
inherit (src) passthru;
postPatch = ''
substituteInPlace linux/CMakeLists.txt \
--replace-fail "https://sqlite.org/2024/sqlite-autoconf-3460000.tar.gz" "file://${sqlite-autoconf}"
'';
installPhase = ''
runHook preInstall
mkdir $out
cp -a ./* $out/
runHook postInstall
'';
};
};
postPatch = ''
substituteInPlace ./linux/my_application.cc \
--replace-fail "./hiddify.png" "${placeholder "out"}/share/pixmaps/hiddify.png"
@@ -125,8 +98,7 @@ flutter.buildFlutterApplication {
'';
postInstall = ''
mkdir -p $out/share/pixmaps/
cp ./assets/images/source/ic_launcher_border.png $out/share/pixmaps/hiddify.png
install -Dm0644 ./assets/images/source/ic_launcher_border.png $out/share/pixmaps/hiddify.png
'';
desktopItems = [
+3 -3
View File
@@ -12,16 +12,16 @@
rustPlatform.buildRustPackage rec {
pname = "hyprlauncher";
version = "0.2.2";
version = "0.2.7";
src = fetchFromGitHub {
owner = "hyprutils";
repo = "hyprlauncher";
rev = "refs/tags/v${version}";
hash = "sha256-E6/V9p5YIjg3/Svw70GwY1jibkg2xnzdAvmphc0xbQQ=";
hash = "sha256-yP3g/hWhQj0JwXNbZFMRJrg0a4upOUwDD0EkW1W8acE=";
};
cargoHash = "sha256-gkBpBlBR9Y2dkuqK7X/sxKdS9staFsbHv3Slg9UvP3A=";
cargoHash = "sha256-ehFkZKiMtJyH0DVBzxI08uVlMACslnYfxZX5gQ7xbPU=";
strictDeps = true;
+1
View File
@@ -6,6 +6,7 @@
"sans-devanagari" = "sha256-K57OVqcH5r9tZx8NFEoz1P3xpUooqpF7xxJzNmnObwE=";
"sans-thai" = "sha256-JZVbvZdj+IfBthiqivOXHrvAUe392M9ECGsiJkm0saE=";
"sans-thai-looped" = "sha256-cry/Ctwt1bsrdbvWkJIYWLjsvV6a1lLFsT85znqERnw=";
"sans-sc" = "sha256-Q3cEVlR/UkNZaGIhNMIdojId6fHmAsZdLwMsKq1zLRY=";
"sans-tc" = "sha256-kZvzSK6fEjfVMR4kxC4lxtD7GskqvJZx8BBJVT4T9MU=";
"sans-kr" = "sha256-FsHxMvLlI4yylgG96DOZIdW2DYpk7I+c5QgkVIkNZIE=";
"sans-jp" = "sha256-hUl/SSkN6q3pDTtrY2mJepw3ljhhLJskGbxfsTl9TuI=";
+1
View File
@@ -11,6 +11,7 @@ families=(
"sans-devanagari"
"sans-thai"
"sans-thai-looped"
"sans-sc"
"sans-tc"
"sans-kr"
"sans-jp"
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "intel-gmmlib";
version = "22.5.2";
version = "22.5.4";
src = fetchFromGitHub {
owner = "intel";
repo = "gmmlib";
rev = "intel-gmmlib-${version}";
hash = "sha256-vc4Jk+XAXf/lq5ouCP+04YBuyeypl0XSOPUT1YkL+7A=";
hash = "sha256-BxWWTUVAvU3dpbcPvCvXbh5npRT5t4S3d4m2/cCj36g=";
};
nativeBuildInputs = [ cmake ];
+2 -2
View File
@@ -48,8 +48,8 @@ rustPlatform.buildRustPackage rec {
];
postInstall = ''
install -D etc/jay.portal $out/usr/share/xdg-desktop-portal/portals/jay.portal
install -D etc/jay-portals.conf $out/usr/share/xdg-desktop-portal/jay-portals.conf
install -D etc/jay.portal $out/share/xdg-desktop-portal/portals/jay.portal
install -D etc/jay-portals.conf $out/share/xdg-desktop-portal/jay-portals.conf
'';
meta = with lib; {
+2 -2
View File
@@ -5,13 +5,13 @@
buildGoModule rec {
pname = "jq-lsp";
version = "0.1.4";
version = "0.1.9";
src = fetchFromGitHub {
owner = "wader";
repo = "jq-lsp";
rev = "refs/tags/v${version}";
hash = "sha256-ueSf32C4BznDKBQD0OIJKZhrwLq1xpn6WWEnsqoWkl8=";
hash = "sha256-BvnSX8pDdmj3t9/DHdV8zf0IZiu4sm97/KJdWOumNEI=";
};
vendorHash = "sha256-8sZGnoP7l09ZzLJqq8TUCquTOPF0qiwZcFhojUnnEIY=";
@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
}:
rustPlatform.buildRustPackage rec {
pname = "kittycad-kcl-lsp";
version = "0.1.61";
src = fetchFromGitHub {
owner = "KittyCAD";
repo = "kcl-lsp";
rev = "refs/tags/v${version}";
hash = "sha256-VtrR4v0BJWYdoYFDJpWnmVqDhZMlPGm+g9yjxYfcFxQ=";
};
cargoHash = "sha256-51eFOJnc/GqgXtfVx/omR+KuC7x/oKGGR+s0z6nKXBg=";
nativeBuildInputs = [ pkg-config ];
meta = {
description = "KittyCAD KCL language server";
changelog = "https://github.com/KittyCAD/kcl-lsp/releases/tag/v${version}";
homepage = "https://github.com/KittyCAD/kcl-lsp";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jljox ];
mainProgram = "kittycad-kcl-lsp";
};
}
+3 -5
View File
@@ -2,18 +2,16 @@
buildGoModule rec {
pname = "kopia";
version = "0.17.0";
version = "0.18.2";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
hash = "sha256-Bqy9eFUvUgSdyChzh52qqPVvMi+3ad01koxVgnibbLk=";
hash = "sha256-7gQlBLmHvqsXXmSYllfsDJRx9VjW0AH7bXf6cG6lGOI=";
};
vendorHash = "sha256-/NMp64JeCQjCcEYkE6lYzu/E+irTcwkmDCJhB04ALFY=";
doCheck = false;
vendorHash = "sha256-lCUEL7rtnv8/86ZTHM4HsYplDnWj1xsFh83JKW6qRrk=";
subPackages = [ "." ];
+1
View File
@@ -38,6 +38,7 @@ buildGo122Module rec {
khaneliman
paveloom
starsep
sigmasquadron
];
mainProgram = "lazygit";
};
+2 -2
View File
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "lombok";
version = "1.18.34";
version = "1.18.36";
src = fetchurl {
url = "https://projectlombok.org/downloads/lombok-${version}.jar";
sha256 = "sha256-wn1rKv9WJB0bB/y8xrGDcJ5rQyyA9zdO6x2CPobUuBo=";
sha256 = "sha256-c7awW2otNltwC6sI0w+U3p0zZJC8Cszlthgf70jL8Y4=";
};
nativeBuildInputs = [ makeWrapper ];
+2 -2
View File
@@ -20,11 +20,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lunacy";
version = "10.0.1";
version = "10.9.0";
src = fetchurl {
url = "https://lcdn.icons8.com/setup/Lunacy_${finalAttrs.version}.deb";
hash = "sha256-roD/bKv1N2sru/tZ6Zl1J2AyY1mgj2ssB2a42kwBNHM=";
hash = "sha256-z5EUztSbU/8G0UE6UVgtIu6iQUY40PZYy1jDbjPIuv8=";
};
buildInputs = [
+40
View File
@@ -0,0 +1,40 @@
{
stdenv,
fetchFromGitHub,
lib,
pkg-config,
SDL2,
libserialport,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "m8c";
version = "1.7.8";
src = fetchFromGitHub {
owner = "laamaa";
repo = "m8c";
rev = "v${finalAttrs.version}";
hash = "sha256-kUXNtAO8yUBeBg1NEwk+3jB7lL8ITm5hmXiemTUWbGc=";
};
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installFlags = [ "PREFIX=$(out)" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
SDL2
libserialport
];
meta = {
description = "Cross-platform M8 tracker headless client";
homepage = "https://github.com/laamaa/m8c";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ mrtnvgr ];
mainProgram = "m8c";
};
})
+2 -2
View File
@@ -12,11 +12,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "maltego";
version = "4.8.0";
version = "4.8.1";
src = fetchzip {
url = "https://downloads.maltego.com/maltego-v4/linux/Maltego.v${finalAttrs.version}.linux.zip";
hash = "sha256-BWLdgaAO905lhFiRbpCJUa/7JyfCiRjHwq2qZw2GjgQ=";
hash = "sha256-FH2gyz3/4wDBRsOQl3l2pbavvSyK73HuAXvJ0YBC1dw=";
};
postPatch = ''
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "mariadb-galera";
version = "26.4.20";
version = "26.4.21";
src = fetchFromGitHub {
owner = "codership";
repo = "galera";
rev = "release_${version}";
hash = "sha256-R2YQtAuqPkOtcvjS5PPcqAqu153N2+0/WjZt96ZSI1A=";
hash = "sha256-mXnQOs2WNdXORBqcfQPgDoJjbyrpypGDOkgP09JZ9Qo=";
fetchSubmodules = true;
};
+197
View File
@@ -0,0 +1,197 @@
{
lib,
stdenv,
fetchzip,
rustPlatform,
fetchFromGitHub,
protobuf,
# nativeBuildInputs
cmake,
perl,
pkg-config,
darwin,
# buildInputs
openssl,
rdkafka,
apple-sdk_11,
darwinMinVersionHook,
versionCheckHook,
nix-update-script,
}:
let
fetchNpmPackage =
{
name,
version,
hash,
js_prod_file,
js_dev_file,
...
}@args:
let
package = fetchzip {
url = "https://registry.npmjs.org/${name}/-/${baseNameOf name}-${version}.tgz";
inherit hash;
};
files =
with args;
[
{
src = js_prod_file;
dst = "./src/environmentd/src/http/static/js/vendor/${name}.js";
}
{
src = js_prod_file;
dst = "./src/prof-http/src/http/static/js/vendor/${name}.js";
}
{
src = js_dev_file;
dst = "./src/environmentd/src/http/static-dev/js/vendor/${name}.js";
}
{
src = js_dev_file;
dst = "./src/prof-http/src/http/static-dev/js/vendor/${name}.js";
}
]
++ lib.optionals (args ? css_file) [
{
src = css_file;
dst = "./src/environmentd/src/http/static/css/vendor/${name}.css";
}
{
src = css_file;
dst = "./src/prof-http/src/http/static/css/vendor/${name}.css";
}
]
++ lib.optionals (args ? extra_file) [
{
src = extra_file.src;
dst = "./src/environmentd/src/http/static/${extra_file.dst}";
}
{
src = extra_file.src;
dst = "./src/prof-http/src/http/static/${extra_file.dst}";
}
];
in
lib.concatStringsSep "\n" (
lib.forEach files (
{ src, dst }:
''
mkdir -p "${dirOf dst}"
cp "${package}/${src}" "${dst}"
''
)
);
npmPackages = import ./npm_deps.nix;
in
rustPlatform.buildRustPackage rec {
pname = "materialize";
version = "0.84.2";
MZ_DEV_BUILD_SHA = "9f8cf75b461d288335cb6a7a73aaa670bab4a466";
src = fetchFromGitHub {
owner = "MaterializeInc";
repo = "materialize";
rev = "refs/tags/v${version}";
hash = "sha256-+cvTCiTbuaPYPIyDxQlMWdJA5/6cbMoiTcSmjj5KPjs=";
fetchSubmodules = true;
};
postPatch = ''
${lib.concatStringsSep "\n" (map fetchNpmPackage npmPackages)}
substituteInPlace ./misc/dist/materialized.service \
--replace-fail /usr/bin $out/bin \
--replace-fail _Materialize root
substituteInPlace ./src/catalog/build.rs \
--replace-fail '&[ ' '&["."'
'';
env = {
# needed for internal protobuf c wrapper library
PROTOC = lib.getExe protobuf;
PROTOC_INCLUDE = "${protobuf}/include";
# needed to dynamically link rdkafka
CARGO_FEATURE_DYNAMIC_LINKING = 1;
};
useFetchCargoVendor = true;
cargoHash = "sha256-EHVuwVYPZKaoP3GYtJpYJaKG3CLsy9CWuEmajF4P7Qc=";
nativeBuildInputs =
[
cmake
perl
pkg-config
rustPlatform.bindgenHook
]
# Provides the mig command used by the krb5-src build script
++ lib.optional stdenv.hostPlatform.isDarwin darwin.bootstrap_cmds;
# Needed to get openssl-sys to use pkg-config.
OPENSSL_NO_VENDOR = 1;
buildInputs =
[
openssl
rdkafka
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# error: aligned allocation function of type 'void *(std::size_t, std::align_val_t)' is only available on macOS 10.13 or newer
apple-sdk_11
(darwinMinVersionHook "10.13")
];
# the check phase requires linking with rocksdb which can be a problem since
# the rust rocksdb crate is not updated very often.
doCheck = false;
# Skip tests that use the network
checkFlags = [
"--exact"
"--skip test_client"
"--skip test_client_errors"
"--skip test_client_all_subjects"
"--skip test_client_subject_and_references"
"--skip test_no_block"
"--skip test_safe_mode"
"--skip test_tls"
];
cargoBuildFlags = [ "--bin environmentd --bin clusterd" ];
postInstall = ''
install --mode=444 -D ./misc/dist/materialized.service $out/etc/systemd/system/materialized.service
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/environmentd";
versionCheckProgramArg = [ "--version" ];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://materialize.com";
description = "Streaming SQL materialized view engine for real-time applications";
license = lib.licenses.bsl11;
platforms = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
];
maintainers = with lib.maintainers; [ petrosagg ];
mainProgram = "environmentd";
};
}
+13
View File
@@ -0,0 +1,13 @@
{
"version": "3.125.0",
"assets": {
"x86_64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.125.0/mirrord_linux_x86_64",
"hash": "sha256-xh5M/YG2W61wiNd4iB6LVUfidkHkB5OmbCzRh7yUpeU="
},
"aarch64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.125.0/mirrord_linux_aarch64",
"hash": "sha256-MWGdYeJXseSAKlndUT07NNWCpywJfGJ0hGRklEMQQmw="
}
}
}
+51
View File
@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
testers,
mirrord,
autoPatchelfHook,
}:
let
manifest = lib.importJSON ./manifest.json;
in
stdenv.mkDerivation (finalAttrs: {
pname = "mirrord";
version = manifest.version;
src = fetchurl (manifest.assets.${stdenv.hostPlatform.system});
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isElf [
autoPatchelfHook
];
buildInputs = lib.optionals stdenv.hostPlatform.isElf [
stdenv.cc.cc.lib
];
installPhase = ''
install -D $src $out/bin/mirrord
'';
passthru = {
tests.version = testers.testVersion {
package = mirrord;
};
updateScript = ./update.py;
};
meta = {
description = "Run local processes in the context of Kubernetes environment";
homepage = "https://mirrord.dev/";
license = lib.licenses.mit;
platforms = builtins.attrNames manifest.assets;
maintainers = with lib.maintainers; [ aaronjheng ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
mainProgram = "mirrord";
};
})
+64
View File
@@ -0,0 +1,64 @@
#!/usr/bin/env nix-shell
#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ ps.httpx ps.socksio ])"
import json
import os
import pathlib
import subprocess
import httpx
platforms = {
"x86_64-linux": "linux_x86_64",
"aarch64-linux": "linux_aarch64",
}
if __name__ == "__main__":
headers = {}
token = os.getenv("GITHUB_TOKEN")
if token is not None:
headers["Authorization"] = "Bearer {}".format(token)
resp = httpx.get(
"https://api.github.com/repos/metalbear-co/mirrord/releases/latest",
headers=headers,
)
latest_release = resp.json().get("tag_name")
version = latest_release.removeprefix("v")
assets = {
"version": version,
"assets": {},
}
for k, v in platforms.items():
url = "https://github.com/metalbear-co/mirrord/releases/download/{}/mirrord_{}".format(
version, v
)
process = subprocess.run(
["nix-prefetch-url", "--type", "sha256", url],
capture_output=True,
text=True,
)
process.check_returncode()
process = subprocess.run(
["nix-hash", "--type", "sha256", "--to-sri", process.stdout.rstrip()],
capture_output=True,
text=True,
)
process.check_returncode()
hash = process.stdout.rstrip()
assets["assets"][k] = {
"url": url,
"hash": hash,
}
(pathlib.Path(__file__).parent / "manifest.json").write_text(
json.dumps(assets, indent=2) + "\n"
)
+220
View File
@@ -0,0 +1,220 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "Azure.Core"; version = "1.36.0"; hash = "sha256-lokfjW2wvgFu6bALLzNmDhXIz3HXoPuGX0WfGb9hmpI="; })
(fetchNuGet { pname = "Azure.Core"; version = "1.37.0"; hash = "sha256-ETDRf0+cNgVa1udMkhjYkOLP5Hd0NtiSQqAZHCjevds="; })
(fetchNuGet { pname = "Azure.Identity"; version = "1.10.4"; hash = "sha256-wjopxd/bq0IjdZd5C69XLITrKz8+TFxc0YsPcj8sZHA="; })
(fetchNuGet { pname = "JmesPath.Net"; version = "1.0.330"; hash = "sha256-FfSgpXmgaFg1uNzJjyJKjU1GZQAo64Og449EByhmKsc="; })
(fetchNuGet { pname = "JmesPath.Net.Parser"; version = "1.0.330"; hash = "sha256-xJxWkfve/tpeFmX4YRW9SK8z1cT8dMCwwqEhOudi9og="; })
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; hash = "sha256-fAcX4sxE0veWM1CZBtXR/Unky+6sE33yrV7ohrWGKig="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; hash = "sha256-9BPsASlxrV8ilmMCjdb3TiUcm5vFZxkBnAI/fNBSEyA="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; hash = "sha256-Evg+Ynj2QUa6Gz+zqF+bUyfGD0HI5A2fHmxZEXbn3HA="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; hash = "sha256-4eBpDkf7MJozTZnOwQvwcfgRKQGcNXe0K/kF+h5Rl8o="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; hash = "sha256-7NZcKkiXWSuhhVcA/fXHPY/62aGUyMsRdiHm91cWC5Y="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; hash = "sha256-GanfInGzzoN2bKeNwON8/Hnamr6l7RTpYLA49CNXD9Q="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "6.0.0"; hash = "sha256-jFACPqLvGo14eg4G3hV/UYY/d9i3hNKvgL+3nnDGZME="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "8.0.0"; hash = "sha256-fmPC/o8S+weTtQJWykpnGHm6AKVU21xYE/CaHYU7zgg="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "6.0.0"; hash = "sha256-tG3DEWURVkQHm4MlmxjE/YouTp9wQKbWs6qHH2nfgqc="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "8.0.0"; hash = "sha256-+bjFZvqCsMf2FRM2olqx/fub+QwfM1kBhjGVOT5HC48="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "6.0.0"; hash = "sha256-PLnSa0JMfDC62OTv8sL0QFJbANE7QSnJ997ySFBS1go="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; hash = "sha256-BCxcjVP+kvrDDB0nzsFCJfU74UK4VBvct2JA4r+jNcs="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; hash = "sha256-Fi/ijcG5l0BOu7i96xHu96aN5/g7zO6SWQbTsI3Qetg="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "6.0.0"; hash = "sha256-b+y3HRjUm+CfZhChVdMoN0HTXmWxrs4yiC7yM6psGmc="; })
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "8.0.0"; hash = "sha256-/yj5QaEzeRStvOFoBpPRPXlEehGtr2E6/rJb+OEPIK8="; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; hash = "sha256-gZuMaunMJVyvvepuzNodGPRc6eqKH//bks3957dYkPI="; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; hash = "sha256-+qIDR8hRzreCHNEDtUcPfVHQdurzWPo/mqviCH78+EQ="; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; hash = "sha256-SZke0jNKIqJvvukdta+MgIlGsrP2EdPkkS8lfLg7Ju4="; })
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; hash = "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8="; })
(fetchNuGet { pname = "Microsoft.Extensions.Diagnostics"; version = "8.0.0"; hash = "sha256-fBLlb9xAfTgZb1cpBxFs/9eA+BlBvF8Xg0DMkBqdHD4="; })
(fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; hash = "sha256-USD5uZOaahMqi6u7owNWx/LR4EDrOwqPrAAim7iRpJY="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "6.0.0"; hash = "sha256-uBjWjHKEXjZ9fDfFxMjOou3lhfTNhs1yO+e3fpWreLk="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; hash = "sha256-uQSXmt47X2HGoVniavjLICbPtD2ReQOYQMgy3l0xuMU="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "6.0.0"; hash = "sha256-5BAQOqnaEXM2YjdrmrCinXBeZ5FKxCWtebEXMdwcbMY="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "8.0.0"; hash = "sha256-29y5ZRQ1ZgzVOxHktYxyiH40kVgm5un2yTGdvuSWnRc="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "6.0.0"; hash = "sha256-RAWHjkkfvGpjc49Q0kJbZyXgU6UEq/EJ0j557sj2/iU="; })
(fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "8.0.0"; hash = "sha256-+Oz41JR5jdcJlCJOSpQIL5OMBNi+1Hl2d0JUHfES7sU="; })
(fetchNuGet { pname = "Microsoft.Extensions.Hosting"; version = "6.0.0"; hash = "sha256-ux2aROPMS7aCyfDgRn7DmIrg5M2UlK00vPjfUWGC/kA="; })
(fetchNuGet { pname = "Microsoft.Extensions.Hosting"; version = "8.0.0"; hash = "sha256-sKHa+w4/pMeQb5RRFqLtMTUJy5H6hSIGWchbH2pxSrg="; })
(fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "6.0.0"; hash = "sha256-ksIPO6RhfbYx/i3su4J3sDhoL+TDnITKsgIpEqnpktc="; })
(fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; hash = "sha256-0JBx+wwt5p1SPfO4m49KxNOXPAzAU0A+8tEc/itvpQE="; })
(fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "8.0.0"; hash = "sha256-UgljypOLld1lL7k7h1noazNzvyEHIJw+r+6uGzucFSY="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; hash = "sha256-8WsZKRGfXW5MsXkMmNVf6slrkw+cR005czkOP2KUqTk="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; hash = "sha256-Meh0Z0X7KyOEG4l0RWBcuHHihcABcvCyfUXgasmQ91o="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; hash = "sha256-QNqcQ3x+MOK7lXbWkCzSOWa/2QyYNbdM/OEEbWN15Sw="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; hash = "sha256-Jmddjeg8U5S+iBTwRlVAVLeIHxc4yrrNgqVMOB7EjM4="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "6.0.0"; hash = "sha256-IeMOza71UDzsEIVIlYuI0RYKk+d+VOC6zCqYCQs6nV4="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "8.0.0"; hash = "sha256-mzmstNsVjKT0EtQcdAukGRifD30T82BMGYlSu8k4K7U="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "8.0.0"; hash = "sha256-bdb9YWWVn//AeySp7se87/tCN2E7e8Gx2GPMw28cd9c="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "6.0.0"; hash = "sha256-kweko71W7/hIAUO3ZYYbNXksVLgj8wrDN028QthMFCs="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "8.0.0"; hash = "sha256-AJunzYBZM2wCg86hnPnMrBuWIIyW/4PnIVoDSU969cA="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.EventLog"; version = "6.0.0"; hash = "sha256-1BXQjw/ySWmddAZ79bv3OhmC4SPTG8PHyTOlrNEUb0g="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.EventLog"; version = "8.0.0"; hash = "sha256-vXBm4yhWGP4uow0CqstuqOkxO8yeZEM15JTTenjPbhc="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "6.0.0"; hash = "sha256-j2Begn1+Xoa+9yPoQC6b6aPmUIpBrjkTGQhRhYfJaDI="; })
(fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "8.0.0"; hash = "sha256-kaR7YOlq5s8W9nZDtH/lKtnfGbrgOuQY4DUPcA2lcj0="; })
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; hash = "sha256-DxnEgGiCXpkrxFkxXtOXqwaiAtoIjA8VSSWCcsW0FwE="; })
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; hash = "sha256-n2m4JSegQKUTlOsKLZUUHHKMq926eJ0w9N9G+I3FoFw="; })
(fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "6.0.0"; hash = "sha256-au0Y13cGk/dQFKuvSA5NnP/++bErTk0oOTlgmHdI2Mw="; })
(fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; hash = "sha256-A5Bbzw1kiNkgirk5x8kyxwg9lLTcSngojeD+ocpG1RI="; })
(fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; hash = "sha256-AgvysszpQ11AiTBJFkvSy8JnwIWTj15Pfek7T7ThUc4="; })
(fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; hash = "sha256-FU8qj3DR8bDdc1c+WeGZx/PCZeqqndweZM9epcpXjSo="; })
(fetchNuGet { pname = "Microsoft.Graph.Cli.Core"; version = "1.2.1"; hash = "sha256-aS8p5p6v2BLMwYq4MsPqzPNuyvli+cck0If8zew1Tg8="; })
(fetchNuGet { pname = "Microsoft.Graph.Core"; version = "3.1.7"; hash = "sha256-OVAc7SpKYtY9IP83TGpy7F2lLR7rTJ6XBR+2JAVPWAU="; })
(fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.56.0"; hash = "sha256-vXd9uZ1AoThcVIBmOZbMrP2xIjpoInWM9iP1pzCSnmc="; })
(fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.56.0"; hash = "sha256-FQF6kIDzNLxtaVnVDBMFryfTuj6T5pCx92GN6aYhmN0="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.22.0"; hash = "sha256-P+7razdzKHXujmkfYfw7ZCK/MvhqNqCJ9kuxFEUsiRg="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.3.1"; hash = "sha256-lbZKfnulWcM4Mxbz6Hkrp/lM41hsOfCnsHLEb+u2czc="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.3.1"; hash = "sha256-C7uySnKBB0e5Wf6z8YNtjbtBbhalJMdqx0EWVcYy7Q4="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.3.1"; hash = "sha256-6OHGsItAXicCSlW0ghCy5szNi6HwhlCmbykbN1O5yAw="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Protocols"; version = "7.3.1"; hash = "sha256-bBEbYXtPGNqsJiSZ7Kx3kcP1ZbosqPrGyu1PIfFPIeA="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Protocols.OpenIdConnect"; version = "7.3.1"; hash = "sha256-NWw7q26IZAKiQQILU1qLeNVkMxE9rX0NwUubWAcoBiE="; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.3.1"; hash = "sha256-qfTNU0g9QA8kV42VTAez1pSTmfFRJBbeTbGn/nfGFUU="; })
(fetchNuGet { pname = "Microsoft.Kiota.Abstractions"; version = "1.7.5"; hash = "sha256-g2ShFodiwkMofAMAbuYiUTXn21yLWyaYeDzAAikTY60="; })
(fetchNuGet { pname = "Microsoft.Kiota.Abstractions"; version = "1.7.8"; hash = "sha256-209eh7BsL2Y0SZZbj3ABZXZQeq5bFiGRA2k4Dia9nLs="; })
(fetchNuGet { pname = "Microsoft.Kiota.Abstractions"; version = "1.7.9"; hash = "sha256-zRAtEMarPRwJY985Morh+enZXrqO+gDpLH2K9HVCIQI="; })
(fetchNuGet { pname = "Microsoft.Kiota.Authentication.Azure"; version = "1.1.3"; hash = "sha256-eNfXJ4Ab+55c15w5QEHzUy0nkxXK5fhPSw+waiSxJ8k="; })
(fetchNuGet { pname = "Microsoft.Kiota.Cli.Commons"; version = "1.1.0"; hash = "sha256-+ieR78qQpeCLGo7TSEzSYE52zaBC6oASvPusOf2eHaY="; })
(fetchNuGet { pname = "Microsoft.Kiota.Http.HttpClientLibrary"; version = "1.3.6"; hash = "sha256-w79hmlcGlkky8HK8Cy24iWXhn1UdmQCpgIJ9n3Z3kHA="; })
(fetchNuGet { pname = "Microsoft.Kiota.Serialization.Form"; version = "1.1.3"; hash = "sha256-bY9XhBO618WaP8N3WWS7lKNkzsb0UG+0vyo85/ROk2s="; })
(fetchNuGet { pname = "Microsoft.Kiota.Serialization.Json"; version = "1.1.5"; hash = "sha256-BSWIlNwGkceO4WHFGmD0PSQhlDf0J4EAq+66LXOZkuI="; })
(fetchNuGet { pname = "Microsoft.Kiota.Serialization.Multipart"; version = "1.1.2"; hash = "sha256-co1iP+5YB9xdsfj73pzRh9PYWP/lVDzMv64klJeVvAs="; })
(fetchNuGet { pname = "Microsoft.Kiota.Serialization.Text"; version = "1.1.2"; hash = "sha256-TXTNr/15sJnGQ0qJuFGvu2apZHXRWtVcVjpAO2dLaEE="; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; hash = "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; hash = "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="; })
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; hash = "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="; })
(fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; hash = "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg="; })
(fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; hash = "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw="; })
(fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; hash = "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo="; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; hash = "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="; })
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; hash = "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; hash = "sha256-8yLKFt2wQxkEf7fNfzB+cPUCjYn2qbqNgQ1+EeY2h/I="; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; hash = "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI="; })
(fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; hash = "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU="; })
(fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; hash = "sha256-AYh39tgXJVFu8aLi9Y/4rK8yWMaza4S4eaxjfcuEEL4="; })
(fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; hash = "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE="; })
(fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; hash = "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk="; })
(fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; hash = "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8="; })
(fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; hash = "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ="; })
(fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; hash = "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4="; })
(fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; hash = "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM="; })
(fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; hash = "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4="; })
(fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; hash = "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA="; })
(fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; hash = "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs="; })
(fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; hash = "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM="; })
(fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; hash = "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4="; })
(fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; hash = "sha256-BgHxXCIbicVZtpgMimSXixhFC3V+p5ODqeljDjO8hCs="; })
(fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps="; })
(fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I="; })
(fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA="; })
(fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; hash = "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y="; })
(fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; hash = "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8="; })
(fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; hash = "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg="; })
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; hash = "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw="; })
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I="; })
(fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM="; })
(fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4="; })
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; hash = "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM="; })
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0="; })
(fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4="; })
(fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g="; })
(fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc="; })
(fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw="; })
(fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; hash = "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg="; })
(fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; hash = "sha256-AHkdKShTRHttqfMjmi+lPpTuCrM5vd/WRy6Kbtie190="; })
(fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; hash = "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI="; })
(fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; hash = "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I="; })
(fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; hash = "sha256-pHJ+I6i16MV6m77uhTC6GPY6jWGReE3SSP3fVB59ti0="; })
(fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; hash = "sha256-IvgOeA2JuBjKl5yAVGjPYMPDzs9phb3KANs95H9v1w4="; })
(fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; hash = "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="; })
(fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; hash = "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="; })
(fetchNuGet { pname = "Spectre.Console"; version = "0.48.0"; hash = "sha256-hr7BkVJ5v+NOPytlINjo+yoJetRUKmBhZbTMVKOMf2w="; })
(fetchNuGet { pname = "Springcomp.GPLEX.Runtime"; version = "1.2.4"; hash = "sha256-WrdQVnuoJMWD4q+j7qW5nKL1jjj/YKb2lafHMsKNS/Y="; })
(fetchNuGet { pname = "Springcomp.GPPG.Runtime"; version = "1.2.4"; hash = "sha256-M6JRE/uW8WwV8UsQi8ROKII+zFW+ROpvE9b1ig+kcic="; })
(fetchNuGet { pname = "Std.UriTemplate"; version = "0.0.50"; hash = "sha256-Wkxk3YQ3datFXVrPSuzBqtrWEmLkIQUeiBwuQb+E+aM="; })
(fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; hash = "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg="; })
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; hash = "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk="; })
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; hash = "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="; })
(fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; hash = "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI="; })
(fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta4.22272.1"; hash = "sha256-zSO+CYnMH8deBHDI9DHhCPj79Ce3GOzHCyH1/TiHxcc="; })
(fetchNuGet { pname = "System.CommandLine.Hosting"; version = "0.4.0-alpha.22272.1"; hash = "sha256-tmzZU+FBdao8Jp2v+K+HHfc9QXpGBr5EY4X8+dNPceY="; })
(fetchNuGet { pname = "System.CommandLine.NamingConventionBinder"; version = "2.0.0-beta4.22272.1"; hash = "sha256-Ffzs51XiFraSX1efQRO1IyiNraIgi8aOdkRRzCT6DB4="; })
(fetchNuGet { pname = "System.Console"; version = "4.3.0"; hash = "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo="; })
(fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; hash = "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; hash = "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw="; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; hash = "sha256-RY9uWSPdK2fgSwlj1OHBGBVo3ZvGQgBJNzAsS5OGMWc="; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.1"; hash = "sha256-Xi8wrUjVlioz//TPQjFHqcV/QGhTqnTfUcltsNlcCJ4="; })
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "8.0.0"; hash = "sha256-+aODaDEQMqla5RYZeq0Lh66j+xkPYxykrVvSCmJQ+Vs="; })
(fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; hash = "sha256-zUXIQtAFKbiUMKCrXzO4mOTD5EUphZzghBYKXprowSM="; })
(fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "8.0.0"; hash = "sha256-rt8xc3kddpQY4HEdghlBeOK4gdw5yIj4mcZhAVtk2/Y="; })
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; hash = "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y="; })
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; hash = "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q="; })
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; hash = "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="; })
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; hash = "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc="; })
(fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; hash = "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk="; })
(fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "7.3.1"; hash = "sha256-Si60aDtJSjvXvY5ZkVQKF3JzxAkmkAKOw5D/q8CwuyQ="; })
(fetchNuGet { pname = "System.IO"; version = "4.3.0"; hash = "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="; })
(fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; hash = "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA="; })
(fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; hash = "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs="; })
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; hash = "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw="; })
(fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; hash = "sha256-c9MlDKJfj63YRvl7brRBNs59olrmbL+G1A6oTS8ytEc="; })
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; hash = "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg="; })
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; hash = "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; hash = "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8="; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; hash = "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E="; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; hash = "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI="; })
(fetchNuGet { pname = "System.Memory.Data"; version = "1.0.2"; hash = "sha256-XiVrVQZQIz4NgjiK/wtH8iZhhOZ9MJ+X2hL2/8BrGN0="; })
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; hash = "sha256-UoBB7WPDp2Bne/fwxKF0nE8grJ6FzTMXdT/jfsphj8Q="; })
(fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; hash = "sha256-eGZwCBExWsnirWBHyp2sSSSXp6g7I6v53qNmwPgtJ5c="; })
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; hash = "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE="; })
(fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; hash = "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus="; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; hash = "sha256-qdSTIFgf2htPS+YhLGjAGiLN8igCYJnCCo6r78+Q+c8="; })
(fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; hash = "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q="; })
(fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; hash = "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM="; })
(fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; hash = "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; hash = "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU="; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; hash = "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA="; })
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; hash = "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I="; })
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; hash = "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk="; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; hash = "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM="; })
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.7.0"; hash = "sha256-GEtCGXwtOnkYejSV+Tfl+DqyGq5jTUaVyL9eMupMHBM="; })
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; hash = "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="; })
(fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; hash = "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; hash = "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I="; })
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; hash = "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="; })
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; hash = "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms="; })
(fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; hash = "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="; })
(fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; hash = "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA="; })
(fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; hash = "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc="; })
(fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; hash = "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="; })
(fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; hash = "sha256-Fua/rDwAqq4UByRVomAxMPmDBGd5eImRqHVQIeSxbks="; })
(fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; hash = "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8="; })
(fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; hash = "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw="; })
(fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; hash = "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ="; })
(fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; hash = "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss="; })
(fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; hash = "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4="; })
(fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; hash = "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318="; })
(fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.7.0"; hash = "sha256-dZfs5q3Ij1W1eJCfYjxI2o+41aSiFpaAugpoECaCOug="; })
(fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; hash = "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0="; })
(fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; hash = "sha256-rjudVUHdo8pNJg2EVEn0XxxwNo5h2EaYo+QboPkXlYk="; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; hash = "sha256-mbdLVUcEwe78p3ZnB6jYsizNEqxMaCAWI3tEQNhRQAE="; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; hash = "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; hash = "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg="; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; hash = "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc="; })
(fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; hash = "sha256-CUZOulSeRy1CGBm7mrNrTumA9od9peKiIDR/Nb1B4io="; })
(fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; hash = "sha256-UemDHGFoQIG7ObQwRluhVf6AgtQikfHEoPLC6gbFyRo="; })
(fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; hash = "sha256-IUQkQkV9po1LC0QsqrilqwNzPvnc+4eVvq+hCvq8fvE="; })
(fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; hash = "sha256-xA8PZwxX9iOJvPbfdi7LWjM2RMVJ7hmtEqS9JvgNsoM="; })
(fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; hash = "sha256-9AE/5ds4DqEfb0l+27fCBTSeYCdRWhxh2Bhg8IKvIuo="; })
(fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; hash = "sha256-XFcCHMW1u2/WujlWNHaIWkbW1wn8W4kI0QdrwPtWmow="; })
(fetchNuGet { pname = "System.Text.Json"; version = "8.0.1"; hash = "sha256-Y0ba+eTXdrJZgET0xaurt1nkKbQRNBhod+KMcg9IdR4="; })
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; hash = "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0="; })
(fetchNuGet { pname = "System.Threading"; version = "4.3.0"; hash = "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="; })
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; hash = "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; hash = "sha256-X2hQ5j+fxcmnm88Le/kSavjiGOmkcumBGTZKBLvorPc="; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; hash = "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="; })
(fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; hash = "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg="; })
(fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; hash = "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s="; })
(fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; hash = "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI="; })
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; hash = "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA="; })
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; hash = "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI="; })
]
+41
View File
@@ -0,0 +1,41 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
libsecret,
}:
buildDotnetModule rec {
pname = "msgraph-cli";
version = "v1.9.0";
src = fetchFromGitHub {
owner = "microsoftgraph";
repo = "msgraph-cli";
rev = version;
hash = "sha256-bpdxzVlQWQLNYTZHN25S6qa3NKHhDc+xV6NvzSNMVnQ=";
};
projectFile = "src/msgraph-cli.csproj";
nugetDeps = ./deps.nix;
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
runtimeDeps = [ libsecret ];
passthru.updateScript = ./update.sh;
meta = with lib; {
mainProgram = "mgc";
description = "Microsoft Graph CLI";
homepage = "https://github.com/microsoftgraph/msgraph-cli";
license = licenses.mit;
maintainers = with maintainers; [ nazarewk ];
platforms = [
"aarch64-darwin"
"x86_64-darwin"
"x86_64-linux"
];
};
}
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused nixfmt-rfc-style common-updater-scripts
set -eEuo pipefail
[ -z "${DEBUG:-}" ] || set -x
cd "${BASH_SOURCE[0]%/*}"
# run: nix-shell maintainers/scripts/update.nix --argstr package msgraph-cli
package_file="./package.nix"
pname="$(sed -nE 's/\s*pname = "(.*)".*/\1/p' "${package_file}")"
owner="$(sed -nE 's/\s*owner = "(.*)".*/\1/p' "${package_file}")"
repo="$(sed -nE 's/\s*repo = "(.*)".*/\1/p' "${package_file}")"
old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' "${package_file}")"
new_version="$(curl -s "https://api.github.com/repos/${owner}/${repo}/releases?per_page=1" | jq -r '.[0].name' | sed 's|^GCM ||')"
if [[ $new_version == "$old_version" ]]; then
echo "Up to date"
exit 0
fi
cd ../../../..
update-source-version "${repo}" "$new_version"
"$(nix-build -A "${pname}.fetch-deps" --no-out-link)"
+1 -1
View File
@@ -278,7 +278,7 @@ stdenv.mkDerivation rec {
mainProgram = "mullvad-browser";
homepage = "https://mullvad.net/en/browser";
platforms = attrNames sources;
maintainers = with maintainers; [ felschr panicgh ];
maintainers = with maintainers; [ felschr panicgh sigmasquadron ];
# MPL2.0+, GPL+, &c. While it's not entirely clear whether
# the compound is "libre" in a strict sense (some components place certain
# restrictions on redistribution), it's free enough for our purposes.
+1 -1
View File
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/tsirysndr/music-player";
changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = [ ];
maintainers = [ lib.maintainers.sigmasquadron ];
mainProgram = "music-player";
};
}
+13 -3
View File
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "nickel";
version = "1.8.1";
version = "1.9.0";
src = fetchFromGitHub {
owner = "tweag";
repo = "nickel";
rev = "refs/tags/${version}";
hash = "sha256-hlcF04m3SI66d1C9U1onog2QoEMfqtHb7V++47ZmeW4=";
hash = "sha256-chIpZqs1tyXk4YQBlF4K/Ofrn1CrijbYant9+SSppGU=";
};
cargoHash = "sha256-VFjZb7lsqOSt5Rc94dhS4Br/5i/HXPHZMqC1c0/LzHU=";
cargoHash = "sha256-MaMzwvvWP+vmdBVCefXI6dehuTyPcPW2b6KdarxjBjA=";
cargoBuildFlags = [ "-p nickel-lang-cli" "-p nickel-lang-lsp" ];
@@ -26,6 +26,16 @@ rustPlatform.buildRustPackage rec {
outputs = [ "out" "nls" ];
# This fixes the way comrak is defined as a dependency, without the sed the build fails:
#
# cargo metadata failure: error: Package `nickel-lang-core v0.10.0
# (/build/source/core)` does not have feature `comrak`. It has an optional
# dependency with that name, but that dependency uses the "dep:" syntax in
# the features table, so it does not have an implicit feature with that name.
preBuild = ''
sed -i 's/dep:comrak/comrak/' core/Cargo.toml
'';
postInstall = ''
mkdir -p $nls/bin
mv $out/bin/nls $nls/bin/nls
+2 -2
View File
@@ -3,13 +3,13 @@
buildNimPackage (finalAttrs: {
pname = "nimdow";
version = "0.7.39";
version = "0.7.40";
src = fetchFromGitHub {
owner = "avahe-kellenberger";
repo = "nimdow";
rev = "v${finalAttrs.version}";
hash = "sha256-9gYlVuKDHCs6yaY1b6dJgwQUJdko6npjom4ab7nKZ7w=";
hash = "sha256-Q+oUmQ2ABl2nOSnHJYCrqN7dees4JBZgkb9OF4XFr5M=";
};
lockFile = ./lock.json;
+119
View File
@@ -0,0 +1,119 @@
{
lib,
fetchFromGitHub,
flutter324,
autoPatchelfHook,
wrapGAppsHook3,
makeDesktopItem,
pkg-config,
copyDesktopItems,
alsa-lib,
libepoxy,
libpulseaudio,
libdrm,
mesa,
xdg-user-dirs,
libva,
libva1,
libvdpau,
buildGoModule,
}:
let
libopencc = buildGoModule rec {
pname = "libopencc";
version = "1.0.0";
src = fetchFromGitHub {
owner = "Predidit";
repo = "open_chinese_convert_bridge";
rev = "refs/tags/${version}";
hash = "sha256-kC5+rIBOcwn9POvQlKEzuYKKcbhuqVs+pFd4JSFgINQ=";
};
vendorHash = "sha256-ADODygC9VRCdeuxnkK4396yBny/ClRUdG3zAujPzpOM=";
buildPhase = ''
runHook preBuild
go build -buildmode=c-shared -o ./libopencc.so
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm0755 ./libopencc.so $out/lib/libopencc.so
runHook postInstall
'';
meta = {
homepage = "https://github.com/Predidit/open_chinese_convert_bridge";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ aucub ];
};
};
in
flutter324.buildFlutterApplication rec {
pname = "oneanime";
version = "1.3.6";
src = fetchFromGitHub {
owner = "Predidit";
repo = "oneAnime";
rev = "refs/tags/${version}";
hash = "sha256-CespZRb2JDc6FltEdibBOFd9BmkWGT8RSMbOC7cuA18=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
desktopItems = [
(makeDesktopItem {
name = "oneanime";
exec = "oneanime";
icon = "oneanime";
desktopName = "oneAnime";
})
];
nativeBuildInputs = [
pkg-config
autoPatchelfHook
wrapGAppsHook3
copyDesktopItems
];
buildInputs = [
alsa-lib
libepoxy
libpulseaudio
libdrm
mesa
];
postPatch = ''
substituteInPlace lib/pages/init_page.dart \
--replace-fail "lib/opencc.so" "${libopencc}/lib/libopencc.so"
'';
postInstall = ''
install -Dm0644 ./assets/images/logo/logo_android_2.png $out/share/pixmaps/oneanime.png
ln -s ${lib.getLib libva}/lib/libva.so.2 $out/app/${pname}/lib/libva.so.2
ln -s ${lib.getLib libva1}/lib/libva.so.1 $out/app/${pname}/lib/libva.so.1
ln -s ${lib.getLib libvdpau}/lib/libvdpau.so.1 $out/app/${pname}/lib/libvdpau.so.1
'';
extraWrapProgramArgs = ''
--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs ]}
'';
meta = {
description = "Anime1 third-party client with bullet screen";
homepage = "https://github.com/Predidit/oneAnime";
mainProgram = "oneanime";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ aucub ];
platforms = [ "x86_64-linux" ]; # mdk-sdk of nixpkgs currently only has x64
};
}
File diff suppressed because it is too large Load Diff
+53 -47
View File
@@ -1,48 +1,54 @@
{ alsa-lib
, at-spi2-atk
, autoPatchelfHook
, cairo
, cups
, dbus
, desktop-file-utils
, expat
, fetchurl
, gdk-pixbuf
, gtk3
, gvfs
, hicolor-icon-theme
, lib
, libdrm
, libglvnd
, libnotify
, libsForQt5
, libxkbcommon
, libgbm
, nspr
, nss
, openssl
, pango
, rpmextract
, stdenv
, systemd
, trash-cli
, vulkan-loader
, wrapGAppsHook3
, xdg-utils
, xorg
{
alsa-lib,
at-spi2-atk,
autoPatchelfHook,
cairo,
cups,
dbus,
desktop-file-utils,
expat,
fetchurl,
gdk-pixbuf,
gtk3,
gvfs,
hicolor-icon-theme,
lib,
libdrm,
libglvnd,
libnotify,
libsForQt5,
libxkbcommon,
libgbm,
nspr,
nss,
openssl,
pango,
rpmextract,
stdenv,
systemd,
trash-cli,
vulkan-loader,
wrapGAppsHook3,
xdg-utils,
xorg,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "plasticity";
version = "24.2.4";
version = "24.2.6";
src = fetchurl {
url = "https://github.com/nkallen/plasticity/releases/download/v${version}/Plasticity-${version}-1.x86_64.rpm";
hash = "sha256-Pwe1CqprRXqTN93ys247TGrkd0LGKuwrfGmupIN40uU=";
hash = "sha256-MEw7pmaDPOxhjeIHWumCxwESZri3gdXULIc7kRh9/BM=";
};
passthru.updateScript = ./update.sh;
nativeBuildInputs = [ wrapGAppsHook3 autoPatchelfHook rpmextract libgbm ];
nativeBuildInputs = [
wrapGAppsHook3
autoPatchelfHook
rpmextract
libgbm
];
buildInputs = [
alsa-lib
@@ -72,7 +78,7 @@ stdenv.mkDerivation rec {
runtimeDependencies = [
systemd
libglvnd
vulkan-loader #may help with nvidia users
vulkan-loader # may help with nvidia users
xorg.libX11
xorg.libxcb
xorg.libXcomposite
@@ -96,19 +102,19 @@ stdenv.mkDerivation rec {
"TD_DbEntities.tx"
"TD_DbIO.tx"
"WipeOut.tx"
];
];
installPhase = ''
runHook preInstall
installPhase = ''
runHook preInstall
mkdir $out
cd $out
rpmextract $src
mv $out/usr/* $out
rm -r $out/usr
mkdir $out
cd $out
rpmextract $src
mv $out/usr/* $out
rm -r $out/usr
runHook postInstall
'';
runHook postInstall
'';
#--use-gl=egl for it to use hardware rendering it seems. Otherwise there are terrible framerates
postInstall = ''
+2 -2
View File
@@ -16,14 +16,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ptyxis";
version = "47.4";
version = "47.5";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "chergert";
repo = "ptyxis";
rev = finalAttrs.version;
hash = "sha256-G2WesIaz+eYiDExyMi6Ww2cHMthuxAX5b+B68dz6Yb0=";
hash = "sha256-h5e+H4Tf7T1poM1Srf/ZINk5chScXNFLaEqtlMgrhHs=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -11,12 +11,12 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "raycast";
version = "1.86.0";
version = "1.87.2";
src = fetchurl {
name = "Raycast.dmg";
url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=universal";
hash = "sha256-UvMPRLCaGgunpVwoF0Nbz+7Gma7zQP+nMMh5Cvqn0MA=";
hash = "sha256-w4jrtrKCATUsFkMVsGee88pYiL1bahHaSy9emCh2GJE=";
};
dontPatch = true;

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