mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-30 17:49:58 +03:00
Merge master into haskell-updates
This commit is contained in:
commit
b0e44a6fa7
@ -565,7 +565,7 @@ Names of files and directories should be in lowercase, with dashes between words
|
||||
|
||||
- Do not use tab characters, i.e. configure your editor to use soft tabs. For instance, use `(setq-default indent-tabs-mode nil)` in Emacs. Everybody has different tab settings so it’s asking for trouble.
|
||||
|
||||
- Use `lowerCamelCase` for variable names, not `UpperCamelCase`. Note, this rule does not apply to package attribute names, which instead follow the rules in [](#sec-package-naming).
|
||||
- Use `lowerCamelCase` for variable names, not `UpperCamelCase`. Note, this rule does not apply to package attribute names, which instead follow the rules in [package naming](./pkgs/README.md#package-naming).
|
||||
|
||||
- Function calls with attribute set arguments are written as
|
||||
|
||||
|
@ -12,6 +12,8 @@ If you are packaging a Flutter desktop application, use [`buildFlutterApplicatio
|
||||
|
||||
If the upstream source is missing a `pubspec.lock` file, you'll have to vendor one and specify it using `pubspecLockFile`. If it is needed, one will be generated for you and printed when attempting to build the derivation.
|
||||
|
||||
The `depsListFile` must always be provided when packaging in Nixpkgs. It will be generated and printed if the derivation is attempted to be built without one. Alternatively, `autoDepsList` may be set to `true` only when outside of Nixpkgs, as it relies on import-from-derivation.
|
||||
|
||||
The `dart` commands run can be overridden through `pubGetScript` and `dartCompileCommand`, you can also add flags using `dartCompileFlags` or `dartJitFlags`.
|
||||
|
||||
Dart supports multiple [outputs types](https://dart.dev/tools/dart-compile#types-of-output), you can choose between them using `dartOutputType` (defaults to `exe`). If you want to override the binaries path or the source path they come from, you can use `dartEntryPoints`. Outputs that require a runtime will automatically be wrapped with the relevant runtime (`dartaotruntime` for `aot-snapshot`, `dart run` for `jit-snapshot` and `kernel`, `node` for `js`), this can be overridden through `dartRuntimeCommand`.
|
||||
@ -31,6 +33,7 @@ buildDartApplication rec {
|
||||
};
|
||||
|
||||
pubspecLockFile = ./pubspec.lock;
|
||||
depsListFile = ./deps.json;
|
||||
vendorHash = "sha256-Atm7zfnDambN/BmmUf4BG0yUz/y6xWzf0reDw3Ad41s=";
|
||||
}
|
||||
```
|
||||
@ -39,9 +42,7 @@ buildDartApplication rec {
|
||||
|
||||
The function `buildFlutterApplication` builds Flutter applications.
|
||||
|
||||
The deps.json file must always be provided when packaging in Nixpkgs. It will be generated and printed if the derivation is attempted to be built without one. Alternatively, `autoDepsList` may be set to `true` when outside of Nixpkgs, as it relies on import-from-derivation.
|
||||
|
||||
A `pubspec.lock` file must be available. See the [Dart documentation](#ssec-dart-applications) for more details.
|
||||
See the [Dart documentation](#ssec-dart-applications) for more details on required files and arguments.
|
||||
|
||||
```nix
|
||||
{ flutter, fetchFromGitHub }:
|
||||
|
@ -12,6 +12,7 @@
|
||||
| python310 | python3 | CPython 3.10 |
|
||||
| python311 | | CPython 3.11 |
|
||||
| python312 | | CPython 3.12 |
|
||||
| python313 | | CPython 3.13 |
|
||||
| pypy27 | pypy2, pypy | PyPy2.7 |
|
||||
| pypy39 | pypy3 | PyPy 3.9 |
|
||||
|
||||
|
@ -1274,6 +1274,9 @@
|
||||
github = "antonmosich";
|
||||
githubId = 27223336;
|
||||
name = "Anton Mosich";
|
||||
keys = [ {
|
||||
fingerprint = "F401 287C 324F 0A1C B321 657B 9B96 97B8 FB18 7D14";
|
||||
} ];
|
||||
};
|
||||
antono = {
|
||||
email = "self@antono.info";
|
||||
@ -3874,6 +3877,12 @@
|
||||
githubId = 50051176;
|
||||
name = "Daniel Rolls";
|
||||
};
|
||||
danielsidhion = {
|
||||
email = "nixpkgs@sidhion.com";
|
||||
github = "DanielSidhion";
|
||||
githubId = 160084;
|
||||
name = "Daniel Sidhion";
|
||||
};
|
||||
daniyalsuri6 = {
|
||||
email = "daniyal.suri@gmail.com";
|
||||
github = "daniyalsuri6";
|
||||
@ -6190,6 +6199,16 @@
|
||||
githubId = 45048741;
|
||||
name = "Alwanga Oyango";
|
||||
};
|
||||
galaxy = {
|
||||
email = "galaxy@dmc.chat";
|
||||
matrix = "@galaxy:mozilla.org";
|
||||
name = "The Galaxy";
|
||||
github = "ga1aksy";
|
||||
githubId = 148551648;
|
||||
keys = [{
|
||||
fingerprint = "48CA 3873 9E9F CA8E 76A0 835A E3DE CF85 4212 E1EA";
|
||||
}];
|
||||
};
|
||||
gal_bolle = {
|
||||
email = "florent.becker@ens-lyon.org";
|
||||
github = "FlorentBecker";
|
||||
@ -6622,6 +6641,12 @@
|
||||
githubId = 4656860;
|
||||
name = "Gaute Ravndal";
|
||||
};
|
||||
gray-heron = {
|
||||
email = "ave+nix@cezar.info";
|
||||
github = "gray-heron";
|
||||
githubId = 7032646;
|
||||
name = "Cezary Siwek";
|
||||
};
|
||||
graysonhead = {
|
||||
email = "grayson@graysonhead.net";
|
||||
github = "graysonhead";
|
||||
@ -7219,6 +7244,7 @@
|
||||
};
|
||||
hubble = {
|
||||
name = "Hubble the Wolverine";
|
||||
email = "hubblethewolverine@gmail.com";
|
||||
matrix = "@hubofeverything:bark.lgbt";
|
||||
github = "the-furry-hubofeverything";
|
||||
githubId = 53921912;
|
||||
@ -10923,6 +10949,12 @@
|
||||
githubId = 29855073;
|
||||
name = "Michael Colicchia";
|
||||
};
|
||||
massimogengarelli = {
|
||||
email = "massimo.gengarelli@gmail.com";
|
||||
github = "massix";
|
||||
githubId = 585424;
|
||||
name = "Massimo Gengarelli";
|
||||
};
|
||||
matejc = {
|
||||
email = "cotman.matej@gmail.com";
|
||||
github = "matejc";
|
||||
@ -13642,6 +13674,12 @@
|
||||
githubId = 152312;
|
||||
name = "Periklis Tsirakidis";
|
||||
};
|
||||
perstark = {
|
||||
email = "perstark.se@gmail.com";
|
||||
github = "perstarkse";
|
||||
githubId = 63069986;
|
||||
name = "Per Stark";
|
||||
};
|
||||
petercommand = {
|
||||
email = "petercommand@gmail.com";
|
||||
github = "petercommand";
|
||||
@ -13910,6 +13948,12 @@
|
||||
githubId = 610615;
|
||||
name = "Chih-Mao Chen";
|
||||
};
|
||||
pks = {
|
||||
email = "ps@pks.im";
|
||||
github = "pks-t";
|
||||
githubId = 4056630;
|
||||
name = "Patrick Steinhardt";
|
||||
};
|
||||
plabadens = {
|
||||
name = "Pierre Labadens";
|
||||
email = "labadens.pierre+nixpkgs@gmail.com";
|
||||
@ -17804,6 +17848,12 @@
|
||||
githubId = 858790;
|
||||
name = "Tobias Mayer";
|
||||
};
|
||||
tochiaha = {
|
||||
email = "tochiahan@proton.me";
|
||||
github = "Tochiaha";
|
||||
githubId = 74688871;
|
||||
name = "Tochukwu Ahanonu";
|
||||
};
|
||||
tokudan = {
|
||||
email = "git@danielfrank.net";
|
||||
github = "tokudan";
|
||||
@ -17849,6 +17899,10 @@
|
||||
githubId = 13155277;
|
||||
name = "Tom Houle";
|
||||
};
|
||||
tomkoid = {
|
||||
email = "tomaszierl@outlook.com";
|
||||
name = "Tomkoid";
|
||||
};
|
||||
tomodachi94 = {
|
||||
email = "tomodachi94+nixpkgs@protonmail.com";
|
||||
matrix = "@tomodachi94:matrix.org";
|
||||
@ -18004,6 +18058,12 @@
|
||||
githubId = 15064765;
|
||||
name = "tshaynik";
|
||||
};
|
||||
tsowell = {
|
||||
email = "tom@ldtlb.com";
|
||||
github = "tsowell";
|
||||
githubId = 4044033;
|
||||
name = "Thomas Sowell";
|
||||
};
|
||||
ttuegel = {
|
||||
email = "ttuegel@mailbox.org";
|
||||
github = "ttuegel";
|
||||
@ -19356,6 +19416,11 @@
|
||||
github = "ymeister";
|
||||
githubId = 47071325;
|
||||
};
|
||||
ymstnt = {
|
||||
name = "YMSTNT";
|
||||
github = "ymstnt";
|
||||
githubId = 21342713;
|
||||
};
|
||||
yoavlavi = {
|
||||
email = "yoav@yoavlavi.com";
|
||||
github = "yoav-lavi";
|
||||
|
@ -16,6 +16,7 @@ cyrussasl,https://github.com/JorjBauer/lua-cyrussasl.git,,,,,
|
||||
digestif,https://github.com/astoff/digestif.git,,,0.2-1,5.3,
|
||||
dkjson,,,,,,
|
||||
fennel,,,,,,misterio77
|
||||
ferris.nvim,,,,,,mrcjkb
|
||||
fifo,,,,,,
|
||||
fluent,,,,,,alerque
|
||||
gitsigns.nvim,https://github.com/lewis6991/gitsigns.nvim.git,,,,5.1,
|
||||
|
|
@ -113,6 +113,8 @@
|
||||
|
||||
- [virt-manager](https://virt-manager.org/), an UI for managing virtual machines in libvirt, is now available as `programs.virt-manager`.
|
||||
|
||||
- [Soft Serve](https://github.com/charmbracelet/soft-serve), a tasty, self-hostable Git server for the command line. Available as [services.soft-serve](#opt-services.soft-serve.enable).
|
||||
|
||||
## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
|
||||
|
||||
- `network-online.target` has been fixed to no longer time out for systems with `networking.useDHCP = true` and `networking.useNetworkd = true`.
|
||||
@ -341,6 +343,8 @@
|
||||
|
||||
- `jq` was updated to 1.7, its [first release in 5 years](https://github.com/jqlang/jq/releases/tag/jq-1.7).
|
||||
|
||||
- `zfs` was updated from 2.1.x to 2.2.0, [enabling newer kernel support and adding new features](https://github.com/openzfs/zfs/releases/tag/zfs-2.2.0).
|
||||
|
||||
- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
|
||||
|
||||
- DocBook option documentation is no longer supported, all module documentation now uses markdown.
|
||||
@ -398,6 +402,8 @@ The module update takes care of the new config syntax and the data itself (user
|
||||
|
||||
- Suricata was upgraded from 6.0 to 7.0 and no longer considers HTTP/2 support as experimental, see [upstream release notes](https://forum.suricata.io/t/suricata-7-0-0-released/3715) for more details.
|
||||
|
||||
- Cloud support in the `netdata` package is now disabled by default. To enable it use the `netdataCloud` package.
|
||||
|
||||
- `networking.nftables` now has the option `networking.nftables.table.<table>` to create tables
|
||||
and have them be updated atomically, instead of flushing the ruleset.
|
||||
|
||||
|
@ -791,6 +791,28 @@ class Machine:
|
||||
with self.nested(f"waiting for TCP port {port} on {addr}"):
|
||||
retry(port_is_open, timeout)
|
||||
|
||||
def wait_for_open_unix_socket(
|
||||
self, addr: str, is_datagram: bool = False, timeout: int = 900
|
||||
) -> None:
|
||||
"""
|
||||
Wait until a process is listening on the given UNIX-domain socket
|
||||
(default to a UNIX-domain stream socket).
|
||||
"""
|
||||
|
||||
nc_flags = [
|
||||
"-z",
|
||||
"-uU" if is_datagram else "-U",
|
||||
]
|
||||
|
||||
def socket_is_open(_: Any) -> bool:
|
||||
status, _ = self.execute(f"nc {' '.join(nc_flags)} {addr}")
|
||||
return status == 0
|
||||
|
||||
with self.nested(
|
||||
f"waiting for UNIX-domain {'datagram' if is_datagram else 'stream'} on '{addr}'"
|
||||
):
|
||||
retry(socket_is_open, timeout)
|
||||
|
||||
def wait_for_closed_port(
|
||||
self, port: int, addr: str = "localhost", timeout: int = 900
|
||||
) -> None:
|
||||
|
49
nixos/modules/config/fanout.nix
Normal file
49
nixos/modules/config/fanout.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.services.fanout;
|
||||
mknodCmds = n: lib.lists.imap0 (i: s:
|
||||
"mknod /dev/fanout${builtins.toString i} c $MAJOR ${builtins.toString i}"
|
||||
) (lib.lists.replicate n "");
|
||||
in
|
||||
{
|
||||
options.services.fanout = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "fanout");
|
||||
fanoutDevices = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 1;
|
||||
description = "Number of /dev/fanout devices";
|
||||
};
|
||||
bufferSize = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 16384;
|
||||
description = "Size of /dev/fanout buffer in bytes";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.fanout.out ];
|
||||
|
||||
boot.kernelModules = [ "fanout" ];
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options fanout buffersize=${builtins.toString cfg.bufferSize}
|
||||
'';
|
||||
|
||||
systemd.services.fanout = {
|
||||
description = "Bring up /dev/fanout devices";
|
||||
script = ''
|
||||
MAJOR=$(${pkgs.gnugrep}/bin/grep fanout /proc/devices | ${pkgs.gawk}/bin/awk '{print $1}')
|
||||
${lib.strings.concatLines (mknodCmds cfg.fanoutDevices)}
|
||||
'';
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
RemainAfterExit = "yes";
|
||||
Restart = "no";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
./config/appstream.nix
|
||||
./config/console.nix
|
||||
./config/debug-info.nix
|
||||
./config/fanout.nix
|
||||
./config/fonts/fontconfig.nix
|
||||
./config/fonts/fontdir.nix
|
||||
./config/fonts/ghostscript.nix
|
||||
@ -730,6 +731,7 @@
|
||||
./services/misc/signald.nix
|
||||
./services/misc/siproxd.nix
|
||||
./services/misc/snapper.nix
|
||||
./services/misc/soft-serve.nix
|
||||
./services/misc/sonarr.nix
|
||||
./services/misc/sourcehut
|
||||
./services/misc/spice-vdagentd.nix
|
||||
@ -1154,6 +1156,7 @@
|
||||
./services/security/hologram-agent.nix
|
||||
./services/security/hologram-server.nix
|
||||
./services/security/infnoise.nix
|
||||
./services/security/jitterentropy-rngd.nix
|
||||
./services/security/kanidm.nix
|
||||
./services/security/munge.nix
|
||||
./services/security/nginx-sso.nix
|
||||
|
@ -220,23 +220,20 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [
|
||||
(cfg.package.override {
|
||||
(cfg.package.override (old: {
|
||||
extraPrefs = cfg.autoConfig;
|
||||
extraNativeMessagingHosts = with pkgs; optionals nmh.ff2mpv [
|
||||
ff2mpv
|
||||
] ++ optionals nmh.euwebid [
|
||||
web-eid-app
|
||||
] ++ optionals nmh.gsconnect [
|
||||
gnomeExtensions.gsconnect
|
||||
] ++ optionals nmh.jabref [
|
||||
jabref
|
||||
] ++ optionals nmh.passff [
|
||||
passff-host
|
||||
];
|
||||
extraNativeMessagingHosts =
|
||||
old.extraNativeMessagingHosts or []
|
||||
++ optional nmh.ff2mpv pkgs.ff2mpv
|
||||
++ optional nmh.euwebid pkgs.web-eid-app
|
||||
++ optional nmh.gsconnect pkgs.gnomeExtensions.gsconnect
|
||||
++ optional nmh.jabref pkgs.jabref
|
||||
++ optional nmh.passff pkgs.passff-host;
|
||||
cfg = let
|
||||
# copy-pasted from the wrapper; TODO: figure out fix
|
||||
applicationName = cfg.package.binaryName or (lib.getName cfg.package);
|
||||
|
||||
oldCfg = old.cfg or {};
|
||||
nixpkgsConfig = pkgs.config.${applicationName} or {};
|
||||
optionConfig = cfg.wrapperConfig;
|
||||
nmhConfig = {
|
||||
@ -246,8 +243,8 @@ in
|
||||
enableUgetIntegrator = nmh.ugetIntegrator;
|
||||
enableFXCastBridge = nmh.fxCast;
|
||||
};
|
||||
in nixpkgsConfig // optionConfig // nmhConfig;
|
||||
})
|
||||
in oldCfg // nixpkgsConfig // optionConfig // nmhConfig;
|
||||
}))
|
||||
];
|
||||
|
||||
environment.etc =
|
||||
|
@ -67,16 +67,16 @@ with lib;
|
||||
mapredSiteDefault = mkOption {
|
||||
default = {
|
||||
"mapreduce.framework.name" = "yarn";
|
||||
"yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
|
||||
"mapreduce.map.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
|
||||
"mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
|
||||
"yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=${cfg.package}";
|
||||
"mapreduce.map.env" = "HADOOP_MAPRED_HOME=${cfg.package}";
|
||||
"mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=${cfg.package}";
|
||||
};
|
||||
defaultText = literalExpression ''
|
||||
{
|
||||
"mapreduce.framework.name" = "yarn";
|
||||
"yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
|
||||
"mapreduce.map.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
|
||||
"mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
|
||||
"yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}";
|
||||
"mapreduce.map.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}";
|
||||
"mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}";
|
||||
}
|
||||
'';
|
||||
type = types.attrsOf types.anything;
|
||||
@ -154,13 +154,13 @@ with lib;
|
||||
};
|
||||
|
||||
log4jProperties = mkOption {
|
||||
default = "${cfg.package}/lib/${cfg.package.untarDir}/etc/hadoop/log4j.properties";
|
||||
default = "${cfg.package}/etc/hadoop/log4j.properties";
|
||||
defaultText = literalExpression ''
|
||||
"''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}/etc/hadoop/log4j.properties"
|
||||
"''${config.${opt.package}}/etc/hadoop/log4j.properties"
|
||||
'';
|
||||
type = types.path;
|
||||
example = literalExpression ''
|
||||
"''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
|
||||
"''${pkgs.hadoop}/etc/hadoop/log4j.properties";
|
||||
'';
|
||||
description = lib.mdDoc "log4j.properties file added to HADOOP_CONF_DIR";
|
||||
};
|
||||
|
@ -160,7 +160,7 @@ in
|
||||
umount /run/wrappers/yarn-nodemanager/cgroup/cpu || true
|
||||
rm -rf /run/wrappers/yarn-nodemanager/ || true
|
||||
mkdir -p /run/wrappers/yarn-nodemanager/{bin,etc/hadoop,cgroup/cpu}
|
||||
cp ${cfg.package}/lib/${cfg.package.untarDir}/bin/container-executor /run/wrappers/yarn-nodemanager/bin/
|
||||
cp ${cfg.package}/bin/container-executor /run/wrappers/yarn-nodemanager/bin/
|
||||
chgrp hadoop /run/wrappers/yarn-nodemanager/bin/container-executor
|
||||
chmod 6050 /run/wrappers/yarn-nodemanager/bin/container-executor
|
||||
cp ${hadoopConf}/container-executor.cfg /run/wrappers/yarn-nodemanager/etc/hadoop/
|
||||
|
@ -187,29 +187,41 @@ in
|
||||
Group = "asf";
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
Type = "simple";
|
||||
ExecStart = "${cfg.package}/bin/ArchiSteamFarm --path ${cfg.dataDir} --process-required --no-restart --service --no-config-migrate";
|
||||
ExecStart = "${lib.getExe cfg.package} --no-restart --process-required --service --system-required --path ${cfg.dataDir}";
|
||||
Restart = "always";
|
||||
|
||||
# mostly copied from the default systemd service
|
||||
PrivateTmp = true;
|
||||
# copied from the default systemd service at
|
||||
# https://github.com/JustArchiNET/ArchiSteamFarm/blob/main/ArchiSteamFarm/overlay/variant-base/linux/ArchiSteamFarm%40.service
|
||||
CapabilityBoundingSet = "";
|
||||
DevicePolicy = "closed";
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateIPC = true;
|
||||
PrivateMounts = true;
|
||||
PrivateTmp = true; # instead of rw /tmp
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "full";
|
||||
ProtectSystem = "strict";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = "AF_INET AF_INET6";
|
||||
RestrictAddressFamilies = "AF_INET AF_INET6 AF_NETLINK AF_UNIX";
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
UMask = "0077";
|
||||
|
||||
# we luckily already have systemd v247+
|
||||
SecureBits = "noroot-locked";
|
||||
SystemCallFilter = [ "@system-service" "~@privileged" ];
|
||||
}
|
||||
];
|
||||
|
||||
|
99
nixos/modules/services/misc/soft-serve.nix
Normal file
99
nixos/modules/services/misc/soft-serve.nix
Normal file
@ -0,0 +1,99 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.soft-serve;
|
||||
configFile = format.generate "config.yaml" cfg.settings;
|
||||
format = pkgs.formats.yaml { };
|
||||
docUrl = "https://charm.sh/blog/self-hosted-soft-serve/";
|
||||
stateDir = "/var/lib/soft-serve";
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.soft-serve = {
|
||||
enable = mkEnableOption "Enable soft-serve service";
|
||||
|
||||
package = mkPackageOption pkgs "soft-serve" { };
|
||||
|
||||
settings = mkOption {
|
||||
type = format.type;
|
||||
default = { };
|
||||
description = mdDoc ''
|
||||
The contents of the configuration file.
|
||||
|
||||
See <${docUrl}>.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
{
|
||||
name = "dadada's repos";
|
||||
log_format = "text";
|
||||
ssh = {
|
||||
listen_addr = ":23231";
|
||||
public_url = "ssh://localhost:23231";
|
||||
max_timeout = 30;
|
||||
idle_timeout = 120;
|
||||
};
|
||||
stats.listen_addr = ":23233";
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
# The config file has to be inside the state dir
|
||||
"L+ ${stateDir}/config.yaml - - - - ${configFile}"
|
||||
];
|
||||
|
||||
systemd.services.soft-serve = {
|
||||
description = "Soft Serve git server";
|
||||
documentation = [ docUrl ];
|
||||
requires = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment.SOFT_SERVE_DATA_PATH = stateDir;
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
DynamicUser = true;
|
||||
Restart = "always";
|
||||
ExecStart = "${getExe cfg.package} serve";
|
||||
StateDirectory = "soft-serve";
|
||||
WorkingDirectory = stateDir;
|
||||
RuntimeDirectory = "soft-serve";
|
||||
RuntimeDirectoryMode = "0750";
|
||||
ProcSubset = "pid";
|
||||
ProtectProc = "invisible";
|
||||
UMask = "0027";
|
||||
CapabilityBoundingSet = "";
|
||||
ProtectHome = true;
|
||||
PrivateDevices = true;
|
||||
PrivateUsers = true;
|
||||
ProtectHostname = true;
|
||||
ProtectClock = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
RestrictRealtime = true;
|
||||
RemoveIPC = true;
|
||||
PrivateMounts = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@cpu-emulation @debug @keyring @module @mount @obsolete @privileged @raw-io @reboot @setuid @swap"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = [ maintainers.dadada ];
|
||||
}
|
@ -4,6 +4,7 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.networking.networkmanager;
|
||||
ini = pkgs.formats.ini { };
|
||||
|
||||
delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [ ];
|
||||
|
||||
@ -379,6 +380,74 @@ in
|
||||
https://modemmanager.org/docs/modemmanager/fcc-unlock/#integration-with-third-party-fcc-unlock-tools.
|
||||
'';
|
||||
};
|
||||
ensureProfiles = {
|
||||
profiles = with lib.types; mkOption {
|
||||
type = attrsOf (submodule {
|
||||
freeformType = ini.type;
|
||||
|
||||
options = {
|
||||
connection = {
|
||||
id = lib.mkOption {
|
||||
type = str;
|
||||
description = "This is the name that will be displayed by NetworkManager and GUIs.";
|
||||
};
|
||||
type = lib.mkOption {
|
||||
type = str;
|
||||
description = "The connection type defines the connection kind, like vpn, wireguard, gsm, wifi and more.";
|
||||
example = "vpn";
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
apply = (lib.filterAttrsRecursive (n: v: v != { }));
|
||||
default = { };
|
||||
example = {
|
||||
home-wifi = {
|
||||
connection = {
|
||||
id = "home-wifi";
|
||||
type = "wifi";
|
||||
permissions = "";
|
||||
};
|
||||
wifi = {
|
||||
mac-address-blacklist = "";
|
||||
mode = "infrastructure";
|
||||
ssid = "Home Wi-Fi";
|
||||
};
|
||||
wifi-security = {
|
||||
auth-alg = "open";
|
||||
key-mgmt = "wpa-psk";
|
||||
psk = "$HOME_WIFI_PASSWORD";
|
||||
};
|
||||
ipv4 = {
|
||||
dns-search = "";
|
||||
method = "auto";
|
||||
};
|
||||
ipv6 = {
|
||||
addr-gen-mode = "stable-privacy";
|
||||
dns-search = "";
|
||||
method = "auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
description = lib.mdDoc ''
|
||||
Declaratively define NetworkManager profiles. You can find information about the generated file format [here](https://networkmanager.dev/docs/api/latest/nm-settings-keyfile.html) and [here](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/assembly_networkmanager-connection-profiles-in-keyfile-format_configuring-and-managing-networking).
|
||||
You current profiles which are most likely stored in `/etc/NetworkManager/system-connections` and there is [a tool](https://github.com/janik-haag/nm2nix) to convert them to the needed nix code.
|
||||
If you add a new ad-hoc connection via a GUI or nmtui or anything similar it should just work together with the declarative ones.
|
||||
And if you edit a declarative profile NetworkManager will move it to the persistent storage and treat it like a ad-hoc one,
|
||||
but there will be two profiles as soon as the systemd unit from this option runs again which can be confusing since NetworkManager tools will start displaying two profiles with the same name and probably a bit different settings depending on what you edited.
|
||||
A profile won't be deleted even if it's removed from the config until the system reboots because that's when NetworkManager clears it's temp directory.
|
||||
'';
|
||||
};
|
||||
environmentFiles = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.path;
|
||||
example = [ "/run/secrets/network-manager.env" ];
|
||||
description = lib.mdDoc ''
|
||||
Files to load as environment file. Environment variables from this file
|
||||
will be substituted into the static configuration file using [envsubst](https://github.com/a8m/envsubst).
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -507,6 +576,30 @@ in
|
||||
aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
|
||||
};
|
||||
|
||||
systemd.services.NetworkManager-ensure-profiles = mkIf (cfg.ensureProfiles.profiles != { }) {
|
||||
description = "Ensure that NetworkManager declarative profiles are created";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
before = [ "network-online.target" ];
|
||||
script = let
|
||||
path = id: "/run/NetworkManager/system-connections/${id}.nmconnection";
|
||||
in ''
|
||||
mkdir -p /run/NetworkManager/system-connections
|
||||
'' + lib.concatMapStringsSep "\n"
|
||||
(profile: ''
|
||||
${pkgs.envsubst}/bin/envsubst -i ${ini.generate (lib.escapeShellArg profile.n) profile.v} > ${path (lib.escapeShellArg profile.n)}
|
||||
'') (lib.mapAttrsToList (n: v: { inherit n v; }) cfg.ensureProfiles.profiles)
|
||||
+ ''
|
||||
if systemctl is-active --quiet NetworkManager; then
|
||||
${pkgs.networkmanager}/bin/nmcli connection reload
|
||||
fi
|
||||
'';
|
||||
serviceConfig = {
|
||||
EnvironmentFile = cfg.ensureProfiles.environmentFiles;
|
||||
UMask = "0177";
|
||||
Type = "oneshot";
|
||||
};
|
||||
};
|
||||
|
||||
# Turn off NixOS' network management when networking is managed entirely by NetworkManager
|
||||
networking = mkMerge [
|
||||
(mkIf (!delegateWireless) {
|
||||
|
@ -103,9 +103,9 @@ in
|
||||
};
|
||||
|
||||
bantime = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
example = "10m";
|
||||
default = "10m";
|
||||
type = types.str;
|
||||
example = "1h";
|
||||
description = lib.mdDoc "Number of seconds that a host is banned.";
|
||||
};
|
||||
|
||||
|
18
nixos/modules/services/security/jitterentropy-rngd.nix
Normal file
18
nixos/modules/services/security/jitterentropy-rngd.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{ lib, config, pkgs, ... }:
|
||||
let
|
||||
cfg = config.services.jitterentropy-rngd;
|
||||
in
|
||||
{
|
||||
options.services.jitterentropy-rngd = {
|
||||
enable =
|
||||
lib.mkEnableOption (lib.mdDoc "jitterentropy-rngd service configuration");
|
||||
package = lib.mkPackageOptionMD pkgs "jitterentropy-rngd" { };
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.services."jitterentropy".wantedBy = [ "basic.target" ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ thillux ];
|
||||
}
|
@ -329,7 +329,7 @@ let
|
||||
listenString = { addr, port, ssl, proxyProtocol ? false, extraParameters ? [], ... }:
|
||||
# UDP listener for QUIC transport protocol.
|
||||
(optionalString (ssl && vhost.quic) ("
|
||||
listen ${addr}:${toString port} quic "
|
||||
listen ${addr}${optionalString (port != null) ":${toString port}"} quic "
|
||||
+ optionalString vhost.default "default_server "
|
||||
+ optionalString vhost.reuseport "reuseport "
|
||||
+ optionalString (extraParameters != []) (concatStringsSep " "
|
||||
@ -338,7 +338,7 @@ let
|
||||
in filter isCompatibleParameter extraParameters))
|
||||
+ ";"))
|
||||
+ "
|
||||
listen ${addr}:${toString port} "
|
||||
listen ${addr}${optionalString (port != null) ":${toString port}"} "
|
||||
+ optionalString (ssl && vhost.http2 && oldHTTP2) "http2 "
|
||||
+ optionalString ssl "ssl "
|
||||
+ optionalString vhost.default "default_server "
|
||||
|
@ -31,12 +31,12 @@ with lib;
|
||||
options = {
|
||||
addr = mkOption {
|
||||
type = str;
|
||||
description = lib.mdDoc "IP address.";
|
||||
description = lib.mdDoc "Listen address.";
|
||||
};
|
||||
port = mkOption {
|
||||
type = port;
|
||||
type = types.nullOr port;
|
||||
description = lib.mdDoc "Port number.";
|
||||
default = 80;
|
||||
default = null;
|
||||
};
|
||||
ssl = mkOption {
|
||||
type = bool;
|
||||
@ -60,6 +60,7 @@ with lib;
|
||||
example = [
|
||||
{ addr = "195.154.1.1"; port = 443; ssl = true; }
|
||||
{ addr = "192.154.1.1"; port = 80; }
|
||||
{ addr = "unix:/var/run/nginx.sock"; }
|
||||
];
|
||||
description = lib.mdDoc ''
|
||||
Listen addresses and ports for this virtual host.
|
||||
|
@ -358,7 +358,7 @@ in {
|
||||
++ lib.optional (cfg.enableTpm2 && !(pkgs.stdenv.hostPlatform.isRiscV64 || pkgs.stdenv.hostPlatform.isArmv7)) "tpm-crb";
|
||||
|
||||
boot.initrd.systemd = {
|
||||
initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package] ++ config.system.fsPackages;
|
||||
initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package];
|
||||
extraBin = {
|
||||
less = "${pkgs.less}/bin/less";
|
||||
mount = "${cfg.package.util-linux}/bin/mount";
|
||||
|
@ -52,34 +52,37 @@ in
|
||||
config = mkMerge [
|
||||
(mkIf enableBtrfs {
|
||||
system.fsPackages = [ pkgs.btrfs-progs ];
|
||||
})
|
||||
|
||||
boot.initrd.kernelModules = mkIf inInitrd [ "btrfs" ];
|
||||
boot.initrd.availableKernelModules = mkIf inInitrd (
|
||||
(mkIf inInitrd {
|
||||
boot.initrd.kernelModules = [ "btrfs" ];
|
||||
boot.initrd.availableKernelModules =
|
||||
[ "crc32c" ]
|
||||
++ optionals (config.boot.kernelPackages.kernel.kernelAtLeast "5.5") [
|
||||
# Needed for mounting filesystems with new checksums
|
||||
"xxhash_generic"
|
||||
"blake2b_generic"
|
||||
"sha256_generic" # Should be baked into our kernel, just to be sure
|
||||
]
|
||||
);
|
||||
];
|
||||
|
||||
boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
|
||||
boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable)
|
||||
''
|
||||
copy_bin_and_libs ${pkgs.btrfs-progs}/bin/btrfs
|
||||
ln -sv btrfs $out/bin/btrfsck
|
||||
ln -sv btrfsck $out/bin/fsck.btrfs
|
||||
'';
|
||||
|
||||
boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
|
||||
boot.initrd.extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable)
|
||||
''
|
||||
$out/bin/btrfs --version
|
||||
'';
|
||||
|
||||
boot.initrd.postDeviceCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
|
||||
boot.initrd.postDeviceCommands = mkIf (!config.boot.initrd.systemd.enable)
|
||||
''
|
||||
btrfs device scan
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.initrdBin = [ pkgs.btrfs-progs ];
|
||||
})
|
||||
|
||||
(mkIf enableAutoScrub {
|
||||
|
@ -21,5 +21,7 @@ in
|
||||
copy_bin_and_libs ${pkgs.cifs-utils}/sbin/mount.cifs
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.extraBin."mount.cifs" = mkIf inInitrd "${pkgs.cifs-utils}/sbin/mount.cifs";
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -25,5 +25,7 @@ in
|
||||
ln -sv e2fsck $out/bin/fsck.ext4
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.initrdBin = lib.mkIf inInitrd [ pkgs.e2fsprogs ];
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -16,5 +16,7 @@ in
|
||||
boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable) ''
|
||||
copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/fsck.f2fs
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.initrdBin = mkIf inInitrd [ pkgs.f2fs-tools ];
|
||||
};
|
||||
}
|
||||
|
@ -15,5 +15,7 @@ in
|
||||
boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable) ''
|
||||
copy_bin_and_libs ${pkgs.jfsutils}/sbin/fsck.jfs
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.initrdBin = mkIf inInitrd [ pkgs.jfsutils ];
|
||||
};
|
||||
}
|
||||
|
@ -21,5 +21,7 @@ in
|
||||
ln -s reiserfsck $out/bin/fsck.reiserfs
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.initrdBin = mkIf inInitrd [ pkgs.reiserfsprogs ];
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -21,5 +21,7 @@ in
|
||||
ln -sv dosfsck $out/bin/fsck.vfat
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.extraBin = mkIf inInitrd [ pkgs.dosfstools ];
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -26,5 +26,7 @@ in
|
||||
''
|
||||
sed -i -e 's,^#!.*,#!'$out/bin/sh, $out/bin/fsck.xfs
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.initrdBin = mkIf inInitrd [ pkgs.xfsprogs.bin ];
|
||||
};
|
||||
}
|
||||
|
@ -90,12 +90,17 @@ let
|
||||
|
||||
getPoolMounts = prefix: pool:
|
||||
let
|
||||
poolFSes = getPoolFilesystems pool;
|
||||
|
||||
# Remove the "/" suffix because even though most mountpoints
|
||||
# won't have it, the "/" mountpoint will, and we can't have the
|
||||
# trailing slash in "/sysroot/" in stage 1.
|
||||
mountPoint = fs: escapeSystemdPath (prefix + (lib.removeSuffix "/" fs.mountPoint));
|
||||
|
||||
hasUsr = lib.any (fs: fs.mountPoint == "/usr") poolFSes;
|
||||
in
|
||||
map (x: "${mountPoint x}.mount") (getPoolFilesystems pool);
|
||||
map (x: "${mountPoint x}.mount") poolFSes
|
||||
++ lib.optional hasUsr "sysusr-usr.mount";
|
||||
|
||||
getKeyLocations = pool: if isBool cfgZfs.requestEncryptionCredentials then {
|
||||
hasKeys = cfgZfs.requestEncryptionCredentials;
|
||||
@ -632,7 +637,8 @@ in
|
||||
targets.zfs-import.wantedBy = [ "zfs.target" ];
|
||||
targets.zfs.wantedBy = [ "initrd.target" ];
|
||||
extraBin = {
|
||||
# zpool and zfs are already in thanks to fsPackages
|
||||
zpool = "${cfgZfs.package}/sbin/zpool";
|
||||
zfs = "${cfgZfs.package}/sbin/zfs";
|
||||
awk = "${pkgs.gawk}/bin/awk";
|
||||
};
|
||||
};
|
||||
|
@ -267,6 +267,7 @@ let
|
||||
};
|
||||
|
||||
storeImage = import ../../lib/make-disk-image.nix {
|
||||
name = "nix-store-image";
|
||||
inherit pkgs config lib;
|
||||
additionalPaths = [ regInfo ];
|
||||
format = "qcow2";
|
||||
|
@ -272,6 +272,7 @@ in {
|
||||
fail2ban = handleTest ./fail2ban.nix { };
|
||||
fakeroute = handleTest ./fakeroute.nix {};
|
||||
fancontrol = handleTest ./fancontrol.nix {};
|
||||
fanout = handleTest ./fanout.nix {};
|
||||
fcitx5 = handleTest ./fcitx5 {};
|
||||
fenics = handleTest ./fenics.nix {};
|
||||
ferm = handleTest ./ferm.nix {};
|
||||
@ -559,6 +560,7 @@ in {
|
||||
nginx-sso = handleTest ./nginx-sso.nix {};
|
||||
nginx-status-page = handleTest ./nginx-status-page.nix {};
|
||||
nginx-tmpdir = handleTest ./nginx-tmpdir.nix {};
|
||||
nginx-unix-socket = handleTest ./nginx-unix-socket.nix {};
|
||||
nginx-variants = handleTest ./nginx-variants.nix {};
|
||||
nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
|
||||
nitter = handleTest ./nitter.nix {};
|
||||
@ -732,6 +734,7 @@ in {
|
||||
snapper = handleTest ./snapper.nix {};
|
||||
snipe-it = runTest ./web-apps/snipe-it.nix;
|
||||
soapui = handleTest ./soapui.nix {};
|
||||
soft-serve = handleTest ./soft-serve.nix {};
|
||||
sogo = handleTest ./sogo.nix {};
|
||||
solanum = handleTest ./solanum.nix {};
|
||||
sonarr = handleTest ./sonarr.nix {};
|
||||
|
30
nixos/tests/fanout.nix
Normal file
30
nixos/tests/fanout.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ system ? builtins.currentSystem
|
||||
, config ? {}
|
||||
, pkgs ? import ../.. { inherit system config; }
|
||||
}:
|
||||
import ./make-test-python.nix ({lib, pkgs, ...}: {
|
||||
name = "fanout";
|
||||
meta.maintainers = [ lib.maintainers.therishidesai ];
|
||||
|
||||
nodes = let
|
||||
cfg = { ... }: {
|
||||
services.fanout = {
|
||||
enable = true;
|
||||
fanoutDevices = 2;
|
||||
bufferSize = 8192;
|
||||
};
|
||||
};
|
||||
in {
|
||||
machine = cfg;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
# mDNS.
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
machine.succeed("test -c /dev/fanout0")
|
||||
machine.succeed("test -c /dev/fanout1")
|
||||
'';
|
||||
})
|
@ -249,7 +249,7 @@ import ../make-test-python.nix ({ package, ... }: {
|
||||
assert "standby" in client.succeed("sudo -u yarn yarn rmadmin -getAllServiceState")
|
||||
client.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
|
||||
|
||||
assert "Estimated value of Pi is" in client.succeed("HADOOP_USER_NAME=hdfs yarn jar $(readlink $(which yarn) | sed -r 's~bin/yarn~lib/hadoop-*/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar~g') pi 2 10")
|
||||
assert "Estimated value of Pi is" in client.succeed("HADOOP_USER_NAME=hdfs yarn jar $(readlink $(which yarn) | sed -r 's~bin/yarn~share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar~g') pi 2 10")
|
||||
assert "SUCCEEDED" in client.succeed("yarn application -list -appStates FINISHED")
|
||||
'';
|
||||
})
|
||||
|
@ -690,6 +690,9 @@ in {
|
||||
"zpool create rpool /dev/vda2",
|
||||
"zfs create -o mountpoint=legacy rpool/root",
|
||||
"mount -t zfs rpool/root /mnt",
|
||||
"zfs create -o mountpoint=legacy rpool/root/usr",
|
||||
"mkdir /mnt/usr",
|
||||
"mount -t zfs rpool/root/usr /mnt/usr",
|
||||
"udevadm settle",
|
||||
)
|
||||
'';
|
||||
|
27
nixos/tests/nginx-unix-socket.nix
Normal file
27
nixos/tests/nginx-unix-socket.nix
Normal file
@ -0,0 +1,27 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
let
|
||||
nginxSocketPath = "/var/run/nginx/test.sock";
|
||||
in
|
||||
{
|
||||
name = "nginx-unix-socket";
|
||||
|
||||
nodes = {
|
||||
webserver = { pkgs, lib, ... }: {
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts.localhost = {
|
||||
serverName = "localhost";
|
||||
listen = [{ addr = "unix:${nginxSocketPath}"; }];
|
||||
locations."/test".return = "200 'foo'";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
webserver.wait_for_unit("nginx")
|
||||
webserver.wait_for_open_unix_socket("${nginxSocketPath}")
|
||||
|
||||
webserver.succeed("curl --fail --silent --unix-socket '${nginxSocketPath}' http://localhost/test | grep '^foo$'")
|
||||
'';
|
||||
})
|
102
nixos/tests/soft-serve.nix
Normal file
102
nixos/tests/soft-serve.nix
Normal file
@ -0,0 +1,102 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
let
|
||||
inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
|
||||
sshPort = 8231;
|
||||
httpPort = 8232;
|
||||
statsPort = 8233;
|
||||
gitPort = 8418;
|
||||
in
|
||||
{
|
||||
name = "soft-serve";
|
||||
meta.maintainers = with lib.maintainers; [ dadada ];
|
||||
nodes = {
|
||||
client = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
curl
|
||||
git
|
||||
openssh
|
||||
];
|
||||
environment.etc.sshKey = {
|
||||
source = snakeOilPrivateKey;
|
||||
mode = "0600";
|
||||
};
|
||||
};
|
||||
|
||||
server =
|
||||
{ config, ... }:
|
||||
{
|
||||
services.soft-serve = {
|
||||
enable = true;
|
||||
settings = {
|
||||
name = "TestServer";
|
||||
ssh.listen_addr = ":${toString sshPort}";
|
||||
git.listen_addr = ":${toString gitPort}";
|
||||
http.listen_addr = ":${toString httpPort}";
|
||||
stats.listen_addr = ":${toString statsPort}";
|
||||
initial_admin_keys = [ snakeOilPublicKey ];
|
||||
};
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [ sshPort httpPort statsPort ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ ... }:
|
||||
''
|
||||
SSH_PORT = ${toString sshPort}
|
||||
HTTP_PORT = ${toString httpPort}
|
||||
STATS_PORT = ${toString statsPort}
|
||||
KEY = "${snakeOilPublicKey}"
|
||||
SSH_KEY = "/etc/sshKey"
|
||||
SSH_COMMAND = f"ssh -p {SSH_PORT} -i {SSH_KEY} -o StrictHostKeyChecking=no"
|
||||
TEST_DIR = "/tmp/test"
|
||||
GIT = f"git -C {TEST_DIR}"
|
||||
|
||||
for machine in client, server:
|
||||
machine.wait_for_unit("network.target")
|
||||
|
||||
server.wait_for_unit("soft-serve.service")
|
||||
server.wait_for_open_port(SSH_PORT)
|
||||
|
||||
with subtest("Get info"):
|
||||
status, test = client.execute(f"{SSH_COMMAND} server info")
|
||||
if status != 0:
|
||||
raise Exception("Failed to get SSH info")
|
||||
key = " ".join(KEY.split(" ")[0:2])
|
||||
if not key in test:
|
||||
raise Exception("Admin key must be configured correctly")
|
||||
|
||||
with subtest("Create user"):
|
||||
client.succeed(f"{SSH_COMMAND} server user create beatrice")
|
||||
client.succeed(f"{SSH_COMMAND} server user info beatrice")
|
||||
|
||||
with subtest("Create repo"):
|
||||
client.succeed(f"git init {TEST_DIR}")
|
||||
client.succeed(f"{GIT} config --global user.email you@example.com")
|
||||
client.succeed(f"touch {TEST_DIR}/foo")
|
||||
client.succeed(f"{GIT} add foo")
|
||||
client.succeed(f"{GIT} commit --allow-empty -m test")
|
||||
client.succeed(f"{GIT} remote add origin git@server:test")
|
||||
client.succeed(f"GIT_SSH_COMMAND='{SSH_COMMAND}' {GIT} push -u origin master")
|
||||
client.execute("rm -r /tmp/test")
|
||||
|
||||
server.wait_for_open_port(HTTP_PORT)
|
||||
|
||||
with subtest("Clone over HTTP"):
|
||||
client.succeed(f"curl --connect-timeout 10 http://server:{HTTP_PORT}/")
|
||||
client.succeed(f"git clone http://server:{HTTP_PORT}/test /tmp/test")
|
||||
client.execute("rm -r /tmp/test")
|
||||
|
||||
with subtest("Clone over SSH"):
|
||||
client.succeed(f"GIT_SSH_COMMAND='{SSH_COMMAND}' git clone git@server:test /tmp/test")
|
||||
client.execute("rm -r /tmp/test")
|
||||
|
||||
with subtest("Get stats over HTTP"):
|
||||
server.wait_for_open_port(STATS_PORT)
|
||||
status, test = client.execute(f"curl --connect-timeout 10 http://server:{STATS_PORT}/metrics")
|
||||
if status != 0:
|
||||
raise Exception("Failed to get metrics from status port")
|
||||
if not "go_gc_duration_seconds_count" in test:
|
||||
raise Exception("Metrics did not contain key 'go_gc_duration_seconds_count'")
|
||||
'';
|
||||
})
|
@ -113,8 +113,6 @@ let
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
# TODO: Remove this when upgrading stable to zfs 2.2.0
|
||||
unstable = ${if enableUnstable then "True" else "False"};
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed(
|
||||
"zpool status",
|
||||
@ -136,8 +134,6 @@ let
|
||||
machine.crash()
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("zfs set sharesmb=on rpool/shared_smb")
|
||||
if not unstable:
|
||||
machine.succeed("zfs share rpool/shared_smb")
|
||||
machine.succeed(
|
||||
"smbclient -gNL localhost | grep rpool_shared_smb",
|
||||
"umount /tmp/mnt",
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
let
|
||||
pname = "trezor-suite";
|
||||
version = "23.4.2";
|
||||
version = "23.10.1";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
suffix = {
|
||||
@ -19,8 +19,8 @@ let
|
||||
src = fetchurl {
|
||||
url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
|
||||
hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
|
||||
aarch64-linux = "sha512-+dcogzj0mENWSAVKqUG/xyF+TD/nKpA3UiNyI2M7iiCaW+tpwO5Y0uUmzb1rFRtDsKMflDPZNWe8qMJmrtaIrA==";
|
||||
x86_64-linux = "sha512-8UyPa3hDmALiYGao451ZBQLxv9H9OLbzzHiANp4zgvjBLGNhZnPFBIYM6KGyKkgRJJiTcgd7VHCgEhPpfm0qzg==";
|
||||
aarch64-linux = "sha512-MR9BYg6R+Oof3zh02KSh48V2m6J7JpsrYpi6gj5kTvKuCU5Ci5AwPEAvnTjHAR6xlappvoNQmeA5nCEoTWaL7A==";
|
||||
x86_64-linux = "sha512-BqdfhYLG4z+9B7KbJGWGPml7U2fl/RQ1nZK0vdeA/cKhG0SjH0K8er9bemg60RPBXj0AeuK80v/6vMbDtyEnRQ==";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
@ -22,10 +22,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/164/390591/IdeaVim-2.5.1-signed.zip"
|
||||
},
|
||||
"name": "ideavim"
|
||||
@ -61,10 +61,10 @@
|
||||
"232.10072.21": null,
|
||||
"232.10072.27": null,
|
||||
"232.10072.28": null,
|
||||
"232.10072.31": null,
|
||||
"232.10072.32": null,
|
||||
"232.9921.42": null,
|
||||
"232.9921.55": null,
|
||||
"232.9921.83": null,
|
||||
"232.9921.89": null,
|
||||
"233.8264.22": null
|
||||
},
|
||||
"name": "kotlin"
|
||||
@ -87,14 +87,14 @@
|
||||
],
|
||||
"builds": {
|
||||
"223.8836.1185": null,
|
||||
"232.10072.15": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.10072.15": "https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip",
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/6981/407738/ini-233.8264.9.zip"
|
||||
},
|
||||
"name": "ini"
|
||||
@ -105,8 +105,8 @@
|
||||
"phpstorm"
|
||||
],
|
||||
"builds": {
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/7219/408569/Symfony_Plugin-2022.1.258.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/7219/408569/Symfony_Plugin-2022.1.258.zip"
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/7219/419684/Symfony_Plugin-2022.1.259.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/7219/419684/Symfony_Plugin-2022.1.259.zip"
|
||||
},
|
||||
"name": "symfony-support"
|
||||
},
|
||||
@ -117,7 +117,7 @@
|
||||
],
|
||||
"builds": {
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
|
||||
},
|
||||
"name": "php-annotations"
|
||||
},
|
||||
@ -158,10 +158,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip"
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip"
|
||||
},
|
||||
"name": "-deprecated-rust"
|
||||
},
|
||||
@ -186,10 +186,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip"
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip"
|
||||
},
|
||||
"name": "-deprecated-rust-beta"
|
||||
},
|
||||
@ -207,7 +207,7 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/8554/374977/featuresTrainer-232.9559.6.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/8554/374977/featuresTrainer-232.9559.6.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/8554/374977/featuresTrainer-232.9559.6.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/8554/374977/featuresTrainer-232.9559.6.zip"
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/8554/374977/featuresTrainer-232.9559.6.zip"
|
||||
},
|
||||
"name": "ide-features-trainer"
|
||||
},
|
||||
@ -233,10 +233,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/8607/370632/NixIDEA-0.4.0.10.zip",
|
||||
"233.8264.22": null
|
||||
},
|
||||
"name": "nixidea"
|
||||
@ -267,16 +267,16 @@
|
||||
"webstorm"
|
||||
],
|
||||
"builds": {
|
||||
"223.8836.1185": "https://plugins.jetbrains.com/files/10037/358812/CSVEditor-3.2.1-223.zip",
|
||||
"232.10072.15": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/10037/243092/CSV-2.21.0.zip"
|
||||
"223.8836.1185": "https://plugins.jetbrains.com/files/10037/417700/CSVEditor-3.2.2-223.zip",
|
||||
"232.10072.15": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/10037/417702/CSVEditor-3.2.2-233.zip"
|
||||
},
|
||||
"name": "csv-editor"
|
||||
},
|
||||
@ -302,10 +302,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/12062/405118/keymap-vscode-233.8264.3.zip"
|
||||
},
|
||||
"name": "vscode-keymap"
|
||||
@ -332,10 +332,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/12559/405631/keymap-eclipse-233.8264.9.zip"
|
||||
},
|
||||
"name": "eclipse-keymap"
|
||||
@ -362,10 +362,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/13017/405636/keymap-visualStudio-233.8264.9.zip"
|
||||
},
|
||||
"name": "visual-studio-keymap"
|
||||
@ -392,10 +392,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
|
||||
},
|
||||
"name": "darcula-pitch-black"
|
||||
@ -422,10 +422,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/17718/415524/github-copilot-intellij-1.3.2.3479.zip"
|
||||
},
|
||||
"name": "github-copilot"
|
||||
@ -452,10 +452,10 @@
|
||||
"232.10072.21": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.10072.27": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.10072.28": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.10072.31": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.10072.32": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.9921.42": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.9921.55": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.9921.83": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"232.9921.89": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
|
||||
"233.8264.22": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
|
||||
},
|
||||
"name": "netbeans-6-5-keymap"
|
||||
@ -475,9 +475,9 @@
|
||||
}
|
||||
},
|
||||
"files": {
|
||||
"https://plugins.jetbrains.com/files/10037/243092/CSV-2.21.0.zip": "sha256-Mfo8z2pjn+Gk1uumw5xpZQwpkqLRVqAu2Z07zjn2N1M=",
|
||||
"https://plugins.jetbrains.com/files/10037/358812/CSVEditor-3.2.1-223.zip": "sha256-l8xq7XXQheZYcP+kdnLXAO7FhfPJYwIh+ZffbttBI9s=",
|
||||
"https://plugins.jetbrains.com/files/10037/358813/CSVEditor-3.2.1-232.zip": "sha256-m9ocJSFWparZLrX1MQA0IlSH5LHodmzzVmGZ6eHml24=",
|
||||
"https://plugins.jetbrains.com/files/10037/417699/CSVEditor-3.2.2-232.zip": "sha256-3bHSRhzvVO07mvuD6tpkiKFXTF66zCK/wpXFVb8IkfY=",
|
||||
"https://plugins.jetbrains.com/files/10037/417700/CSVEditor-3.2.2-223.zip": "sha256-4Y/DZpCWKljaslJFsaqItq1DVJVVRlQjWpM6GLRo8QA=",
|
||||
"https://plugins.jetbrains.com/files/10037/417702/CSVEditor-3.2.2-233.zip": "sha256-n4psF9fFFU8ohtbOndRx6i20EntjEzL3BvMObAZyOOw=",
|
||||
"https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip": "sha256-q5i1eAANK+6uBYrtioKLzvJf5ALUB0K4d31Ut0vT/lE=",
|
||||
"https://plugins.jetbrains.com/files/12062/405118/keymap-vscode-233.8264.3.zip": "sha256-cB3DTeWhDgAwHlxwYogd0/DuYBzo5DqaRtBvEC/p8I4=",
|
||||
"https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip": "sha256-eRCsivZbDNrc+kesa9jVsOoMFFz+WpYfSMXxPCCjWjw=",
|
||||
@ -495,7 +495,8 @@
|
||||
"https://plugins.jetbrains.com/files/6954/381727/kotlin-plugin-223-1.9.10-release-459-IJ8836.35.zip": "sha256-gHkNQyWh6jtY1986aI7Qo6ZNrniPy+Yq4XLLA0pKJkA=",
|
||||
"https://plugins.jetbrains.com/files/6981/407738/ini-233.8264.9.zip": "sha256-E3xWjwTxtLkOtm9748BbkKGaS4l8SlZOkj3w6VgqlFQ=",
|
||||
"https://plugins.jetbrains.com/files/6981/407868/ini-232.9921.89.zip": "sha256-XIdhTQMxl/nJnntfQlHLlcyA79IS3hnGEGrXhKBFgY0=",
|
||||
"https://plugins.jetbrains.com/files/7219/408569/Symfony_Plugin-2022.1.258.zip": "sha256-O4ARifSoeL5kXnFQTs6YoLcJvdg5VHks5LIgnwwUAeQ=",
|
||||
"https://plugins.jetbrains.com/files/6981/418297/ini-232.10072.32.zip": "sha256-eC5Zs6ph/4C3Xf6e07DfyqhBmsG3bAFLnvae1JiFzpE=",
|
||||
"https://plugins.jetbrains.com/files/7219/419684/Symfony_Plugin-2022.1.259.zip": "sha256-3UxSPvEXXhAf3zYg2H/jja4F5fuDFWQ6SWFRvcWJ0Iw=",
|
||||
"https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip": "sha256-hT5K4w4lhvNwDzDMDSvsIDGj9lyaRqglfOhlbNdqpWs=",
|
||||
"https://plugins.jetbrains.com/files/7322/401058/python-ce-232.9921.77.zip": "sha256-cr4LxSz8xVzC+Zm+6LnWGLbF6aGBVLW56crCIQOawhc=",
|
||||
"https://plugins.jetbrains.com/files/7322/405773/python-ce-233.8264.8.zip": "sha256-LjN0BkcnX8mVHh2dPULddVwooi9fcABkrRVhTPA7XSo=",
|
||||
|
@ -67,27 +67,27 @@
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "5e3dd021b82dcad0f51bded677aa87680dcc3f5d843951c48848a9191141bf1d",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.2.tar.gz",
|
||||
"build_number": "232.9921.55",
|
||||
"version": "2023.2.3",
|
||||
"sha256": "dd8d771508b277ab2a713b8f546c2ec6dbb261ba8c23072e46ec6ce2ea9ab2a0",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.3.tar.gz",
|
||||
"build_number": "232.10072.32",
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.tar.gz",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "2bb4f73d041b818a7b631feb3fee77036de764543c669efe9cf6766510a68e3f",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.2.tar.gz",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "d59dd88c1eb51cdd756433d415588c573ca944ebf6f08844b8ac8cd2e3d9937b",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.3.tar.gz",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"pycharm-professional": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.tar.gz",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "f7263b17e2456efcb5efab1eac53aafb6a0be1a7f9fbf25a419c9d7b447f6ded",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.2.tar.gz",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "e625fea80b72c9e12f986a8eb918425c6ef1d3f7b31117b40d122e3ce76046b1",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.3.tar.gz",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
@ -190,27 +190,27 @@
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "b3067ffa32fab0880ffce8dff000d463b86bef9b30f53fc4d41f5d4e518c7528",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.2-aarch64.tar.gz",
|
||||
"build_number": "232.9921.55",
|
||||
"version": "2023.2.3",
|
||||
"sha256": "577bea15c1208e0b842bcdb2ff0f0205144a8800fcadf87f873af7c067e0ce73",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.3-aarch64.tar.gz",
|
||||
"build_number": "232.10072.32",
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.tar.gz",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "7d15908f9261ee7905b61d83d4a048fee1e3a2fea9465ada1fc459b2ea0e4d5f",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.2-aarch64.tar.gz",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "6fdc5238ffa4767834b11b52b650107f1c64d6a53d0e2bbc23581b6c90b67ab5",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.3-aarch64.tar.gz",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"pycharm-professional": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.tar.gz",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "2cf259859847f7a979565f31faa60148d571206c78c9309dcdf867b76c16ef25",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.2-aarch64.tar.gz",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "578ecbd059ccb010682cf602e959454b296ec2e741202f236fbdb38897b296dd",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.3-aarch64.tar.gz",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
@ -313,27 +313,27 @@
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "99a9bb313a5c141ecd1810306deaca3cf52d338edf206362b3f9d9337a27890e",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.2.dmg",
|
||||
"build_number": "232.9921.55",
|
||||
"version": "2023.2.3",
|
||||
"sha256": "7ce4ff6b344ff8ce18ef8a821ba3fd1d222f9222a9b3e65744a796379d92417e",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.3.dmg",
|
||||
"build_number": "232.10072.32",
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.dmg",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "f482b6d451efec897764487b116f7bf09d507a5ebfb841c33e2abd2441c3b3a7",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.2.dmg",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "b914bd3c0018f951bef5da9c04907355a88546ce983dcf4115bbf11556015ec7",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.3.dmg",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"pycharm-professional": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.dmg",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "830f590d63199b389bbaa955c8602fa027bc1eb25bd8ce5636474eec72745b58",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.2.dmg",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "b33bbd30222363cdc3091aee923ed1c309edba799616a3a681cd9a1ca94e822a",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.3.dmg",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
@ -436,27 +436,27 @@
|
||||
"phpstorm": {
|
||||
"update-channel": "PhpStorm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "a31daeddae532324436b2d11acbd5fb657721883f17c7ef4457ac76a51bd4189",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.2-aarch64.dmg",
|
||||
"build_number": "232.9921.55",
|
||||
"version": "2023.2.3",
|
||||
"sha256": "68d543fb2a79cd0b07ddb94a4c00d8c0c1aca7f604bc838ac92e232e763489b3",
|
||||
"url": "https://download.jetbrains.com/webide/PhpStorm-2023.2.3-aarch64.dmg",
|
||||
"build_number": "232.10072.32",
|
||||
"version-major-minor": "2022.3"
|
||||
},
|
||||
"pycharm-community": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.dmg",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "2bcddf3e58902578745dd1803f17ebd18f4c98dc76bf48b0945afbc7bae45832",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.2-aarch64.dmg",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "08c45adbb0dca219955f511993ca8150dcca235bdba3ac24c67ae035c68ba992",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-community-2023.2.3-aarch64.dmg",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"pycharm-professional": {
|
||||
"update-channel": "PyCharm RELEASE",
|
||||
"url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.dmg",
|
||||
"version": "2023.2.2",
|
||||
"sha256": "5d4292dd0e40db35199ebcd6472d4b46c505d3357d2324690338758355e0f092",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.2-aarch64.dmg",
|
||||
"build_number": "232.9921.89"
|
||||
"version": "2023.2.3",
|
||||
"sha256": "63d68b20963575f76937ca0ce18a8150639c47b8cf8f3d6e96fa3306191cd076",
|
||||
"url": "https://download.jetbrains.com/python/pycharm-professional-2023.2.3-aarch64.dmg",
|
||||
"build_number": "232.10072.31"
|
||||
},
|
||||
"rider": {
|
||||
"update-channel": "Rider RELEASE",
|
||||
|
@ -209,5 +209,14 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ colamaroro ];
|
||||
knownVulnerabilities = [
|
||||
"CVE-2023-5217"
|
||||
"CVE-2022-21718"
|
||||
"CVE-2022-29247"
|
||||
"CVE-2022-29257"
|
||||
"CVE-2022-36077"
|
||||
"CVE-2023-29198"
|
||||
"CVE-2023-39956"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, mkDerivation, callPackage, fetchurl,
|
||||
guile_1_8, qtbase, xmodmap, which, freetype,
|
||||
{ lib, stdenv, callPackage, fetchurl,
|
||||
guile_1_8, xmodmap, which, freetype,
|
||||
libjpeg,
|
||||
sqlite,
|
||||
tex ? null,
|
||||
@ -8,6 +8,11 @@
|
||||
python3 ? null,
|
||||
cmake,
|
||||
pkg-config,
|
||||
wrapQtAppsHook,
|
||||
xdg-utils,
|
||||
qtbase,
|
||||
qtsvg,
|
||||
qtmacextras,
|
||||
ghostscriptX ? null,
|
||||
extraFonts ? false,
|
||||
chineseFonts ? false,
|
||||
@ -15,32 +20,49 @@
|
||||
koreanFonts ? false }:
|
||||
|
||||
let
|
||||
pname = "TeXmacs";
|
||||
version = "2.1";
|
||||
pname = "texmacs";
|
||||
version = "2.1.2";
|
||||
common = callPackage ./common.nix {
|
||||
inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
|
||||
};
|
||||
in
|
||||
mkDerivation {
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
|
||||
sha256 = "1gl6k1bwrk1y7hjyl4xvlqvmk5crl4jvsk8wrfp7ynbdin6n2i48";
|
||||
hash = "sha256-Ds9gxOwMYSttEWrawgxLHGxHyMBvt8WmyPIwBP2g/CM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
postPatch = common.postPatch + ''
|
||||
substituteInPlace configure \
|
||||
--replace "-mfpmath=sse -msse2" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
guile_1_8
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
xdg-utils
|
||||
] ++ lib.optionals (!stdenv.isDarwin) [
|
||||
cmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
guile_1_8
|
||||
qtbase
|
||||
qtsvg
|
||||
ghostscriptX
|
||||
freetype
|
||||
libjpeg
|
||||
sqlite
|
||||
git
|
||||
python3
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
qtmacextras
|
||||
];
|
||||
NIX_LDFLAGS = "-lz";
|
||||
|
||||
env.NIX_LDFLAGS = "-lz";
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--suffix" "PATH" ":" (lib.makeBinPath [
|
||||
@ -58,10 +80,8 @@ mkDerivation {
|
||||
wrapQtApp $out/bin/texmacs
|
||||
'';
|
||||
|
||||
inherit (common) postPatch;
|
||||
|
||||
meta = common.meta // {
|
||||
maintainers = [ lib.maintainers.roconnor ];
|
||||
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -3333,6 +3333,18 @@ final: prev:
|
||||
meta.homepage = "https://github.com/wincent/ferret/";
|
||||
};
|
||||
|
||||
ferris-nvim = buildNeovimPlugin {
|
||||
pname = "ferris.nvim";
|
||||
version = "2023-11-21";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mrcjkb";
|
||||
repo = "ferris.nvim";
|
||||
rev = "54943eaeb0d4534988d2378936052655c988c3c2";
|
||||
sha256 = "o4yY4IHYBCnanfy7dx/wGdiPFMLMKZsYrG2SqlPRvdI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/mrcjkb/ferris.nvim/";
|
||||
};
|
||||
|
||||
fidget-nvim = buildVimPlugin {
|
||||
pname = "fidget.nvim";
|
||||
version = "2023-06-10";
|
||||
|
@ -277,6 +277,7 @@ https://github.com/freddiehaddad/feline.nvim/,,
|
||||
https://github.com/bakpakin/fennel.vim/,,
|
||||
https://github.com/lambdalisue/fern.vim/,,
|
||||
https://github.com/wincent/ferret/,,
|
||||
https://github.com/mrcjkb/ferris.nvim/,HEAD,
|
||||
https://github.com/j-hui/fidget.nvim/,legacy,
|
||||
https://github.com/bogado/file-line/,,
|
||||
https://github.com/glacambre/firenvim/,HEAD,
|
||||
|
@ -326,8 +326,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "astro-vscode";
|
||||
publisher = "astro-build";
|
||||
version = "2.1.1";
|
||||
sha256 = "sha256-UVZOpkOHbLiwA4VfTgXxuIU8EtJLnqRa5zUVha6xQJY=";
|
||||
version = "2.3.3";
|
||||
sha256 = "sha256-A7+7lnCPAtSWUfHLNKbYqKuTxi2Nx05Qdh5HCkT1dnM=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/astro-build.astro-vscode/changelog";
|
||||
|
@ -28,13 +28,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "ryujinx";
|
||||
version = "1.1.1044"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
|
||||
version = "1.1.1053"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ryujinx";
|
||||
repo = "Ryujinx";
|
||||
rev = "7afae8c69947f7a5fa9a55cee36381aef372dfba";
|
||||
sha256 = "1kf95sbb4p50b6bah75sd95660kk2a7cbjwgvqv4c4cal6c126g7";
|
||||
rev = "28dd7d80af56701887dbb538b56aa58edaf39d91";
|
||||
sha256 = "09h4423z18q8r8fqcd5kv34iwmy9gkmpgw8an8myrhhvkmxi3zwg";
|
||||
};
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
||||
|
@ -3,6 +3,7 @@
|
||||
, lib
|
||||
|
||||
, makeWrapper
|
||||
, installShellFiles
|
||||
, stdenv
|
||||
, Foundation
|
||||
|
||||
@ -30,18 +31,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "yazi";
|
||||
version = "0.1.4";
|
||||
version = "0.1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sxyazi";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ARpludMVQlZtCRAfW0cNYVmT3m9t9lunMIW24peYX6Y=";
|
||||
hash = "sha256-FhKrq4N32uJRHGc0qRl+CIVNRW597jACcTFEgj8hiSE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-dhdk5aGKv6tY8x7MmA0hWcmJBiXOXC92DlQTd/1AKtQ=";
|
||||
cargoHash = "sha256-YUymZhDp1Pjm+W6m8Vmh2AgMCdaNt6TQQpiJwSg/gPw=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Foundation ];
|
||||
|
||||
postInstall = with lib;
|
||||
@ -60,6 +61,10 @@ rustPlatform.buildRustPackage rec {
|
||||
''
|
||||
wrapProgram $out/bin/yazi \
|
||||
--prefix PATH : "${makeBinPath runtimePaths}"
|
||||
installShellCompletion --cmd yazi \
|
||||
--bash ./config/completions/yazi.bash \
|
||||
--fish ./config/completions/yazi.fish \
|
||||
--zsh ./config/completions/_yazi
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
@ -11,13 +11,13 @@
|
||||
buildDotnetModule rec {
|
||||
pname = "ArchiSteamFarm";
|
||||
# nixpkgs-update: no auto update
|
||||
version = "5.4.9.3";
|
||||
version = "5.4.12.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JustArchiNET";
|
||||
repo = "ArchiSteamFarm";
|
||||
rev = version;
|
||||
hash = "sha256-Yp8hnMIeV+ZHY6yISJdFd1yAQipQsU5vcXgxFDvkGnA=";
|
||||
hash = "sha256-iIYA9BnHUfsB4J7VbSLKaRdJHMW/xULJxKfv8atfAd8=";
|
||||
};
|
||||
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_7_0;
|
||||
@ -77,6 +77,7 @@ buildDotnetModule rec {
|
||||
homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
|
||||
license = licenses.asl20;
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
mainProgram = "ArchiSteamFarm";
|
||||
maintainers = with maintainers; [ SuperSandro2000 lom ];
|
||||
};
|
||||
}
|
||||
|
21
pkgs/applications/misc/ArchiSteamFarm/deps.nix
generated
21
pkgs/applications/misc/ArchiSteamFarm/deps.nix
generated
@ -57,11 +57,11 @@
|
||||
(fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
|
||||
(fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
|
||||
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.2.0"; sha256 = "0nx7nrzbg9gk9skdc9x330cbr5xbsly6z9gzxm46vywf55yp8vaj"; })
|
||||
(fetchNuGet { pname = "Markdig.Signed"; version = "0.32.0"; sha256 = "0rc1d8pwypq44pr15wn8g52zbqz70swdrdmjlzccf6zvwy1vyqkc"; })
|
||||
(fetchNuGet { pname = "Markdig.Signed"; version = "0.33.0"; sha256 = "0816lmn0varxwhdklhh5hdqp0xnfz3nlrvaf2wpkk5v1mq86216h"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "7.0.0"; sha256 = "1f13vsfs1rp9bmdp3khk4mk2fif932d72yxm2wszpsr239x4s2bf"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "7.0.0"; sha256 = "1w49rg0n5wb1m5wnays2mmym7qy7bsi2b1zxz97af2rkbw3s3hbd"; })
|
||||
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.7.0"; sha256 = "12m9fay2d7jvj00hfpws37vflpqvz4dy4gcm25bjycg1zyfpzvly"; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.7.2"; sha256 = "09mf5kpxn1a1m8ciwklhh6ascx0yqpcs5r2hvmfj80j44n3qrwhm"; })
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; sha256 = "1pi2bm3cm0a7jzqzmfc2r7bpcdkmk3hhjfvb2c81j7wl7xdw3624"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
|
||||
@ -71,11 +71,15 @@
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.7.0"; sha256 = "1srhqqmnf9pxdbpffr7dh0bihhf09d0iq5g6gh8ql7brfrh99lvb"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.0.3"; sha256 = "0njmg2lygnirnfjv9gck2f5lq4ly5rgws9cpf8qj3kwcwxfp0b9s"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.0.3"; sha256 = "1ayh85xqdq8rqjk2iqcn7iaczcl7d8qg6bxk0b4rgx59fmsmbqj7"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.0.3"; sha256 = "13cjqmf59k895q6gkd5ycl89mnpalckda7rhsdl11jdyr32hsfnv"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.0.3"; sha256 = "1pmhd0imh9wlhvbvvwjrpjsqvzagi2ly22nddwr4r0pi234khyz1"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.7.2"; sha256 = "08g9dpp766racnh90s1sy3ncl291majgq6v2604hfw1f6zkmbjqh"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
|
||||
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.7.0"; sha256 = "1sqmk99644fx66zk2qa2ims1zl6741i3wl4rjh4z6jakd4xbc28i"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.7.0"; sha256 = "1s8ap0ljqssbqp1ilgsidjr948b9szf1cbl3fgl6smxig9im4zrl"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.7.2"; sha256 = "0xdjkdnrvnaxqgg38y5w1l3jbppigg68cc8q9jn0p21vn48bgrxq"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.7.2"; sha256 = "1szsg1iy77f0caxzkk0ihpp4ifbfnbdbn8k0wbbhbdprxj8pr356"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
|
||||
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.1.1"; sha256 = "0y3ic8jv5jhld6gan2qfa2wyk4z57f7y4y5a47njr0jvxxnarg2c"; })
|
||||
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.1.1"; sha256 = "1lbgkrbrkmw4c54g61cwbmwc4zl8hyqmp283ymvj93lq7chbxasn"; })
|
||||
@ -86,9 +90,9 @@
|
||||
(fetchNuGet { pname = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
|
||||
(fetchNuGet { pname = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
|
||||
(fetchNuGet { pname = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
|
||||
(fetchNuGet { pname = "NLog"; version = "5.2.3"; sha256 = "0srai3s2kk9y2jimdvw1xw86nch38q6nza598dpr81dghx3s6j6w"; })
|
||||
(fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.3"; sha256 = "0j19fljxbcc0bysmj7i0fmiax6sp5kjapf2llkimv7dh63rj9ckg"; })
|
||||
(fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.3"; sha256 = "0rhha2lwrzwlx0q1a8w9ph9xwayl3kmmy200ygsghcd02srlazkj"; })
|
||||
(fetchNuGet { pname = "NLog"; version = "5.2.5"; sha256 = "02fybqi9d7czz3jmhmgb8wia2hpjj5hmcnij6zsgs69rkv6hf9j0"; })
|
||||
(fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.5"; sha256 = "0jzfqa12l5vvxd2j684cnm29w19v386cpm11pw8h6prpf57affaj"; })
|
||||
(fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.5"; sha256 = "0li0sw04w0a4zms5jjv1ga45wxiqlcvaw8gi0wbhiifrdzz5yckb"; })
|
||||
(fetchNuGet { pname = "NuGet.Frameworks"; version = "6.5.0"; sha256 = "0s37d1p4md0k6d4cy6sq36f2dgkd9qfbzapxhkvi8awwh0vrynhj"; })
|
||||
(fetchNuGet { pname = "protobuf-net"; version = "3.2.16"; sha256 = "0pwlqlq2p8my2sr8b0cvdav5cm8wpwf3s4gy7s1ba701ac2zyb9y"; })
|
||||
(fetchNuGet { pname = "protobuf-net.Core"; version = "3.2.16"; sha256 = "00znhikq7valr3jaxg66cwli9hf75wkmmpf6rf8p790hf8lxq0c5"; })
|
||||
@ -108,6 +112,7 @@
|
||||
(fetchNuGet { pname = "System.Composition.Runtime"; version = "7.0.0"; sha256 = "1p9xpqzx42s8cdizv6nh15hcjvl2km0rwby66nfkj4cb472l339s"; })
|
||||
(fetchNuGet { pname = "System.Composition.TypedParts"; version = "7.0.0"; sha256 = "0syz7y6wgnxxgjvfqgymn9mnaa5fjy1qp06qnsvh3agr9mvcv779"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; })
|
||||
(fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "7.0.3"; sha256 = "1fls88ffq34j1gr6zay1crm27v3sjs5fa4mvj9akqjq05bxanlhk"; })
|
||||
(fetchNuGet { pname = "System.Linq.Async"; version = "6.0.1"; sha256 = "10ira8hmv0i54yp9ggrrdm1c06j538sijfjpn1kmnh9j2xk5yzmq"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=./. -i bash -p curl gnused jq common-updater-scripts nix-prefetch prefetch-npm-deps
|
||||
#!nix-shell -I nixpkgs=./. -i bash -p curl gnused jq common-updater-scripts
|
||||
set -euo pipefail
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
@ -14,7 +14,7 @@ if [[ "$new_version" == "$old_version" ]]; then
|
||||
fi
|
||||
|
||||
asf_path=$PWD
|
||||
pushd ../../../..
|
||||
cd ../../../..
|
||||
|
||||
if [[ "${1:-}" != "--deps-only" ]]; then
|
||||
update-source-version ArchiSteamFarm "$new_version"
|
||||
@ -22,5 +22,5 @@ fi
|
||||
|
||||
$(nix-build -A ArchiSteamFarm.fetch-deps --no-out-link)
|
||||
|
||||
popd
|
||||
"$asf_path/web-ui/update.sh"
|
||||
cd "$asf_path/web-ui"
|
||||
./update.sh
|
||||
|
1
pkgs/applications/misc/ArchiSteamFarm/web-ui/.gitignore
vendored
Normal file
1
pkgs/applications/misc/ArchiSteamFarm/web-ui/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
package-lock.json
|
@ -1,19 +1,19 @@
|
||||
{ lib, fetchFromGitHub, buildNpmPackage, nodePackages, ArchiSteamFarm }:
|
||||
{ lib, fetchFromGitHub, buildNpmPackage, ArchiSteamFarm }:
|
||||
|
||||
buildNpmPackage {
|
||||
buildNpmPackage rec {
|
||||
pname = "asf-ui";
|
||||
inherit (ArchiSteamFarm) version;
|
||||
version = "fceb2fb828cfa420c77dc5cde433fd519a6717d4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JustArchiNET";
|
||||
repo = "ASF-ui";
|
||||
# updated by the update script
|
||||
# this is always the commit that should be used with asf-ui from the latest asf version
|
||||
rev = "0b812a7ab0d2f01a675d27f80008ad7b6972b4aa";
|
||||
hash = "sha256-ut0x/qT3DyDASW4QbNT+BF6eXHCIbTol5E+3+tirFDA=";
|
||||
rev = version;
|
||||
hash = "sha256-gMQWly7HN5rIV9r72Qa+gHuBuQMs9sh09od4ja4sRGU=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-HpBEoAIGejpHJnUciz4iWILcXdgpw7X1xFuXmx9Z9dw=";
|
||||
npmDepsHash = "sha256-UDCQTRpcPDcuvPzlqTu315EkGr5G0+z7qMSsPgYQacA=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
@ -1,23 +1,19 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -I nixpkgs=../../../.. -i bash -p nodePackages.node2nix gnused jq curl
|
||||
#! nix-shell -I nixpkgs=../../../../.. -i bash -p curl gnused jq common-updater-scripts prefetch-npm-deps
|
||||
set -eou pipefail
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
pushd ../../../../..
|
||||
cd "$(dirname "$0")"/../../../../..
|
||||
version=$(nix-instantiate --strict --eval -A ArchiSteamFarm.version | jq -r)
|
||||
popd
|
||||
pushd "$(dirname "$0")"
|
||||
cd -
|
||||
ui=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/JustArchiNET/ArchiSteamFarm/contents/ASF-ui?ref=$version" | jq -r .sha)
|
||||
|
||||
curl "https://raw.githubusercontent.com/JustArchiNET/ASF-ui/$ui/package-lock.json" -o package-lock.json
|
||||
|
||||
# update-source-version doesn't work for some reason
|
||||
sed -i "s/rev\\s*=\\s*.*/rev = \"$ui\";/" default.nix
|
||||
sed -i "s/hash\\s*=\\s*.*/hash = \"$(nix-prefetch fetchurl --url "https://github.com/JustArchiNET/ASF-ui/archive/$ui.tar.gz")\";/" default.nix
|
||||
cd -
|
||||
update-source-version ArchiSteamFarm.ui "$ui"
|
||||
cd -
|
||||
|
||||
npmDepsHash=$(prefetch-npm-deps ./package-lock.json)
|
||||
sed -E 's#\bnpmDepsHash = ".*?"#npmDepsHash = "'"$npmDepsHash"'"#' -i default.nix
|
||||
|
||||
rm package-lock.json
|
||||
|
||||
popd
|
||||
|
@ -10,6 +10,7 @@
|
||||
, qtscxml
|
||||
, qtsvg
|
||||
, qtdeclarative
|
||||
, qtwayland
|
||||
, qt5compat
|
||||
, wrapQtAppsHook
|
||||
, nix-update-script
|
||||
@ -42,6 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
qtscxml
|
||||
qtsvg
|
||||
qtdeclarative
|
||||
qtwayland
|
||||
qt5compat
|
||||
] ++ (with python3Packages; [ python pybind11 ]);
|
||||
|
||||
|
@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dasel";
|
||||
version = "2.3.6";
|
||||
version = "2.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TomWright";
|
||||
repo = "dasel";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-k+I4n05IbQT7tGzkJ0aPW6kLT1mGqwQOwoKDyal8L3w=";
|
||||
sha256 = "sha256-zxTT/CkSbH40R7itXAx0zD+haHOoMep/W4KfalJQ/8w=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Gueo8aZS5N1rLqZweXjXv7BLrtShxGDSGfbkYXhy4DQ=";
|
||||
vendorHash = "sha256-CbR0uHtha2OoHW9mcB1I2lGJbjerbZARVN/mTstv/Y0=";
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X github.com/tomwright/dasel/v2/internal.Version=${version}"
|
||||
|
@ -14,13 +14,13 @@
|
||||
|
||||
python310Packages.buildPythonApplication rec {
|
||||
pname = "nwg-displays";
|
||||
version = "0.3.7";
|
||||
version = "0.3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nwg-piotr";
|
||||
repo = "nwg-displays";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Y405ZeOSpc1aPKEzFdvlgJgpGAi9HUR+Hvx63uYdp88=";
|
||||
hash = "sha256-9v5TQTliUEnynoGDf1UXsQ9Ym7x2gPmx4QiRJH5BId4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "nwg-panel";
|
||||
version = "0.9.13";
|
||||
version = "0.9.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nwg-piotr";
|
||||
repo = "nwg-panel";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dP/FbMrjPextwedQeLJHM6f/a+EuZ+hQSLrH/rF2XOg=";
|
||||
hash = "sha256-ThcB/BhnJbBHUoRh120iqN6LMGOnkekzALTTgd8uUx4=";
|
||||
};
|
||||
|
||||
# No tests
|
||||
|
@ -12,7 +12,7 @@
|
||||
let
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
pname = "obsidian";
|
||||
version = "1.4.14";
|
||||
version = "1.4.16";
|
||||
appname = "Obsidian";
|
||||
meta = with lib; {
|
||||
description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
|
||||
@ -25,7 +25,7 @@ let
|
||||
filename = if stdenv.isDarwin then "Obsidian-${version}-universal.dmg" else "obsidian-${version}.tar.gz";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/${filename}";
|
||||
hash = if stdenv.isDarwin then "sha256-5cVKlZJDtXOkil+RohijCcqyJVTrysmqyTvJR0dDAuc=" else "sha256-qFSQer37Nkh3A3oVAFP/0qXzPWJ7SqY2GYA6b1iaYmE=";
|
||||
hash = if stdenv.isDarwin then "sha256-ydLWr+Snkza9G+R7HbPuUdoZsL25Uj+KDos67Mq/urY=" else "sha256-PBKLGs3MZyarSMiWnjqY7d9bQrKu2uLAvLUufpHLxcw=";
|
||||
};
|
||||
|
||||
icon = fetchurl {
|
||||
|
@ -92,11 +92,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.59.117";
|
||||
version = "1.59.120";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "sha256-yckxTKAgglk6YRXist9RZufZdI22iitecmb01NmYPGQ=";
|
||||
sha256 = "sha256-fkIU6XuydF6Bo8V0uS4NObh2fRuKxOWMqVft81uUs9Q=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
@ -67,16 +67,16 @@ let
|
||||
]);
|
||||
clangFormatPython3 = fetchurl {
|
||||
url = "https://chromium.googlesource.com/chromium/tools/build/+/e77882e0dde52c2ccf33c5570929b75b4a2a2522/recipes/recipe_modules/chromium/resources/clang-format?format=TEXT";
|
||||
sha256 = "0ic3hn65dimgfhakli1cyf9j3cxcqsf1qib706ihfhmlzxf7256l";
|
||||
hash = "sha256-1BRxXP+0QgejAWdFHJzGrLMhk/MsRDoVdK/GVoyFg0U=";
|
||||
};
|
||||
|
||||
# The additional attributes for creating derivations based on the chromium
|
||||
# source tree.
|
||||
extraAttrs = buildFun base;
|
||||
|
||||
githubPatch = { commit, sha256, revert ? false }: fetchpatch {
|
||||
githubPatch = { commit, hash, revert ? false }: fetchpatch {
|
||||
url = "https://github.com/chromium/chromium/commit/${commit}.patch";
|
||||
inherit sha256 revert;
|
||||
inherit hash revert;
|
||||
};
|
||||
|
||||
mkGnFlags =
|
||||
@ -118,7 +118,7 @@ let
|
||||
libExecPath = "$out/libexec/${packageName}";
|
||||
|
||||
ungoogler = ungoogled-chromium {
|
||||
inherit (upstream-info.deps.ungoogled-patches) rev sha256;
|
||||
inherit (upstream-info.deps.ungoogled-patches) rev hash;
|
||||
};
|
||||
|
||||
# There currently isn't a (much) more concise way to get a stdenv
|
||||
@ -148,10 +148,10 @@ let
|
||||
else throw "no chromium Rosetta Stone entry for os: ${platform.config}";
|
||||
};
|
||||
|
||||
recompressTarball = { version, sha256 ? "" }: fetchzip {
|
||||
recompressTarball = { version, hash ? "" }: fetchzip {
|
||||
name = "chromium-${version}.tar.zstd";
|
||||
url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
|
||||
inherit sha256;
|
||||
inherit hash;
|
||||
|
||||
nativeBuildInputs = [ zstd ];
|
||||
|
||||
@ -180,7 +180,7 @@ let
|
||||
inherit (upstream-info) version;
|
||||
inherit packageName buildType buildPath;
|
||||
|
||||
src = recompressTarball { inherit version; inherit (upstream-info) sha256; };
|
||||
src = recompressTarball { inherit version; inherit (upstream-info) hash; };
|
||||
|
||||
nativeBuildInputs = [
|
||||
ninja pkg-config
|
||||
@ -250,7 +250,7 @@ let
|
||||
(githubPatch {
|
||||
# Reland [clang] Disable autoupgrading debug info in ThinLTO builds
|
||||
commit = "54969766fd2029c506befc46e9ce14d67c7ed02a";
|
||||
sha256 = "sha256-Vryjg8kyn3cxWg3PmSwYRG6zrHOqYWBMSdEMGiaPg6M=";
|
||||
hash = "sha256-Vryjg8kyn3cxWg3PmSwYRG6zrHOqYWBMSdEMGiaPg6M=";
|
||||
revert = true;
|
||||
})
|
||||
];
|
||||
@ -315,9 +315,6 @@ let
|
||||
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
|
||||
device/udev_linux/udev?_loader.cc
|
||||
'' + ''
|
||||
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
|
||||
gpu/config/gpu_info_collector_linux.cc
|
||||
|
||||
# Allow to put extensions into the system-path.
|
||||
sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
|
||||
|
||||
@ -479,9 +476,10 @@ let
|
||||
|
||||
postFixup = ''
|
||||
# Make sure that libGLESv2 and libvulkan are found by dlopen.
|
||||
# libpci (from pciutils) is needed by dlopen in angle/src/gpu_info_util/SystemInfo_libpci.cpp
|
||||
chromiumBinary="$libExecPath/$packageName"
|
||||
origRpath="$(patchelf --print-rpath "$chromiumBinary")"
|
||||
patchelf --set-rpath "${lib.makeLibraryPath [ libGL vulkan-loader ]}:$origRpath" "$chromiumBinary"
|
||||
patchelf --set-rpath "${lib.makeLibraryPath [ libGL vulkan-loader pciutils ]}:$origRpath" "$chromiumBinary"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
@ -57,7 +57,7 @@ let
|
||||
gnChromium = buildPackages.gn.overrideAttrs (oldAttrs: {
|
||||
inherit (upstream-info.deps.gn) version;
|
||||
src = fetchgit {
|
||||
inherit (upstream-info.deps.gn) url rev sha256;
|
||||
inherit (upstream-info.deps.gn) url rev hash;
|
||||
};
|
||||
});
|
||||
});
|
||||
@ -80,12 +80,12 @@ let
|
||||
chromeSrc =
|
||||
let
|
||||
# Use the latest stable Chrome version if necessary:
|
||||
version = if chromium.upstream-info.sha256bin64 != null
|
||||
version = if chromium.upstream-info.hash_deb_amd64 != null
|
||||
then chromium.upstream-info.version
|
||||
else (import ./upstream-info.nix).stable.version;
|
||||
sha256 = if chromium.upstream-info.sha256bin64 != null
|
||||
then chromium.upstream-info.sha256bin64
|
||||
else (import ./upstream-info.nix).stable.sha256bin64;
|
||||
hash = if chromium.upstream-info.hash_deb_amd64 != null
|
||||
then chromium.upstream-info.hash_deb_amd64
|
||||
else (import ./upstream-info.nix).stable.hash_deb_amd64;
|
||||
in fetchurl {
|
||||
urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
|
||||
"https://dl.google.com/linux/chrome/deb/pool/main/g"
|
||||
@ -93,7 +93,7 @@ let
|
||||
"http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
|
||||
"http://repo.fdzh.org/chrome/deb/pool/main/g"
|
||||
];
|
||||
inherit sha256;
|
||||
inherit hash;
|
||||
};
|
||||
|
||||
mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
|
||||
|
@ -6,10 +6,10 @@
|
||||
}:
|
||||
|
||||
{ rev
|
||||
, sha256
|
||||
, hash
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation {
|
||||
pname = "ungoogled-chromium";
|
||||
|
||||
version = rev;
|
||||
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "ungoogled-software";
|
||||
repo = "ungoogled-chromium";
|
||||
inherit rev sha256;
|
||||
inherit rev hash;
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -59,9 +59,9 @@ def prefetch_src_sri_hash(attr_path, version):
|
||||
|
||||
def nix_prefetch_url(url, algo='sha256'):
|
||||
"""Prefetches the content of the given URL."""
|
||||
print(f'nix-prefetch-url {url}')
|
||||
out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
|
||||
return out.decode('utf-8').rstrip()
|
||||
print(f'nix store prefetch-file {url}')
|
||||
out = subprocess.check_output(['nix', 'store', 'prefetch-file', '--json', '--hash-type', algo, url])
|
||||
return json.loads(out)['hash']
|
||||
|
||||
|
||||
def nix_prefetch_git(url, rev):
|
||||
@ -96,9 +96,9 @@ def get_chromedriver(channel):
|
||||
|
||||
return {
|
||||
'version': channel['version'],
|
||||
'sha256_linux': nix_prefetch_url(get_chromedriver_url('linux64')),
|
||||
'sha256_darwin': nix_prefetch_url(get_chromedriver_url('mac-x64')),
|
||||
'sha256_darwin_aarch64': nix_prefetch_url(get_chromedriver_url('mac-arm64'))
|
||||
'hash_linux': nix_prefetch_url(get_chromedriver_url('linux64')),
|
||||
'hash_darwin': nix_prefetch_url(get_chromedriver_url('mac-x64')),
|
||||
'hash_darwin_aarch64': nix_prefetch_url(get_chromedriver_url('mac-arm64'))
|
||||
}
|
||||
|
||||
|
||||
@ -113,7 +113,7 @@ def get_channel_dependencies(version):
|
||||
'version': datetime.fromisoformat(gn['date']).date().isoformat(),
|
||||
'url': gn['url'],
|
||||
'rev': gn['rev'],
|
||||
'sha256': gn['sha256']
|
||||
'hash': gn['hash']
|
||||
}
|
||||
}
|
||||
|
||||
@ -222,11 +222,11 @@ with urlopen(RELEASES_URL) as resp:
|
||||
google_chrome_suffix = channel_name
|
||||
|
||||
try:
|
||||
channel['sha256'] = prefetch_src_sri_hash(
|
||||
channel['hash'] = prefetch_src_sri_hash(
|
||||
channel_name_to_attr_name(channel_name),
|
||||
release["version"]
|
||||
)
|
||||
channel['sha256bin64'] = nix_prefetch_url(
|
||||
channel['hash_deb_amd64'] = nix_prefetch_url(
|
||||
f'{DEB_URL}/google-chrome-{google_chrome_suffix}/' +
|
||||
f'google-chrome-{google_chrome_suffix}_{release["version"]}-1_amd64.deb')
|
||||
except subprocess.CalledProcessError:
|
||||
@ -241,7 +241,7 @@ with urlopen(RELEASES_URL) as resp:
|
||||
ungoogled_repo_url = 'https://github.com/ungoogled-software/ungoogled-chromium.git'
|
||||
channel['deps']['ungoogled-patches'] = {
|
||||
'rev': release['ungoogled_tag'],
|
||||
'sha256': nix_prefetch_git(ungoogled_repo_url, release['ungoogled_tag'])['sha256']
|
||||
'hash': nix_prefetch_git(ungoogled_repo_url, release['ungoogled_tag'])['hash']
|
||||
}
|
||||
with open(UNGOOGLED_FLAGS_PATH, 'w') as out:
|
||||
out.write(get_ungoogled_chromium_gn_flags(release['ungoogled_tag']))
|
||||
|
@ -3,63 +3,63 @@
|
||||
deps = {
|
||||
gn = {
|
||||
rev = "811d332bd90551342c5cbd39e133aa276022d7f8";
|
||||
sha256 = "0jlg3d31p346na6a3yk0x29pm6b7q03ck423n5n6mi8nv4ybwajq";
|
||||
hash = "sha256-WCq+PNkWxWpssUOQyQbAZ5l6k+hg+qGMsoaMG0Ybj0o=";
|
||||
url = "https://gn.googlesource.com/gn";
|
||||
version = "2023-08-01";
|
||||
};
|
||||
};
|
||||
sha256 = "0c3adrrgpnhm8g1546ask9pf17qj1sjgb950mj0rv4snxvddi75j";
|
||||
sha256bin64 = "11w1di146mjb9ql30df9yk9x4b9amc6514jzyfbf09mqsrw88dvr";
|
||||
hash = "sha256-spzY2u5Wk52BrKCk9aQOEp/gbppaGVLCQxXa+3JuajA=";
|
||||
hash_deb_amd64 = "sha256-eTeEeNa4JuCW81+SUAyrKi3S0/TJNTAoTktWQ0JsgYc=";
|
||||
version = "117.0.5938.22";
|
||||
};
|
||||
dev = {
|
||||
deps = {
|
||||
gn = {
|
||||
rev = "cc56a0f98bb34accd5323316e0292575ff17a5d4";
|
||||
sha256 = "1ly7z48v147bfdb1kqkbc98myxpgqq3g6vgr8bjx1ikrk17l82ab";
|
||||
hash = "sha256-SwlET5h5xtDlQvlt8wbG73ZfUWJr4hlWc+uQsBH5x9M=";
|
||||
url = "https://gn.googlesource.com/gn";
|
||||
version = "2023-08-10";
|
||||
};
|
||||
};
|
||||
sha256 = "16dq27lsywrn2xlgr5g46gdv15p30sihfamli4vkv3zxzfxdjisv";
|
||||
sha256bin64 = "11y09hsy7y1vg65xfilq44ffsmn15dqy80fa57psj1kin4a52v2x";
|
||||
hash = "sha256-W0fZuvv9jz03ibQqB6MG45aw2zPklfxoFzZzr+kRuJk=";
|
||||
hash_deb_amd64 = "sha256-XWxRFLFxBqnvKcoB5HErwVbtHCGYRteLeTv44zVMwIc=";
|
||||
version = "118.0.5966.0";
|
||||
};
|
||||
stable = {
|
||||
chromedriver = {
|
||||
sha256_darwin = "0y973bs4dbdrl152bfiq5avsp6h27j3v1kwgcgxk1d0g293322xs";
|
||||
sha256_darwin_aarch64 =
|
||||
"04qrhr52qc9rhmslgsh2yymsix9cv32g39xbpf8576scihfdngv8";
|
||||
sha256_linux = "1hy3s6j20h03ria033kfxd3rq259davvpjny4gpvznzklns71vi1";
|
||||
hash_darwin = "sha256-ugsxRhIPtDD7Y4/PsIc8Apqrtyo4uiVKoLmtRvQaJ3k=";
|
||||
hash_darwin_aarch64 =
|
||||
"sha256-aD/bHIxMm1OQu6un8cTYLPWoq/cC6kd1hTkxLEqGGRM=";
|
||||
hash_linux = "sha256-Ie5wtKXz27/vI97Ku7dqqQicR+tujgFUzANAIKTRw8M=";
|
||||
version = "118.0.5993.70";
|
||||
};
|
||||
deps = {
|
||||
gn = {
|
||||
rev = "cc56a0f98bb34accd5323316e0292575ff17a5d4";
|
||||
sha256 = "1ly7z48v147bfdb1kqkbc98myxpgqq3g6vgr8bjx1ikrk17l82ab";
|
||||
hash = "sha256-SwlET5h5xtDlQvlt8wbG73ZfUWJr4hlWc+uQsBH5x9M=";
|
||||
url = "https://gn.googlesource.com/gn";
|
||||
version = "2023-08-10";
|
||||
};
|
||||
};
|
||||
sha256 = "sha256-CTkw92TiRD2tkYu5a5dy8fjpR2MMOMCvcbxXhJ36Bp8=";
|
||||
sha256bin64 = "06rbsjh4khhl408181ns5nsdwasklb277fdjfajdv5h1j9a190k3";
|
||||
hash = "sha256-CTkw92TiRD2tkYu5a5dy8fjpR2MMOMCvcbxXhJ36Bp8=";
|
||||
hash_deb_amd64 = "sha256-Y4IUVJIBlt2kcrK5c8SiUyvetC3aBhQQIBTCSaDUKxs=";
|
||||
version = "118.0.5993.88";
|
||||
};
|
||||
ungoogled-chromium = {
|
||||
deps = {
|
||||
gn = {
|
||||
rev = "cc56a0f98bb34accd5323316e0292575ff17a5d4";
|
||||
sha256 = "1ly7z48v147bfdb1kqkbc98myxpgqq3g6vgr8bjx1ikrk17l82ab";
|
||||
hash = "sha256-SwlET5h5xtDlQvlt8wbG73ZfUWJr4hlWc+uQsBH5x9M=";
|
||||
url = "https://gn.googlesource.com/gn";
|
||||
version = "2023-08-10";
|
||||
};
|
||||
ungoogled-patches = {
|
||||
rev = "118.0.5993.88-1";
|
||||
sha256 = "17j47d64l97ascp85h8cnfnr5wr4va3bdk95wmagqss7ym5c7zsf";
|
||||
hash = "sha256-Tv/DSvVHa/xU5SXNtobaJPOSrbMMwYIu0+okSkw7RJ4=";
|
||||
};
|
||||
};
|
||||
sha256 = "sha256-CTkw92TiRD2tkYu5a5dy8fjpR2MMOMCvcbxXhJ36Bp8=";
|
||||
sha256bin64 = "06rbsjh4khhl408181ns5nsdwasklb277fdjfajdv5h1j9a190k3";
|
||||
hash = "sha256-CTkw92TiRD2tkYu5a5dy8fjpR2MMOMCvcbxXhJ36Bp8=";
|
||||
hash_deb_amd64 = "sha256-Y4IUVJIBlt2kcrK5c8SiUyvetC3aBhQQIBTCSaDUKxs=";
|
||||
version = "118.0.5993.88";
|
||||
};
|
||||
}
|
||||
|
@ -30,11 +30,11 @@
|
||||
|
||||
firefox-beta = buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
version = "119.0b4";
|
||||
version = "119.0b9";
|
||||
applicationName = "Mozilla Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "7c067d759602608e527d032f7a3772df827a5b5c4270992c05abda726fcd665f4f2c5380e684623ed108364ace4afaed8b5959f75a4b0540edd5ae30422b0e54";
|
||||
sha512 = "11d07474e3ca72a4e2f60053882e09a215e0d29d6830d0cd41447bb67370118356090af7adcbacd7703ad9fcdda83c9f909419c86b8f3bf2eacd9ca3d3aa3f54";
|
||||
};
|
||||
|
||||
meta = {
|
||||
@ -58,12 +58,12 @@
|
||||
|
||||
firefox-devedition = (buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
version = "119.0b4";
|
||||
version = "119.0b9";
|
||||
applicationName = "Mozilla Firefox Developer Edition";
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "ded00bc1e090bdca5f32160d980cec47590bb952a6c7f1dc8f4df30fa452cad8c47a3c6d20cf3e8345fd5811777b475354d71d704c866fb49396a83c8a795bcb";
|
||||
sha512 = "ce3e2adb3171aa05c7af3b7a4ea25eaafbc109c522b90e26aad577192a0902000fb7d705fa5707a9a7d0be2ab1c0cddc5a98abbe6549e1377c0a1d765bda62eb";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cloudfoundry-cli";
|
||||
version = "8.7.3";
|
||||
version = "8.7.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudfoundry";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2ABsxoGRRUfa09tVPmn1IXDR2IXIewg/b/fmQnaKLoY=";
|
||||
sha256 = "sha256-W4+2ugRSSP3HgmyQJKGCPMX7cmE7Fk3iovBOgBen+q8=";
|
||||
};
|
||||
vendorHash = "sha256-k2NI9zyeQM4PJo2wE3WkG5sntJGISwmz4xqQVChu8WQ=";
|
||||
vendorHash = "sha256-klbKL/c7L7kHPadDa/FkpuAgHYQmuLQK6yFhph52KsU=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "eks-node-viewer";
|
||||
version = "0.4.3";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-570wOLUtKKzDDLLDrAOPAnAUpZeAqrwKsQWoHCBjKKk=";
|
||||
sha256 = "sha256-kfX9BzARDWUOBIu67j60K38uwkRELxd/gXtEHOHAXS8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-kRRUaA/psQDmcM1ZhzdZE3eyw8DWZpesJVA2zVfORGk=";
|
||||
vendorHash = "sha256-7axI7R8cTntc1IcOwVPmPj8MHeIvhbnkYKQdqu5fZOU=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
--prefix PATH : ${jre}/bin
|
||||
|
||||
cat <<EOF >> $out/opt/flink/conf/flink-conf.yaml
|
||||
env.java.home: ${jre}"
|
||||
env.java.home: ${jre}
|
||||
env.log.dir: /tmp/flink-logs
|
||||
EOF
|
||||
'';
|
||||
|
@ -0,0 +1,37 @@
|
||||
{ version, stdenv, fetchurl, lib, cmake, openssl, platformAttrs, ... }:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hadoop-yarn-containerexecutor";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/hadoop/common/hadoop-${finalAttrs.version}/hadoop-${finalAttrs.version}-src.tar.gz";
|
||||
hash = platformAttrs.${stdenv.system}.srcHash;
|
||||
};
|
||||
sourceRoot = "hadoop-${finalAttrs.version}-src/hadoop-yarn-project/hadoop-yarn/"
|
||||
+"hadoop-yarn-server/hadoop-yarn-server-nodemanager/src";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ openssl ];
|
||||
cmakeFlags = [ "-DHADOOP_CONF_DIR=/run/wrappers/yarn-nodemanager/etc/hadoop" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
mv target/var/empty/local/bin $out/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://hadoop.apache.org/";
|
||||
description = "Framework for distributed processing of large data sets across clusters of computers";
|
||||
license = licenses.asl20;
|
||||
|
||||
longDescription = ''
|
||||
The Hadoop YARN Container Executor is a native component responsible for managing the lifecycle of containers
|
||||
on individual nodes in a Hadoop YARN cluster. It launches, monitors, and terminates containers, ensuring that
|
||||
resources like CPU and memory are allocated according to the policies defined in the ResourceManager.
|
||||
'';
|
||||
|
||||
maintainers = with maintainers; [ illustris ];
|
||||
platforms = filter (strings.hasSuffix "linux") (attrNames platformAttrs);
|
||||
};
|
||||
})
|
@ -19,6 +19,8 @@
|
||||
, nixosTests
|
||||
, sparkSupport ? true
|
||||
, spark
|
||||
, libtirpc
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
with lib;
|
||||
@ -26,40 +28,75 @@ with lib;
|
||||
assert elem stdenv.system [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
|
||||
|
||||
let
|
||||
common = { pname, platformAttrs, untarDir ? "${pname}-${version}", jdk, openssl ? null, nativeLibs ? [ ], libPatches ? "", tests }:
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname jdk libPatches untarDir openssl;
|
||||
common = { pname, platformAttrs, jdk, tests }:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
inherit pname jdk;
|
||||
version = platformAttrs.${stdenv.system}.version or (throw "Unsupported system: ${stdenv.system}");
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}" + optionalString stdenv.isAarch64 "-aarch64" + ".tar.gz";
|
||||
url = "mirror://apache/hadoop/common/hadoop-${finalAttrs.version}/hadoop-${finalAttrs.version}"
|
||||
+ optionalString stdenv.isAarch64 "-aarch64" + ".tar.gz";
|
||||
inherit (platformAttrs.${stdenv.system}) hash;
|
||||
};
|
||||
doCheck = true;
|
||||
|
||||
# Build the container executor binary from source
|
||||
# InstallPhase is not lazily evaluating containerExecutor for some reason
|
||||
containerExecutor = if stdenv.isLinux then (callPackage ./containerExecutor.nix {
|
||||
inherit (finalAttrs) version;
|
||||
inherit platformAttrs;
|
||||
}) else "";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
++ optionals (stdenv.isLinux && (nativeLibs != [ ] || libPatches != "")) [ autoPatchelfHook ];
|
||||
buildInputs = [ openssl ] ++ nativeLibs;
|
||||
++ optionals stdenv.isLinux [ autoPatchelfHook ];
|
||||
buildInputs = optionals stdenv.isLinux [ stdenv.cc.cc.lib openssl protobuf zlib snappy libtirpc ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{lib/${untarDir}/conf,bin,lib}
|
||||
mv * $out/lib/${untarDir}
|
||||
mkdir $out
|
||||
mv * $out/
|
||||
'' + optionalString stdenv.isLinux ''
|
||||
# All versions need container-executor, but some versions can't use autoPatchelf because of broken SSL versions
|
||||
patchelf --set-interpreter ${glibc.out}/lib64/ld-linux-x86-64.so.2 $out/lib/${untarDir}/bin/container-executor
|
||||
'' + ''
|
||||
for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
|
||||
makeWrapper "$n" "$out/bin/$(basename $n)"\
|
||||
--set-default JAVA_HOME ${jdk.home}\
|
||||
--set-default HADOOP_HOME $out/lib/${untarDir}\
|
||||
--run "test -d /etc/hadoop-conf && export HADOOP_CONF_DIR=\''${HADOOP_CONF_DIR-'/etc/hadoop-conf/'}"\
|
||||
--set-default HADOOP_CONF_DIR $out/lib/${untarDir}/etc/hadoop/\
|
||||
--prefix PATH : "${makeBinPath [ bash coreutils which]}"\
|
||||
--prefix JAVA_LIBRARY_PATH : "${makeLibraryPath buildInputs}"
|
||||
for n in $(find ${finalAttrs.containerExecutor}/bin -type f); do
|
||||
ln -sf "$n" $out/bin
|
||||
done
|
||||
'' + optionalString sparkSupport ''
|
||||
|
||||
# these libraries are loaded at runtime by the JVM
|
||||
ln -s ${getLib cyrus_sasl}/lib/libsasl2.so $out/lib/native/libsasl2.so.2
|
||||
ln -s ${getLib openssl}/lib/libcrypto.so $out/lib/native/
|
||||
ln -s ${getLib zlib}/lib/libz.so.1 $out/lib/native/
|
||||
ln -s ${getLib zstd}/lib/libzstd.so.1 $out/lib/native/
|
||||
ln -s ${getLib bzip2}/lib/libbz2.so.1 $out/lib/native/
|
||||
ln -s ${getLib snappy}/lib/libsnappy.so.1 $out/lib/native/
|
||||
|
||||
# libjvm.so is in different paths for java 8 and 11
|
||||
# libnativetask.so in hadooop 3 and libhdfs.so in hadoop 2 depend on it
|
||||
find $out/lib/native/ -name 'libnativetask.so*' -o -name 'libhdfs.so*' | \
|
||||
xargs -n1 patchelf --add-rpath $(dirname $(find ${finalAttrs.jdk.home} -name libjvm.so | head -n1))
|
||||
|
||||
# NixOS/nixpkgs#193370
|
||||
# This workaround is needed to use protobuf 3.19
|
||||
# hadoop 3.3+ depends on protobuf 3.18, 3.2 depends on 3.8
|
||||
find $out/lib/native -name 'libhdfspp.so*' | \
|
||||
xargs -r -n1 patchelf --replace-needed libprotobuf.so.${
|
||||
if (versionAtLeast finalAttrs.version "3.3") then "18"
|
||||
else "8"
|
||||
} libprotobuf.so
|
||||
|
||||
patchelf --replace-needed libcrypto.so.1.1 libcrypto.so \
|
||||
$out/lib/native/{libhdfs{pp,}.so*,examples/{pipes-sort,wordcount-nopipe,wordcount-part,wordcount-simple}}
|
||||
|
||||
'' + ''
|
||||
for n in $(find $out/bin -type f ! -name "*.*"); do
|
||||
wrapProgram "$n"\
|
||||
--set-default JAVA_HOME ${finalAttrs.jdk.home}\
|
||||
--set-default HADOOP_HOME $out/\
|
||||
--run "test -d /etc/hadoop-conf && export HADOOP_CONF_DIR=\''${HADOOP_CONF_DIR-'/etc/hadoop-conf/'}"\
|
||||
--set-default HADOOP_CONF_DIR $out/etc/hadoop/\
|
||||
--prefix PATH : "${makeBinPath [ bash coreutils which]}"\
|
||||
--prefix JAVA_LIBRARY_PATH : "${makeLibraryPath finalAttrs.buildInputs}"
|
||||
done
|
||||
'' + (optionalString sparkSupport ''
|
||||
# Add the spark shuffle service jar to YARN
|
||||
cp ${spark.src}/yarn/spark-${spark.version}-yarn-shuffle.jar $out/lib/${untarDir}/share/hadoop/yarn/
|
||||
'' + libPatches;
|
||||
cp ${spark.src}/yarn/spark-${spark.version}-yarn-shuffle.jar $out/share/hadoop/yarn/
|
||||
'');
|
||||
|
||||
passthru = { inherit tests; };
|
||||
|
||||
@ -83,7 +120,7 @@ let
|
||||
maintainers = with maintainers; [ illustris ];
|
||||
platforms = attrNames platformAttrs;
|
||||
} (attrByPath [ stdenv.system "meta" ] {} platformAttrs);
|
||||
};
|
||||
});
|
||||
in
|
||||
{
|
||||
# Different version of hadoop support different java runtime versions
|
||||
@ -91,48 +128,29 @@ in
|
||||
hadoop_3_3 = common rec {
|
||||
pname = "hadoop";
|
||||
platformAttrs = rec {
|
||||
x86_64-linux = {
|
||||
version = "3.3.5";
|
||||
hash = "sha256-RG4FypL6I6YGF6ixeUbe3kcoGvFQQEFhfLfV9i50JSo=";
|
||||
};
|
||||
x86_64-darwin = x86_64-linux;
|
||||
aarch64-linux = {
|
||||
version = "3.3.5";
|
||||
hash = "sha256-qcKjbE881isauWBxIv+NY0UFbYit704/Re8Kdl6x1LA=";
|
||||
};
|
||||
aarch64-darwin = aarch64-linux;
|
||||
x86_64-linux = {
|
||||
version = "3.3.6";
|
||||
hash = "sha256-9RlQWcDUECrap//xf3sqhd+Qa8tuGZSHFjGfmXhkGgQ=";
|
||||
srcHash = "sha256-4OEsVhBNV9CJ+PN4FgCduUCVA9/el5yezSCZ6ko3+bU=";
|
||||
};
|
||||
x86_64-darwin = x86_64-linux;
|
||||
aarch64-linux = x86_64-linux // {
|
||||
hash = "sha256-5Lv2uA72BJEva5v2yncyPe5gKNCNOPNsoHffVt6KXQ0=";
|
||||
};
|
||||
aarch64-darwin = aarch64-linux;
|
||||
};
|
||||
untarDir = "${pname}-${platformAttrs.${stdenv.system}.version}";
|
||||
jdk = jdk11_headless;
|
||||
inherit openssl;
|
||||
# TODO: Package and add Intel Storage Acceleration Library
|
||||
nativeLibs = [ stdenv.cc.cc.lib protobuf zlib snappy ];
|
||||
libPatches = ''
|
||||
ln -s ${getLib cyrus_sasl}/lib/libsasl2.so $out/lib/${untarDir}/lib/native/libsasl2.so.2
|
||||
ln -s ${getLib openssl}/lib/libcrypto.so $out/lib/${untarDir}/lib/native/
|
||||
ln -s ${getLib zlib}/lib/libz.so.1 $out/lib/${untarDir}/lib/native/
|
||||
ln -s ${getLib zstd}/lib/libzstd.so.1 $out/lib/${untarDir}/lib/native/
|
||||
ln -s ${getLib bzip2}/lib/libbz2.so.1 $out/lib/${untarDir}/lib/native/
|
||||
'' + optionalString stdenv.isLinux ''
|
||||
# libjvm.so for Java >=11
|
||||
patchelf --add-rpath ${jdk.home}/lib/server $out/lib/${untarDir}/lib/native/libnativetask.so.1.0.0
|
||||
# Java 8 has libjvm.so at a different path
|
||||
patchelf --add-rpath ${jdk.home}/jre/lib/amd64/server $out/lib/${untarDir}/lib/native/libnativetask.so.1.0.0
|
||||
# NixOS/nixpkgs#193370
|
||||
# This workaround is needed to use protobuf 3.19
|
||||
patchelf --replace-needed libprotobuf.so.18 libprotobuf.so $out/lib/${untarDir}/lib/native/libhdfspp.so
|
||||
'';
|
||||
tests = nixosTests.hadoop;
|
||||
};
|
||||
hadoop_3_2 = common rec {
|
||||
hadoop_3_2 = common {
|
||||
pname = "hadoop";
|
||||
platformAttrs.x86_64-linux = {
|
||||
version = "3.2.4";
|
||||
hash = "sha256-qt2gpMr+NHuiVR+/zFRzRyRKG725/ZNBIM69z9J9wNw=";
|
||||
srcHash = "sha256-F9nGD3mZZ1eJf3Ec3AJGE9YBcL/HiagskcdKQhCn/sw=";
|
||||
};
|
||||
jdk = jdk8_headless;
|
||||
# not using native libs because of broken openssl_1_0_2 dependency
|
||||
# can be manually overridden
|
||||
tests = nixosTests.hadoop_3_2;
|
||||
};
|
||||
hadoop2 = common rec {
|
||||
@ -140,6 +158,7 @@ in
|
||||
platformAttrs.x86_64-linux = {
|
||||
version = "2.10.2";
|
||||
hash = "sha256-xhA4zxqIRGNhIeBnJO9dLKf/gx/Bq+uIyyZwsIafEyo=";
|
||||
srcHash = "sha256-ucxCyXiJo8aL6aNMhZgKEbn8sGKOoMPVREbMGSfSdAI=";
|
||||
};
|
||||
jdk = jdk8_headless;
|
||||
tests = nixosTests.hadoop2;
|
||||
|
@ -953,11 +953,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"project": {
|
||||
"hash": "sha256-D+UBv6JEbJKGfwTJU7/W5N6otOLW2lq6+euUKpoJ+To=",
|
||||
"hash": "sha256-UO9GBBoOzA1stMq8naXWtxomme6CVdlngVCLQlbZDv0=",
|
||||
"homepage": "https://registry.terraform.io/providers/jfrog/project",
|
||||
"owner": "jfrog",
|
||||
"repo": "terraform-provider-project",
|
||||
"rev": "v1.3.2",
|
||||
"rev": "v1.3.3",
|
||||
"spdx": "Apache-2.0",
|
||||
"vendorHash": "sha256-Tj+NefCIacwpPS9rNPPxV2lLeKsXJMZhf9Xo+Rzz6gI="
|
||||
},
|
||||
@ -1279,11 +1279,11 @@
|
||||
"vendorHash": "sha256-4ulRYzb4bzk0TztT04CwqlnMGw8tp7YnoCm2/NqGN7Y="
|
||||
},
|
||||
"vultr": {
|
||||
"hash": "sha256-65QWogqHR5RYUXBYjM50PNQSuVWYGtqtULTGNy1ivag=",
|
||||
"hash": "sha256-8pj+udTNTjT/tXggOaIOThRQkYoI3v68rEssSUojM2A=",
|
||||
"homepage": "https://registry.terraform.io/providers/vultr/vultr",
|
||||
"owner": "vultr",
|
||||
"repo": "terraform-provider-vultr",
|
||||
"rev": "v2.16.3",
|
||||
"rev": "v2.16.4",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
@ -5,16 +5,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "terragrunt";
|
||||
version = "0.52.1";
|
||||
version = "0.52.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gruntwork-io";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-t1GAcOZAYdfrI0lsyKUEBbnJaGzuFP0+Mz3Yrv4Bmik=";
|
||||
hash = "sha256-o/4L7TBdFFHuPOKAO/wP0IBixQtZHGr1GSNlsEpq710=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-NSrZVLQ3Qbnp94qCV7NbrEav/7LCRbTov+B2vzbuvdM=";
|
||||
vendorHash = "sha256-RmzSKt5qt9Qb4GDrfs4dJEhGQW/jFbXPn+AOLzEyo6c=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sacc";
|
||||
version = "1.06";
|
||||
version = "1.07";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tar.gz";
|
||||
hash = "sha512-eoleQy4dKLfZsrsqUybKMjUIdqLIDTncbBnnU0fXKkhH8apP8R8H6Kmt6hTqcbhNcIkNzBcP9s4Ld54dZYa0+g==";
|
||||
hash = "sha256-LdEeZH+JWb7iEEzikAXaxG0N5GMPxjgTId4THLgdU2w=";
|
||||
};
|
||||
|
||||
inherit patches;
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ callPackage }: builtins.mapAttrs (pname: attrs: callPackage ./generic.nix (attrs // { inherit pname; })) {
|
||||
signal-desktop = {
|
||||
dir = "Signal";
|
||||
version = "6.32.0";
|
||||
hash = "sha256-FZ2wG3nkgIndeoUfXag/9jftXGDSY/MNpT8mqSZpJzA=";
|
||||
version = "6.34.1";
|
||||
hash = "sha256-1kffRXPQmtxIsLZVOgPXDnxUmY59q+1umy25cditRhw=";
|
||||
};
|
||||
signal-desktop-beta = {
|
||||
dir = "Signal Beta";
|
||||
version = "6.33.0-beta.1";
|
||||
hash = "sha256-FLCZvRYUysiE8BLMJVnn0hOkA3km0z383AjN6JvOyWI=";
|
||||
version = "6.35.0-beta.2";
|
||||
hash = "sha256-TgzqKGt3ojkjq+mIu0EtqXfnnZ/xulWjiuS5/0dlwIM=";
|
||||
};
|
||||
}
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tremotesf";
|
||||
version = "2.4.0";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "equeim";
|
||||
repo = "tremotesf2";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-TKtBgMpCWIUl1bohAKCbTcZX2uaPmzeWut/OeNs/rME=";
|
||||
hash = "sha256-mxk2BRUuet3XSNaKt2Dnnxe5dliazd1ArRSnKyoAp1s=";
|
||||
# We need this for src/libtremotesf
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
@ -41,6 +41,10 @@ buildGoModule rec {
|
||||
${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
|
||||
installShellCompletion rclone.$shell
|
||||
done
|
||||
|
||||
# filesystem helpers
|
||||
ln -s $out/bin/rclone $out/bin/rclonefs
|
||||
ln -s $out/bin/rclone $out/bin/mount.rclone
|
||||
'' + lib.optionalString (enableCmount && !stdenv.isDarwin)
|
||||
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount,
|
||||
# as the setuid wrapper is required as non-root on NixOS.
|
||||
|
@ -1,26 +1,62 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, tbb, zlib, python3, perl }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, perl
|
||||
, python3
|
||||
, tbb
|
||||
, zlib
|
||||
, runCommand
|
||||
, bowtie2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bowtie2";
|
||||
version = "2.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BenLangmead";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Bem4SHY/74suZPDbw/rwKMLBn3bRq5ooHbBoVnKuYk0=";
|
||||
repo = "bowtie2";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-rWeopeYuCk9ZhJX2SFCcxZWcjXjjTiVRiwkzLQcIgd0=";
|
||||
};
|
||||
|
||||
# because of this flag, gcc on aarch64 cannot find the Threads
|
||||
# Could NOT find Threads (missing: Threads_FOUND)
|
||||
# TODO: check with other distros and report upstream
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "-m64" ""
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ tbb zlib python3 perl ];
|
||||
|
||||
cmakeFlags = lib.optional (!stdenv.hostPlatform.isx86) ["-DCMAKE_CXX_FLAGS=-I${finalAttrs.src}/third_party"];
|
||||
|
||||
# ctest fails because of missing dependencies between tests
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = {
|
||||
ctest = runCommand "${finalAttrs.pname}-test" { } ''
|
||||
mkdir $out
|
||||
${lib.getExe bowtie2} -x ${finalAttrs.src}/example/index/lambda_virus ${finalAttrs.src}/example/reads/longreads.fq -u 10
|
||||
${bowtie2}/bin/bowtie2-build-s -c GGGCGGCGACCTCGCGGGTTTTCGCTA $out/small
|
||||
${bowtie2}/bin/bowtie2-inspect-s $out/small
|
||||
${bowtie2}/bin/bowtie2-build-l -c GGGCGGCGACCTCGCGGGTTTTCGCTA $out/large
|
||||
${bowtie2}/bin/bowtie2-inspect-l $out/large
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "An ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Plus;
|
||||
homepage = "http://bowtie-bio.sf.net/bowtie2";
|
||||
changelog = "https://github.com/BenLangmead/bowtie2/releases/tag/${finalAttrs.src.rev}";
|
||||
maintainers = with maintainers; [ rybern ];
|
||||
platforms = platforms.all;
|
||||
broken = stdenv.isAarch64; # only x86 is supported
|
||||
mainProgram = "bowtie2";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -24,6 +24,6 @@ buildKodiAddon rec {
|
||||
homepage = "https://github.com/CastagnaIT/plugin.video.netflix";
|
||||
description = "Netflix VOD Services Add-on";
|
||||
license = licenses.mit;
|
||||
maintainers = teams.kodi.members;
|
||||
maintainers = teams.kodi.members ++ [ maintainers.pks ];
|
||||
};
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six, requests, infotagger, inputstreamhelper }:
|
||||
{ lib, buildKodiAddon, fetchFromGitHub, six, requests, infotagger, inputstreamhelper }:
|
||||
|
||||
buildKodiAddon rec {
|
||||
pname = "youtube";
|
||||
namespace = "plugin.video.youtube";
|
||||
version = "7.0.1";
|
||||
version = "7.0.2.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirrors.kodi.tv/addons/nexus/${namespace}/${namespace}-${version}.zip";
|
||||
sha256 = "sha256-Wdju7d2kFX0V1J1TB75qEVq0UWN2xYYFNlD8UTt1New=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "anxdpanic";
|
||||
repo = "plugin.video.youtube";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BUeE/8oQYBiq4XgIp4nv0hjEQz3nnkDWCnAf4kpptwk=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -19,9 +21,6 @@ buildKodiAddon rec {
|
||||
|
||||
passthru = {
|
||||
pythonPath = "resources/lib";
|
||||
updateScript = addonUpdateScript {
|
||||
attrPath = "kodi.packages.youtube";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib, stdenv, fetchDartDeps, runCommand, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin }:
|
||||
{ lib, stdenv, callPackage, fetchDartDeps, runCommand, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }:
|
||||
|
||||
{ pubGetScript ? "dart pub get"
|
||||
{ sdkSetupScript ? ""
|
||||
, pubGetScript ? "dart pub get"
|
||||
|
||||
# Output type to produce. Can be any kind supported by dart
|
||||
# https://dart.dev/tools/dart-compile#types-of-output
|
||||
@ -18,12 +19,16 @@
|
||||
, dartEntryPoints ? null
|
||||
# Used when wrapping aot, jit, kernel, and js builds.
|
||||
# Set to null to disable wrapping.
|
||||
, dartRuntimeCommand ?
|
||||
if dartOutputType == "aot-snapshot" then "${dart}/bin/dartaotruntime"
|
||||
else if (dartOutputType == "jit-snapshot" || dartOutputType == "kernel") then "${dart}/bin/dart"
|
||||
else if dartOutputType == "js" then "${nodejs}/bin/node"
|
||||
else null
|
||||
, dartRuntimeCommand ? if dartOutputType == "aot-snapshot" then "${dart}/bin/dartaotruntime"
|
||||
else if (dartOutputType == "jit-snapshot" || dartOutputType == "kernel") then "${dart}/bin/dart"
|
||||
else if dartOutputType == "js" then "${nodejs}/bin/node"
|
||||
else null
|
||||
|
||||
, runtimeDependencies ? [ ]
|
||||
, extraWrapProgramArgs ? ""
|
||||
, customPackageOverrides ? { }
|
||||
, autoDepsList ? false
|
||||
, depsListFile ? null
|
||||
, pubspecLockFile ? null
|
||||
, vendorHash ? ""
|
||||
, ...
|
||||
@ -38,37 +43,81 @@ let
|
||||
'';
|
||||
}) {
|
||||
buildDrvArgs = args;
|
||||
inherit pubGetScript vendorHash pubspecLockFile;
|
||||
inherit sdkSetupScript pubGetScript vendorHash pubspecLockFile;
|
||||
};
|
||||
inherit (dartHooks.override { inherit dart; }) dartConfigHook dartBuildHook dartInstallHook;
|
||||
in
|
||||
assert !(builtins.isString dartOutputType && dartOutputType != "") ->
|
||||
throw "dartOutputType must be a non-empty string";
|
||||
stdenv.mkDerivation (args // {
|
||||
inherit pubGetScript dartCompileCommand dartOutputType dartRuntimeCommand
|
||||
dartCompileFlags dartJitFlags;
|
||||
inherit (dartHooks.override { inherit dart; }) dartConfigHook dartBuildHook dartInstallHook dartFixupHook;
|
||||
|
||||
baseDerivation = stdenv.mkDerivation (finalAttrs: args // {
|
||||
inherit sdkSetupScript pubGetScript dartCompileCommand dartOutputType
|
||||
dartRuntimeCommand dartCompileFlags dartJitFlags runtimeDependencies;
|
||||
|
||||
dartEntryPoints =
|
||||
if (dartEntryPoints != null)
|
||||
then writeText "entrypoints.json" (builtins.toJSON dartEntryPoints)
|
||||
else null;
|
||||
|
||||
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [
|
||||
dart
|
||||
dartDeps
|
||||
dartConfigHook
|
||||
dartBuildHook
|
||||
dartInstallHook
|
||||
makeWrapper
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.sigtool
|
||||
];
|
||||
runtimeDependencyLibraryPath = lib.makeLibraryPath finalAttrs.runtimeDependencies;
|
||||
|
||||
# When stripping, it seems some ELF information is lost and the dart VM cli
|
||||
# runs instead of the expected program. Don't strip if it's an exe output.
|
||||
dontStrip = args.dontStrip or (dartOutputType == "exe");
|
||||
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [
|
||||
dart
|
||||
dartDeps
|
||||
dartConfigHook
|
||||
dartBuildHook
|
||||
dartInstallHook
|
||||
dartFixupHook
|
||||
makeWrapper
|
||||
jq
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.sigtool
|
||||
];
|
||||
|
||||
passthru = { inherit dartDeps; } // (args.passthru or { });
|
||||
preUnpack = ''
|
||||
${lib.optionalString (!autoDepsList) ''
|
||||
if ! { [ '${lib.boolToString (depsListFile != null)}' = 'true' ] ${lib.optionalString (depsListFile != null) "&& cmp -s <(jq -Sc . '${depsListFile}') <(jq -Sc . '${finalAttrs.passthru.dartDeps.depsListFile}')"}; }; then
|
||||
echo 1>&2 -e '\nThe dependency list file was either not given or differs from the expected result.' \
|
||||
'\nPlease choose one of the following solutions:' \
|
||||
'\n - Duplicate the following file and pass it to the depsListFile argument.' \
|
||||
'\n ${finalAttrs.passthru.dartDeps.depsListFile}' \
|
||||
'\n - Set autoDepsList to true (not supported by Hydra or permitted in Nixpkgs)'.
|
||||
exit 1
|
||||
fi
|
||||
''}
|
||||
${args.preUnpack or ""}
|
||||
'';
|
||||
|
||||
meta = (args.meta or { }) // { platforms = args.meta.platforms or dart.meta.platforms; };
|
||||
})
|
||||
# When stripping, it seems some ELF information is lost and the dart VM cli
|
||||
# runs instead of the expected program. Don't strip if it's an exe output.
|
||||
dontStrip = args.dontStrip or (dartOutputType == "exe");
|
||||
|
||||
passthru = { inherit dartDeps; } // (args.passthru or { });
|
||||
|
||||
meta = (args.meta or { }) // { platforms = args.meta.platforms or dart.meta.platforms; };
|
||||
});
|
||||
|
||||
packageOverrideRepository = (callPackage ../../../development/compilers/dart/package-overrides { }) // customPackageOverrides;
|
||||
productPackages = builtins.filter (package: package.kind != "dev")
|
||||
(if autoDepsList
|
||||
then lib.importJSON dartDeps.depsListFile
|
||||
else
|
||||
if depsListFile == null
|
||||
then [ ]
|
||||
else lib.importJSON depsListFile);
|
||||
in
|
||||
assert !(builtins.isString dartOutputType && dartOutputType != "") ->
|
||||
throw "dartOutputType must be a non-empty string";
|
||||
builtins.foldl'
|
||||
(prev: package:
|
||||
if packageOverrideRepository ? ${package.name}
|
||||
then
|
||||
prev.overrideAttrs
|
||||
(packageOverrideRepository.${package.name} {
|
||||
inherit (package)
|
||||
name
|
||||
version
|
||||
kind
|
||||
source
|
||||
dependencies;
|
||||
})
|
||||
else prev)
|
||||
baseDerivation
|
||||
productPackages
|
||||
|
@ -3,6 +3,9 @@
|
||||
dartConfigHook() {
|
||||
echo "Executing dartConfigHook"
|
||||
|
||||
echo "Setting up SDK"
|
||||
eval "$sdkSetupScript"
|
||||
|
||||
echo "Installing dependencies"
|
||||
eval doPubGet "$pubGetScript" --offline
|
||||
|
||||
|
@ -0,0 +1,32 @@
|
||||
# shellcheck shell=bash
|
||||
|
||||
dartFixupHook() {
|
||||
echo "Executing dartFixupHook"
|
||||
|
||||
declare -a wrapProgramArgs
|
||||
|
||||
# Add runtime library dependencies to the LD_LIBRARY_PATH.
|
||||
# For some reason, the RUNPATH of the executable is not used to load dynamic libraries in dart:ffi with DynamicLibrary.open().
|
||||
#
|
||||
# This could alternatively be fixed with patchelf --add-needed, but this would cause all the libraries to be opened immediately,
|
||||
# which is not what application authors expect.
|
||||
echo "$runtimeDependencyLibraryPath"
|
||||
if [[ ! -z "$runtimeDependencyLibraryPath" ]]; then
|
||||
wrapProgramArgs+=(--suffix LD_LIBRARY_PATH : \"$runtimeDependencyLibraryPath\")
|
||||
fi
|
||||
|
||||
if [[ ! -z "$extraWrapProgramArgs" ]]; then
|
||||
wrapProgramArgs+=("$extraWrapProgramArgs")
|
||||
fi
|
||||
|
||||
if [ ${#wrapProgramArgs[@]} -ne 0 ]; then
|
||||
for f in "$out"/bin/*; do
|
||||
echo "Wrapping $f..."
|
||||
eval "wrapProgram \"$f\" ${wrapProgramArgs[@]}"
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Finished dartFixupHook"
|
||||
}
|
||||
|
||||
postFixupHooks+=(dartFixupHook)
|
@ -12,4 +12,7 @@
|
||||
dartInstallHook = makeSetupHook {
|
||||
name = "dart-install-hook";
|
||||
} ./dart-install-hook.sh;
|
||||
dartFixupHook = makeSetupHook {
|
||||
name = "dart-fixup-hook";
|
||||
} ./dart-fixup-hook.sh;
|
||||
}
|
||||
|
@ -169,6 +169,8 @@ let
|
||||
dart pub deps --json | jq .packages > $out
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontInstall = true;
|
||||
} // (removeAttrs buildDrvInheritArgs [ "name" "pname" ]));
|
||||
|
||||
# As of Dart 3.0.0, Pub checks the revision of cached Git-sourced packages.
|
||||
|
@ -1,34 +1,28 @@
|
||||
{ lib
|
||||
, callPackage
|
||||
, stdenvNoCC
|
||||
, runCommand
|
||||
, makeWrapper
|
||||
, wrapGAppsHook
|
||||
, llvmPackages_13
|
||||
, fetchDartDeps
|
||||
, buildDartApplication
|
||||
, cacert
|
||||
, glib
|
||||
, flutter
|
||||
, jq
|
||||
}:
|
||||
|
||||
# absolutely no mac support for now
|
||||
|
||||
{ pubGetScript ? "flutter pub get"
|
||||
, flutterBuildFlags ? [ ]
|
||||
, runtimeDependencies ? [ ]
|
||||
, customPackageOverrides ? { }
|
||||
, autoDepsList ? false
|
||||
, depsListFile ? null
|
||||
, vendorHash ? ""
|
||||
, pubspecLockFile ? null
|
||||
, nativeBuildInputs ? [ ]
|
||||
, preUnpack ? ""
|
||||
, postFixup ? ""
|
||||
, extraWrapProgramArgs ? ""
|
||||
, ...
|
||||
}@args:
|
||||
let
|
||||
flutterSetupScript = ''
|
||||
|
||||
(buildDartApplication.override {
|
||||
dart = flutter;
|
||||
fetchDartDeps = fetchDartDeps.override { dart = flutter; };
|
||||
}) (args // {
|
||||
sdkSetupScript = ''
|
||||
# Pub needs SSL certificates. Dart normally looks in a hardcoded path.
|
||||
# https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48
|
||||
#
|
||||
@ -54,136 +48,56 @@ let
|
||||
flutter config --enable-linux-desktop >/dev/null
|
||||
'';
|
||||
|
||||
deps = callPackage ../dart/fetch-dart-deps { dart = flutter; } {
|
||||
sdkSetupScript = flutterSetupScript;
|
||||
inherit pubGetScript vendorHash pubspecLockFile;
|
||||
buildDrvArgs = args;
|
||||
};
|
||||
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ wrapGAppsHook ];
|
||||
buildInputs = (args.buildInputs or [ ]) ++ [ glib ];
|
||||
|
||||
baseDerivation = llvmPackages_13.stdenv.mkDerivation (finalAttrs: args // {
|
||||
inherit flutterBuildFlags runtimeDependencies;
|
||||
dontDartBuild = true;
|
||||
buildPhase = args.buildPhase or ''
|
||||
runHook preBuild
|
||||
|
||||
outputs = [ "out" "debug" ];
|
||||
mkdir -p build/flutter_assets/fonts
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
deps
|
||||
flutter
|
||||
jq
|
||||
glib
|
||||
wrapGAppsHook
|
||||
] ++ nativeBuildInputs;
|
||||
doPubGet flutter pub get --offline -v
|
||||
flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
|
||||
|
||||
dontWrapGApps = true;
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
preUnpack = ''
|
||||
${lib.optionalString (!autoDepsList) ''
|
||||
if ! { [ '${lib.boolToString (depsListFile != null)}' = 'true' ] ${lib.optionalString (depsListFile != null) "&& cmp -s <(jq -Sc . '${depsListFile}') <(jq -Sc . '${finalAttrs.passthru.depsListFile}')"}; }; then
|
||||
echo 1>&2 -e '\nThe dependency list file was either not given or differs from the expected result.' \
|
||||
'\nPlease choose one of the following solutions:' \
|
||||
'\n - Duplicate the following file and pass it to the depsListFile argument.' \
|
||||
'\n ${finalAttrs.passthru.depsListFile}' \
|
||||
'\n - Set autoDepsList to true (not supported by Hydra or permitted in Nixpkgs)'.
|
||||
exit 1
|
||||
fi
|
||||
''}
|
||||
dontDartInstall = true;
|
||||
installPhase = args.installPhase or ''
|
||||
runHook preInstall
|
||||
|
||||
${preUnpack}
|
||||
'';
|
||||
built=build/linux/*/release/bundle
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
mkdir -p $out/bin
|
||||
mv $built $out/app
|
||||
|
||||
${flutterSetupScript}
|
||||
for f in $(find $out/app -iname "*.desktop" -type f); do
|
||||
install -D $f $out/share/applications/$(basename $f)
|
||||
done
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
for f in $(find $out/app -maxdepth 1 -type f); do
|
||||
ln -s $f $out/bin/$(basename $f)
|
||||
done
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
# make *.so executable
|
||||
find $out/app -iname "*.so" -type f -exec chmod +x {} +
|
||||
|
||||
mkdir -p build/flutter_assets/fonts
|
||||
# remove stuff like /build/source/packages/ubuntu_desktop_installer/linux/flutter/ephemeral
|
||||
for f in $(find $out/app -executable -type f); do
|
||||
if patchelf --print-rpath "$f" | grep /build; then # this ignores static libs (e,g. libapp.so) also
|
||||
echo "strip RPath of $f"
|
||||
newrp=$(patchelf --print-rpath $f | sed -r "s|/build.*ephemeral:||g" | sed -r "s|/build.*profile:||g")
|
||||
patchelf --set-rpath "$newrp" "$f"
|
||||
fi
|
||||
done
|
||||
|
||||
doPubGet flutter pub get --offline -v
|
||||
flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") finalAttrs.flutterBuildFlags)}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
built=build/linux/*/release/bundle
|
||||
|
||||
mkdir -p $out/bin
|
||||
mv $built $out/app
|
||||
|
||||
for f in $(find $out/app -iname "*.desktop" -type f); do
|
||||
install -D $f $out/share/applications/$(basename $f)
|
||||
done
|
||||
|
||||
for f in $(find $out/app -maxdepth 1 -type f); do
|
||||
ln -s $f $out/bin/$(basename $f)
|
||||
done
|
||||
|
||||
# make *.so executable
|
||||
find $out/app -iname "*.so" -type f -exec chmod +x {} +
|
||||
|
||||
# remove stuff like /build/source/packages/ubuntu_desktop_installer/linux/flutter/ephemeral
|
||||
for f in $(find $out/app -executable -type f); do
|
||||
if patchelf --print-rpath "$f" | grep /build; then # this ignores static libs (e,g. libapp.so) also
|
||||
echo "strip RPath of $f"
|
||||
newrp=$(patchelf --print-rpath $f | sed -r "s|/build.*ephemeral:||g" | sed -r "s|/build.*profile:||g")
|
||||
patchelf --set-rpath "$newrp" "$f"
|
||||
fi
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Add runtime library dependencies to the LD_LIBRARY_PATH.
|
||||
# For some reason, the RUNPATH of the executable is not used to load dynamic libraries in dart:ffi with DynamicLibrary.open().
|
||||
#
|
||||
# This could alternatively be fixed with patchelf --add-needed, but this would cause all the libraries to be opened immediately,
|
||||
# which is not what application authors expect.
|
||||
for f in "$out"/bin/*; do
|
||||
wrapProgram "$f" \
|
||||
--suffix LD_LIBRARY_PATH : '${lib.makeLibraryPath finalAttrs.runtimeDependencies}' \
|
||||
''${gappsWrapperArgs[@]} \
|
||||
${extraWrapProgramArgs}
|
||||
done
|
||||
|
||||
${postFixup}
|
||||
'';
|
||||
|
||||
passthru = (args.passthru or {}) // {
|
||||
inherit (deps) depsListFile;
|
||||
};
|
||||
});
|
||||
|
||||
packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides;
|
||||
productPackages = builtins.filter (package: package.kind != "dev")
|
||||
(if autoDepsList
|
||||
then lib.importJSON deps.depsListFile
|
||||
else
|
||||
if depsListFile == null
|
||||
then [ ]
|
||||
else lib.importJSON depsListFile);
|
||||
in
|
||||
builtins.foldl'
|
||||
(prev: package:
|
||||
if packageOverrideRepository ? ${package.name}
|
||||
then
|
||||
prev.overrideAttrs
|
||||
(packageOverrideRepository.${package.name} {
|
||||
inherit (package)
|
||||
name
|
||||
version
|
||||
kind
|
||||
source
|
||||
dependencies;
|
||||
})
|
||||
else prev)
|
||||
baseDerivation
|
||||
productPackages
|
||||
dontWrapGApps = true;
|
||||
extraWrapProgramArgs = ''
|
||||
''${gappsWrapperArgs[@]} \
|
||||
${extraWrapProgramArgs}
|
||||
'';
|
||||
})
|
||||
|
@ -195,7 +195,7 @@ fn handle_path(
|
||||
.wrap_err_with(|| format!("failed to resolve symlink of {:?}", source))?;
|
||||
|
||||
// Create the link, then push its target to the queue
|
||||
if !target.exists() {
|
||||
if !target.exists() && !target.is_symlink() {
|
||||
unix::fs::symlink(&link_target, &target).wrap_err_with(|| {
|
||||
format!("failed to symlink {:?} to {:?}", link_target, target)
|
||||
})?;
|
||||
|
33
pkgs/by-name/al/alpine-make-rootfs/package.nix
Normal file
33
pkgs/by-name/al/alpine-make-rootfs/package.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ stdenvNoCC, lib, fetchFromGitHub, makeWrapper, apk-tools, coreutils, findutils, gnugrep, gnused, gnutar, gzip, rsync, util-linux, wget
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "alpine-make-rootfs";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alpinelinux";
|
||||
repo = "alpine-make-rootfs";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-B5qYQ6ah4hFZfb3S5vwgevh7aEHI3YGLoA+IyipaDck=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
dontBuild = true;
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/alpine-make-rootfs --set PATH ${lib.makeBinPath [
|
||||
apk-tools coreutils findutils gnugrep gnused gnutar gzip rsync util-linux wget
|
||||
]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/alpinelinux/alpine-make-rootfs";
|
||||
description = "Make customized Alpine Linux rootfs (base image) for containers";
|
||||
mainProgram = "alpine-make-rootfs";
|
||||
maintainers = with maintainers; [ danielsidhion ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -4,27 +4,22 @@
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "argagg";
|
||||
version = "0.4.6";
|
||||
version = "0.4.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vietjtnguyen";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-MCtlAPfwdJpgfS8IH+zlcgaaxZ5AsP4hJvbZAFtOa4o=";
|
||||
repo = "argagg";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-G0PzoKpUyb1MaziLvHgasq98jPODUu4EgPzywRjuIN8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix compilation of macro catch statement
|
||||
./0001-catch.diff
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/vietjtnguyen/argagg";
|
||||
description = "Argument Aggregator";
|
||||
longDescription = ''
|
||||
@ -38,9 +33,9 @@ stdenv.mkDerivation rec {
|
||||
types until you access them, so the result structures end up just being
|
||||
pointers into the original command line argument C-strings.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = with platforms; all;
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
platforms = lib.platforms.all;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
})
|
@ -4,29 +4,29 @@
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "argtable";
|
||||
version = "3.2.1";
|
||||
srcVersion = "v${version}.52f24e5";
|
||||
version = "3.2.2";
|
||||
srcVersion = "v${finalAttrs.version}.f25c624";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argtable";
|
||||
repo = "argtable3";
|
||||
rev = srcVersion;
|
||||
hash = "sha256-HFsk91uJXQ0wpvAQxP4/yZwRQx9kLH7KgB3Y/+zcZC0=";
|
||||
rev = finalAttrs.srcVersion;
|
||||
hash = "sha256-X89xFLDs6NEgjzzwy8kplvTgukQd/CV3Xa9A3JXecf4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_SHARED_LIBS=ON"
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs tools/build
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/argtable/argtable3";
|
||||
description = "A single-file, ANSI C command-line parsing library";
|
||||
longDescription = ''
|
||||
@ -37,11 +37,11 @@ stdenv.mkDerivation rec {
|
||||
handling logic and textual descriptions of the command line syntax, which
|
||||
are essential but tedious to implement for a robust CLI program.
|
||||
'';
|
||||
license = with licenses; bsd3;
|
||||
maintainers = with maintainers; [ AndersonTorres artuuge ];
|
||||
platforms = with platforms; all;
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ AndersonTorres artuuge ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
})
|
||||
# TODO: a NixOS test suite
|
||||
# TODO: multiple outputs
|
||||
# TODO: documentation
|
2
pkgs/by-name/ba/bashly/Gemfile
Normal file
2
pkgs/by-name/ba/bashly/Gemfile
Normal file
@ -0,0 +1,2 @@
|
||||
source 'https://rubygems.org'
|
||||
gem 'bashly'
|
59
pkgs/by-name/ba/bashly/Gemfile.lock
Normal file
59
pkgs/by-name/ba/bashly/Gemfile.lock
Normal file
@ -0,0 +1,59 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
bashly (1.1.1)
|
||||
colsole (>= 0.8.1, < 2)
|
||||
completely (~> 0.6.1)
|
||||
filewatcher (~> 2.0)
|
||||
gtx (~> 0.1)
|
||||
lp (~> 0.2)
|
||||
mister_bin (~> 0.7)
|
||||
psych (>= 3.3.2, < 7)
|
||||
tty-markdown (~> 0.7)
|
||||
colsole (1.0.0)
|
||||
completely (0.6.1)
|
||||
colsole (>= 0.8.1, < 2)
|
||||
mister_bin (~> 0.7)
|
||||
docopt_ng (0.7.1)
|
||||
filewatcher (2.1.0)
|
||||
module_methods (~> 0.1.0)
|
||||
gtx (0.1.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
lp (0.2.1)
|
||||
mister_bin (0.7.6)
|
||||
colsole (>= 0.8.1, < 2)
|
||||
docopt_ng (~> 0.7, >= 0.7.1)
|
||||
module_methods (0.1.0)
|
||||
pastel (0.8.0)
|
||||
tty-color (~> 0.5)
|
||||
psych (5.1.1.1)
|
||||
stringio
|
||||
rexml (3.2.6)
|
||||
rouge (4.1.3)
|
||||
stringio (3.0.8)
|
||||
strings (0.2.1)
|
||||
strings-ansi (~> 0.2)
|
||||
unicode-display_width (>= 1.5, < 3.0)
|
||||
unicode_utils (~> 1.4)
|
||||
strings-ansi (0.2.0)
|
||||
tty-color (0.6.0)
|
||||
tty-markdown (0.7.2)
|
||||
kramdown (>= 1.16.2, < 3.0)
|
||||
pastel (~> 0.8)
|
||||
rouge (>= 3.14, < 5.0)
|
||||
strings (~> 0.2.0)
|
||||
tty-color (~> 0.5)
|
||||
tty-screen (~> 0.8)
|
||||
tty-screen (0.8.1)
|
||||
unicode-display_width (2.5.0)
|
||||
unicode_utils (1.4.0)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
bashly
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.26
|
231
pkgs/by-name/ba/bashly/gemset.nix
Normal file
231
pkgs/by-name/ba/bashly/gemset.nix
Normal file
@ -0,0 +1,231 @@
|
||||
{
|
||||
bashly = {
|
||||
dependencies = ["colsole" "completely" "filewatcher" "gtx" "lp" "mister_bin" "psych" "tty-markdown"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1rhzbpv8j5qcm5a84m4vzrryb0j8z90q6djbpid4ay2fr492kvkq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.1";
|
||||
};
|
||||
colsole = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1fvf6dz2wsvjk7q24z0dm8lajq3p2l6i5ywf3mxj683rmhwq49bg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.0.0";
|
||||
};
|
||||
completely = {
|
||||
dependencies = ["colsole" "mister_bin"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "01nk1cigb09z6rjy41qrhqf58cgpqm43xwjdkz33mfmwrnz04cw1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.1";
|
||||
};
|
||||
docopt_ng = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0rsnl5s7k2s1gl4n4dg68ssg577kf11sl4a4l2lb2fpswj718950";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.1";
|
||||
};
|
||||
filewatcher = {
|
||||
dependencies = ["module_methods"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "03f9v57c5zag09mi10yjhdx7y0vv2w5wrnwzbij9hhkwh43rk077";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.0";
|
||||
};
|
||||
gtx = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10hfhicvv371gy1i16x6vry1xglvxl0zh7qr6f14pqsx32qih6ff";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.0";
|
||||
};
|
||||
kramdown = {
|
||||
dependencies = ["rexml"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1ic14hdcqxn821dvzki99zhmcy130yhv5fqfffkcf87asv5mnbmn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.0";
|
||||
};
|
||||
lp = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ns1aza32n929w7smg1dsn4g6qlfi7k1jrvssyn35cicmwn0gyyr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.1";
|
||||
};
|
||||
mister_bin = {
|
||||
dependencies = ["colsole" "docopt_ng"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xx8cxvzcn47zsnshcllf477x4rbssrchvp76929qnsg5k9q7fas";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.6";
|
||||
};
|
||||
module_methods = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1886wjscfripgzlmyvcd0jmlzwr6hxvklm2a5rm32dw5bf7bvjki";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.0";
|
||||
};
|
||||
pastel = {
|
||||
dependencies = ["tty-color"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.0";
|
||||
};
|
||||
psych = {
|
||||
dependencies = ["stringio"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0wjzrkssjfjpynij5dpycyflhqbjvi1gc2j73xgq3b196s1d3c24";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.1.1.1";
|
||||
};
|
||||
rexml = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.6";
|
||||
};
|
||||
rouge = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19drl3x8fw65v3mpy7fk3cf3dfrywz5alv98n2rm4pp04vdn71lw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
};
|
||||
stringio = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.8";
|
||||
};
|
||||
strings = {
|
||||
dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1yynb0qhhhplmpzavfrrlwdnd1rh7rkwzcs4xf0mpy2wr6rr6clk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.1";
|
||||
};
|
||||
strings-ansi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.0";
|
||||
};
|
||||
tty-color = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.0";
|
||||
};
|
||||
tty-markdown = {
|
||||
dependencies = ["kramdown" "pastel" "rouge" "strings" "tty-color" "tty-screen"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "04f599zn5rfndq4d9l0acllfpc041bzdkkz2h6x0dl18f2wivn0y";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.2";
|
||||
};
|
||||
tty-screen = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.1";
|
||||
};
|
||||
unicode-display_width = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.0";
|
||||
};
|
||||
unicode_utils = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.0";
|
||||
};
|
||||
}
|
38
pkgs/by-name/ba/bashly/package.nix
Normal file
38
pkgs/by-name/ba/bashly/package.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{ lib
|
||||
, stdenvNoCC
|
||||
, bundlerApp
|
||||
}:
|
||||
|
||||
let
|
||||
bashlyBundlerApp = bundlerApp {
|
||||
pname = "bashly";
|
||||
gemdir = ./.;
|
||||
exes = [ "bashly" ];
|
||||
};
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
name = "bashly";
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out;
|
||||
cd $out;
|
||||
|
||||
mkdir bin; pushd bin;
|
||||
ln -vs ${bashlyBundlerApp}/bin/bashly;
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Bash command line framework and CLI generator";
|
||||
homepage = "https://github.com/DannyBen/bashly";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "bashly";
|
||||
maintainers = with lib.maintainers; [ drupol ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
127
pkgs/by-name/db/dbus-cpp/package.nix
Normal file
127
pkgs/by-name/db/dbus-cpp/package.nix
Normal file
@ -0,0 +1,127 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, gitUpdater
|
||||
, testers
|
||||
, boost
|
||||
, cmake
|
||||
, dbus
|
||||
, doxygen
|
||||
, graphviz
|
||||
, gtest
|
||||
, libxml2
|
||||
, lomiri
|
||||
, pkg-config
|
||||
, process-cpp
|
||||
, properties-cpp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dbus-cpp";
|
||||
version = "5.0.3";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/core/lib-cpp/dbus-cpp";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-t8SzPRUuKeEchT8vAsITf8MwbgHA+mR5C9CnkdVyX7s=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"doc"
|
||||
"examples"
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Handle already-stolen dbus call better
|
||||
# Remove when version > 5.0.3
|
||||
(fetchpatch {
|
||||
name = "0001-dbus-cpp-src-Dont-steal-a-pending-dbus-call-more-then-once.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/commit/9f3d1ff2b1c6c732285949c3dbb35e40cf55ea92.patch";
|
||||
hash = "sha256-xzOCIJVsK2J+X9RsV930R9uw6h4UxqwSaNOgv8v4qQU=";
|
||||
})
|
||||
|
||||
# Fix GCC13 compilation
|
||||
# Remove when version > 5.0.3
|
||||
(fetchpatch {
|
||||
name = "0002-dbus-cpp-Add-missing-headers-for-GCC13.patch";
|
||||
url = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/commit/c761b1eec084962dbe64d35d7f7b86dcbe57a3f7.patch";
|
||||
hash = "sha256-/tKe3iHWxP9jWtpdgwwRynj8565u9LxCt4WXJDXzgX4=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace doc/CMakeLists.txt \
|
||||
--replace 'DESTINATION share/''${CMAKE_PROJECT_NAME}/doc' 'DESTINATION ''${CMAKE_INSTALL_DOCDIR}'
|
||||
|
||||
# Warning on aarch64-linux breaks build due to -Werror
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace '-Werror' ""
|
||||
|
||||
# pkg-config output patching hook expects prefix variable here
|
||||
substituteInPlace data/dbus-cpp.pc.in \
|
||||
--replace 'includedir=''${exec_prefix}' 'includedir=''${prefix}'
|
||||
'' + lib.optionalString (!finalAttrs.doCheck) ''
|
||||
sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
doxygen
|
||||
graphviz
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
lomiri.cmake-extras
|
||||
dbus
|
||||
libxml2
|
||||
process-cpp
|
||||
properties-cpp
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
dbus
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DDBUS_CPP_ENABLE_DOC_GENERATION=ON"
|
||||
];
|
||||
|
||||
# Too flaky on ARM CI & for some amd64 users
|
||||
doCheck = false;
|
||||
|
||||
# DBus, parallelism messes with communication
|
||||
enableParallelChecking = false;
|
||||
|
||||
preFixup = ''
|
||||
moveToOutput libexec/examples $examples
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
updateScript = gitUpdater { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A dbus-binding leveraging C++-11";
|
||||
homepage = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp";
|
||||
license = licenses.lgpl3Only;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
mainProgram = "dbus-cppc";
|
||||
platforms = platforms.linux;
|
||||
pkgConfigModules = [
|
||||
"dbus-cpp"
|
||||
];
|
||||
};
|
||||
})
|
27
pkgs/by-name/fi/firewalk/package.nix
Normal file
27
pkgs/by-name/fi/firewalk/package.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, libnet
|
||||
, libpcap
|
||||
, libdnet
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "firewalk";
|
||||
version = "5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://salsa.debian.org/pkg-security-team/firewalk/-/archive/upstream/${finalAttrs.version}/firewalk-upstream-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-f0sHzcH3faeg7epfpWXbgaHrRWaWBKMEqLdy38+svGo=";
|
||||
};
|
||||
|
||||
buildInputs = [ libnet libpcap libdnet ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Gateway ACL scanner";
|
||||
homepage = "http://packetfactory.openwall.net/projects/firewalk/";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ tochiaha ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
32
pkgs/by-name/fl/flip/package.nix
Normal file
32
pkgs/by-name/fl/flip/package.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "flip";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NVlabs";
|
||||
repo = "flip";
|
||||
rev = "8303adb2060d69423d040453995f4ad1a030a1cc";
|
||||
hash = "sha256-jSB79qOtnW/cjApIDcLRqGabnzCIwS7saA+aF1TcyV0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tool for visualizing and communicating the errors in rendered images.";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ zmitchell ];
|
||||
mainProgram = "flip";
|
||||
};
|
||||
}
|
41
pkgs/by-name/hi/hifile/package.nix
Normal file
41
pkgs/by-name/hi/hifile/package.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ lib, appimageTools, fetchurl }:
|
||||
|
||||
let
|
||||
version = "0.9.9.5";
|
||||
pname = "hifile";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.hifile.app/files/HiFile-${version}.AppImage";
|
||||
hash = "sha256-Ks/NLPm5loo9q8pT0LdtfcrC38203beNE74sbEpyuJM=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version src;
|
||||
};
|
||||
|
||||
in
|
||||
appimageTools.wrapType2 rec {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
|
||||
install -m 444 -D ${appimageContents}/HiFile.desktop $out/share/applications/HiFile.desktop
|
||||
install -m 444 -D ${appimageContents}/HiFile.png $out/share/icons/hicolor/512x512/apps/HiFile.png
|
||||
substituteInPlace $out/share/applications/HiFile.desktop \
|
||||
--replace 'Exec=HiFile' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Dual-pane graphical file manager for Windows, macOS and Linux";
|
||||
longDescription = ''
|
||||
HiFile is the next evolution of file managers. Its mission is to increase your productivity whenever you work with files or folders. It aims to be better in every way - more convenient, more versatile, more efficient, more elegant, more customizable, and more fun.
|
||||
'';
|
||||
homepage = "https://www.hifile.app/";
|
||||
downloadPage = "https://www.hifile.app/download";
|
||||
license = licenses.unfree;
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
maintainers = with maintainers; [ ymstnt ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
34
pkgs/by-name/ji/jitterentropy-rngd/package.nix
Normal file
34
pkgs/by-name/ji/jitterentropy-rngd/package.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ lib, stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jitterentropy-rngd";
|
||||
version = "1.2.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "smuellerDD";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-LDym636ss3B1G/vrqatu9g5vbVEeDX0JQcxZ/IxGeY0=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
make install DESTDIR= PREFIX=$out UNITDIR=$out/lib/systemd/system
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = ''A random number generator, which injects entropy to the kernel'';
|
||||
homepage = "https://github.com/smuellerDD/jitterentropy-rngd";
|
||||
changelog = "https://github.com/smuellerDD/jitterentropy-rngd/releases/tag/v${version}";
|
||||
license = [ licenses.gpl2Only licenses.bsd3 ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ thillux ];
|
||||
mainProgram = "jitterentropy-rngd";
|
||||
};
|
||||
}
|
52
pkgs/by-name/ko/konbucase/package.nix
Normal file
52
pkgs/by-name/ko/konbucase/package.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, pkg-config
|
||||
, wrapGAppsHook
|
||||
, pantheon
|
||||
, gtksourceview5
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "konbucase";
|
||||
version = "4.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ryonakano";
|
||||
repo = "konbucase";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-g3EDa9EXymi6c8dRHFZYGEAT7k8M2TXUAzZVKTnLzyk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
vala
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pantheon.granite7
|
||||
gtksourceview5
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/com.github.ryonakano.konbucase $out/bin/konbucase
|
||||
substituteInPlace $out/share/applications/com.github.ryonakano.konbucase.desktop \
|
||||
--replace 'Exec=com.github.ryonakano.konbucase' 'Exec=${placeholder "out"}/bin/konbucase'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ryonakano/konbucase";
|
||||
description = "A case converting app suitable for coding or typing";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ galaxy ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "konbucase";
|
||||
};
|
||||
})
|
64
pkgs/by-name/on/onedriver/package.nix
Normal file
64
pkgs/by-name/on/onedriver/package.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{ buildGoModule
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, pkg-config
|
||||
, webkitgtk
|
||||
, glib
|
||||
, fuse
|
||||
, installShellFiles
|
||||
}:
|
||||
let
|
||||
pname = "onedriver";
|
||||
version = "0.13.0-2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jstaf";
|
||||
repo = "onedriver";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Bcjgmx9a4pTRhkzR3tbOB6InjvuH71qomv4t+nRNc+w=";
|
||||
};
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version src;
|
||||
vendorHash = "sha256-OOiiKtKb+BiFkoSBUQQfqm4dMfDW3Is+30Kwcdg8LNA=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config installShellFiles ];
|
||||
buildInputs = [ webkitgtk glib fuse ];
|
||||
|
||||
ldflags = [ "-X github.com/jstaf/onedriver/cmd/common.commit=v${version}" ];
|
||||
|
||||
subPackages = [
|
||||
"cmd/onedriver"
|
||||
"cmd/onedriver-launcher"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
echo "Running postInstall"
|
||||
install -Dm644 ./resources/onedriver.svg $out/share/icons/onedriver/onedriver.svg
|
||||
install -Dm644 ./resources/onedriver.png $out/share/icons/onedriver/onedriver.png
|
||||
install -Dm644 ./resources/onedriver-128.png $out/share/icons/onedriver/onedriver-128.png
|
||||
|
||||
install -Dm644 ./resources/onedriver.desktop $out/share/applications/onedriver.desktop
|
||||
|
||||
mkdir -p $out/share/man/man1
|
||||
installManPage ./resources/onedriver.1
|
||||
|
||||
substituteInPlace $out/share/applications/onedriver.desktop \
|
||||
--replace "/usr/bin/onedriver-launcher" "$out/bin/onedriver-launcher" \
|
||||
--replace "/usr/share/icons" "$out/share/icons"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A network filesystem for Linux";
|
||||
longDescription = ''
|
||||
onedriver is a network filesystem that gives your computer direct access to your files on Microsoft OneDrive.
|
||||
This is not a sync client. Instead of syncing files, onedriver performs an on-demand download of files when
|
||||
your computer attempts to use them. onedriver allows you to use files on OneDrive as if they were files on
|
||||
your local computer.
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.massimogengarelli ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user