Merge master into haskell-updates
This commit is contained in:
commit
9ebf890b3f
155 changed files with 1412 additions and 650 deletions
|
@ -26,8 +26,20 @@ stdenv.mkDerivation {
|
|||
|
||||
The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
|
||||
|
||||
## `fetchpatch` {#fetchpatch}
|
||||
|
||||
`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example, it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
|
||||
|
||||
- `relative`: Similar to using `git-diff`'s `--relative` flag, only keep changes inside the specified directory, making paths relative to it.
|
||||
- `stripLen`: Remove the first `stripLen` components of pathnames in the patch.
|
||||
- `extraPrefix`: Prefix pathnames by this string.
|
||||
- `excludes`: Exclude files matching these patterns (applies after the above arguments).
|
||||
- `includes`: Include only files matching these patterns (applies after the above arguments).
|
||||
- `revert`: Revert the patch.
|
||||
|
||||
Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `sha256` argument is changed as well.
|
||||
|
||||
|
||||
Most other fetchers return a directory rather than a single file.
|
||||
|
||||
## `fetchsvn` {#fetchsvn}
|
||||
|
|
|
@ -511,6 +511,8 @@ patches = [
|
|||
|
||||
Otherwise, you can add a `.patch` file to the `nixpkgs` repository. In the interest of keeping our maintenance burden to a minimum, only patches that are unique to `nixpkgs` should be added in this way.
|
||||
|
||||
If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`. Check [](#fetchpatch) for details.
|
||||
|
||||
```nix
|
||||
patches = [ ./0001-changes.patch ];
|
||||
```
|
||||
|
@ -538,17 +540,6 @@ If you do need to do create this sort of patch file, one way to do so is with gi
|
|||
$ git diff -a > nixpkgs/pkgs/the/package/0001-changes.patch
|
||||
```
|
||||
|
||||
If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`:
|
||||
|
||||
- `relative`: Similar to using `git-diff`'s `--relative` flag, only keep changes inside the specified directory, making paths relative to it.
|
||||
- `stripLen`: Remove the first `stripLen` components of pathnames in the patch.
|
||||
- `extraPrefix`: Prefix pathnames by this string.
|
||||
- `excludes`: Exclude files matching these patterns (applies after the above arguments).
|
||||
- `includes`: Include only files matching these patterns (applies after the above arguments).
|
||||
- `revert`: Revert the patch.
|
||||
|
||||
Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `sha256` argument is changed as well.
|
||||
|
||||
## Package tests {#sec-package-tests}
|
||||
|
||||
Tests are important to ensure quality and make reviews and automatic updates easy.
|
||||
|
|
|
@ -12257,6 +12257,12 @@
|
|||
githubId = 48666;
|
||||
name = "Matthew \"strager\" Glazar";
|
||||
};
|
||||
strikerlulu = {
|
||||
email = "strikerlulu7@gmail.com";
|
||||
github = "strikerlulu";
|
||||
githubId = 38893265;
|
||||
name = "StrikerLulu";
|
||||
};
|
||||
stumoss = {
|
||||
email = "samoss@gmail.com";
|
||||
github = "stumoss";
|
||||
|
|
|
@ -332,6 +332,19 @@ repository):
|
|||
'';
|
||||
```
|
||||
|
||||
Similarly, the type checking of test scripts can be disabled in the following
|
||||
way:
|
||||
|
||||
```nix
|
||||
import ./make-test-python.nix {
|
||||
skipTypeCheck = true;
|
||||
nodes.machine =
|
||||
{ config, pkgs, ... }:
|
||||
{ configuration…
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Failing tests early {#ssec-failing-tests-early}
|
||||
|
||||
To fail tests early when certain invariables are no longer met (instead of waiting for the build to time out), the decorator `polling_condition` is provided. For example, if we are testing a program `foo` that should not quit after being started, we might write the following:
|
||||
|
|
|
@ -589,6 +589,19 @@ import ./make-test-python.nix {
|
|||
Python code…
|
||||
# fmt: on
|
||||
'';
|
||||
</programlisting>
|
||||
<para>
|
||||
Similarly, the type checking of test scripts can be disabled in
|
||||
the following way:
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
import ./make-test-python.nix {
|
||||
skipTypeCheck = true;
|
||||
nodes.machine =
|
||||
{ config, pkgs, ... }:
|
||||
{ configuration…
|
||||
};
|
||||
}
|
||||
</programlisting>
|
||||
</section>
|
||||
<section xml:id="ssec-failing-tests-early">
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
</section>
|
||||
<section xml:id="sec-release-22.11-notable-changes">
|
||||
<title>Other Notable Changes</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
A new module was added for the Saleae Logic device family,
|
||||
|
|
|
@ -44,7 +44,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
## Other Notable Changes {#sec-release-22.11-notable-changes}
|
||||
|
||||
* A new module was added for the Saleae Logic device family, providing the options `hardware.saleae-logic.enable` and `hardware.saleae-logic.package`.
|
||||
* Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
|
||||
- A new module was added for the Saleae Logic device family, providing the options `hardware.saleae-logic.enable` and `hardware.saleae-logic.package`.
|
||||
|
||||
- Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
|
|
@ -25,6 +25,8 @@ python3Packages.buildPythonApplication rec {
|
|||
checkPhase = ''
|
||||
mypy --disallow-untyped-defs \
|
||||
--no-implicit-optional \
|
||||
--pretty \
|
||||
--no-color-output \
|
||||
--ignore-missing-imports ${src}/test_driver
|
||||
pylint --errors-only --enable=unused-import ${src}/test_driver
|
||||
black --check --diff ${src}/test_driver
|
||||
|
|
0
nixos/lib/test-driver/test_driver/py.typed
Normal file
0
nixos/lib/test-driver/test_driver/py.typed
Normal file
42
nixos/lib/test-script-prepend.py
Normal file
42
nixos/lib/test-script-prepend.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
# This file contains type hints that can be prepended to Nix test scripts so they can be type
|
||||
# checked.
|
||||
|
||||
from test_driver.driver import Driver
|
||||
from test_driver.vlan import VLan
|
||||
from test_driver.machine import Machine
|
||||
from test_driver.logger import Logger
|
||||
from typing import Callable, Iterator, ContextManager, Optional, List, Dict, Any, Union
|
||||
from typing_extensions import Protocol
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class RetryProtocol(Protocol):
|
||||
def __call__(self, fn: Callable, timeout: int = 900) -> None:
|
||||
raise Exception("This is just type information for the Nix test driver")
|
||||
|
||||
|
||||
class PollingConditionProtocol(Protocol):
|
||||
def __call__(
|
||||
self,
|
||||
fun_: Optional[Callable] = None,
|
||||
*,
|
||||
seconds_interval: float = 2.0,
|
||||
description: Optional[str] = None,
|
||||
) -> Union[Callable[[Callable], ContextManager], ContextManager]:
|
||||
raise Exception("This is just type information for the Nix test driver")
|
||||
|
||||
|
||||
start_all: Callable[[], None]
|
||||
subtest: Callable[[str], ContextManager[None]]
|
||||
retry: RetryProtocol
|
||||
test_script: Callable[[], None]
|
||||
machines: List[Machine]
|
||||
vlans: List[VLan]
|
||||
driver: Driver
|
||||
log: Logger
|
||||
create_machine: Callable[[Dict[str, Any]], Machine]
|
||||
run_tests: Callable[[], None]
|
||||
join_all: Callable[[], None]
|
||||
serial_stdout_off: Callable[[], None]
|
||||
serial_stdout_on: Callable[[], None]
|
||||
polling_condition: PollingConditionProtocol
|
|
@ -50,6 +50,7 @@ rec {
|
|||
, qemu_pkg ? pkgs.qemu_test
|
||||
, enableOCR ? false
|
||||
, skipLint ? false
|
||||
, skipTypeCheck ? false
|
||||
, passthru ? {}
|
||||
, interactive ? false
|
||||
}:
|
||||
|
@ -85,7 +86,7 @@ rec {
|
|||
|
||||
nodeHostNames = let
|
||||
nodesList = map (c: c.config.system.name) (lib.attrValues nodes);
|
||||
in nodesList ++ lib.optional (lib.length nodesList == 1) "machine";
|
||||
in nodesList ++ lib.optional (lib.length nodesList == 1 && !lib.elem "machine" nodesList) "machine";
|
||||
|
||||
# TODO: This is an implementation error and needs fixing
|
||||
# the testing famework cannot legitimately restrict hostnames further
|
||||
|
@ -100,6 +101,9 @@ rec {
|
|||
then testScript { inherit nodes; }
|
||||
else testScript;
|
||||
|
||||
uniqueVlans = lib.unique (builtins.concatLists vlans);
|
||||
vlanNames = map (i: "vlan${toString i}: VLan;") uniqueVlans;
|
||||
machineNames = map (name: "${name}: Machine;") nodeHostNames;
|
||||
in
|
||||
if lib.length invalidNodeNames > 0 then
|
||||
throw ''
|
||||
|
@ -113,7 +117,7 @@ rec {
|
|||
else lib.warnIf skipLint "Linting is disabled" (runCommand testDriverName
|
||||
{
|
||||
inherit testName;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper mypy ];
|
||||
testScript = testScript';
|
||||
preferLocalBuild = true;
|
||||
passthru = passthru // {
|
||||
|
@ -125,7 +129,25 @@ rec {
|
|||
mkdir -p $out/bin
|
||||
|
||||
vmStartScripts=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done))
|
||||
echo -n "$testScript" > $out/test-script
|
||||
|
||||
${lib.optionalString (!skipTypeCheck) ''
|
||||
# prepend type hints so the test script can be type checked with mypy
|
||||
cat "${./test-script-prepend.py}" >> testScriptWithTypes
|
||||
echo "${builtins.toString machineNames}" >> testScriptWithTypes
|
||||
echo "${builtins.toString vlanNames}" >> testScriptWithTypes
|
||||
echo -n "$testScript" >> testScriptWithTypes
|
||||
|
||||
# set pythonpath so mypy knows where to find the imports. this requires the py.typed file.
|
||||
export PYTHONPATH='${./test-driver}'
|
||||
mypy --no-implicit-optional \
|
||||
--pretty \
|
||||
--no-color-output \
|
||||
testScriptWithTypes
|
||||
unset PYTHONPATH
|
||||
''}
|
||||
|
||||
echo -n "$testScript" >> $out/test-script
|
||||
|
||||
ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-test-driver
|
||||
|
||||
${testDriver}/bin/generate-driver-symbols
|
||||
|
@ -152,6 +174,7 @@ rec {
|
|||
, testScript
|
||||
, enableOCR ? false
|
||||
, name ? "unnamed"
|
||||
, skipTypeCheck ? false
|
||||
# Skip linting (mainly intended for faster dev cycles)
|
||||
, skipLint ? false
|
||||
, passthru ? {}
|
||||
|
@ -213,13 +236,13 @@ rec {
|
|||
);
|
||||
|
||||
driver = setupDriverForTest {
|
||||
inherit testScript enableOCR skipLint passthru;
|
||||
inherit testScript enableOCR skipTypeCheck skipLint passthru;
|
||||
testName = name;
|
||||
qemu_pkg = pkgs.qemu_test;
|
||||
nodes = mkNodes pkgs.qemu_test;
|
||||
};
|
||||
driverInteractive = setupDriverForTest {
|
||||
inherit testScript enableOCR skipLint passthru;
|
||||
inherit testScript enableOCR skipTypeCheck skipLint passthru;
|
||||
testName = name;
|
||||
qemu_pkg = pkgs.qemu;
|
||||
nodes = mkNodes pkgs.qemu;
|
||||
|
|
|
@ -96,13 +96,22 @@ in
|
|||
};
|
||||
|
||||
repository = mkOption {
|
||||
type = types.str;
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
repository to backup to.
|
||||
'';
|
||||
example = "sftp:backup@192.168.1.100:/backups/${name}";
|
||||
};
|
||||
|
||||
repositoryFile = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to the file containing the repository location to backup to.
|
||||
'';
|
||||
};
|
||||
|
||||
paths = mkOption {
|
||||
type = types.nullOr (types.listOf types.str);
|
||||
default = null;
|
||||
|
@ -142,7 +151,7 @@ in
|
|||
|
||||
extraBackupArgs = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra arguments passed to restic backup.
|
||||
'';
|
||||
|
@ -153,7 +162,7 @@ in
|
|||
|
||||
extraOptions = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra extended options to be passed to the restic --option flag.
|
||||
'';
|
||||
|
@ -172,7 +181,7 @@ in
|
|||
|
||||
pruneOpts = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
description = ''
|
||||
A list of options (--keep-* et al.) for 'restic forget
|
||||
--prune', to automatically prune old snapshots. The
|
||||
|
@ -197,9 +206,25 @@ in
|
|||
'';
|
||||
example = "find /home/matt/git -type d -name .git";
|
||||
};
|
||||
|
||||
backupPrepareCommand = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
A script that must run before starting the backup process.
|
||||
'';
|
||||
};
|
||||
|
||||
backupCleanupCommand = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
A script that must run after finishing the backup process.
|
||||
'';
|
||||
};
|
||||
};
|
||||
}));
|
||||
default = {};
|
||||
default = { };
|
||||
example = {
|
||||
localbackup = {
|
||||
paths = [ "/home" ];
|
||||
|
@ -225,66 +250,85 @@ in
|
|||
config = {
|
||||
warnings = mapAttrsToList (n: v: "services.restic.backups.${n}.s3CredentialsFile is deprecated, please use services.restic.backups.${n}.environmentFile instead.") (filterAttrs (n: v: v.s3CredentialsFile != null) config.services.restic.backups);
|
||||
systemd.services =
|
||||
mapAttrs' (name: backup:
|
||||
let
|
||||
extraOptions = concatMapStrings (arg: " -o ${arg}") backup.extraOptions;
|
||||
resticCmd = "${pkgs.restic}/bin/restic${extraOptions}";
|
||||
filesFromTmpFile = "/run/restic-backups-${name}/includes";
|
||||
backupPaths = if (backup.dynamicFilesFrom == null)
|
||||
then if (backup.paths != null) then concatStringsSep " " backup.paths else ""
|
||||
else "--files-from ${filesFromTmpFile}";
|
||||
pruneCmd = optionals (builtins.length backup.pruneOpts > 0) [
|
||||
( resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts) )
|
||||
( resticCmd + " check" )
|
||||
];
|
||||
# Helper functions for rclone remotes
|
||||
rcloneRemoteName = builtins.elemAt (splitString ":" backup.repository) 1;
|
||||
rcloneAttrToOpt = v: "RCLONE_" + toUpper (builtins.replaceStrings [ "-" ] [ "_" ] v);
|
||||
rcloneAttrToConf = v: "RCLONE_CONFIG_" + toUpper (rcloneRemoteName + "_" + v);
|
||||
toRcloneVal = v: if lib.isBool v then lib.boolToString v else v;
|
||||
in nameValuePair "restic-backups-${name}" ({
|
||||
environment = {
|
||||
RESTIC_PASSWORD_FILE = backup.passwordFile;
|
||||
RESTIC_REPOSITORY = backup.repository;
|
||||
} // optionalAttrs (backup.rcloneOptions != null) (mapAttrs' (name: value:
|
||||
nameValuePair (rcloneAttrToOpt name) (toRcloneVal value)
|
||||
) backup.rcloneOptions) // optionalAttrs (backup.rcloneConfigFile != null) {
|
||||
RCLONE_CONFIG = backup.rcloneConfigFile;
|
||||
} // optionalAttrs (backup.rcloneConfig != null) (mapAttrs' (name: value:
|
||||
nameValuePair (rcloneAttrToConf name) (toRcloneVal value)
|
||||
) backup.rcloneConfig);
|
||||
path = [ pkgs.openssh ];
|
||||
restartIfChanged = false;
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup --cache-dir=%C/restic-backups-${name} ${concatStringsSep " " backup.extraBackupArgs} ${backupPaths}" ])
|
||||
++ pruneCmd;
|
||||
User = backup.user;
|
||||
RuntimeDirectory = "restic-backups-${name}";
|
||||
CacheDirectory = "restic-backups-${name}";
|
||||
CacheDirectoryMode = "0700";
|
||||
} // optionalAttrs (backup.environmentFile != null) {
|
||||
EnvironmentFile = backup.environmentFile;
|
||||
};
|
||||
} // optionalAttrs (backup.initialize || backup.dynamicFilesFrom != null) {
|
||||
preStart = ''
|
||||
${optionalString (backup.initialize) ''
|
||||
${resticCmd} snapshots || ${resticCmd} init
|
||||
''}
|
||||
${optionalString (backup.dynamicFilesFrom != null) ''
|
||||
${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} > ${filesFromTmpFile}
|
||||
''}
|
||||
'';
|
||||
} // optionalAttrs (backup.dynamicFilesFrom != null) {
|
||||
postStart = ''
|
||||
rm ${filesFromTmpFile}
|
||||
'';
|
||||
})
|
||||
) config.services.restic.backups;
|
||||
mapAttrs'
|
||||
(name: backup:
|
||||
let
|
||||
extraOptions = concatMapStrings (arg: " -o ${arg}") backup.extraOptions;
|
||||
resticCmd = "${pkgs.restic}/bin/restic${extraOptions}";
|
||||
filesFromTmpFile = "/run/restic-backups-${name}/includes";
|
||||
backupPaths =
|
||||
if (backup.dynamicFilesFrom == null)
|
||||
then if (backup.paths != null) then concatStringsSep " " backup.paths else ""
|
||||
else "--files-from ${filesFromTmpFile}";
|
||||
pruneCmd = optionals (builtins.length backup.pruneOpts > 0) [
|
||||
(resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts))
|
||||
(resticCmd + " check")
|
||||
];
|
||||
# Helper functions for rclone remotes
|
||||
rcloneRemoteName = builtins.elemAt (splitString ":" backup.repository) 1;
|
||||
rcloneAttrToOpt = v: "RCLONE_" + toUpper (builtins.replaceStrings [ "-" ] [ "_" ] v);
|
||||
rcloneAttrToConf = v: "RCLONE_CONFIG_" + toUpper (rcloneRemoteName + "_" + v);
|
||||
toRcloneVal = v: if lib.isBool v then lib.boolToString v else v;
|
||||
in
|
||||
nameValuePair "restic-backups-${name}" ({
|
||||
environment = {
|
||||
RESTIC_PASSWORD_FILE = backup.passwordFile;
|
||||
RESTIC_REPOSITORY = backup.repository;
|
||||
RESTIC_REPOSITORY_FILE = backup.repositoryFile;
|
||||
} // optionalAttrs (backup.rcloneOptions != null) (mapAttrs'
|
||||
(name: value:
|
||||
nameValuePair (rcloneAttrToOpt name) (toRcloneVal value)
|
||||
)
|
||||
backup.rcloneOptions) // optionalAttrs (backup.rcloneConfigFile != null) {
|
||||
RCLONE_CONFIG = backup.rcloneConfigFile;
|
||||
} // optionalAttrs (backup.rcloneConfig != null) (mapAttrs'
|
||||
(name: value:
|
||||
nameValuePair (rcloneAttrToConf name) (toRcloneVal value)
|
||||
)
|
||||
backup.rcloneConfig);
|
||||
path = [ pkgs.openssh ];
|
||||
restartIfChanged = false;
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup --cache-dir=%C/restic-backups-${name} ${concatStringsSep " " backup.extraBackupArgs} ${backupPaths}" ])
|
||||
++ pruneCmd;
|
||||
User = backup.user;
|
||||
RuntimeDirectory = "restic-backups-${name}";
|
||||
CacheDirectory = "restic-backups-${name}";
|
||||
CacheDirectoryMode = "0700";
|
||||
} // optionalAttrs (backup.environmentFile != null) {
|
||||
EnvironmentFile = backup.environmentFile;
|
||||
};
|
||||
} // optionalAttrs (backup.initialize || backup.dynamicFilesFrom != null || backup.backupPrepareCommand != null) {
|
||||
preStart = ''
|
||||
${optionalString (backup.backupPrepareCommand != null) ''
|
||||
${pkgs.writeScript "backupPrepareCommand" backup.backupPrepareCommand}
|
||||
''}
|
||||
${optionalString (backup.initialize) ''
|
||||
${resticCmd} snapshots || ${resticCmd} init
|
||||
''}
|
||||
${optionalString (backup.dynamicFilesFrom != null) ''
|
||||
${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} > ${filesFromTmpFile}
|
||||
''}
|
||||
'';
|
||||
} // optionalAttrs (backup.dynamicFilesFrom != null || backup.backupCleanupCommand != null) {
|
||||
postStart = ''
|
||||
${optionalString (backup.backupCleanupCommand != null) ''
|
||||
${pkgs.writeScript "backupCleanupCommand" backup.backupCleanupCommand}
|
||||
''}
|
||||
${optionalString (backup.dynamicFilesFrom != null) ''
|
||||
rm ${filesFromTmpFile}
|
||||
''}
|
||||
'';
|
||||
})
|
||||
)
|
||||
config.services.restic.backups;
|
||||
systemd.timers =
|
||||
mapAttrs' (name: backup: nameValuePair "restic-backups-${name}" {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = backup.timerConfig;
|
||||
}) config.services.restic.backups;
|
||||
mapAttrs'
|
||||
(name: backup: nameValuePair "restic-backups-${name}" {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = backup.timerConfig;
|
||||
})
|
||||
config.services.restic.backups;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ let
|
|||
# is in theory not needed as this is already the default for default builds
|
||||
UpdateChannel = 0;
|
||||
Headless = true;
|
||||
} // lib.optionalAttrs (cfg.ipcPasswordFile != "") {
|
||||
IPCPassword = "#ipcPassword#";
|
||||
});
|
||||
|
||||
ipc-config = format.generate "IPC.config" cfg.ipcSettings;
|
||||
|
@ -81,8 +83,7 @@ in
|
|||
type = format.type;
|
||||
description = ''
|
||||
The ASF.json file, all the options are documented <link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#global-config">here</link>.
|
||||
Do note that `AutoRestart` and `UpdateChannel` is always to `false`
|
||||
respectively `0` because NixOS takes care of updating everything.
|
||||
Do note that `AutoRestart` and `UpdateChannel` is always to `false` respectively `0` because NixOS takes care of updating everything.
|
||||
`Headless` is also always set to `true` because there is no way to provide inputs via a systemd service.
|
||||
You should try to keep ASF up to date since upstream does not provide support for anything but the latest version and you're exposing yourself to all kinds of issues - as is outlined <link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#updateperiod">here</link>.
|
||||
'';
|
||||
|
@ -92,6 +93,11 @@ respectively `0` because NixOS takes care of updating everything.
|
|||
default = { };
|
||||
};
|
||||
|
||||
ipcPasswordFile = mkOption {
|
||||
type = types.path;
|
||||
description = "Path to a file containig the password. The file must be readable by the <literal>asf</literal> user/group.";
|
||||
};
|
||||
|
||||
ipcSettings = mkOption {
|
||||
type = format.type;
|
||||
description = ''
|
||||
|
@ -115,14 +121,12 @@ respectively `0` because NixOS takes care of updating everything.
|
|||
options = {
|
||||
username = mkOption {
|
||||
type = types.str;
|
||||
description =
|
||||
"Name of the user to log in. Default is attribute name.";
|
||||
description = "Name of the user to log in. Default is attribute name.";
|
||||
default = "";
|
||||
};
|
||||
passwordFile = mkOption {
|
||||
type = types.path;
|
||||
description =
|
||||
"Path to a file containig the password. The file must be readable by the <literal>asf</literal> user/group.";
|
||||
description = "Path to a file containig the password. The file must be readable by the <literal>asf</literal> user/group.";
|
||||
};
|
||||
enabled = mkOption {
|
||||
type = types.bool;
|
||||
|
@ -131,8 +135,7 @@ respectively `0` because NixOS takes care of updating everything.
|
|||
};
|
||||
settings = mkOption {
|
||||
type = types.attrs;
|
||||
description =
|
||||
"Additional settings that are documented <link xlink:href=\"https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#bot-config\">here</link>.";
|
||||
description = "Additional settings that are documented <link xlink:href=\"https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#bot-config\">here</link>.";
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
|
@ -156,6 +159,7 @@ respectively `0` because NixOS takes care of updating everything.
|
|||
users = {
|
||||
users.asf = {
|
||||
home = cfg.dataDir;
|
||||
homeMode = "700";
|
||||
isSystemUser = true;
|
||||
group = "asf";
|
||||
description = "Archis-Steam-Farm service user";
|
||||
|
@ -176,8 +180,7 @@ respectively `0` because NixOS takes care of updating everything.
|
|||
Group = "asf";
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
Type = "simple";
|
||||
ExecStart =
|
||||
"${cfg.package}/bin/ArchiSteamFarm --path ${cfg.dataDir} --process-required --no-restart --service --no-config-migrate";
|
||||
ExecStart = "${cfg.package}/bin/ArchiSteamFarm --path ${cfg.dataDir} --process-required --no-restart --service --no-config-migrate";
|
||||
|
||||
# mostly copied from the default systemd service
|
||||
PrivateTmp = true;
|
||||
|
@ -202,29 +205,38 @@ respectively `0` because NixOS takes care of updating everything.
|
|||
}
|
||||
];
|
||||
|
||||
preStart = ''
|
||||
mkdir -p config
|
||||
rm -f www
|
||||
rm -f config/{*.json,*.config}
|
||||
preStart =
|
||||
let
|
||||
createBotsScript = pkgs.runCommandLocal "ASF-bots" { } ''
|
||||
mkdir -p $out
|
||||
# clean potential removed bots
|
||||
rm -rf $out/*.json
|
||||
for i in ${strings.concatStringsSep " " (lists.map (x: "${getName x},${x}") (attrsets.mapAttrsToList mkBot cfg.bots))}; do IFS=",";
|
||||
set -- $i
|
||||
ln -fs $2 $out/$1
|
||||
done
|
||||
'';
|
||||
replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
|
||||
in
|
||||
''
|
||||
mkdir -p config
|
||||
|
||||
ln -s ${asf-config} config/ASF.json
|
||||
cp --no-preserve=mode ${asf-config} config/ASF.json
|
||||
${replaceSecretBin} '#ipcPassword#' '${cfg.ipcPasswordFile}' config/ASF.json
|
||||
|
||||
${strings.optionalString (cfg.ipcSettings != {}) ''
|
||||
ln -s ${ipc-config} config/IPC.config
|
||||
''}
|
||||
${optionalString (cfg.ipcSettings != {}) ''
|
||||
ln -fs ${ipc-config} config/IPC.config
|
||||
''}
|
||||
|
||||
ln -s ${pkgs.runCommandLocal "ASF-bots" {} ''
|
||||
mkdir -p $out/lib/asf/bots
|
||||
for i in ${strings.concatStringsSep " " (lists.map (x: "${getName x},${x}") (attrsets.mapAttrsToList mkBot cfg.bots))}; do IFS=",";
|
||||
set -- $i
|
||||
ln -s $2 $out/lib/asf/bots/$1
|
||||
done
|
||||
''}/lib/asf/bots/* config/
|
||||
${optionalString (cfg.ipcSettings != {}) ''
|
||||
ln -fs ${createBotsScript}/* config/
|
||||
''}
|
||||
|
||||
${strings.optionalString cfg.web-ui.enable ''
|
||||
ln -s ${cfg.web-ui.package}/lib/dist www
|
||||
''}
|
||||
'';
|
||||
rm -f www
|
||||
${optionalString cfg.web-ui.enable ''
|
||||
ln -s ${cfg.web-ui.package}/lib/dist www
|
||||
''}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,96 +1,119 @@
|
|||
import ./make-test-python.nix (
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
password = "some_password";
|
||||
repository = "/tmp/restic-backup";
|
||||
rcloneRepository = "rclone:local:/tmp/restic-rclone-backup";
|
||||
let
|
||||
password = "some_password";
|
||||
repository = "/tmp/restic-backup";
|
||||
repositoryFile = "${pkgs.writeText "repositoryFile" "/tmp/restic-backup-from-file"}";
|
||||
rcloneRepository = "rclone:local:/tmp/restic-rclone-backup";
|
||||
|
||||
passwordFile = "${pkgs.writeText "password" "correcthorsebatterystaple"}";
|
||||
initialize = true;
|
||||
paths = [ "/opt" ];
|
||||
pruneOpts = [
|
||||
"--keep-daily 2"
|
||||
"--keep-weekly 1"
|
||||
"--keep-monthly 1"
|
||||
"--keep-yearly 99"
|
||||
];
|
||||
in
|
||||
{
|
||||
name = "restic";
|
||||
backupPrepareCommand = ''
|
||||
touch /opt/backupPrepareCommand
|
||||
test ! -e /opt/backupCleanupCommand
|
||||
'';
|
||||
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ bbigras i077 ];
|
||||
};
|
||||
backupCleanupCommand = ''
|
||||
rm /opt/backupPrepareCommand
|
||||
touch /opt/backupCleanupCommand
|
||||
'';
|
||||
|
||||
nodes = {
|
||||
server =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.restic.backups = {
|
||||
remotebackup = {
|
||||
inherit repository passwordFile initialize paths pruneOpts;
|
||||
};
|
||||
rclonebackup = {
|
||||
repository = rcloneRepository;
|
||||
rcloneConfig = {
|
||||
type = "local";
|
||||
one_file_system = true;
|
||||
};
|
||||
passwordFile = "${pkgs.writeText "password" "correcthorsebatterystaple"}";
|
||||
initialize = true;
|
||||
paths = [ "/opt" ];
|
||||
pruneOpts = [
|
||||
"--keep-daily 2"
|
||||
"--keep-weekly 1"
|
||||
"--keep-monthly 1"
|
||||
"--keep-yearly 99"
|
||||
];
|
||||
in
|
||||
{
|
||||
name = "restic";
|
||||
|
||||
# This gets overridden by rcloneConfig.type
|
||||
rcloneConfigFile = pkgs.writeText "rclone.conf" ''
|
||||
[local]
|
||||
type=ftp
|
||||
'';
|
||||
inherit passwordFile initialize paths pruneOpts;
|
||||
};
|
||||
remoteprune = {
|
||||
inherit repository passwordFile;
|
||||
pruneOpts = [ "--keep-last 1" ];
|
||||
};
|
||||
};
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ bbigras i077 ];
|
||||
};
|
||||
|
||||
environment.sessionVariables.RCLONE_CONFIG_LOCAL_TYPE = "local";
|
||||
nodes = {
|
||||
server =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.restic.backups = {
|
||||
remotebackup = {
|
||||
inherit repository passwordFile initialize paths pruneOpts backupPrepareCommand backupCleanupCommand;
|
||||
};
|
||||
remotebackup-from-file = {
|
||||
inherit repositoryFile passwordFile initialize paths pruneOpts;
|
||||
};
|
||||
rclonebackup = {
|
||||
repository = rcloneRepository;
|
||||
rcloneConfig = {
|
||||
type = "local";
|
||||
one_file_system = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
server.start()
|
||||
server.wait_for_unit("dbus.socket")
|
||||
server.fail(
|
||||
"${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots",
|
||||
"${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots",
|
||||
)
|
||||
server.succeed(
|
||||
"mkdir -p /opt",
|
||||
"touch /opt/some_file",
|
||||
"mkdir -p /tmp/restic-rclone-backup",
|
||||
"timedatectl set-time '2016-12-13 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
'${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
"timedatectl set-time '2017-12-13 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-13 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-14 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-15 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-16 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
|
||||
'${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
|
||||
"systemctl start restic-backups-remoteprune.service",
|
||||
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
)
|
||||
'';
|
||||
}
|
||||
# This gets overridden by rcloneConfig.type
|
||||
rcloneConfigFile = pkgs.writeText "rclone.conf" ''
|
||||
[local]
|
||||
type=ftp
|
||||
'';
|
||||
inherit passwordFile initialize paths pruneOpts;
|
||||
};
|
||||
remoteprune = {
|
||||
inherit repository passwordFile;
|
||||
pruneOpts = [ "--keep-last 1" ];
|
||||
};
|
||||
};
|
||||
|
||||
environment.sessionVariables.RCLONE_CONFIG_LOCAL_TYPE = "local";
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
server.start()
|
||||
server.wait_for_unit("dbus.socket")
|
||||
server.fail(
|
||||
"${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots",
|
||||
'${pkgs.restic}/bin/restic --repository-file ${repositoryFile} -p ${passwordFile} snapshots"',
|
||||
"${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots",
|
||||
)
|
||||
server.succeed(
|
||||
"mkdir -p /opt",
|
||||
"touch /opt/some_file",
|
||||
"mkdir -p /tmp/restic-rclone-backup",
|
||||
"timedatectl set-time '2016-12-13 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"rm /opt/backupCleanupCommand",
|
||||
"systemctl start restic-backups-remotebackup-from-file.service",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
'${pkgs.restic}/bin/restic --repository-file ${repositoryFile} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
'${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
"timedatectl set-time '2017-12-13 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"rm /opt/backupCleanupCommand",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-13 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"rm /opt/backupCleanupCommand",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-14 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"rm /opt/backupCleanupCommand",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-15 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"rm /opt/backupCleanupCommand",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
"timedatectl set-time '2018-12-16 13:45'",
|
||||
"systemctl start restic-backups-remotebackup.service",
|
||||
"rm /opt/backupCleanupCommand",
|
||||
"systemctl start restic-backups-rclonebackup.service",
|
||||
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
|
||||
'${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
|
||||
"systemctl start restic-backups-remoteprune.service",
|
||||
'${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
|
||||
)
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, alsa-lib, cmake, gtk2, libjack2, libgnomecanvas
|
||||
{ lib, stdenv, fetchurl, fetchpatch, alsa-lib, cmake, gtk2, libjack2, libgnomecanvas
|
||||
, libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2
|
||||
, pkg-config, openssl }:
|
||||
|
||||
|
@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0b25iicgn8c42487fdw32ycfrll1pm2zjgy5djvgw6mfcaa4gizh";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull patch pending upstream inclusion for -fno-common toollchain support:
|
||||
# https://github.com/petri-foo/Petri-Foo/pull/43
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/petri-foo/Petri-Foo/commit/6a3256c9b619b1fed18ad15063f110e8d91aa6fe.patch";
|
||||
sha256 = "05yc4g22iwnd054jmvihrl461yr0cxnghslfrbhan6bac6fcvlal";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
buildInputs = [ alsa-lib gtk2 libjack2 libgnomecanvas libpthreadstubs
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, bison
|
||||
, git
|
||||
, python2
|
||||
|
@ -71,6 +72,14 @@ stdenv.mkDerivation rec {
|
|||
patches = [
|
||||
./force-gcc-as-linker.patch
|
||||
./system-libuv.patch
|
||||
|
||||
# Pull upstream fix for -fno-common toolchains:
|
||||
# https://github.com/mruby-zest/mruby-zest-build/issues/25
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/mruby-zest/mruby-zest-build/commit/4eb88250f22ee684acac95d4d1f114df504e37a7.patch";
|
||||
sha256 = "0wg7qy1vg0mzcxagf35bv35dlr0q17pxjicigpf86yqppvgrzrsb";
|
||||
})
|
||||
];
|
||||
|
||||
# Add missing dependencies of deps/mruby-dir-glob/mrbgem.rake
|
||||
|
|
|
@ -38,13 +38,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cudatext";
|
||||
version = "1.165.0";
|
||||
version = "1.165.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alexey-T";
|
||||
repo = "CudaText";
|
||||
rev = version;
|
||||
sha256 = "sha256-Ri/3rDZu+r0++yEO9K9V25z0PiJxc+EOz0RZUz4yGVE=";
|
||||
sha256 = "sha256-eNpU7PpzyL2KHPL6cPmxZw/49VALjCWUdavV6Ex1IQI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
},
|
||||
"ATSynEdit": {
|
||||
"owner": "Alexey-T",
|
||||
"rev": "2022.05.16",
|
||||
"sha256": "sha256-cEHGEMVcOjuq0mIIhrMqrBDaskWvLQoGrFLagOqkdwU="
|
||||
"rev": "2022.06.01",
|
||||
"sha256": "sha256-dilFwvtD8OLLq7QOPWSG3FeBM12Yy4ztM+CedJQAAaU="
|
||||
},
|
||||
"ATSynEdit_Cmp": {
|
||||
"owner": "Alexey-T",
|
||||
|
@ -31,8 +31,8 @@
|
|||
},
|
||||
"ATSynEdit_Ex": {
|
||||
"owner": "Alexey-T",
|
||||
"rev": "2022.05.15",
|
||||
"sha256": "sha256-iqadjpIr+Kn1r7MDQtHQsgtr97IZ8+HQ+q5DiUWASAQ="
|
||||
"rev": "2022.05.23",
|
||||
"sha256": "sha256-/PqEx2Z1TVjnxfeWR9qBZUNzdqDBttuLmSBzIEPe1MY="
|
||||
},
|
||||
"Python-for-Lazarus": {
|
||||
"owner": "Alexey-T",
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "hydrus";
|
||||
version = "484";
|
||||
version = "487";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hydrusnetwork";
|
||||
repo = "hydrus";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-W0oWETj0xnuS2XAORRb5sb39gbpvyE+cHqgIU+grolQ=";
|
||||
sha256 = "sha256-4FYUIEk8KJO4nqONNpLUtxAMud3vdfl50zbKQxC5Hw4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
, libxcb
|
||||
, libxkbcommon
|
||||
, libxshmfence
|
||||
, libGL
|
||||
, libappindicator-gtk3
|
||||
, mesa
|
||||
, nspr
|
||||
, nss
|
||||
|
@ -42,11 +44,11 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "1password";
|
||||
version = "8.8.0-11.BETA";
|
||||
version = "8.8.0-119.BETA";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
|
||||
sha256 = "sha256-HU+nIz3aKXXdBWEBMSRlbi8yZ+JEsE33o6nfbWRgpBo=";
|
||||
sha256 = "sha256-MnfO41r86jLGI9R30trCPR+BwXVKACyrB3dWSbPbBIA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -78,6 +80,8 @@ in stdenv.mkDerivation rec {
|
|||
libxcb
|
||||
libxkbcommon
|
||||
libxshmfence
|
||||
libGL
|
||||
libappindicator-gtk3
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
, libxcb
|
||||
, libxkbcommon
|
||||
, libxshmfence
|
||||
, libappindicator-gtk3
|
||||
, libGL
|
||||
, mesa
|
||||
, nspr
|
||||
, nss
|
||||
|
@ -42,11 +44,11 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "1password";
|
||||
version = "8.7.0";
|
||||
version = "8.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
|
||||
sha256 = "sha256-Ubn1KEjK8H8d8+4QNEpEOuclWyD8ujUbO5CpzWr+kSg=";
|
||||
sha256 = "sha256-ykD2reAL5spSoCpfGTFOE/yERdooYUsWmo45rpRe/Fw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -78,6 +80,8 @@ in stdenv.mkDerivation rec {
|
|||
libxcb
|
||||
libxkbcommon
|
||||
libxshmfence
|
||||
libGL
|
||||
libappindicator-gtk3
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "bikeshed";
|
||||
version = "3.4.3";
|
||||
version = "3.5.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-vJW4yNbKCZraJ5vx8FheNsBl+zObGoLFgAVqoU0p9QQ=";
|
||||
sha256 = "sha256-fa9z/y4Enrei8gb48MSS7vzDcttZVO7MJkdEIaDZb0I=";
|
||||
};
|
||||
|
||||
# Relax requirements from "==" to ">="
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitLab
|
||||
, gitUpdater
|
||||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
, fwupd
|
||||
|
@ -19,14 +20,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-firmware";
|
||||
version = "42.1";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "gnome-firmware";
|
||||
rev = version;
|
||||
sha256 = "9QZ98EElENWsME/jXoj9YJl2e+ipyLm0g4grQUwmnuE=";
|
||||
sha256 = "L0R2lXU69I6NI7Srq5s+8N9261Ic8B7FVaaXNjz2Ll0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -53,6 +54,11 @@ stdenv.mkDerivation rec {
|
|||
"-Dconsolekit=false"
|
||||
];
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
inherit pname version;
|
||||
ignoredVersions = "(alpha|beta|rc).*";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/World/gnome-firmware";
|
||||
description = "Tool for installing firmware on devices";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gpxsee";
|
||||
version = "10.5";
|
||||
version = "11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tumic0";
|
||||
repo = "GPXSee";
|
||||
rev = version;
|
||||
sha256 = "sha256-TvOdyzWvGSdl8aSA+pAOpPVpQzK9POmqtClqdXAMsws=";
|
||||
sha256 = "sha256-UT3Q7pirEXvwQmqHHiSivX/VNZPVLwRJ/aiP7wpkhqQ=";
|
||||
};
|
||||
|
||||
patches = (substituteAll {
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "spicetify-cli";
|
||||
version = "2.9.4";
|
||||
version = "2.10.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "khanhas";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-dHkbjmb9qlMO+pYUmdnoztkrMqPW6GfceAUxgnRmlDA=";
|
||||
sha256 = "sha256-d5YuBLCsC7tHSzSa12rUcO0gr5f6gQ2s0wnQ3OMZO3U=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-zYIbtcDM9iYSRHagvI9D284Y7w0ZxG4Ba1p4jqmQyng=";
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "clusterctl";
|
||||
version = "1.1.3";
|
||||
version = "1.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes-sigs";
|
||||
repo = "cluster-api";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0njXmYhZM4DXFeK9KboXnVw8uHdz4PFJ2aJxwhgyEc8=";
|
||||
sha256 = "sha256-0hQ+FicY74I5Fpl4FQsYMtQyBgzRnUeXl/vsNQ6GHZw=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-JVRLPsfI1ITilAOkVIAa2IjjuAlJ2PCpvYEkhnTzRDA=";
|
||||
vendorSha256 = "sha256-PLUN9d+oo7vHUUpiIBUgU1snPlsHOMt+8q+jQZzZC+8=";
|
||||
|
||||
subPackages = [ "cmd/clusterctl" ];
|
||||
|
||||
|
@ -25,7 +25,7 @@ buildGoModule rec {
|
|||
|
||||
postInstall = ''
|
||||
# errors attempting to write config to read-only $HOME
|
||||
export HOME=$(mktemp -d)
|
||||
export HOME=$TMPDIR
|
||||
|
||||
installShellCompletion --cmd clusterctl \
|
||||
--bash <($out/bin/clusterctl completion bash) \
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "k0sctl";
|
||||
version = "0.12.6";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "k0sproject";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-TkkMO6xBHY5t5Rpd0ieSDXMrnQ+Xdq+65Rk93ZkYcUs=";
|
||||
sha256 = "sha256-A50PbZTgv0EfL5aqTiTEOdfRXUgKGzTsRIiMgXItkxI=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-nTAuvHcsJiW0XYX5GM1SL8cnOhwdrj6iw8tuAkEWNzQ=";
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/k0sproject/${pname}/commit/22c694ab0335a1e6146d0d3f939ef79d2c005a3d.patch";
|
||||
sha256 = "sha256-Ftq/vbQd5ArdHboDt6NdyuqpFalHVnsQBdpmyDG/t5Q=";
|
||||
})
|
||||
];
|
||||
vendorSha256 = "sha256-2i6SoixE5RitRuJpOU4LdzN9JY/76c3mjsbsXlQp854=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
{ lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }:
|
||||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
let
|
||||
goPackagePath = "k8s.io/kops";
|
||||
|
||||
generic = { version, sha256, rev ? version, ... }@attrs:
|
||||
let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "rev" ]; in
|
||||
buildGoPackage
|
||||
buildGoModule
|
||||
{
|
||||
pname = "kops";
|
||||
inherit version;
|
||||
|
||||
inherit goPackagePath;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = rev;
|
||||
owner = "kubernetes";
|
||||
|
@ -18,24 +14,26 @@ let
|
|||
inherit sha256;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ go-bindata installShellFiles ];
|
||||
vendorSha256 = null;
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
subPackages = [ "cmd/kops" ];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X k8s.io/kops.Version=${version}"
|
||||
"-X k8s.io/kops.GitVersion=${version}"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
(cd go/src/k8s.io/kops
|
||||
go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...)
|
||||
'';
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
for shell in bash zsh; do
|
||||
$out/bin/kops completion $shell > kops.$shell
|
||||
installShellCompletion kops.$shell
|
||||
done
|
||||
installShellCompletion --cmd kops \
|
||||
--bash <($GOPATH/bin/kops completion bash) \
|
||||
--fish <($GOPATH/bin/kops completion fish) \
|
||||
--zsh <($GOPATH/bin/kops completion zsh)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -49,7 +47,6 @@ let
|
|||
} // attrs';
|
||||
in
|
||||
rec {
|
||||
|
||||
mkKops = generic;
|
||||
|
||||
kops_1_21 = mkKops rec {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, buildGo118Module
|
||||
, fetchFromGitHub
|
||||
, callPackage
|
||||
, config
|
||||
|
@ -19,10 +20,11 @@ let
|
|||
, vendorSha256 ? throw "vendorSha256 missing: please use `buildGoModule`" /* added 2022/01 */
|
||||
, deleteVendor ? false
|
||||
, proxyVendor ? false
|
||||
, mkProviderGoModule ? buildGoModule
|
||||
, # Looks like "registry.terraform.io/vancluever/acme"
|
||||
provider-source-address
|
||||
}@attrs:
|
||||
buildGoModule {
|
||||
mkProviderGoModule {
|
||||
pname = repo;
|
||||
inherit vendorSha256 version deleteVendor proxyVendor;
|
||||
subPackages = [ "." ];
|
||||
|
@ -58,6 +60,7 @@ let
|
|||
{
|
||||
# Packages that don't fit the default model
|
||||
|
||||
brightbox = automated-providers.brightbox.override { mkProviderGoModule = buildGo118Module; };
|
||||
# mkisofs needed to create ISOs holding cloud-init data,
|
||||
# and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
|
||||
libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
|
||||
|
|
|
@ -176,10 +176,10 @@
|
|||
"owner": "brightbox",
|
||||
"provider-source-address": "registry.terraform.io/brightbox/brightbox",
|
||||
"repo": "terraform-provider-brightbox",
|
||||
"rev": "v2.2.0",
|
||||
"sha256": "1n0gdfsj8ylmm5pqsjs3dvjvj8larc30x5p9jq546xvi2idvl39n",
|
||||
"vendorSha256": "03761vl8xcirmas38q8xivx2r312c07fmg1y80lklmswbd8d0f71",
|
||||
"version": "2.2.0"
|
||||
"rev": "v3.0.4",
|
||||
"sha256": "sha256-UUDL1w/3IEa+Na77FoYReevJLT3AJq5giHYS6Bq4DQs=",
|
||||
"vendorSha256": "sha256-M/S7gRRcAs53Ctx1oecHrlTxYxI1Kpr3ygTZLHG/9pY=",
|
||||
"version": "3.0.4"
|
||||
},
|
||||
"buildkite": {
|
||||
"owner": "buildkite",
|
||||
|
@ -531,10 +531,10 @@
|
|||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/http",
|
||||
"repo": "terraform-provider-http",
|
||||
"rev": "v2.1.0",
|
||||
"sha256": "1gih0ksrmhz82966c45ad2yv829pcgbvls92cll7r5haqgvx6k79",
|
||||
"vendorSha256": null,
|
||||
"version": "2.1.0"
|
||||
"rev": "v2.2.0",
|
||||
"sha256": "sha256-Ym9z/b2geSLdXYlQGggjyNTBZLo+GeMW5XLM+Gvk/gA=",
|
||||
"vendorSha256": "sha256-Qk3ztfAtKt6Gq9QBtaeodwVkH/71TrCNMMAdrXO6Tjs=",
|
||||
"version": "2.2.0"
|
||||
},
|
||||
"huaweicloud": {
|
||||
"owner": "huaweicloud",
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{ buildGoModule, lib, fetchFromGitHub }:
|
||||
buildGoModule rec {
|
||||
pname = "tfswitch";
|
||||
version = "0.13.1218";
|
||||
version = "0.13.1250";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warrensbox";
|
||||
repo = "terraform-switcher";
|
||||
rev = version;
|
||||
sha256 = "sha256-RJdbNXO+6TqFLapWiZ1UeXGS5522ykQvhhNDEHPr8xE=";
|
||||
sha256 = "sha256-OfQUwAv7PgjcDLE4Wm6I8pAHeLV9sHlLHRVqTB13B4c=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-Xqgki072Iy+snRriPVJ9oaDNJ/LiKL+AuU+eVw0zlDU=";
|
||||
vendorSha256 = "sha256-jM9xYwBshBpaT4duBTvVwYUOapQfUbq9kL7EaRIGfQY=";
|
||||
|
||||
# Disable tests since it requires network access and relies on the
|
||||
# presence of release.hashicorp.com
|
||||
|
@ -22,7 +22,8 @@ buildGoModule rec {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A command line tool to switch between different versions of terraform";
|
||||
description =
|
||||
"A command line tool to switch between different versions of terraform";
|
||||
homepage = "https://github.com/warrensbox/terraform-switcher";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ psibi ];
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{ lib, stdenv, fetchurl, libosip }:
|
||||
{ lib, stdenv, fetchurl, libosip, sqlite }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "siproxd";
|
||||
version = "0.8.2";
|
||||
version = "0.8.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/siproxd/siproxd-${version}.tar.gz";
|
||||
sha256 = "1l6cyxxhra825jiiw9npa7jrbfgbyfpk4966cqkrw66cn28y8v2j";
|
||||
sha256 = "0dkpl3myxz3gvj2n2qpqrd19dip9il0vf7qybdvn5wgznrmplvcs";
|
||||
};
|
||||
|
||||
patches = [ ./cheaders.patch ];
|
||||
|
||||
buildInputs = [ libosip ];
|
||||
buildInputs = [ libosip sqlite ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://siproxd.sourceforge.net/";
|
||||
|
|
|
@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [ zlib bzip2 xz ];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: ./libfml.a(rle.o):/build/source/SeqLib/fermi-lite/rle.h:33: multiple definition of
|
||||
# `rle_auxtab'; ./libfml.a(misc.o):/build/source/SeqLib/fermi-lite/rle.h:33: first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm555 src/svaba/svaba $out/bin/svaba
|
||||
|
|
|
@ -48,6 +48,7 @@ let
|
|||
"8.14.1".sha256 = "0sx78pgx0qw8v7v2r32zzy3l161zipzq95iacda628girim7psnl";
|
||||
"8.15.0".sha256 = "sha256:1ma76wfrpfsl72yh10w1ys2a0vi0mdc2jc79kdc8nrmxkhpw1nxx";
|
||||
"8.15.1".sha256 = "sha256:1dsa04jzkx5pw69pmxn0l55q4w88lg6fvz7clbga0bazzsfnsgd6";
|
||||
"8.15.2".sha256 = "sha256:0gn8dz69scxnxaq6ycb3x34bjfk9wlp1y2xn8w69kg9fm4b6gkc7";
|
||||
};
|
||||
releaseRev = v: "V${v}";
|
||||
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
|
||||
|
|
|
@ -21,11 +21,11 @@ let
|
|||
|
||||
self = python3Packages.buildPythonApplication rec {
|
||||
pname = "mercurial${lib.optionalString fullBuild "-full"}";
|
||||
version = "6.1.2";
|
||||
version = "6.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||
sha256 = "sha256-pSgQ/AFAmCjEl00Lwsu1yA6UjVtYTPsadpliPpJKLyo=";
|
||||
sha256 = "sha256-4CLB7yjlUCeT9DBnJOhEPF1ycUhBkG9GyjUe/XupG3w=";
|
||||
};
|
||||
|
||||
format = "other";
|
||||
|
@ -35,7 +35,7 @@ let
|
|||
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "mercurial-${version}";
|
||||
sha256 = "sha256-OSaeOp+SjQ5n61jV8UthtQQqkneBYJhESoQDCwRSTco=";
|
||||
sha256 = "sha256-NL4rzP9ljhdBtcJOGq759dNnzg2jANhZzMvpez+CbpM=";
|
||||
sourceRoot = "mercurial-${version}/rust";
|
||||
} else null;
|
||||
cargoRoot = if rustSupport then "rust" else null;
|
||||
|
@ -91,7 +91,7 @@ let
|
|||
homepage = "https://www.mercurial-scm.org";
|
||||
downloadPage = "https://www.mercurial-scm.org/release/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ eelco lukegb pacien ];
|
||||
maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -30,6 +30,10 @@ mkDerivation rec {
|
|||
./ffmpeg-out-of-box.patch
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: alsa_device.o:(.bss+0x8): multiple definition of `rc'; QvkAlsaDevice.o:(.bss+0x8): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
preConfigure = ''
|
||||
sed -i 's/lrelease-qt5/lrelease/g' vokoscreen.pro
|
||||
'';
|
||||
|
|
|
@ -9,6 +9,11 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1zkgnj2sfvckix360wwk1v5s43g69snm45m0drnzyv7hgf5g7q1q";
|
||||
};
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: char-coding.o:/build/w_scan-20170107/si_types.h:117: multiple definition of
|
||||
# `service_t'; countries.o:/build/w_scan-20170107/si_types.h:117: first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
meta = {
|
||||
description = "Small CLI utility to scan DVB and ATSC transmissions";
|
||||
homepage = "http://wirbel.htpc-forum.de/w_scan/index_en.html";
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cloud-hypervisor";
|
||||
version = "23.1";
|
||||
version = "24.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloud-hypervisor";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Pyocmj5cr2vOfeyRG3mBU11I3iXndUh3VifRSlnjoE8=";
|
||||
sha256 = "sha256-0QZmIqcBt2qBysosa55nAT7M+hTRX9Q4Z0qtLxK0IWg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
|
||||
|
||||
cargoSha256 = "1rx4d38d0ajdq3qs638gmagmj3f9j29i5mhrrzw039mggahjbksw";
|
||||
cargoSha256 = "sha256-L6K5SxkmQo+8UpvvWtWG1ZuGivR5+o7FDt0eYa/tXgI=";
|
||||
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
|
||||
|
|
|
@ -106,7 +106,6 @@ rec {
|
|||
xorg.libXi
|
||||
xorg.libSM
|
||||
xorg.libICE
|
||||
gnome2.GConf
|
||||
freetype
|
||||
curlWithGnuTls
|
||||
nspr
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/hddtempUtil.js b/hddtempUtil.js
|
||||
index e5d1d6d..856654b 100644
|
||||
index e5d1d6d..23f6289 100644
|
||||
--- a/hddtempUtil.js
|
||||
+++ b/hddtempUtil.js
|
||||
@@ -7,7 +7,7 @@ var HddtempUtil = class extends CommandLineUtil.CommandLineUtil {
|
||||
|
@ -7,7 +7,7 @@ index e5d1d6d..856654b 100644
|
|||
constructor() {
|
||||
super();
|
||||
- let hddtempArgv = GLib.find_program_in_path('hddtemp');
|
||||
+ let hddtempArgv = GLib.find_program_in_path('@hddtemp@/bin/hddtemp');
|
||||
+ let hddtempArgv = '@hddtemp@/bin/hddtemp';
|
||||
if(hddtempArgv) {
|
||||
// check if this user can run hddtemp directly.
|
||||
if(!GLib.spawn_command_line_sync(hddtempArgv)[3]){
|
||||
|
@ -17,8 +17,8 @@ index e5d1d6d..856654b 100644
|
|||
let systemctl = GLib.find_program_in_path('systemctl');
|
||||
- let pidof = GLib.find_program_in_path('pidof');
|
||||
- let nc = GLib.find_program_in_path('nc');
|
||||
+ let pidof = GLib.find_program_in_path('@procps@/bin/pidof');
|
||||
+ let nc = GLib.find_program_in_path('@netcat@/bin/nc');
|
||||
+ let pidof = '@procps@/bin/pidof';
|
||||
+ let nc = '@netcat@/bin/nc';
|
||||
let pid = undefined;
|
||||
|
||||
if(systemctl) {
|
||||
|
@ -32,7 +32,7 @@ index e5d1d6d..856654b 100644
|
|||
pid = Number(output.trim());
|
||||
}
|
||||
diff --git a/liquidctlUtil.js b/liquidctlUtil.js
|
||||
index 766bf62..7cd4e94 100644
|
||||
index 766bf62..2a6faf8 100644
|
||||
--- a/liquidctlUtil.js
|
||||
+++ b/liquidctlUtil.js
|
||||
@@ -8,7 +8,7 @@ const commandLineUtil = Me.imports.commandLineUtil;
|
||||
|
@ -40,12 +40,12 @@ index 766bf62..7cd4e94 100644
|
|||
constructor() {
|
||||
super();
|
||||
- const path = GLib.find_program_in_path('liquidctl');
|
||||
+ const path = GLib.find_program_in_path('@liquidctl@/bin/liquidctl');
|
||||
+ const path = '@liquidctl@/bin/liquidctl';
|
||||
this._argv = path ? [path, 'status', '--json'] : null;
|
||||
}
|
||||
|
||||
diff --git a/nvmecliUtil.js b/nvmecliUtil.js
|
||||
index ae2ea93..2349b9e 100644
|
||||
index 98a61df..8a40624 100644
|
||||
--- a/nvmecliUtil.js
|
||||
+++ b/nvmecliUtil.js
|
||||
@@ -3,7 +3,7 @@ const GLib = imports.gi.GLib;
|
||||
|
@ -53,12 +53,12 @@ index ae2ea93..2349b9e 100644
|
|||
|
||||
function getNvmeData (argv){
|
||||
- const nvme = GLib.find_program_in_path('nvme')
|
||||
+ const nvme = GLib.find_program_in_path('@nvmecli@/bin/nvme')
|
||||
+ const nvme = '@nvmecli@/bin/nvme'
|
||||
return JSON.parse(GLib.spawn_command_line_sync(`${nvme} ${argv} -o json`)[1].toString())
|
||||
}
|
||||
|
||||
diff --git a/sensorsUtil.js b/sensorsUtil.js
|
||||
index 62fa580..c017748 100644
|
||||
index bd6de61..5951b17 100644
|
||||
--- a/sensorsUtil.js
|
||||
+++ b/sensorsUtil.js
|
||||
@@ -7,7 +7,7 @@ var SensorsUtil = class extends CommandLineUtil.CommandLineUtil {
|
||||
|
@ -66,12 +66,12 @@ index 62fa580..c017748 100644
|
|||
constructor() {
|
||||
super();
|
||||
- let path = GLib.find_program_in_path('sensors');
|
||||
+ let path = GLib.find_program_in_path('@lm_sensors@/bin/sensors');
|
||||
+ let path = '@lm_sensors@/bin/sensors';
|
||||
// -A: Do not show adapter -j: JSON output
|
||||
this._argv = path ? [path, '-A', '-j'] : null;
|
||||
}
|
||||
diff --git a/smartctlUtil.js b/smartctlUtil.js
|
||||
index 03d469b..6057a3b 100644
|
||||
index 4888323..66b6c61 100644
|
||||
--- a/smartctlUtil.js
|
||||
+++ b/smartctlUtil.js
|
||||
@@ -3,7 +3,7 @@ const GLib = imports.gi.GLib;
|
||||
|
@ -79,7 +79,7 @@ index 03d469b..6057a3b 100644
|
|||
const ByteArray = imports.byteArray;
|
||||
function getSmartData (argv){
|
||||
- const smartctl = GLib.find_program_in_path('smartctl')
|
||||
+ const smartctl = GLib.find_program_in_path('@smartmontools@/bin/smartctl')
|
||||
return JSON.parse(ByteArray.toString( GLib.spawn_command_line_sync(`${smartctl} ${argv} -j`)[1] ))
|
||||
+ const smartctl = '@smartmontools@/bin/smartctl'
|
||||
return JSON.parse(ByteArray.toString( GLib.spawn_command_line_sync(`'${smartctl}' ${argv} -j`)[1] ))
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -21,6 +21,12 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256:07g9q9sjk4xsbqix7jxggfp36v15pmqw4bms80g5car0hfbszirn";
|
||||
})];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
prefixKey = "-prefix ";
|
||||
configureFlags = [ "-no-tk" ] ++ optionals useX11 [ "-x11lib" xlibsWrapper ];
|
||||
buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
|
||||
|
|
|
@ -10,4 +10,10 @@ import ./generic.nix {
|
|||
sha256 = "sha256:08mpy7lsiwv8m5qrqc4xzyiv2hri5713gz2qs1nfz02hz1bd79mc"; }
|
||||
];
|
||||
sha256 = "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7";
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -10,4 +10,10 @@ import ./generic.nix {
|
|||
sha256 = "sha256:12sw512kpwk0xf2g6j0h5vqgd8xcmgrvgyilx6fxbd6bnfv1yib9"; }
|
||||
];
|
||||
sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -9,4 +9,10 @@ import ./generic.nix {
|
|||
{ url = "https://github.com/ocaml/ocaml/commit/a8b2cc3b40f5269ce8525164ec2a63b35722b22b.patch";
|
||||
sha256 = "sha256:1rrknmrk86xrj2k3hznnjk1gwnliyqh125zabg1hvy6dlvml9b0x"; }
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -12,4 +12,10 @@ import ./generic.nix {
|
|||
{ url = "https://github.com/ocaml/ocaml/commit/6bcff7e6ce1a43e088469278eb3a9341e6a2ca5b.patch";
|
||||
sha256 = "sha256:1hd45f7mwwrrym2y4dbcwklpv0g94avbz7qrn81l7w8mrrj3bngi"; }
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -12,4 +12,10 @@ import ./generic.nix {
|
|||
{ url = "https://github.com/ocaml/ocaml/commit/50c2d1275e537906ea144bd557fde31e0bf16e5f.patch";
|
||||
sha256 = "sha256:0ck9b2dpgg5k2p9ndbgniql24h35pn1bbpxjvk69j715lswzy4mh"; }
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -12,4 +12,10 @@ import ./generic.nix {
|
|||
{ url = "https://github.com/ocaml/ocaml/commit/137a4ad167f25fe1bee792977ed89f30d19bcd74.patch";
|
||||
sha256 = "sha256:0izsf6rm3677vbbx0snkmn9pkfcsayrdwz3ipiml5wjiaysnchjz"; }
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -12,4 +12,10 @@ import ./generic.nix {
|
|||
{ url = "https://github.com/ocaml/ocaml/commit/00b8c4d503732343d5d01761ad09650fe50ff3a0.patch";
|
||||
sha256 = "sha256:02cfya5ff5szx0fsl5x8ax76jyrla9zmf3qxavf3adhwq5ssrfcv"; }
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -15,4 +15,10 @@ import ./generic.nix {
|
|||
{ url = "https://github.com/ocaml/ocaml/commit/17df117b4939486d3285031900587afce5262c8c.patch";
|
||||
sha256 = "sha256:1b3jc6sj2k23yvfwrv6nc1f4x2n2biqbhbbp74aqb6iyqyjsq35n"; }
|
||||
];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
|
||||
# `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ mkCoqDerivation {
|
|||
preConfigure = ''
|
||||
patchShebangs util
|
||||
substituteInPlace Makefile \
|
||||
--replace 'COQVERSION= ' 'COQVERSION= 8.15.1 or-else '\
|
||||
--replace 'COQVERSION= ' 'COQVERSION= 8.15.2 or-else 8.15.1 or-else '\
|
||||
--replace 'FLOYD_FILES=' 'FLOYD_FILES= ${toString extra_floyd_files}'
|
||||
'';
|
||||
|
||||
|
|
|
@ -129,6 +129,11 @@ compcert.overrideAttrs (o:
|
|||
url = "https://github.com/AbsInt/CompCert/commit/10a976994d7fd30d143354c289ae735d210ccc09.patch";
|
||||
sha256 = "sha256:0bg58gpkgxlmxzp6sg0dvybrfk0pxnm7qd6vxlrbsbm2w6wk03jv";
|
||||
})
|
||||
# Support for Coq 8.15.2
|
||||
(fetchpatch {
|
||||
url = "https://github.com/AbsInt/CompCert/commit/283a5be7296c4c0a94d863b427c77007ab875733.patch";
|
||||
sha256 = "sha256:1s7hvb5ii3p8kkcjlzwldvk8xc3iiibxi9935qjbrh25xi6qs66k";
|
||||
})
|
||||
];
|
||||
}
|
||||
] [];
|
||||
|
|
|
@ -14,6 +14,13 @@ stdenv.mkDerivation {
|
|||
|
||||
sourceRoot = ".";
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: ../common/ipp.o:(.bss+0x0): multiple definition of `lpath'; tglobals.o:(.bss+0x30): first defined here
|
||||
# TODO: remove the workaround once upstream releases version past:
|
||||
# https://sourceforge.net/p/unicon/unicon/ci/b1a65230233f3825d055aee913b4fdcf178a0eaf/
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
configurePhase = ''
|
||||
case "$(uname -a | sed 's/ /_/g')" in
|
||||
Darwin*Version_9*i386) sys=intel_macos;;
|
||||
|
|
|
@ -32,6 +32,11 @@
|
|||
nativeBuildInputs = [ jdk8 ant git ];
|
||||
buildInputs = [ udev xorg.libX11 xorg.libXrandr xorg.libXcursor xorg.libXt xorg.libXxf86vm xorg.libXrender ];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: ../obj/Bindingtest1p1Impl_JNI.o:(.bss+0x8): multiple definition of
|
||||
# `unsigned_size_t_1'; ../obj/TK_Surface_JNI.o:(.bss+0x8): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
buildPhase = ''
|
||||
cp -r ${gluegen-src} $NIX_BUILD_TOP/gluegen
|
||||
chmod -R +w $NIX_BUILD_TOP/gluegen
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
{ lib, stdenv, fetchurl, cmake, openssl, pcsclite, opensc, libxml2, Security }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "3.10.5";
|
||||
pname = "libdigidoc";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/open-eid/libdigidoc/releases/download/v${version}/libdigidoc-${version}.tar.gz";
|
||||
sha256 = "0nw36a4i6rcq7z6jqz5h2ln9hmmsfhw65jga3rymlswk2k7bndgn";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ openssl pcsclite opensc libxml2 ]
|
||||
++ lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
cmakeFlags = lib.optionals stdenv.isDarwin [ "-DFRAMEWORK=OFF" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library for creating DigiDoc signature files";
|
||||
homepage = "https://github.com/open-eid/libdigidoc";
|
||||
license = licenses.lgpl2;
|
||||
maintainers = [ maintainers.jagajaga ];
|
||||
mainProgram = "cdigidoc";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, cmake, makeWrapper, minizip, pcsclite, opensc, openssl
|
||||
{ lib, stdenv, fetchurl, fetchpatch, cmake, makeWrapper, minizip, pcsclite, opensc, openssl
|
||||
, xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -10,6 +10,18 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-U5i5IAyJF4359q6M6mQemEuG7+inPYIXqLy8GHv4dkg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# fix runtime crashes when signing with OpenSSL>1.1.1l
|
||||
# https://github.com/open-eid/libdigidocpp/issues/474 asks for a new release
|
||||
url = "https://github.com/open-eid/libdigidocpp/commit/42a8cfd834c10bdd206fe784a13217df222b1c8e.patch";
|
||||
sha256 = "sha256-o3ZT0dXhIu79C5ZR+2HPdLMZ3YwPG1v3vly5bseuxtU=";
|
||||
excludes = [
|
||||
".github/workflows/build.yml" # failed hunk
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake makeWrapper pkg-config xxd ];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -17,10 +29,12 @@ stdenv.mkDerivation rec {
|
|||
xml-security-c xsd zlib xalanc
|
||||
];
|
||||
|
||||
outputs = [ "out" "lib" "dev" "bin" ];
|
||||
|
||||
# replace this hack with a proper cmake variable or environment variable
|
||||
# once https://github.com/open-eid/cmake/pull/34 (or #35) gets merged.
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/digidoc-tool \
|
||||
wrapProgram $bin/bin/digidoc-tool \
|
||||
--prefix LD_LIBRARY_PATH : ${opensc}/lib/pkcs11/
|
||||
'';
|
||||
|
||||
|
|
|
@ -7,6 +7,14 @@ stdenv.mkDerivation {
|
|||
url = "mirror://sourceforge/libipfix/files/libipfix/libipfix_110209.tgz";
|
||||
sha256 = "0h7v0sxjjdc41hl5vq2x0yhyn04bczl11bqm97825mivrvfymhn6";
|
||||
};
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: ../libmisc/libmisc.a(mlog.o):/build/libipfix_110209/libmisc/misc.h:111: multiple definition of
|
||||
# `ht_globals'; collector.o:/build/libipfix_110209/collector/../libmisc/misc.h:111: first defined here
|
||||
# TODO: drop the workaround when fix ix released:
|
||||
# https://sourceforge.net/p/libipfix/code/ci/a501612c6b8ac6f2df16b366f7a92211382bae6b/
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://libipfix.sourceforge.net/";
|
||||
description = "The libipfix C-library implements the IPFIX protocol defined by the IP Flow Information Export working group of the IETF";
|
||||
|
|
|
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
|
|||
version = "1.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "01org";
|
||||
owner = "intel";
|
||||
repo = "intel-hybrid-driver";
|
||||
rev = version;
|
||||
sha256 = "sha256-uYX7RoU1XVzcC2ea3z/VBjmT47xmzK67Y4LaiFXyJZ8=";
|
||||
|
@ -25,6 +25,9 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream gcc-10.
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
configureFlags = [
|
||||
"--enable-drm"
|
||||
"--enable-x11"
|
||||
|
|
|
@ -29,6 +29,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [ libusb-compat-0_1 ];
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: src/host/usb-linux.c:82: multiple definition of `t_recovery_queue';
|
||||
# src/host/recovery.c:45: first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
cmakeFlags = [ "-DWEBOS_TARGET_MACHINE_IMPL=host" ];
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -11,6 +11,11 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "1qw9vbk463fpnvvvfgzxmn9add2p30k832s09mlycr7z1hrh3wyf";
|
||||
};
|
||||
|
||||
# Workaround build failure on -fno-common toolchains:
|
||||
# ld: ../ipsw-patch/libxpwn.a(libxpwn.c.o):(.bss+0x4): multiple definition of
|
||||
# `endianness'; CMakeFiles/xpwn-bin.dir/src/xpwn.cpp.o:(.bss+0x0): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
preConfigure = ''
|
||||
rm BUILD # otherwise `mkdir build` fails on case insensitive file systems
|
||||
sed -r -i \
|
||||
|
|
|
@ -40,6 +40,12 @@ stdenv.mkDerivation rec {
|
|||
cd build/
|
||||
'';
|
||||
|
||||
# -fcommon is a workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/gcc3x-cointerp.c.o:(.bss+0x88): multiple definition of
|
||||
# `sendTrace'; CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/cogit.c.o:(.bss+0x84): first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$prefix/lib/$name"
|
||||
|
||||
|
|
|
@ -85,6 +85,13 @@ stdenv.mkDerivation rec {
|
|||
configureFlags = [ "--without-npsqueak"
|
||||
"--with-vmversion=5.0"
|
||||
"--with-src=${vm}" ];
|
||||
|
||||
# -fcommon is a workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10. Otherwise build fails as:
|
||||
# ld: vm/vm.a(cogit.o):/build/source/spur64src/vm/cointerp.h:358: multiple definition of `checkAllocFiller';
|
||||
# vm/vm.a(gcc3x-cointerp.o):/build/source/spur64src/vm/cointerp.h:358: first defined here
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
CFLAGS = "-DPharoVM -DIMMUTABILITY=1 -msse2 -D_GNU_SOURCE -DCOGMTVM=0 -g -O2 -DNDEBUG -DDEBUGVM=0";
|
||||
LDFLAGS = "-Wl,-z,now";
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "adafruit-platformdetect";
|
||||
version = "3.24.0";
|
||||
version = "3.24.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -15,7 +15,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "Adafruit-PlatformDetect";
|
||||
inherit version;
|
||||
hash = "sha256-XeaRtdw23mNJ+kgSthGRhq4PCGAwTjpjVyNlNRshoQg=";
|
||||
hash = "sha256-srM5VX0QXZMLmYmqKttcB8W8oMlGz64e6dQh04OQq8Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
57
pkgs/development/python-modules/aiosmtplib/default.nix
Normal file
57
pkgs/development/python-modules/aiosmtplib/default.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
{ lib
|
||||
, aiosmtpd
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, hypothesis
|
||||
, poetry-core
|
||||
, pytest-asyncio
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiosmtplib";
|
||||
version = "1.1.6";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cole";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bo+u3I+ZX95UYkEam2TB6d6rvbYKa5Qu/9oNX5le478=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
aiosmtpd
|
||||
hypothesis
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Switch to poetry-core, https://github.com/cole/aiosmtplib/pull/183
|
||||
(fetchpatch {
|
||||
name = "switch-to-poetry-core.patch";
|
||||
url = "https://github.com/cole/aiosmtplib/commit/3aba1c132d9454e05d4281f4c8aa618b4e1b783d.patch";
|
||||
hash = "sha256-KlA46gD6swfJ/3OLO3xWZWa66Gx1/izmUMQ60PQy0po=";
|
||||
})
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"aiosmtplib"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Module which provides a SMTP client";
|
||||
homepage = "https://github.com/cole/aiosmtplib";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
|
@ -20,14 +20,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "apprise";
|
||||
version = "0.9.8.3";
|
||||
version = "0.9.9";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-24OYAjbnzer0KyTRx7Kty8HVsHdon+l4UazcWMIm428=";
|
||||
hash = "sha256-a6PQ6DB+JkfDJA7BoNVXHzpFP5FD2Ug07LAmYLDo0kQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "autopage";
|
||||
version = "0.5.0";
|
||||
version = "0.5.1";
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-UwW0PMB5gXDXEk5aL+7Plp5F9KC691yzUROBFOr3a4M=";
|
||||
sha256 = "sha256-Ab4+5hu3FOkJD8xcEPTPVGw5YzHGIMauUKIyGyjtMZk=";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "autopage" ];
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "aws-adfs";
|
||||
version = "2.0.3";
|
||||
version = "2.0.5";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
@ -27,7 +27,7 @@ buildPythonPackage rec {
|
|||
owner = "venth";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-/cOJ8k8YuwTGEXrNuPFAYvDyDKERMJf3o3nRkDLkrJE=";
|
||||
hash = "sha256-OBxKJN14CuWSq88KxSttpK/Paj2sBHrBVMyP+oPkHys=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bimmer-connected";
|
||||
version = "0.9.3";
|
||||
version = "0.9.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
@ -21,8 +21,8 @@ buildPythonPackage rec {
|
|||
src = fetchFromGitHub {
|
||||
owner = "bimmerconnected";
|
||||
repo = "bimmer_connected";
|
||||
rev = version;
|
||||
hash = "sha256-ylhvUX5af248KIT54SIe26WP8tysqjZd2y/+Fi+VqHM=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-+K+RffQzbJiKld0AM41OlK0ma0aopJRaTz+ZcCcYzJk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
|||
owner = "xolox";
|
||||
repo = "python-coloredlogs";
|
||||
rev = version;
|
||||
sha256 = "sha256-C1Eo+XrrL3bwhT49KyOE6xjbAHJxn9Qy4s1RR5ERVtA=";
|
||||
hash = "sha256-TodI2Wh8M0qMM2K5jzqlLmUKILa5+5qq4ByLttmAA7E=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -7,7 +7,7 @@ index 05b5732..91fafee 100644
|
|||
lib_path = settings.GDAL_LIBRARY_PATH
|
||||
except (AttributeError, ImportError, ImproperlyConfigured, OSError):
|
||||
- lib_path = None
|
||||
+ lib_path = ""@gdal@/lib/libgdal@extension@"
|
||||
+ lib_path = "@gdal@/lib/libgdal@extension@"
|
||||
|
||||
if lib_path:
|
||||
lib_names = None
|
||||
|
|
|
@ -16,14 +16,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "faraday-plugins";
|
||||
version = "1.6.6";
|
||||
version = "1.6.7";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "infobyte";
|
||||
repo = "faraday_plugins";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-clhWUKpX4q3aXq7HrrGPda+qjPD/GuPS7PRZ7c4xxxI=";
|
||||
sha256 = "sha256-sLY10lm9buhE2iJ81R5cItgVmnJA016Su+QEbW1/5DE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
72
pkgs/development/python-modules/fastapi-mail/default.nix
Normal file
72
pkgs/development/python-modules/fastapi-mail/default.nix
Normal file
|
@ -0,0 +1,72 @@
|
|||
{ lib
|
||||
, aioredis
|
||||
, aiosmtplib
|
||||
, blinker
|
||||
, buildPythonPackage
|
||||
, email_validator
|
||||
, fakeredis
|
||||
, fastapi
|
||||
, fetchFromGitHub
|
||||
, httpx
|
||||
, jinja2
|
||||
, poetry-core
|
||||
, pydantic
|
||||
, pytest-asyncio
|
||||
, pytestCheckHook
|
||||
, python-multipart
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fastapi-mail";
|
||||
version = "1.0.8";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sabuhish";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-PkA7qkdDUd7mrtvb6IbCzFRq6X0M3iKY+FKuNConJ5A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
aioredis
|
||||
aiosmtplib
|
||||
blinker
|
||||
email_validator
|
||||
fakeredis
|
||||
fastapi
|
||||
httpx
|
||||
jinja2
|
||||
pydantic
|
||||
python-multipart
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# Tests require access to /etc/resolv.conf
|
||||
"test_default_checker"
|
||||
"test_redis_checker"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"fastapi_mail"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Module for sending emails and attachments";
|
||||
homepage = "https://github.com/sabuhish/fastapi-mail";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
|
@ -18,18 +18,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-auth";
|
||||
version = "2.6.2";
|
||||
version = "2.6.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-YNRJ+BQsdC23YPTAvjkSG8jZvoVVVdeEwlLerKHO0/U=";
|
||||
sha256 = "sha256-G6STjgMrc961HlnEZWoA4JOc8LERJXUJnxNrq7RWMxI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "cachetools>=2.0.0,<5.0" "cachetools"
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cachetools
|
||||
pyasn1-modules
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
pname = "gpsoauth";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-wxLyvrNwT3QQHGLCxaIFdRG7OJpECMpynE+lgAGtFk0=";
|
||||
sha256 = "sha256-68rnLrMlp/BsvqlbnV5kvsJTcDEtsV6OLkbE1U5ynno=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pycryptodomex requests ];
|
||||
|
|
|
@ -23,12 +23,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "gradient";
|
||||
version = "2.0.3";
|
||||
version = "2.0.4";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-NEbXLhQC72UP5+crUzkgqMTd3rvipXO7bGlGAWUDoP4=";
|
||||
hash = "sha256-s80e15u2j7t/FVKcaKGTloN3dwfJuF7XgqIj4XpKHYU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "hijri-converter";
|
||||
version = "2.2.3";
|
||||
version = "2.2.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-5xSc7OzKZHv0Bonsib9ZPHJSsx1pnqWHrQvOkbpC04I=";
|
||||
hash = "sha256-nh2fpMIg9oZ9oquxqWJAZ1rpdKu6lRxoangfTvasIY8=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
|
|
|
@ -2,11 +2,9 @@
|
|||
, fetchPypi
|
||||
, pytest
|
||||
, tqdm
|
||||
, pyyaml
|
||||
, docopt
|
||||
, requests
|
||||
, jsonpatch
|
||||
, args
|
||||
, schema
|
||||
, responses
|
||||
, lib
|
||||
|
@ -18,24 +16,22 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "internetarchive";
|
||||
version = "3.0.0";
|
||||
version = "3.0.1";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-fRcqsT8p/tqXUpU2/9lAEF1IT8Cy5KK0+jKaeVwZshI=";
|
||||
sha256 = "sha256-0DcX2w2omPdOmBD6WpG2Li1ERPSI0i9qOINdO/kVrUI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
tqdm
|
||||
pyyaml
|
||||
docopt
|
||||
requests
|
||||
jsonpatch
|
||||
args
|
||||
schema
|
||||
setuptools
|
||||
setuptools # needs pkg_resources at runtime
|
||||
urllib3
|
||||
];
|
||||
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "mkdocs-material";
|
||||
version = "8.2.16";
|
||||
version = "8.3.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "squidfunk";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-ZRk1PGLUg3StD7JhuI+3hRc4lWwEO3CrMUfLSqFVgVk=";
|
||||
hash = "sha256-0N/IZ5fSK7xefwkROoG/udP3qTGJSQKbe+wcRiU752M=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "neo4j-driver";
|
||||
version = "4.4.3";
|
||||
version = "4.4.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
|||
owner = "neo4j";
|
||||
repo = "neo4j-python-driver";
|
||||
rev = version;
|
||||
sha256 = "sha256-YApj4EA0e3Q9V+ujnJC7/eSS0DybnZH22LnnSla/mw4=";
|
||||
sha256 = "sha256-Sd+ZeyJCzqGsBl3rdxfKPD0gYZ49qAfiRbuXaNGpj8M=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,33 +1,21 @@
|
|||
{ lib
|
||||
, fetchPypi
|
||||
, fetchpatch
|
||||
, buildPythonPackage
|
||||
, flake8
|
||||
, flake8-polyfill
|
||||
, python
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pep8-naming";
|
||||
version = "0.12.1";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-uyRVlHdX0WKqTK1V26TOApAFzRaS8omaIdUdhjDKeEE=";
|
||||
sha256 = "sha256-nzjm3Phnoft61H9f9ywN2uVEps9k6592ALezwLtZgLU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
flake8
|
||||
flake8-polyfill
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Add missing option to get passing tests, https://github.com/PyCQA/pep8-naming/pull/181
|
||||
(fetchpatch {
|
||||
name = "add-missing-option.patch";
|
||||
url = "https://github.com/PyCQA/pep8-naming/commit/03b8f36f6a8bb8bc79dfa5a71ad9be2a0bf8bbf5.patch";
|
||||
sha256 = "1YTh84Yoj0MqFZoifM362563r1GuzaF+mMmdT/ckC7I=";
|
||||
})
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pycoin";
|
||||
version = "0.92.20220213";
|
||||
version = "0.92.20220529";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-qb2jtb/bHJSmtnQbYTFgCgBY0OCsrxsWJ7SJFeEDytc=";
|
||||
sha256 = "sha256-PQOWR1teLZ2npQV+q3K+DgiFBejkRoB4gQYjaHLFQqI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ setuptools ];
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyfaidx";
|
||||
version = "0.6.4";
|
||||
version = "0.7.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-e6O9yx30unSfdmWzTmoFKqToQkBqDflebfRxfMEj85I=";
|
||||
sha256 = "sha256-mtXMk4Hw3pxD1L3sD68Qa4KM37b4FQ7HHKssp8i+53A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyhiveapi";
|
||||
version = "0.5.4";
|
||||
version = "0.5.5";
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
|
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||
owner = "Pyhass";
|
||||
repo = "Pyhiveapi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-H/FxFv+1dOeJqnLZ0urDJfysYZHybeTJdQkjAFghTeI=";
|
||||
hash = "sha256-tihIgEjtsAmSjQZMWNaUynrDwZsiM5P3EvgxUhsSEv0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
, tomli
|
||||
, typing-extensions
|
||||
, GitPython
|
||||
, pytest-benchmark
|
||||
, pytest-timeout
|
||||
, pytest-xdist
|
||||
, pytestCheckHook
|
||||
|
@ -58,7 +57,6 @@ buildPythonPackage rec {
|
|||
checkInputs = [
|
||||
GitPython
|
||||
# https://github.com/PyCQA/pylint/blob/main/requirements_test_min.txt
|
||||
pytest-benchmark
|
||||
pytest-timeout
|
||||
pytest-xdist
|
||||
pytestCheckHook
|
||||
|
@ -74,6 +72,7 @@ buildPythonPackage rec {
|
|||
'';
|
||||
|
||||
disabledTestPaths = [
|
||||
"tests/benchmark"
|
||||
# tests miss multiple input files
|
||||
# FileNotFoundError: [Errno 2] No such file or directory
|
||||
"tests/pyreverse/test_writer.py"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pynetgear";
|
||||
version = "0.10.3";
|
||||
version = "0.10.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
|||
owner = "MatMaul";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "sha256-CuKV4a3f5FlkDRAOv6H7k5oGTiT8rRhE+NosKpvZj6g=";
|
||||
sha256 = "sha256-+Tv7i3iUr8HySTHPR4iNO6ycUnpNazKJkp3mXSflu54=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pypoolstation";
|
||||
version = "0.4.4";
|
||||
version = "0.4.5";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "PyPoolstation";
|
||||
inherit version;
|
||||
sha256 = "sha256-MG2V7/AqgH4OVcOEDdhwQswt96URJBQtoi1i+n4IV7Y=";
|
||||
sha256 = "sha256-cf2KUdvsuC7fplg7O9Jqqb86rOjNicV+vGVBwWvvs90=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyrogram";
|
||||
version = "2.0.25";
|
||||
version = "2.0.26";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
|
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
|||
owner = "pyrogram";
|
||||
repo = "pyrogram";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-DOSZgi+y4gm7VZr50/linJHNdNWIKhdm/tuv2iXdviA=";
|
||||
hash = "sha256-R6EPraYusA3WVW9AGHpf6JkaX3dJ/ioL0lXgH0J3Kg8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -14,15 +14,15 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pytorch-lightning";
|
||||
version = "1.6.3";
|
||||
version = "1.6.4";
|
||||
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PyTorchLightning";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-MEUFrj84y5lQfwbC9s9fJNOKo+Djeh+E/eDc8KeX7V4=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-X1xPyE53uo/eWPjQdXiObAnjgWc/Y/K+077Ypi5ZzcE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "setupmeta";
|
||||
version = "3.3.1";
|
||||
version = "3.3.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "codrsquad";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-3QUI3AjouuGa9sWXH97GSvpimVsws3q5Xgq6lls/wBU=";
|
||||
sha256 = "sha256-kX7S5NSqO1LDRkfBHaNfTjzW+l0Pd+5KvQHiNF3eH/M=";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
|
|
@ -13,14 +13,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "spacy-transformers";
|
||||
version = "1.1.5";
|
||||
version = "1.1.6";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-nxbmnFyHptbe5M7rQi2ECGoBpxUuutdCtY20eHsGDPI=";
|
||||
hash = "sha256-egWhcrfR8B6l7ji0KOzuMz18YZepNb/ZQz5S0REo9Hc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,7 +1,19 @@
|
|||
{ lib, fetchPypi, buildPythonPackage
|
||||
, six, sqlalchemy
|
||||
, mock, pytz, isort, flake8, jinja2, pg8000, pyodbc, pytest, pymysql, python-dateutil
|
||||
, docutils, flexmock, psycopg2, pygments }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, six
|
||||
, sqlalchemy
|
||||
, colour
|
||||
, flexmock
|
||||
, jinja2
|
||||
, mock
|
||||
, pg8000
|
||||
, phonenumbers
|
||||
, pygments
|
||||
, pymysql
|
||||
, pytestCheckHook
|
||||
, python-dateutil
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sqlalchemy-utils";
|
||||
|
@ -13,33 +25,32 @@ buildPythonPackage rec {
|
|||
sha256 = "9e01d6d3fb52d3926fcd4ea4a13f3540701b751aced0316bff78264402c2ceb4";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# We don't run MySQL, MSSQL, or PostgreSQL
|
||||
./skip-database-tests.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
six
|
||||
sqlalchemy
|
||||
];
|
||||
|
||||
# Attempts to access localhost and there's also no database access
|
||||
doCheck = false;
|
||||
checkInputs = [
|
||||
mock
|
||||
pytz
|
||||
isort
|
||||
flake8
|
||||
jinja2
|
||||
pg8000
|
||||
pyodbc
|
||||
pytest
|
||||
pymysql
|
||||
python-dateutil
|
||||
docutils
|
||||
colour
|
||||
flexmock
|
||||
psycopg2
|
||||
jinja2
|
||||
mock
|
||||
pg8000
|
||||
phonenumbers
|
||||
pygments
|
||||
pymysql
|
||||
pytestCheckHook
|
||||
python-dateutil
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
pytest tests
|
||||
'';
|
||||
disabledTests = [
|
||||
"test_literal_bind"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/kvesteri/sqlalchemy-utils";
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
diff --git a/conftest.py b/conftest.py
|
||||
index 9e146cd..8dbc9a5 100644
|
||||
--- a/conftest.py
|
||||
+++ b/conftest.py
|
||||
@@ -61,16 +61,12 @@ def mysql_db_user():
|
||||
|
||||
@pytest.fixture
|
||||
def postgresql_dsn(postgresql_db_user, postgresql_db_password, db_name):
|
||||
- return 'postgresql://{0}:{1}@localhost/{2}'.format(
|
||||
- postgresql_db_user,
|
||||
- postgresql_db_password,
|
||||
- db_name
|
||||
- )
|
||||
+ pytest.skip()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mysql_dsn(mysql_db_user, db_name):
|
||||
- return 'mysql+pymysql://{0}@localhost/{1}'.format(mysql_db_user, db_name)
|
||||
+ pytest.skip()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -108,8 +104,7 @@ def mssql_db_driver():
|
||||
|
||||
@pytest.fixture
|
||||
def mssql_dsn(mssql_db_user, mssql_db_password, mssql_db_driver, db_name):
|
||||
- return 'mssql+pyodbc://{0}:{1}@localhost/{2}?driver={3}'\
|
||||
- .format(mssql_db_user, mssql_db_password, db_name, mssql_db_driver)
|
||||
+ pytest.skip()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
diff --git a/tests/functions/test_database.py b/tests/functions/test_database.py
|
||||
index 0ad6721..83f208d 100644
|
||||
--- a/tests/functions/test_database.py
|
||||
+++ b/tests/functions/test_database.py
|
||||
@@ -76,28 +76,6 @@ class TestDatabasePostgres(DatabaseTest):
|
||||
"TEMPLATE my_template") in str(excinfo.value)
|
||||
|
||||
|
||||
-class TestDatabasePostgresPg8000(DatabaseTest):
|
||||
-
|
||||
- @pytest.fixture
|
||||
- def dsn(self, postgresql_db_user, postgresql_db_password):
|
||||
- return 'postgresql+pg8000://{0}:{1}@localhost/{2}'.format(
|
||||
- postgresql_db_user,
|
||||
- postgresql_db_password,
|
||||
- 'db_to_test_create_and_drop_via_pg8000_driver'
|
||||
- )
|
||||
-
|
||||
-
|
||||
-class TestDatabasePostgresPsycoPG2CFFI(DatabaseTest):
|
||||
-
|
||||
- @pytest.fixture
|
||||
- def dsn(self, postgresql_db_user, postgresql_db_password):
|
||||
- return 'postgresql+psycopg2cffi://{0}:{1}@localhost/{2}'.format(
|
||||
- postgresql_db_user,
|
||||
- postgresql_db_password,
|
||||
- 'db_to_test_create_and_drop_via_psycopg2cffi_driver'
|
||||
- )
|
||||
-
|
||||
-
|
||||
@pytest.mark.usefixtures('postgresql_dsn')
|
||||
class TestDatabasePostgresWithQuotedName(DatabaseTest):
|
||||
|
||||
@@ -116,31 +94,6 @@ class TestDatabasePostgresWithQuotedName(DatabaseTest):
|
||||
'TEMPLATE "my-template"') in str(excinfo.value)
|
||||
|
||||
|
||||
-class TestDatabasePostgresCreateDatabaseCloseConnection(object):
|
||||
- def test_create_database_twice(
|
||||
- self,
|
||||
- postgresql_db_user,
|
||||
- postgresql_db_password
|
||||
- ):
|
||||
- dsn_list = [
|
||||
- 'postgresql://{0}:{1}@localhost/db_test_sqlalchemy-util-a'.format(
|
||||
- postgresql_db_user,
|
||||
- postgresql_db_password
|
||||
- ),
|
||||
- 'postgresql://{0}:{1}@localhost/db_test_sqlalchemy-util-b'.format(
|
||||
- postgresql_db_user,
|
||||
- postgresql_db_password
|
||||
- ),
|
||||
- ]
|
||||
- for dsn_item in dsn_list:
|
||||
- assert not database_exists(dsn_item)
|
||||
- create_database(dsn_item, template="template1")
|
||||
- assert database_exists(dsn_item)
|
||||
- for dsn_item in dsn_list:
|
||||
- drop_database(dsn_item)
|
||||
- assert not database_exists(dsn_item)
|
||||
-
|
||||
-
|
||||
@pytest.mark.usefixtures('mssql_dsn')
|
||||
class TestDatabaseMssql(DatabaseTest):
|
||||
|
|
@ -28,11 +28,11 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "tempest";
|
||||
version = "30.1.0";
|
||||
version = "31.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-yaNw3c3d8TsSK9cXF9Lw9rKEcqx8YC6cigPURNdJy0A=";
|
||||
sha256 = "sha256-g/fpVDGa2TFAzMVvC/370bStPJvhWSZ2tkbmP54nzc4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -30,14 +30,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "thinc";
|
||||
version = "8.0.16";
|
||||
version = "8.0.17";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-S8eBpRqHiaxAKzbvLgfRdjbRKniQACdU+NcPBbto31E=";
|
||||
sha256 = "sha256-BCxRiqeZo4vsIqegvyjfgM5hfrfeMrwEl5hwfAo2Fn8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "yolink-api";
|
||||
version = "0.0.5";
|
||||
version = "0.0.6";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -18,7 +18,7 @@ buildPythonPackage rec {
|
|||
owner = "YoSmart-Inc";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-LCdPg+T6GMcE8NF32caWgC5lnaN7KOj2gZA/JHPcZKI=";
|
||||
hash = "sha256-e0WeQdxQYwaklXOlyUc22NvJraY/eG6HCLsI6/+A6vg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -32,14 +32,14 @@ with py.pkgs;
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "checkov";
|
||||
version = "2.0.1186";
|
||||
version = "2.0.1188";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bridgecrewio";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-5EFB/BgSJny3AdgtgsmIszcM5Wum/dtdmmP/40/sH0Y=";
|
||||
hash = "sha256-TK2In3FlcjrJjwfS0flgmgbd7nVv4g69v/ZZfWmbkr4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with py.pkgs; [
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "bacon";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Canop";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SlyJSBgFRLMQX68QGSTtffYL7mRROR+AF/Kix6f4miQ=";
|
||||
sha256 = "sha256-GoaWlnlE/UfLX3HjbQXPMBOdlplParq7HHAfCUcdGLc=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-TIENdbXpMWdsnyTIHCMpa0KJnzJPlrDZoKoAdjBw2uM=";
|
||||
cargoSha256 = "sha256-3heAu8n1Dm7ewYTSCwxtgpF2vn/D5B52BuM9qz0X7Yc=";
|
||||
|
||||
buildInputs = lib.optional stdenv.isDarwin CoreServices;
|
||||
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
{ lib
|
||||
, buildGoPackage
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "go-mk";
|
||||
version = "0.pre+date=2015-03-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dcjones";
|
||||
repo = "mk";
|
||||
rev = "73d1b31466c16d0a13a220e5fad7cd8ef6d984d1";
|
||||
hash = "sha256-fk2Qd3LDMx+RapKi1M9yCuxpS0IB6xlbEWW+H6t94AI=";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/dcjones/mk";
|
||||
|
||||
meta = with lib; {
|
||||
inherit (src.meta) homepage;
|
||||
description = "A reboot of Plan9's mk, written in Go";
|
||||
longDescription = ''
|
||||
Mk is a reboot of the Plan 9 mk command, which itself is a successor to
|
||||
make. This tool is for anyone who loves make, but hates all its stupid
|
||||
bullshit.
|
||||
'';
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
mainProgram = "mk";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -11,14 +11,14 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "cmake-language-server";
|
||||
version = "0.1.3";
|
||||
version = "0.1.4";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "regen100";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-eZBnygEYjLzk29tvLGg1JdhCECc5x2MewHRSChMuCjo=";
|
||||
sha256 = "sha256-FOyyXSgoFpX4mOHFyZtVW618M1Xs7k+IioJzm1sdkKY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -18,9 +18,9 @@ let
|
|||
plat = elemAt info 1;
|
||||
shas =
|
||||
{
|
||||
x86_64-linux = "0jivwsrq31n0qfznrsjfsn65sg3wpbd990afn2wzjnj4drq7plz6";
|
||||
x86_64-darwin = "02483aqzrccq1x6rwznmcazijdd46yxj9vnbihnvp2xyp3w9as45";
|
||||
aarch64-linux = "0iw155gkkl1hshc80lfj95rssg039ig21wz1l3srmmf2x4f934s9";
|
||||
x86_64-linux = "b657d82c8189acc8a8f656ab949e1484aaa98755a16c33f48c318fb17180343f";
|
||||
x86_64-darwin = "ac2b5a639ad83431db25e4161f811111d45db052eb845091e18f847016a34a55";
|
||||
aarch64-linux = "a1f7ab9e874799bf380b94394e5bb1ce28f38019896293dde8797d74ad273e67";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue