Merge staging-next into staging
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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}.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 didn’t 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.
|
||||
|
||||
@@ -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 ];
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
}
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
'';
|
||||
})
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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,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 ];
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
+25
-11
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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,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,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 ];
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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,"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = [ "." ];
|
||||
|
||||
|
||||
@@ -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 :-/
|
||||
|
||||
@@ -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,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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user