Merge staging-next into staging

main
github-actions[bot] 2 years ago committed by GitHub
commit 2e0eeecb7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      doc/builders/fetchers.chapter.md
  2. 13
      doc/contributing/coding-conventions.chapter.md
  3. 13
      nixos/doc/manual/development/writing-nixos-tests.section.md
  4. 13
      nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
  5. 2
      nixos/lib/test-driver/default.nix
  6. 0
      nixos/lib/test-driver/test_driver/py.typed
  7. 42
      nixos/lib/test-script-prepend.py
  8. 33
      nixos/lib/testing-python.nix
  9. 174
      nixos/modules/services/backup/restic.nix
  10. 191
      nixos/tests/restic.nix
  11. 4
      pkgs/applications/misc/spicetify-cli/default.nix
  12. 4
      pkgs/applications/video/vokoscreen/default.nix
  13. 5
      pkgs/applications/video/w_scan/default.nix
  14. 1
      pkgs/build-support/appimage/default.nix
  15. 7
      pkgs/development/interpreters/unicon-lang/default.nix
  16. 4
      pkgs/development/libraries/libdigidocpp/default.nix
  17. 5
      pkgs/development/mobile/webos/novacomd.nix
  18. 5
      pkgs/development/mobile/xpwn/default.nix
  19. 4
      pkgs/development/python-modules/apprise/default.nix
  20. 4
      pkgs/development/python-modules/autopage/default.nix
  21. 4
      pkgs/development/python-modules/aws-adfs/default.nix
  22. 6
      pkgs/development/python-modules/bimmer-connected/default.nix
  23. 2
      pkgs/development/python-modules/django/django_4_set_geos_gdal_lib.patch
  24. 9
      pkgs/development/python-modules/google-auth/default.nix
  25. 4
      pkgs/development/python-modules/gpsoauth/default.nix
  26. 4
      pkgs/development/python-modules/gradient/default.nix
  27. 10
      pkgs/development/python-modules/internetarchive/default.nix
  28. 16
      pkgs/development/python-modules/pep8-naming/default.nix
  29. 4
      pkgs/development/python-modules/pycoin/default.nix
  30. 4
      pkgs/development/python-modules/pynetgear/default.nix
  31. 6
      pkgs/development/python-modules/pytorch-lightning/default.nix
  32. 4
      pkgs/development/python-modules/tempest/default.nix
  33. 4
      pkgs/development/python-modules/thinc/default.nix
  34. 4
      pkgs/development/tools/cmake-language-server/default.nix
  35. 6
      pkgs/development/tools/misc/kibana/7.x.nix
  36. 6
      pkgs/development/tools/rust/cargo-nextest/default.nix
  37. 4
      pkgs/development/web/wml/default.nix
  38. 6
      pkgs/games/legendary-gl/default.nix
  39. 6
      pkgs/games/typespeed/default.nix
  40. 7
      pkgs/games/ufoai/default.nix
  41. 5
      pkgs/games/warsow/engine.nix
  42. 4
      pkgs/misc/logging/beats/7.x.nix
  43. 8
      pkgs/servers/search/elasticsearch/7.x.nix
  44. 8
      pkgs/servers/x11/xorg/overrides.nix
  45. 12
      pkgs/tools/X11/wayv/default.nix
  46. 14
      pkgs/tools/X11/xannotate/default.nix
  47. 4
      pkgs/tools/X11/xbindkeys-config/default.nix
  48. 12
      pkgs/tools/misc/logstash/7.x.nix
  49. 37
      pkgs/tools/misc/panoply/default.nix
  50. 5
      pkgs/tools/misc/xburst-tools/default.nix
  51. 7
      pkgs/tools/networking/uget/default.nix
  52. 6
      pkgs/tools/networking/webalizer/default.nix
  53. 5
      pkgs/tools/package-management/appimagekit/default.nix
  54. 2
      pkgs/tools/security/metasploit/Gemfile
  55. 8
      pkgs/tools/security/metasploit/Gemfile.lock
  56. 4
      pkgs/tools/security/metasploit/default.nix
  57. 10
      pkgs/tools/security/metasploit/gemset.nix
  58. 6
      pkgs/tools/security/qdigidoc/default.nix
  59. 8
      pkgs/tools/security/truecrack/default.nix
  60. 36
      pkgs/tools/security/wpscan/Gemfile.lock
  61. 52
      pkgs/tools/security/wpscan/gemset.nix
  62. 5
      pkgs/tools/security/wpscan/update.sh
  63. 29
      pkgs/tools/system/tree/default.nix
  64. 12
      pkgs/tools/system/vboot_reference/default.nix
  65. 7
      pkgs/tools/typesetting/soupault/default.nix
  66. 5
      pkgs/tools/virtualization/xe-guest-utilities/default.nix
  67. 4
      pkgs/top-level/all-packages.nix
  68. 4
      pkgs/top-level/perl-packages.nix

@ -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.

@ -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">

@ -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,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;
};
}

@ -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;
};
# 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 -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"',
)
'';
}
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"',
)
'';
}
)

@ -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=";

@ -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";

@ -106,7 +106,6 @@ rec {
xorg.libXi
xorg.libSM
xorg.libICE
gnome2.GConf
freetype
curlWithGnuTls
nspr

@ -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;;

@ -17,10 +17,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/
'';

@ -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 \

@ -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 = [

@ -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

@ -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 = ''

@ -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
];

@ -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 ];

@ -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 = [

@ -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 = [

@ -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 = ''

@ -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 {

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-nextest";
version = "0.9.14";
version = "0.9.16";
src = fetchFromGitHub {
owner = "nextest-rs";
repo = "nextest";
rev = "cargo-nextest-${version}";
sha256 = "sha256-g2kgMMmztURik/aSgP76vG+yI3vSqX9k836ACtLviFk=";
sha256 = "sha256-XxsJSuUyw2q2kXaITWbkka8R6fx0ikoRMtw0hiySJ+M=";
};
cargoSha256 = "sha256-1TJ96ilHX+LGkrMLXIK4rAebVxNQpRTYo9RnPE6BmmU=";
cargoSha256 = "sha256-aE/yKf2HIjN/yk3Euj2KaX4DPB4wFywAAHWkRQ1SWKw=";
cargoTestFlags = [ # TODO: investigate some more why these tests fail in nix
"--"

@ -28,6 +28,10 @@ perlPackages.buildPerlPackage {
patches = [ ./redhat-with-thr.patch ./dynaloader.patch ./no_bitvector.patch ];
# Workaround build failure on -fno-common toolchains:
# ld: iselect_browse.o:(.bss+0x2020): multiple definition of `Line'; iselect_main.o:(.bss+0x100000): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
hardeningDisable = [ "format" ];
postPatch = ''

@ -7,13 +7,13 @@
buildPythonApplication rec {
pname = "legendary-gl"; # Name in pypi
version = "0.20.25";
version = "0.20.26";
src = fetchFromGitHub {
owner = "derrod";
repo = "legendary";
rev = version;
sha256 = "07z5ffi7lnvs64pksy30fbfv2i11dkkycyh31vyc4y7fsn1vd0vf";
rev = "refs/tags/${version}";
sha256 = "sha256-NqAdS5PN7Qj/HdZ2quemb0xJQsD3Ox1a/TVXj3QMq9c=";
};
propagatedBuildInputs = [ requests ];

@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
patches = [ ./typespeed-config-in-home.patch ];
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: typespeed-typespeed.o:/build/typespeed-0.6.5/src/typespeed.h:69: multiple definition of
# `opt'; typespeed-file.o:/build/typespeed-0.6.5/src/typespeed.h:69: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
configureFlags = [ "--datadir=\${out}/share/" ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];

@ -14,6 +14,13 @@ stdenv.mkDerivation rec {
sha256 = "1drhh08cqqkwv1yz3z4ngkplr23pqqrdx6cp8c3isy320gy25cvb";
};
# Workaround build failure on -fno-common toolchains:
# ld: r_gl.h:52: multiple definition of `qglGenBuffers';
# r_gl.h:52: first defined here
# TODO: drop once release contains upstream fix:
# https://github.com/ufoai/ufoai/commit/8a3075fffdad294e
NIX_CFLAGS_COMPILE = "-fcommon";
preConfigure = ''tar xvf "${srcData}"'';
configureFlags = [ "--enable-release" "--enable-sse" ]

@ -25,6 +25,11 @@ stdenv.mkDerivation rec {
libpng
];
# Workaround build failure on -fno-common toolchains:
# ld: CMakeFiles/wswtv_server.dir/__/unix/unix_time.c.o:(.bss+0x8): multiple definition of
# `c_pointcontents'; CMakeFiles/wswtv_server.dir/__/null/ascript_null.c.o:(.bss+0x8): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
preConfigure = ''

@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec {
owner = "elastic";
repo = "beats";
rev = "v${version}";
sha256 = "sha256-9Jl5Xo1iKdOY9ZE5JXKSL4ee+NdsN3KCY2dDYuxlzPI=";
sha256 = "sha256-DE7XpzVBu9qL7fMXXYRYLdVXrr0WB0IL0KAG0Zc3TVo=";
};
vendorSha256 = "sha256-fiqCccS2IAnTzfPfUqY0Wy9uRUuiYNtiVvpAFZJOPVI=";
vendorSha256 = "sha256-TQrXUcLv7rFo3PP3bVx0wEC1WbtkJDsCm+/izHAxqBc=";
subPackages = [ package ];

@ -18,10 +18,10 @@ let
plat = elemAt info 1;
shas =
{
x86_64-linux = "1s16l95wc589cr69pfbgmkn9rkvxn6sd6jlbiqpm6p6iyxiaxd6c";
x86_64-darwin = "05h7pvq4pb816wgcymnfklp3w6sv54x6138v2infw5219dnk8pfs";
aarch64-linux = "0q4xnjzhlx1b2lkikca88qh9glfxaifsm419k2bxxlrfrx31zlkq";
aarch64-darwin = "067mb1dianwiarw8cz1va4g6zfhp9ls4s174xbpkxwsknvvyhgz6";
x86_64-linux = "7281b79f2bf7421c2d71ab4eecdfd517b86b6788d1651dad315198c564284ea9";
x86_64-darwin = "6d2343171a0d384910312220aae3512f45e3d3d900557b736c139b8363a008e4";
aarch64-linux = "3153820d53a454513b534765fef68ce1f61a2dd92d4dae7428a1220bb3ce8fe5";
aarch64-darwin = "e62af7486c1041d3f1648646671d5c665e1abffd696cd2a5d96c2a5aaabe38f8";
};
in
stdenv.mkDerivation rec {

@ -878,6 +878,14 @@ self: super:
xf86videoopenchrome = super.xf86videoopenchrome.overrideAttrs (attrs: {
buildInputs = attrs.buildInputs ++ [ self.libXv ];
patches = [
# Pull upstream fix for -fno-common toolchains.
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/freedesktop/openchrome-xf86-video-openchrome/commit/edb46574d4686c59e80569ba236d537097dcdd0e.patch";
sha256 = "0xqawg9zzwb7x5vaf3in60isbkl3zfjq0wcnfi45s3hiii943sxz";
})
];
});
xf86videoxgi = super.xf86videoxgi.overrideAttrs (attrs: {

@ -1,4 +1,4 @@
{lib, stdenv, fetchFromGitHub, libX11}:
{lib, stdenv, fetchFromGitHub, fetchpatch, libX11}:
stdenv.mkDerivation rec {
pname = "wayv";
version = "0.3";
@ -10,6 +10,16 @@ stdenv.mkDerivation rec {
sha256 = "046dvaq6na1fyxz5nrjg13aaz6ific9wbygck0dknqqfmmjrsv3b";
};
patches = [
# Pull patch pending upstream inclusion for -fno-common toolchain support:
# https://github.com/mikemb/wayV/pull/1
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/mikemb/wayV/commit/b927793e2a2c92ff1f97b9df9e58c26e73e72012.patch";
sha256 = "19i10966b0n710dic64p5ajsllkjnz16bp0crxfy9vv08hj1xygi";
})
];
buildInputs = [ libX11 ];
postInstall = ''

@ -1,4 +1,4 @@
{lib, stdenv, fetchFromBitbucket, libX11}:
{lib, stdenv, fetchFromBitbucket, fetchpatch, libX11}:
stdenv.mkDerivation rec {
pname = "xannotate";
version = "20150301";
@ -10,6 +10,16 @@ stdenv.mkDerivation rec {
sha256 = "02jy19if0rnbxvs6b0l5mi9ifvdj2qmv0pv278v9kfs0kvir68ik";
};
patches = [
# Pull patch pending upstream inclusion for -gno-common tollchains:
# https://github.com/blais/xannotate/pull/1
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/blais/xannotate/commit/ee637e2dee103d0e654865c2202ea1b3af2a20d6.patch";
sha256 = "1lw22d5qs1bwp53l332yl3yypfvwrbi750wp7yv90nfn3ia0xhni";
})
];
buildInputs = [ libX11 ];
meta = {
@ -17,6 +27,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2Plus ;
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.linux;
homepage = "https://bitbucket.org/blais/xannotate";
homepage = "https://github.com/blais/xannotate";
};
}

@ -4,6 +4,10 @@ stdenv.mkDerivation rec {
pname = "xbindkeys-config";
version = "0.1.3";
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10.
NIX_CFLAGS_COMPILE = "-fcommon";
nativeBuildInputs = [ pkg-config makeWrapper ];
buildInputs = [ gtk ];

@ -17,14 +17,14 @@ let
shas =
if enableUnfree
then {
x86_64-linux = "1vm53alq9q1qy2jcsjg9z339xrkac5r9qqpdafp53ny4zsv1n7vj";
x86_64-darwin = "0hhjyl04h3gd66rdk22272rj419br4v2i59lyrmaj6hmnsqbv968";
aarch64-linux = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
x86_64-linux = "698b6000788e123b647c988993f710c6d9bc44eb8c8e6f97d6b18a695a61f0a6";
x86_64-darwin = "35e50e05fba0240aa5b138bc1c81f67addaf557701f8df41c682b5bc708f7455";
aarch64-linux = "69694856fde11836eb1613bf3a2ba31fbdc933f58c8527b6180f6122c8bb528b";
}
else {
x86_64-linux = "1f3659vcgczm7v03q3fvsmp1ndp6wm3i7r2b2vbl4xq7hf9v7azk";
x86_64-darwin = "10zw9qc0lc0x9in0nkxc1aiazhyd69l8sya2ni46ivyyjwf0sqsn";
aarch64-linux = "1czhgmky2zf3mqykn5ww4257yfhd36mi4x6dq569ymly83pivf8v";
x86_64-linux = "3a2da2e63bc08ee1886db29c80103c669d3ed6960290b8b97d771232769f282e";
x86_64-darwin = "655ab873e16257827f884f67b66d62c4da40a895d06206faa435615ad0a56796";
aarch64-linux = "235cf57afb619801808d5fe1bff7e01a4a9b29f77723566e5371b5f3b2bf8fad";
};
this = stdenv.mkDerivation rec {
version = elk7Version;

@ -0,0 +1,37 @@
{ lib, stdenvNoCC, fetchurl, makeWrapper, jre } :
stdenvNoCC.mkDerivation rec {
pname = "panoply";
version = "5.0.6";
src = fetchurl {
url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
sha256 = "0nbr22sxfmk48ngk9gb1vcwv3fkd5m0v208xx6vl00nlnbh4kms4";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
jarbase=$out/share/panoply
mkdir -p $out/bin $jarbase/jars
sed -i "s:^SCRIPTDIR.*:SCRIPTDIR=$jarbase:" panoply.sh
cp panoply.sh $out/bin/panoply
cp -r jars $jarbase
wrapProgram "$out/bin/panoply" --prefix PATH : "${jre}/bin"
runHook postHook
'';
meta = with lib; {
description = "netCDF, HDF and GRIB Data Viewer";
homepage = "https://www.giss.nasa.gov/tools/panoply";
platforms = platforms.linux;
maintainers = [ maintainers.markuskowa ];
license = licenses.unfree; # Package does not state a license
};
}

@ -19,6 +19,11 @@ stdenv.mkDerivation {
sh autogen.sh
'';
# Workaround build failure on -fno-common toolchains:
# mipsel-unknown-linux-uclibc-ld: boothandler.o:(.bss+0x8): multiple definition of
# `start_addr'; main.o:(.bss+0x8): first defined here
NIX_CFLAGS_COMPILE_FOR_TARGET = "-fcommon";
configureFlags = lib.optionals (gccCross != null) [
"--enable-firmware"
"CROSS_COMPILE=${gccCross.targetPrefix}"

@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
sha256 = "0jchvgkkphhwp2z7vd4axxr9ns8b6vqc22b2z8a906qm8916wd8i";
};
# Apply upstream fix for -fno-common toolchains.
postPatch = ''
# TODO: remove the replace once upstream fix is released:
# https://sourceforge.net/p/urlget/uget2/ci/14890943c52e0a5cd2a87d8a1c51cbffebee7cf9/
substituteInPlace ui-gtk/UgtkBanner.h --replace "} banner;" "};"
'';
nativeBuildInputs = [
pkg-config
intltool

@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
sha256 = "0nl88y57a7gawfragj3viiigfkh5sgivfb4n0k89wzcjw278pj5g";
};
# Workaround build failure on -fno-common toolchains:
# ld: dns_resolv.o:(.bss+0x20): multiple definition of `system_info'; webalizer.o:(.bss+0x76e0): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
preConfigure =
''
substituteInPlace ./configure \
@ -25,7 +29,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Web server log file analysis program";
homepage = "http://www.webalizer.org";
homepage = "https://webalizer.net/";
platforms = platforms.unix;
license = licenses.gpl2;
};

@ -37,6 +37,11 @@ let
cp -v ${appimagekit_src}/lib/libappimage/src/patches/squashfuse_dlopen.[hc] .
'';
# Workaround build failure on -fno-common toolchains:
# ld: libsquashfuse_ll.a(libfuseprivate_la-fuseprivate.o):(.bss+0x8):
# multiple definition of `have_libloaded'; runtime.4.o:(.bss.have_libloaded+0x0): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
preConfigure = ''
sed -i "/PKG_CHECK_MODULES.*/,/,:./d" configure
sed -i "s/typedef off_t sqfs_off_t/typedef int64_t sqfs_off_t/g" common.h

@ -1,4 +1,4 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.0"
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.1"

@ -1,9 +1,9 @@
GIT
remote: https://github.com/rapid7/metasploit-framework
revision: 9c5461dc68eb99283540134cd9d9f3ce6659bd7c
ref: refs/tags/6.2.0
revision: 4acd1765f0d11144fd01b7812dd66a4c94efa610
ref: refs/tags/6.2.1
specs:
metasploit-framework (6.2.0)
metasploit-framework (6.2.1)
actionpack (~> 6.0)
activerecord (~> 6.0)
activesupport (~> 6.0)
@ -129,7 +129,7 @@ GEM
arel-helpers (2.14.0)
activerecord (>= 3.1.0, < 8)
aws-eventstream (1.2.0)
aws-partitions (1.594.0)
aws-partitions (1.595.0)
aws-sdk-core (3.131.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)

@ -15,13 +15,13 @@ let
};
in stdenv.mkDerivation rec {
pname = "metasploit-framework";
version = "6.2.0";
version = "6.2.1";
src = fetchFromGitHub {
owner = "rapid7";
repo = "metasploit-framework";
rev = version;
sha256 = "sha256-rVev08itscDnJjVrzmISm5X1HzXcF64hI/EEyHcFS4Q=";
sha256 = "sha256-0BskBkQjj3qvNtaTj4tR4BStVYvyiZ58IICPnP7yhBI=";
};
nativeBuildInputs = [ makeWrapper ];

@ -104,10 +104,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mxm4m2dh71b6rhcqag78j9iy3zz9yr6rw4zsw0qfxh3gld2vwiq";
sha256 = "0vgm7l4nyj23sif850mfsh170jbkhm7j34686ygc0nfyzzm90c08";
type = "gem";
};
version = "1.594.0";
version = "1.595.0";
};
aws-sdk-core = {
groups = ["default"];
@ -604,12 +604,12 @@
platforms = [];
source = {
fetchSubmodules = false;
rev = "9c5461dc68eb99283540134cd9d9f3ce6659bd7c";
sha256 = "112b0mvwh17i4chsw5yw6lgzb5cv29icwsrm4vkw1cddr39symxd";
rev = "4acd1765f0d11144fd01b7812dd66a4c94efa610";
sha256 = "04l4ybz9r3w041y9x2gjidass570a65qz4yn6sppm3r38h3286yh";
type = "git";
url = "https://github.com/rapid7/metasploit-framework";
};
version = "6.2.0";
version = "6.2.1";
};
metasploit-model = {
groups = ["default"];

@ -4,12 +4,12 @@
mkDerivation rec {
pname = "qdigidoc";
version = "4.2.9";
version = "4.2.11";
src = fetchurl {
url =
"https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
sha256 = "1rhd3mvj6ld16zgfscj81f1vhs2nvifsizky509l1av7dsjfbbzr";
"https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4_${version}.110-1804.tar.xz";
sha256 = "sha256-Sg6lFZeIJn3T/suDc5Z/kNqBf/sIV9c6EJJ0Nr0dwTM=";
};
tsl = fetchurl {

@ -27,6 +27,14 @@ gccStdenv.mkDerivation rec {
cudatoolkit
];
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: CpuAes.o:/build/source/src/Crypto/CpuAes.h:1233: multiple definition of
# `t_rc'; CpuCore.o:/build/source/src/Crypto/CpuAes.h:1237: first defined here
# TODO: remove on upstream fixes it:
# https://gitlab.com/kalilinux/packages/truecrack/-/issues/1
NIX_CFLAGS_COMPILE = "-fcommon";
installFlags = [ "prefix=$(out)" ];
enableParallelBuilding = true;

@ -1,7 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (6.1.4.1)
activesupport (6.1.6)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@ -9,10 +9,10 @@ GEM
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
cms_scanner (0.13.6)
ethon (~> 0.14.0)
cms_scanner (0.13.8)
ethon (>= 0.14, < 0.16)
get_process_mem (~> 0.2.5)
nokogiri (>= 1.11.4, < 1.13.0)
nokogiri (>= 1.11.4, < 1.14.0)
opt_parse_validator (~> 1.9.5)
public_suffix (~> 4.0.3)
ruby-progressbar (>= 1.10, < 1.12)
@ -20,21 +20,23 @@ GEM
typhoeus (>= 1.3, < 1.5)
xmlrpc (~> 0.3)
yajl-ruby (~> 1.4.1)
concurrent-ruby (1.1.9)
ethon (0.14.0)
concurrent-ruby (1.1.10)
ethon (0.15.0)
ffi (>= 1.15.0)
ffi (1.15.4)
ffi (1.15.5)
get_process_mem (0.2.7)
ffi (~> 1.0)
i18n (1.8.11)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
minitest (5.14.4)
nokogiri (1.12.5-x86_64-linux)
mini_portile2 (2.8.0)
minitest (5.15.0)
nokogiri (1.13.6)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
opt_parse_validator (1.9.5)
activesupport (>= 5.2, < 6.2.0)
addressable (>= 2.5, < 2.9)
public_suffix (4.0.6)
public_suffix (4.0.7)
racc (1.6.0)
ruby-progressbar (1.11.0)
sys-proctable (1.2.6)
@ -44,18 +46,18 @@ GEM
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
webrick (1.7.0)
wpscan (3.8.20)
cms_scanner (~> 0.13.6)
wpscan (3.8.22)
cms_scanner (~> 0.13.8)
xmlrpc (0.3.2)
webrick
yajl-ruby (1.4.1)
zeitwerk (2.5.1)
yajl-ruby (1.4.3)
zeitwerk (2.5.4)
PLATFORMS
x86_64-linux
ruby
DEPENDENCIES
wpscan
BUNDLED WITH
2.2.24
2.3.9

@ -5,10 +5,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
sha256 = "08wzpwgdm03vzb8gqr8bvfdarb89g5ah0skvwqk6qv87p55xqkyw";
type = "gem";
};
version = "6.1.4.1";
version = "6.1.6";
};
addressable = {
dependencies = ["public_suffix"];
@ -27,20 +27,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kpp3598xs79irb9g2wkcxjwlszj37sb7lp3xmvf6s5s40p0ccwf";
sha256 = "15d7djrrkrcwznglgkr4y80jbsbxaf071qhjnn4i1c4n7nszwwfj";
type = "gem";
};
version = "0.13.6";
version = "0.13.8";
};
concurrent-ruby = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
type = "gem";
};
version = "1.1.9";
version = "1.1.10";
};
ethon = {
dependencies = ["ffi"];
@ -48,20 +48,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh";
sha256 = "0kd7c61f28f810fgxg480j7457nlvqarza9c2ra0zhav0dd80288";
type = "gem";
};
version = "0.14.0";
version = "0.15.0";
};
ffi = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
type = "gem";
};
version = "1.15.4";
version = "1.15.5";
};
get_process_mem = {
dependencies = ["ffi"];
@ -80,30 +80,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
type = "gem";
};
version = "1.8.11";
version = "1.10.0";
};
mini_portile2 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
type = "gem";
};
version = "2.6.1";
version = "2.8.0";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
type = "gem";
};
version = "5.14.4";
version = "5.15.0";
};
nokogiri = {
dependencies = ["mini_portile2" "racc"];
@ -111,10 +111,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
sha256 = "11w59ga9324yx6339dgsflz3dsqq2mky1qqdwcg6wi5s1bf2yldi";
type = "gem";
};
version = "1.12.5";
version = "1.13.6";
};
opt_parse_validator = {
dependencies = ["activesupport" "addressable"];
@ -132,10 +132,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
type = "gem";
};
version = "4.0.6";
version = "4.0.7";
};
racc = {
groups = ["default"];
@ -206,10 +206,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "07mzbds1j0a1y6jw4swgc4d7kcflkycdk3ivdw3lxaqaqvbfs35p";
sha256 = "0c89shx0qv2yanyn3k6z3sjszq12vak27j33akz0lkgpfpk2sngi";
type = "gem";
};
version = "3.8.20";
version = "3.8.22";
};
xmlrpc = {
dependencies = ["webrick"];
@ -227,19 +227,19 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf";
sha256 = "1lni4jbyrlph7sz8y49q84pb0sbj82lgwvnjnsiv01xf26f4v5wc";
type = "gem";
};
version = "1.4.1";
version = "1.4.3";
};
zeitwerk = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
type = "gem";
};
version = "2.5.1";
version = "2.5.4";
};
}

@ -6,6 +6,11 @@ set -e
cd "$(dirname "${BASH_SOURCE[0]}")"
rm -f Gemfile.lock Gemfile.lock
# Otherwise nokogiri will fail to build.
# https://github.com/nix-community/bundix/issues/88
bundler config set --local force_ruby_platform true
bundler lock
BUNDLE_GEMFILE=Gemfile bundler lock --lockfile=Gemfile.lock
bundix --gemfile=Gemfile --lockfile=Gemfile.lock --gemset=gemset.nix

@ -1,44 +1,39 @@
{ lib, stdenv, fetchurl }:
{ lib, stdenv, fetchFromGitLab }:
let
# These settings are found in the Makefile, but there seems to be no
# way to select one ore the other setting other than editing the file
# manually, so we have to duplicate the know how here.
systemFlags = lib.optionalString stdenv.isDarwin ''
CFLAGS="-O2 -Wall -fomit-frame-pointer"
CFLAGS="-O2 -Wall -fomit-frame-pointer -no-cpp-precomp"
LDFLAGS=
EXTRA_OBJS=strverscmp.o
'' + lib.optionalString stdenv.isCygwin ''
CFLAGS="-O2 -Wall -fomit-frame-pointer -DCYGWIN"
CFLAGS="-O2 -Wall -fomit-frame-pointer"
LDFLAGS=-s
TREE_DEST=tree.exe
EXTRA_OBJS=strverscmp.o
'' + lib.optionalString (stdenv.isFreeBSD || stdenv.isOpenBSD) ''
CFLAGS="-O2 -Wall -fomit-frame-pointer"
LDFLAGS=-s
EXTRA_OBJS=strverscmp.o
''; # use linux flags by default
in
stdenv.mkDerivation rec {
pname = "tree";
version = "1.8.0";
version = "2.0.2";
src = fetchurl {
url = "http://mama.indstate.edu/users/ice/tree/src/tree-${version}.tgz";
sha256 = "1hmpz6k0mr6salv0nprvm1g0rdjva1kx03bdf1scw8a38d5mspbi";
src = fetchFromGitLab {
owner = "OldManProgrammer";
repo = "unix-tree";
rev = version;
sha256 = "sha256-ex4fD8dZJGplL3oMaSokMBn6PRJ8/s83CnWQaAjBcao=";
};
preConfigure = ''
sed -i Makefile -e 's|^OBJS=|OBJS=$(EXTRA_OBJS) |'
makeFlagsArray+=(
${systemFlags}
"CC=$CC"
)
makeFlagsArray+=(${systemFlags})
'';
makeFlags = [
"prefix=${placeholder "out"}"
"MANDIR=${placeholder "out"}/share/man/man1"
"CC=${stdenv.cc.targetPrefix}cc"
"PREFIX=${placeholder "out"}"
];
meta = with lib; {

@ -19,8 +19,16 @@ stdenv.mkDerivation rec {
patches = [ ./dont_static_link.patch ];
# fix build with gcc9
NIX_CFLAGS_COMPILE = [ "-Wno-error" ];
NIX_CFLAGS_COMPILE = [
# fix build with gcc9
"-Wno-error"
# workaround build failure on -fno-common toolchains:
# ld: /build/source/build/futility/vb2_helper.o:(.bss+0x0): multiple definition of
# `vboot_version'; /build/source/build/futility/futility.o:(.bss+0x0): first defined here
# TODO: remove it when next release contains:
# https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/df4d2000a22db673a788b8e57e8e7c0cc3cee777
"-fcommon"
];
postPatch = ''
substituteInPlace Makefile \

@ -5,9 +5,7 @@
ocamlPackages.buildDunePackage rec {
pname = "soupault";
version = "4.0.0";
useDune2 = true;
version = "4.0.1";
minimalOCamlVersion = "4.08";
@ -16,7 +14,7 @@ ocamlPackages.buildDunePackage rec {
owner = "PataphysicalSociety";
repo = pname;
rev = version;
sha256 = "sha256-txNKAZMd3LReFoAtf6iaoDF+Ku3IUNDzBWUqGC2ePKw=";
sha256 = "sha256-Ojsup/BgXsqhRUsU6JevvuLnMtVs2Kd5kTeDvVO5BOk=";
};
buildInputs = with ocamlPackages; [
@ -42,6 +40,7 @@ ocamlPackages.buildDunePackage rec {
meta = {
description = "A tool that helps you create and manage static websites";
homepage = "https://soupault.app/";
changelog = "https://codeberg.org/PataphysicalSociety/soupault/src/branch/main/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ toastal ];
};

@ -20,6 +20,11 @@ stdenv.mkDerivation (rec {
tar xf "$NIX_BUILD_TOP/$name/xenstore-sources.tar.bz2"
'';
# Workaround build failure on -fno-common toolchains:
# ld: utils.o:xenstore/utils.h:27:
# multiple definition of `xprintf'; xenstored_core.o:xenstore/utils.h:27: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
buildPhase = ''
export CC=gcc
export CFLAGS='-Wall -Wstrict-prototypes -Wno-unused-local-typedefs -Wno-sizeof-pointer-memaccess'

@ -5574,7 +5574,7 @@ with pkgs;
# The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
# When updating make sure to update all plugins or they will break!
elk6Version = "6.8.21";
elk7Version = "7.16.1";
elk7Version = "7.17.4";
elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix {
util-linux = util-linuxMinimal;
@ -8723,6 +8723,8 @@ with pkgs;
pandoc-secnos = python3Packages.callPackage ../tools/misc/pandoc-secnos { };
pandoc-tablenos = python3Packages.callPackage ../tools/misc/pandoc-tablenos { };
panoply = callPackage ../tools/misc/panoply { };
patray = callPackage ../tools/audio/patray { };
pathvector = callPackage ../tools/networking/pathvector { };

@ -13436,6 +13436,10 @@ let
url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
sha256 = "1yjml5z1qdn258qh6329v7vib2gyx6q2np0s5ybci0rhmz6z4hli";
};
# Workaround build failure on -fno-common toolchains:
# ld: libPARI/libPARI.a(compat.o):(.bss+0x8): multiple definition of
# `overflow'; Pari.o:(.bss+0x80): first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
makeMakerFlags = "pari_tgz=pari-${pariversion}.tgz";
src = fetchurl {

Loading…
Cancel
Save