forked from mirrors/nixpkgs
Merge master into haskell-updates
This commit is contained in:
commit
ca1481350b
|
@ -557,6 +557,17 @@
|
|||
work.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>services.paperless-ng</literal> was renamed to
|
||||
<literal>services.paperless</literal>. Accordingly, the
|
||||
<literal>paperless-ng-manage</literal> script (located in
|
||||
<literal>dataDir</literal>) was renamed to
|
||||
<literal>paperless-manage</literal>.
|
||||
<literal>services.paperless</literal> now uses
|
||||
<literal>paperless-ngx</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>matrix-synapse</literal> service
|
||||
|
|
|
@ -184,6 +184,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- `services.ipfs.extraFlags` is now escaped with `utils.escapeSystemdExecArgs`. If you rely on systemd interpolating `extraFlags` in the service `ExecStart`, this will no longer work.
|
||||
|
||||
- `services.paperless-ng` was renamed to `services.paperless`. Accordingly, the `paperless-ng-manage` script (located in `dataDir`) was renamed to `paperless-manage`. `services.paperless` now uses `paperless-ngx`.
|
||||
|
||||
- The `matrix-synapse` service (`services.matrix-synapse`) has been converted to use the `settings` option defined in RFC42.
|
||||
This means that options that are part of your `homeserver.yaml` configuration, and that were specified at the top-level of the
|
||||
module (`services.matrix-synapse`) now need to be moved into `services.matrix-synapse.settings`. And while not all options you
|
||||
|
|
|
@ -597,7 +597,7 @@
|
|||
./services/misc/osrm.nix
|
||||
./services/misc/owncast.nix
|
||||
./services/misc/packagekit.nix
|
||||
./services/misc/paperless-ng.nix
|
||||
./services/misc/paperless.nix
|
||||
./services/misc/parsoid.nix
|
||||
./services/misc/plex.nix
|
||||
./services/misc/plikd.nix
|
||||
|
|
|
@ -29,10 +29,10 @@ let
|
|||
'';
|
||||
|
||||
# Perform substitutions in all udev rules files.
|
||||
udevRules = pkgs.runCommand "udev-rules"
|
||||
udevRulesFor = { name, udevPackages, udevPath, udev, systemd, binPackages, initrdBin ? null }: pkgs.runCommand name
|
||||
{ preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
packages = unique (map toString cfg.packages);
|
||||
packages = unique (map toString udevPackages);
|
||||
}
|
||||
''
|
||||
mkdir -p $out
|
||||
|
@ -60,6 +60,9 @@ let
|
|||
--replace \"/bin/mount \"${pkgs.util-linux}/bin/mount \
|
||||
--replace /usr/bin/readlink ${pkgs.coreutils}/bin/readlink \
|
||||
--replace /usr/bin/basename ${pkgs.coreutils}/bin/basename
|
||||
${optionalString (initrdBin != null) ''
|
||||
substituteInPlace $i --replace '/run/current-system/systemd' "${removeSuffix "/bin" initrdBin}"
|
||||
''}
|
||||
done
|
||||
|
||||
echo -n "Checking that all programs called by relative paths in udev rules exist in ${udev}/lib/udev... "
|
||||
|
@ -84,8 +87,9 @@ let
|
|||
for i in $import_progs $run_progs; do
|
||||
# if the path refers to /run/current-system/systemd, replace with config.systemd.package
|
||||
if [[ $i == /run/current-system/systemd* ]]; then
|
||||
i="${config.systemd.package}/''${i#/run/current-system/systemd/}"
|
||||
i="${systemd}/''${i#/run/current-system/systemd/}"
|
||||
fi
|
||||
|
||||
if [[ ! -x $i ]]; then
|
||||
echo "FAIL"
|
||||
echo "$i is called in udev rules but is not executable or does not exist"
|
||||
|
@ -102,7 +106,7 @@ let
|
|||
echo "Consider fixing the following udev rules:"
|
||||
echo "$filesToFixup" | while read localFile; do
|
||||
remoteFile="origin unknown"
|
||||
for i in ${toString cfg.packages}; do
|
||||
for i in ${toString binPackages}; do
|
||||
for j in "$i"/*/udev/rules.d/*; do
|
||||
[ -e "$out/$(basename "$j")" ] || continue
|
||||
[ "$(basename "$j")" = "$(basename "$localFile")" ] || continue
|
||||
|
@ -125,7 +129,7 @@ let
|
|||
${optionalString (!config.boot.hardwareScan) ''
|
||||
ln -s /dev/null $out/80-drivers.rules
|
||||
''}
|
||||
''; # */
|
||||
'';
|
||||
|
||||
hwdbBin = pkgs.runCommand "hwdb.bin"
|
||||
{ preferLocalBuild = true;
|
||||
|
@ -201,20 +205,6 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
initrdRules = mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
|
||||
'';
|
||||
type = types.lines;
|
||||
description = ''
|
||||
<command>udev</command> rules to include in the initrd
|
||||
<emphasis>only</emphasis>. They'll be written into file
|
||||
<filename>99-local.rules</filename>. Thus they are read and applied
|
||||
after the essential initrd rules.
|
||||
'';
|
||||
};
|
||||
|
||||
extraRules = mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
|
@ -282,6 +272,52 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
boot.initrd.services.udev = {
|
||||
|
||||
packages = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [];
|
||||
visible = false;
|
||||
description = ''
|
||||
<emphasis>This will only be used when systemd is used in stage 1.</emphasis>
|
||||
|
||||
List of packages containing <command>udev</command> rules that will be copied to stage 1.
|
||||
All files found in
|
||||
<filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
|
||||
<filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
|
||||
will be included.
|
||||
'';
|
||||
};
|
||||
|
||||
binPackages = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [];
|
||||
visible = false;
|
||||
description = ''
|
||||
<emphasis>This will only be used when systemd is used in stage 1.</emphasis>
|
||||
|
||||
Packages to search for binaries that are referenced by the udev rules in stage 1.
|
||||
This list always contains /bin of the initrd.
|
||||
'';
|
||||
apply = map getBin;
|
||||
};
|
||||
|
||||
rules = mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
|
||||
'';
|
||||
type = types.lines;
|
||||
description = ''
|
||||
<command>udev</command> rules to include in the initrd
|
||||
<emphasis>only</emphasis>. They'll be written into file
|
||||
<filename>99-local.rules</filename>. Thus they are read and applied
|
||||
after the essential initrd rules.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -297,16 +333,54 @@ in
|
|||
|
||||
boot.kernelParams = mkIf (!config.networking.usePredictableInterfaceNames) [ "net.ifnames=0" ];
|
||||
|
||||
boot.initrd.extraUdevRulesCommands = optionalString (cfg.initrdRules != "")
|
||||
boot.initrd.extraUdevRulesCommands = optionalString (!config.boot.initrd.systemd.enable && config.boot.initrd.services.udev.rules != "")
|
||||
''
|
||||
cat <<'EOF' > $out/99-local.rules
|
||||
${cfg.initrdRules}
|
||||
${config.boot.initrd.services.udev.rules}
|
||||
EOF
|
||||
'';
|
||||
|
||||
boot.initrd.systemd.additionalUpstreamUnits = [
|
||||
# TODO: "initrd-udevadm-cleanup-db.service" is commented out because of https://github.com/systemd/systemd/issues/12953
|
||||
"systemd-udevd-control.socket"
|
||||
"systemd-udevd-kernel.socket"
|
||||
"systemd-udevd.service"
|
||||
"systemd-udev-settle.service"
|
||||
"systemd-udev-trigger.service"
|
||||
];
|
||||
boot.initrd.systemd.storePaths = [
|
||||
"${config.boot.initrd.systemd.package}/lib/systemd/systemd-udevd"
|
||||
"${config.boot.initrd.systemd.package}/lib/udev"
|
||||
] ++ map (x: "${x}/bin") config.boot.initrd.services.udev.binPackages;
|
||||
|
||||
# Generate the udev rules for the initrd
|
||||
boot.initrd.systemd.contents = {
|
||||
"/etc/udev/rules.d".source = udevRulesFor {
|
||||
name = "initrd-udev-rules";
|
||||
initrdBin = config.boot.initrd.systemd.contents."/bin".source;
|
||||
udevPackages = config.boot.initrd.services.udev.packages;
|
||||
udevPath = config.boot.initrd.systemd.contents."/bin".source;
|
||||
udev = config.boot.initrd.systemd.package;
|
||||
systemd = config.boot.initrd.systemd.package;
|
||||
binPackages = config.boot.initrd.services.udev.binPackages ++ [ config.boot.initrd.systemd.contents."/bin".source ];
|
||||
};
|
||||
};
|
||||
# Insert custom rules
|
||||
boot.initrd.services.udev.packages = mkIf (config.boot.initrd.services.udev.rules != "") (pkgs.writeTextFile {
|
||||
name = "initrd-udev-rules";
|
||||
destination = "/etc/udev/rules.d/99-local.rules";
|
||||
text = config.boot.initrd.services.udev.rules;
|
||||
});
|
||||
|
||||
environment.etc =
|
||||
{
|
||||
"udev/rules.d".source = udevRules;
|
||||
"udev/rules.d".source = udevRulesFor {
|
||||
name = "udev-rules";
|
||||
udevPackages = cfg.packages;
|
||||
systemd = config.systemd.package;
|
||||
binPackages = cfg.packages;
|
||||
inherit udevPath udev;
|
||||
};
|
||||
"udev/hwdb.bin".source = hwdbBin;
|
||||
};
|
||||
|
||||
|
@ -337,4 +411,8 @@ in
|
|||
};
|
||||
|
||||
};
|
||||
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "udev" "initrdRules" ] [ "boot" "initrd" "services" "udev" "rules" ])
|
||||
];
|
||||
}
|
||||
|
|
|
@ -192,7 +192,6 @@ in {
|
|||
log_dir = "/var/log/mailman";
|
||||
lock_dir = "$var_dir/lock";
|
||||
etc_dir = "/etc";
|
||||
ext_dir = "$etc_dir/mailman.d";
|
||||
pid_file = "/run/mailman/master.pid";
|
||||
};
|
||||
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.paperless-ng;
|
||||
cfg = config.services.paperless;
|
||||
|
||||
defaultUser = "paperless";
|
||||
|
||||
hasCustomRedis = hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
|
||||
# Don't start a redis instance if the user sets a custom redis connection
|
||||
enableRedis = !hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
|
||||
redisServer = config.services.redis.servers.paperless;
|
||||
|
||||
env = {
|
||||
PAPERLESS_DATA_DIR = cfg.dataDir;
|
||||
|
@ -15,15 +17,15 @@ let
|
|||
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
|
||||
} // (
|
||||
lib.mapAttrs (_: toString) cfg.extraConfig
|
||||
) // (optionalAttrs (!hasCustomRedis) {
|
||||
PAPERLESS_REDIS = "unix://${config.services.redis.servers.paperless-ng.unixSocket}";
|
||||
) // (optionalAttrs enableRedis {
|
||||
PAPERLESS_REDIS = "unix://${redisServer.unixSocket}";
|
||||
});
|
||||
|
||||
manage = let
|
||||
setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
|
||||
in pkgs.writeShellScript "manage" ''
|
||||
${setupEnv}
|
||||
exec ${cfg.package}/bin/paperless-ng "$@"
|
||||
exec ${cfg.package}/bin/paperless-ngx "$@"
|
||||
'';
|
||||
|
||||
# Secure the services
|
||||
|
@ -36,7 +38,7 @@ let
|
|||
"-/etc/hosts"
|
||||
"-/etc/localtime"
|
||||
"-/run/postgresql"
|
||||
] ++ (optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.unixSocket);
|
||||
] ++ (optional enableRedis redisServer.unixSocket);
|
||||
BindPaths = [
|
||||
cfg.consumptionDir
|
||||
cfg.dataDir
|
||||
|
@ -53,7 +55,6 @@ let
|
|||
PrivateNetwork = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
# Breaks if the home dir of the user is in /home
|
||||
# Also does not add much value in combination with the TemporaryFileSystem.
|
||||
|
@ -66,11 +67,15 @@ let
|
|||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
# Don't restrict ProcSubset because django-q requires read access to /proc/stat
|
||||
# to query CPU and memory information.
|
||||
# Note that /proc only contains processes of user `paperless`, so this is safe.
|
||||
# ProcSubset = "pid";
|
||||
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SupplementaryGroups = optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.user;
|
||||
SupplementaryGroups = optional enableRedis redisServer.user;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ];
|
||||
# Does not work well with the temporary root
|
||||
|
@ -81,26 +86,22 @@ in
|
|||
meta.maintainers = with maintainers; [ earvstedt Flakebi ];
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "services" "paperless"] ''
|
||||
The paperless module has been removed as the upstream project died.
|
||||
Users should migrate to the paperless-ng module (services.paperless-ng).
|
||||
More information can be found in the NixOS 21.11 release notes.
|
||||
'')
|
||||
(mkRenamedOptionModule [ "services" "paperless-ng" ] [ "services" "paperless" ])
|
||||
];
|
||||
|
||||
options.services.paperless-ng = {
|
||||
options.services.paperless = {
|
||||
enable = mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable Paperless-ng.
|
||||
Enable Paperless.
|
||||
|
||||
When started, the Paperless database is automatically created if it doesn't
|
||||
exist and updated if the Paperless package has changed.
|
||||
Both tasks are achieved by running a Django migration.
|
||||
|
||||
A script to manage the Paperless instance (by wrapping Django's manage.py) is linked to
|
||||
<literal>''${dataDir}/paperless-ng-manage</literal>.
|
||||
<literal>''${dataDir}/paperless-manage</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -133,13 +134,13 @@ in
|
|||
passwordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/paperless-ng-password";
|
||||
example = "/run/keys/paperless-password";
|
||||
description = ''
|
||||
A file containing the superuser password.
|
||||
|
||||
A superuser is required to access the web interface.
|
||||
If unset, you can create a superuser manually by running
|
||||
<literal>''${dataDir}/paperless-ng-manage createsuperuser</literal>.
|
||||
<literal>''${dataDir}/paperless-manage createsuperuser</literal>.
|
||||
|
||||
The default superuser name is <literal>admin</literal>. To change it, set
|
||||
option <option>extraConfig.PAPERLESS_ADMIN_USER</option>.
|
||||
|
@ -168,9 +169,9 @@ in
|
|||
type = types.attrs;
|
||||
default = {};
|
||||
description = ''
|
||||
Extra paperless-ng config options.
|
||||
Extra paperless config options.
|
||||
|
||||
See <link xlink:href="https://paperless-ng.readthedocs.io/en/latest/configuration.html">the documentation</link>
|
||||
See <link xlink:href="https://paperless-ngx.readthedocs.io/en/latest/configuration.html">the documentation</link>
|
||||
for available options.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
|
@ -188,15 +189,14 @@ in
|
|||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.paperless-ng;
|
||||
defaultText = literalExpression "pkgs.paperless-ng";
|
||||
default = pkgs.paperless-ngx;
|
||||
defaultText = literalExpression "pkgs.paperless-ngx";
|
||||
description = "The Paperless package to use.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Enable redis if no special url is set
|
||||
services.redis.servers.paperless-ng.enable = mkIf (!hasCustomRedis) true;
|
||||
services.redis.servers.paperless.enable = mkIf enableRedis true;
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
|
||||
|
@ -208,11 +208,11 @@ in
|
|||
)
|
||||
];
|
||||
|
||||
systemd.services.paperless-ng-server = {
|
||||
description = "Paperless document server";
|
||||
systemd.services.paperless-scheduler = {
|
||||
description = "Paperless scheduler";
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
User = cfg.user;
|
||||
ExecStart = "${cfg.package}/bin/paperless-ng qcluster";
|
||||
ExecStart = "${cfg.package}/bin/paperless-ngx qcluster";
|
||||
Restart = "on-failure";
|
||||
# The `mbind` syscall is needed for running the classifier.
|
||||
SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
|
||||
|
@ -221,15 +221,15 @@ in
|
|||
};
|
||||
environment = env;
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "paperless-ng-consumer.service" "paperless-ng-web.service" ];
|
||||
wants = [ "paperless-consumer.service" "paperless-web.service" ];
|
||||
|
||||
preStart = ''
|
||||
ln -sf ${manage} ${cfg.dataDir}/paperless-ng-manage
|
||||
ln -sf ${manage} ${cfg.dataDir}/paperless-manage
|
||||
|
||||
# Auto-migrate on first run or if the package has changed
|
||||
versionFile="${cfg.dataDir}/src-version"
|
||||
if [[ $(cat "$versionFile" 2>/dev/null) != ${cfg.package} ]]; then
|
||||
${cfg.package}/bin/paperless-ng migrate
|
||||
${cfg.package}/bin/paperless-ngx migrate
|
||||
echo ${cfg.package} > "$versionFile"
|
||||
fi
|
||||
''
|
||||
|
@ -240,20 +240,18 @@ in
|
|||
superuserStateFile="${cfg.dataDir}/superuser-state"
|
||||
|
||||
if [[ $(cat "$superuserStateFile" 2>/dev/null) != $superuserState ]]; then
|
||||
${cfg.package}/bin/paperless-ng manage_superuser
|
||||
${cfg.package}/bin/paperless-ngx manage_superuser
|
||||
echo "$superuserState" > "$superuserStateFile"
|
||||
fi
|
||||
'';
|
||||
} // optionalAttrs (!hasCustomRedis) {
|
||||
after = [ "redis-paperless-ng.service" ];
|
||||
} // optionalAttrs enableRedis {
|
||||
after = [ "redis-paperless.service" ];
|
||||
};
|
||||
|
||||
# Password copying can't be implemented as a privileged preStart script
|
||||
# in 'paperless-ng-server' because 'defaultServiceConfig' limits the filesystem
|
||||
# paths accessible by the service.
|
||||
systemd.services.paperless-ng-copy-password = mkIf (cfg.passwordFile != null) {
|
||||
requiredBy = [ "paperless-ng-server.service" ];
|
||||
before = [ "paperless-ng-server.service" ];
|
||||
# Reading the user-provided password file requires root access
|
||||
systemd.services.paperless-copy-password = mkIf (cfg.passwordFile != null) {
|
||||
requiredBy = [ "paperless-scheduler.service" ];
|
||||
before = [ "paperless-scheduler.service" ];
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.coreutils}/bin/install --mode 600 --owner '${cfg.user}' --compare \
|
||||
|
@ -263,27 +261,27 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
systemd.services.paperless-ng-consumer = {
|
||||
systemd.services.paperless-consumer = {
|
||||
description = "Paperless document consumer";
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
User = cfg.user;
|
||||
ExecStart = "${cfg.package}/bin/paperless-ng document_consumer";
|
||||
ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
environment = env;
|
||||
# Bind to `paperless-ng-server` so that the consumer never runs
|
||||
# Bind to `paperless-scheduler` so that the consumer never runs
|
||||
# during migrations
|
||||
bindsTo = [ "paperless-ng-server.service" ];
|
||||
after = [ "paperless-ng-server.service" ];
|
||||
bindsTo = [ "paperless-scheduler.service" ];
|
||||
after = [ "paperless-scheduler.service" ];
|
||||
};
|
||||
|
||||
systemd.services.paperless-ng-web = {
|
||||
systemd.services.paperless-web = {
|
||||
description = "Paperless web server";
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
User = cfg.user;
|
||||
ExecStart = ''
|
||||
${pkgs.python3Packages.gunicorn}/bin/gunicorn \
|
||||
-c ${cfg.package}/lib/paperless-ng/gunicorn.conf.py paperless.asgi:application
|
||||
-c ${cfg.package}/lib/paperless-ngx/gunicorn.conf.py paperless.asgi:application
|
||||
'';
|
||||
Restart = "on-failure";
|
||||
|
||||
|
@ -296,15 +294,15 @@ in
|
|||
};
|
||||
environment = env // {
|
||||
PATH = mkForce cfg.package.path;
|
||||
PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ng/src";
|
||||
PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ngx/src";
|
||||
};
|
||||
# Allow the web interface to access the private /tmp directory of the server.
|
||||
# This is required to support uploading files via the web interface.
|
||||
unitConfig.JoinsNamespaceOf = "paperless-ng-server.service";
|
||||
# Bind to `paperless-ng-server` so that the web server never runs
|
||||
unitConfig.JoinsNamespaceOf = "paperless-scheduler.service";
|
||||
# Bind to `paperless-scheduler` so that the web server never runs
|
||||
# during migrations
|
||||
bindsTo = [ "paperless-ng-server.service" ];
|
||||
after = [ "paperless-ng-server.service" ];
|
||||
bindsTo = [ "paperless-scheduler.service" ];
|
||||
after = [ "paperless-scheduler.service" ];
|
||||
};
|
||||
|
||||
users = optionalAttrs (cfg.user == defaultUser) {
|
|
@ -34,7 +34,6 @@ let
|
|||
"initrd-switch-root.service"
|
||||
"initrd-switch-root.target"
|
||||
"initrd.target"
|
||||
"initrd-udevadm-cleanup-db.service"
|
||||
"kexec.target"
|
||||
"kmod-static-nodes.service"
|
||||
"local-fs-pre.target"
|
||||
|
@ -71,12 +70,6 @@ let
|
|||
"systemd-sysctl.service"
|
||||
"systemd-tmpfiles-setup-dev.service"
|
||||
"systemd-tmpfiles-setup.service"
|
||||
"systemd-udevd-control.socket"
|
||||
"systemd-udevd-kernel.socket"
|
||||
"systemd-udevd.service"
|
||||
"systemd-udev-settle.service"
|
||||
"systemd-udev-trigger.service"
|
||||
"systemd-vconsole-setup.service"
|
||||
"timers.target"
|
||||
"umount.target"
|
||||
|
||||
|
@ -385,6 +378,11 @@ in {
|
|||
|
||||
"/etc/sysctl.d/nixos.conf".text = "kernel.modprobe = /sbin/modprobe";
|
||||
"/etc/modprobe.d/systemd.conf".source = "${cfg.package}/lib/modprobe.d/systemd.conf";
|
||||
"/etc/modprobe.d/ubuntu.conf".source = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" { } ''
|
||||
${pkgs.buildPackages.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
|
||||
'';
|
||||
"/etc/modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases;
|
||||
|
||||
};
|
||||
|
||||
storePaths = [
|
||||
|
@ -400,12 +398,10 @@ in {
|
|||
"${cfg.package}/lib/systemd/systemd-shutdown"
|
||||
"${cfg.package}/lib/systemd/systemd-sulogin-shell"
|
||||
"${cfg.package}/lib/systemd/systemd-sysctl"
|
||||
"${cfg.package}/lib/systemd/systemd-udevd"
|
||||
"${cfg.package}/lib/systemd/systemd-vconsole-setup"
|
||||
|
||||
# additional systemd directories
|
||||
"${cfg.package}/lib/systemd/system-generators"
|
||||
"${cfg.package}/lib/udev"
|
||||
|
||||
# utilities needed by systemd
|
||||
"${cfg.package.util-linux}/bin/mount"
|
||||
|
|
|
@ -402,7 +402,7 @@ in
|
|||
pam-ussh = handleTest ./pam/pam-ussh.nix {};
|
||||
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
|
||||
pantheon = handleTest ./pantheon.nix {};
|
||||
paperless-ng = handleTest ./paperless-ng.nix {};
|
||||
paperless = handleTest ./paperless.nix {};
|
||||
parsedmarc = handleTest ./parsedmarc {};
|
||||
pdns-recursor = handleTest ./pdns-recursor.nix {};
|
||||
peerflix = handleTest ./peerflix.nix {};
|
||||
|
|
|
@ -878,7 +878,7 @@ let
|
|||
linkConfig.Name = "custom_name";
|
||||
};
|
||||
}
|
||||
else { services.udev.initrdRules = ''
|
||||
else { boot.initrd.services.udev.rules = ''
|
||||
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
|
||||
'';
|
||||
});
|
||||
|
|
|
@ -1,30 +1,32 @@
|
|||
import ./make-test-python.nix ({ lib, ... }: {
|
||||
name = "paperless-ng";
|
||||
name = "paperless";
|
||||
meta.maintainers = with lib.maintainers; [ earvstedt Flakebi ];
|
||||
|
||||
nodes.machine = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ imagemagick jq ];
|
||||
services.paperless-ng = {
|
||||
services.paperless = {
|
||||
enable = true;
|
||||
passwordFile = builtins.toFile "password" "admin";
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("paperless-ng-consumer.service")
|
||||
import json
|
||||
|
||||
with subtest("Create test doc"):
|
||||
machine.wait_for_unit("paperless-consumer.service")
|
||||
|
||||
with subtest("Add a document via the file system"):
|
||||
machine.succeed(
|
||||
"convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
|
||||
"-annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png"
|
||||
)
|
||||
|
||||
with subtest("Web interface gets ready"):
|
||||
machine.wait_for_unit("paperless-ng-web.service")
|
||||
machine.wait_for_unit("paperless-web.service")
|
||||
# Wait until server accepts connections
|
||||
machine.wait_until_succeeds("curl -fs localhost:28981")
|
||||
|
||||
with subtest("Create web test doc"):
|
||||
with subtest("Add a document via the web interface"):
|
||||
machine.succeed(
|
||||
"convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
|
||||
"-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
|
||||
|
@ -35,11 +37,8 @@ import ./make-test-python.nix ({ lib, ... }: {
|
|||
machine.wait_until_succeeds(
|
||||
"(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 2))"
|
||||
)
|
||||
assert "2005-10-16" in machine.succeed(
|
||||
"curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[0] | .created'"
|
||||
)
|
||||
assert "2005-10-16" in machine.succeed(
|
||||
"curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[1] | .created'"
|
||||
)
|
||||
docs = json.loads(machine.succeed("curl -u admin:admin -fs localhost:28981/api/documents/"))['results']
|
||||
assert "2005-10-16" in docs[0]['created']
|
||||
assert "2005-10-16" in docs[1]['created']
|
||||
'';
|
||||
})
|
|
@ -38,7 +38,7 @@ for entry in feed.entries:
|
|||
else:
|
||||
print('chromium: TODO -> ' + version + '\n')
|
||||
print(url)
|
||||
if fixes := re.search(r'This update includes .+ security fixes\.', content):
|
||||
if fixes := re.search(r'This update includes .+ security fix(es)?\.', content):
|
||||
fixes = fixes.group(0)
|
||||
if zero_days := re.search(r'Google is aware( of reports)? th(e|at) .+ in the wild\.', content):
|
||||
fixes += " " + zero_days.group(0)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"stable": {
|
||||
"version": "100.0.4896.75",
|
||||
"sha256": "1h60l1g340gvm4lz2lps6dqpvahpzn24hz47y2qvc6mavx9d6ki4",
|
||||
"sha256bin64": "0nrrkgwcnqg4l8x1nk1rdxnv9xa0c24ync1yls7s9rc34wkk8sc5",
|
||||
"version": "100.0.4896.88",
|
||||
"sha256": "0l628x41krsjgzff9996k5wkbcvcjqf4128z32hpj1pkg23719f5",
|
||||
"sha256bin64": "1wqzs3f70ayi9vy3ncm5mild22xvhwn4d2lcfra31wwnzxi1nqxm",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2022-01-21",
|
||||
|
@ -32,22 +32,22 @@
|
|||
}
|
||||
},
|
||||
"dev": {
|
||||
"version": "102.0.4972.0",
|
||||
"sha256": "1aihdym7h8sd52wiybnrgjrd618f3yby4bpbkc26xyrl8gviz31d",
|
||||
"sha256bin64": "0mb67cfr397aclkiy0v9xqga07c166qdylq257k2kmhj7df1gcvn",
|
||||
"version": "102.0.4997.0",
|
||||
"sha256": "05y9b426wcarq18faw5i79qrfqy158dinvba5d7lwrcjnbqyfr1f",
|
||||
"sha256bin64": "0846y3dbs7vghrb8s2s57a2lk7a0x2dha5q0d915qrn29g5x9c6p",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2022-03-29",
|
||||
"version": "2022-04-07",
|
||||
"url": "https://gn.googlesource.com/gn",
|
||||
"rev": "e39d5251c25155b9dfdb96adeab31b795095fd3b",
|
||||
"sha256": "1clr0f847rmwwpmsl9zv4q6rw1shn09my775666v480szpahj9pk"
|
||||
"rev": "ae110f8b525009255ba1f9ae96982176d3bfad3d",
|
||||
"sha256": "131y1v2m59hn7s00zc9p7rhfi956p744mp96g2i80f0i020dyl6w"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "100.0.4896.75",
|
||||
"sha256": "1h60l1g340gvm4lz2lps6dqpvahpzn24hz47y2qvc6mavx9d6ki4",
|
||||
"sha256bin64": "0nrrkgwcnqg4l8x1nk1rdxnv9xa0c24ync1yls7s9rc34wkk8sc5",
|
||||
"version": "100.0.4896.88",
|
||||
"sha256": "0l628x41krsjgzff9996k5wkbcvcjqf4128z32hpj1pkg23719f5",
|
||||
"sha256bin64": "1wqzs3f70ayi9vy3ncm5mild22xvhwn4d2lcfra31wwnzxi1nqxm",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2022-01-21",
|
||||
|
@ -56,8 +56,8 @@
|
|||
"sha256": "1dzdvcn2r5c9giknvasf3y5y4901kav7igivjvrpww66ywsj8fzr"
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "100.0.4896.75-1",
|
||||
"sha256": "0s31dclgk3x9302wr5yij77361bqam2sfki39p651gwysfizb73n"
|
||||
"rev": "100.0.4896.88-1",
|
||||
"sha256": "0f0c5mrjvk6lg59p4x6lg2az4f83y7zzikv5hlmqzpgydivk7c13"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -7,10 +7,10 @@ in
|
|||
rec {
|
||||
firefox = common rec {
|
||||
pname = "firefox";
|
||||
version = "99.0";
|
||||
version = "99.0.1";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "08f6d5a668140c4275aba6df463ed3af596043dfe5f27573583afbc1e9f6b27ebca79a52ce2c9598261c631b400b5378744e9e70f51ef9c4098b419e9904aa7c";
|
||||
sha512 = "0006b773ef1057a6e0b959d4f39849ad4a79272b38d565da98062b9aaf0effd2b729349c1f9fa10fccf7d2462d2c536b02c167ae6ad4556d6e519c6d22c25a7f";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "element-desktop",
|
||||
"productName": "Element",
|
||||
"main": "lib/electron-main.js",
|
||||
"version": "1.10.8",
|
||||
"version": "1.10.9",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Element",
|
||||
"repository": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"version": "1.10.8",
|
||||
"desktopSrcHash": "S9MQIn773BzCH4dsTkD1DpIThDzoIGr4Heaie2Qs0jY=",
|
||||
"desktopYarnHash": "1imx43qbpj08l6d0fji31kcxqshcpr0ch8dzfbbgxyjvblq2p8ln",
|
||||
"webHash": "02i6l3armzr19kki3hgshhzkdpb3001nilh4h10hr3xw5z711ppr"
|
||||
"version": "1.10.9",
|
||||
"desktopSrcHash": "vbVnkb/sVW+c7JGIT8Fcjtwe7i10aY0mBoiNeAD8tvY=",
|
||||
"desktopYarnHash": "0jm0i1yyfkg1ll11pb3qif1vdxx6rp0yl9kd8jg9nhsg2jzw66pr",
|
||||
"webHash": "0yp29h2cmi18y8g8scqx3zmc1l80q28gid709ysqqb349gy1kls8"
|
||||
}
|
||||
|
|
|
@ -18,16 +18,6 @@ let
|
|||
py = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
django = super.django_3;
|
||||
# Avoid warning in django-q versions > 1.3.4
|
||||
# https://github.com/jonaswinkler/paperless-ng/issues/857
|
||||
# https://github.com/Koed00/django-q/issues/526
|
||||
django-q = super.django-q.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.3.4";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
sha256 = "Uj1U3PG2YVLBtlj5FPAO07UYo0MqnezUiYc4yo274Q8=";
|
||||
};
|
||||
});
|
||||
|
||||
# Incompatible with aioredis 2
|
||||
aioredis = super.aioredis.overridePythonAttrs (oldAttrs: rec {
|
||||
|
@ -43,30 +33,16 @@ let
|
|||
path = lib.makeBinPath [ ghostscript imagemagick jbig2enc optipng pngquant qpdf tesseract4 unpaper ];
|
||||
in
|
||||
py.pkgs.pythonPackages.buildPythonApplication rec {
|
||||
pname = "paperless-ng";
|
||||
version = "1.5.0";
|
||||
pname = "paperless-ngx";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/jonaswinkler/paperless-ng/releases/download/ng-${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "oVSq0AWksuWC81MF5xiZ6ZbdKKtqqphmL+xIzJLaDMw=";
|
||||
url = "https://github.com/paperless-ngx/paperless-ngx/releases/download/ngx-${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "07mrxbwahkm00n9nvssd6d13p80w333g84cd38bzp0l34nzim5zl";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix the `slow_write_pdf` test:
|
||||
# https://github.com/NixOS/nixpkgs/issues/136626
|
||||
(fetchpatch {
|
||||
url = "https://github.com/paperless-ngx/paperless-ngx/commit/4fbabe43ea12811864e9676b04d82a82b38e799d.patch";
|
||||
sha256 = "sha256-8ULep5aeW3wJAQGy2OEAjFYybELNq1DzCC1uBrZx36I=";
|
||||
})
|
||||
];
|
||||
|
||||
format = "other";
|
||||
|
||||
# Make bind address configurable
|
||||
postPatch = ''
|
||||
substituteInPlace gunicorn.conf.py --replace "bind = '0.0.0.0:8000'" ""
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = with py.pkgs.pythonPackages; [
|
||||
aioredis
|
||||
arrow
|
||||
|
@ -161,11 +137,17 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
|
|||
zope_interface
|
||||
];
|
||||
|
||||
# Compile manually because `pythonRecompileBytecodeHook` only works for
|
||||
# files in `python.sitePackages`
|
||||
postBuild = ''
|
||||
${py.interpreter} -OO -m compileall src
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
cp -r . $out/lib/paperless-ng
|
||||
chmod +x $out/lib/paperless-ng/src/manage.py
|
||||
makeWrapper $out/lib/paperless-ng/src/manage.py $out/bin/paperless-ng \
|
||||
cp -r . $out/lib/paperless-ngx
|
||||
chmod +x $out/lib/paperless-ngx/src/manage.py
|
||||
makeWrapper $out/lib/paperless-ngx/src/manage.py $out/bin/paperless-ngx \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
--prefix PATH : "${path}"
|
||||
'';
|
||||
|
@ -200,13 +182,13 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
|
|||
pythonPath = python3.pkgs.makePythonPath propagatedBuildInputs;
|
||||
inherit path;
|
||||
|
||||
tests = { inherit (nixosTests) paperless-ng; };
|
||||
tests = { inherit (nixosTests) paperless; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A supercharged version of paperless: scan, index, and archive all of your physical documents";
|
||||
homepage = "https://paperless-ng.readthedocs.io/en/latest/";
|
||||
homepage = "https://paperless-ngx.readthedocs.io/en/latest/";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ earvstedt Flakebi ];
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
};
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
{ config, lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, which
|
||||
, cmake
|
||||
, llvmPackages
|
||||
, libunwind
|
||||
, gettext
|
||||
, openssl
|
||||
, python2
|
||||
, icu
|
||||
, lttng-ust
|
||||
, liburcu
|
||||
, libuuid
|
||||
, libkrb5
|
||||
, debug ? config.coreclr.debug or false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "coreclr";
|
||||
version = "2.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dotnet";
|
||||
repo = "coreclr";
|
||||
rev = "v${version}";
|
||||
sha256 = "0pzkrfgqywhpijbx7j1v4lxa6270h6whymb64jdkp7yj56ipqh2n";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# glibc 2.26
|
||||
url = "https://github.com/dotnet/coreclr/commit/a8f83b615708c529b112898e7d2fbc3f618b26ee.patch";
|
||||
sha256 = "047ph5gip4z2h7liwdxsmpnlaq0sd3hliaw4nyqjp647m80g3ffq";
|
||||
})
|
||||
(fetchpatch {
|
||||
# clang 5
|
||||
url = "https://github.com/dotnet/coreclr/commit/9b22e1a767dee38f351001c5601f56d78766a43e.patch";
|
||||
sha256 = "1w1lxw5ryvhq8m5m0kv880c4bh6y9xdgypkr76sqbh3v568yghzg";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
which
|
||||
cmake
|
||||
llvmPackages.clang
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
llvmPackages.llvm
|
||||
llvmPackages.lldb
|
||||
libunwind
|
||||
gettext
|
||||
openssl
|
||||
python2
|
||||
icu
|
||||
lttng-ust
|
||||
liburcu
|
||||
libuuid
|
||||
libkrb5
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
# override to avoid cmake running
|
||||
patchShebangs .
|
||||
'';
|
||||
|
||||
BuildArch = if stdenv.is64bit then "x64" else "x86";
|
||||
BuildType = if debug then "Debug" else "Release";
|
||||
|
||||
hardeningDisable = [
|
||||
"strictoverflow"
|
||||
"format"
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
# disable -Werror which can potentially breaks with every compiler upgrade
|
||||
./build.sh $BuildArch $BuildType cmakeargs "-DCLR_CMAKE_WARNINGS_ARE_ERRORS=OFF"
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/dotnet $out/bin
|
||||
cp -r bin/Product/Linux.$BuildArch.$BuildType/* $out/share/dotnet
|
||||
for cmd in coreconsole corerun createdump crossgen ilasm ildasm mcs superpmi; do
|
||||
ln -s $out/share/dotnet/$cmd $out/bin/$cmd
|
||||
done
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/dotnet/core/";
|
||||
description = ".NET is a general purpose development platform";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ kuznero ];
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
|
@ -16,13 +16,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "duckdb";
|
||||
version = "0.3.2";
|
||||
version = "0.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-F5YOqDeY3rgcnuu5SNqOfUxhsaXgqvdJZTnD1unI0tc=";
|
||||
sha256 = "sha256-WxJj5hOJsRuKUHjpGZWsa0PxRZZJcX88p1/typ+yqEw=";
|
||||
};
|
||||
|
||||
patches = [ ./version.patch ];
|
||||
|
|
|
@ -2,21 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qca-qt5";
|
||||
version = "2.3.1";
|
||||
version = "2.3.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.kde.org/stable/qca/${version}/qca-${version}.tar.xz";
|
||||
sha256 = "sha256-wThREJq+/EYjNwmJ+uOnRb9rGss8KhOolYU5gj6XTks=";
|
||||
sha256 = "sha256-a2lYgafj/ZX3Oq7m6uq5b2rRflFenCs9SzJy14Yv9cQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull upstream fix for gcc-11
|
||||
(fetchurl {
|
||||
url = "https://github.com/KDE/qca/commit/32275f1a74c161d2fed8c056b2dd9555687a22f2.patch";
|
||||
sha256 = "sha256-SUH2eyzP2vH/ZjYcX8ybwiqhoTm/QjuEpTKjb2iH1No=";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ openssl qtbase ];
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "devolo-home-control-api";
|
||||
version = "0.17.4";
|
||||
version = "0.18.1";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "2Fake";
|
||||
repo = "devolo_home_control_api";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-N/48Q2IEL194vCzrPPuy+mRNejXfkoXy2t2oe0Y6ug4=";
|
||||
sha256 = "sha256-Xj5k09uEVxZgG0oLbiPOBx/dALsRjqkZbLKit4X4q9Q=";
|
||||
};
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyoverkiz";
|
||||
version = "1.3.14";
|
||||
version = "1.4.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||
owner = "iMicknl";
|
||||
repo = "python-overkiz-api";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dyT2hrTQwYoKEZAVIed2N4259YlR2JmvOEpAuPLCur4=";
|
||||
hash = "sha256-uaeSyRtnokUJ3jWTioVMuo+T3jFoH+SYTBT3HPCPjm8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ lib, stdenv
|
||||
, buildPythonPackage
|
||||
, fetchpatch
|
||||
, fetchPypi
|
||||
, python
|
||||
, zope_interface
|
||||
|
@ -25,6 +26,18 @@ buildPythonPackage rec {
|
|||
sha256 = "1wml02jxni8k15984pskks7d6yin81w4d2ac026cpyiqd0gjpwsp";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# https://github.com/twisted/twisted/security/advisories/GHSA-c2jg-hw38-jrqq
|
||||
name = "CVE-2022-24801.patch";
|
||||
url = "https://github.com/twisted/twisted/commit/592217e951363d60e9cd99c5bbfd23d4615043ac.patch";
|
||||
hash = "sha256-psX5vAM9myuILuTazpebSk8QTT52CB6N7RXAY4MAV8g=";
|
||||
excludes = [
|
||||
"src/twisted/web/newsfragments/10323.bugfix"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ zope_interface incremental automat constantly hyperlink pyhamcrest attrs setuptools typing-extensions ];
|
||||
|
||||
passthru.extras.tls = [ pyopenssl service-identity idna ];
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "xknx";
|
||||
version = "0.20.1";
|
||||
version = "0.20.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "XKNX";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-7g1uAkBGlNcmfjqGNH2MS+X26Pq1hTKQy9eLJVTqxhA=";
|
||||
sha256 = "sha256-9OEoU2r6/tThEoLjssWD0jrgF2oYk5IRCWLTeF4ddGc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
, libuuid
|
||||
, dotnetbuildhelpers
|
||||
, dotnetCorePackages
|
||||
, coreclr
|
||||
, openssl
|
||||
}:
|
||||
|
||||
|
|
|
@ -43,13 +43,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "github-runner";
|
||||
version = "2.289.2";
|
||||
version = "2.290.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "actions";
|
||||
repo = "runner";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-yISJ/qGJ+tGnJOqpTUe+rkG4UGzTZ5tIXix6wuDKXO0=";
|
||||
hash = "sha256-5ASKWDtASVtGDPn68tjjx8ZTVv1E14M26OCDpMJ+nJU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -201,7 +201,7 @@ self = stdenv.mkDerivation {
|
|||
'';
|
||||
homepage = "https://nixos.org/";
|
||||
license = licenses.lgpl2Plus;
|
||||
maintainers = with maintainers; [ eelco lovesegfault ];
|
||||
maintainers = with maintainers; [ eelco lovesegfault artturin ];
|
||||
platforms = platforms.unix;
|
||||
outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
|
||||
};
|
||||
|
|
|
@ -85,12 +85,12 @@ in lib.makeExtensible (self: {
|
|||
|
||||
unstable = lib.lowPrio (common rec {
|
||||
version = "2.8";
|
||||
suffix = "pre20220322_${lib.substring 0 7 src.rev}";
|
||||
suffix = "pre20220411_${lib.substring 0 7 src.rev}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "NixOS";
|
||||
repo = "nix";
|
||||
rev = "d5d4d980427aca3849b90bfe1694b6d1d14532fb";
|
||||
sha256 = "sha256-fV7nUcRhVmgIvDUraAzHV2TDVHDn1jETfv2zdDMQ59Y=";
|
||||
rev = "f7276bc948705f452b2bfcc2a08bc44152f1d5a8";
|
||||
sha256 = "sha256-brqGGdr2CzqufY3NXU8tGm6QbCTSFGfboruU2cUWhu8=";
|
||||
};
|
||||
});
|
||||
})
|
||||
|
|
|
@ -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.1.36"
|
||||
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.37"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
GIT
|
||||
remote: https://github.com/rapid7/metasploit-framework
|
||||
revision: b3ad212ba393cc87bb9e621dbad9d04362f1151c
|
||||
ref: refs/tags/6.1.36
|
||||
revision: 214817055bc104e6876882ef794f1de1031edb53
|
||||
ref: refs/tags/6.1.37
|
||||
specs:
|
||||
metasploit-framework (6.1.36)
|
||||
metasploit-framework (6.1.37)
|
||||
actionpack (~> 6.0)
|
||||
activerecord (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
|
@ -31,13 +31,14 @@ GIT
|
|||
metasploit-concern
|
||||
metasploit-credential
|
||||
metasploit-model
|
||||
metasploit-payloads (= 2.0.77)
|
||||
metasploit-payloads (= 2.0.80)
|
||||
metasploit_data_models
|
||||
metasploit_payloads-mettle (= 1.0.18)
|
||||
mqtt
|
||||
msgpack
|
||||
nessus_rest
|
||||
net-ldap
|
||||
net-smtp
|
||||
net-ssh
|
||||
network_interface
|
||||
nexpose
|
||||
|
@ -128,7 +129,7 @@ GEM
|
|||
arel-helpers (2.14.0)
|
||||
activerecord (>= 3.1.0, < 8)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.573.0)
|
||||
aws-partitions (1.575.0)
|
||||
aws-sdk-core (3.130.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.525.0)
|
||||
|
@ -158,6 +159,7 @@ GEM
|
|||
cookiejar (0.3.3)
|
||||
crass (1.0.6)
|
||||
daemons (1.4.1)
|
||||
digest (3.1.0)
|
||||
dnsruby (1.61.9)
|
||||
simpleidn (~> 0.1)
|
||||
domain_name (0.5.20190701)
|
||||
|
@ -234,11 +236,11 @@ GEM
|
|||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
metasm (1.0.5)
|
||||
metasploit-concern (4.0.3)
|
||||
metasploit-concern (4.0.4)
|
||||
activemodel (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
railties (~> 6.0)
|
||||
metasploit-credential (5.0.5)
|
||||
metasploit-credential (5.0.7)
|
||||
metasploit-concern
|
||||
metasploit-model
|
||||
metasploit_data_models (>= 5.0.0)
|
||||
|
@ -248,12 +250,12 @@ GEM
|
|||
rex-socket
|
||||
rubyntlm
|
||||
rubyzip
|
||||
metasploit-model (4.0.3)
|
||||
metasploit-model (4.0.4)
|
||||
activemodel (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
railties (~> 6.0)
|
||||
metasploit-payloads (2.0.77)
|
||||
metasploit_data_models (5.0.4)
|
||||
metasploit-payloads (2.0.80)
|
||||
metasploit_data_models (5.0.5)
|
||||
activerecord (~> 6.0)
|
||||
activesupport (~> 6.0)
|
||||
arel-helpers
|
||||
|
@ -268,18 +270,24 @@ GEM
|
|||
mini_portile2 (2.8.0)
|
||||
minitest (5.15.0)
|
||||
mqtt (0.5.0)
|
||||
msgpack (1.4.5)
|
||||
msgpack (1.5.1)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.1.1)
|
||||
mustermann (1.1.1)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nessus_rest (0.1.6)
|
||||
net-ldap (0.17.0)
|
||||
net-protocol (0.1.3)
|
||||
timeout
|
||||
net-smtp (0.3.1)
|
||||
digest
|
||||
net-protocol
|
||||
timeout
|
||||
net-ssh (6.1.0)
|
||||
network_interface (0.0.2)
|
||||
nexpose (7.3.0)
|
||||
nio4r (2.5.8)
|
||||
nokogiri (1.13.3)
|
||||
nokogiri (1.13.4)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
racc (~> 1.4)
|
||||
nori (2.6.0)
|
||||
|
@ -335,12 +343,12 @@ GEM
|
|||
rex-core
|
||||
rex-struct2
|
||||
rex-text
|
||||
rex-core (0.1.27)
|
||||
rex-core (0.1.28)
|
||||
rex-encoder (0.1.6)
|
||||
metasm
|
||||
rex-arch
|
||||
rex-text
|
||||
rex-exploitation (0.1.29)
|
||||
rex-exploitation (0.1.30)
|
||||
jsobfu
|
||||
metasm
|
||||
rex-arch
|
||||
|
@ -354,7 +362,7 @@ GEM
|
|||
rex-arch
|
||||
rex-ole (0.1.7)
|
||||
rex-text
|
||||
rex-powershell (0.1.95)
|
||||
rex-powershell (0.1.96)
|
||||
rex-random_identifier
|
||||
rex-text
|
||||
ruby-rc4
|
||||
|
@ -365,7 +373,7 @@ GEM
|
|||
metasm
|
||||
rex-core
|
||||
rex-text
|
||||
rex-socket (0.1.34)
|
||||
rex-socket (0.1.35)
|
||||
rex-core
|
||||
rex-sslscan (0.1.7)
|
||||
rex-core
|
||||
|
@ -407,6 +415,7 @@ GEM
|
|||
rack (>= 1, < 3)
|
||||
thor (1.2.1)
|
||||
tilt (2.0.10)
|
||||
timeout (0.2.0)
|
||||
ttfunk (1.7.0)
|
||||
tzinfo (2.0.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
|
@ -447,4 +456,4 @@ DEPENDENCIES
|
|||
metasploit-framework!
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.6
|
||||
2.3.9
|
||||
|
|
|
@ -15,13 +15,13 @@ let
|
|||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "metasploit-framework";
|
||||
version = "6.1.36";
|
||||
version = "6.1.37";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rapid7";
|
||||
repo = "metasploit-framework";
|
||||
rev = version;
|
||||
sha256 = "sha256-j90/ygZpwdMb0KL1bJPHpysokC3BoN/kUK/dsBo6HsU=";
|
||||
sha256 = "sha256-umSWJq9jJrjawP+eXkZEKcomJNHpt7IOk+ZI1iAM6OU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -104,10 +104,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "162x55is7jfdy6cf1xw2llbrxcnk5gv3dsqfmi1klf6c2xfm87gm";
|
||||
sha256 = "07kbrac2r883h4bsw4qhgkd97v0f4p05saqj8zsy300wx56nyssm";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.573.0";
|
||||
version = "1.575.0";
|
||||
};
|
||||
aws-sdk-core = {
|
||||
groups = ["default"];
|
||||
|
@ -259,6 +259,16 @@
|
|||
};
|
||||
version = "1.4.1";
|
||||
};
|
||||
digest = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "00vwzvxgby22h7jhwadqqf9ssbkp3ag2pl4g7q3zf1y8mlk7rk39";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.0";
|
||||
};
|
||||
dnsruby = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
@ -664,62 +674,62 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0lmvwja6v7s12g0fq9mp2d3sgashl526apfjqk5fchqvnfqw4gsb";
|
||||
sha256 = "1m7dykwravbjdq4zs1z5lqdwrmfjsswjg7iygn4a187xn9ml1rj6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.3";
|
||||
version = "4.0.4";
|
||||
};
|
||||
metasploit-credential = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0a17zm8cq71rd8qilxai7s3dzb8n5lzvjfwyxk7slblfcgbsl9np";
|
||||
sha256 = "073bhxlyszk5iknx6896kch4yfcjk48wq7q5vnjd5k7akx0k9h8p";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.0.5";
|
||||
version = "5.0.7";
|
||||
};
|
||||
metasploit-framework = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
fetchSubmodules = false;
|
||||
rev = "b3ad212ba393cc87bb9e621dbad9d04362f1151c";
|
||||
sha256 = "1i8y78db1pdga3jdz8615n82hax7qy9nrxd2s0dx7hb90v53zpcg";
|
||||
rev = "214817055bc104e6876882ef794f1de1031edb53";
|
||||
sha256 = "1rg81hhdcj76jc7b5dz9s4j2dji98i35x7pzq3dbh9k3mwk9cr5s";
|
||||
type = "git";
|
||||
url = "https://github.com/rapid7/metasploit-framework";
|
||||
};
|
||||
version = "6.1.36";
|
||||
version = "6.1.37";
|
||||
};
|
||||
metasploit-model = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "13zg6jw8vbspq95s4dpcbjxnjiacy21il7y8l2dq3rd04mickryy";
|
||||
sha256 = "16mc0f7hqpqmnvyqar3hn3yr83xxvnm1ikmq6sxwbf08zhgz6v64";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.3";
|
||||
version = "4.0.4";
|
||||
};
|
||||
metasploit-payloads = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0chd5rn13210fgsvm0yqd59lfgg9kpmyx82jbf33dfiw6qh6mmi1";
|
||||
sha256 = "12xggj210fqprkcd6zb4rnis12l9q2fi42gmwh2hfdwvbm3syvzy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.0.77";
|
||||
version = "2.0.80";
|
||||
};
|
||||
metasploit_data_models = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12hnkrkgx89dskfr8ywpxk51y0nqnnj37qjz856f45z7ymx1nzip";
|
||||
sha256 = "1h7w6kavbylbs55rkv12hg28wcchwqvzmagw9yrkqmncwdavl0dl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.0.4";
|
||||
version = "5.0.5";
|
||||
};
|
||||
metasploit_payloads-mettle = {
|
||||
groups = ["default"];
|
||||
|
@ -776,10 +786,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1cshgsx3hmpgx639xyqjqa2q3hgrhlyr9rpwhsglsx529alqq125";
|
||||
sha256 = "1i0gbypr1yxwfkaxzrk0i1wz4n6v3mw7z24k65jy3q1h5lda5xbw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.5";
|
||||
version = "1.5.1";
|
||||
};
|
||||
multi_json = {
|
||||
groups = ["default"];
|
||||
|
@ -831,6 +841,26 @@
|
|||
};
|
||||
version = "0.17.0";
|
||||
};
|
||||
net-protocol = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "051cc82dl41a66c9sxv4lx4slqk7sz1v4iy0hdk6gpjyjszf4hxd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.3";
|
||||
};
|
||||
net-smtp = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1s358kfv9mnfxcjbpr1d5a2gs1q7wkw7ffpn86mf1b3s9p31bw9s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.1";
|
||||
};
|
||||
net-ssh = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
@ -877,10 +907,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
|
||||
sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.13.3";
|
||||
version = "1.13.4";
|
||||
};
|
||||
nori = {
|
||||
groups = ["default"];
|
||||
|
@ -1147,10 +1177,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0a5fb8g6ksak1g1syhvh5rh87shnx617l7nl6afl80in0h4fd4xd";
|
||||
sha256 = "17kgimw778flsqg66cyccz655kfdaasgv9g0zyk7zb5psigjadbl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.27";
|
||||
version = "0.1.28";
|
||||
};
|
||||
rex-encoder = {
|
||||
groups = ["default"];
|
||||
|
@ -1167,10 +1197,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0asx13g0xqb8wnslrmsld2l1w2qpl6kjrcbfl945kw1nm7k5bwxb";
|
||||
sha256 = "0x1gqdqvsgll1r5x6cz4ica24nb3ph8y36mf3hwabgb1a6y3s0zr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.29";
|
||||
version = "0.1.30";
|
||||
};
|
||||
rex-java = {
|
||||
groups = ["default"];
|
||||
|
@ -1217,10 +1247,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ydzvakfg8can56jn0i8qnrf742csyk82krj50b44sj93ncj7h54";
|
||||
sha256 = "1a9ky6gp8r6xymdcgnf7paqphy07m9alw28y1lhzg760h8a1kvc6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.95";
|
||||
version = "0.1.96";
|
||||
};
|
||||
rex-random_identifier = {
|
||||
groups = ["default"];
|
||||
|
@ -1257,10 +1287,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1rsgssbnnl5frxgnq17xq0n6rpxns6xdmxpya9852c2n72nm5ac0";
|
||||
sha256 = "1lisy36pcyhqvhxkl55pgcyw67n9birzsyrgkm0b7sbkn4jpv0d0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.34";
|
||||
version = "0.1.35";
|
||||
};
|
||||
rex-sslscan = {
|
||||
groups = ["default"];
|
||||
|
@ -1472,6 +1502,16 @@
|
|||
};
|
||||
version = "2.0.10";
|
||||
};
|
||||
timeout = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10bx1hcyrjqgq6a848fc1i0cgrvx42gcy8hk4vp90y6zc7k8xzbk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.0";
|
||||
};
|
||||
ttfunk = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
|
|
@ -188,6 +188,7 @@ mapAliases ({
|
|||
corsmisc = throw "corsmisc has been removed (upstream is gone)"; # Added 2022-01-24
|
||||
couchdb = throw "couchdb was removed from nixpkgs, use couchdb3 instead"; # Added 2021-03-03
|
||||
couchdb2 = throw "couchdb2 was removed from nixpkgs, use couchdb3 instead"; # Added 2021-03-03
|
||||
coreclr = throw "coreclr has been removed from nixpkgs, use dotnet-sdk instead"; # added 2022-06-12
|
||||
cpp-gsl = throw "'cpp-gsl' has been renamed to/replaced by 'microsoft_gsl'"; # Converted to throw 2022-02-22
|
||||
cpp_ethereum = throw "cpp_ethereum has been removed; abandoned upstream"; # Added 2020-11-30
|
||||
cpuminer-multi = throw "cpuminer-multi has been removed: deleted by upstream"; # Added 2022-01-07
|
||||
|
@ -901,7 +902,8 @@ mapAliases ({
|
|||
|
||||
p11_kit = throw "'p11_kit' has been renamed to/replaced by 'p11-kit'"; # Converted to throw 2022-02-22
|
||||
packet-cli = metal-cli; # Added 2021-10-25
|
||||
paperless = paperless-ng; # Added 2021-06-06
|
||||
paperless = paperless-ngx; # Added 2021-06-06
|
||||
paperless-ng = paperless-ngx; # Added 2022-04-11
|
||||
parity = openethereum; # Added 2020-08-01
|
||||
parity-ui = throw "parity-ui was removed because it was broken and unmaintained by upstream"; # Added 2022-01-10
|
||||
parquet-cpp = throw "'parquet-cpp' has been renamed to/replaced by 'arrow-cpp'"; # Converted to throw 2022-02-22
|
||||
|
|
|
@ -8804,7 +8804,7 @@ with pkgs;
|
|||
|
||||
pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
|
||||
|
||||
paperless-ng = callPackage ../applications/office/paperless-ng { };
|
||||
paperless-ngx = callPackage ../applications/office/paperless-ngx { };
|
||||
|
||||
paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { };
|
||||
|
||||
|
@ -23648,8 +23648,6 @@ with pkgs;
|
|||
|
||||
comixcursors = callPackage ../data/icons/comixcursors {};
|
||||
|
||||
coreclr = callPackage ../development/compilers/coreclr { };
|
||||
|
||||
corefonts = callPackage ../data/fonts/corefonts { };
|
||||
|
||||
courier-prime = callPackage ../data/fonts/courier-prime { };
|
||||
|
|
Loading…
Reference in a new issue