Merge master into haskell-updates
This commit is contained in:
commit
4ce5d01652
|
@ -2,35 +2,33 @@
|
|||
|
||||
rec {
|
||||
|
||||
/* Print a trace message if pred is false.
|
||||
/* Throw if pred is false, else return pred.
|
||||
Intended to be used to augment asserts with helpful error messages.
|
||||
|
||||
Example:
|
||||
assertMsg false "nope"
|
||||
=> false
|
||||
stderr> trace: nope
|
||||
stderr> error: nope
|
||||
|
||||
assert (assertMsg ("foo" == "bar") "foo is not bar, silly"); ""
|
||||
stderr> trace: foo is not bar, silly
|
||||
stderr> assert failed at …
|
||||
assert assertMsg ("foo" == "bar") "foo is not bar, silly"; ""
|
||||
stderr> error: foo is not bar, silly
|
||||
|
||||
Type:
|
||||
assertMsg :: Bool -> String -> Bool
|
||||
*/
|
||||
# TODO(Profpatsch): add tests that check stderr
|
||||
assertMsg = pred: msg:
|
||||
if pred
|
||||
then true
|
||||
else builtins.trace msg false;
|
||||
pred || builtins.throw msg;
|
||||
|
||||
/* Specialized `assertMsg` for checking if val is one of the elements
|
||||
of a list. Useful for checking enums.
|
||||
|
||||
Example:
|
||||
let sslLibrary = "libressl"
|
||||
let sslLibrary = "libressl";
|
||||
in assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ]
|
||||
=> false
|
||||
stderr> trace: sslLibrary must be one of "openssl", "bearssl", but is: "libressl"
|
||||
stderr> error: sslLibrary must be one of [
|
||||
stderr> "openssl"
|
||||
stderr> "bearssl"
|
||||
stderr> ], but is: "libressl"
|
||||
|
||||
Type:
|
||||
assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool
|
||||
|
|
|
@ -4256,6 +4256,16 @@
|
|||
githubId = 1313787;
|
||||
name = "Gabriel Gonzalez";
|
||||
};
|
||||
gador = {
|
||||
email = "florian.brandes@posteo.de";
|
||||
github = "gador";
|
||||
githubId = 1883533;
|
||||
name = "Florian Brandes";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0xBBB3E40E53797FD9";
|
||||
fingerprint = "0200 3EF8 8D2B CF2D 8F00 FFDC BBB3 E40E 5379 7FD9";
|
||||
}];
|
||||
};
|
||||
gal_bolle = {
|
||||
email = "florent.becker@ens-lyon.org";
|
||||
github = "FlorentBecker";
|
||||
|
@ -4455,6 +4465,16 @@
|
|||
githubId = 1621335;
|
||||
name = "Andrew Trachenko";
|
||||
};
|
||||
gordias = {
|
||||
name = "Gordias";
|
||||
email = "gordias@disroot.org";
|
||||
github = "NotGordias";
|
||||
githubId = 94724133;
|
||||
keys = [{
|
||||
longkeyid = "ed25519/0x5D47284830FAA4FA";
|
||||
fingerprint = "C006 B8A0 0618 F3B6 E0E4 2ECD 5D47 2848 30FA A4FA";
|
||||
}];
|
||||
};
|
||||
govanify = {
|
||||
name = "Gauvain 'GovanifY' Roussel-Tarbouriech";
|
||||
email = "gauvain@govanify.com";
|
||||
|
|
|
@ -32,10 +32,14 @@
|
|||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Mattermost has been updated to version 6.2. Migrations may
|
||||
take a while, see the
|
||||
<link xlink:href="https://docs.mattermost.com/install/self-managed-changelog.html#release-v6.2-feature-release">upgrade
|
||||
notes</link>.
|
||||
Mattermost has been updated to extended support release 6.3,
|
||||
as the previously packaged extended support release 5.37 is
|
||||
<link xlink:href="https://docs.mattermost.com/upgrade/extended-support-release.html">reaching
|
||||
its end of life</link>. Migrations may take a while, see the
|
||||
<link xlink:href="https://docs.mattermost.com/install/self-managed-changelog.html#release-v6-3-extended-support-release">changelog</link>
|
||||
and
|
||||
<link xlink:href="https://docs.mattermost.com/upgrade/important-upgrade-notes.html">important
|
||||
upgrade notes</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
@ -387,6 +391,35 @@
|
|||
<literal>reloadIfChanged</literal> of the units.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>services.bookstack.cacheDir</literal> option has
|
||||
been removed, since the cache directory is now handled by
|
||||
systemd.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>services.bookstack.extraConfig</literal> option
|
||||
has been replaced by
|
||||
<literal>services.bookstack.config</literal> which implements
|
||||
a
|
||||
<link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link>
|
||||
configuration.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>lib.assertMsg</literal> and
|
||||
<literal>lib.assertOneOf</literal> no longer return
|
||||
<literal>false</literal> if the passed condition is
|
||||
<literal>false</literal>, <literal>throw</literal>ing the
|
||||
given error message instead (which makes the resulting error
|
||||
message less cluttered). This will not impact the behaviour of
|
||||
code using these functions as intended, namely as top-level
|
||||
wrapper for <literal>assert</literal> conditions.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-22.05-notable-changes">
|
||||
|
@ -530,6 +563,14 @@
|
|||
renamed to <literal>linux-firmware</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>services.mbpfan</literal> module was converted to
|
||||
a
|
||||
<link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC
|
||||
0042</link> configuration.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
A new module was added for the
|
||||
|
@ -539,6 +580,13 @@
|
|||
<literal>programs.starship.settings</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>services.mattermost.plugins</literal> has been added
|
||||
to allow the declarative installation of Mattermost plugins.
|
||||
Plugins are automatically repackaged using autoPatchelf.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>zrepl</literal> package has been updated from
|
||||
|
@ -564,6 +612,17 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Renamed option
|
||||
<literal>services.openssh.challengeResponseAuthentication</literal>
|
||||
to
|
||||
<literal>services.openssh.kbdInteractiveAuthentication</literal>.
|
||||
Reason is that the old name has been deprecated upstream.
|
||||
Using the old option name will still work, but produce a
|
||||
warning.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -13,8 +13,9 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- PHP 8.1 is now available
|
||||
|
||||
- Mattermost has been updated to version 6.2. Migrations may take a while,
|
||||
see the [upgrade notes](https://docs.mattermost.com/install/self-managed-changelog.html#release-v6.2-feature-release).
|
||||
- Mattermost has been updated to extended support release 6.3, as the previously packaged extended support release 5.37 is [reaching its end of life](https://docs.mattermost.com/upgrade/extended-support-release.html).
|
||||
Migrations may take a while, see the [changelog](https://docs.mattermost.com/install/self-managed-changelog.html#release-v6-3-extended-support-release)
|
||||
and [important upgrade notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html).
|
||||
|
||||
## New Services {#sec-release-22.05-new-services}
|
||||
|
||||
|
@ -52,6 +53,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [rstudio-server](https://www.rstudio.com/products/rstudio/#rstudio-server), a browser-based version of the RStudio IDE for the R programming language. Available as [services.rstudio-server](options.html#opt-services.rstudio-server.enable).
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
|
||||
|
||||
- `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`.
|
||||
|
@ -121,6 +124,18 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The interface that allows activation scripts to restart units has been reworked. Restarting and reloading is now done by a single file `/run/nixos/activation-restart-list` that honors `restartIfChanged` and `reloadIfChanged` of the units.
|
||||
|
||||
- The `services.bookstack.cacheDir` option has been removed, since the
|
||||
cache directory is now handled by systemd.
|
||||
|
||||
- The `services.bookstack.extraConfig` option has been replaced by
|
||||
`services.bookstack.config` which implements a
|
||||
[settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)
|
||||
configuration.
|
||||
|
||||
- `lib.assertMsg` and `lib.assertOneOf` no longer return `false` if the passed condition is `false`, `throw`ing the given error message instead (which makes the resulting error message less cluttered). This will not impact the behaviour of code using these functions as intended, namely as top-level wrapper for `assert` conditions.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Other Notable Changes {#sec-release-22.05-notable-changes}
|
||||
|
||||
- The option [services.redis.servers](#opt-services.redis.servers) was added
|
||||
|
@ -183,9 +198,20 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The `firmwareLinuxNonfree` package has been renamed to `linux-firmware`.
|
||||
|
||||
- The `services.mbpfan` module was converted to a [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
|
||||
|
||||
- A new module was added for the [Starship](https://starship.rs/) shell prompt,
|
||||
providing the options `programs.starship.enable` and `programs.starship.settings`.
|
||||
|
||||
- `services.mattermost.plugins` has been added to allow the declarative installation of Mattermost plugins.
|
||||
Plugins are automatically repackaged using autoPatchelf.
|
||||
|
||||
- The `zrepl` package has been updated from 0.4.0 to 0.5:
|
||||
* The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
|
||||
* A bug involving encrypt-on-receive has been fixed. Read the [zrepl documentation](https://zrepl.github.io/configuration/sendrecvoptions.html#job-recv-options-placeholder) and check the output of `zfs get -r encryption,zrepl:placeholder PATH_TO_ROOTFS` on the receiver.
|
||||
|
||||
- Renamed option `services.openssh.challengeResponseAuthentication` to `services.openssh.kbdInteractiveAuthentication`.
|
||||
Reason is that the old name has been deprecated upstream.
|
||||
Using the old option name will still work, but produce a warning.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
|
|
@ -22,8 +22,15 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
scudo = {
|
||||
libPath = "${pkgs.llvmPackages_latest.compiler-rt}/lib/linux/libclang_rt.scudo-x86_64.so";
|
||||
scudo = let
|
||||
platformMap = {
|
||||
aarch64-linux = "aarch64";
|
||||
x86_64-linux = "x86_64";
|
||||
};
|
||||
|
||||
systemPlatform = platformMap.${pkgs.stdenv.hostPlatform.system} or (throw "scudo not supported on ${pkgs.stdenv.hostPlatform.system}");
|
||||
in {
|
||||
libPath = "${pkgs.llvmPackages_latest.compiler-rt}/lib/linux/libclang_rt.scudo-${systemPlatform}.so";
|
||||
description = ''
|
||||
A user-mode allocator based on LLVM Sanitizer’s CombinedAllocator,
|
||||
which aims at providing additional mitigations against heap based
|
||||
|
|
|
@ -968,6 +968,7 @@
|
|||
./services/security/vault.nix
|
||||
./services/security/vaultwarden/default.nix
|
||||
./services/security/yubikey-agent.nix
|
||||
./services/system/cachix-agent/default.nix
|
||||
./services/system/cloud-init.nix
|
||||
./services/system/dbus.nix
|
||||
./services/system/earlyoom.nix
|
||||
|
|
|
@ -7,7 +7,7 @@ let
|
|||
inherit (lib.modules) mkDefault mkIf;
|
||||
inherit (lib.options) literalExpression mkEnableOption mkOption;
|
||||
inherit (lib.strings) concatStringsSep optionalString toLower;
|
||||
inherit (lib.types) addCheck attrsOf lines nullOr package path port str strMatching submodule;
|
||||
inherit (lib.types) addCheck attrsOf lines nonEmptyStr nullOr package path port str strMatching submodule;
|
||||
|
||||
# Checks if given list of strings contains unique
|
||||
# elements when compared without considering case.
|
||||
|
@ -35,7 +35,7 @@ let
|
|||
'';
|
||||
};
|
||||
options.server = mkOption {
|
||||
type = strMatching ".+";
|
||||
type = nonEmptyStr;
|
||||
example = "tsmserver.company.com";
|
||||
description = ''
|
||||
Host/domain name or IP address of the IBM TSM server.
|
||||
|
@ -56,7 +56,7 @@ let
|
|||
'';
|
||||
};
|
||||
options.node = mkOption {
|
||||
type = strMatching ".+";
|
||||
type = nonEmptyStr;
|
||||
example = "MY-TSM-NODE";
|
||||
description = ''
|
||||
Target node name on the IBM TSM server.
|
||||
|
@ -144,7 +144,7 @@ let
|
|||
};
|
||||
config.name = mkDefault name;
|
||||
# Client system-options file directives are explained here:
|
||||
# https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.8/client/c_opt_usingopts.html
|
||||
# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=commands-processing-options
|
||||
config.extraConfig =
|
||||
mapAttrs (lib.trivial.const mkDefault) (
|
||||
{
|
||||
|
|
|
@ -99,7 +99,18 @@ let
|
|||
BORG_REPO = cfg.repo;
|
||||
inherit (cfg) extraArgs extraInitArgs extraCreateArgs extraPruneArgs;
|
||||
} // (mkPassEnv cfg) // cfg.environment;
|
||||
inherit (cfg) startAt;
|
||||
};
|
||||
|
||||
mkBackupTimers = name: cfg:
|
||||
nameValuePair "borgbackup-job-${name}" {
|
||||
description = "BorgBackup job ${name} timer";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
Persistent = cfg.persistentTimer;
|
||||
OnCalendar = cfg.startAt;
|
||||
};
|
||||
# if remote-backup wait for network
|
||||
after = optional (cfg.persistentTimer && !isLocalPath cfg.repo) "network-online.target";
|
||||
};
|
||||
|
||||
# utility function around makeWrapper
|
||||
|
@ -321,6 +332,19 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
persistentTimer = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
example = true;
|
||||
description = literalDocBook ''
|
||||
Set the <literal>persistentTimer</literal> option for the
|
||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry>
|
||||
which triggers the backup immediately if the last trigger
|
||||
was missed (e.g. if the system was powered down).
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
|
@ -695,6 +719,10 @@ in {
|
|||
# A repo named "foo" is mapped to systemd.services.borgbackup-repo-foo
|
||||
// mapAttrs' mkRepoService repos;
|
||||
|
||||
# A job named "foo" is mapped to systemd.timers.borgbackup-job-foo
|
||||
# only generate the timer if interval (startAt) is set
|
||||
systemd.timers = mapAttrs' mkBackupTimers (filterAttrs (_: cfg: cfg.startAt != []) jobs);
|
||||
|
||||
users = mkMerge (mapAttrsToList mkUsersConfig repos);
|
||||
|
||||
environment.systemPackages = with pkgs; [ borgbackup ] ++ (mapAttrsToList mkBorgWrapper jobs);
|
||||
|
|
|
@ -5,7 +5,7 @@ let
|
|||
inherit (lib.attrsets) hasAttr;
|
||||
inherit (lib.modules) mkDefault mkIf;
|
||||
inherit (lib.options) mkEnableOption mkOption;
|
||||
inherit (lib.types) nullOr strMatching;
|
||||
inherit (lib.types) nonEmptyStr nullOr;
|
||||
|
||||
options.services.tsmBackup = {
|
||||
enable = mkEnableOption ''
|
||||
|
@ -15,7 +15,7 @@ let
|
|||
<option>programs.tsmClient.enable</option>
|
||||
'';
|
||||
command = mkOption {
|
||||
type = strMatching ".+";
|
||||
type = nonEmptyStr;
|
||||
default = "backup";
|
||||
example = "incr";
|
||||
description = ''
|
||||
|
@ -24,7 +24,7 @@ let
|
|||
'';
|
||||
};
|
||||
servername = mkOption {
|
||||
type = strMatching ".+";
|
||||
type = nonEmptyStr;
|
||||
example = "mainTsmServer";
|
||||
description = ''
|
||||
Create a systemd system service
|
||||
|
@ -41,7 +41,7 @@ let
|
|||
'';
|
||||
};
|
||||
autoTime = mkOption {
|
||||
type = nullOr (strMatching ".+");
|
||||
type = nullOr nonEmptyStr;
|
||||
default = null;
|
||||
example = "12:00";
|
||||
description = ''
|
||||
|
@ -87,16 +87,35 @@ in
|
|||
environment.DSM_LOG = "/var/log/tsm-backup/";
|
||||
# TSM needs a HOME dir to store certificates.
|
||||
environment.HOME = "/var/lib/tsm-backup";
|
||||
# for exit status description see
|
||||
# https://www.ibm.com/support/knowledgecenter/en/SSEQVQ_8.1.8/client/c_sched_rtncode.html
|
||||
serviceConfig.SuccessExitStatus = "4 8";
|
||||
# The `-se` option must come after the command.
|
||||
# The `-optfile` option suppresses a `dsm.opt`-not-found warning.
|
||||
serviceConfig.ExecStart =
|
||||
"${cfgPrg.wrappedPackage}/bin/dsmc ${cfg.command} -se='${cfg.servername}' -optfile=/dev/null";
|
||||
serviceConfig.LogsDirectory = "tsm-backup";
|
||||
serviceConfig.StateDirectory = "tsm-backup";
|
||||
serviceConfig.StateDirectoryMode = "0750";
|
||||
serviceConfig = {
|
||||
# for exit status description see
|
||||
# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=clients-client-return-codes
|
||||
SuccessExitStatus = "4 8";
|
||||
# The `-se` option must come after the command.
|
||||
# The `-optfile` option suppresses a `dsm.opt`-not-found warning.
|
||||
ExecStart =
|
||||
"${cfgPrg.wrappedPackage}/bin/dsmc ${cfg.command} -se='${cfg.servername}' -optfile=/dev/null";
|
||||
LogsDirectory = "tsm-backup";
|
||||
StateDirectory = "tsm-backup";
|
||||
StateDirectoryMode = "0750";
|
||||
# systemd sandboxing
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
#PrivateTmp = true; # would break backup of {/var,}/tmp
|
||||
#PrivateUsers = true; # would block backup of /home/*
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = "read-only";
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "noaccess";
|
||||
ProtectSystem = "strict";
|
||||
RestrictNamespaces = true;
|
||||
RestrictSUIDSGID = true;
|
||||
};
|
||||
startAt = mkIf (cfg.autoTime!=null) cfg.autoTime;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -84,7 +84,7 @@ in
|
|||
} // (if ((lib.getName cfg.package) == (lib.getName pkgs.ananicy-cpp)) then {
|
||||
# https://gitlab.com/ananicy-cpp/ananicy-cpp/-/blob/master/src/config.cpp#L12
|
||||
loglevel = mkOD "warn"; # default is info but its spammy
|
||||
cgroup_realtime_workaround = mkOD true;
|
||||
cgroup_realtime_workaround = mkOD config.systemd.enableUnifiedCgroupHierarchy;
|
||||
} else {
|
||||
# https://github.com/Nefelim4ag/Ananicy/blob/master/ananicy.d/ananicy.conf
|
||||
check_disks_schedulers = mkOD true;
|
||||
|
|
|
@ -23,7 +23,7 @@ let
|
|||
in
|
||||
{
|
||||
options.services.heisenbridge = {
|
||||
enable = mkEnableOption "A bouncer-style Matrix IRC bridge";
|
||||
enable = mkEnableOption "the Matrix to IRC bridge";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
|
@ -172,25 +172,39 @@ in
|
|||
++ (map (lib.escapeShellArg) cfg.extraArgs)
|
||||
);
|
||||
|
||||
ProtectHome = true;
|
||||
PrivateDevices = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectControlGroups = true;
|
||||
StateDirectory = "heisenbridge";
|
||||
StateDirectoryMode = "755";
|
||||
# Hardening options
|
||||
|
||||
User = "heisenbridge";
|
||||
Group = "heisenbridge";
|
||||
RuntimeDirectory = "heisenbridge";
|
||||
RuntimeDirectoryMode = "0700";
|
||||
StateDirectory = "heisenbridge";
|
||||
StateDirectoryMode = "0755";
|
||||
|
||||
CapabilityBoundingSet = [ "CAP_CHOWN" ] ++ optional (cfg.port < 1024 || cfg.identd.port < 1024) "CAP_NET_BIND_SERVICE";
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectControlGroups = true;
|
||||
RestrictSUIDSGID = true;
|
||||
PrivateMounts = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectHostname = true;
|
||||
ProtectClock = true;
|
||||
ProtectProc = "invisible";
|
||||
ProcSubset = "pid";
|
||||
RestrictNamespaces = true;
|
||||
RemoveIPC = true;
|
||||
UMask = "0077";
|
||||
|
||||
CapabilityBoundingSet = [ "CAP_CHOWN" ] ++ optional (cfg.port < 1024 || (cfg.identd.enable && cfg.identd.port < 1024)) "CAP_NET_BIND_SERVICE";
|
||||
AmbientCapabilities = CapabilityBoundingSet;
|
||||
NoNewPrivileges = true;
|
||||
|
||||
LockPersonality = true;
|
||||
RestrictRealtime = true;
|
||||
PrivateMounts = true;
|
||||
SystemCallFilter = "~@aio @clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @setuid @swap";
|
||||
SystemCallFilter = ["@system-service" "~@priviledged" "@chown"];
|
||||
SystemCallArchitectures = "native";
|
||||
RestrictAddressFamilies = "AF_INET AF_INET6";
|
||||
};
|
||||
|
|
|
@ -5,6 +5,8 @@ with lib;
|
|||
let
|
||||
cfg = config.services.mbpfan;
|
||||
verbose = if cfg.verbose then "v" else "";
|
||||
settingsFormat = pkgs.formats.ini {};
|
||||
settingsFile = settingsFormat.generate "config.conf" cfg.settings;
|
||||
|
||||
in {
|
||||
options.services.mbpfan = {
|
||||
|
@ -19,54 +21,6 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
minFanSpeed = mkOption {
|
||||
type = types.int;
|
||||
default = 2000;
|
||||
description = ''
|
||||
The minimum fan speed.
|
||||
'';
|
||||
};
|
||||
|
||||
maxFanSpeed = mkOption {
|
||||
type = types.int;
|
||||
default = 6200;
|
||||
description = ''
|
||||
The maximum fan speed.
|
||||
'';
|
||||
};
|
||||
|
||||
lowTemp = mkOption {
|
||||
type = types.int;
|
||||
default = 63;
|
||||
description = ''
|
||||
The low temperature.
|
||||
'';
|
||||
};
|
||||
|
||||
highTemp = mkOption {
|
||||
type = types.int;
|
||||
default = 66;
|
||||
description = ''
|
||||
The high temperature.
|
||||
'';
|
||||
};
|
||||
|
||||
maxTemp = mkOption {
|
||||
type = types.int;
|
||||
default = 86;
|
||||
description = ''
|
||||
The maximum temperature.
|
||||
'';
|
||||
};
|
||||
|
||||
pollingInterval = mkOption {
|
||||
type = types.int;
|
||||
default = 7;
|
||||
description = ''
|
||||
The polling interval.
|
||||
'';
|
||||
};
|
||||
|
||||
verbose = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
@ -74,23 +28,61 @@ in {
|
|||
If true, sets the log level to verbose.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
default = {};
|
||||
description = "The INI configuration for Mbpfan.";
|
||||
type = types.submodule {
|
||||
freeformType = settingsFormat.type;
|
||||
|
||||
options.general.min_fan1_speed = mkOption {
|
||||
type = types.int;
|
||||
default = 2000;
|
||||
description = "The minimum fan speed.";
|
||||
};
|
||||
options.general.max_fan1_speed = mkOption {
|
||||
type = types.int;
|
||||
default = 6199;
|
||||
description = "The maximum fan speed.";
|
||||
};
|
||||
options.general.low_temp = mkOption {
|
||||
type = types.int;
|
||||
default = 55;
|
||||
description = "The low temperature.";
|
||||
};
|
||||
options.general.high_temp = mkOption {
|
||||
type = types.int;
|
||||
default = 58;
|
||||
description = "The high temperature.";
|
||||
};
|
||||
options.general.max_temp = mkOption {
|
||||
type = types.int;
|
||||
default = 86;
|
||||
description = "The maximum temperature.";
|
||||
};
|
||||
options.general.polling_interval = mkOption {
|
||||
type = types.int;
|
||||
default = 1;
|
||||
description = "The polling interval.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "mbpfan" "pollingInterval" ] [ "services" "mbpfan" "settings" "general" "polling_interval" ])
|
||||
(mkRenamedOptionModule [ "services" "mbpfan" "maxTemp" ] [ "services" "mbpfan" "settings" "general" "max_temp" ])
|
||||
(mkRenamedOptionModule [ "services" "mbpfan" "lowTemp" ] [ "services" "mbpfan" "settings" "general" "low_temp" ])
|
||||
(mkRenamedOptionModule [ "services" "mbpfan" "highTemp" ] [ "services" "mbpfan" "settings" "general" "high_temp" ])
|
||||
(mkRenamedOptionModule [ "services" "mbpfan" "minFanSpeed" ] [ "services" "mbpfan" "settings" "general" "min_fan1_speed" ])
|
||||
(mkRenamedOptionModule [ "services" "mbpfan" "maxFanSpeed" ] [ "services" "mbpfan" "settings" "general" "max_fan1_speed" ])
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
boot.kernelModules = [ "coretemp" "applesmc" ];
|
||||
|
||||
environment = {
|
||||
etc."mbpfan.conf".text = ''
|
||||
[general]
|
||||
min_fan_speed = ${toString cfg.minFanSpeed}
|
||||
max_fan_speed = ${toString cfg.maxFanSpeed}
|
||||
low_temp = ${toString cfg.lowTemp}
|
||||
high_temp = ${toString cfg.highTemp}
|
||||
max_temp = ${toString cfg.maxTemp}
|
||||
polling_interval = ${toString cfg.pollingInterval}
|
||||
'';
|
||||
systemPackages = [ cfg.package ];
|
||||
};
|
||||
environment.etc."mbpfan.conf".source = settingsFile;
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.services.mbpfan = {
|
||||
description = "A fan manager daemon for MacBook Pro";
|
||||
|
|
|
@ -26,6 +26,12 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Open ports in the firewall for nix-serve.";
|
||||
};
|
||||
|
||||
secretKeyFile = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
|
@ -77,5 +83,9 @@ in
|
|||
"NIX_SECRET_KEY_FILE:${cfg.secretKeyFile}";
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPorts = [ cfg.port ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -81,6 +81,7 @@ in
|
|||
imports = [
|
||||
(mkAliasOptionModule [ "services" "sshd" "enable" ] [ "services" "openssh" "enable" ])
|
||||
(mkAliasOptionModule [ "services" "openssh" "knownHosts" ] [ "programs" "ssh" "knownHosts" ])
|
||||
(mkRenamedOptionModule [ "services" "openssh" "challengeResponseAuthentication" ] [ "services" "openssh" "kbdInteractiveAuthentication" ])
|
||||
];
|
||||
|
||||
###### interface
|
||||
|
@ -218,11 +219,11 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
challengeResponseAuthentication = mkOption {
|
||||
kbdInteractiveAuthentication = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Specifies whether challenge/response authentication is allowed.
|
||||
Specifies whether keyboard-interactive authentication is allowed.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -534,7 +535,7 @@ in
|
|||
PermitRootLogin ${cfg.permitRootLogin}
|
||||
GatewayPorts ${cfg.gatewayPorts}
|
||||
PasswordAuthentication ${if cfg.passwordAuthentication then "yes" else "no"}
|
||||
ChallengeResponseAuthentication ${if cfg.challengeResponseAuthentication then "yes" else "no"}
|
||||
KbdInteractiveAuthentication ${if cfg.kbdInteractiveAuthentication then "yes" else "no"}
|
||||
|
||||
PrintMotd no # handled by pam_motd
|
||||
|
||||
|
|
|
@ -468,7 +468,7 @@ in {
|
|||
default = false;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to open the default ports in the firewall: TCP 22000 for transfers
|
||||
Whether to open the default ports in the firewall: TCP/UDP 22000 for transfers
|
||||
and UDP 21027 for discovery.
|
||||
|
||||
If multiple users are running Syncthing on this machine, you will need
|
||||
|
@ -504,7 +504,7 @@ in {
|
|||
|
||||
networking.firewall = mkIf cfg.openDefaultPorts {
|
||||
allowedTCPPorts = [ 22000 ];
|
||||
allowedUDPPorts = [ 21027 ];
|
||||
allowedUDPPorts = [ 21027 22000 ];
|
||||
};
|
||||
|
||||
systemd.packages = [ pkgs.syncthing ];
|
||||
|
|
57
nixos/modules/services/system/cachix-agent/default.nix
Normal file
57
nixos/modules/services/system/cachix-agent/default.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.cachix-agent;
|
||||
in {
|
||||
meta.maintainers = [ lib.maintainers.domenkozar ];
|
||||
|
||||
options.services.cachix-agent = {
|
||||
enable = mkEnableOption "Cachix Deploy Agent: https://docs.cachix.org/deploy/";
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = "Agent name, usually same as the hostname";
|
||||
default = config.networking.hostName;
|
||||
defaultText = "config.networking.hostName";
|
||||
};
|
||||
|
||||
profile = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Profile name, defaults to 'system' (NixOS).";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.cachix;
|
||||
defaultText = literalExpression "pkgs.cachix";
|
||||
description = "Cachix Client package to use.";
|
||||
};
|
||||
|
||||
credentialsFile = mkOption {
|
||||
type = types.path;
|
||||
default = "/etc/cachix-agent.token";
|
||||
description = ''
|
||||
Required file that needs to contain CACHIX_AGENT_TOKEN=...
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.cachix-agent = {
|
||||
description = "Cachix Deploy Agent";
|
||||
after = ["network-online.target"];
|
||||
path = [ config.nix.package ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
# don't restart while changing
|
||||
reloadIfChanged = true;
|
||||
serviceConfig = {
|
||||
Restart = "on-failure";
|
||||
EnvironmentFile = cfg.credentialsFile;
|
||||
ExecStart = "${cfg.package}/bin/cachix deploy agent ${cfg.name} ${if cfg.profile != null then profile else ""}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -24,8 +24,14 @@ let
|
|||
$sudo ${pkgs.php}/bin/php artisan $*
|
||||
'';
|
||||
|
||||
tlsEnabled = cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME;
|
||||
|
||||
in {
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "services" "bookstack" "extraConfig" ] "Use services.bookstack.config instead.")
|
||||
(mkRemovedOptionModule [ "services" "bookstack" "cacheDir" ] "The cache directory is now handled automatically.")
|
||||
];
|
||||
|
||||
options.services.bookstack = {
|
||||
|
||||
enable = mkEnableOption "BookStack";
|
||||
|
@ -44,28 +50,38 @@ in {
|
|||
|
||||
appKeyFile = mkOption {
|
||||
description = ''
|
||||
A file containing the AppKey.
|
||||
Used for encryption where needed. Can be generated with <code>head -c 32 /dev/urandom| base64</code> and must be prefixed with <literal>base64:</literal>.
|
||||
A file containing the Laravel APP_KEY - a 32 character long,
|
||||
base64 encoded key used for encryption where needed. Can be
|
||||
generated with <code>head -c 32 /dev/urandom | base64</code>.
|
||||
'';
|
||||
example = "/run/keys/bookstack-appkey";
|
||||
type = types.path;
|
||||
};
|
||||
|
||||
hostname = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = if config.networking.domain != null then
|
||||
config.networking.fqdn
|
||||
else
|
||||
config.networking.hostName;
|
||||
defaultText = lib.literalExpression "config.networking.fqdn";
|
||||
example = "bookstack.example.com";
|
||||
description = ''
|
||||
The hostname to serve BookStack on.
|
||||
'';
|
||||
};
|
||||
|
||||
appURL = mkOption {
|
||||
description = ''
|
||||
The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
|
||||
If you change this in the future you may need to run a command to update stored URLs in the database. Command example: <code>php artisan bookstack:update-url https://old.example.com https://new.example.com</code>
|
||||
'';
|
||||
default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
|
||||
defaultText = ''http''${lib.optionalString tlsEnabled "s"}://''${cfg.hostname}'';
|
||||
example = "https://example.com";
|
||||
type = types.str;
|
||||
};
|
||||
|
||||
cacheDir = mkOption {
|
||||
description = "BookStack cache directory";
|
||||
default = "/var/cache/bookstack";
|
||||
type = types.path;
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
description = "BookStack data directory";
|
||||
default = "/var/lib/bookstack";
|
||||
|
@ -202,16 +218,59 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.nullOr types.lines;
|
||||
default = null;
|
||||
example = ''
|
||||
ALLOWED_IFRAME_HOSTS="https://example.com"
|
||||
WKHTMLTOPDF=/home/user/bins/wkhtmltopdf
|
||||
config = mkOption {
|
||||
type = with types;
|
||||
attrsOf
|
||||
(nullOr
|
||||
(either
|
||||
(oneOf [
|
||||
bool
|
||||
int
|
||||
port
|
||||
path
|
||||
str
|
||||
])
|
||||
(submodule {
|
||||
options = {
|
||||
_secret = mkOption {
|
||||
type = nullOr str;
|
||||
description = ''
|
||||
The path to a file containing the value the
|
||||
option should be set to in the final
|
||||
configuration file.
|
||||
'';
|
||||
};
|
||||
};
|
||||
})));
|
||||
default = {};
|
||||
example = literalExpression ''
|
||||
{
|
||||
ALLOWED_IFRAME_HOSTS = "https://example.com";
|
||||
WKHTMLTOPDF = "/home/user/bins/wkhtmltopdf";
|
||||
AUTH_METHOD = "oidc";
|
||||
OIDC_NAME = "MyLogin";
|
||||
OIDC_DISPLAY_NAME_CLAIMS = "name";
|
||||
OIDC_CLIENT_ID = "bookstack";
|
||||
OIDC_CLIENT_SECRET = {_secret = "/run/keys/oidc_secret"};
|
||||
OIDC_ISSUER = "https://keycloak.example.com/auth/realms/My%20Realm";
|
||||
OIDC_ISSUER_DISCOVER = true;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Lines to be appended verbatim to the BookStack configuration.
|
||||
Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/> for details on supported values.
|
||||
BookStack configuration options to set in the
|
||||
<filename>.env</filename> file.
|
||||
|
||||
Refer to <link xlink:href="https://www.bookstackapp.com/docs/"/>
|
||||
for details on supported values.
|
||||
|
||||
Settings containing secret data should be set to an attribute
|
||||
set containing the attribute <literal>_secret</literal> - a
|
||||
string pointing to a file containing the value the option
|
||||
should be set to. See the example to get a better picture of
|
||||
this: in the resulting <filename>.env</filename> file, the
|
||||
<literal>OIDC_CLIENT_SECRET</literal> key will be set to the
|
||||
contents of the <filename>/run/keys/oidc_secret</filename>
|
||||
file.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -228,6 +287,30 @@ in {
|
|||
}
|
||||
];
|
||||
|
||||
services.bookstack.config = {
|
||||
APP_KEY._secret = cfg.appKeyFile;
|
||||
APP_URL = cfg.appURL;
|
||||
DB_HOST = db.host;
|
||||
DB_PORT = db.port;
|
||||
DB_DATABASE = db.name;
|
||||
DB_USERNAME = db.user;
|
||||
MAIL_DRIVER = mail.driver;
|
||||
MAIL_FROM_NAME = mail.fromName;
|
||||
MAIL_FROM = mail.from;
|
||||
MAIL_HOST = mail.host;
|
||||
MAIL_PORT = mail.port;
|
||||
MAIL_USERNAME = mail.user;
|
||||
MAIL_ENCRYPTION = mail.encryption;
|
||||
DB_PASSWORD._secret = db.passwordFile;
|
||||
MAIL_PASSWORD._secret = mail.passwordFile;
|
||||
APP_SERVICES_CACHE = "/run/bookstack/cache/services.php";
|
||||
APP_PACKAGES_CACHE = "/run/bookstack/cache/packages.php";
|
||||
APP_CONFIG_CACHE = "/run/bookstack/cache/config.php";
|
||||
APP_ROUTES_CACHE = "/run/bookstack/cache/routes-v7.php";
|
||||
APP_EVENTS_CACHE = "/run/bookstack/cache/events.php";
|
||||
SESSION_SECURE_COOKIE = tlsEnabled;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ artisan ];
|
||||
|
||||
services.mysql = mkIf db.createLocally {
|
||||
|
@ -258,24 +341,19 @@ in {
|
|||
|
||||
services.nginx = {
|
||||
enable = mkDefault true;
|
||||
virtualHosts.bookstack = mkMerge [ cfg.nginx {
|
||||
recommendedTlsSettings = true;
|
||||
recommendedOptimisation = true;
|
||||
recommendedGzipSettings = true;
|
||||
virtualHosts.${cfg.hostname} = mkMerge [ cfg.nginx {
|
||||
root = mkForce "${bookstack}/public";
|
||||
extraConfig = optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
|
||||
locations = {
|
||||
"/" = {
|
||||
index = "index.php";
|
||||
extraConfig = ''try_files $uri $uri/ /index.php?$query_string;'';
|
||||
};
|
||||
"~ \.php$" = {
|
||||
extraConfig = ''
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param REDIRECT_STATUS 200;
|
||||
fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
|
||||
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
|
||||
'';
|
||||
tryFiles = "$uri $uri/ /index.php?$query_string";
|
||||
};
|
||||
"~ \.php$".extraConfig = ''
|
||||
fastcgi_pass unix:${config.services.phpfpm.pools."bookstack".socket};
|
||||
'';
|
||||
"~ \.(js|css|gif|png|ico|jpg|jpeg)$" = {
|
||||
extraConfig = "expires 365d;";
|
||||
};
|
||||
|
@ -290,50 +368,54 @@ in {
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
User = user;
|
||||
WorkingDirectory = "${bookstack}";
|
||||
RuntimeDirectory = "bookstack/cache";
|
||||
RuntimeDirectoryMode = 0700;
|
||||
};
|
||||
script = ''
|
||||
path = [ pkgs.replace-secret ];
|
||||
script =
|
||||
let
|
||||
isSecret = v: isAttrs v && v ? _secret && isString v._secret;
|
||||
bookstackEnvVars = lib.generators.toKeyValue {
|
||||
mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
|
||||
mkValueString = v: with builtins;
|
||||
if isInt v then toString v
|
||||
else if isString v then v
|
||||
else if true == v then "true"
|
||||
else if false == v then "false"
|
||||
else if isSecret v then v._secret
|
||||
else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
|
||||
};
|
||||
};
|
||||
secretPaths = lib.mapAttrsToList (_: v: v._secret) (lib.filterAttrs (_: isSecret) cfg.config);
|
||||
mkSecretReplacement = file: ''
|
||||
replace-secret ${escapeShellArgs [ file file "${cfg.dataDir}/.env" ]}
|
||||
'';
|
||||
secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
|
||||
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ {} null ])) cfg.config;
|
||||
bookstackEnv = pkgs.writeText "bookstack.env" (bookstackEnvVars filteredConfig);
|
||||
in ''
|
||||
# error handling
|
||||
set -euo pipefail
|
||||
|
||||
# set permissions
|
||||
umask 077
|
||||
|
||||
# create .env file
|
||||
echo "
|
||||
APP_KEY=base64:$(head -n1 ${cfg.appKeyFile})
|
||||
APP_URL=${cfg.appURL}
|
||||
DB_HOST=${db.host}
|
||||
DB_PORT=${toString db.port}
|
||||
DB_DATABASE=${db.name}
|
||||
DB_USERNAME=${db.user}
|
||||
MAIL_DRIVER=${mail.driver}
|
||||
MAIL_FROM_NAME=\"${mail.fromName}\"
|
||||
MAIL_FROM=${mail.from}
|
||||
MAIL_HOST=${mail.host}
|
||||
MAIL_PORT=${toString mail.port}
|
||||
${optionalString (mail.user != null) "MAIL_USERNAME=${mail.user};"}
|
||||
${optionalString (mail.encryption != null) "MAIL_ENCRYPTION=${mail.encryption};"}
|
||||
${optionalString (db.passwordFile != null) "DB_PASSWORD=$(head -n1 ${db.passwordFile})"}
|
||||
${optionalString (mail.passwordFile != null) "MAIL_PASSWORD=$(head -n1 ${mail.passwordFile})"}
|
||||
APP_SERVICES_CACHE=${cfg.cacheDir}/services.php
|
||||
APP_PACKAGES_CACHE=${cfg.cacheDir}/packages.php
|
||||
APP_CONFIG_CACHE=${cfg.cacheDir}/config.php
|
||||
APP_ROUTES_CACHE=${cfg.cacheDir}/routes-v7.php
|
||||
APP_EVENTS_CACHE=${cfg.cacheDir}/events.php
|
||||
${optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "SESSION_SECURE_COOKIE=true"}
|
||||
${toString cfg.extraConfig}
|
||||
" > "${cfg.dataDir}/.env"
|
||||
install -T -m 0600 -o ${user} ${bookstackEnv} "${cfg.dataDir}/.env"
|
||||
${secretReplacements}
|
||||
if ! grep 'APP_KEY=base64:' "${cfg.dataDir}/.env" >/dev/null; then
|
||||
sed -i 's/APP_KEY=/APP_KEY=base64:/' "${cfg.dataDir}/.env"
|
||||
fi
|
||||
|
||||
# migrate db
|
||||
${pkgs.php}/bin/php artisan migrate --force
|
||||
|
||||
# clear & create caches (needed in case of update)
|
||||
${pkgs.php}/bin/php artisan cache:clear
|
||||
${pkgs.php}/bin/php artisan config:clear
|
||||
${pkgs.php}/bin/php artisan view:clear
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${cfg.cacheDir} 0700 ${user} ${group} - -"
|
||||
"d ${cfg.dataDir} 0710 ${user} ${group} - -"
|
||||
"d ${cfg.dataDir}/public 0750 ${user} ${group} - -"
|
||||
"d ${cfg.dataDir}/public/uploads 0750 ${user} ${group} - -"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -181,7 +181,7 @@ in
|
|||
description = ''
|
||||
Plugins to add to the configuration. Overrides any installed if non-null.
|
||||
This is a list of paths to .tar.gz files or derivations evaluating to
|
||||
.tar.gz files. All entries will be passed to `mattermost plugin add`.
|
||||
.tar.gz files.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -490,6 +490,7 @@ in
|
|||
trezord = handleTest ./trezord.nix {};
|
||||
trickster = handleTest ./trickster.nix {};
|
||||
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
|
||||
tsm-client-gui = handleTest ./tsm-client-gui.nix {};
|
||||
txredisapi = handleTest ./txredisapi.nix {};
|
||||
tuptime = handleTest ./tuptime.nix {};
|
||||
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
|
||||
|
|
|
@ -106,7 +106,7 @@ in {
|
|||
services.openssh = {
|
||||
enable = true;
|
||||
passwordAuthentication = false;
|
||||
challengeResponseAuthentication = false;
|
||||
kbdInteractiveAuthentication = false;
|
||||
};
|
||||
|
||||
services.borgbackup.repos.repo1 = {
|
||||
|
|
|
@ -53,7 +53,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
|||
services.openssh = {
|
||||
enable = true;
|
||||
passwordAuthentication = false;
|
||||
challengeResponseAuthentication = false;
|
||||
kbdInteractiveAuthentication = false;
|
||||
};
|
||||
services.btrbk = {
|
||||
extraPackages = [ pkgs.lz4 ];
|
||||
|
|
|
@ -17,7 +17,7 @@ in {
|
|||
};
|
||||
|
||||
services.openssh.enable = true;
|
||||
services.openssh.challengeResponseAuthentication = false;
|
||||
services.openssh.kbdInteractiveAuthentication = false;
|
||||
services.openssh.passwordAuthentication = false;
|
||||
|
||||
security.googleOsLogin.enable = true;
|
||||
|
|
57
nixos/tests/tsm-client-gui.nix
Normal file
57
nixos/tests/tsm-client-gui.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
# The tsm-client GUI first tries to connect to a server.
|
||||
# We can't simulate a server, so we just check if
|
||||
# it reports the correct connection failure error.
|
||||
# After that the test persuades the GUI
|
||||
# to show its main application window
|
||||
# and verifies some configuration information.
|
||||
|
||||
import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
name = "tsm-client";
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
machine = { pkgs, ... }: {
|
||||
imports = [ ./common/x11.nix ];
|
||||
programs.tsmClient = {
|
||||
enable = true;
|
||||
package = pkgs.tsm-client-withGui;
|
||||
defaultServername = "testserver";
|
||||
servers.testserver = {
|
||||
# 192.0.0.8 is a "dummy address" according to RFC 7600
|
||||
server = "192.0.0.8";
|
||||
node = "SOME-NODE";
|
||||
passwdDir = "/tmp";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.succeed("which dsmj") # fail early if this is missing
|
||||
machine.wait_for_x()
|
||||
machine.execute("DSM_LOG=/tmp dsmj -optfile=/dev/null >&2 &")
|
||||
|
||||
# does it report the "TCP/IP connection failure" error code?
|
||||
machine.wait_for_window("IBM Spectrum Protect")
|
||||
machine.wait_for_text("ANS2610S")
|
||||
machine.send_key("esc")
|
||||
|
||||
# it asks to continue to restore a local backupset now;
|
||||
# "yes" (return) leads to the main application window
|
||||
machine.wait_for_text("backupset")
|
||||
machine.send_key("ret")
|
||||
|
||||
# main window: navigate to "Connection Information"
|
||||
machine.wait_for_text("Welcome")
|
||||
machine.send_key("alt-f") # "File" menu
|
||||
machine.send_key("c") # "Connection Information"
|
||||
|
||||
# "Connection Information" dialog box
|
||||
machine.wait_for_window("Connection Information")
|
||||
machine.wait_for_text("SOME-NODE")
|
||||
machine.wait_for_text("${pkgs.tsm-client.passthru.unwrapped.version}")
|
||||
|
||||
machine.shutdown()
|
||||
'';
|
||||
|
||||
meta.maintainers = [ lib.maintainers.yarny ];
|
||||
})
|
|
@ -1,40 +1,46 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, fetchzip
|
||||
, libjack2, alsa-lib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
|
||||
, libGL, python3, ncurses, libusb1
|
||||
, gtk3, webkitgtk, curl, xvfb-run, makeWrapper
|
||||
# "Debug", or "Release"
|
||||
, buildType ? "Release"
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchzip
|
||||
, cmake
|
||||
, pkg-config
|
||||
, ninja
|
||||
, makeWrapper
|
||||
, libjack2
|
||||
, alsa-lib
|
||||
, alsa-tools
|
||||
, freetype
|
||||
, libusb1
|
||||
, libX11
|
||||
, libXrandr
|
||||
, libXinerama
|
||||
, libXext
|
||||
, libXcursor
|
||||
, libXScrnSaver
|
||||
, libGL
|
||||
, libxcb
|
||||
, xcbutil
|
||||
, libxkbcommon
|
||||
, xcbutilkeysyms
|
||||
, xcb-util-cursor
|
||||
, gtk3
|
||||
, webkitgtk
|
||||
, python3
|
||||
, curl
|
||||
, pcre
|
||||
, mount
|
||||
, gnome
|
||||
, Cocoa
|
||||
, WebKit
|
||||
, CoreServices
|
||||
, CoreAudioKit
|
||||
# It is not allowed to distribute binaries with the VST2 SDK plugin without a license
|
||||
# (the author of Bespoke has such a licence but not Nix). VST3 should work out of the box.
|
||||
# Read more in https://github.com/NixOS/nixpkgs/issues/145607
|
||||
, enableVST2 ? false
|
||||
}:
|
||||
|
||||
let
|
||||
projucer = stdenv.mkDerivation rec {
|
||||
pname = "projucer";
|
||||
version = "5.4.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "juce-framework";
|
||||
repo = "JUCE";
|
||||
rev = version;
|
||||
sha256= "0qpiqfwwpcghk7ij6w4vy9ywr3ryg7ppg77bmd7783kxg6zbhj8h";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
freetype libX11 libXrandr libXinerama libXext gtk3 webkitgtk
|
||||
libjack2 curl
|
||||
];
|
||||
preBuild = ''
|
||||
cd extras/Projucer/Builds/LinuxMakefile
|
||||
'';
|
||||
makeFlags = [ "CONFIG=${buildType}" ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -a build/Projucer $out/bin/Projucer
|
||||
'';
|
||||
};
|
||||
|
||||
# equal to vst-sdk in ../oxefmsynth/default.nix
|
||||
vst-sdk = stdenv.mkDerivation rec {
|
||||
name = "vstsdk3610_11_06_2018_build_37";
|
||||
|
@ -50,70 +56,92 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bespokesynth";
|
||||
version = "1.0.0";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awwbees";
|
||||
owner = "BespokeSynth";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "04b2m40jszphslkd4850jcb8qwls392lwy3lc6vlj01h4izvapqk";
|
||||
sha256 = "sha256-PN0Q6/gI1PeMaF/8EZFGJdLR8JVHQZfWunAhOIQxkHw=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
cmakeBuildType = "Release";
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
xvfb-run sh -e <<EOF
|
||||
${projucer}/bin/Projucer --set-global-search-path linux defaultJuceModulePath ${projucer.src}/modules
|
||||
${projucer}/bin/Projucer --resave BespokeSynth.jucer
|
||||
EOF
|
||||
cmakeFlags = lib.optionals enableVST2 [ "-DBESPOKE_VST2_SDK_LOCATION=${vst-sdk}/VST2_SDK" ];
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
CFLAGS = "-I${vst-sdk}/VST2_SDK";
|
||||
nativeBuildInputs = [ python3 makeWrapper cmake pkg-config ninja ];
|
||||
|
||||
nativeBuildInputs = [ xvfb-run pkg-config python3 makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
libX11 libXrandr libXinerama libXext libXcursor freetype libGL
|
||||
ncurses libusb1
|
||||
alsa-lib libjack2
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
# List obtained in https://github.com/BespokeSynth/BespokeSynth/blob/main/azure-pipelines.yml
|
||||
libX11
|
||||
libXrandr
|
||||
libXinerama
|
||||
libXext
|
||||
libXcursor
|
||||
libXScrnSaver
|
||||
curl
|
||||
gtk3
|
||||
webkitgtk
|
||||
freetype
|
||||
libGL
|
||||
libusb1
|
||||
alsa-lib
|
||||
libjack2
|
||||
gnome.zenity
|
||||
alsa-tools
|
||||
libxcb
|
||||
xcbutil
|
||||
libxkbcommon
|
||||
xcbutilkeysyms
|
||||
xcb-util-cursor
|
||||
pcre
|
||||
mount
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
Cocoa
|
||||
WebKit
|
||||
CoreServices
|
||||
CoreAudioKit
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
cd Builds/LinuxMakefile
|
||||
'';
|
||||
makeFlags = [ "CONFIG=${buildType}" ];
|
||||
enableParallelBuilding = true;
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin (toString [
|
||||
# Fails to find fp.h on its own
|
||||
"-isystem ${CoreServices}/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/CarbonCore.framework/Versions/Current/Headers/"
|
||||
]);
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin $out/share/bespokesynth $out/share/applications $out/share/icons/hicolor/512x512/apps
|
||||
cp build/BespokeSynth $out/bin/
|
||||
cp -ar ../MacOSX/build/Release/resource $out/share/bespokesynth/
|
||||
wrapProgram $out/bin/BespokeSynth \
|
||||
--run "cd $out/share/bespokesynth"
|
||||
|
||||
mkdir -p $out/share/applications/ $out/share/icons/hicolor/512x512/apps/
|
||||
cp ../../bespoke_icon.png $out/share/icons/hicolor/512x512/apps/
|
||||
substitute ../../BespokeSynth.desktop $out/share/applications/BespokseSynth.desktop \
|
||||
--replace "/usr/bin/" ""
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
postInstall =
|
||||
if stdenv.hostPlatform.isDarwin then ''
|
||||
mkdir -p $out/{Applications,bin}
|
||||
mv Source/BespokeSynth_artefacts/${cmakeBuildType}/BespokeSynth.app $out/Applications/
|
||||
# Symlinking confuses the resource finding about the actual location of the binary
|
||||
# Resources are looked up relative to the executed file's location
|
||||
makeWrapper $out/{Applications/BespokeSynth.app/Contents/MacOS,bin}/BespokeSynth
|
||||
'' else ''
|
||||
# Ensure zenity is available, or it won't be able to open new files.
|
||||
# Ensure the python used for compilation is the same as the python used at run-time.
|
||||
# jedi is also required for auto-completion.
|
||||
# These X11 libs get dlopen'd, they cause visual bugs when unavailable.
|
||||
wrapProgram $out/bin/BespokeSynth \
|
||||
--prefix PATH : '${lib.makeBinPath [
|
||||
gnome.zenity
|
||||
(python3.withPackages (ps: with ps; [ jedi ]))
|
||||
]}' \
|
||||
--prefix LD_LIBRARY_PATH : '${lib.makeLibraryPath [
|
||||
libXrandr
|
||||
libXinerama
|
||||
libXcursor
|
||||
libXScrnSaver
|
||||
]}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software modular synth with controllers support, scripting and VST";
|
||||
description =
|
||||
"Software modular synth with controllers support, scripting and VST";
|
||||
homepage = "https://github.com/awwbees/BespokeSynth";
|
||||
license = with licenses; [
|
||||
gpl3Plus
|
||||
|
||||
# This package is unfree and not distributable due to the license of VST2.
|
||||
# see #145607
|
||||
unfree
|
||||
];
|
||||
maintainers = with maintainers; [ astro ];
|
||||
] ++ lib.optional enableVST2 unfree;
|
||||
maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
60
pkgs/applications/misc/pomotroid/default.nix
Normal file
60
pkgs/applications/misc/pomotroid/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ stdenv, lib, fetchurl, makeWrapper, makeDesktopItem, copyDesktopItems, electron }:
|
||||
|
||||
let
|
||||
version = "0.13.0";
|
||||
appIcon = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/Splode/pomotroid/v${version}/static/icon.png";
|
||||
sha256 = "sha256-BEPoOBErw5ZCeK4rtdxdwZZLimbpglu1Cu++4xzuVUs=";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "pomotroid";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Splode/pomotroid/releases/download/v${version}/${pname}-${version}-linux.tar.gz";
|
||||
sha256 = "sha256-AwpVnvwWQd/cgmZvtr5NprnLyeXz6ym4Fywc808tcSc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = pname;
|
||||
exec = "pomotroid";
|
||||
icon = "pomotroid";
|
||||
comment = meta.description;
|
||||
desktopName = "Pomotroid";
|
||||
genericName = "Pomodoro Application";
|
||||
})
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/opt/pomotroid $out/share/pomotroid $out/share/pixmaps
|
||||
|
||||
cp -r ./ $out/opt/pomotroid
|
||||
mv $out/opt/pomotroid/{locales,resources} $out/share/pomotroid
|
||||
cp ${appIcon} $out/share/pixmaps/pomotroid.png
|
||||
|
||||
makeWrapper ${electron}/bin/electron $out/bin/pomotroid \
|
||||
--add-flags $out/share/pomotroid/resources/app.asar
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple and visually-pleasing Pomodoro timer";
|
||||
homepage = "https://splode.github.io/pomotroid";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ wolfangaukang ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -7,82 +7,97 @@
|
|||
, cdrtools # libvirt
|
||||
}:
|
||||
let
|
||||
list = lib.importJSON ./providers.json;
|
||||
|
||||
buildWithGoModule = data:
|
||||
# Our generic constructor to build new providers.
|
||||
#
|
||||
# Is designed to combine with the terraform.withPlugins implementation.
|
||||
mkProvider =
|
||||
{ owner
|
||||
, repo
|
||||
, rev
|
||||
, version
|
||||
, sha256
|
||||
, vendorSha256 ? throw "vendorSha256 missing: please use `buildGoModule`" /* added 2022/01 */
|
||||
, deleteVendor ? false
|
||||
, proxyVendor ? false
|
||||
, provider-source-address
|
||||
}@attrs:
|
||||
buildGoModule {
|
||||
pname = data.repo;
|
||||
inherit (data) vendorSha256 version;
|
||||
pname = repo;
|
||||
inherit vendorSha256 version deleteVendor proxyVendor;
|
||||
subPackages = [ "." ];
|
||||
doCheck = false;
|
||||
# https://github.com/hashicorp/terraform-provider-scaffolding/blob/a8ac8375a7082befe55b71c8cbb048493dd220c2/.goreleaser.yml
|
||||
# goreleaser (used for builds distributed via terraform registry) requires that CGO is disabled
|
||||
CGO_ENABLED = 0;
|
||||
ldflags = [ "-s" "-w" "-X main.version=${data.version}" "-X main.commit=${data.rev}" ];
|
||||
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${rev}" ];
|
||||
src = fetchFromGitHub {
|
||||
inherit (data) owner repo rev sha256;
|
||||
inherit owner repo rev sha256;
|
||||
};
|
||||
deleteVendor = data.deleteVendor or false;
|
||||
proxyVendor = data.proxyVendor or false;
|
||||
|
||||
# Terraform allow checking the provider versions, but this breaks
|
||||
# if the versions are not provided via file paths.
|
||||
postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}";
|
||||
passthru = data;
|
||||
postBuild = "mv $NIX_BUILD_TOP/go/bin/${repo}{,_v${version}}";
|
||||
passthru = attrs;
|
||||
};
|
||||
|
||||
# Our generic constructor to build new providers
|
||||
mkProvider = attrs:
|
||||
(if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else throw /* added 2022/01 */ "vendorSha256 missing: please use `buildGoModule`")
|
||||
attrs;
|
||||
list = lib.importJSON ./providers.json;
|
||||
|
||||
# These providers are managed with the ./update-all script
|
||||
automated-providers = lib.mapAttrs (_: attrs: mkProvider attrs) list;
|
||||
|
||||
# These are the providers that don't fall in line with the default model
|
||||
special-providers = let archived = throw "the provider has been archived by upstream"; in {
|
||||
# Packages that don't fit the default model
|
||||
gandi = callPackage ./gandi { };
|
||||
# mkisofs needed to create ISOs holding cloud-init data,
|
||||
# and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
|
||||
libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
|
||||
teleport = callPackage ./teleport { };
|
||||
vpsadmin = callPackage ./vpsadmin { };
|
||||
} // (lib.optionalAttrs (config.allowAliases or false) {
|
||||
arukas = archived; # added 2022/01
|
||||
bitbucket = archived; # added 2022/01
|
||||
chef = archived; # added 2022/01
|
||||
cherryservers = archived; # added 2022/01
|
||||
clc = archived; # added 2022/01
|
||||
cloudstack = throw "removed from nixpkgs"; # added 2022/01
|
||||
cobbler = archived; # added 2022/01
|
||||
cohesity = archived; # added 2022/01
|
||||
dyn = archived; # added 2022/01
|
||||
genymotion = archived; # added 2022/01
|
||||
hedvig = archived; # added 2022/01
|
||||
ignition = archived; # added 2022/01
|
||||
incapsula = archived; # added 2022/01
|
||||
influxdb = archived; # added 2022/01
|
||||
jdcloud = archived; # added 2022/01
|
||||
kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details";
|
||||
librato = archived; # added 2022/01
|
||||
logentries = archived; # added 2022/01
|
||||
metalcloud = archived; # added 2022/01
|
||||
mysql = archived; # added 2022/01
|
||||
nixos = archived; # added 2022/01
|
||||
oneandone = archived; # added 2022/01
|
||||
packet = archived; # added 2022/01
|
||||
profitbricks = archived; # added 2022/01
|
||||
pureport = archived; # added 2022/01
|
||||
rancher = archived; # added 2022/01
|
||||
rightscale = archived; # added 2022/01
|
||||
runscope = archived; # added 2022/01
|
||||
segment = throw "removed from nixpkgs"; # added 2022/01
|
||||
softlayer = archived; # added 2022/01
|
||||
telefonicaopencloud = archived; # added 2022/01
|
||||
terraform = archived; # added 2022/01
|
||||
ultradns = archived; # added 2022/01
|
||||
vthunder = throw "provider was renamed to thunder"; # added 2022/01
|
||||
});
|
||||
special-providers =
|
||||
{
|
||||
# Packages that don't fit the default model
|
||||
gandi = callPackage ./gandi { };
|
||||
# mkisofs needed to create ISOs holding cloud-init data,
|
||||
# and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
|
||||
libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
|
||||
teleport = callPackage ./teleport { };
|
||||
vpsadmin = callPackage ./vpsadmin { };
|
||||
};
|
||||
|
||||
# Put all the providers we not longer support in this list.
|
||||
removed-providers =
|
||||
let
|
||||
archived = date: throw "the provider has been archived by upstream on ${date}";
|
||||
removed = date: throw "removed from nixpkgs on ${date}";
|
||||
in
|
||||
lib.optionalAttrs (config.allowAliases or false) {
|
||||
arukas = archived "2022/01";
|
||||
bitbucket = archived "2022/01";
|
||||
chef = archived "2022/01";
|
||||
cherryservers = archived "2022/01";
|
||||
clc = archived "2022/01";
|
||||
cloudstack = removed "2022/01";
|
||||
cobbler = archived "2022/01";
|
||||
cohesity = archived "2022/01";
|
||||
dyn = archived "2022/01";
|
||||
genymotion = archived "2022/01";
|
||||
hedvig = archived "2022/01";
|
||||
ignition = archived "2022/01";
|
||||
incapsula = archived "2022/01";
|
||||
influxdb = archived "2022/01";
|
||||
jdcloud = archived "2022/01";
|
||||
kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details";
|
||||
librato = archived "2022/01";
|
||||
logentries = archived "2022/01";
|
||||
metalcloud = archived "2022/01";
|
||||
mysql = archived "2022/01";
|
||||
nixos = archived "2022/01";
|
||||
oneandone = archived "2022/01";
|
||||
packet = archived "2022/01";
|
||||
profitbricks = archived "2022/01";
|
||||
pureport = archived "2022/01";
|
||||
rancher = archived "2022/01";
|
||||
rightscale = archived "2022/01";
|
||||
runscope = archived "2022/01";
|
||||
segment = removed "2022/01";
|
||||
softlayer = archived "2022/01";
|
||||
telefonicaopencloud = archived "2022/01";
|
||||
terraform = archived "2022/01";
|
||||
ultradns = archived "2022/01";
|
||||
vthunder = throw "provider was renamed to thunder on 2022/01";
|
||||
};
|
||||
in
|
||||
automated-providers // special-providers // { inherit mkProvider; }
|
||||
automated-providers // special-providers // removed-providers // { inherit mkProvider; }
|
||||
|
|
|
@ -160,20 +160,6 @@ rec {
|
|||
# Constructor for other terraform versions
|
||||
mkTerraform = attrs: pluggable (generic attrs);
|
||||
|
||||
terraform_0_12 = mkTerraform {
|
||||
version = "0.12.31";
|
||||
sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg";
|
||||
patches = [
|
||||
./provider-path.patch
|
||||
(fetchpatch {
|
||||
name = "fix-mac-mojave-crashes.patch";
|
||||
url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch";
|
||||
sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs";
|
||||
})
|
||||
];
|
||||
passthru = { inherit plugins; };
|
||||
};
|
||||
|
||||
terraform_0_13 = mkTerraform {
|
||||
version = "0.13.7";
|
||||
sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
, fetchYarnDeps
|
||||
, electron
|
||||
, element-web
|
||||
, sqlcipher
|
||||
, callPackage
|
||||
, Security
|
||||
, AppKit
|
||||
|
@ -78,7 +79,9 @@ mkYarnPackage rec {
|
|||
ln -s "${desktopItem}/share/applications" "$out/share/applications"
|
||||
|
||||
# executable wrapper
|
||||
# LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102
|
||||
makeWrapper '${electron_exec}' "$out/bin/${executableName}" \
|
||||
--set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \
|
||||
--add-flags "$out/share/element/electron${lib.optionalString useWayland " --enable-features=UseOzonePlatform --ozone-platform=wayland"}"
|
||||
'';
|
||||
|
||||
|
@ -94,7 +97,7 @@ mkYarnPackage rec {
|
|||
name = "element-desktop";
|
||||
exec = "${executableName} %u";
|
||||
icon = "element";
|
||||
desktopName = "Element (Riot)";
|
||||
desktopName = "Element";
|
||||
genericName = "Matrix Client";
|
||||
comment = meta.description;
|
||||
categories = "Network;InstantMessaging;Chat;";
|
||||
|
|
|
@ -19,16 +19,16 @@ let
|
|||
maintainers = with maintainers; [ fliegendewurst ];
|
||||
};
|
||||
|
||||
version = "0.49.4";
|
||||
version = "0.49.5";
|
||||
|
||||
desktopSource = {
|
||||
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
|
||||
sha256 = "078w7jjkn8af3i0y0s236ky54h08b2wgzcaiakqiqx4gxdpf6jrq";
|
||||
sha256 = "0bis0xkpcr8rvhm9364v0np5cnvkscv2fgl90f455lcwy7kk9m12";
|
||||
};
|
||||
|
||||
serverSource = {
|
||||
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
|
||||
sha256 = "0hygdxb97373z5cn3s4wr66wc41w7a55kxjyb8alck1fl9l6agn1";
|
||||
sha256 = "1wv9xz1asjadz1jzgpaxf6lzbj5azgsq0qpawp3y257h488r1z9k";
|
||||
};
|
||||
|
||||
in {
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
, sanitizeAddress ? false
|
||||
, sanitizeThreads ? false
|
||||
, with3d ? true
|
||||
, withI18n ? false
|
||||
, withI18n ? true
|
||||
, withPCM ? true # Plugin and Content Manager
|
||||
, srcs ? { }
|
||||
}:
|
||||
|
|
|
@ -19,11 +19,11 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "gromacs";
|
||||
version = "2021.4";
|
||||
version = "2021.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
|
||||
sha256 = "07ds8abxq0k7vfpjvxb8in3fhb6lz0pbdzbmlidyzaw37qz8lw6b";
|
||||
sha256 = "1dh9l2gcv61h1r6qsg8vr3k1xp8jgd27czzg24kzf4k823k3z9pb";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -18,17 +18,20 @@
|
|||
, sassc
|
||||
, udisks2
|
||||
, wrapGAppsHook
|
||||
, libX11
|
||||
, libXext
|
||||
, libXNVCtrl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "monitor";
|
||||
version = "0.11.0";
|
||||
version = "0.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stsdc";
|
||||
repo = "monitor";
|
||||
rev = version;
|
||||
sha256 = "sha256-xWhhjn7zk/juXx50wLG2TpB5aqU+588kWBBquWrVJbM=";
|
||||
sha256 = "1fv98yz9393ddp0k96bwbgccy6x9dmmg8g1pjd3xs6m4c1bnvfc7";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -53,8 +56,19 @@ stdenv.mkDerivation rec {
|
|||
libwnck
|
||||
sassc
|
||||
udisks2
|
||||
libX11
|
||||
libXext
|
||||
libXNVCtrl
|
||||
];
|
||||
|
||||
# Force link against Xext, otherwise build fails with:
|
||||
# ld: /nix/store/...-libXNVCtrl-495.46/lib/libXNVCtrl.a(NVCtrl.o): undefined reference to symbol 'XextAddDisplay'
|
||||
# ld: /nix/store/...-libXext-1.3.4/lib/libXext.so.6: error adding symbols: DSO missing from command line
|
||||
# https://github.com/stsdc/monitor/issues/292
|
||||
NIX_LDFLAGS = "-lXext";
|
||||
|
||||
mesonFlags = [ "-Dindicator-wingpanel=enabled" ];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mlterm";
|
||||
version = "3.9.1";
|
||||
version = "3.9.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "arakiken";
|
||||
repo = pname;
|
||||
rev = "rel-${lib.replaceStrings [ "." ] [ "_" ] version}"; # 3.9.1 -> rel-3_9_1
|
||||
sha256 = "1hh196kz2n3asv8r8r2bdk5b2w93zq7rw4880ciiq1554h0ib7fj";
|
||||
sha256 = "sha256-DvGR3rDegInpnLp3H+rXNXktCGhpjsBBPTRMwodeTro=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoconf wrapGAppsHook ];
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "runc";
|
||||
version = "1.0.3";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "opencontainers";
|
||||
repo = "runc";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Tl/JKbIpao+FCjngPzaVkxse50zo3XQ9Mg/AdkblMcI=";
|
||||
sha256 = "sha256-svLxxfiRDLWkdRuHXaDyH5Ta6qmptI8z+s41iZKgbWM=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
|
|
@ -18,9 +18,9 @@ stdenv.mkDerivation {
|
|||
|
||||
buildInputs = [ xorgproto libX11 libXft ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
makeFlags = [ "CC:=$(CC)" ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://tools.suckless.org/tabbed";
|
||||
|
|
|
@ -71,7 +71,7 @@ let
|
|||
"pki"
|
||||
];
|
||||
in concatStringsSep "\n "
|
||||
(map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
|
||||
(map (file: "--ro-bind-try $(${coreutils}/bin/readlink -f /etc/${file}) /etc/${file}") files);
|
||||
|
||||
# Create this on the fly instead of linking from /nix
|
||||
# The container might have to modify it and re-run ldconfig if there are
|
||||
|
|
|
@ -1,26 +1,67 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libxml2, gdk-pixbuf, librsvg, gtk-engine-murrine }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, gdk-pixbuf
|
||||
, gtk-engine-murrine
|
||||
, jdupes
|
||||
, librsvg
|
||||
, libxml2
|
||||
, buttonVariants ? [] # default to all
|
||||
, colorVariants ? [] # default to all
|
||||
, opacityVariants ? [] # default to all
|
||||
, sizeVariants ? [] # default to all
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
let
|
||||
pname = "sierra-gtk-theme";
|
||||
version = "2019-12-16";
|
||||
in
|
||||
lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
|
||||
lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
|
||||
lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
|
||||
lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit pname;
|
||||
version = "unstable-2021-05-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vinceliuice";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "14hlz8kbrjypyd6wyrwmnj2wm9w3kc8y00ms35ard7x8lmhs56hr";
|
||||
rev = "05899001c4fc2fec87c4d222cb3997c414e0affd";
|
||||
sha256 = "174l5mryc34ma1r42pk6572c6i9hmzr9vj1a6w06nqz5qcfm1hds";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ libxml2 ];
|
||||
nativeBuildInputs = [
|
||||
jdupes
|
||||
libxml2
|
||||
];
|
||||
|
||||
buildInputs = [ gdk-pixbuf librsvg ];
|
||||
buildInputs = [
|
||||
gdk-pixbuf
|
||||
librsvg
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
||||
propagatedUserEnvPkgs = [
|
||||
gtk-engine-murrine
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
patchShebangs .
|
||||
runHook preInstall
|
||||
|
||||
patchShebangs install.sh
|
||||
|
||||
mkdir -p $out/share/themes
|
||||
name= ./install.sh --dest $out/share/themes
|
||||
name= ./install.sh --dest $out/share/themes \
|
||||
${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
|
||||
${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
|
||||
${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
|
||||
${lib.optionalString (sizeVariants != []) "--flat " + builtins.toString sizeVariants}
|
||||
|
||||
# Replace duplicate files with hardlinks to the first file in each
|
||||
# set of duplicates, reducing the installed size in about 79%
|
||||
jdupes -L -r $out/share
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
# see https://aur.archlinux.org/cgit/aur.git/commit/PKGBUILD?h=libfreenect&id=0d17db49ba64bcb9e3a4eed61cf55c9a5ceb97f1
|
||||
patchPhase = lib.concatMapStrings (x: ''
|
||||
substituteInPlace ${x} --replace "{GLUT_LIBRARY}" "{GLUT_LIBRARIES}"
|
||||
'') [ "examples/CMakeLists.txt" "wrappers/cpp/CMakeLists.txt" ];
|
||||
|
||||
meta = {
|
||||
description = "Drivers and libraries for the Xbox Kinect device on Windows, Linux, and macOS";
|
||||
homepage = "http://openkinect.org";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libpqxx";
|
||||
version = "7.6.0";
|
||||
version = "7.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jtv";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-shcGJebjXJ3ORvcdINJFLiuW7ySqe6HyPUQioeUG/wM=";
|
||||
sha256 = "sha256-O30czHwEDXz5xY4o3MWhmEK06OKTKMQCy0M6qwSEpy8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gnused python3 ];
|
||||
|
|
|
@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
|
|||
license = licenses.gpl3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ andrew-d ];
|
||||
broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/itpp.x86_64-darwin
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
, lib
|
||||
, fetchurl
|
||||
# Build-time dependencies
|
||||
, mlterm
|
||||
, ncurses # >= 5
|
||||
, units
|
||||
}:
|
||||
|
@ -17,7 +16,6 @@ buildOctavePackage rec {
|
|||
};
|
||||
|
||||
buildInputs = [
|
||||
mlterm
|
||||
ncurses
|
||||
];
|
||||
|
||||
|
|
|
@ -12,16 +12,67 @@
|
|||
, cairo
|
||||
, cffi
|
||||
, numpy
|
||||
, withXcffib ? false, xcffib
|
||||
, withXcffib ? false
|
||||
, xcffib
|
||||
, python
|
||||
, glib
|
||||
, gdk-pixbuf
|
||||
}@args:
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cairocffi";
|
||||
version = "1.3.0";
|
||||
|
||||
import ./generic.nix ({
|
||||
version = "1.2.0";
|
||||
sha256 = "sha256-mpebUAxkyBef7ChvM36P5kTsovLNBYYM4LYtJfIuoUA=";
|
||||
dlopen_patch = ./dlopen-paths.patch;
|
||||
disabled = pythonOlder "3.5";
|
||||
inherit withXcffib;
|
||||
} // args)
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-EIo6fLCeIDvdhQHZuq2R14bSBFYb1x6TZOizSJfEe5E=";
|
||||
};
|
||||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
||||
# checkPhase require at least one 'normal' font and one 'monospace',
|
||||
# otherwise glyph tests fails
|
||||
FONTCONFIG_FILE = makeFontsConf {
|
||||
fontDirectories = [ freefont_ttf ];
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
|
||||
propagatedNativeBuildInputs = [ cffi ];
|
||||
|
||||
# pytestCheckHook does not work
|
||||
checkInputs = [ numpy pytest glibcLocales ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "pytest-runner" "" \
|
||||
--replace "pytest-cov" "" \
|
||||
--replace "pytest-flake8" "" \
|
||||
--replace "pytest-isort" "" \
|
||||
--replace "--flake8 --isort" ""
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
py.test $out/${python.sitePackages}
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0
|
||||
(substituteAll {
|
||||
src = ./dlopen-paths.patch;
|
||||
ext = stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
cairo = cairo.out;
|
||||
glib = glib.out;
|
||||
gdk_pixbuf = gdk-pixbuf.out;
|
||||
})
|
||||
./fix_test_scaled_font.patch
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/SimonSapin/cairocffi";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
description = "cffi-based cairo bindings for Python";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
{ version
|
||||
, sha256
|
||||
, dlopen_patch
|
||||
, disabled ? false
|
||||
, ...
|
||||
}@args:
|
||||
|
||||
with args;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cairocffi";
|
||||
inherit version disabled;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version sha256;
|
||||
};
|
||||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
||||
# checkPhase require at least one 'normal' font and one 'monospace',
|
||||
# otherwise glyph tests fails
|
||||
FONTCONFIG_FILE = makeFontsConf {
|
||||
fontDirectories = [ freefont_ttf ];
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
|
||||
propagatedNativeBuildInputs = [ cffi ];
|
||||
|
||||
# pytestCheckHook does not work
|
||||
checkInputs = [ numpy pytest glibcLocales ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "pytest-runner" "" \
|
||||
--replace "pytest-cov" "" \
|
||||
--replace "pytest-flake8" "" \
|
||||
--replace "pytest-isort" "" \
|
||||
--replace "--flake8 --isort" ""
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
py.test $out/${python.sitePackages}
|
||||
'';
|
||||
|
||||
patches = [
|
||||
# OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0
|
||||
(substituteAll {
|
||||
src = dlopen_patch;
|
||||
ext = stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
cairo = cairo.out;
|
||||
glib = glib.out;
|
||||
gdk_pixbuf = gdk-pixbuf.out;
|
||||
})
|
||||
./fix_test_scaled_font.patch
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/SimonSapin/cairocffi";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [];
|
||||
description = "cffi-based cairo bindings for Python";
|
||||
};
|
||||
}
|
|
@ -1,27 +1,57 @@
|
|||
{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
|
||||
, colorlog, pyvmomi, requests, verboselogs
|
||||
, psutil, pyopenssl, setuptools
|
||||
, mock, pytest-mock, pytestCheckHook, qemu
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pythonOlder
|
||||
, colorlog
|
||||
, pyvmomi
|
||||
, requests
|
||||
, verboselogs
|
||||
, pyopenssl
|
||||
, setuptools
|
||||
, mock
|
||||
, pytest-mock
|
||||
, pytestCheckHook
|
||||
, qemu
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cot";
|
||||
version = "2.2.1";
|
||||
disabled = !isPy3k;
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "f4b3553415f90daac656f89d3e82e79b3d751793239bb173a683b4cc0ceb2635";
|
||||
hash = "sha256-9LNVNBX5DarGVvidPoLnmz11F5Mjm7FzpoO0zAzrJjU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ colorlog pyvmomi requests verboselogs pyopenssl setuptools ]
|
||||
++ lib.optional (pythonOlder "3.3") psutil;
|
||||
propagatedBuildInputs = [
|
||||
colorlog
|
||||
pyvmomi
|
||||
requests
|
||||
verboselogs
|
||||
pyopenssl
|
||||
setuptools
|
||||
];
|
||||
|
||||
checkInputs = [ mock pytestCheckHook pytest-mock qemu ];
|
||||
checkInputs = [
|
||||
mock
|
||||
pytestCheckHook
|
||||
pytest-mock
|
||||
qemu
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
# argparse is part of the standardlib
|
||||
substituteInPlace setup.py \
|
||||
--replace "'argparse'," ""
|
||||
'';
|
||||
|
||||
# Many tests require network access and/or ovftool (https://code.vmware.com/web/tool/ovf)
|
||||
# try enabling these tests with ovftool once/if it is added to nixpkgs
|
||||
disabledTests = [
|
||||
# Many tests require network access and/or ovftool (https://code.vmware.com/web/tool/ovf)
|
||||
# try enabling these tests with ovftool once/if it is added to nixpkgs
|
||||
"HelperGenericTest"
|
||||
"TestCOTAddDisk"
|
||||
"TestCOTAddFile"
|
||||
|
@ -34,14 +64,15 @@ buildPythonPackage rec {
|
|||
"TestQCOW2"
|
||||
"TestRAW"
|
||||
"TestVMDKConversion"
|
||||
# CLI test fails with AssertionError
|
||||
"test_help"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"test_serial_fixup_invalid_host"
|
||||
];
|
||||
|
||||
# argparse is part of the standardlib
|
||||
prePatch = ''
|
||||
substituteInPlace setup.py --replace "'argparse'," ""
|
||||
'';
|
||||
pythonImportsCheck = [
|
||||
"COT"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Common OVF Tool";
|
||||
|
|
47
pkgs/development/python-modules/flask-gravatar/default.nix
Normal file
47
pkgs/development/python-modules/flask-gravatar/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, flask
|
||||
, pytestCheckHook
|
||||
, pygments
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "flask-gravatar";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "Flask-Gravatar";
|
||||
inherit version;
|
||||
sha256 = "YGZfMcLGEokdto/4Aek+06CIHGyOw0arxk0qmSP1YuE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i setup.py \
|
||||
-e "s|tests_require=tests_require,||g" \
|
||||
-e "s|extras_require=extras_require,||g" \
|
||||
-e "s|setup_requires=setup_requires,||g"
|
||||
# pep8 is deprecated and cov not needed
|
||||
substituteInPlace pytest.ini \
|
||||
--replace "--pep8" "" \
|
||||
--replace "--cov=flask_gravatar --cov-report=term-missing" ""
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
flask
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
pygments
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "flask_gravatar" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/zzzsochi/Flask-Gravatar";
|
||||
description = "Small and simple integration of gravatar into flask";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
40
pkgs/development/python-modules/flask-paranoid/default.nix
Normal file
40
pkgs/development/python-modules/flask-paranoid/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, flask
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "flask-paranoid";
|
||||
version = "0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "miguelgrinberg";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0WWc/ktAOuTk4A75xI1jCj/aef2+1TjLKBA9+PRfJO0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# tests have a typo in one of the assertions
|
||||
substituteInPlace tests/test_paranoid.py --replace "01-Jan-1970" "01 Jan 1970"
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
flask
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "flask_paranoid" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/miguelgrinberg/flask-paranoid/";
|
||||
description = "Simple user session protection";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, flask
|
||||
, blinker
|
||||
, setuptools
|
||||
, itsdangerous
|
||||
, flask_principal
|
||||
, passlib
|
||||
, email_validator
|
||||
, flask_wtf
|
||||
, flask_login
|
||||
, pytestCheckHook
|
||||
, flask_mail
|
||||
, sqlalchemy
|
||||
, flask_sqlalchemy
|
||||
, flask-mongoengine
|
||||
, peewee
|
||||
, pony
|
||||
, zxcvbn
|
||||
, mongoengine
|
||||
, cryptography
|
||||
, pyqrcode
|
||||
, phonenumbers
|
||||
, bleach
|
||||
, mongomock
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "flask-security-too";
|
||||
version = "4.1.2";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "Flask-Security-Too";
|
||||
inherit version;
|
||||
sha256 = "16ws5n08vm7wsa2f7lrkxvc7jl3ah1xfylhhyzb4vvqmlk7x9hw8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
flask
|
||||
flask_login
|
||||
flask_principal
|
||||
flask_wtf
|
||||
email_validator
|
||||
itsdangerous
|
||||
passlib
|
||||
blinker
|
||||
setuptools
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
flask_mail
|
||||
sqlalchemy
|
||||
flask_sqlalchemy
|
||||
flask-mongoengine
|
||||
peewee
|
||||
pony
|
||||
zxcvbn
|
||||
mongoengine
|
||||
cryptography
|
||||
pyqrcode
|
||||
phonenumbers
|
||||
bleach
|
||||
mongomock
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "flask_security" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://pypi.org/project/Flask-Security-Too/";
|
||||
description = "Simple security for Flask apps (fork)";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "flux-led";
|
||||
version = "0.28.3";
|
||||
version = "0.28.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -17,7 +17,7 @@ buildPythonPackage rec {
|
|||
owner = "Danielhiversen";
|
||||
repo = "flux_led";
|
||||
rev = version;
|
||||
sha256 = "sha256-IkH5cCJbBUekABUcRyJl00tZgx+WqipEVsK8/ks2KDk=";
|
||||
sha256 = "sha256-mD6pTrUAzApJamqqcLzzQI2JDKy3PAn5TtQz5/aPFXg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -16,14 +16,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "hap-python";
|
||||
version = "4.3.0";
|
||||
version = "4.4.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ikalchev";
|
||||
repo = "HAP-python";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-G4KL6iMeVn/tmvFtFL8vyqHGNfqk6j8iG4tDK9VpCyM=";
|
||||
sha256 = "sha256-dSiI2W4U4FYwMRBInpxb/wkQLKxPzLHIkLPNgiZEhUA=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
26
pkgs/development/python-modules/httpagentparser/default.nix
Normal file
26
pkgs/development/python-modules/httpagentparser/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "httpagentparser";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "73Y9MZk912GCWs7myLNL4yuVzxZ10cc8PNNfnlKDGyY=";
|
||||
};
|
||||
|
||||
# PyPi version does not include test directory
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "httpagentparser" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/shon/httpagentparser";
|
||||
description = "Extracts OS Browser etc information from http user agent string";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
|
@ -8,11 +8,15 @@
|
|||
, mnemonic
|
||||
, pyaes
|
||||
, typing-extensions
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hwi";
|
||||
version = "2.0.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bitcoin-core";
|
||||
|
@ -34,18 +38,21 @@ buildPythonPackage rec {
|
|||
# make compatible with libusb1 2.x
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace 'libusb1>=1.7,<2.0' 'libusb1>=1.7'
|
||||
--replace 'libusb1>=1.7,<2.0' 'libusb1>=1.7' \
|
||||
--replace "'python_requires': '>=3.6,<3.10'," "'python_requires': '>=3.6,<4',"
|
||||
'';
|
||||
|
||||
# tests require to clone quite a few firmwares
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "hwilib" ];
|
||||
pythonImportsCheck = [
|
||||
"hwilib"
|
||||
];
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "Bitcoin Hardware Wallet Interface";
|
||||
homepage = "https://github.com/bitcoin-core/hwi";
|
||||
license = with lib.licenses; [ mit ];
|
||||
maintainers = with lib.maintainers; [ prusnak ];
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ prusnak ];
|
||||
};
|
||||
}
|
||||
|
|
27
pkgs/development/python-modules/matrix-common/default.nix
Normal file
27
pkgs/development/python-modules/matrix-common/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, attrs
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "matrix_common";
|
||||
version = "1.0.0";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-ZmiKRoJ8hv1USuJBDzV2U1uIFt2lRxmT+iAOqOShJK4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ attrs ];
|
||||
pythonImportsCheck = [ "matrix_common" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Common utilities for Synapse, Sydent and Sygnal";
|
||||
homepage = "https://github.com/matrix-org/matrix-python-common";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ sumnerevans ];
|
||||
};
|
||||
}
|
40
pkgs/development/python-modules/mongomock/default.nix
Normal file
40
pkgs/development/python-modules/mongomock/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pbr
|
||||
, sentinels
|
||||
, six
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mongomock";
|
||||
version = "3.23.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1pdh4pj5n6dsaqy98q40wig5y6imfs1p043cgkaaw8f2hxy5x56r";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pbr
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
sentinels
|
||||
six
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "mongomock" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mongomock/mongomock";
|
||||
description = "Fake pymongo stub for testing simple MongoDB-dependent code";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "rich";
|
||||
version = "10.16.2";
|
||||
version = "11.0.0";
|
||||
format = "pyproject";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "willmcgugan";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SVenprbWq+ucQPAM1e9sNVYWbGAeo7qdEBy+cvqAMK8=";
|
||||
sha256 = "0vkwar22rv1j6a3kqj3c016j0vnnha0kwi79fkd90ib1n501m7rn";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
|
36
pkgs/development/python-modules/sentinels/default.nix
Normal file
36
pkgs/development/python-modules/sentinels/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, pythonOlder
|
||||
, fetchPypi
|
||||
, setuptools
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sentinels";
|
||||
version = "1.0.0";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1cglkxph47pki4db4kjx5g4ikxp2milqdlcjgqwmx4p1gx6p1q3v";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "sentinels" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/vmalloc/sentinels/";
|
||||
description = "Various objects to denote special meanings in python";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
23
pkgs/development/python-modules/speaklater3/default.nix
Normal file
23
pkgs/development/python-modules/speaklater3/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "speaklater3";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "ySYdS2taMEZyMS0esImb4Cj6yRdgGQqA/szTHTo7UEI=";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "speaklater" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Implements a lazy string for python useful for use with gettext";
|
||||
homepage = "https://github.com/mitsuhiko/speaklater";
|
||||
license = licenses.bsd0;
|
||||
maintainers = with maintainers; [ gador ];
|
||||
};
|
||||
}
|
|
@ -33,7 +33,8 @@ buildPythonPackage rec {
|
|||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace 'aiohttp = {extras = ["speedups"], version = "^3.7.4"}' 'aiohttp = {extras = ["speedups"], version = ">=3.7.4"}' \
|
||||
--replace 'async-timeout = "^3.0.1"' 'async-timeout = ">=3.0.1"'
|
||||
--replace 'async-timeout = "^3.0.1"' 'async-timeout = ">=3.0.1"' \
|
||||
--replace 'rich = "^10.1.0"' 'rich = ">=10.1.0"'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -27,9 +27,12 @@ buildPythonPackage rec {
|
|||
sha256 = "1hl3wj71c7cp7jzkhyjy7xgs2vc8c89icq0bgfr49y4pwv69n43m";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./relax-deps.patch
|
||||
];
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace 'rich = "^10.7.0"' 'rich = ">=10.7.0"' \
|
||||
--replace 'PyYAML = "^5.4.1"' 'PyYAML = ">=5.4.1"' \
|
||||
--replace 'optax = "^0.0.9"' 'optax = ">=0.0.9"'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
diff --git a/pyproject.toml b/pyproject.toml
|
||||
index f0ff8a0..56787ca 100644
|
||||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -16,9 +16,9 @@ secondary = true
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.7"
|
||||
flax = "^0.3.4"
|
||||
-PyYAML = "^5.4.1"
|
||||
+PyYAML = ">=5.4.1"
|
||||
rich = "^10.7.0"
|
||||
-optax = "^0.0.9"
|
||||
+optax = ">=0.0.9"
|
||||
einops = "^0.3.2"
|
||||
treeo = "^0.0.9"
|
||||
# treeo = { path = "../treeo", develop = true }
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "yalexs";
|
||||
version = "1.1.17";
|
||||
version = "1.1.19";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
|||
owner = "bdraco";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-kCLL+0ZiraTW7swgdfS9vkLcr/s6lTccFQbC02rdNDY=";
|
||||
sha256 = "sha256-i6UFsSY2DQ4jB316fy5cZ+2C93TTmvyB4Caxj3syPdo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -22,13 +22,13 @@ with py.pkgs;
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "checkov";
|
||||
version = "2.0.712";
|
||||
version = "2.0.727";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bridgecrewio";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-iUplSd4/OcJtfby2bn7b6GwCbXnBMqUSuLjkkh+7W9Y=";
|
||||
hash = "sha256-hegbkmM8ZN6zO2iANGRr2QRW3ErdtwYaTo618uELev0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with py.pkgs; [
|
||||
|
@ -81,6 +81,7 @@ buildPythonApplication rec {
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "cyclonedx-python-lib>=0.11.0,<1.0.0" "cyclonedx-python-lib>=0.11.0" \
|
||||
--replace "jsonschema==3.0.2" "jsonschema>=3.0.2"
|
||||
'';
|
||||
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "cutter";
|
||||
version = "2.0.4";
|
||||
version = "2.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rizinorg";
|
||||
repo = "cutter";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Z5mqLkeA7AZnvKdpdRzaYfNMsGUI7i7wPTXVyIRYwxI=";
|
||||
sha256 = "sha256-ljws9S7ZxZK/Ou8jgGSoR++vtzFTEBywHMhCC/UOLEs=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -23,11 +23,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rizin";
|
||||
version = "0.3.2";
|
||||
version = "0.3.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz";
|
||||
sha256 = "sha256-T65gm1tfRD7dZSL8qZKMTAbQ65Lx/ecidFc9T1b7cig=";
|
||||
sha256 = "sha256-7qSbOWOHwJ0ZcFqrAqYXzbFWgvymfxAf8rJ+75SnEOk=";
|
||||
};
|
||||
|
||||
mesonFlags = [
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{ buildGoModule, fetchgit, lib }:
|
||||
{ buildGoModule, fetchFromGitHub, lib }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cue";
|
||||
version = "0.4.0";
|
||||
version = "0.4.1";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://cue.googlesource.com/cue";
|
||||
src = fetchFromGitHub {
|
||||
owner = "cue-lang";
|
||||
repo = "cue";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rcGEl+CMFyxZKsOKhVimhv5/ONo3xS6FjgKModZGR2o=";
|
||||
sha256 = "1q1mkqb6fk515g556yn8ks3gqrimfbadprmbv5rill1lpipq5xbj";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-eSKVlBgnHR1R0j1lNwtFoIgRuj8GqoMbvuBl/N1SanY=";
|
||||
vendorSha256 = "12p77a97lbff6qhncs5qx13k3wmf9hrr09mhh12isw5s0p0n53xm";
|
||||
|
||||
doCheck = false;
|
||||
checkPhase = "go test ./...";
|
||||
|
||||
subPackages = [ "cmd/cue" ];
|
||||
|
||||
|
@ -20,6 +21,11 @@ buildGoModule rec {
|
|||
"-s" "-w" "-X cuelang.org/go/cmd/cue/cmd.version=${version}"
|
||||
];
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
$out/bin/cue eval - <<<'a: "all good"' > /dev/null
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A data constraint language which aims to simplify tasks involving defining and using data";
|
||||
homepage = "https://cuelang.org/";
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ lib
|
||||
, python3
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
with python3.pkgs;
|
||||
|
@ -27,6 +28,8 @@ in buildPythonApplication rec {
|
|||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postPatch = ''
|
||||
# pipenv invokes python in a subprocess to create a virtualenv
|
||||
# and to call setup.py.
|
||||
|
@ -38,6 +41,13 @@ in buildPythonApplication rec {
|
|||
|
||||
propagatedBuildInputs = runtimeDeps python3.pkgs;
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd pipenv \
|
||||
--bash <(_PIPENV_COMPLETE=bash_source $out/bin/pipenv) \
|
||||
--zsh <(_PIPENV_COMPLETE=zsh_source $out/bin/pipenv) \
|
||||
--fish <(_PIPENV_COMPLETE=fish_source $out/bin/pipenv)
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
|
|
|
@ -1,100 +0,0 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, openjdk8
|
||||
, buildFHSUserEnv
|
||||
, fetchzip
|
||||
, fetchurl
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
}:
|
||||
let
|
||||
version = "2.839";
|
||||
src = stdenv.mkDerivation {
|
||||
pname = "tlauncher";
|
||||
inherit version;
|
||||
src = fetchzip {
|
||||
name = "tlauncher.zip";
|
||||
url = "https://dl2.tlauncher.org/f.php?f=files%2FTLauncher-${version}.zip";
|
||||
sha256 = "sha256-KphpNuTucpuJhXspKxqDyYQN6vbpY0XCB3GAd5YCGbc=";
|
||||
stripRoot = false;
|
||||
};
|
||||
installPhase = ''
|
||||
cp $src/*.jar $out
|
||||
'';
|
||||
};
|
||||
fhs = buildFHSUserEnv {
|
||||
name = "tlauncher";
|
||||
runScript = ''
|
||||
${openjdk8}/bin/java -jar "${src}" "$@"
|
||||
'';
|
||||
targetPkgs = pkgs: with pkgs; [
|
||||
alsa-lib
|
||||
cpio
|
||||
cups
|
||||
file
|
||||
fontconfig
|
||||
freetype
|
||||
giflib
|
||||
glib
|
||||
gnome2.GConf
|
||||
gnome2.gnome_vfs
|
||||
gtk2
|
||||
libjpeg
|
||||
libGL
|
||||
openjdk8-bootstrap
|
||||
perl
|
||||
which
|
||||
xorg.libICE
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXext
|
||||
xorg.libXi
|
||||
xorg.libXinerama
|
||||
xorg.libXrandr
|
||||
xorg.xrandr
|
||||
xorg.libXrender
|
||||
xorg.libXt
|
||||
xorg.libXtst
|
||||
xorg.libXtst
|
||||
xorg.libXxf86vm
|
||||
zip
|
||||
zlib
|
||||
];
|
||||
};
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "tlauncher";
|
||||
exec = "tlauncher";
|
||||
icon = fetchurl {
|
||||
url = "https://styles.redditmedia.com/t5_2o8oax/styles/communityIcon_gu5r5v8eaiq51.png";
|
||||
sha256 = "sha256-ma8zxaUxdAw5VYfOK8i8s1kjwMgs80Eomq43Cb0HZWw=";
|
||||
};
|
||||
comment = "Minecraft launcher";
|
||||
desktopName = "TLauncher";
|
||||
categories = "Game;";
|
||||
};
|
||||
in stdenv.mkDerivation {
|
||||
pname = "tlauncher-wrapper";
|
||||
inherit version;
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out/{bin,share/applications} -p
|
||||
install ${fhs}/bin/tlauncher $out/bin
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ copyDesktopItems ];
|
||||
desktopItems = [ desktopItem ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Minecraft launcher that already deal with forge, optifine and mods";
|
||||
homepage = "https://tlauncher.org/";
|
||||
maintainers = with maintainers; [ lucasew ];
|
||||
license = licenses.unfree;
|
||||
platforms = openjdk8.meta.platforms;
|
||||
};
|
||||
}
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fceux";
|
||||
version = "2.6.0";
|
||||
version = "2.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TASEmulators";
|
||||
repo = pname;
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "sha256-FNcybq0EFN0tWgWxzwEJQMpsnpvdRxDYnIWDXW2fXkw=";
|
||||
sha256 = "sha256-LlGM6sOjcpyHApUvSr5etKIqwDoheuiW53DSHs19W6Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
|
||||
|
|
|
@ -1064,6 +1064,22 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
jdinhlife.gruvbox = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "gruvbox";
|
||||
publisher = "jdinhlife";
|
||||
version = "1.5.1";
|
||||
sha256 = "sha256-0ghB0E+Wa9W2bNFFiH2Q3pUJ9HV5+JfKohX4cRyevC8=";
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Gruvbox Theme";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=jdinhlife.gruvbox";
|
||||
homepage = "https://github.com/jdinhify/vscode-theme-gruvbox";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ imgabe ];
|
||||
};
|
||||
};
|
||||
|
||||
jnoortheen.nix-ide = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "nix-ide";
|
||||
|
@ -1474,8 +1490,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "metals";
|
||||
publisher = "scalameta";
|
||||
version = "1.11.0";
|
||||
sha256 = "0a4agm0g16cxhvhvsmbsvvicfsjr53330rsab5xdi7gcpx9a1dff";
|
||||
version = "1.12.0";
|
||||
sha256 = "13zwjnrmkrs3wxh8c9nz9zxxs3p6lkj41q30v4a1md5pscfa1s44";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.asl20;
|
||||
|
|
24
pkgs/servers/alps/default.nix
Normal file
24
pkgs/servers/alps/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildGoModule, fetchFromSourcehut }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "alps";
|
||||
version = "2021-09-29";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~migadu";
|
||||
repo = "alps";
|
||||
rev = "d4c35f3c3157bece8e50fd95f2ee1081be30d7ae";
|
||||
sha256 = "sha256-xKfRLdfeD7lWdmC0iiq4dOIv2SmzbKH7HcAISCJgdug=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-8fmbv5uPRfzUqsYU95YzsnuFkq4cwj+LN2X3W/yBHyA=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and extensible webmail.";
|
||||
homepage = "https://git.sr.ht/~migadu/alps";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gordias ];
|
||||
};
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
# Do not edit!
|
||||
|
||||
{
|
||||
version = "2021.12.9";
|
||||
version = "2021.12.10";
|
||||
components = {
|
||||
"abode" = ps: with ps; [ abodepy ];
|
||||
"accuweather" = ps: with ps; [ accuweather ];
|
||||
|
|
|
@ -177,7 +177,7 @@ let
|
|||
extraBuildInputs = extraPackages python.pkgs;
|
||||
|
||||
# Don't forget to run parse-requirements.py after updating
|
||||
hassVersion = "2021.12.9";
|
||||
hassVersion = "2021.12.10";
|
||||
|
||||
in python.pkgs.buildPythonApplication rec {
|
||||
pname = "homeassistant";
|
||||
|
@ -194,7 +194,7 @@ in python.pkgs.buildPythonApplication rec {
|
|||
owner = "home-assistant";
|
||||
repo = "core";
|
||||
rev = version;
|
||||
hash = "sha256:17lh16c9kklx4q416ns12qjh1hc0g79y56kdkj1pvybblg0a07lm";
|
||||
hash = "sha256:0nyddcjy4diq5bakpb76frax44i0jraj2vvpfxrj50h9l5pdwsaf";
|
||||
};
|
||||
|
||||
# leave this in, so users don't have to constantly update their downstream patch handling
|
||||
|
|
|
@ -11,11 +11,11 @@ in
|
|||
with python3.pkgs;
|
||||
buildPythonApplication rec {
|
||||
pname = "matrix-synapse";
|
||||
version = "1.49.2";
|
||||
version = "1.50.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "7b795ecfc36e3f57eb7cffbc5ef9da1745b777536416c31509b3e6220c39ca4d";
|
||||
sha256 = "sha256-fdO+HJ1+fk+s65jLkPDiG+Ei89x5Fbkh9BUUFQ3NJ3M=";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
|
@ -31,6 +31,7 @@ buildPythonApplication rec {
|
|||
jinja2
|
||||
jsonschema
|
||||
lxml
|
||||
matrix-common
|
||||
msgpack
|
||||
netaddr
|
||||
phonenumbers
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
, storePathAsBuildHash ? false }:
|
||||
|
||||
let
|
||||
version = "6.2.1";
|
||||
version = "6.3.0";
|
||||
|
||||
goPackagePath = "github.com/mattermost/mattermost-server";
|
||||
|
||||
|
@ -22,7 +22,7 @@ let
|
|||
owner = "mattermost";
|
||||
repo = "mattermost-server";
|
||||
rev = "v${version}";
|
||||
sha256 = "WjBsbW7aEI+MX2I1LrEJh8JgNQ4Do7PpeshXgaQAk1s=";
|
||||
sha256 = "y3VTDl01UrMpgoN06lf98C+uTu2N9u0EAWYADPpOI3w=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
|
@ -65,7 +65,7 @@ let
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
|
||||
sha256 = "pV/MwMCK8vMzASXuM1+ePcarIgrcNAkFLEdmPya911E=";
|
||||
sha256 = "PqinkPC7J6Ng1fjTrcAa6ZqiyB2JKkGRdvJ6h2wNS5w=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -10,14 +10,14 @@ let
|
|||
"Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
|
||||
hash = {
|
||||
x64-linux_hash = "sha256-4kvcBRMMH4AnTKSES5Cpst/omTRXVRq1V1y/z5njKJI=";
|
||||
arm64-linux_hash = "sha256-NLsf0ldvlKSrHJyAXv5Ar2zIetoga6iZPOGTxFOqoQQ=";
|
||||
x64-osx_hash = "sha256-tjvGuShz/fv3qUknFVKJ+tE/bVtIyPZ7dr4JfTEcDJY=";
|
||||
x64-linux_hash = "sha256-BLtoT6UHsur+jFp4KBlE10/Z/V6RDy0k16H10IC98WQ=";
|
||||
arm64-linux_hash = "sha256-s8EV/VqiUXWRTNxacx4sy6r+TIAqkqhESAYYa9s0uAQ=";
|
||||
x64-osx_hash = "sha256-woXFYmX+499NTtWmmGBpZ12PxTUazJ8klA6IPQIDjLE=";
|
||||
}."${arch}-${os}_hash";
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "ombi";
|
||||
version = "4.0.1468";
|
||||
version = "4.3.3";
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ updateHash()
|
|||
|
||||
url="https://github.com/Ombi-app/Ombi/releases/download/v$version/$os-$arch.tar.gz"
|
||||
hash=$(nix-prefetch-url --type sha256 $url)
|
||||
sriHash="$(nix to-sri --type sha256 $hash)"
|
||||
sriHash="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $hash)"
|
||||
|
||||
sed -i "s|$hashKey = \"[a-zA-Z0-9\/+-=]*\";|$hashKey = \"$sriHash\";|g" "$dirname/default.nix"
|
||||
}
|
||||
|
|
|
@ -1,15 +1,20 @@
|
|||
{ lib
|
||||
, callPackage
|
||||
, nixosTests
|
||||
, stdenv
|
||||
, autoPatchelfHook
|
||||
, buildEnv
|
||||
, fetchurl
|
||||
, makeWrapper
|
||||
, procps
|
||||
, autoPatchelfHook
|
||||
, rpmextract
|
||||
, openssl
|
||||
, zlib
|
||||
# optional packages that enable certain features
|
||||
, acl ? null # EXT2/EXT3/XFS ACL support
|
||||
, jdk8 ? null # Java GUI
|
||||
, lvm2 ? null # LVM image backup and restore functions
|
||||
, lvm2 # LVM image backup and restore functions (optional)
|
||||
, acl # EXT2/EXT3/XFS ACL support (optional)
|
||||
, gnugrep
|
||||
, procps
|
||||
, jdk8 # Java GUI (needed for `enableGui`)
|
||||
, buildEnv
|
||||
, makeWrapper
|
||||
, enableGui ? false # enables Java GUI `dsmj`
|
||||
# path to `dsm.sys` configuration files
|
||||
, dsmSysCli ? "/etc/tsm-client/cli.dsm.sys"
|
||||
, dsmSysApi ? "/etc/tsm-client/api.dsm.sys"
|
||||
|
@ -18,7 +23,7 @@
|
|||
|
||||
# For an explanation of optional packages
|
||||
# (features provided by them, version limits), see
|
||||
# https://www-01.ibm.com/support/docview.wss?uid=swg21052223#Version%208.1
|
||||
# https://www.ibm.com/support/pages/node/660813#Version%208.1
|
||||
|
||||
|
||||
# IBM Tivoli Storage Manager Client uses a system-wide
|
||||
|
@ -40,22 +45,33 @@
|
|||
# point to this derivations `/dsmi_dir` directory symlink.
|
||||
# Other environment variables might be necessary,
|
||||
# depending on local configuration or usage; see:
|
||||
# https://www.ibm.com/support/knowledgecenter/en/SSEQVQ_8.1.8/client/c_cfg_sapiunix.html
|
||||
# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=solaris-set-api-environment-variables
|
||||
|
||||
|
||||
# The newest version of TSM client should be discoverable
|
||||
# by going the the `downloadPage` (see `meta` below),
|
||||
# there to "Client Latest Downloads",
|
||||
# "IBM Spectrum Protect Client Downloads and READMEs",
|
||||
# then to "Linux x86_64 Ubuntu client" (as of 2019-07-15).
|
||||
# The newest version of TSM client should be discoverable by
|
||||
# going to the `downloadPage` (see `meta` below).
|
||||
# Find the "Backup-archive client" table on that page.
|
||||
# Look for "Download Documents" of the latest release.
|
||||
# Here, two links must be checked:
|
||||
# * "IBM Spectrum Protect Client ... Downloads and READMEs":
|
||||
# In the table at the page's bottom,
|
||||
# check the date of the "Linux x86_64 client"
|
||||
# * "IBM Spectrum Protect BA client ... interim fix downloads"
|
||||
# Look for the "Linux x86_64 client" rows
|
||||
# in the table # at the bottom of each page.
|
||||
# Follow the "HTTPS" link of the row with the latest date stamp.
|
||||
# In the directory listing to show up, pick the big `.tar` file.
|
||||
#
|
||||
# (as of 2021-12-18)
|
||||
|
||||
|
||||
let
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.ibm.com/us-en/marketplace/data-protection-and-recovery";
|
||||
downloadPage = "https://www-01.ibm.com/support/docview.wss?uid=swg21239415";
|
||||
homepage = "https://www.ibm.com/products/data-protection-and-recovery";
|
||||
downloadPage = "https://www.ibm.com/support/pages/ibm-spectrum-protect-downloads-latest-fix-packs-and-interim-fixes";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
mainProgram = "dsmc";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = [ lib.maintainers.yarny ];
|
||||
description = "IBM Spectrum Protect (Tivoli Storage Manager) CLI and API";
|
||||
|
@ -74,34 +90,53 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
passthru.tests = {
|
||||
test-cli = callPackage ./test-cli.nix {};
|
||||
test-gui = nixosTests.tsm-client-gui;
|
||||
};
|
||||
|
||||
mkSrcUrl = version:
|
||||
let
|
||||
major = lib.versions.major version;
|
||||
minor = lib.versions.minor version;
|
||||
patch = lib.versions.patch version;
|
||||
fixup = lib.lists.elemAt (lib.versions.splitVersion version) 3;
|
||||
in
|
||||
"https://public.dhe.ibm.com/storage/tivoli-storage-management/${if fixup=="0" then "maintenance" else "patches"}/client/v${major}r${minor}/Linux/LinuxX86/BA/v${major}${minor}${patch}/${version}-TIV-TSMBAC-LinuxX86.tar";
|
||||
|
||||
unwrapped = stdenv.mkDerivation rec {
|
||||
name = "tsm-client-${version}-unwrapped";
|
||||
version = "8.1.8.0";
|
||||
version = "8.1.13.3";
|
||||
src = fetchurl {
|
||||
url = "ftp://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/client/v8r1/Linux/LinuxX86_DEB/BA/v818/${version}-TIV-TSMBAC-LinuxX86_DEB.tar";
|
||||
sha256 = "0c1d0jm0i7qjd314nhj2vj8fs7sncm1x2n4d6dg4049jniyvjhpk";
|
||||
url = mkSrcUrl version;
|
||||
sha256 = "1dwczf236drdaf4jcfzz5154vdwvxf5zraxhrhiddl6n80hnvbcd";
|
||||
};
|
||||
inherit meta;
|
||||
inherit meta passthru;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rpmextract
|
||||
];
|
||||
buildInputs = [
|
||||
openssl
|
||||
stdenv.cc.cc
|
||||
zlib
|
||||
];
|
||||
runtimeDependencies = [
|
||||
lvm2
|
||||
(lib.attrsets.getLib lvm2)
|
||||
];
|
||||
sourceRoot = ".";
|
||||
|
||||
postUnpack = ''
|
||||
for debfile in *.deb
|
||||
do
|
||||
ar -x "$debfile"
|
||||
tar --xz --extract --file=data.tar.xz
|
||||
rm data.tar.xz
|
||||
done
|
||||
rpmextract TIVsm-API64.x86_64.rpm
|
||||
rpmextract TIVsm-APIcit.x86_64.rpm
|
||||
rpmextract TIVsm-BA.x86_64.rpm
|
||||
rpmextract TIVsm-BAcit.x86_64.rpm
|
||||
rpmextract TIVsm-BAhdw.x86_64.rpm
|
||||
rpmextract TIVsm-JBB.x86_64.rpm
|
||||
# use globbing so that version updates don't break the build:
|
||||
rpmextract gskcrypt64-*.linux.x86_64.rpm
|
||||
rpmextract gskssl64-*.linux.x86_64.rpm
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
@ -113,7 +148,7 @@ let
|
|||
|
||||
# Fix relative symlinks after `/usr` was moved up one level
|
||||
preFixup = ''
|
||||
for link in $out/lib/* $out/bin/*
|
||||
for link in $out/lib{,64}/* $out/bin/*
|
||||
do
|
||||
target=$(readlink "$link")
|
||||
if [ "$(cut -b -6 <<< "$target")" != "../../" ]
|
||||
|
@ -126,14 +161,19 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
binPath = lib.makeBinPath ([ acl gnugrep procps ]
|
||||
++ lib.optional enableGui jdk8);
|
||||
|
||||
in
|
||||
|
||||
buildEnv {
|
||||
name = "tsm-client-${unwrapped.version}";
|
||||
inherit meta;
|
||||
passthru = { inherit unwrapped; };
|
||||
meta = meta // lib.attrsets.optionalAttrs enableGui {
|
||||
mainProgram = "dsmj";
|
||||
};
|
||||
passthru = passthru // { inherit unwrapped; };
|
||||
paths = [ unwrapped ];
|
||||
buildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
pathsToLink = [
|
||||
"/"
|
||||
"/bin"
|
||||
|
@ -144,7 +184,7 @@ buildEnv {
|
|||
# to the so-called "installation directories"
|
||||
# * Add symlinks to the "installation directories"
|
||||
# that point to the `dsm.sys` configuration files
|
||||
# * Drop the Java GUI executable unless `jdk` is present
|
||||
# * Drop the Java GUI executable unless `enableGui` is set
|
||||
# * Create wrappers for the command-line interface to
|
||||
# prepare `PATH` and `DSM_DIR` environment variables
|
||||
postBuild = ''
|
||||
|
@ -152,13 +192,13 @@ buildEnv {
|
|||
ln --symbolic --no-target-directory opt/tivoli/tsm/client/api/bin64 $out/dsmi_dir
|
||||
ln --symbolic --no-target-directory "${dsmSysCli}" $out/dsm_dir/dsm.sys
|
||||
ln --symbolic --no-target-directory "${dsmSysApi}" $out/dsmi_dir/dsm.sys
|
||||
${lib.optionalString (jdk8==null) "rm $out/bin/dsmj"}
|
||||
${lib.optionalString (!enableGui) "rm $out/bin/dsmj"}
|
||||
for bin in $out/bin/*
|
||||
do
|
||||
target=$(readlink "$bin")
|
||||
rm "$bin"
|
||||
makeWrapper "$target" "$bin" \
|
||||
--prefix PATH : "$out/dsm_dir:${lib.strings.makeBinPath [ procps acl jdk8 ]}" \
|
||||
--prefix PATH : "$out/dsm_dir:${binPath}" \
|
||||
--set DSM_DIR $out/dsm_dir
|
||||
done
|
||||
'';
|
||||
|
|
58
pkgs/tools/backup/tsm-client/test-cli.nix
Normal file
58
pkgs/tools/backup/tsm-client/test-cli.nix
Normal file
|
@ -0,0 +1,58 @@
|
|||
{ lib
|
||||
, writeText
|
||||
, runCommand
|
||||
, tsm-client
|
||||
}:
|
||||
|
||||
# Let the client try to connect to a server.
|
||||
# We can't simulate a server, so there's no more to test.
|
||||
|
||||
let
|
||||
|
||||
# 192.0.0.8 is a "dummy address" according to RFC 7600
|
||||
dsmSysCli = writeText "cli.dsm.sys" ''
|
||||
defaultserver testserver
|
||||
server testserver
|
||||
commmethod v6tcpip
|
||||
tcpserveraddress 192.0.0.8
|
||||
nodename ARBITRARYNODENAME
|
||||
'';
|
||||
|
||||
tsm-client_ = tsm-client.override { inherit dsmSysCli; };
|
||||
|
||||
env.nativeBuildInputs = [ tsm-client_ ];
|
||||
|
||||
versionString =
|
||||
let
|
||||
inherit (tsm-client_.passthru.unwrapped) version;
|
||||
major = lib.versions.major version;
|
||||
minor = lib.versions.minor version;
|
||||
patch = lib.versions.patch version;
|
||||
fixup = lib.lists.elemAt (lib.versions.splitVersion version) 3;
|
||||
in
|
||||
"Client Version ${major}, Release ${minor}, Level ${patch}.${fixup}";
|
||||
|
||||
in
|
||||
|
||||
runCommand "${tsm-client.name}-test-cli" env ''
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
export DSM_LOG=$(mktemp -d ./dsm_log.XXXXXXXXXXX)
|
||||
|
||||
{ dsmc -optfile=/dev/null || true; } | tee dsmc-stdout
|
||||
|
||||
# does it report the correct version?
|
||||
grep --fixed-strings '${versionString}' dsmc-stdout
|
||||
|
||||
# does it use the provided dsm.sys config file?
|
||||
# if it does, it states the node's name
|
||||
grep ARBITRARYNODENAME dsmc-stdout
|
||||
|
||||
# does it try (and fail) to connect to the server?
|
||||
# if it does, it reports the "TCP/IP connection failure" error code
|
||||
grep ANS1017E dsmc-stdout
|
||||
grep ANS1017E $DSM_LOG/dsmerror.log
|
||||
|
||||
touch $out
|
||||
''
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fuse-overlayfs";
|
||||
version = "1.8";
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-VqtBJ8HRyhjwKVoRu6+EArZMVbzXkaK89yV56MzRUJo=";
|
||||
sha256 = "sha256-0vmcn3AOASjN61QzxxGYpPMWlukanh8+vbZQcFpU/vs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nncp";
|
||||
version = "8.0.2";
|
||||
version = "8.1.0";
|
||||
outputs = [ "out" "doc" "info" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-hMb7bAdk3xFcUe5CTu9LnIR3VSJDUKbMSE86s8d5udM=";
|
||||
sha256 = "sha256-d3U233dedtZrBWRdb0QElNOd/L1+Ut4CWvkZo5TPU+w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ go redo-apenwarr ];
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "pferd";
|
||||
version = "3.2.0";
|
||||
version = "3.3.1";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Garmelon";
|
||||
repo = "PFERD";
|
||||
rev = "v${version}";
|
||||
sha256 = "0r75a128r8ghrccc1flmpxblfrab5kg6fypzrlfmv2aqhkqg1brb";
|
||||
sha256 = "162s966kmpngmp0h55x185qxsy96q2kxz2dd8w0zyh0n2hbap3lh";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "telepresence2";
|
||||
version = "2.4.6";
|
||||
version = "2.4.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telepresenceio";
|
||||
repo = "telepresence";
|
||||
rev = "v${version}";
|
||||
sha256 = "09w7yk7jk5m6clq3drbgdr61w60b21jmfd635brfahms8pykmmzl";
|
||||
sha256 = "sha256-cGG357Z0OI+aXGHWJaOPkkKUm1KcsYBvhHxNlIYlL+0=";
|
||||
};
|
||||
|
||||
# The Helm chart is go:embed'ed as a tarball in the binary.
|
||||
|
@ -21,7 +21,7 @@ buildGoModule rec {
|
|||
go run ./build-aux/package_embedded_chart/main.go ${src.rev}
|
||||
'';
|
||||
|
||||
vendorSha256 = "0przkcqaf56a0sgan2xxqfpbs9nbmq4brwdv1qnag7i9myzvixxb";
|
||||
vendorSha256 = "sha256-DzAxqSiWag9mOgPznjhMCQJhtJZo7hsezhwJBidsvJQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"
|
||||
|
|
|
@ -12,20 +12,20 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "mdcat";
|
||||
version = "0.25.0";
|
||||
version = "0.25.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lunaryorn";
|
||||
repo = pname;
|
||||
rev = "mdcat-${version}";
|
||||
sha256 = "sha256-wrtvVFOSqpNBWLRGPL+08WBS4ltQyZwRE3/dqqT6IXg=";
|
||||
sha256 = "sha256-deG2VjyjFs0LFeTXfPYy3zzjj0rpVjxE0DhkpD5PzSQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optional stdenv.isDarwin Security;
|
||||
|
||||
cargoSha256 = "sha256-9I6/lt5VXfZp2/W6EoXtagcNj2kfxB5ZT2GkWgsUyM8=";
|
||||
cargoSha256 = "sha256-bPGSdXooBZMye3yj00f3rWIiW4wfg2B4meH44hpkXTY=";
|
||||
|
||||
checkInputs = [ ansi2html ];
|
||||
# Skip tests that use the network and that include files.
|
||||
|
|
|
@ -782,6 +782,7 @@ mapAliases ({
|
|||
pgtap = postgresqlPackages.pgtap;
|
||||
plv8 = postgresqlPackages.plv8;
|
||||
timescaledb = postgresqlPackages.timescaledb;
|
||||
tlauncher = throw "tlauncher has been removed because there questionable practices and legality concerns";
|
||||
tsearch_extras = postgresqlPackages.tsearch_extras;
|
||||
cstore_fdw = postgresqlPackages.cstore_fdw;
|
||||
pg_hll = postgresqlPackages.pg_hll;
|
||||
|
@ -997,6 +998,7 @@ mapAliases ({
|
|||
telepathy_salut = telepathy-salut; # added 2018-02-25
|
||||
telnet = inetutils; # added 2018-05-15
|
||||
terminus = throw "terminus has been removed, it was unmaintained in nixpkgs"; # added 2021-08-21
|
||||
terraform_0_12 = throw "terraform_0_12 has been removed from nixpkgs on 2021/01";
|
||||
terraform_1_0_0 = throw "terraform_1_0_0 has been renamed to terraform_1"; # added 2021-06-15
|
||||
terraform_1_0 = throw "terraform_1_0 has been renamed to terraform_1"; # added 2021-12-08
|
||||
terraform-provider-ibm = terraform-providers.ibm; # added 2018-09-28
|
||||
|
|
|
@ -4927,8 +4927,8 @@ with pkgs;
|
|||
|
||||
timeline = callPackage ../applications/office/timeline { };
|
||||
|
||||
tsm-client = callPackage ../tools/backup/tsm-client { jdk8 = null; };
|
||||
tsm-client-withGui = callPackage ../tools/backup/tsm-client { };
|
||||
tsm-client = callPackage ../tools/backup/tsm-client { };
|
||||
tsm-client-withGui = callPackage ../tools/backup/tsm-client { enableGui = true; };
|
||||
|
||||
tracker = callPackage ../development/libraries/tracker { };
|
||||
|
||||
|
@ -20764,6 +20764,8 @@ with pkgs;
|
|||
|
||||
alerta-server = callPackage ../servers/monitoring/alerta { };
|
||||
|
||||
alps = callPackage ../servers/alps {};
|
||||
|
||||
apacheHttpd_2_4 = callPackage ../servers/http/apache-httpd/2.4.nix { };
|
||||
apacheHttpd = apacheHttpd_2_4;
|
||||
|
||||
|
@ -24447,7 +24449,13 @@ with pkgs;
|
|||
|
||||
berry = callPackage ../applications/window-managers/berry { };
|
||||
|
||||
bespokesynth = callPackage ../applications/audio/bespokesynth { };
|
||||
bespokesynth = callPackage ../applications/audio/bespokesynth {
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa WebKit CoreServices CoreAudioKit;
|
||||
};
|
||||
|
||||
bespokesynth-with-vst2 = bespokesynth.override {
|
||||
enableVST2 = true;
|
||||
};
|
||||
|
||||
bevelbar = callPackage ../applications/window-managers/bevelbar { };
|
||||
|
||||
|
@ -27193,7 +27201,9 @@ with pkgs;
|
|||
ocamlPackages = ocaml-ng.ocamlPackages_4_01_0;
|
||||
};
|
||||
|
||||
monitor = callPackage ../applications/system/monitor { };
|
||||
monitor = callPackage ../applications/system/monitor {
|
||||
libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
|
||||
};
|
||||
|
||||
moolticute = libsForQt5.callPackage ../applications/misc/moolticute { };
|
||||
|
||||
|
@ -28048,6 +28058,10 @@ with pkgs;
|
|||
|
||||
polymake = callPackage ../applications/science/math/polymake { };
|
||||
|
||||
pomotroid = callPackage ../applications/misc/pomotroid {
|
||||
electron = electron_9;
|
||||
};
|
||||
|
||||
pond = callPackage ../applications/networking/instant-messengers/pond { };
|
||||
|
||||
ponymix = callPackage ../applications/audio/ponymix { };
|
||||
|
@ -30257,6 +30271,22 @@ with pkgs;
|
|||
|
||||
drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { };
|
||||
|
||||
gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
|
||||
|
||||
eureka-editor = callPackage ../applications/misc/eureka-editor { };
|
||||
|
||||
eureka-ideas = callPackage ../applications/misc/eureka-ideas {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
fava = callPackage ../applications/office/fava {};
|
||||
|
||||
nux = callPackage ../tools/misc/nux { };
|
||||
|
||||
tts = callPackage ../tools/audio/tts { };
|
||||
|
||||
fslint = callPackage ../applications/misc/fslint { };
|
||||
|
||||
### GAMES
|
||||
|
||||
_1oom = callPackage ../games/1oom { };
|
||||
|
@ -30279,7 +30309,7 @@ with pkgs;
|
|||
|
||||
blockattack = callPackage ../games/blockattack { } ;
|
||||
|
||||
colobot = callPackage ../games/colobot {};
|
||||
colobot = callPackage ../games/colobot { };
|
||||
|
||||
doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
|
||||
|
||||
|
@ -30374,7 +30404,7 @@ with pkgs;
|
|||
amoeba = callPackage ../games/amoeba { };
|
||||
amoeba-data = callPackage ../games/amoeba/data.nix { };
|
||||
|
||||
andyetitmoves = callPackage ../games/andyetitmoves {};
|
||||
andyetitmoves = callPackage ../games/andyetitmoves { };
|
||||
|
||||
angband = callPackage ../games/angband { };
|
||||
|
||||
|
@ -30387,7 +30417,7 @@ with pkgs;
|
|||
|
||||
armagetronad-dedicated = callPackage ../games/armagetronad { dedicatedServer = true; };
|
||||
|
||||
arena = callPackage ../games/arena {};
|
||||
arena = callPackage ../games/arena { };
|
||||
|
||||
arx-libertatis = libsForQt5.callPackage ../games/arx-libertatis { };
|
||||
|
||||
|
@ -30401,17 +30431,17 @@ with pkgs;
|
|||
|
||||
astromenace = callPackage ../games/astromenace { };
|
||||
|
||||
atanks = callPackage ../games/atanks {};
|
||||
atanks = callPackage ../games/atanks { };
|
||||
|
||||
azimuth = callPackage ../games/azimuth {};
|
||||
azimuth = callPackage ../games/azimuth { };
|
||||
|
||||
ballAndPaddle = callPackage ../games/ball-and-paddle {
|
||||
guile = guile_1_8;
|
||||
};
|
||||
|
||||
banner = callPackage ../games/banner {};
|
||||
banner = callPackage ../games/banner { };
|
||||
|
||||
bastet = callPackage ../games/bastet {};
|
||||
bastet = callPackage ../games/bastet { };
|
||||
|
||||
black-hole-solver = callPackage ../games/black-hole-solver {
|
||||
inherit (perlPackages) PathTiny;
|
||||
|
@ -30496,12 +30526,12 @@ with pkgs;
|
|||
inherit (import ../games/crossfire pkgs)
|
||||
crossfire-server crossfire-arch crossfire-maps crossfire-client;
|
||||
|
||||
crrcsim = callPackage ../games/crrcsim {};
|
||||
crrcsim = callPackage ../games/crrcsim { };
|
||||
|
||||
curseofwar = callPackage ../games/curseofwar { SDL = null; };
|
||||
curseofwar-sdl = callPackage ../games/curseofwar { ncurses = null; };
|
||||
|
||||
cutemaze = libsForQt5.callPackage ../games/cutemaze {};
|
||||
cutemaze = libsForQt5.callPackage ../games/cutemaze { };
|
||||
|
||||
cuyo = callPackage ../games/cuyo { };
|
||||
|
||||
|
@ -30516,7 +30546,7 @@ with pkgs;
|
|||
};
|
||||
};
|
||||
|
||||
dhewm3 = callPackage ../games/dhewm3 {};
|
||||
dhewm3 = callPackage ../games/dhewm3 { };
|
||||
|
||||
domination = callPackage ../games/domination { };
|
||||
|
||||
|
@ -30564,12 +30594,6 @@ with pkgs;
|
|||
|
||||
eternity = callPackage ../games/eternity-engine { };
|
||||
|
||||
eureka-editor = callPackage ../applications/misc/eureka-editor { };
|
||||
|
||||
eureka-ideas = callPackage ../applications/misc/eureka-ideas {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
extremetuxracer = callPackage ../games/extremetuxracer {
|
||||
libpng = libpng12;
|
||||
};
|
||||
|
@ -30598,13 +30622,11 @@ with pkgs;
|
|||
|
||||
factorio-utils = callPackage ../games/factorio/utils.nix { };
|
||||
|
||||
fairymax = callPackage ../games/fairymax {};
|
||||
fairymax = callPackage ../games/fairymax { };
|
||||
|
||||
fava = callPackage ../applications/office/fava {};
|
||||
fheroes2 = callPackage ../games/fheroes2 { };
|
||||
|
||||
fheroes2 = callPackage ../games/fheroes2 {};
|
||||
|
||||
fish-fillets-ng = callPackage ../games/fish-fillets-ng {};
|
||||
fish-fillets-ng = callPackage ../games/fish-fillets-ng { };
|
||||
|
||||
fishfight = callPackage ../games/fishfight {
|
||||
inherit (xorg) libX11 libXi;
|
||||
|
@ -30650,8 +30672,6 @@ with pkgs;
|
|||
};
|
||||
};
|
||||
|
||||
fslint = callPackage ../applications/misc/fslint {};
|
||||
|
||||
galaxis = callPackage ../games/galaxis { };
|
||||
|
||||
gambatte = callPackage ../games/gambatte { };
|
||||
|
@ -30670,9 +30690,9 @@ with pkgs;
|
|||
|
||||
gemrb = callPackage ../games/gemrb { };
|
||||
|
||||
gimx = callPackage ../games/gimx {};
|
||||
gimx = callPackage ../games/gimx { };
|
||||
|
||||
gl117 = callPackage ../games/gl-117 {};
|
||||
gl117 = callPackage ../games/gl-117 { };
|
||||
|
||||
globulation2 = callPackage ../games/globulation {
|
||||
boost = boost155;
|
||||
|
@ -30698,13 +30718,11 @@ with pkgs;
|
|||
|
||||
gnushogi = callPackage ../games/gnushogi { };
|
||||
|
||||
gogui = callPackage ../games/gogui {};
|
||||
gogui = callPackage ../games/gogui { };
|
||||
|
||||
gscrabble = python3Packages.callPackage ../games/gscrabble {};
|
||||
gscrabble = python3Packages.callPackage ../games/gscrabble { };
|
||||
|
||||
gshogi = python3Packages.callPackage ../games/gshogi {};
|
||||
|
||||
gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
|
||||
gshogi = python3Packages.callPackage ../games/gshogi { };
|
||||
|
||||
qtads = qt5.callPackage ../games/qtads { };
|
||||
|
||||
|
@ -30718,7 +30736,7 @@ with pkgs;
|
|||
|
||||
gtypist = callPackage ../games/gtypist { };
|
||||
|
||||
gweled = callPackage ../games/gweled {};
|
||||
gweled = callPackage ../games/gweled { };
|
||||
|
||||
gzdoom = callPackage ../games/gzdoom { };
|
||||
|
||||
|
@ -30766,7 +30784,7 @@ with pkgs;
|
|||
enableGPU = false;
|
||||
};
|
||||
|
||||
klavaro = callPackage ../games/klavaro {};
|
||||
klavaro = callPackage ../games/klavaro { };
|
||||
|
||||
kobodeluxe = callPackage ../games/kobodeluxe { };
|
||||
|
||||
|
@ -30788,7 +30806,7 @@ with pkgs;
|
|||
|
||||
liberation-circuit = callPackage ../games/liberation-circuit { };
|
||||
|
||||
lincity = callPackage ../games/lincity {};
|
||||
lincity = callPackage ../games/lincity { };
|
||||
|
||||
lincity_ng = callPackage ../games/lincity/ng.nix {
|
||||
# https://github.com/lincity-ng/lincity-ng/issues/25
|
||||
|
@ -30802,7 +30820,7 @@ with pkgs;
|
|||
liquidwar5 = callPackage ../games/liquidwar/5.nix {
|
||||
};
|
||||
|
||||
lugaru = callPackage ../games/lugaru {};
|
||||
lugaru = callPackage ../games/lugaru { };
|
||||
|
||||
macopix = callPackage ../games/macopix {
|
||||
gtk = gtk2;
|
||||
|
@ -30814,7 +30832,7 @@ with pkgs;
|
|||
|
||||
mars = callPackage ../games/mars { };
|
||||
|
||||
megaglest = callPackage ../games/megaglest {};
|
||||
megaglest = callPackage ../games/megaglest { };
|
||||
|
||||
methane = callPackage ../games/methane { };
|
||||
|
||||
|
@ -30837,7 +30855,7 @@ with pkgs;
|
|||
minecraftServers = import ../games/minecraft-servers { inherit callPackage lib javaPackages; };
|
||||
minecraft-server = minecraftServers.vanilla; # backwards compatibility
|
||||
|
||||
moon-buggy = callPackage ../games/moon-buggy {};
|
||||
moon-buggy = callPackage ../games/moon-buggy { };
|
||||
|
||||
inherit (callPackages ../games/minetest {
|
||||
inherit (darwin) libiconv;
|
||||
|
@ -30883,8 +30901,6 @@ with pkgs;
|
|||
|
||||
nexuiz = callPackage ../games/nexuiz { };
|
||||
|
||||
nux = callPackage ../tools/misc/nux { };
|
||||
|
||||
ninvaders = callPackage ../games/ninvaders { };
|
||||
|
||||
njam = callPackage ../games/njam { };
|
||||
|
@ -30921,8 +30937,6 @@ with pkgs;
|
|||
|
||||
portmod = callPackage ../games/portmod { };
|
||||
|
||||
tlauncher = callPackage ../games/tlauncher {};
|
||||
|
||||
tr-patcher = callPackage ../games/tr-patcher { };
|
||||
|
||||
tes3cmd = callPackage ../games/tes3cmd { };
|
||||
|
@ -30949,8 +30963,8 @@ with pkgs;
|
|||
static = true;
|
||||
};
|
||||
};
|
||||
openttd-grfcodec = callPackage ../games/openttd/grfcodec.nix {};
|
||||
openttd-nml = callPackage ../games/openttd/nml.nix {};
|
||||
openttd-grfcodec = callPackage ../games/openttd/grfcodec.nix { };
|
||||
openttd-nml = callPackage ../games/openttd/nml.nix { };
|
||||
|
||||
opentyrian = callPackage ../games/opentyrian { };
|
||||
|
||||
|
@ -30972,7 +30986,7 @@ with pkgs;
|
|||
|
||||
pinball = callPackage ../games/pinball { };
|
||||
|
||||
pingus = callPackage ../games/pingus {};
|
||||
pingus = callPackage ../games/pingus { };
|
||||
|
||||
pioneer = callPackage ../games/pioneer { };
|
||||
|
||||
|
@ -31016,7 +31030,7 @@ with pkgs;
|
|||
ioquake3 = callPackage ../games/quake3/ioquake { };
|
||||
quake3e = callPackage ../games/quake3/quake3e { };
|
||||
|
||||
quantumminigolf = callPackage ../games/quantumminigolf {};
|
||||
quantumminigolf = callPackage ../games/quantumminigolf { };
|
||||
|
||||
r2mod_cli = callPackage ../games/r2mod_cli { };
|
||||
|
||||
|
@ -31067,7 +31081,7 @@ with pkgs;
|
|||
openjdk = openjdk8;
|
||||
};
|
||||
|
||||
sauerbraten = callPackage ../games/sauerbraten {};
|
||||
sauerbraten = callPackage ../games/sauerbraten { };
|
||||
|
||||
scid = callPackage ../games/scid {
|
||||
tcl = tcl-8_5;
|
||||
|
@ -31140,7 +31154,7 @@ with pkgs;
|
|||
|
||||
ssl-cert-check = callPackage ../tools/admin/ssl-cert-check { };
|
||||
|
||||
stardust = callPackage ../games/stardust {};
|
||||
stardust = callPackage ../games/stardust { };
|
||||
|
||||
starspace = callPackage ../applications/science/machine-learning/starspace { };
|
||||
|
||||
|
@ -31242,8 +31256,6 @@ with pkgs;
|
|||
|
||||
tremulous = callPackage ../games/tremulous { };
|
||||
|
||||
tts = callPackage ../tools/audio/tts { };
|
||||
|
||||
tumiki-fighters = callPackage ../games/tumiki-fighters { };
|
||||
|
||||
tuxpaint = callPackage ../games/tuxpaint { };
|
||||
|
@ -31386,8 +31398,8 @@ with pkgs;
|
|||
|
||||
|
||||
xpilot-ng = callPackage ../games/xpilot { };
|
||||
bloodspilot-server = callPackage ../games/xpilot/bloodspilot-server.nix {};
|
||||
bloodspilot-client = callPackage ../games/xpilot/bloodspilot-client.nix {};
|
||||
bloodspilot-server = callPackage ../games/xpilot/bloodspilot-server.nix { };
|
||||
bloodspilot-client = callPackage ../games/xpilot/bloodspilot-client.nix { };
|
||||
|
||||
xskat = callPackage ../games/xskat { };
|
||||
|
||||
|
@ -31436,6 +31448,10 @@ with pkgs;
|
|||
|
||||
_0verkill = callPackage ../games/0verkill { };
|
||||
|
||||
hhexen = callPackage ../games/hhexen { };
|
||||
|
||||
wyvern = callPackage ../games/wyvern { };
|
||||
|
||||
### DESKTOP ENVIRONMENTS
|
||||
|
||||
cdesktopenv = callPackage ../desktops/cdesktopenv { };
|
||||
|
@ -31465,8 +31481,6 @@ with pkgs;
|
|||
|
||||
gnome-tour = callPackage ../desktops/gnome/core/gnome-tour { };
|
||||
|
||||
hhexen = callPackage ../games/hhexen { };
|
||||
|
||||
hsetroot = callPackage ../tools/X11/hsetroot { };
|
||||
|
||||
imwheel = callPackage ../tools/X11/imwheel { };
|
||||
|
@ -33595,7 +33609,6 @@ with pkgs;
|
|||
buildGoModule = buildGo117Module;
|
||||
})
|
||||
mkTerraform
|
||||
terraform_0_12
|
||||
terraform_0_13
|
||||
terraform_0_14
|
||||
terraform_0_15
|
||||
|
@ -33855,8 +33868,6 @@ with pkgs;
|
|||
wxGTK = wxGTK30;
|
||||
};
|
||||
|
||||
wyvern = callPackage ../games/wyvern { };
|
||||
|
||||
x11idle = callPackage ../tools/misc/x11idle {};
|
||||
|
||||
x11docker = callPackage ../applications/virtualization/x11docker { };
|
||||
|
|
|
@ -2888,6 +2888,8 @@ in {
|
|||
|
||||
flask_elastic = callPackage ../development/python-modules/flask-elastic { };
|
||||
|
||||
flask-gravatar = callPackage ../development/python-modules/flask-gravatar { };
|
||||
|
||||
flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
|
||||
|
||||
flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
|
||||
|
@ -2908,6 +2910,8 @@ in {
|
|||
|
||||
flask-paginate = callPackage ../development/python-modules/flask-paginate { };
|
||||
|
||||
flask-paranoid = callPackage ../development/python-modules/flask-paranoid { };
|
||||
|
||||
flask_principal = callPackage ../development/python-modules/flask-principal { };
|
||||
|
||||
flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
|
||||
|
@ -2926,6 +2930,8 @@ in {
|
|||
|
||||
flask-session = callPackage ../development/python-modules/flask-session { };
|
||||
|
||||
flask-security-too = callPackage ../development/python-modules/flask-security-too { };
|
||||
|
||||
flask-silk = callPackage ../development/python-modules/flask-silk { };
|
||||
|
||||
flask-socketio = callPackage ../development/python-modules/flask-socketio { };
|
||||
|
@ -3731,6 +3737,8 @@ in {
|
|||
|
||||
httmock = callPackage ../development/python-modules/httmock { };
|
||||
|
||||
httpagentparser = callPackage ../development/python-modules/httpagentparser { };
|
||||
|
||||
httpauth = callPackage ../development/python-modules/httpauth { };
|
||||
|
||||
httpbin = callPackage ../development/python-modules/httpbin { };
|
||||
|
@ -4869,6 +4877,8 @@ in {
|
|||
|
||||
matrix-client = callPackage ../development/python-modules/matrix-client { };
|
||||
|
||||
matrix-common = callPackage ../development/python-modules/matrix-common { };
|
||||
|
||||
matrix-nio = callPackage ../development/python-modules/matrix-nio { };
|
||||
|
||||
mattermostdriver = callPackage ../development/python-modules/mattermostdriver { };
|
||||
|
@ -5062,6 +5072,8 @@ in {
|
|||
|
||||
mohawk = callPackage ../development/python-modules/mohawk { };
|
||||
|
||||
mongomock = callPackage ../development/python-modules/mongomock { };
|
||||
|
||||
mongodict = callPackage ../development/python-modules/mongodict { };
|
||||
|
||||
mongoengine = callPackage ../development/python-modules/mongoengine { };
|
||||
|
@ -8839,6 +8851,8 @@ in {
|
|||
|
||||
sentinel = callPackage ../development/python-modules/sentinel { };
|
||||
|
||||
sentinels = callPackage ../development/python-modules/sentinels { };
|
||||
|
||||
sentry-sdk = callPackage ../development/python-modules/sentry-sdk { };
|
||||
|
||||
sepaxml = callPackage ../development/python-modules/sepaxml { };
|
||||
|
@ -9156,6 +9170,8 @@ in {
|
|||
|
||||
speaklater = callPackage ../development/python-modules/speaklater { };
|
||||
|
||||
speaklater3 = callPackage ../development/python-modules/speaklater3 { };
|
||||
|
||||
spectral-cube = callPackage ../development/python-modules/spectral-cube { };
|
||||
|
||||
speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
|
||||
|
|
Loading…
Reference in a new issue