Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2021-07-26 12:01:57 +00:00
committed by GitHub
116 changed files with 1809 additions and 783 deletions
-1
View File
@@ -46,7 +46,6 @@
/nixos/default.nix @nbp @infinisil
/nixos/lib/from-env.nix @nbp @infinisil
/nixos/lib/eval-config.nix @nbp @infinisil
/nixos/doc @ryantm
/nixos/doc/manual/configuration/abstractions.xml @nbp
/nixos/doc/manual/configuration/config-file.xml @nbp
/nixos/doc/manual/configuration/config-syntax.xml @nbp
+2 -2
View File
@@ -15,13 +15,13 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
# should be kept in sync with `version`
uses: zeebe-io/backport-action@2b994724142df0774855690db56bc6308fb99ffa
uses: zeebe-io/backport-action@v0.0.5
with:
# Config README: https://github.com/zeebe-io/backport-action#backport-action
github_token: ${{ secrets.GITHUB_TOKEN }}
github_workspace: ${{ github.workspace }}
# should be kept in sync with `uses`
version: 2b994724142df0774855690db56bc6308fb99ffa
version: v0.0.5
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v9
- uses: cachix/cachix-action@v10
with:
# This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
name: nixpkgs-ci
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v9
- uses: cachix/cachix-action@v10
with:
# This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
name: nixpkgs-ci
+12
View File
@@ -1530,6 +1530,12 @@
githubId = 1111035;
name = "Break Yang";
};
brecht = {
email = "brecht.savelkoul@alumni.lse.ac.uk";
github = "brechtcs";
githubId = 6107054;
name = "Brecht Savelkoul";
};
brettlyons = {
email = "blyons@fastmail.com";
github = "brettlyons";
@@ -4249,6 +4255,12 @@
githubId = 131599;
name = "Martin Weinelt";
};
hexagonal-sun = {
email = "dev@mattleach.net";
github = "hexagonal-sun";
githubId = 222664;
name = "Matthew Leach";
};
hh = {
email = "hh@m-labs.hk";
github = "HarryMakes";
@@ -702,6 +702,19 @@
option.
</para>
</listitem>
<listitem>
<para>
The
<link xlink:href="options.html#opt-services.syncoid.enable">services.syncoid.enable</link>
module now properly drops ZFS permissions after usage. Before
it delegated permissions to whole pools instead of datasets
and didnt clean up after execution. You can manually look
this up for your pools by running
<literal>zfs allow your-pool-name</literal> and use
<literal>zfs unallow syncoid your-pool-name</literal> to clean
this up.
</para>
</listitem>
</itemizedlist>
</section>
</section>
@@ -183,3 +183,5 @@ pt-services.clipcat.enable).
- NSS modules which should come after `dns` should use mkAfter.
- The [networking.wireless.iwd](options.html#opt-networking.wireless.iwd.enable) module has a new [networking.wireless.iwd.settings](options.html#opt-networking.wireless.iwd.settings) option.
- The [services.syncoid.enable](options.html#opt-services.syncoid.enable) module now properly drops ZFS permissions after usage. Before it delegated permissions to whole pools instead of datasets and didn't clean up after execution. You can manually look this up for your pools by running `zfs allow your-pool-name` and use `zfs unallow syncoid your-pool-name` to clean this up.
+113 -102
View File
@@ -52,7 +52,7 @@ let
use_template = mkOption {
description = "Names of the templates to use for this dataset.";
type = types.listOf (types.enum (attrNames cfg.templates));
default = [];
default = [ ];
};
useTemplate = use_template;
@@ -70,116 +70,127 @@ let
processChildrenOnly = process_children_only;
};
# Extract pool names from configured datasets
pools = unique (map (d: head (builtins.match "([^/]+).*" d)) (attrNames cfg.datasets));
# Extract unique dataset names
datasets = unique (attrNames cfg.datasets);
configFile = let
mkValueString = v:
if builtins.isList v then concatStringsSep "," v
else generators.mkValueStringDefault {} v;
# Function to build "zfs allow" and "zfs unallow" commands for the
# filesystems we've delegated permissions to.
buildAllowCommand = zfsAction: permissions: dataset: lib.escapeShellArgs [
# Here we explicitly use the booted system to guarantee the stable API needed by ZFS
"-+/run/booted-system/sw/bin/zfs"
zfsAction
"sanoid"
(concatStringsSep "," permissions)
dataset
];
mkKeyValue = k: v: if v == null then ""
else if k == "processChildrenOnly" then ""
else if k == "useTemplate" then ""
else generators.mkKeyValueDefault { inherit mkValueString; } "=" k v;
in generators.toINI { inherit mkKeyValue; } cfg.settings;
configFile =
let
mkValueString = v:
if builtins.isList v then concatStringsSep "," v
else generators.mkValueStringDefault { } v;
in {
mkKeyValue = k: v:
if v == null then ""
else if k == "processChildrenOnly" then ""
else if k == "useTemplate" then ""
else generators.mkKeyValueDefault { inherit mkValueString; } "=" k v;
in
generators.toINI { inherit mkKeyValue; } cfg.settings;
# Interface
in
{
options.services.sanoid = {
enable = mkEnableOption "Sanoid ZFS snapshotting service";
# Interface
interval = mkOption {
type = types.str;
default = "hourly";
example = "daily";
description = ''
Run sanoid at this interval. The default is to run hourly.
options.services.sanoid = {
enable = mkEnableOption "Sanoid ZFS snapshotting service";
The format is described in
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>.
'';
};
interval = mkOption {
type = types.str;
default = "hourly";
example = "daily";
description = ''
Run sanoid at this interval. The default is to run hourly.
datasets = mkOption {
type = types.attrsOf (types.submodule ({config, options, ...}: {
freeformType = datasetSettingsType;
options = commonOptions // datasetOptions;
config.use_template = mkAliasDefinitions (mkDefault options.useTemplate or {});
config.process_children_only = mkAliasDefinitions (mkDefault options.processChildrenOnly or {});
}));
default = {};
description = "Datasets to snapshot.";
};
templates = mkOption {
type = types.attrsOf (types.submodule {
freeformType = datasetSettingsType;
options = commonOptions;
});
default = {};
description = "Templates for datasets.";
};
settings = mkOption {
type = types.attrsOf datasetSettingsType;
description = ''
Free-form settings written directly to the config file. See
<link xlink:href="https://github.com/jimsalterjrs/sanoid/blob/master/sanoid.defaults.conf"/>
for allowed values.
'';
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--verbose" "--readonly" "--debug" ];
description = ''
Extra arguments to pass to sanoid. See
<link xlink:href="https://github.com/jimsalterjrs/sanoid/#sanoid-command-line-options"/>
for allowed options.
'';
};
The format is described in
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>.
'';
};
# Implementation
config = mkIf cfg.enable {
services.sanoid.settings = mkMerge [
(mapAttrs' (d: v: nameValuePair ("template_" + d) v) cfg.templates)
(mapAttrs (d: v: v) cfg.datasets)
];
systemd.services.sanoid = {
description = "Sanoid snapshot service";
serviceConfig = {
ExecStartPre = map (pool: lib.escapeShellArgs [
"+/run/booted-system/sw/bin/zfs" "allow"
"sanoid" "snapshot,mount,destroy" pool
]) pools;
ExecStart = lib.escapeShellArgs ([
"${pkgs.sanoid}/bin/sanoid"
"--cron"
"--configdir" (pkgs.writeTextDir "sanoid.conf" configFile)
] ++ cfg.extraArgs);
ExecStopPost = map (pool: lib.escapeShellArgs [
"+/run/booted-system/sw/bin/zfs" "unallow" "sanoid" pool
]) pools;
User = "sanoid";
Group = "sanoid";
DynamicUser = true;
RuntimeDirectory = "sanoid";
CacheDirectory = "sanoid";
};
# Prevents missing snapshots during DST changes
environment.TZ = "UTC";
after = [ "zfs.target" ];
startAt = cfg.interval;
};
datasets = mkOption {
type = types.attrsOf (types.submodule ({ config, options, ... }: {
freeformType = datasetSettingsType;
options = commonOptions // datasetOptions;
config.use_template = mkAliasDefinitions (mkDefault options.useTemplate or { });
config.process_children_only = mkAliasDefinitions (mkDefault options.processChildrenOnly or { });
}));
default = { };
description = "Datasets to snapshot.";
};
meta.maintainers = with maintainers; [ lopsided98 ];
}
templates = mkOption {
type = types.attrsOf (types.submodule {
freeformType = datasetSettingsType;
options = commonOptions;
});
default = { };
description = "Templates for datasets.";
};
settings = mkOption {
type = types.attrsOf datasetSettingsType;
description = ''
Free-form settings written directly to the config file. See
<link xlink:href="https://github.com/jimsalterjrs/sanoid/blob/master/sanoid.defaults.conf"/>
for allowed values.
'';
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "--verbose" "--readonly" "--debug" ];
description = ''
Extra arguments to pass to sanoid. See
<link xlink:href="https://github.com/jimsalterjrs/sanoid/#sanoid-command-line-options"/>
for allowed options.
'';
};
};
# Implementation
config = mkIf cfg.enable {
services.sanoid.settings = mkMerge [
(mapAttrs' (d: v: nameValuePair ("template_" + d) v) cfg.templates)
(mapAttrs (d: v: v) cfg.datasets)
];
systemd.services.sanoid = {
description = "Sanoid snapshot service";
serviceConfig = {
ExecStartPre = (map (buildAllowCommand "allow" [ "snapshot" "mount" "destroy" ]) datasets);
ExecStopPost = (map (buildAllowCommand "unallow" [ "snapshot" "mount" "destroy" ]) datasets);
ExecStart = lib.escapeShellArgs ([
"${pkgs.sanoid}/bin/sanoid"
"--cron"
"--configdir"
(pkgs.writeTextDir "sanoid.conf" configFile)
] ++ cfg.extraArgs);
User = "sanoid";
Group = "sanoid";
DynamicUser = true;
RuntimeDirectory = "sanoid";
CacheDirectory = "sanoid";
};
# Prevents missing snapshots during DST changes
environment.TZ = "UTC";
after = [ "zfs.target" ];
startAt = cfg.interval;
};
};
meta.maintainers = with maintainers; [ lopsided98 ];
}
+220 -196
View File
@@ -5,226 +5,243 @@ with lib;
let
cfg = config.services.syncoid;
# Extract the pool name of a local dataset (any dataset not containing "@")
localPoolName = d: optionals (d != null) (
let m = builtins.match "([^/@]+)[^@]*" d; in
optionals (m != null) m);
# Extract local dasaset names (so no datasets containing "@")
localDatasetName = d: optionals (d != null) (
let m = builtins.match "([^/@]+[^@]*)" d; in
optionals (m != null) m
);
# Escape as required by: https://www.freedesktop.org/software/systemd/man/systemd.unit.html
escapeUnitName = name:
lib.concatMapStrings (s: if lib.isList s then "-" else s)
(builtins.split "[^a-zA-Z0-9_.\\-]+" name);
in {
(builtins.split "[^a-zA-Z0-9_.\\-]+" name);
# Interface
# Function to build "zfs allow" and "zfs unallow" commands for the
# filesystems we've delegated permissions to.
buildAllowCommand = zfsAction: permissions: dataset: lib.escapeShellArgs [
# Here we explicitly use the booted system to guarantee the stable API needed by ZFS
"-+/run/booted-system/sw/bin/zfs"
zfsAction
cfg.user
(concatStringsSep "," permissions)
dataset
];
in
{
options.services.syncoid = {
enable = mkEnableOption "Syncoid ZFS synchronization service";
# Interface
interval = mkOption {
type = types.str;
default = "hourly";
example = "*-*-* *:15:00";
description = ''
Run syncoid at this interval. The default is to run hourly.
options.services.syncoid = {
enable = mkEnableOption "Syncoid ZFS synchronization service";
The format is described in
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>.
'';
};
interval = mkOption {
type = types.str;
default = "hourly";
example = "*-*-* *:15:00";
description = ''
Run syncoid at this interval. The default is to run hourly.
user = mkOption {
type = types.str;
default = "syncoid";
example = "backup";
description = ''
The user for the service. ZFS privilege delegation will be
automatically configured for any local pools used by syncoid if this
option is set to a user other than root. The user will be given the
"hold" and "send" privileges on any pool that has datasets being sent
and the "create", "mount", "receive", and "rollback" privileges on
any pool that has datasets being received.
'';
};
The format is described in
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>.
'';
};
group = mkOption {
type = types.str;
default = "syncoid";
example = "backup";
description = "The group for the service.";
};
user = mkOption {
type = types.str;
default = "syncoid";
example = "backup";
description = ''
The user for the service. ZFS privilege delegation will be
automatically configured for any local pools used by syncoid if this
option is set to a user other than root. The user will be given the
"hold" and "send" privileges on any pool that has datasets being sent
and the "create", "mount", "receive", and "rollback" privileges on
any pool that has datasets being received.
'';
};
sshKey = mkOption {
type = types.nullOr types.path;
# Prevent key from being copied to store
apply = mapNullable toString;
default = null;
description = ''
SSH private key file to use to login to the remote system. Can be
overridden in individual commands.
'';
};
group = mkOption {
type = types.str;
default = "syncoid";
example = "backup";
description = "The group for the service.";
};
commonArgs = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--no-sync-snap" ];
description = ''
Arguments to add to every syncoid command, unless disabled for that
command. See
<link xlink:href="https://github.com/jimsalterjrs/sanoid/#syncoid-command-line-options"/>
for available options.
'';
};
sshKey = mkOption {
type = types.nullOr types.path;
# Prevent key from being copied to store
apply = mapNullable toString;
default = null;
description = ''
SSH private key file to use to login to the remote system. Can be
overridden in individual commands.
'';
};
service = mkOption {
type = types.attrs;
default = {};
description = ''
Systemd configuration common to all syncoid services.
'';
};
commonArgs = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "--no-sync-snap" ];
description = ''
Arguments to add to every syncoid command, unless disabled for that
command. See
<link xlink:href="https://github.com/jimsalterjrs/sanoid/#syncoid-command-line-options"/>
for available options.
'';
};
commands = mkOption {
type = types.attrsOf (types.submodule ({ name, ... }: {
options = {
source = mkOption {
type = types.str;
example = "pool/dataset";
description = ''
Source ZFS dataset. Can be either local or remote. Defaults to
the attribute name.
'';
};
service = mkOption {
type = types.attrs;
default = { };
description = ''
Systemd configuration common to all syncoid services.
'';
};
target = mkOption {
type = types.str;
example = "user@server:pool/dataset";
description = ''
Target ZFS dataset. Can be either local
(<replaceable>pool/dataset</replaceable>) or remote
(<replaceable>user@server:pool/dataset</replaceable>).
'';
};
recursive = mkEnableOption ''the transfer of child datasets'';
sshKey = mkOption {
type = types.nullOr types.path;
# Prevent key from being copied to store
apply = mapNullable toString;
description = ''
SSH private key file to use to login to the remote system.
Defaults to <option>services.syncoid.sshKey</option> option.
'';
};
sendOptions = mkOption {
type = types.separatedString " ";
default = "";
example = "Lc e";
description = ''
Advanced options to pass to zfs send. Options are specified
without their leading dashes and separated by spaces.
'';
};
recvOptions = mkOption {
type = types.separatedString " ";
default = "";
example = "ux recordsize o compression=lz4";
description = ''
Advanced options to pass to zfs recv. Options are specified
without their leading dashes and separated by spaces.
'';
};
useCommonArgs = mkOption {
type = types.bool;
default = true;
description = ''
Whether to add the configured common arguments to this command.
'';
};
service = mkOption {
type = types.attrs;
default = {};
description = ''
Systemd configuration specific to this syncoid service.
'';
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--sshport 2222" ];
description = "Extra syncoid arguments for this command.";
};
commands = mkOption {
type = types.attrsOf (types.submodule ({ name, ... }: {
options = {
source = mkOption {
type = types.str;
example = "pool/dataset";
description = ''
Source ZFS dataset. Can be either local or remote. Defaults to
the attribute name.
'';
};
config = {
source = mkDefault name;
sshKey = mkDefault cfg.sshKey;
target = mkOption {
type = types.str;
example = "user@server:pool/dataset";
description = ''
Target ZFS dataset. Can be either local
(<replaceable>pool/dataset</replaceable>) or remote
(<replaceable>user@server:pool/dataset</replaceable>).
'';
};
}));
default = {};
example = literalExample ''
{
"pool/test".target = "root@target:pool/test";
}
'';
description = "Syncoid commands to run.";
recursive = mkEnableOption ''the transfer of child datasets'';
sshKey = mkOption {
type = types.nullOr types.path;
# Prevent key from being copied to store
apply = mapNullable toString;
description = ''
SSH private key file to use to login to the remote system.
Defaults to <option>services.syncoid.sshKey</option> option.
'';
};
sendOptions = mkOption {
type = types.separatedString " ";
default = "";
example = "Lc e";
description = ''
Advanced options to pass to zfs send. Options are specified
without their leading dashes and separated by spaces.
'';
};
recvOptions = mkOption {
type = types.separatedString " ";
default = "";
example = "ux recordsize o compression=lz4";
description = ''
Advanced options to pass to zfs recv. Options are specified
without their leading dashes and separated by spaces.
'';
};
useCommonArgs = mkOption {
type = types.bool;
default = true;
description = ''
Whether to add the configured common arguments to this command.
'';
};
service = mkOption {
type = types.attrs;
default = { };
description = ''
Systemd configuration specific to this syncoid service.
'';
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "--sshport 2222" ];
description = "Extra syncoid arguments for this command.";
};
};
config = {
source = mkDefault name;
sshKey = mkDefault cfg.sshKey;
};
}));
default = { };
example = literalExample ''
{
"pool/test".target = "root@target:pool/test";
}
'';
description = "Syncoid commands to run.";
};
};
# Implementation
config = mkIf cfg.enable {
users = {
users = mkIf (cfg.user == "syncoid") {
syncoid = {
group = cfg.group;
isSystemUser = true;
# For syncoid to be able to create /var/lib/syncoid/.ssh/
# and to use custom ssh_config or known_hosts.
home = "/var/lib/syncoid";
createHome = false;
};
};
groups = mkIf (cfg.group == "syncoid") {
syncoid = { };
};
};
# Implementation
config = mkIf cfg.enable {
users = {
users = mkIf (cfg.user == "syncoid") {
syncoid = {
group = cfg.group;
isSystemUser = true;
# For syncoid to be able to create /var/lib/syncoid/.ssh/
# and to use custom ssh_config or known_hosts.
home = "/var/lib/syncoid";
createHome = false;
};
};
groups = mkIf (cfg.group == "syncoid") {
syncoid = {};
};
};
systemd.services = mapAttrs' (name: c:
systemd.services = mapAttrs'
(name: c:
nameValuePair "syncoid-${escapeUnitName name}" (mkMerge [
{ description = "Syncoid ZFS synchronization from ${c.source} to ${c.target}";
{
description = "Syncoid ZFS synchronization from ${c.source} to ${c.target}";
after = [ "zfs.target" ];
startAt = cfg.interval;
# syncoid may need zpool to get feature@extensible_dataset
path = [ "/run/booted-system/sw/bin/" ];
serviceConfig = {
ExecStartPre =
map (pool: lib.escapeShellArgs [
"+/run/booted-system/sw/bin/zfs" "allow"
cfg.user "bookmark,hold,send,snapshot,destroy" pool
# Permissions snapshot and destroy are in case --no-sync-snap is not used
]) (localPoolName c.source) ++
map (pool: lib.escapeShellArgs [
"+/run/booted-system/sw/bin/zfs" "allow"
cfg.user "create,mount,receive,rollback" pool
]) (localPoolName c.target);
# Permissions snapshot and destroy are in case --no-sync-snap is not used
(map (buildAllowCommand "allow" [ "bookmark" "hold" "send" "snapshot" "destroy" ]) (localDatasetName c.source)) ++
(map (buildAllowCommand "allow" [ "create" "mount" "receive" "rollback" ]) (localDatasetName c.target));
ExecStopPost =
# Permissions snapshot and destroy are in case --no-sync-snap is not used
(map (buildAllowCommand "unallow" [ "bookmark" "hold" "send" "snapshot" "destroy" ]) (localDatasetName c.source)) ++
(map (buildAllowCommand "unallow" [ "create" "mount" "receive" "rollback" ]) (localDatasetName c.target));
ExecStart = lib.escapeShellArgs ([ "${pkgs.sanoid}/bin/syncoid" ]
++ optionals c.useCommonArgs cfg.commonArgs
++ optional c.recursive "-r"
++ optionals (c.sshKey != null) [ "--sshkey" c.sshKey ]
++ c.extraArgs
++ [ "--sendoptions" c.sendOptions
"--recvoptions" c.recvOptions
"--no-privilege-elevation"
c.source c.target
]);
++ [
"--sendoptions"
c.sendOptions
"--recvoptions"
c.recvOptions
"--no-privilege-elevation"
c.source
c.target
]);
User = cfg.user;
Group = cfg.group;
StateDirectory = [ "syncoid" ];
@@ -240,7 +257,7 @@ in {
# systemd-analyze security | grep syncoid-'*'
AmbientCapabilities = "";
CapabilityBoundingSet = "";
DeviceAllow = ["/dev/zfs"];
DeviceAllow = [ "/dev/zfs" ];
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
@@ -266,7 +283,7 @@ in {
BindPaths = [ "/dev/zfs" ];
BindReadOnlyPaths = [ builtins.storeDir "/etc" "/run" "/bin/sh" ];
# Avoid useless mounting of RootDirectory= in the own RootDirectory= of ExecStart='s mount namespace.
InaccessiblePaths = ["-+/run/syncoid/${escapeUnitName name}"];
InaccessiblePaths = [ "-+/run/syncoid/${escapeUnitName name}" ];
MountAPIVFS = true;
# Create RootDirectory= in the host's mount namespace.
RuntimeDirectory = [ "syncoid/${escapeUnitName name}" ];
@@ -277,8 +294,14 @@ in {
# perf stat -x, 2>perf.log -e 'syscalls:sys_enter_*' syncoid …
# awk >perf.syscalls -F "," '$1 > 0 {sub("syscalls:sys_enter_","",$3); print $3}' perf.log
# systemd-analyze syscall-filter | grep -v -e '#' | sed -e ':loop; /^[^ ]/N; s/\n //; t loop' | grep $(printf ' -e \\<%s\\>' $(cat perf.syscalls)) | cut -f 1 -d ' '
"~@aio" "~@chown" "~@keyring" "~@memlock" "~@privileged"
"~@resources" "~@setuid" "~@sync" "~@timer"
"~@aio"
"~@chown"
"~@keyring"
"~@memlock"
"~@privileged"
"~@resources"
"~@setuid"
"~@timer"
];
SystemCallArchitectures = "native";
# This is for BindPaths= and BindReadOnlyPaths=
@@ -288,8 +311,9 @@ in {
}
cfg.service
c.service
])) cfg.commands;
};
]))
cfg.commands;
};
meta.maintainers = with maintainers; [ julm lopsided98 ];
}
meta.maintainers = with maintainers; [ julm lopsided98 ];
}
+15 -10
View File
@@ -324,28 +324,33 @@ in
in listToAttrs (map formatDevice (filter (fs: fs.autoFormat) fileSystems)) // {
# Mount /sys/fs/pstore for evacuating panic logs and crashdumps from persistent storage onto the disk using systemd-pstore.
# This cannot be done with the other special filesystems because the pstore module (which creates the mount point) is not loaded then.
# Since the pstore filesystem is usually empty right after mounting because the backend isn't registered yet, and a path unit cannot detect files inside of it, the same service waits for that to happen. systemd's restart mechanism can't be used here because the first failure also fails all dependent units.
"mount-pstore" = {
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.util-linux}/bin/mount -t pstore -o nosuid,noexec,nodev pstore /sys/fs/pstore";
ExecStartPost = pkgs.writeShellScript "wait-for-pstore.sh" ''
# skip on kernels without the pstore module
ExecCondition = "${pkgs.kmod}/bin/modprobe -b pstore";
ExecStart = pkgs.writeShellScript "mount-pstore.sh" ''
set -eu
TRIES=0
while [ $TRIES -lt 20 ] && [ "$(cat /sys/module/pstore/parameters/backend)" = "(null)" ]; do
sleep 0.1
TRIES=$((TRIES+1))
# if the pstore module is builtin it will have mounted the persistent store automatically. it may also be already mounted for other reasons.
${pkgs.util-linux}/bin/mountpoint -q /sys/fs/pstore || ${pkgs.util-linux}/bin/mount -t pstore -o nosuid,noexec,nodev pstore /sys/fs/pstore
# wait up to five seconds (arbitrary, happened within one in testing) for the backend to be registered and the files to appear. a systemd path unit cannot detect this happening; and succeeding after a restart would not start dependent units.
TRIES=50
while [ "$(cat /sys/module/pstore/parameters/backend)" = "(null)" ]; do
if (( $TRIES )); then
sleep 0.1
TRIES=$((TRIES-1))
else
echo "Persistent Storage backend was not registered in time." >&2
exit 1
fi
done
'';
RemainAfterExit = true;
};
unitConfig = {
ConditionPathIsMountPoint = "!/sys/fs/pstore";
ConditionVirtualization = "!container";
DefaultDependencies = false; # needed to prevent a cycle
};
after = [ "modprobe@pstore.service" ];
requires = [ "modprobe@pstore.service" ];
before = [ "systemd-pstore.service" ];
wantedBy = [ "systemd-pstore.service" ];
};
+11 -5
View File
@@ -80,12 +80,8 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
binary = pname
# Add optional CLI options:
options = []
major_version = "${versions.major (getVersion chromiumPkg.name)}"
if major_version > "91" and pname.startswith("google-chrome"):
# To avoid a GPU crash:
options += ["--use-gl=angle", "--use-angle=swiftshader"]
options.append("file://${startupHTML}")
# Launch the process:
options.append("file://${startupHTML}")
machine.succeed(ru(f'ulimit -c unlimited; {binary} {shlex.join(options)} & disown'))
if binary.startswith("google-chrome"):
# Need to click away the first window:
@@ -243,6 +239,16 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
machine.wait_for_text("Graphics Feature Status")
with test_new_win("version_info", "chrome://version", "About Version") as clipboard:
filters = [
r"${chromiumPkg.version} \(Official Build",
]
if not all(
re.search(filter, clipboard) for filter in filters
):
assert False, "Version info not correct."
machine.shutdown()
'';
}) channelMap
+12
View File
@@ -85,10 +85,18 @@ in {
"chown -R syncoid:syncoid /var/lib/syncoid/",
)
assert len(source.succeed("zfs allow pool")) == 0, "Pool shouldn't have delegated permissions set before snapshotting"
assert len(source.succeed("zfs allow pool/sanoid")) == 0, "Sanoid dataset shouldn't have delegated permissions set before snapshotting"
assert len(source.succeed("zfs allow pool/syncoid")) == 0, "Syncoid dataset shouldn't have delegated permissions set before snapshotting"
# Take snapshot with sanoid
source.succeed("touch /mnt/pool/sanoid/test.txt")
source.systemctl("start --wait sanoid.service")
assert len(source.succeed("zfs allow pool")) == 0, "Pool shouldn't have delegated permissions set after snapshotting"
assert len(source.succeed("zfs allow pool/sanoid")) == 0, "Sanoid dataset shouldn't have delegated permissions set after snapshotting"
assert len(source.succeed("zfs allow pool/syncoid")) == 0, "Syncoid dataset shouldn't have delegated permissions set after snapshotting"
# Sync snapshots
target.wait_for_open_port(22)
source.succeed("touch /mnt/pool/syncoid/test.txt")
@@ -96,5 +104,9 @@ in {
target.succeed("cat /mnt/pool/sanoid/test.txt")
source.systemctl("start --wait syncoid-pool-syncoid.service")
target.succeed("cat /mnt/pool/syncoid/test.txt")
assert len(source.succeed("zfs allow pool")) == 0, "Pool shouldn't have delegated permissions set after syncing snapshots"
assert len(source.succeed("zfs allow pool/sanoid")) == 0, "Sanoid dataset shouldn't have delegated permissions set after syncing snapshots"
assert len(source.succeed("zfs allow pool/syncoid")) == 0, "Syncoid dataset shouldn't have delegated permissions set after syncing snapshots"
'';
})
+2 -2
View File
@@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
stdenv.mkDerivation rec {
pname = "carla";
version = "2.3.0";
version = "2.3.1";
src = fetchFromGitHub {
owner = "falkTX";
repo = pname;
rev = "v${version}";
sha256 = "sha256-724EFBpbmPMuU1m3T0XMaeohURJA5JcxHfUPYbZ/2LE=";
sha256 = "sha256-LM7wRvUg2Q3f4qBZN1MPvsLkdl1ziArCfhdalyD1G3w=";
};
nativeBuildInputs = [
@@ -1,7 +1,7 @@
{ lib, stdenv
, fetchurl
, pkg-config
, autoconf
, autoreconfHook
, gtk2
, alsa-lib
, SDL
@@ -12,21 +12,43 @@
stdenv.mkDerivation rec {
pname = "soundtracker";
version = "1.0.1";
version = "1.0.2.1";
src = fetchurl {
# Past releases get moved to the "old releases" directory.
# Only the latest release is at the top level.
# Nonetheless, only the name of the file seems to affect which file is
# downloaded, so this path should be fine both for old and current releases.
url = "mirror://sourceforge/soundtracker/soundtracker-${version}.tar.bz2";
sha256 = "0m5iiqccch6w53khpvdldz59zymw13vmwqc5ggx3sn41riwbd6ks";
url = "mirror://sourceforge/soundtracker/soundtracker-${version}.tar.xz";
sha256 = "0nh0dwz8nldc040q6n06vlazhss8ms42r2dffhjcrqj3hbrvfx82";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
# Darwin binutils don't support D option for ar
# ALSA macros are missing on Darwin, causing error
substituteInPlace configure.ac \
--replace ARFLAGS=crD ARFLAGS=cru \
--replace AM_PATH_ALSA '#AM_PATH_ALSA'
# Avoid X11-specific workaround code on more than just Windows
substituteInPlace app/keys.c \
--replace '!defined(_WIN32)' '!defined(_WIN32) && !defined(__APPLE__)'
# "The application with bundle ID (null) is running setugid(), which is not allowed."
sed -i -e '/seteuid/d' -e '/setegid/d' app/main.c
'';
configureFlags = [
"--with-graphics-backend=gdk"
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
"--disable-alsa"
];
enableParallelBuilding = true;
nativeBuildInputs = [
pkg-config
autoconf
autoreconfHook
];
buildInputs = [
gtk2
SDL
@@ -35,8 +57,6 @@ stdenv.mkDerivation rec {
goocanvas
] ++ lib.optional stdenv.isLinux alsa-lib;
hardeningDisable = [ "format" ];
meta = with lib; {
description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
longDescription = ''
@@ -51,7 +71,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
# gdk/gdkx.h not found
broken = stdenv.isDarwin;
};
}
@@ -14,12 +14,12 @@ let
sha256Hash = "18zc9xr2xmphj6m6a1ilwripmvqzplp2583afq1pzzz3cv5h8fvk";
};
betaVersion = {
version = "2020.3.1.20"; # "Android Studio Arctic Fox (2020.3.1) Beta 5"
sha256Hash = "0swcsjx29ar4b0c8yhbynshqdn2sv94ga58h2nrc99927vp17g85";
version = "2020.3.1.21"; # "Android Studio Arctic Fox (2020.3.1) RC 1"
sha256Hash = "04k7c328bl8ixi8bvp2mm33q2hmv40yc9p5dff5cghyycarwpd3f";
};
latestVersion = { # canary & dev
version = "2021.1.1.3"; # "Android Studio Bumblebee (2021.1.1) Canary 3"
sha256Hash = "1n8iahaqhmzvpps9vhv93n3yabb26vl78yndd6gid028r8r90y4x";
version = "2021.1.1.4"; # "Android Studio Bumblebee (2021.1.1) Canary 4"
sha256Hash = "0s2py7xikzryqrfd9v3in9ia9qv71dd9aad1nzbda6ff61inzizb";
};
in {
# Attributes are named by their corresponding release channels
@@ -16,13 +16,13 @@ in
stdenv.mkDerivation rec {
pname = "imagemagick";
version = "6.9.12-17";
version = "6.9.12-19";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick6";
rev = version;
sha256 = "sha256-yZXvxl9Tbl3JRBmRcfsjbkaxywtD08SuUnJayKfwk9M=";
sha256 = "sha256-8KofT9aNd8SXL0YBQ0RUOTccVxQNacvJL1uYPZiSPkY=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
+2 -2
View File
@@ -7,11 +7,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "feh";
version = "3.7";
version = "3.7.1";
src = fetchurl {
url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
sha256 = "0hdvlrlpjxvmhnjvr32nxgpsw0366higg0gh9h37fxrvdh3v3k87";
sha256 = "sha256-V6scph9XyWWVh4Bp9VDTb1GFMPiPoxt0zDnNc5+SWLY=";
};
outputs = [ "out" "man" "doc" ];
+2 -2
View File
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "clight";
version = "4.5";
version = "4.6";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "Clight";
rev = version;
sha256 = "sha256-fvi0JGNNDoxE0iH//HneYwQBBP4mY75AeViLHKQUI30=";
sha256 = "sha256-5kFzVHxoiZi8tz42eUprm49JHCeuA4GPwtHvdiS2RJY=";
};
# dbus-1.pc has datadir=/etc
@@ -0,0 +1,31 @@
{ mkDerivation, lib, fetchFromGitLab, qtbase, libcprime, cmake, ninja }:
mkDerivation rec {
pname = "corehunt";
version = "4.2.0";
src = fetchFromGitLab {
owner = "cubocore/coreapps";
repo = pname;
rev = "v${version}";
sha256 = "sha256-KnIqLI8MtLirFycW2YNHAjS7EDfU3dpqb6vVq9Tl6Ow=";
};
nativeBuildInputs = [
cmake
ninja
];
buildInputs = [
qtbase
libcprime
];
meta = with lib; {
description = "A file finder utility from the C Suite";
homepage = "https://gitlab.com/cubocore/coreapps/corehunt";
license = licenses.gpl3Only;
maintainers = with maintainers; [ dan4ik605743 ];
platforms = platforms.linux;
};
}
+2 -2
View File
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "fuzzel";
version = "1.6.0";
version = "1.6.1";
src = fetchzip {
url = "https://codeberg.org/dnkl/fuzzel/archive/${version}.tar.gz";
sha256 = "sha256-iTpUWvQszDtNc1gDqkPbhvgUVNWydpivhnOCHMJVtSw=";
sha256 = "sha256-JW5sAlTprSRIdFbmSaUreGtNccERgQMGEW+WCSscYQk=";
};
nativeBuildInputs = [ pkg-config meson ninja scdoc git ];
+3 -3
View File
@@ -4,9 +4,9 @@
, curl, writeShellScript, common-updater-scripts }:
let
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.5.19-9e79d1da/Hubstaff-1.5.19-9e79d1da.sh";
version = "1.5.19-9e79d1da";
sha256 = "1l4sq8cblpl1kclkx5pgy0ldfmqa3n8bvdl5qml0n78r0lpk382j";
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.0-02e625d8/Hubstaff-1.6.0-02e625d8.sh";
version = "1.6.0-02e625d8";
sha256 = "1rd4icgy25j9l1xs6djmpv2nc2ilvjpblddv95xvvz39z82sfr29";
rpath = lib.makeLibraryPath
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
@@ -0,0 +1,42 @@
{ lib, stdenv, fetchFromGitHub
, desktop-file-utils, glib, gtk3, meson, ninja, pkg-config, python3, vala
, wrapGAppsHook
, glib-networking, gobject-introspection, json-glib, libgee, libhandy, libsoup
}:
stdenv.mkDerivation rec {
pname = "markets";
version = "0.5.2";
src = fetchFromGitHub {
owner = "bitstower";
repo = "markets";
rev = version;
sha256 = "0nk1bs7i6b7r90g5qwd3s2m462vk3kvza0drq7rzb5sdaiz9ccnz";
};
nativeBuildInputs = [
desktop-file-utils glib gtk3 meson ninja pkg-config python3 vala
wrapGAppsHook
];
buildInputs = [
glib glib-networking gobject-introspection gtk3 json-glib libgee libhandy
libsoup
];
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
'';
postInstall = ''
ln -s bitstower-markets $out/bin/markets
'';
meta = with lib; {
homepage = "https://github.com/bitstower/markets";
description = "Stock, currency and cryptocurrency tracker";
maintainers = with maintainers; [ qyliss ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}
@@ -4,7 +4,7 @@
}:
stdenv.mkDerivation rec {
pname = "prusa-slicer";
version = "2.3.1";
version = "2.3.3";
nativeBuildInputs = [
cmake
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "prusa3d";
repo = "PrusaSlicer";
sha256 = "1lyaxc9nha1cd8p35iam1k1pikp9kfx0fj1l6vb1xb8pgqp02jnn";
sha256 = "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm";
rev = "version_${version}";
};
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "apache-directory-studio";
version = "2.0.0-M15";
versionWithDate = "2.0.0.v20200411-M15";
version = "2.0.0-M17";
versionWithDate = "2.0.0.v20210717-M17";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86_64.tar.gz";
sha256 = "1rkyb0qcsl9hk2qcwp5mwaab69q3sn77v5xyn9mbvi5wg9icbc37";
sha256 = "19zdspzv4n3mfgb1g45s3wh0vbvn6a9zjd4xi5x2afmdjkzlwxi4";
}
else throw "Unsupported system: ${stdenv.hostPlatform.system}";
@@ -16,6 +16,7 @@ mkChromiumDerivation (base: rec {
cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
cp -v "$buildPath/icudtl.dat" "$libExecPath/"
cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
cp -v "$buildPath/chrome" "$libExecPath/$packageName"
# Swiftshader
@@ -62,9 +63,7 @@ mkChromiumDerivation (base: rec {
-e '/\[Desktop Entry\]/a\' \
-e 'StartupWMClass=chromium-browser' \
$out/share/applications/chromium-browser.desktop
'' + ''
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
''; # TODO: Merge
'';
passthru = { inherit sandboxExecutableName; };
@@ -88,7 +87,7 @@ mkChromiumDerivation (base: rec {
license = if enableWideVine then licenses.unfree else licenses.bsd3;
platforms = platforms.linux;
mainProgram = "chromium";
hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium" || channel == "beta")
hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium")
then ["aarch64-linux" "x86_64-linux"]
else [];
timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
@@ -18,7 +18,7 @@
, systemd
# Loaded at runtime.
, libexif
, libexif, pciutils
# Additional dependencies according to other distros.
## Ubuntu
@@ -62,7 +62,7 @@ let
alsa-lib libXdamage libXtst libXrandr libxshmfence expat cups
dbus gdk-pixbuf gcc-unwrapped.lib
systemd
libexif
libexif pciutils
liberation_ttf curl util-linux xdg-utils wget
flac harfbuzz icu libpng opusWithCustomModes snappy speechd
bzip2 libcap at-spi2-atk at-spi2-core
@@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.1.131";
version = "3.1.133";
src = python3Packages.fetchPypi {
pname = "FlexGet";
inherit version;
sha256 = "sha256-wjMtCrffRhk7NL+Z0PeljuDc3WjVWSMsjWLbqo8qUjU=";
sha256 = "1mfmy2nbxx9k6hnhwxpf2062rwspigfhbvkpr161grd5amcs2cr6";
};
postPatch = ''
@@ -1,8 +1,8 @@
{
"name": "element-desktop",
"productName": "Element",
"main": "src/electron-main.js",
"version": "1.7.31",
"main": "lib/electron-main.js",
"version": "1.7.33",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
@@ -18,18 +18,24 @@
"mkdirs": "mkdirp packages deploys",
"fetch": "yarn run mkdirs && node scripts/fetch-package.js",
"asar-webapp": "asar p webapp webapp.asar",
"start": "electron .",
"lint": "eslint src/ scripts/ hak/",
"start": "yarn run build:ts && yarn run build:res && electron .",
"lint": "yarn lint:types && yarn lint:js",
"lint:js": "eslint src/ scripts/ hak/",
"lint:types": "tsc --noEmit",
"build:native": "yarn run hak",
"build32": "electron-builder --ia32",
"build64": "electron-builder --x64",
"build": "electron-builder",
"build:native:universal": "yarn run hak --target x86_64-apple-darwin fetchandbuild && yarn run hak --target aarch64-apple-darwin fetchandbuild && yarn run hak --target x86_64-apple-darwin --target aarch64-apple-darwin copyandlink",
"build:32": "yarn run build:ts && yarn run build:res && electron-builder --ia32",
"build:64": "yarn run build:ts && yarn run build:res && electron-builder --x64",
"build:universal": "yarn run build:ts && yarn run build:res && electron-builder --universal",
"build": "yarn run build:ts && yarn run build:res && electron-builder",
"build:ts": "tsc",
"build:res": "node scripts/copy-res.js",
"docker:setup": "docker build -t element-desktop-dockerbuild dockerbuild",
"docker:build:native": "scripts/in-docker.sh yarn run hak",
"docker:build": "scripts/in-docker.sh yarn run build",
"docker:install": "scripts/in-docker.sh yarn install",
"debrepo": "scripts/mkrepo.sh",
"clean": "rimraf webapp.asar dist packages deploys",
"clean": "rimraf webapp.asar dist packages deploys lib",
"hak": "node scripts/hak/index.js"
},
"dependencies": {
@@ -42,7 +48,14 @@
"request": "^2.88.2"
},
"devDependencies": {
"@types/auto-launch": "^5.0.1",
"@types/counterpart": "^0.18.1",
"@types/minimist": "^1.2.1",
"@typescript-eslint/eslint-plugin": "^4.17.0",
"@typescript-eslint/parser": "^4.17.0",
"asar": "^2.0.1",
"chokidar": "^3.5.2",
"electron": "12.0.11",
"electron-builder": "22.11.4",
"electron-builder-squirrel-windows": "22.11.4",
"electron-devtools-installer": "^3.1.1",
@@ -60,7 +73,8 @@
"npm": "^6.14.11",
"rimraf": "^3.0.2",
"semver": "^7.3.4",
"tar": "^6.1.0"
"tar": "^6.1.0",
"typescript": "^4.1.3"
},
"hakDependencies": {
"matrix-seshat": "^2.2.3",
@@ -68,14 +82,14 @@
},
"build": {
"appId": "im.riot.app",
"electronVersion": "12.0.11",
"electronVersion": "12.0.14",
"files": [
"package.json",
{
"from": ".hak/hakModules",
"to": "node_modules"
},
"src/**"
"lib/**"
],
"extraResources": [
{
@@ -129,6 +129,14 @@
sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
};
}
{
name = "_electron_get___get_1.12.4.tgz";
path = fetchurl {
name = "_electron_get___get_1.12.4.tgz";
url = "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz";
sha1 = "a5971113fc1bf8fa12a8789dc20152a7359f06ab";
};
}
{
name = "_electron_universal___universal_1.0.5.tgz";
path = fetchurl {
@@ -417,6 +425,30 @@
sha1 = "e8a32c30a95d20c2b1bb635cc580981a06389858";
};
}
{
name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz";
path = fetchurl {
name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz";
url = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz";
sha1 = "7619c2eb21b25483f6d167548b4cfd5a7488c3d5";
};
}
{
name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz";
path = fetchurl {
name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz";
url = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz";
sha1 = "5bd262af94e9d25bd1e71b05deed44876a222e8b";
};
}
{
name = "_nodelib_fs.walk___fs.walk_1.2.7.tgz";
path = fetchurl {
name = "_nodelib_fs.walk___fs.walk_1.2.7.tgz";
url = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz";
sha1 = "94c23db18ee4653e129abd26fb06f870ac9e1ee2";
};
}
{
name = "_sindresorhus_is___is_0.14.0.tgz";
path = fetchurl {
@@ -433,6 +465,14 @@
sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421";
};
}
{
name = "_types_auto_launch___auto_launch_5.0.1.tgz";
path = fetchurl {
name = "_types_auto_launch___auto_launch_5.0.1.tgz";
url = "https://registry.yarnpkg.com/@types/auto-launch/-/auto-launch-5.0.1.tgz";
sha1 = "388a047edc0e754d8e8978cbd9ed4672b36be2c4";
};
}
{
name = "_types_color_name___color_name_1.1.1.tgz";
path = fetchurl {
@@ -441,6 +481,14 @@
sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
};
}
{
name = "_types_counterpart___counterpart_0.18.1.tgz";
path = fetchurl {
name = "_types_counterpart___counterpart_0.18.1.tgz";
url = "https://registry.yarnpkg.com/@types/counterpart/-/counterpart-0.18.1.tgz";
sha1 = "b1b784d9e54d9879f0a8cb12f2caedab65430fe8";
};
}
{
name = "_types_debug___debug_4.1.5.tgz";
path = fetchurl {
@@ -465,6 +513,14 @@
sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183";
};
}
{
name = "_types_json_schema___json_schema_7.0.7.tgz";
path = fetchurl {
name = "_types_json_schema___json_schema_7.0.7.tgz";
url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz";
sha1 = "98a993516c859eb0d5c4c8f098317a9ea68db9ad";
};
}
{
name = "_types_minimatch___minimatch_3.0.4.tgz";
path = fetchurl {
@@ -473,6 +529,14 @@
sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21";
};
}
{
name = "_types_minimist___minimist_1.2.1.tgz";
path = fetchurl {
name = "_types_minimist___minimist_1.2.1.tgz";
url = "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz";
sha1 = "283f669ff76d7b8260df8ab7a4262cc83d988256";
};
}
{
name = "_types_node___node_13.7.1.tgz";
path = fetchurl {
@@ -489,6 +553,14 @@
sha1 = "d934aacc22424fe9622ebf6857370c052eae464e";
};
}
{
name = "_types_node___node_14.17.4.tgz";
path = fetchurl {
name = "_types_node___node_14.17.4.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.4.tgz";
sha1 = "218712242446fc868d0e007af29a4408c7765bc0";
};
}
{
name = "_types_plist___plist_3.0.2.tgz";
path = fetchurl {
@@ -521,6 +593,62 @@
sha1 = "4b6d35bb8e680510a7dc2308518a80ee1ef27e01";
};
}
{
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.1.tgz";
sha1 = "c045e440196ae45464e08e20c38aff5c3a825947";
};
}
{
name = "_typescript_eslint_experimental_utils___experimental_utils_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_experimental_utils___experimental_utils_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.1.tgz";
sha1 = "3869489dcca3c18523c46018b8996e15948dbadc";
};
}
{
name = "_typescript_eslint_parser___parser_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_parser___parser_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.1.tgz";
sha1 = "5181b81658414f47291452c15bf6cd44a32f85bd";
};
}
{
name = "_typescript_eslint_scope_manager___scope_manager_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_scope_manager___scope_manager_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz";
sha1 = "fd3c20627cdc12933f6d98b386940d8d0ce8a991";
};
}
{
name = "_typescript_eslint_types___types_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_types___types_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.1.tgz";
sha1 = "d0f2ecbef3684634db357b9bbfc97b94b828f83f";
};
}
{
name = "_typescript_eslint_typescript_estree___typescript_estree_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_typescript_estree___typescript_estree_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz";
sha1 = "af882ae41740d1f268e38b4d0fad21e7e8d86a81";
};
}
{
name = "_typescript_eslint_visitor_keys___visitor_keys_4.28.1.tgz";
path = fetchurl {
name = "_typescript_eslint_visitor_keys___visitor_keys_4.28.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz";
sha1 = "162a515ee255f18a6068edc26df793cdc1ec9157";
};
}
{
name = "JSONStream___JSONStream_1.3.5.tgz";
path = fetchurl {
@@ -729,6 +857,14 @@
sha1 = "ae101a62bc08a597b4c9ab5b7089d456630549fe";
};
}
{
name = "anymatch___anymatch_3.1.2.tgz";
path = fetchurl {
name = "anymatch___anymatch_3.1.2.tgz";
url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz";
sha1 = "c0557c096af32f106198f4f4e2a383537e378716";
};
}
{
name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
path = fetchurl {
@@ -817,6 +953,14 @@
sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38";
};
}
{
name = "array_union___array_union_2.1.0.tgz";
path = fetchurl {
name = "array_union___array_union_2.1.0.tgz";
url = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
};
}
{
name = "asap___asap_2.0.6.tgz";
path = fetchurl {
@@ -985,6 +1129,14 @@
sha1 = "bd39aadab5dc4bdac222a07df5baf1af745b2228";
};
}
{
name = "binary_extensions___binary_extensions_2.2.0.tgz";
path = fetchurl {
name = "binary_extensions___binary_extensions_2.2.0.tgz";
url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz";
sha1 = "75f502eeaf9ffde42fc98829645be4ea76bd9e2d";
};
}
{
name = "bl___bl_4.0.3.tgz";
path = fetchurl {
@@ -1017,6 +1169,14 @@
sha1 = "e05a63f796a6c1ff25f4771ec7adadc148c07233";
};
}
{
name = "boolean___boolean_3.1.2.tgz";
path = fetchurl {
name = "boolean___boolean_3.1.2.tgz";
url = "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz";
sha1 = "e30f210a26b02458482a8cc353ab06f262a780c2";
};
}
{
name = "boxen___boxen_1.3.0.tgz";
path = fetchurl {
@@ -1041,6 +1201,14 @@
sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
};
}
{
name = "braces___braces_3.0.2.tgz";
path = fetchurl {
name = "braces___braces_3.0.2.tgz";
url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
};
}
{
name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
path = fetchurl {
@@ -1233,6 +1401,14 @@
sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
};
}
{
name = "chokidar___chokidar_3.5.2.tgz";
path = fetchurl {
name = "chokidar___chokidar_3.5.2.tgz";
url = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz";
sha1 = "dba3976fcadb016f66fd365021d91600d01c1e75";
};
}
{
name = "chownr___chownr_1.1.4.tgz";
path = fetchurl {
@@ -1505,6 +1681,14 @@
sha1 = "d9678a9d8f04de8bf5cd475105da8fdae49c2ec4";
};
}
{
name = "config_chain___config_chain_1.1.13.tgz";
path = fetchurl {
name = "config_chain___config_chain_1.1.13.tgz";
url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz";
sha1 = "fad0795aa6a6cdaff9ed1b68e9dff94372c232f4";
};
}
{
name = "config_chain___config_chain_1.1.12.tgz";
path = fetchurl {
@@ -1545,6 +1729,14 @@
sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
};
}
{
name = "core_js___core_js_3.15.1.tgz";
path = fetchurl {
name = "core_js___core_js_3.15.1.tgz";
url = "https://registry.yarnpkg.com/core-js/-/core-js-3.15.1.tgz";
sha1 = "6c08ab88abdf56545045ccf5fd81f47f407e7f1a";
};
}
{
name = "core_util_is___core_util_is_1.0.2.tgz";
path = fetchurl {
@@ -1673,6 +1865,14 @@
sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
};
}
{
name = "debug___debug_2.6.9.tgz";
path = fetchurl {
name = "debug___debug_2.6.9.tgz";
url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
};
}
{
name = "debug___debug_3.2.7.tgz";
path = fetchurl {
@@ -1825,6 +2025,14 @@
sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
};
}
{
name = "detect_node___detect_node_2.1.0.tgz";
path = fetchurl {
name = "detect_node___detect_node_2.1.0.tgz";
url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz";
sha1 = "c9c70775a49c3d03bc2c06d9a73be550f978f8b1";
};
}
{
name = "dezalgo___dezalgo_1.0.3.tgz";
path = fetchurl {
@@ -1841,6 +2049,14 @@
sha1 = "785c41dc5f645b34343a4eafc50b79bac7f11631";
};
}
{
name = "dir_glob___dir_glob_3.0.1.tgz";
path = fetchurl {
name = "dir_glob___dir_glob_3.0.1.tgz";
url = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
};
}
{
name = "dmg_builder___dmg_builder_22.11.4.tgz";
path = fetchurl {
@@ -2009,6 +2225,14 @@
sha1 = "4f36d09e3f953d87aff103bf010f460056050aa8";
};
}
{
name = "electron___electron_12.0.11.tgz";
path = fetchurl {
name = "electron___electron_12.0.11.tgz";
url = "https://registry.yarnpkg.com/electron/-/electron-12.0.11.tgz";
sha1 = "555dc1cf663e320f2f2cbdf89319352b08fc59f2";
};
}
{
name = "emoji_regex___emoji_regex_7.0.3.tgz";
path = fetchurl {
@@ -2025,6 +2249,14 @@
sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
};
}
{
name = "encodeurl___encodeurl_1.0.2.tgz";
path = fetchurl {
name = "encodeurl___encodeurl_1.0.2.tgz";
url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
};
}
{
name = "encoding___encoding_0.1.13.tgz";
path = fetchurl {
@@ -2097,6 +2329,14 @@
sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
};
}
{
name = "es6_error___es6_error_4.1.1.tgz";
path = fetchurl {
name = "es6_error___es6_error_4.1.1.tgz";
url = "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz";
sha1 = "9e3af407459deed47e9a91f9b885a84eb05c561d";
};
}
{
name = "es6_promise___es6_promise_4.2.8.tgz";
path = fetchurl {
@@ -2137,6 +2377,14 @@
sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
};
}
{
name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
path = fetchurl {
name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
};
}
{
name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
path = fetchurl {
@@ -2169,6 +2417,14 @@
sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
};
}
{
name = "eslint_utils___eslint_utils_3.0.0.tgz";
path = fetchurl {
name = "eslint_utils___eslint_utils_3.0.0.tgz";
url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz";
sha1 = "8aebaface7345bb33559db0a1f13a1d2d48c3672";
};
}
{
name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
path = fetchurl {
@@ -2305,6 +2561,14 @@
sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
};
}
{
name = "extract_zip___extract_zip_1.7.0.tgz";
path = fetchurl {
name = "extract_zip___extract_zip_1.7.0.tgz";
url = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz";
sha1 = "556cc3ae9df7f452c493a0cfb51cc30277940927";
};
}
{
name = "extsprintf___extsprintf_1.3.0.tgz";
path = fetchurl {
@@ -2337,6 +2601,14 @@
sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
};
}
{
name = "fast_glob___fast_glob_3.2.6.tgz";
path = fetchurl {
name = "fast_glob___fast_glob_3.2.6.tgz";
url = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.6.tgz";
sha1 = "434dd9529845176ea049acc9343e8282765c6e1a";
};
}
{
name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
path = fetchurl {
@@ -2353,6 +2625,22 @@
sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
};
}
{
name = "fastq___fastq_1.11.0.tgz";
path = fetchurl {
name = "fastq___fastq_1.11.0.tgz";
url = "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz";
sha1 = "bb9fb955a07130a918eb63c1f5161cc32a5d0858";
};
}
{
name = "fd_slicer___fd_slicer_1.1.0.tgz";
path = fetchurl {
name = "fd_slicer___fd_slicer_1.1.0.tgz";
url = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
};
}
{
name = "figgy_pudding___figgy_pudding_3.5.2.tgz";
path = fetchurl {
@@ -2385,6 +2673,14 @@
sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
};
}
{
name = "fill_range___fill_range_7.0.1.tgz";
path = fetchurl {
name = "fill_range___fill_range_7.0.1.tgz";
url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
};
}
{
name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
path = fetchurl {
@@ -2553,6 +2849,14 @@
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
};
}
{
name = "fsevents___fsevents_2.3.2.tgz";
path = fetchurl {
name = "fsevents___fsevents_2.3.2.tgz";
url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz";
sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a";
};
}
{
name = "function_bind___function_bind_1.1.1.tgz";
path = fetchurl {
@@ -2681,6 +2985,14 @@
sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
};
}
{
name = "global_agent___global_agent_2.2.0.tgz";
path = fetchurl {
name = "global_agent___global_agent_2.2.0.tgz";
url = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz";
sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc";
};
}
{
name = "global_dirs___global_dirs_0.1.1.tgz";
path = fetchurl {
@@ -2697,6 +3009,14 @@
sha1 = "70a76fe84ea315ab37b1f5576cbde7d48ef72686";
};
}
{
name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz";
path = fetchurl {
name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz";
url = "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz";
sha1 = "d03b5102dfde3a69914f5ee7d86761ca35d57d8f";
};
}
{
name = "global___global_4.3.2.tgz";
path = fetchurl {
@@ -2721,6 +3041,22 @@
sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
};
}
{
name = "globalthis___globalthis_1.0.2.tgz";
path = fetchurl {
name = "globalthis___globalthis_1.0.2.tgz";
url = "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz";
sha1 = "2a235d34f4d8036219f7e34929b5de9e18166b8b";
};
}
{
name = "globby___globby_11.0.4.tgz";
path = fetchurl {
name = "globby___globby_11.0.4.tgz";
url = "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz";
sha1 = "2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5";
};
}
{
name = "got___got_6.7.1.tgz";
path = fetchurl {
@@ -2977,6 +3313,14 @@
sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
};
}
{
name = "ignore___ignore_5.1.8.tgz";
path = fetchurl {
name = "ignore___ignore_5.1.8.tgz";
url = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
};
}
{
name = "image_q___image_q_1.1.1.tgz";
path = fetchurl {
@@ -3113,6 +3457,14 @@
sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
};
}
{
name = "is_binary_path___is_binary_path_2.1.0.tgz";
path = fetchurl {
name = "is_binary_path___is_binary_path_2.1.0.tgz";
url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
};
}
{
name = "is_callable___is_callable_1.1.4.tgz";
path = fetchurl {
@@ -3241,6 +3593,14 @@
sha1 = "43e8d65cc56e1b67f8d47262cf667099193f45a8";
};
}
{
name = "is_number___is_number_7.0.0.tgz";
path = fetchurl {
name = "is_number___is_number_7.0.0.tgz";
url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
};
}
{
name = "is_obj___is_obj_1.0.1.tgz";
path = fetchurl {
@@ -3929,6 +4289,14 @@
sha1 = "aa8387104f2687edca01c8687ee45013d02d19bd";
};
}
{
name = "matcher___matcher_3.0.0.tgz";
path = fetchurl {
name = "matcher___matcher_3.0.0.tgz";
url = "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz";
sha1 = "bd9060f4c5b70aa8041ccc6f80368760994f30ca";
};
}
{
name = "63f9119bc0bc304e83d4e8e22364caa7850e7671";
path = fetchurl {
@@ -3953,6 +4321,22 @@
sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
};
}
{
name = "merge2___merge2_1.4.1.tgz";
path = fetchurl {
name = "merge2___merge2_1.4.1.tgz";
url = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
};
}
{
name = "micromatch___micromatch_4.0.4.tgz";
path = fetchurl {
name = "micromatch___micromatch_4.0.4.tgz";
url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz";
sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9";
};
}
{
name = "mime_db___mime_db_1.42.0.tgz";
path = fetchurl {
@@ -4281,6 +4665,14 @@
sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11";
};
}
{
name = "npm_conf___npm_conf_1.1.3.tgz";
path = fetchurl {
name = "npm_conf___npm_conf_1.1.3.tgz";
url = "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz";
sha1 = "256cc47bd0e218c259c4e9550bf413bc2192aff9";
};
}
{
name = "npm_install_checks___npm_install_checks_3.0.2.tgz";
path = fetchurl {
@@ -4729,6 +5121,22 @@
sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
};
}
{
name = "path_type___path_type_4.0.0.tgz";
path = fetchurl {
name = "path_type___path_type_4.0.0.tgz";
url = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
};
}
{
name = "pend___pend_1.2.0.tgz";
path = fetchurl {
name = "pend___pend_1.2.0.tgz";
url = "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz";
sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
};
}
{
name = "performance_now___performance_now_2.1.0.tgz";
path = fetchurl {
@@ -4745,6 +5153,14 @@
sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c";
};
}
{
name = "picomatch___picomatch_2.3.0.tgz";
path = fetchurl {
name = "picomatch___picomatch_2.3.0.tgz";
url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz";
sha1 = "f1f061de8f6a4bf022892e2d128234fb98302972";
};
}
{
name = "pify___pify_2.3.0.tgz";
path = fetchurl {
@@ -5009,6 +5425,14 @@
sha1 = "30b3505f6fca741d5ae541964d1b3ae9dc2a0de8";
};
}
{
name = "queue_microtask___queue_microtask_1.2.3.tgz";
path = fetchurl {
name = "queue_microtask___queue_microtask_1.2.3.tgz";
url = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz";
sha1 = "4929228bbc724dfac43e0efb058caf7b6cfb6243";
};
}
{
name = "qw___qw_1.0.1.tgz";
path = fetchurl {
@@ -5129,6 +5553,14 @@
sha1 = "8d45407b4f870a0dcaebc0e28670d18e74514309";
};
}
{
name = "readdirp___readdirp_3.6.0.tgz";
path = fetchurl {
name = "readdirp___readdirp_3.6.0.tgz";
url = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz";
sha1 = "74a370bd857116e245b29cc97340cd431a02a6c7";
};
}
{
name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
path = fetchurl {
@@ -5265,6 +5697,14 @@
sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
};
}
{
name = "reusify___reusify_1.0.4.tgz";
path = fetchurl {
name = "reusify___reusify_1.0.4.tgz";
url = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
sha1 = "90da382b1e126efc02146e90845a88db12925d76";
};
}
{
name = "rimraf___rimraf_2.7.1.tgz";
path = fetchurl {
@@ -5281,6 +5721,22 @@
sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
};
}
{
name = "roarr___roarr_2.15.4.tgz";
path = fetchurl {
name = "roarr___roarr_2.15.4.tgz";
url = "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz";
sha1 = "f5fe795b7b838ccfe35dc608e0282b9eba2e7afd";
};
}
{
name = "run_parallel___run_parallel_1.2.0.tgz";
path = fetchurl {
name = "run_parallel___run_parallel_1.2.0.tgz";
url = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz";
sha1 = "66d1368da7bdf921eb9d95bd1a9229e7f21a43ee";
};
}
{
name = "run_queue___run_queue_1.0.3.tgz";
path = fetchurl {
@@ -5329,6 +5785,14 @@
sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
};
}
{
name = "semver_compare___semver_compare_1.0.0.tgz";
path = fetchurl {
name = "semver_compare___semver_compare_1.0.0.tgz";
url = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
};
}
{
name = "semver_diff___semver_diff_2.1.0.tgz";
path = fetchurl {
@@ -5385,6 +5849,14 @@
sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
};
}
{
name = "serialize_error___serialize_error_7.0.1.tgz";
path = fetchurl {
name = "serialize_error___serialize_error_7.0.1.tgz";
url = "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz";
sha1 = "f1360b0447f61ffb483ec4157c737fab7d778e18";
};
}
{
name = "set_blocking___set_blocking_2.0.0.tgz";
path = fetchurl {
@@ -5449,6 +5921,14 @@
sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
};
}
{
name = "slash___slash_3.0.0.tgz";
path = fetchurl {
name = "slash___slash_3.0.0.tgz";
url = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz";
sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
};
}
{
name = "slice_ansi___slice_ansi_1.0.0.tgz";
path = fetchurl {
@@ -5793,6 +6273,14 @@
sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
};
}
{
name = "sumchecker___sumchecker_3.0.1.tgz";
path = fetchurl {
name = "sumchecker___sumchecker_3.0.1.tgz";
url = "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz";
sha1 = "6377e996795abb0b6d348e9b3e1dfb24345a8e42";
};
}
{
name = "supports_color___supports_color_5.5.0.tgz";
path = fetchurl {
@@ -5961,6 +6449,14 @@
sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771";
};
}
{
name = "to_regex_range___to_regex_range_5.0.1.tgz";
path = fetchurl {
name = "to_regex_range___to_regex_range_5.0.1.tgz";
url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
};
}
{
name = "tough_cookie___tough_cookie_2.4.3.tgz";
path = fetchurl {
@@ -5985,6 +6481,22 @@
sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
};
}
{
name = "tslib___tslib_1.14.1.tgz";
path = fetchurl {
name = "tslib___tslib_1.14.1.tgz";
url = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
};
}
{
name = "tsutils___tsutils_3.21.0.tgz";
path = fetchurl {
name = "tsutils___tsutils_3.21.0.tgz";
url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz";
sha1 = "b48717d394cea6c1e096983eed58e9d61715b623";
};
}
{
name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
path = fetchurl {
@@ -5993,6 +6505,14 @@
sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
};
}
{
name = "tunnel___tunnel_0.0.6.tgz";
path = fetchurl {
name = "tunnel___tunnel_0.0.6.tgz";
url = "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz";
sha1 = "72f1314b34a5b192db012324df2cc587ca47f92c";
};
}
{
name = "tweetnacl___tweetnacl_0.14.5.tgz";
path = fetchurl {
@@ -6009,6 +6529,14 @@
sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
};
}
{
name = "type_fest___type_fest_0.13.1.tgz";
path = fetchurl {
name = "type_fest___type_fest_0.13.1.tgz";
url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz";
sha1 = "0172cb5bce80b0bd542ea348db50c7e21834d934";
};
}
{
name = "type_fest___type_fest_0.16.0.tgz";
path = fetchurl {
@@ -6049,6 +6577,14 @@
sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
};
}
{
name = "typescript___typescript_4.3.4.tgz";
path = fetchurl {
name = "typescript___typescript_4.3.4.tgz";
url = "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz";
sha1 = "3f85b986945bcf31071decdd96cf8bfa65f9dcbc";
};
}
{
name = "uid_number___uid_number_0.0.6.tgz";
path = fetchurl {
@@ -6609,6 +7145,14 @@
sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
};
}
{
name = "yauzl___yauzl_2.10.0.tgz";
path = fetchurl {
name = "yauzl___yauzl_2.10.0.tgz";
url = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
};
}
{
name = "zip_stream___zip_stream_4.1.0.tgz";
path = fetchurl {
@@ -8,12 +8,12 @@
let
executableName = "element-desktop";
version = "1.7.31";
version = "1.7.33";
src = fetchFromGitHub {
owner = "vector-im";
repo = "element-desktop";
rev = "v${version}";
sha256 = "14vyqzf69g4n3i7qjm1pgq2kwym6cira0jwvirzdrwxkfsl0dsq6";
sha256 = "sha256-1JmuKyJt6Q80lLXXrFw+h6/0JzWcr0qMIU9mTO+K56I=";
};
in mkYarnPackage rec {
name = "element-desktop-${version}";
@@ -24,6 +24,17 @@ in mkYarnPackage rec {
nativeBuildInputs = [ makeWrapper ];
buildPhase = ''
runHook preBuild
export HOME=$(mktemp -d)
pushd deps/element-desktop/
npx tsc
yarn run i18n
node ./scripts/copy-res.js
popd
runHook postBuild
'';
installPhase = ''
# resources
mkdir -p "$out/share/element"
@@ -32,6 +43,7 @@ in mkYarnPackage rec {
cp -r './deps/element-desktop/res/img' "$out/share/element"
rm "$out/share/element/electron/node_modules"
cp -r './node_modules' "$out/share/element/electron"
cp $out/share/element/electron/lib/i18n/strings/en_EN.json $out/share/element/electron/lib/i18n/strings/en-us.json
# icons
for icon in $out/share/element/electron/build/icons/*.png; do
@@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec {
pname = "element-web";
version = "1.7.31";
version = "1.7.33";
src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
sha256 = "1p0vg5bkri7qiqv5yic56hjjbb5zvhvyzsm5zi7fx3yb7zdxmr3f";
sha256 = "sha256-MhbXvl+FUCL6D6y2Oa5Kf5ie9fU85wEO/tQe881CD8I=";
};
installPhase = ''
@@ -1,11 +1,13 @@
{ mkDerivation, lib, fetchFromGitHub, callPackage, fetchpatch
, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
, extra-cmake-modules
, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
, tl-expected, hunspell, glibmm, webkitgtk, jemalloc
, rnnoise, extra-cmake-modules
, rnnoise
# Transitive dependencies:
, pcre, xorg, util-linuxMinimal, libselinux, libsepol, epoxy
, util-linuxMinimal
, pcre, libpthreadstubs, libXdmcp, libselinux, libsepol, epoxy
, at-spi2-core, libXtst, libthai, libdatrie
, xdg-utils, libsysprof-capture, libpsl, brotli
}:
@@ -72,7 +74,7 @@ in mkDerivation rec {
tg_owt
# Transitive dependencies:
util-linuxMinimal # Required for libmount thus not nativeBuildInputs.
pcre xorg.libpthreadstubs xorg.libXdmcp libselinux libsepol epoxy
pcre libpthreadstubs libXdmcp libselinux libsepol epoxy
at-spi2-core libXtst libthai libdatrie libsysprof-capture libpsl brotli
];
@@ -85,20 +87,6 @@ in mkDerivation rec {
"-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF"
];
# Note: The following packages could be packaged system-wide, but it's
# probably best to use the bundled ones from tdesktop (Arch does this too):
# rlottie:
# - Sources (problem: there are no stable releases!):
# - desktop-app (tdesktop): https://github.com/desktop-app/rlottie
# - upstream: https://github.com/Samsung/rlottie
# libtgvoip:
# - Sources (problem: the stable releases might be too old!):
# - tdesktop: https://github.com/telegramdesktop/libtgvoip
# - upstream: https://github.com/grishka/libtgvoip
# Both of these packages are included in this PR (kotatogram-desktop):
# https://github.com/NixOS/nixpkgs/pull/75210
# TODO: Package mapbox-variant
postFixup = ''
# This is necessary to run Telegram in a pure environment.
# We also use gappsWrapperArgs from wrapGAppsHook.
@@ -1,9 +1,9 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch
{ lib, stdenv, fetchFromGitHub
, pkg-config, cmake, ninja, yasm
, libjpeg, openssl, libopus, ffmpeg, alsa-lib, libpulseaudio, protobuf
, openh264, usrsctp, libevent, libvpx
, libX11, libXtst, libXcomposite, libXdamage, libXext, libXrender, libXrandr, libXi
, glib, abseil-cpp, pcre, util-linuxMinimal, libselinux, libsepol, pipewire
, xorg, libX11, libXtst, libXcomposite, libXdamage, libXext, libXrender, libXrandr, libXi
}:
stdenv.mkDerivation {
@@ -29,11 +29,11 @@
assert pulseaudioSupport -> libpulseaudio != null;
let
version = "5.7.26030.0627";
version = "5.7.28852.0718";
srcs = {
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
sha256 = "1nooaafH+ajRtdrknXmFPclC4fJMpRTo+gBsaPHYfT0=";
sha256 = "NoB9qxsuGsiwsZ3Y+F3WZpszujPBX/nehtFFI+KPV5E=";
};
};
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "juju";
version = "2.9.5";
version = "2.9.7";
src = fetchFromGitHub {
owner = "juju";
repo = "juju";
rev = "juju-${version}";
sha256 = "sha256-oBwusx63a8AWNHqlNtG0S/SiIRM55fbc/CGN2MFJDYA=";
sha256 = "sha256-jGrN0tsLO8gmkyZ1zNYzZd29mCQgLP7lSF0LkOygbyc=";
};
vendorSha256 = "sha256-VHUDqDsfY0c6r5sJbMX7JcXTIBXze9cd5qHqZWZAC2g=";
vendorSha256 = "sha256-0JNoOSNxJrJkph8OGzgQ7sdslnGC36e3Ap0uMpqriX0=";
# Disable tests because it attempts to use a mongodb instance
doCheck = false;
+35 -9
View File
@@ -1,23 +1,49 @@
{ lib, stdenv, fetchurl, hamlib, fltk14, libjpeg, libpng, portaudio, libsndfile,
libsamplerate, libpulseaudio, libXinerama, gettext, pkg-config, alsa-lib }:
{ lib
, stdenv
, fetchurl
, hamlib
, fltk14
, libjpeg
, libpng
, portaudio
, libsndfile
, libsamplerate
, libpulseaudio
, libXinerama
, gettext
, pkg-config
, alsa-lib
}:
stdenv.mkDerivation rec {
version = "4.1.18";
pname = "fldigi";
version = "4.1.18";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "sha256-PH/YSrOoS6RSWyUenVYSDa7mJqODFoSpdP2tR2+QJw0=";
};
buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio
libsndfile libsamplerate libpulseaudio pkg-config alsa-lib ];
buildInputs = [
libXinerama
gettext
hamlib
fltk14
libjpeg
libpng
portaudio
libsndfile
libsamplerate
libpulseaudio
pkg-config
alsa-lib
];
meta = {
meta = with lib; {
description = "Digital modem program";
homepage = "https://sourceforge.net/projects/fldigi/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ relrod ftrvxmtrx ];
platforms = lib.platforms.linux;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ relrod ftrvxmtrx ];
platforms = platforms.linux;
};
}
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2";
};
buildInputs = [ libpulseaudio libX11 ];
buildInputs = lib.optionals stdenv.isLinux [ libpulseaudio libX11 ];
nativeBuildInputs = [ cmake ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
'';
homepage = "https://github.com/EliasOenal/multimon-ng";
license = licenses.gpl2Only;
platforms = platforms.linux;
platforms = platforms.unix;
maintainers = with maintainers; [ markuskowa ];
};
}
@@ -17,14 +17,14 @@ let
};
in
stdenv.mkDerivation rec {
version = "14.31.44";
version = "14.31.46";
pname = "jmol";
src = let
baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
in fetchurl {
url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
sha256 = "sha256-MHfqoQzUEL7nje7Y/hbaA8iktxfN7464TJXum5B6OCc=";
sha256 = "sha256-U8k8xQws0vIJ3ZICzZXxSbtl7boCzRqG9mFSTXvmCvg=";
};
patchPhase = ''
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, jre, makeWrapper }:
{ lib, stdenv, fetchurl, jre, makeWrapper, copyDesktopItems, makeDesktopItem, unzip }:
stdenv.mkDerivation rec {
pname = "logisim";
@@ -11,17 +11,39 @@ stdenv.mkDerivation rec {
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
nativeBuildInputs = [ makeWrapper copyDesktopItems unzip ];
desktopItems = [
(makeDesktopItem {
name = pname;
desktopName = "Logisim";
exec = "logisim";
icon = "logisim";
comment = meta.description;
categories = "Education;";
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/logisim --add-flags "-jar $src"
# Create icons
unzip $src "resources/logisim/img/*"
for size in 16 20 24 48 64 128
do
install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim.png"
done
runHook postInstall
'';
meta = with lib; {
homepage = "http://ozark.hendrix.edu/~burch/logisim";
homepage = "http://www.cburch.com/logisim/";
description = "Educational tool for designing and simulating digital logic circuits";
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ angustrau ];
license = licenses.gpl2Plus;
platforms = platforms.unix;
};
+2 -2
View File
@@ -9,14 +9,14 @@
buildPythonApplication rec {
pname = "glances";
version = "3.2.1";
version = "3.2.2";
disabled = isPyPy;
src = fetchFromGitHub {
owner = "nicolargo";
repo = "glances";
rev = "v${version}";
sha256 = "0m2cxmlyay2rr9hnc08s5q9xwdqy0nhzsl10by4f9ji0kiahnpl6";
sha256 = "13w7bxfizsfi3xyhharnindyn3dv3p9p54a4xwyhnnhczs8kqa8s";
};
# Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -1,17 +1,17 @@
{ fetchurl, lib, stdenv }:
let
version = "0.24.3";
version = "0.24.4";
suffix = {
x86_64-linux = "x86_64";
x86_64-linux = "x86_64";
aarch64-linux = "aarch64";
}."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
dlbin = sha256: fetchurl {
url = "${baseurl}/v${version}/firecracker-v${version}-${suffix}.tgz";
url = "${baseurl}/v${version}/firecracker-v${version}-${suffix}.tgz";
sha256 = sha256."${stdenv.hostPlatform.system}";
};
@@ -22,15 +22,15 @@ stdenv.mkDerivation {
sourceRoot = ".";
src = dlbin {
x86_64-linux = "sha256-i6NMVFoLm4hQJH7RnhfC0t+0DJCINoP5b/iCv9JyRdk=";
aarch64-linux = "0m7xs12g97z1ipzaf7dgknf3azlah0p6bdr9i454azvzg955238b";
x86_64-linux = "sha256-EKndfLdkxn+S+2ElAyQ+mKEo5XN6kqZLuLCsQf+fKuk=";
aarch64-linux = "0zzr8x776aya6f6pw0dc0a6jxgbqv3f37p1vd8mmlsdv66c4kmfb";
};
dontConfigure = true;
buildPhase = ''
mv firecracker-* firecracker
mv jailer-* jailer
buildPhase = ''
mv release-v${version}/firecracker-v${version}-${suffix} firecracker
mv release-v${version}/jailer-v${version}-${suffix} jailer
chmod +x firecracker jailer
'';
@@ -48,9 +48,9 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Secure, fast, minimal micro-container virtualization";
homepage = "http://firecracker-microvm.io";
license = licenses.asl20;
platforms = [ "x86_64-linux" "aarch64-linux" ];
maintainers = with maintainers; [ thoughtpolice ];
homepage = "http://firecracker-microvm.io";
license = licenses.asl20;
platforms = [ "x86_64-linux" "aarch64-linux" ];
maintainers = with maintainers; [ thoughtpolice endocrimes ];
};
}
+50 -17
View File
@@ -1,15 +1,27 @@
{ lib, stdenv, fetchFromGitHub, fetchurl, glib, gtk-engine-murrine, gtk_engines, inkscape, optipng, sassc, which }:
{ lib
, stdenv
, fetchFromGitHub
, fetchurl
, glib
, gtk-engine-murrine
, gtk_engines
, inkscape
, jdupes
, optipng
, sassc
, which
}:
stdenv.mkDerivation rec {
pname = "mojave-gtk-theme";
version = "2020-11-29";
version = "2021-07-20";
srcs = [
(fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "07lcg28y0scpii29j85343kmcga4wyaayjpx9a118z838mnvb757";
sha256 = "08j70kmjhvh06c3ahcracarrfq4vpy0zsp6zkcivbw4nf3bzp2zc";
})
(fetchurl {
url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
@@ -19,40 +31,61 @@ stdenv.mkDerivation rec {
sourceRoot = "source";
nativeBuildInputs = [ glib inkscape optipng sassc which ];
nativeBuildInputs = [
glib
inkscape
jdupes
optipng
sassc
which
];
buildInputs = [ gtk_engines ];
buildInputs = [
gtk_engines
];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
# These fixup steps are slow and unnecessary.
dontPatchELF = true;
dontRewriteSymlinks = true;
postPatch = ''
patchShebangs .
for f in render-assets.sh \
src/assets/gtk-2.0/render-assets.sh \
src/assets/gtk-3.0/common-assets/render-assets.sh \
src/assets/gtk-3.0/windows-assets/render-assets.sh \
src/assets/metacity-1/render-assets.sh \
src/assets/xfwm4/render-assets.sh
for f in \
render-assets.sh \
src/assets/cinnamon/thumbnails/render-thumbnails.sh \
src/assets/gtk-2.0/render-assets.sh \
src/assets/gtk/common-assets/render-assets.sh \
src/assets/gtk/thumbnails/render-thumbnails.sh \
src/assets/gtk/windows-assets/render-alt-assets.sh \
src/assets/gtk/windows-assets/render-alt-small-assets.sh \
src/assets/gtk/windows-assets/render-assets.sh \
src/assets/gtk/windows-assets/render-small-assets.sh \
src/assets/metacity-1/render-assets.sh \
src/assets/xfwm4/render-assets.sh
do
substituteInPlace $f \
--replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
--replace /usr/bin/optipng ${optipng}/bin/optipng
done
# Shut up inkscape's warnings
export HOME="$NIX_BUILD_ROOT"
'';
installPhase = ''
name= ./install.sh -d $out/share/themes
runHook preInstall
name= ./install.sh --theme all --dest $out/share/themes
install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
jdupes -l -r $out/share
runHook postInstall
'';
meta = with lib; {
description = "Mac OSX Mojave like theme for GTK based desktop environments";
homepage = "https://github.com/vinceliuice/Mojave-gtk-theme";
license = licenses.gpl3;
license = licenses.gpl3Only;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "evolution-data-server";
version = "3.40.2";
version = "3.40.3";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "7IKVFjnzKlzs6AqLC5qj9mt9MY4+4sHDUjTy4r3opBg=";
sha256 = "Trs5F9a+tUrVlt5dilxG8PtXJJ7Z24HwXHqUpzDB2SE=";
};
patches = [
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "gnome-sudoku";
version = "40.1";
version = "40.2";
src = fetchurl {
url = "mirror://gnome/sources/gnome-sudoku/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1nr1g4q1gxqbzmaz15y3zgssnj7w01cq9l422ja4rglyg0fwjhbm";
sha256 = "NhIFMePHE5WB6jgA+/48KzFpTEQBRezIl6w05WLXVKM=";
};
nativeBuildInputs = [ meson ninja vala pkg-config gobject-introspection gettext itstool libxml2 python3 desktop-file-utils wrapGAppsHook ];
@@ -0,0 +1,42 @@
{ lib
, stdenv
, fetchFromGitHub
, readline
, autoreconfHook
, autoconf-archive
, gmp
, flex
, bison
}:
stdenv.mkDerivation rec {
pname = "bic";
version = "1.0.0";
src = fetchFromGitHub {
owner = "hexagonal-sun";
repo = pname;
rev = "v${version}";
sha256 = "1ws46h1ngzk14dspmsggj9535yl04v9wh8v4gb234n34rdkdsyyw";
};
buildInputs = [ readline gmp ];
nativeBuildInputs = [
autoreconfHook
autoconf-archive
bison
flex
];
meta = with lib; {
description = "A C interpreter and API explorer";
longDescription = ''
bic This a project that allows developers to explore and test C-APIs using a
read eval print loop, also known as a REPL.
'';
license = with licenses; [ gpl2Plus ];
homepage = "https://github.com/hexagonal-sun/bic";
platforms = platforms.unix;
maintainers = with maintainers; [ hexagonal-sun ];
};
}
+2 -2
View File
@@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "23.3.4.4";
sha256 = "dnoSGfBUZrgcnNQNAoqmVOxK/NQlt1DC187sxg7mPq8=";
version = "23.3.4.5";
sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU=";
}
@@ -184,6 +184,14 @@ let
enableParallelBuilding = true;
# Fix linker error on Darwin (see https://trac.macports.org/ticket/61865)
NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lobjc";
# Avoid Qt 5.12 problem on Big Sur: https://bugreports.qt.io/browse/QTBUG-87014
qtWrapperArgs = lib.optionals stdenv.isDarwin [
"--set QT_MAC_WANTS_LAYER 1"
];
# See https://savannah.gnu.org/bugs/?50339
F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "rakudo";
version = "2021.06";
version = "2021.07";
src = fetchurl {
url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
sha256 = "11ixlqmvbb37abksdysg5r4lkbwzr486lkc0ssl3wca4iiy3mhgf";
sha256 = "0lmbgw24f8277b9kj725v3grwh1524p4iy5jbqajxwxjr16zx2hp";
};
nativeBuildInputs = [ removeReferencesTo ];
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "moarvm";
version = "2021.06";
version = "2021.07";
src = fetchurl {
url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz";
sha256 = "19vjcyb9fg9msjw1ih00c2qby480gl4highw24zx7j84slhsj013";
sha256 = "1zk3dpvgrgg4kam3hx9pq1a2l2kgw822dci8hg7x0cn1lppwwdw4";
};
buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
+2 -2
View File
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "nqp";
version = "2021.06";
version = "2021.07";
src = fetchurl {
url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
sha256 = "1d00lajjdd2k510fb0cb6c8bpklvlnncykf6jz8j8djfp0b2i696";
sha256 = "191y6r6qxpib52h3drc5pbjrgf65pn5ahis1dyz55dxk7ajg5anw";
};
buildInputs = [ perl ];
+2 -2
View File
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zef";
version = "0.11.5";
version = "0.11.9";
src = fetchFromGitHub {
owner = "ugexe";
repo = "zef";
rev = "v${version}";
sha256 = "sha256-LLUAwqky/q9KvFltrcff5U2BSLvOk/BbDSj07QlePSg=";
sha256 = "1x1jj9k80lza1b3aidw9ybi26kjf30mvqkmnnmxf27302ipq69jy";
};
nativeBuildInputs = [ makeWrapper ];
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "arb";
version = "2.19.0";
version = "2.20.0";
src = fetchFromGitHub {
owner = "fredrik-johansson";
repo = pname;
rev = version;
sha256 = "sha256-J/LQVZ8gmssazE7ru89EtvW6cVjaLEHgUHuwjW1nuOE=";
sha256 = "sha256-HOIbdkVV7NKowIGhDdn/S8unIRV469OnRHiuiCGaWgk=";
};
buildInputs = [ mpir gmp mpfr flint ];
+2 -2
View File
@@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
pname = "bzrtp";
version = "4.5.10";
version = "5.0.0";
src = fetchFromGitLab {
domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
group = "BC";
repo = pname;
rev = version;
sha256 = "sha256-8qlCTkiRKMDODKMsa52pskBJ7pjqCDYkUJDb/5gFoKg=";
sha256 = "sha256-cagRN0DQw1/efCuMWngcF04SE9bViHANaNsQNKB5txA=";
};
buildInputs = [ bctoolbox sqlite ];
+2 -2
View File
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "cimg";
version = "2.9.7";
version = "2.9.8";
src = fetchFromGitHub {
owner = "dtschump";
repo = "CImg";
rev = "v.${version}";
sha256 = "sha256-cR2wvGtomT1cZh8wKMCfYDNuP3d1gKhHJavVnvuQ8Mc=";
sha256 = "sha256-nEICs1oAIXu6/5O4R3mbwig1OY+HDIWWeQjrcYnCwT0=";
};
installPhase = ''
+14 -10
View File
@@ -1,4 +1,5 @@
{ lib, stdenv
{ lib
, stdenv
, fetchurl
, gmp
, mpir
@@ -12,11 +13,11 @@ assert withBlas -> openblas != null && blas.implementation == "openblas" && lapa
stdenv.mkDerivation rec {
pname = "flint";
version = "2.7.1";
version = "2.8.0";
src = fetchurl {
url = "http://www.flintlib.org/flint-${version}.tar.gz";
sha256 = "07j8r96kdzp19cy3a5yvpjxf90mkd6103yr2n42qmpv7mgcjyvhq";
url = "https://www.flintlib.org/flint-${version}.tar.gz";
sha256 = "sha256-WEI1zcOdd52ZIOrvFv4ITzwm/+7qADo//2SiCg8zRJ4=";
};
buildInputs = [
@@ -27,9 +28,11 @@ stdenv.mkDerivation rec {
] ++ lib.optionals withBlas [
openblas
];
propagatedBuildInputs = [
mpfr # flint.h includes mpfr.h
];
configureFlags = [
"--with-gmp=${gmp}"
"--with-mpir=${mpir}"
@@ -40,13 +43,14 @@ stdenv.mkDerivation rec {
];
doCheck = true;
meta = {
meta = with lib; {
description = "Fast Library for Number Theory";
license = lib.licenses.gpl2Plus;
maintainers = lib.teams.sage.members;
platforms = lib.platforms.unix;
homepage = "http://www.flintlib.org/";
downloadPage = "http://www.flintlib.org/downloads.html";
license = licenses.gpl2Plus;
maintainers = teams.sage.members;
platforms = platforms.unix;
homepage = "https://www.flintlib.org/";
downloadPage = "https://www.flintlib.org/downloads.html";
updateWalker = true;
};
}
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--disable-mac-universal" "--enable-cxx" ];
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=deprecated-declarations -Wno-error=implicit-const-int-float-conversion -Wno-error=nullability-completeness-on-arrays";
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=deprecated-declarations -Wno-error=nullability-completeness-on-arrays";
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AudioUnit AudioToolbox CoreAudio CoreServices Carbon ];
@@ -16,13 +16,13 @@
buildDunePackage rec {
pname = "ca-certs-nss";
version = "3.64.0.1";
version = "3.66";
minimumOCamlVersion = "4.07";
minimumOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mirage/ca-certs-nss/releases/download/v${version}/ca-certs-nss-v${version}.tbz";
sha256 = "909c64076491647471f785527bfdd9a886a34504edabf88542b43f27b86067f9";
sha256 = "f0f8035b470f2a48360b92d0e6287f41f98e4ba71576a1cd4c9246c468932f09";
};
useDune2 = true;
@@ -7,14 +7,14 @@
buildDunePackage rec {
pname = "carton";
version = "0.4.1";
version = "0.4.2";
useDune2 = true;
minimumOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/${pname}-${pname}-v${version}.tbz";
sha256 = "d16aad5560d9ab1e3b4d93d2e8fdea638c216ff47338fb630a8aefd22b452665";
sha256 = "a0a03b2f7bb7dafe070bc6a74583b6d6da714d2c636dd4d5a6443c9f299ceacc";
};
# remove changelogs for mimic and the git* packages
@@ -4,7 +4,7 @@
}:
buildDunePackage rec {
version = "1.4.0";
version = "1.4.1";
pname = "decompress";
minimumOCamlVersion = "4.07";
@@ -13,7 +13,7 @@ buildDunePackage rec {
src = fetchurl {
url = "https://github.com/mirage/decompress/releases/download/v${version}/decompress-v${version}.tbz";
sha256 = "d1669e07446d73dd5e16f020d4a1682abcbb1b7a1e3bf19b805429636c26a19b";
sha256 = "0130ea6acb61b0a25393fa23148e116d7a17c77558196f7abddaee9e05a1d7a8";
};
buildInputs = [ cmdliner ];
@@ -4,14 +4,14 @@
buildDunePackage rec {
minimumOCamlVersion = "4.07";
version = "20210402";
version = "20210511";
pname = "imagelib";
useDune2 = true;
src = fetchurl {
url = "https://github.com/rlepigre/ocaml-imagelib/releases/download/${version}/imagelib-${version}.tbz";
sha256 = "b3c8ace02b10b36b6c60b3ce3ae0b9109d4a861916ec320c59cc1194f4cc86e3";
sha256 = "1cb94ea3731dc994c205940c9434543ce3f2470cdcb2e93a3e02ed793e80d480";
};
propagatedBuildInputs = [ decompress stdlib-shims ];
@@ -1,23 +1,22 @@
{ lib, buildDunePackage, fetchurl, lwt }:
{ lib, buildDunePackage, fetchurl, lwt, ocaml }:
buildDunePackage rec {
pname = "lwt-dllist";
version = "1.0.0";
version = "1.0.1";
useDune2 = true;
minimumOCamlVersion = "4.03";
minimumOCamlVersion = "4.02";
src = fetchurl {
url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
sha256 = "0g111f8fq9k1hwccpkhylkp83f73mlz4xnxxr3rf9xpi2f8fh7j9";
sha256 = "e86ce75e40f00d51514cf8b2e71e5184c4cb5dae96136be24613406cfc0dba6e";
};
propagatedBuildInputs = [
checkInputs = [
lwt
];
doCheck = true;
doCheck = lib.versionAtLeast ocaml.version "4.03";
meta = with lib; {
description = "Mutable doubly-linked list with Lwt iterators";
@@ -4,15 +4,15 @@
buildDunePackage rec {
pname = "macaddr";
version = "5.0.1";
version = "5.1.0";
useDune2 = true;
minimumOCamlVersion = "4.04";
src = fetchurl {
url = "https://github.com/mirage/ocaml-ipaddr/archive/v${version}.tar.gz";
sha256 = "0ffqkhmnj8l085xgl7jxhs3ld9zsd9iavdg06nnhr1i9g1aayk1b";
url = "https://github.com/mirage/ocaml-ipaddr/releases/download/v${version}/ipaddr-v${version}.tbz";
sha256 = "7e9328222c1a5f39b0751baecd7e27a842bdb0082fd48126eacbbad8816fbf5a";
};
checkInputs = [ ppx_sexp_conv ounit ];
@@ -7,11 +7,11 @@ buildDunePackage rec {
minimumOCamlVersion = "4.08";
pname = "mirage-crypto";
version = "0.10.1";
version = "0.10.2";
src = fetchurl {
url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
sha256 = "028e2fc1f0a3e9b06603c6a253ecd043100099bc1c12c0567d8bc46d3781499c";
sha256 = "96c4826fa3532c9d2ba21cd5fa25df003be3df20b2cc01068b60d59e0222d906";
};
useDune2 = true;
@@ -3,7 +3,7 @@
buildDunePackage rec {
pname = "mirage-runtime";
version = "3.10.3";
version = "3.10.4";
useDune2 = true;
@@ -11,7 +11,7 @@ buildDunePackage rec {
src = fetchurl {
url = "https://github.com/mirage/mirage/releases/download/v${version}/mirage-v${version}.tbz";
sha256 = "7c8059ef9e330eaef1ed51c0d89afe17900310f8083a426cd8099602222c2281";
sha256 = "c2ea22b6faf16bed783cac0e0bafd87f321756a91798f56c9a930f0edb5d9116";
};
propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs ocaml_lwt ];
@@ -0,0 +1,32 @@
{ lib, fetchFromGitHub, buildDunePackage
, menhir
, menhirLib
, uutf
}:
buildDunePackage rec {
pname = "otoml";
version = "0.9.0";
useDune2 = true;
minimalOCamlVersion = "4.08";
src = fetchFromGitHub {
owner = "dmbaturin";
repo = pname;
rev = version;
sha256 = "0l0c60rzgk11y8xq05kr8q9hkzb3c8vi995mq84x98ys73wb42j3";
};
buildInputs = [ menhir ];
propagatedBuildInputs = [ menhirLib uutf ];
meta = {
description = "A TOML parsing and manipulation library for OCaml";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vbgl ];
inherit (src.meta) homepage;
};
}
@@ -13,27 +13,15 @@
buildDunePackage rec {
pname = "tcpip";
version = "6.1.0";
version = "6.2.0";
useDune2 = true;
src = fetchurl {
url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
sha256 = "7b3ed2e1ca835c1cc65ac911bcb0de12ebc2b580dd195006bdea2cb387510474";
sha256 = "d0f6e643ce04da808d5f977c5ab2422cdb4f67e7abdc46dd6776ceada7151e1b";
};
patches = [
./makefile-no-opam.patch
];
# Make tests compatible with alcotest 1.4.0
postPatch = ''
for p in common.ml test_tcp_options.ml
do
substituteInPlace test/$p --replace 'Fmt.kstrf Alcotest.fail' 'Fmt.kstrf (fun s -> Alcotest.fail s)'
done
'';
nativeBuildInputs = [
bisect_ppx
ppx_cstruct
@@ -1,12 +0,0 @@
diff --git a/freestanding/Makefile b/freestanding/Makefile
index f22d220d..3e97b4c5 100644
--- a/freestanding/Makefile
+++ b/freestanding/Makefile
@@ -1,4 +1,6 @@
-PKG_CONFIG_PATH := $(shell opam config var prefix)/lib/pkgconfig
+ifneq (, $(shell command -v opam))
+ PKG_CONFIG_PATH ?= $(shell opam config var prefix)/lib/pkgconfig
+endif
EXISTS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config --exists ocaml-freestanding; echo $$?)
@@ -8,11 +8,11 @@ buildDunePackage rec {
minimumOCamlVersion = "4.07";
pname = "x509";
version = "0.13.0";
version = "0.14.0";
src = fetchurl {
url = "https://github.com/mirleft/ocaml-x509/releases/download/v${version}/x509-v${version}.tbz";
sha256 = "4577c2a616bda45cc777869fc44e272397d63a029135a993df8937bcfd6f6c49";
sha256 = "9b42f34171261b2193ee662f096566c48c48e087949c186c288f90c9b3b9f498";
};
useDune2 = true;
@@ -1,14 +1,14 @@
{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
let
pname = "composer";
version = "2.1.3";
version = "2.1.5";
in
mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://getcomposer.org/download/${version}/composer.phar";
sha256 = "04ad2zsnf8qi6hzs9sak6y8xxyx8l0f7crmcimnp7nn8vsc2x9zq";
sha256 = "1v4hjwbv1y5jvj91i2fj8bvmfsymp9ls8h231zd85svfqdy5b5dy";
};
dontUnpack = true;
@@ -5,11 +5,11 @@
buildPythonPackage rec {
pname = "asysocks";
version = "0.1.1";
version = "0.1.2";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-7EzSALAJcx8BNHX44FeeiSPRcTe9UFHXQ4IoSKxMU8w=";
sha256 = "1hi9hzih265qlh7x32r5pbaqm9wkhm52yrdiksnd4gl5nrdgwcwv";
};
# Upstream hasn't release the tests yet
@@ -11,7 +11,7 @@
, pathspec
, parameterized
, regex
, toml
, tomli
, typed-ast
, typing-extensions
, uvloop
@@ -20,13 +20,13 @@
buildPythonPackage rec {
pname = "black";
version = "21.6b0";
version = "21.7b0";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "016f6bhnnnbcrrh3cvmpk77ww0nykv5n1qvgf8b3044dm14264yw";
sha256 = "06d27adq6v6p8wspi0wwqz2pnq34p5jhnqvijbin54yyj5j3qdy8";
};
nativeBuildInputs = [ setuptools-scm ];
@@ -66,7 +66,7 @@ buildPythonPackage rec {
mypy-extensions
pathspec
regex
toml
tomli
typed-ast # required for tests and python2 extra
uvloop
] ++ lib.optional (pythonOlder "3.7") dataclasses
@@ -1,5 +1,6 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, substituteAll
, graphviz
@@ -12,14 +13,16 @@
buildPythonPackage rec {
pname = "graphviz";
version = "0.16";
version = "0.17";
disabled = pythonOlder "3.6";
# patch does not apply to PyPI tarball due to different line endings
src = fetchFromGitHub {
owner = "xflr6";
repo = "graphviz";
rev = version;
sha256 = "147vi60mi57z623lhllwwzczzicv2iwj1yrmllj5xx5788i73j6g";
sha256 = "sha256-K6z2C7hQH2A9bqgRR4MRqxVAH/k2NQBEelb2/6KDUr0=";
};
patches = [
@@ -1,9 +1,9 @@
diff --git a/graphviz/backend.py b/graphviz/backend.py
index d2c4b97..f7175cd 100644
index b66e616..3da4ef0 100644
--- a/graphviz/backend.py
+++ b/graphviz/backend.py
@@ -122,7 +122,7 @@ def command(engine, format_, filepath=None, renderer=None, formatter=None):
raise ValueError('unknown formatter: %r' % formatter)
@@ -124,7 +124,7 @@ def command(engine: str, format_: str, filepath=None,
raise ValueError(f'unknown formatter: {formatter!r}')
output_format = [f for f in (format_, renderer, formatter) if f is not None]
- cmd = ['dot', '-K%s' % engine, '-T%s' % ':'.join(output_format)]
@@ -11,7 +11,7 @@ index d2c4b97..f7175cd 100644
if filepath is None:
rendered = None
@@ -275,7 +275,7 @@ def unflatten(source,
@@ -297,7 +297,7 @@ def unflatten(source: str,
if fanout and stagger is None:
raise RequiredArgumentError('fanout given without stagger')
@@ -20,8 +20,8 @@ index d2c4b97..f7175cd 100644
if stagger is not None:
cmd += ['-l', str(stagger)]
if fanout:
@@ -304,7 +304,7 @@ def version():
Graphviz Release version entry format
@@ -332,7 +332,7 @@ def version() -> typing.Tuple[int, ...]:
Graphviz Release version entry format:
https://gitlab.com/graphviz/graphviz/-/blob/f94e91ba819cef51a4b9dcb2d76153684d06a913/gen_version.py#L17-20
"""
- cmd = ['dot', '-V']
@@ -30,19 +30,19 @@ index d2c4b97..f7175cd 100644
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
diff --git a/tests/test_backend.py b/tests/test_backend.py
index d10ef1a..e4aba58 100644
index e0a0e1c..681f178 100644
--- a/tests/test_backend.py
+++ b/tests/test_backend.py
@@ -52,7 +52,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
@@ -54,7 +54,7 @@ def test_run_encoding_mocked(mocker, Popen, input='sp\xe4m', encoding='utf-8'):
m.decode.assert_called_once_with(encoding)
-@pytest.exe
-@pytest.mark.exe
+@pytest.mark.skip(reason='empty $PATH has no effect')
@pytest.mark.usefixtures('empty_path')
@pytest.mark.parametrize('func, args', [
(render, ['dot', 'pdf', 'nonfilepath']),
@@ -146,7 +146,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet): # noqa: N803
@@ -148,7 +148,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet): # noqa: N803
assert render('dot', 'pdf', 'nonfilepath', quiet=quiet) == 'nonfilepath.pdf'
@@ -51,8 +51,8 @@ index d10ef1a..e4aba58 100644
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=None, startupinfo=mocker.ANY)
@@ -208,7 +208,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet): # noqa: N803
assert e.value.stdout is mocker.sentinel.out
@@ -211,7 +211,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, Popen, quiet): # noqa: N803
assert e.value.stdout is out
e.value.stdout = mocker.sentinel.new_stdout
assert e.value.stdout is mocker.sentinel.new_stdout
- Popen.assert_called_once_with(['dot', '-Kdot', '-Tpng'],
@@ -62,7 +62,7 @@ index d10ef1a..e4aba58 100644
stderr=subprocess.PIPE,
@@ -231,7 +231,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet): # noqa: N803
assert pipe('dot', 'png', b'nongraph', quiet=quiet) is mocker.sentinel.out
assert pipe('dot', 'png', b'nongraph', quiet=quiet) == b'stdout'
- Popen.assert_called_once_with(['dot', '-Kdot', '-Tpng'],
+ Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Kdot', '-Tpng'],
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "pytorch";
repo = pname;
rev = "v${version}";
sha256 = "057v8v5p2picmgiidr9lzjbh7nj54pv95m6lyya3y7dw4vzaamij";
sha256 = "sha256-FGFpaqq7InwRqFmQTmXGpJEjRUB69ZN/l20l42L2BAA=";
};
checkInputs = [ pytestCheckHook matplotlib mock pytest-xdist ];
@@ -33,8 +33,13 @@ buildPythonPackage rec {
# models, which doesn't work in the sandbox.
# avoid tests which need special packages
pytestFlagsArray = [
"--ignore=tests/ignite/contrib/handlers/test_clearml_logger.py"
"--ignore=tests/ignite/contrib/handlers/test_lr_finder.py"
"--ignore=tests/ignite/contrib/handlers/test_trains_logger.py"
"--ignore=tests/ignite/metrics/nlp/test_bleu.py"
"--ignore=tests/ignite/metrics/nlp/test_rouge.py"
"--ignore=tests/ignite/metrics/test_dill.py"
"--ignore=tests/ignite/metrics/test_psnr.py"
"--ignore=tests/ignite/metrics/test_ssim.py"
"tests/"
];
@@ -42,16 +47,17 @@ buildPythonPackage rec {
# disable tests which need specific packages
disabledTests = [
"idist"
"tensorboard"
"mlflow"
"tensorboard"
"test_integration"
"test_output_handler" # needs mlflow
"test_pbar" # slight output differences
"test_setup_clearml_logging"
"test_setup_neptune"
"test_setup_plx"
"test_write_results"
"trains"
"visdom"
"test_setup_neptune"
"test_output_handler" # needs mlflow
"test_integration"
"test_pbar" # slight output differences
"test_write_results"
"test_setup_plx"
];
meta = with lib; {
@@ -7,7 +7,7 @@
buildPythonPackage rec {
pname = "imap-tools";
version = "0.42.0";
version = "0.44.0";
disabled = isPy27;
@@ -15,7 +15,7 @@ buildPythonPackage rec {
owner = "ikvk";
repo = "imap_tools";
rev = "v${version}";
sha256 = "sha256-WNhhQ3iqqwyYyd+iOQVpsKAAfgJwJBaUR7rmYAEYUxw=";
sha256 = "sha256-C9396yRSowaLe3E1s+rw8bah77znjfoIhLwJpcqhN6Y=";
};
checkInputs = [
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "pyvicare";
version = "1.0.0";
version = "1.1";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "somm15";
repo = "PyViCare";
rev = version;
sha256 = "05dlasx18fkmh4z1w8550yrb26fmsb5bc73wr9whmkasm32gpfl1";
sha256 = "1mkbz1gl8bv4j7q82cbc9d3dzx80brzdwrcp8z3kma1b91ig99bk";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "tomli";
version = "1.0.4";
version = "1.1.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "hukkin";
repo = pname;
rev = version;
sha256 = "sha256-ld0PsYnxVH3RbLG/NpvLDj9UhAe+QgwCQVXgGgqh8kE=";
sha256 = "1cj6iil9sii1zl0l4pw7h4alcnhwdbxinpph2f0rm5rghrp6prjm";
};
nativeBuildInputs = [ flit-core ];
@@ -5,13 +5,13 @@
buildGoPackage rec {
pname = "tfsec";
version = "0.51.2";
version = "0.51.4";
src = fetchFromGitHub {
owner = "aquasecurity";
repo = pname;
rev = "v${version}";
sha256 = "18qblimn78w17gydy7h9sjl9ri1wkvzi5phsqz1dkk43i3ryjg3s";
sha256 = "0l9b6hdcfcyn03y5wsfganb3h2vsnlrs9y3vahnnlx4rvv51ldwf";
};
goPackagePath = "github.com/aquasecurity/tfsec";
+4 -4
View File
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "earthly";
version = "0.5.18";
version = "0.5.20";
src = fetchFromGitHub {
owner = "earthly";
repo = "earthly";
rev = "v${version}";
sha256 = "sha256-YY4scGRMuvyEpeEgvoJJsTtROl11hMyGr7vYBYvJY/w=";
sha256 = "sha256-wPtL5fH6s4qlG82udeg9Gv4iNBjDEeKNTDFHPsW4V/A=";
};
vendorSha256 = "sha256-aDkaOycQ/wPybSH5fnJIGtCOh+KV0wEF+qinRQQIdm4=";
vendorSha256 = "sha256-gydhh/EMSuE/beo+A2CRDdDnQGT6DMjMwthylT339I4=";
buildFlagsArray = ''
-ldflags=
@@ -35,7 +35,7 @@ buildGoModule rec {
description = "Build automation for the container era";
homepage = "https://earthly.dev/";
changelog = "https://github.com/earthly/earthly/releases/tag/v${version}";
license = licenses.mpl20;
license = licenses.bsl11;
maintainers = with maintainers; [ mdsp ];
};
}
+3 -3
View File
@@ -2,18 +2,18 @@
buildGoModule rec {
pname = "evans";
version = "0.9.3";
version = "0.10.0";
src = fetchFromGitHub {
owner = "ktr0731";
repo = pname;
rev = "v${version}";
sha256 = "sha256-q8HWDZpUWaitdZcWkvKEWWbIWCj9VmWCxxhAdcYZx8s=";
sha256 = "sha256-Ftt3lnwLk2Zx1DxDmZx2hBqXcxzqUb6I/gEdQJuFsCc=";
};
subPackages = [ "." ];
vendorSha256 = "sha256-ntRlrbsQjZmVxEg9361Q+f6Wb/R393+sbOKOEh5VKPk=";
vendorSha256 = "sha256-WclmINHcgRtbRSZGv+lOgwuImHKVC9cfK8C+f9JBcts=";
meta = with lib; {
description = "More expressive universal gRPC client";
@@ -0,0 +1,69 @@
{ lib
, buildPythonApplication
, fetchFromGitHub
, click
, semantic-version
, requests
, colorama
, pyserial
, wheel
, setuptools
, tinyprog
, pytestCheckHook
}:
buildPythonApplication rec {
pname = "apio";
version = "0.7.5";
format = "flit";
src = fetchFromGitHub {
owner = "FPGAwars";
repo = "apio";
rev = "v${version}";
sha256 = "sha256-9f0q6tELUDo6FdjPG708d7BY3O5ZiZ0FwNFzBBiLQp4=";
};
postPatch = ''
substituteInPlace apio/managers/scons.py --replace \
'return "tinyprog --libusb --program"' \
'return "${tinyprog}/bin/tinyprog --libusb --program"'
substituteInPlace apio/util.py --replace \
'_command = join(get_bin_dir(), "tinyprog")' \
'_command = "${tinyprog}/bin/tinyprog"'
# semantic-version seems to not support version numbers like the one of tinyprog in Nixpkgs (1.0.24.dev114+gxxxxxxx).
# See https://github.com/rbarrois/python-semanticversion/issues/47.
# This leads to an error like "Error: Invalid version string: '1.0.24.dev114+g97f6353'"
# when executing "apio upload" for a TinyFPGA.
# Replace the dot with a dash to work around this problem.
substituteInPlace apio/managers/scons.py --replace \
'version = semantic_version.Version(pkg_version)' \
'version = semantic_version.Version(pkg_version.replace(".dev", "-dev"))'
'';
propagatedBuildInputs = [
click
semantic-version
requests
colorama
pyserial
wheel
setuptools # needs pkg_resources at runtime (technically not needed when tinyprog is also in this list because of the propagatedBuildInputs of tinyprog)
tinyprog # needed for upload to TinyFPGA
];
checkInputs = [
pytestCheckHook
];
pytestFlagsArray = [ "--offline" ];
meta = with lib; {
description = "Open source ecosystem for open FPGA boards";
homepage = "https://github.com/FPGAwars/apio";
license = licenses.gpl2Only;
maintainers = with maintainers; [ Luflosi ];
};
}
@@ -19,7 +19,7 @@ in stdenv.mkDerivation {
pname = "lemon";
version = "1.69";
phases = [ "buildPhase" "installPhase" ];
dontUnpack = true;
buildPhase = ''
sh -xc "$CC ${srcs.lemon} -o lemon"
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
buildInputs = [ python3 python3Packages.wrapPython ];
phases = "unpackPhase patchPhase installPhase";
postPatch = ''
for f in pats-* postiats/*.py; do
sed -i "$f" -e "1 s,python3,python,"
+1 -1
View File
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
gemdir = ./.;
};
phases = ["installPhase"];
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
@@ -25,8 +25,6 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper unzip ];
buildInputs = [ thrustEnv ];
phases = [ "installPhase" "fixupPhase" ];
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/libexec/thrust
+3 -3
View File
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "wrangler";
version = "1.16.1";
version = "1.18.0";
src = fetchFromGitHub {
owner = "cloudflare";
repo = pname;
rev = "v${version}";
sha256 = "sha256-chKmn38yB05NqDvtYWo4EwEIiD6kjy/1OMaMFM4qAA8=";
sha256 = "sha256-Ue9HCAYqv8DXiEZEuGRFPywNegakxBpb66RELP1Y+cg=";
};
cargoSha256 = "sha256-pG3ZsRPa/7QRkUik6a987SlGrl3B0thnN3h62JyzdJo=";
cargoSha256 = "sha256-HCsJG//RnlcmRSrBdf7iZTUOiQabMV2rICPLKvuE4AI=";
nativeBuildInputs = [ pkg-config ];
+6 -7
View File
@@ -1,30 +1,29 @@
{ lib, stdenv, fetchFromSourcehut
, SDL, SDL_image, libGLU, libGL, openal, libvorbis, freealut }:
, SDL, stb, libGLU, libGL, openal, libvorbis, freealut }:
stdenv.mkDerivation rec {
pname = "blackshades";
version = "1.1.1";
version = "1.3.1";
src = fetchFromSourcehut {
owner = "~cnx";
repo = pname;
rev = version;
sha256 = "1gx43hcqahbd21ib8blhzmsrwqfzx4qy7f10ck0mh2zc4bfihz64";
sha256 = "0yzp74ynkcp6hh5m4zmvrgx5gwm186hq7p3m7qkww54qdyijb3rv";
};
buildInputs = [ SDL SDL_image libGLU libGL openal libvorbis freealut ];
buildInputs = [ SDL stb libGLU libGL openal libvorbis freealut ];
patchPhase = ''
postPatch = ''
sed -i -e s,Data/,$out/share/$pname/,g \
-e s,Data:,$out/share/$pname/,g \
src/*.cpp
'';
installPhase = ''
mkdir -p $out/bin $out/share/doc/$pname
mkdir -p $out/bin $out/share
cp build/blackshades $out/bin
cp -R Data $out/share/$pname
cp README.md $out/share/doc/$pname
'';
meta = {
+5 -5
View File
@@ -16,13 +16,13 @@ let
in stdenv.mkDerivation rec {
pname = "eduke32";
version = "20200907";
rev = "9257";
revExtra = "93f62bbad";
version = "20210722";
rev = "9484";
revExtra = "f3fea8c15";
src = fetchurl {
url = "http://dukeworld.duke4.net/eduke32/synthesis/latest/eduke32_src_${version}-${rev}-${revExtra}.tar.xz";
sha256 = "972630059be61ef9564a241b84ef2ee4f69fc85c19ee36ce46052ff2f1ce3bf9";
url = "http://dukeworld.duke4.net/eduke32/synthesis/${version}-${rev}-${revExtra}/eduke32_src_${version}-${rev}-${revExtra}.tar.xz";
sha256 = "0fdl2i465cl5x7129772ksx97lvim98m9009q5cfmf6scagj9pvz";
};
buildInputs = [ alsa-lib flac gtk2 libvorbis libvpx libGL libGLU SDL2 SDL2_mixer ];
+2 -2
View File
@@ -39,11 +39,11 @@ in
stdenv.mkDerivation rec {
inherit pname;
version = "4.1.0";
version = "4.1.1";
src = fetchurl {
url = "mirror://sourceforge/${pname}/releases/${version}/${pname}_src.tar.xz";
sha256 = "sha256-HQlphogK2jjTXV7cQ8lFNWjHMBnpStyvT3wKYjlDQW0=";
sha256 = "sha256-CnMt3FytpTDAtibU3V24i6EvWRc9UkAuvC9ingphCM8=";
};
buildInputs = [
+3 -3
View File
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "matrix-dendrite";
version = "0.3.11";
version = "0.4.0";
src = fetchFromGitHub {
owner = "matrix-org";
repo = "dendrite";
rev = "v${version}";
sha256 = "15xqd4yhsnnpz5n90fbny9i8lp7ki2z3fbpbd8cvsp49347rm483";
sha256 = "sha256-BzQp466Zlp7n56n4SUH4cDRTt8EUWGw3q1dxIBB3TBM=";
};
vendorSha256 = "1l1wydvi0yalas79cvhrqg563cvs57hg9rv6qnkw879r6smb2x1n";
vendorSha256 = "sha256-ak7fWcAXbyVAiyaJZBGMoe2i2nDh4vc/gCC9nbjadJ0=";
passthru.tests = {
inherit (nixosTests) dendrite;
+2 -2
View File
@@ -43,13 +43,13 @@
stdenv.mkDerivation rec {
pname = "389-ds-base";
version = "2.0.6";
version = "2.0.7";
src = fetchFromGitHub {
owner = "389ds";
repo = pname;
rev = "${pname}-${version}";
sha256 = "sha256-MYLRrH3PrNdPVuRffiG39zzJK6eHJcvIDWn1q0IHrZ8=";
sha256 = "sha256-aM1qo+yHrCFespPWHv2f25ooqQVCIZGaZS43dY6kiC4=";
};
nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
@@ -2,20 +2,20 @@
buildGoModule rec {
pname = "mackerel-agent";
version = "0.71.2";
version = "0.72.1";
src = fetchFromGitHub {
owner = "mackerelio";
repo = pname;
rev = "v${version}";
sha256 = "sha256-O67xzL4avCOh2x6qJCScOWR2TS1hfP5S6jHHELNbZWQ=";
sha256 = "sha256-pUbZY+TjSZNOrmRarYVUDI0HoIUMY0LacdFSdqQ/7D4=";
};
nativeBuildInputs = [ makeWrapper ];
checkInputs = lib.optionals (!stdenv.isDarwin) [ nettools ];
buildInputs = lib.optionals (!stdenv.isDarwin) [ iproute2 ];
vendorSha256 = "sha256-iFWQoAnB0R6XwjdPvOWJdNTmEZ961zE51vDrmZ7r4Jk=";
vendorSha256 = "sha256-trVfF4voye6CQ5WK78yBT86fgSUFyxaCtsZx6kXgYGE=";
subPackages = [ "." ];
+1 -1
View File
@@ -33,7 +33,7 @@ let
inherit sha256;
};
hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ];
hardeningEnable = lib.optionals (!stdenv.cc.isClang) [ "pie" ];
outputs = [ "out" "lib" "doc" "man" ];
setOutputFlags = false; # $out retains configureFlags :-/
+2 -1
View File
@@ -65,7 +65,8 @@ let
in
stdenv.mkDerivation (builtins.removeAttrs args [ "bundlerEnvArgs" ] // {
pluginName = if name != null then name else "${pname}-${version}";
phases = [ "unpackPhase" "installPhase" ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out
+2 -2
View File
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "spaceship-prompt";
version = "3.12.6";
version = "3.12.25";
src = fetchFromGitHub {
owner = "denysdovhan";
repo = pname;
rev = "v${version}";
sha256 = "sha256-tKFah8b62wuw5vaNHddmj31UNd9kKCcQ99p8GlTnR6s=";
sha256 = "sha256-qDy0HkaX3N7VGptv88gB3284yDTbp2EpiZ1kvaLX8dc=";
};
dontBuild = true;
+3 -1
View File
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, makeWrapper, zfs
{ lib, stdenv, fetchFromGitHub, nixosTests, makeWrapper, zfs
, perlPackages, procps, which, openssh, mbuffer, pv, lzop, gzip, pigz }:
with lib;
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper ];
buildInputs = with perlPackages; [ perl ConfigIniFiles CaptureTiny ];
passthru.tests = nixosTests.sanoid;
installPhase = ''
runHook preInstall
@@ -1,76 +0,0 @@
From d925c9a11ee2e88ac8aac03f51892746f2bcf8cd Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@squashfs.org.uk>
Date: Thu, 25 Feb 2021 23:12:10 +0000
Subject: [PATCH] Mksquashfs: add -no-hardlinks option
Normally Mksquashfs will detect hardlinks (multiple files with the
same inode) and hardlink them in the Squashfs image.
But often hardlinks are used in the original filesystem
to save space, when files are discovered to be duplicate.
In this special case the only reason the files are
hardlinked is to save space, and where the filesystem
doesn't handle duplicate files (different inode, same
data).
Squashfs does handle duplicate files, and so add
an option to ignore hardlinks and instead
store them as duplicates.
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
---
squashfs-tools/mksquashfs.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
index a45b77f..d4dc359 100644
--- a/squashfs-tools/mksquashfs.c
+++ b/squashfs-tools/mksquashfs.c
@@ -312,6 +312,9 @@ struct dir_info *root_dir;
FILE *log_fd;
int logging=FALSE;
+/* Should Mksquashfs detect hardlinked files? */
+int no_hardlinks = FALSE;
+
static char *read_from_disk(long long start, unsigned int avail_bytes);
void add_old_root_entry(char *name, squashfs_inode inode, int inode_number,
int type);
@@ -3093,11 +3096,11 @@ struct inode_info *lookup_inode3(struct stat *buf, int pseudo, int id,
/*
* Look-up inode in hash table, if it already exists we have a
- * hard-link, so increment the nlink count and return it.
- * Don't do the look-up for directories because we don't hard-link
- * directories.
+ * hardlink, so increment the nlink count and return it.
+ * Don't do the look-up for directories because Unix/Linux doesn't
+ * allow hard-links to directories.
*/
- if ((buf->st_mode & S_IFMT) != S_IFDIR) {
+ if ((buf->st_mode & S_IFMT) != S_IFDIR && !no_hardlinks) {
for(inode = inode_info[ino_hash]; inode; inode = inode->next) {
if(memcmp(buf, &inode->buf, sizeof(struct stat)) == 0) {
inode->nlink ++;
@@ -5447,7 +5450,9 @@ int main(int argc, char *argv[])
comp = lookup_compressor(COMP_DEFAULT);
for(i = source + 2; i < argc; i++) {
- if(strcmp(argv[i], "-mkfs-time") == 0 ||
+ if(strcmp(argv[i], "-no-hardlinks") == 0)
+ no_hardlinks = TRUE;
+ else if(strcmp(argv[i], "-mkfs-time") == 0 ||
strcmp(argv[i], "-fstime") == 0) {
if((++i == argc) || !parse_num_unsigned(argv[i], &mkfs_time)) {
ERROR("%s: %s missing or invalid time value\n", argv[0], argv[i - 1]);
@@ -5893,6 +5898,7 @@ printOptions:
"files larger than block size\n");
ERROR("-no-duplicates\t\tdo not perform duplicate "
"checking\n");
+ ERROR("-no-hardlinks\t\tdo not hardlink files, instead store duplicates\n");
ERROR("-all-root\t\tmake all files owned by root\n");
ERROR("-root-mode <mode>\tset root directory permissions to octal <mode>\n");
ERROR("-force-uid <uid>\tset all file uids to <uid>\n");
--
2.30.0
+31 -31
View File
@@ -1,6 +1,7 @@
This patch has been edited to apply to squashfs 4.4, commit
52eb4c279cd283ed9802dd1ceb686560b22ffb67. Below is the original
message body of the patch.
This patch is an old patch; see below for the original message body. The patch
has been updated twice: Once to apply to squashfs 4.4, commit
52eb4c279cd283ed9802dd1ceb686560b22ffb67, and later to apply to squashfs 4.5,
commit 0496d7c3de3e09da37ba492081c86159806ebb07.
From 7bda7c75748f36b0a50f93e46144d5a4de4974ad Mon Sep 17 00:00:00 2001
From: Amin Hassani <ahassani@google.com>
@@ -20,24 +21,23 @@ increased_size = (number_of_unfragmented_files_in_image + number of fragments) *
The 4k alignment can be enabled by flag '-4k-align'
---
squashfs-tools/mksquashfs.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
squashfs-tools/mksquashfs.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
index a45b77f..07b1c06 100644
index aaa4b00..eb2fb23 100644
--- a/squashfs-tools/mksquashfs.c
+++ b/squashfs-tools/mksquashfs.c
@@ -102,7 +102,9 @@ int old_exclude = TRUE;
int use_regex = FALSE;
int nopad = FALSE;
@@ -99,6 +99,8 @@ int nopad = FALSE;
int exit_on_error = FALSE;
+int do_4k_align = FALSE;
long long start_offset = 0;
int sleep_time = 0;
+int do_4k_align = FALSE;
+#define ALIGN_UP(bytes, size) (bytes = (bytes + size - 1) & ~(size - 1))
long long global_uid = -1, global_gid = -1;
@@ -1546,6 +1548,9 @@ void unlock_fragments()
@@ -1553,6 +1555,9 @@ static void unlock_fragments()
* queue at this time.
*/
while(!queue_empty(locked_fragment)) {
@@ -47,7 +47,7 @@ index a45b77f..07b1c06 100644
write_buffer = queue_get(locked_fragment);
frg = write_buffer->block;
size = SQUASHFS_COMPRESSED_SIZE_BLOCK(fragment_table[frg].size);
@@ -2478,6 +2483,9 @@ void *frag_deflator(void *arg)
@@ -2460,6 +2465,9 @@ static void *frag_deflator(void *arg)
write_buffer->size = compressed_size;
pthread_mutex_lock(&fragment_mutex);
if(fragments_locked == FALSE) {
@@ -57,18 +57,26 @@ index a45b77f..07b1c06 100644
fragment_table[file_buffer->block].size = c_byte;
fragment_table[file_buffer->block].start_block = bytes;
write_buffer->block = bytes;
@@ -2877,6 +2885,10 @@ int write_file_blocks(squashfs_inode *inode, struct dir_ent *dir_ent,
long long sparse = 0;
struct file_buffer *fragment_buffer = NULL;
@@ -2850,6 +2858,10 @@ static struct file_info *write_file_blocks(int *status, struct dir_ent *dir_ent,
struct file_info *file;
int bl_hash = 0;
+ // 4k align the start of each file.
+ if(do_4k_align)
+ ALIGN_UP(bytes, 4096);
+
if(pre_duplicate(read_size))
return write_file_blocks_dup(inode, dir_ent, read_buffer, dup);
if(pre_duplicate(read_size, dir_ent->inode, read_buffer, &bl_hash))
return write_file_blocks_dup(status, dir_ent, read_buffer, dup, bl_hash);
@@ -4972,6 +4984,7 @@ void write_filesystem_tables(struct squashfs_super_block *sBlk, int nopad)
@@ -5975,6 +5987,7 @@ static void print_options(FILE *stream, char *name, int total_mem)
fprintf(stream, "actions from <f>\n");
fprintf(stream, "-false-action-file <f>\tas -false-action, but read ");
fprintf(stream, "actions from <f>\n");
+ fprintf(stream, "-4k-align\t\tenables 4k alignment of all files\n");
fprintf(stream, "\nFilesystem filter options:\n");
fprintf(stream, "-p <pseudo-definition>\tAdd pseudo file definition\n");
fprintf(stream, "-pf <pseudo-file>\tAdd list of pseudo file definitions\n");
@@ -6198,6 +6211,7 @@ static void print_summary()
"compressed", no_fragments ? "no" : noF ? "uncompressed" :
"compressed", no_xattrs ? "no" : noX ? "uncompressed" :
"compressed", noI || noId ? "uncompressed" : "compressed");
@@ -76,23 +84,15 @@ index a45b77f..07b1c06 100644
printf("\tduplicates are %sremoved\n", duplicate_checking ? "" :
"not ");
printf("Filesystem size %.2f Kbytes (%.2f Mbytes)\n", bytes / 1024.0,
@@ -5853,6 +5866,8 @@ print_compressor_options:
@@ -7499,6 +7513,9 @@ print_compressor_options:
root_name = argv[i];
} else if(strcmp(argv[i], "-version") == 0) {
VERSION();
print_version("mksquashfs");
+
+ } else if(strcmp(argv[i], "-4k-align") == 0) {
+ do_4k_align = TRUE;
} else {
ERROR("%s: invalid option\n\n", argv[0]);
printOptions:
@@ -5904,6 +5919,7 @@ printOptions:
ERROR("\t\t\tdirectory containing that directory, "
"rather than the\n");
ERROR("\t\t\tcontents of the directory\n");
+ ERROR("-4k-align\t\tenables 4k alignment of all files\n");
ERROR("\nFilesystem filter options:\n");
ERROR("-p <pseudo-definition>\tAdd pseudo file "
"definition\n");
print_options(stderr, argv[0], total_mem);
--
2.23.0
2.32.0
+2 -6
View File
@@ -10,23 +10,19 @@
stdenv.mkDerivation rec {
pname = "squashfs";
version = "4.4";
version = "4.5";
src = fetchFromGitHub {
owner = "plougher";
repo = "squashfs-tools";
rev = version;
sha256 = "0697fv8n6739mcyn57jclzwwbbqwpvjdfkv1qh9s56lvyqnplwaw";
sha256 = "1nanwz5qvsakxfm37md5i7xqagv69nfik9hpj8qlp6ymw266vgxr";
};
patches = [
# This patch adds an option to pad filesystems (increasing size) in
# exchange for better chunking / binary diff calculation.
./4k-align.patch
# Add -no-hardlinks option. This is a rebased version of
# c37bb4da4a5fa8c1cf114237ba364692dd522262, can be removed
# when upgrading to the next version after 4.4
./0001-Mksquashfs-add-no-hardlinks-option.patch
] ++ lib.optional stdenv.isDarwin ./darwin.patch;
buildInputs = [ zlib xz zstd lz4 lzo ];
+3 -3
View File
@@ -2,7 +2,7 @@
rustPlatform.buildRustPackage rec {
pname = "dua";
version = "2.14.2";
version = "2.14.3";
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
owner = "Byron";
repo = "dua-cli";
rev = "v${version}";
sha256 = "sha256-gUTDiUH/jlGAGbhOOCa63wfNy5Y8W6VWlSb9E+hQjHY=";
sha256 = "sha256-Tste5DdUwCu1CNRzIcBEvyckrvhEg9C8M3y89luIMbE=";
# Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation.
extraPostFetch = ''
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
'';
};
cargoSha256 = "sha256-P8QFeP5KD5YeD4Px7OQNwCrvErgT9ytr4OlFkXuPgGU=";
cargoSha256 = "sha256-iHRPgQtanW2LcFLPPHmr2n1NeAPi0mDmHNeIv524lrM=";
doCheck = false;

Some files were not shown because too many files have changed in this diff Show More