Merge staging-next into staging
This commit is contained in:
@@ -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 }}
|
||||
|
||||
@@ -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"`).
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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:'")
|
||||
|
||||
@@ -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 ""}'}]
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -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\"'"
|
||||
)
|
||||
'';
|
||||
}
|
||||
)
|
||||
+1
-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; [ ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
})
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -11,6 +11,7 @@ families=(
|
||||
"sans-devanagari"
|
||||
"sans-thai"
|
||||
"sans-thai-looped"
|
||||
"sans-sc"
|
||||
"sans-tc"
|
||||
"sans-kr"
|
||||
"sans-jp"
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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; {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 = [ "." ];
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ buildGo122Module rec {
|
||||
khaneliman
|
||||
paveloom
|
||||
starsep
|
||||
sigmasquadron
|
||||
];
|
||||
mainProgram = "lazygit";
|
||||
};
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
Executable
+64
@@ -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"
|
||||
)
|
||||
Generated
+220
@@ -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="; })
|
||||
]
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
Executable
+23
@@ -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)"
|
||||
@@ -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.
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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 = ''
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user