Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2021-10-14 00:07:02 +00:00 committed by GitHub
commit 0455265d8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
199 changed files with 2889 additions and 528 deletions

View file

@ -303,7 +303,26 @@ rec {
# TODO: figure out a clever way to integrate location information from
# something like __unsafeGetAttrPos.
warn = msg: builtins.trace "warning: ${msg}";
/*
Print a warning before returning the second argument. This function behaves
like `builtins.trace`, but requires a string message and formats it as a
warning, including the `warning: ` prefix.
To get a call stack trace and abort evaluation, set the environment variable
`NIX_ABORT_ON_WARN=true` and set the Nix options `--option pure-eval false --show-trace`
Type: string -> a -> a
*/
warn =
if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") ["1" "true" "yes"]
then msg: builtins.trace "warning: ${msg}" (abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.")
else msg: builtins.trace "warning: ${msg}";
/*
Like warn, but only warn when the first argument is `true`.
Type: bool -> string -> a -> a
*/
warnIf = cond: msg: if cond then warn msg else id;
info = msg: builtins.trace "INFO: ${msg}";

View file

@ -440,6 +440,12 @@
githubId = 173595;
name = "Caleb Maclennan";
};
ALEX11BR = {
email = "alexioanpopa11@gmail.com";
github = "ALEX11BR";
githubId = 49609151;
name = "Popa Ioan Alexandru";
};
alexarice = {
email = "alexrice999@hotmail.co.uk";
github = "alexarice";
@ -5461,6 +5467,12 @@
githubId = 8735102;
name = "John Ramsden";
};
johnrichardrinehart = {
email = "johnrichardrinehart@gmail.com";
github = "johnrichardrinehart";
githubId = 6321578;
name = "John Rinehart";
};
johntitor = {
email = "huyuumi.dev@gmail.com";
github = "JohnTitor";

View file

@ -344,6 +344,13 @@
controller support.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/opensvc/multipath-tools">multipath</link>,
the device mapper multipath (DM-MP) daemon. Available as
<link linkend="opt-services.multipath.enable">services.multipath</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-incompatibilities">

View file

@ -105,6 +105,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [joycond](https://github.com/DanielOgorchock/joycond), a service that uses `hid-nintendo` to provide nintendo joycond pairing and better nintendo switch pro controller support.
- [multipath](https://github.com/opensvc/multipath-tools), the device mapper multipath (DM-MP) daemon. Available as [services.multipath](#opt-services.multipath.enable).
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
- The `services.wakeonlan` option was removed, and replaced with `networking.interfaces.<name>.wakeOnLan`.

View file

@ -213,7 +213,7 @@ in
}
{
assertion = cfg.powerManagement.enable -> offloadCfg.enable;
assertion = cfg.powerManagement.finegrained -> offloadCfg.enable;
message = "Fine-grained power management requires offload to be enabled.";
}

View file

@ -779,6 +779,7 @@
./services/networking/mstpd.nix
./services/networking/mtprotoproxy.nix
./services/networking/mullvad-vpn.nix
./services/networking/multipath.nix
./services/networking/murmur.nix
./services/networking/mxisd.nix
./services/networking/namecoind.nix

View file

@ -64,6 +64,12 @@ in
default = false;
};
extraIscsiCommands = mkOption {
description = "Extra iscsi commands to run in the initrd.";
default = "";
type = lines;
};
extraConfig = mkOption {
description = "Extra lines to append to /etc/iscsid.conf";
default = null;
@ -162,6 +168,9 @@ in
'' else ''
iscsiadm --mode node --targetname ${escapeShellArg cfg.target} --login
''}
${cfg.extraIscsiCommands}
pkill -9 iscsid
'';
};

View file

@ -0,0 +1,572 @@
{ config, lib, pkgs, ... }: with lib;
# See http://christophe.varoqui.free.fr/usage.html and
# https://github.com/opensvc/multipath-tools/blob/master/multipath/multipath.conf.5
let
cfg = config.services.multipath;
indentLines = n: str: concatStringsSep "\n" (
map (line: "${fixedWidthString n " " " "}${line}") (
filter ( x: x != "" ) ( splitString "\n" str )
)
);
addCheckDesc = desc: elemType: check: types.addCheck elemType check
// { description = "${elemType.description} (with check: ${desc})"; };
hexChars = stringToCharacters "0123456789abcdef";
isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s));
hexStr = addCheckDesc "hexadecimal string" types.str isHexString;
in {
options.services.multipath = with types; {
enable = mkEnableOption "the device mapper multipath (DM-MP) daemon";
package = mkOption {
type = package;
description = "multipath-tools package to use";
default = pkgs.multipath-tools;
defaultText = "pkgs.multipath-tools";
};
devices = mkOption {
default = [ ];
example = literalExpression ''
[
{
vendor = "\"COMPELNT\"";
product = "\"Compellent Vol\"";
path_checker = "tur";
no_path_retry = "queue";
max_sectors_kb = 256;
}, ...
]
'';
description = ''
This option allows you to define arrays for use in multipath
groups.
'';
type = listOf (submodule {
options = {
vendor = mkOption {
type = str;
example = "COMPELNT";
description = "Regular expression to match the vendor name";
};
product = mkOption {
type = str;
example = "Compellent Vol";
description = "Regular expression to match the product name";
};
revision = mkOption {
type = nullOr str;
default = null;
description = "Regular expression to match the product revision";
};
product_blacklist = mkOption {
type = nullOr str;
default = null;
description = "Products with the given vendor matching this string are blacklisted";
};
alias_prefix = mkOption {
type = nullOr str;
default = null;
description = "The user_friendly_names prefix to use for this device type, instead of the default mpath";
};
vpd_vendor = mkOption {
type = nullOr str;
default = null;
description = "The vendor specific vpd page information, using the vpd page abbreviation";
};
hardware_handler = mkOption {
type = nullOr (enum [ "emc" "rdac" "hp_sw" "alua" "ana" ]);
default = null;
description = "The hardware handler to use for this device type";
};
# Optional arguments
path_grouping_policy = mkOption {
type = nullOr (enum [ "failover" "multibus" "group_by_serial" "group_by_prio" "group_by_node_name" ]);
default = null; # real default: "failover"
description = "The default path grouping policy to apply to unspecified multipaths";
};
uid_attribute = mkOption {
type = nullOr str;
default = null;
description = "The udev attribute providing a unique path identifier (WWID)";
};
getuid_callout = mkOption {
type = nullOr str;
default = null;
description = ''
(Superseded by uid_attribute) The default program and args to callout
to obtain a unique path identifier. Should be specified with an absolute path.
'';
};
path_selector = mkOption {
type = nullOr (enum [
''"round-robin 0"''
''"queue-length 0"''
''"service-time 0"''
''"historical-service-time 0"''
]);
default = null; # real default: "service-time 0"
description = "The default path selector algorithm to use; they are offered by the kernel multipath target";
};
path_checker = mkOption {
type = enum [ "readsector0" "tur" "emc_clariion" "hp_sw" "rdac" "directio" "cciss_tur" "none" ];
default = "tur";
description = "The default method used to determine the paths state";
};
prio = mkOption {
type = nullOr (enum [
"none" "const" "sysfs" "emc" "alua" "ontap" "rdac" "hp_sw" "hds"
"random" "weightedpath" "path_latency" "ana" "datacore" "iet"
]);
default = null; # real default: "const"
description = "The name of the path priority routine";
};
prio_args = mkOption {
type = nullOr str;
default = null;
description = "Arguments to pass to to the prio function";
};
features = mkOption {
type = nullOr str;
default = null;
description = "Specify any device-mapper features to be used";
};
failback = mkOption {
type = nullOr str;
default = null; # real default: "manual"
description = "Tell multipathd how to manage path group failback. Quote integers as strings";
};
rr_weight = mkOption {
type = nullOr (enum [ "priorities" "uniform" ]);
default = null; # real default: "uniform"
description = ''
If set to priorities the multipath configurator will assign path weights
as "path prio * rr_min_io".
'';
};
no_path_retry = mkOption {
type = nullOr str;
default = null; # real default: "fail"
description = "Specify what to do when all paths are down. Quote integers as strings";
};
rr_min_io = mkOption {
type = nullOr int;
default = null; # real default: 1000
description = ''
Number of I/O requests to route to a path before switching to the next in the
same path group. This is only for Block I/O (BIO) based multipath and
only apply to round-robin path_selector.
'';
};
rr_min_io_rq = mkOption {
type = nullOr int;
default = null; # real default: 1
description = ''
Number of I/O requests to route to a path before switching to the next in the
same path group. This is only for Request based multipath and
only apply to round-robin path_selector.
'';
};
fast_io_fail_tmo = mkOption {
type = nullOr str;
default = null; # real default: 5
description = ''
Specify the number of seconds the SCSI layer will wait after a problem has been
detected on a FC remote port before failing I/O to devices on that remote port.
This should be smaller than dev_loss_tmo. Setting this to "off" will disable
the timeout. Quote integers as strings.
'';
};
dev_loss_tmo = mkOption {
type = nullOr str;
default = null; # real default: 600
description = ''
Specify the number of seconds the SCSI layer will wait after a problem has
been detected on a FC remote port before removing it from the system. This
can be set to "infinity" which sets it to the max value of 2147483647
seconds, or 68 years. It will be automatically adjusted to the overall
retry interval no_path_retry * polling_interval
if a number of retries is given with no_path_retry and the
overall retry interval is longer than the specified dev_loss_tmo value.
The Linux kernel will cap this value to 600 if fast_io_fail_tmo
is not set.
'';
};
flush_on_last_del = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "no"
description = ''
If set to "yes" multipathd will disable queueing when the last path to a
device has been deleted.
'';
};
user_friendly_names = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "no"
description = ''
If set to "yes", using the bindings file /etc/multipath/bindings
to assign a persistent and unique alias to the multipath, in the
form of mpath. If set to "no" use the WWID as the alias. In either
case this be will be overridden by any specific aliases in the
multipaths section.
'';
};
retain_attached_hw_handler = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "yes"
description = ''
(Obsolete for kernels >= 4.3) If set to "yes" and the SCSI layer has
already attached a hardware_handler to the device, multipath will not
force the device to use the hardware_handler specified by mutipath.conf.
If the SCSI layer has not attached a hardware handler, multipath will
continue to use its configured hardware handler.
Important Note: Linux kernel 4.3 or newer always behaves as if
"retain_attached_hw_handler yes" was set.
'';
};
detect_prio = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "yes"
description = ''
If set to "yes", multipath will try to detect if the device supports
SCSI-3 ALUA. If so, the device will automatically use the sysfs
prioritizer if the required sysf attributes access_state and
preferred_path are supported, or the alua prioritizer if not. If set
to "no", the prioritizer will be selected as usual.
'';
};
detect_checker = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "yes"
description = ''
If set to "yes", multipath will try to detect if the device supports
SCSI-3 ALUA. If so, the device will automatically use the tur checker.
If set to "no", the checker will be selected as usual.
'';
};
deferred_remove = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "no"
description = ''
If set to "yes", multipathd will do a deferred remove instead of a
regular remove when the last path device has been deleted. This means
that if the multipath device is still in use, it will be freed when
the last user closes it. If path is added to the multipath device
before the last user closes it, the deferred remove will be canceled.
'';
};
san_path_err_threshold = mkOption {
type = nullOr str;
default = null;
description = ''
If set to a value greater than 0, multipathd will watch paths and check
how many times a path has been failed due to errors.If the number of
failures on a particular path is greater then the san_path_err_threshold,
then the path will not reinstate till san_path_err_recovery_time. These
path failures should occur within a san_path_err_forget_rate checks, if
not we will consider the path is good enough to reinstantate.
'';
};
san_path_err_forget_rate = mkOption {
type = nullOr str;
default = null;
description = ''
If set to a value greater than 0, multipathd will check whether the path
failures has exceeded the san_path_err_threshold within this many checks
i.e san_path_err_forget_rate. If so we will not reinstante the path till
san_path_err_recovery_time.
'';
};
san_path_err_recovery_time = mkOption {
type = nullOr str;
default = null;
description = ''
If set to a value greater than 0, multipathd will make sure that when
path failures has exceeded the san_path_err_threshold within
san_path_err_forget_rate then the path will be placed in failed state
for san_path_err_recovery_time duration. Once san_path_err_recovery_time
has timeout we will reinstante the failed path. san_path_err_recovery_time
value should be in secs.
'';
};
marginal_path_err_sample_time = mkOption {
type = nullOr int;
default = null;
description = "One of the four parameters of supporting path check based on accounting IO error such as intermittent error";
};
marginal_path_err_rate_threshold = mkOption {
type = nullOr int;
default = null;
description = "The error rate threshold as a permillage (1/1000)";
};
marginal_path_err_recheck_gap_time = mkOption {
type = nullOr str;
default = null;
description = "One of the four parameters of supporting path check based on accounting IO error such as intermittent error";
};
marginal_path_double_failed_time = mkOption {
type = nullOr str;
default = null;
description = "One of the four parameters of supporting path check based on accounting IO error such as intermittent error";
};
delay_watch_checks = mkOption {
type = nullOr str;
default = null;
description = "This option is deprecated, and mapped to san_path_err_forget_rate";
};
delay_wait_checks = mkOption {
type = nullOr str;
default = null;
description = "This option is deprecated, and mapped to san_path_err_recovery_time";
};
skip_kpartx = mkOption {
type = nullOr (enum [ "yes" "no" ]);
default = null; # real default: "no"
description = "If set to yes, kpartx will not automatically create partitions on the device";
};
max_sectors_kb = mkOption {
type = nullOr int;
default = null;
description = "Sets the max_sectors_kb device parameter on all path devices and the multipath device to the specified value";
};
ghost_delay = mkOption {
type = nullOr int;
default = null;
description = "Sets the number of seconds that multipath will wait after creating a device with only ghost paths before marking it ready for use in systemd";
};
all_tg_pt = mkOption {
type = nullOr str;
default = null;
description = "Set the 'all targets ports' flag when registering keys with mpathpersist";
};
};
});
};
defaults = mkOption {
type = nullOr str;
default = null;
description = ''
This section defines default values for attributes which are used
whenever no values are given in the appropriate device or multipath
sections.
'';
};
blacklist = mkOption {
type = nullOr str;
default = null;
description = ''
This section defines which devices should be excluded from the
multipath topology discovery.
'';
};
blacklist_exceptions = mkOption {
type = nullOr str;
default = null;
description = ''
This section defines which devices should be included in the
multipath topology discovery, despite being listed in the
blacklist section.
'';
};
overrides = mkOption {
type = nullOr str;
default = null;
description = ''
This section defines values for attributes that should override the
device-specific settings for all devices.
'';
};
extraConfig = mkOption {
type = nullOr str;
default = null;
description = "Lines to append to default multipath.conf";
};
extraConfigFile = mkOption {
type = nullOr str;
default = null;
description = "Append an additional file's contents to /etc/multipath.conf";
};
pathGroups = mkOption {
example = literalExpression ''
[
{
wwid = "360080e500043b35c0123456789abcdef";
alias = 10001234;
array = "bigarray.example.com";
fsType = "zfs"; # optional
options = "ro"; # optional
}, ...
]
'';
description = ''
This option allows you to define multipath groups as described
in http://christophe.varoqui.free.fr/usage.html.
'';
type = listOf (submodule {
options = {
alias = mkOption {
type = int;
example = 1001234;
description = "The name of the multipath device";
};
wwid = mkOption {
type = hexStr;
example = "360080e500043b35c0123456789abcdef";
description = "The identifier for the multipath device";
};
array = mkOption {
type = str;
default = null;
example = "bigarray.example.com";
description = "The DNS name of the storage array";
};
fsType = mkOption {
type = nullOr str;
default = null;
example = "zfs";
description = "Type of the filesystem";
};
options = mkOption {
type = nullOr str;
default = null;
example = "ro";
description = "Options used to mount the file system";
};
};
});
};
};
config = mkIf cfg.enable {
environment.etc."multipath.conf".text =
let
inherit (cfg) defaults blacklist blacklist_exceptions overrides;
mkDeviceBlock = cfg: let
nonNullCfg = lib.filterAttrs (k: v: v != null) cfg;
attrs = lib.mapAttrsToList (name: value: " ${name} ${toString value}") nonNullCfg;
in ''
device {
${lib.concatStringsSep "\n" attrs}
}
'';
devices = lib.concatMapStringsSep "\n" mkDeviceBlock cfg.devices;
mkMultipathBlock = m: ''
multipath {
wwid ${m.wwid}
alias ${toString m.alias}
}
'';
multipaths = lib.concatMapStringsSep "\n" mkMultipathBlock cfg.pathGroups;
in ''
devices {
${indentLines 2 devices}
}
${optionalString (!isNull defaults) ''
defaults {
${indentLines 2 defaults}
multipath_dir ${cfg.package}/lib/multipath
}
''}
${optionalString (!isNull blacklist) ''
blacklist {
${indentLines 2 blacklist}
}
''}
${optionalString (!isNull blacklist_exceptions) ''
blacklist_exceptions {
${indentLines 2 blacklist_exceptions}
}
''}
${optionalString (!isNull overrides) ''
overrides {
${indentLines 2 overrides}
}
''}
multipaths {
${indentLines 2 multipaths}
}
'';
systemd.packages = [ cfg.package ];
environment.systemPackages = [ cfg.package ];
boot.kernelModules = [ "dm-multipath" "dm-service-time" ];
# We do not have systemd in stage-1 boot so must invoke `multipathd`
# with the `-1` argument which disables systemd calls. Invoke `multipath`
# to display the multipath mappings in the output of `journalctl -b`.
boot.initrd.kernelModules = [ "dm-multipath" "dm-service-time" ];
boot.initrd.postDeviceCommands = ''
modprobe -a dm-multipath dm-service-time
multipathd -s
(set -x && sleep 1 && multipath -ll)
'';
};
}

View file

@ -6,6 +6,8 @@ let
cfg = config.services.nextcloud;
fpm = config.services.phpfpm.pools.nextcloud;
inherit (cfg) datadir;
phpPackage = cfg.phpPackage.buildEnv {
extensions = { enabled, all }:
(with all;
@ -40,7 +42,7 @@ let
if [[ "$USER" != nextcloud ]]; then
sudo='exec /run/wrappers/bin/sudo -u nextcloud --preserve-env=NEXTCLOUD_CONFIG_DIR --preserve-env=OC_PASS'
fi
export NEXTCLOUD_CONFIG_DIR="${cfg.home}/config"
export NEXTCLOUD_CONFIG_DIR="${datadir}/config"
$sudo \
${phpPackage}/bin/php \
occ "$@"
@ -85,6 +87,59 @@ in {
default = "/var/lib/nextcloud";
description = "Storage path of nextcloud.";
};
datadir = mkOption {
type = types.str;
defaultText = "config.services.nextcloud.home";
description = ''
Data storage path of nextcloud. Will be <xref linkend="opt-services.nextcloud.home" /> by default.
This folder will be populated with a config.php and data folder which contains the state of the instance (excl the database).";
'';
example = "/mnt/nextcloud-file";
};
extraApps = mkOption {
type = types.attrsOf types.package;
default = { };
description = ''
Extra apps to install. Should be an attrSet of appid to packages generated by fetchNextcloudApp.
The appid must be identical to the "id" value in the apps appinfo/info.xml.
Using this will disable the appstore to prevent Nextcloud from updating these apps (see <xref linkend="opt-services.nextcloud.appstoreEnable" />).
'';
example = literalExpression ''
{
maps = pkgs.fetchNextcloudApp {
name = "maps";
sha256 = "007y80idqg6b6zk6kjxg4vgw0z8fsxs9lajnv49vv1zjy6jx2i1i";
url = "https://github.com/nextcloud/maps/releases/download/v0.1.9/maps-0.1.9.tar.gz";
version = "0.1.9";
};
phonetrack = pkgs.fetchNextcloudApp {
name = "phonetrack";
sha256 = "0qf366vbahyl27p9mshfma1as4nvql6w75zy2zk5xwwbp343vsbc";
url = "https://gitlab.com/eneiluj/phonetrack-oc/-/wikis/uploads/931aaaf8dca24bf31a7e169a83c17235/phonetrack-0.6.9.tar.gz";
version = "0.6.9";
};
}
'';
};
extraAppsEnable = mkOption {
type = types.bool;
default = true;
description = ''
Automatically enable the apps in <xref linkend="opt-services.nextcloud.extraApps" /> every time nextcloud starts.
If set to false, apps need to be enabled in the Nextcloud user interface or with nextcloud-occ app:enable.
'';
};
appstoreEnable = mkOption {
type = types.nullOr types.bool;
default = null;
example = true;
description = ''
Allow the installation of apps and app updates from the store.
Enabled by default unless there are packages in <xref linkend="opt-services.nextcloud.extraApps" />.
Set to true to force enable the store even if <xref linkend="opt-services.nextcloud.extraApps" /> is used.
Set to false to disable the installation of apps from the global appstore. App management is always enabled regardless of this setting.
'';
};
logLevel = mkOption {
type = types.ints.between 0 4;
default = 2;
@ -524,6 +579,8 @@ in {
else nextcloud22
);
services.nextcloud.datadir = mkOptionDefault config.services.nextcloud.home;
services.nextcloud.phpPackage =
if versionOlder cfg.package.version "21" then pkgs.php74
else pkgs.php80;
@ -563,6 +620,14 @@ in {
]
'';
showAppStoreSetting = cfg.appstoreEnable != null || cfg.extraApps != {};
renderedAppStoreSetting =
let
x = cfg.appstoreEnable;
in
if x == null then "false"
else boolToString x;
overrideConfig = pkgs.writeText "nextcloud-config.php" ''
<?php
${optionalString requiresReadSecretFunction ''
@ -581,10 +646,12 @@ in {
''}
$CONFIG = [
'apps_paths' => [
${optionalString (cfg.extraApps != { }) "[ 'path' => '${cfg.home}/nix-apps', 'url' => '/nix-apps', 'writable' => false ],"}
[ 'path' => '${cfg.home}/apps', 'url' => '/apps', 'writable' => false ],
[ 'path' => '${cfg.home}/store-apps', 'url' => '/store-apps', 'writable' => true ],
],
'datadirectory' => '${cfg.home}/data',
${optionalString (showAppStoreSetting) "'appstoreenabled' => ${renderedAppStoreSetting},"}
'datadirectory' => '${datadir}/data',
'skeletondirectory' => '${cfg.skeletonDirectory}',
${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
'log_type' => 'syslog',
@ -628,7 +695,7 @@ in {
"--database-pass" = "\$${dbpass.arg}";
"--admin-user" = ''"${c.adminuser}"'';
"--admin-pass" = "\$${adminpass.arg}";
"--data-dir" = ''"${cfg.home}/data"'';
"--data-dir" = ''"${datadir}/data"'';
});
in ''
${mkExport dbpass}
@ -670,9 +737,15 @@ in {
ln -sf ${cfg.package}/apps ${cfg.home}/
# Install extra apps
ln -sfT \
${pkgs.linkFarm "nix-apps"
(mapAttrsToList (name: path: { inherit name path; }) cfg.extraApps)} \
${cfg.home}/nix-apps
# create nextcloud directories.
# if the directories exist already with wrong permissions, we fix that
for dir in ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps; do
for dir in ${datadir}/config ${datadir}/data ${cfg.home}/store-apps ${cfg.home}/nix-apps; do
if [ ! -e $dir ]; then
install -o nextcloud -g nextcloud -d $dir
elif [ $(stat -c "%G" $dir) != "nextcloud" ]; then
@ -680,23 +753,29 @@ in {
fi
done
ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
ln -sf ${overrideConfig} ${datadir}/config/override.config.php
# Do not install if already installed
if [[ ! -e ${cfg.home}/config/config.php ]]; then
if [[ ! -e ${datadir}/config/config.php ]]; then
${occInstallCmd}
fi
${occ}/bin/nextcloud-occ upgrade
${occ}/bin/nextcloud-occ config:system:delete trusted_domains
${optionalString (cfg.extraAppsEnable && cfg.extraApps != { }) ''
# Try to enable apps (don't fail when one of them cannot be enabled , eg. due to incompatible version)
${occ}/bin/nextcloud-occ app:enable ${concatStringsSep " " (attrNames cfg.extraApps)}
''}
${occSetTrustedDomainsCmd}
'';
serviceConfig.Type = "oneshot";
serviceConfig.User = "nextcloud";
};
nextcloud-cron = {
environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
serviceConfig.Type = "oneshot";
serviceConfig.User = "nextcloud";
serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${cfg.package}/cron.php";
@ -715,7 +794,7 @@ in {
group = "nextcloud";
phpPackage = phpPackage;
phpEnv = {
NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin";
};
settings = mapAttrs (name: mkDefault) {
@ -765,6 +844,10 @@ in {
priority = 201;
extraConfig = "root ${cfg.home};";
};
"~ ^/nix-apps" = {
priority = 201;
extraConfig = "root ${cfg.home};";
};
"^~ /.well-known" = {
priority = 210;
extraConfig = ''

View file

@ -237,6 +237,12 @@
Some apps may require extra PHP extensions to be installed.
This can be configured with the <xref linkend="opt-services.nextcloud.phpExtraExtensions" /> setting.
</para>
<para>
Alternatively, extra apps can also be declared with the <xref linkend="opt-services.nextcloud.extraApps" /> setting.
When using this setting, apps can no longer be managed statefully because this can lead to Nextcloud updating apps
that are managed by Nix. If you want automatic updates it is recommended that you use web interface to install apps.
</para>
</section>
<section xml:id="module-services-nextcloud-maintainer-info">

View file

@ -137,6 +137,14 @@ let
copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/resize2fs
''}
# Copy multipath.
${optionalString config.services.multipath.enable ''
copy_bin_and_libs ${config.services.multipath.package}/bin/multipath
copy_bin_and_libs ${config.services.multipath.package}/bin/multipathd
# Copy lib/multipath manually.
cp -rpv ${config.services.multipath.package}/lib/multipath $out/lib
''}
# Copy secrets if needed.
#
# TODO: move out to a separate script; see #85000.
@ -199,6 +207,10 @@ let
$out/bin/dmsetup --version 2>&1 | tee -a log | grep -q "version:"
LVM_SYSTEM_DIR=$out $out/bin/lvm version 2>&1 | tee -a log | grep -q "LVM"
$out/bin/mdadm --version
${optionalString config.services.multipath.enable ''
($out/bin/multipath || true) 2>&1 | grep -q 'need to be root'
($out/bin/multipathd || true) 2>&1 | grep -q 'need to be root'
''}
${config.boot.initrd.extraUtilsCommandsTest}
fi
@ -338,7 +350,26 @@ let
{ object = pkgs.kmod-debian-aliases;
symlink = "/etc/modprobe.d/debian.conf";
}
];
] ++ lib.optionals config.services.multipath.enable [
{ object = pkgs.runCommand "multipath.conf" {
src = config.environment.etc."multipath.conf".text;
preferLocalBuild = true;
} ''
target=$out
printf "$src" > $out
substituteInPlace $out \
--replace ${config.services.multipath.package}/lib ${extraUtils}/lib
'';
symlink = "/etc/multipath.conf";
}
] ++ (lib.mapAttrsToList
(symlink: options:
{
inherit symlink;
object = options.source;
}
)
config.boot.initrd.extraFiles);
};
# Script to add secret files to the initrd at bootloader update time
@ -419,6 +450,22 @@ in
'';
};
boot.initrd.extraFiles = mkOption {
default = { };
type = types.attrsOf
(types.submodule {
options = {
source = mkOption {
type = types.package;
description = "The object to make available inside the initrd.";
};
};
});
description = ''
Extra files to link and copy in to the initrd.
'';
};
boot.initrd.prepend = mkOption {
default = [ ];
type = types.listOf types.str;

View file

@ -0,0 +1,267 @@
import ./make-test-python.nix (
{ pkgs, lib, ... }:
let
initiatorName = "iqn.2020-08.org.linux-iscsi.initiatorhost:example";
targetName = "iqn.2003-01.org.linux-iscsi.target.x8664:sn.acf8fd9c23af";
in
{
name = "iscsi";
meta = {
maintainers = pkgs.lib.teams.deshaw.members;
};
nodes = {
target = { config, pkgs, lib, ... }: {
virtualisation.vlans = [ 1 2 ];
services.target = {
enable = true;
config = {
fabric_modules = [ ];
storage_objects = [
{
dev = "/dev/vdb";
name = "test";
plugin = "block";
write_back = true;
wwn = "92b17c3f-6b40-4168-b082-ceeb7b495522";
}
];
targets = [
{
fabric = "iscsi";
tpgs = [
{
enable = true;
attributes = {
authentication = 0;
generate_node_acls = 1;
};
luns = [
{
alias = "94dfe06967";
alua_tg_pt_gp_name = "default_tg_pt_gp";
index = 0;
storage_object = "/backstores/block/test";
}
];
node_acls = [
{
mapped_luns = [
{
alias = "d42f5bdf8a";
index = 0;
tpg_lun = 0;
write_protect = false;
}
];
node_wwn = initiatorName;
}
];
portals = [
{
ip_address = "0.0.0.0";
iser = false;
offload = false;
port = 3260;
}
];
tag = 1;
}
];
wwn = targetName;
}
];
};
};
networking.firewall.allowedTCPPorts = [ 3260 ];
networking.firewall.allowedUDPPorts = [ 3260 ];
virtualisation.memorySize = 2048;
virtualisation.emptyDiskImages = [ 2048 ];
};
initiatorAuto = { nodes, config, pkgs, ... }: {
virtualisation.vlans = [ 1 2 ];
services.multipath = {
enable = true;
defaults = ''
find_multipaths yes
user_friendly_names yes
'';
pathGroups = [
{
alias = 123456;
wwid = "3600140592b17c3f6b404168b082ceeb7";
}
];
};
services.openiscsi = {
enable = true;
enableAutoLoginOut = true;
discoverPortal = "target";
name = initiatorName;
};
environment.systemPackages = with pkgs; [
xfsprogs
];
environment.etc."initiator-root-disk-closure".source = nodes.initiatorRootDisk.config.system.build.toplevel;
nix.binaryCaches = lib.mkForce [ ];
nix.extraOptions = ''
hashed-mirrors =
connect-timeout = 1
'';
};
initiatorRootDisk = { config, pkgs, modulesPath, lib, ... }: {
boot.initrd.network.enable = true;
boot.loader.grub.enable = false;
boot.kernelParams = lib.mkOverride 5 (
[
"boot.shell_on_fail"
"console=tty1"
"ip=192.168.1.1:::255.255.255.0::ens9:none"
"ip=192.168.2.1:::255.255.255.0::ens10:none"
]
);
# defaults to true, puts some code in the initrd that tries to mount an overlayfs on /nix/store
virtualisation.writableStore = false;
virtualisation.vlans = [ 1 2 ];
services.multipath = {
enable = true;
defaults = ''
find_multipaths yes
user_friendly_names yes
'';
pathGroups = [
{
alias = 123456;
wwid = "3600140592b17c3f6b404168b082ceeb7";
}
];
};
fileSystems = lib.mkOverride 5 {
"/" = {
fsType = "xfs";
device = "/dev/mapper/123456";
options = [ "_netdev" ];
};
};
boot.initrd.extraFiles."etc/multipath/wwids".source = pkgs.writeText "wwids" "/3600140592b17c3f6b404168b082ceeb7/";
boot.iscsi-initiator = {
discoverPortal = "target";
name = initiatorName;
target = targetName;
extraIscsiCommands = ''
iscsiadm -m discovery -o update -t sendtargets -p 192.168.2.3 --login
'';
};
};
};
testScript = { nodes, ... }: ''
target.start()
target.wait_for_unit("iscsi-target.service")
initiatorAuto.start()
initiatorAuto.wait_for_unit("iscsid.service")
initiatorAuto.wait_for_unit("iscsi.service")
initiatorAuto.get_unit_info("iscsi")
# Expecting this to fail since we should already know about 192.168.1.3
initiatorAuto.fail("iscsiadm -m discovery -o update -t sendtargets -p 192.168.1.3 --login")
# Expecting this to succeed since we don't yet know about 192.168.2.3
initiatorAuto.succeed("iscsiadm -m discovery -o update -t sendtargets -p 192.168.2.3 --login")
# /dev/sda is provided by iscsi on target
initiatorAuto.succeed("set -x; while ! test -e /dev/sda; do sleep 1; done")
initiatorAuto.succeed("mkfs.xfs /dev/sda")
initiatorAuto.succeed("mkdir /mnt")
# Start by verifying /dev/sda and /dev/sdb are both the same disk
initiatorAuto.succeed("mount /dev/sda /mnt")
initiatorAuto.succeed("touch /mnt/hi")
initiatorAuto.succeed("umount /mnt")
initiatorAuto.succeed("mount /dev/sdb /mnt")
initiatorAuto.succeed("test -e /mnt/hi")
initiatorAuto.succeed("umount /mnt")
initiatorAuto.succeed("systemctl restart multipathd")
initiatorAuto.succeed("multipath -ll | systemd-cat")
# Install our RootDisk machine to 123456, the alias to the device that multipath is now managing
initiatorAuto.succeed("mount /dev/mapper/123456 /mnt")
initiatorAuto.succeed("mkdir -p /mnt/etc/{multipath,iscsi}")
initiatorAuto.succeed("cp -r /etc/multipath/wwids /mnt/etc/multipath/wwids")
initiatorAuto.succeed("cp -r /etc/iscsi/{nodes,send_targets} /mnt/etc/iscsi")
initiatorAuto.succeed(
"nixos-install --no-bootloader --no-root-passwd --system /etc/initiator-root-disk-closure"
)
initiatorAuto.succeed("umount /mnt")
initiatorAuto.shutdown()
initiatorRootDisk.start()
initiatorRootDisk.wait_for_unit("multi-user.target")
initiatorRootDisk.wait_for_unit("iscsid")
# Log in over both nodes
initiatorRootDisk.fail("iscsiadm -m discovery -o update -t sendtargets -p 192.168.1.3 --login")
initiatorRootDisk.fail("iscsiadm -m discovery -o update -t sendtargets -p 192.168.2.3 --login")
initiatorRootDisk.succeed("systemctl restart multipathd")
initiatorRootDisk.succeed("multipath -ll | systemd-cat")
# Verify we can write and sync the root disk
initiatorRootDisk.succeed("mkdir /scratch")
initiatorRootDisk.succeed("touch /scratch/both-up")
initiatorRootDisk.succeed("sync /scratch")
# Verify we can write to the root with ens9 (sda, 192.168.1.3) down
initiatorRootDisk.succeed("ip link set ens9 down")
initiatorRootDisk.succeed("touch /scratch/ens9-down")
initiatorRootDisk.succeed("sync /scratch")
initiatorRootDisk.succeed("ip link set ens9 up")
# todo: better way to wait until multipath notices the link is back
initiatorRootDisk.succeed("sleep 5")
initiatorRootDisk.succeed("touch /scratch/both-down")
initiatorRootDisk.succeed("sync /scratch")
# Verify we can write to the root with ens10 (sdb, 192.168.2.3) down
initiatorRootDisk.succeed("ip link set ens10 down")
initiatorRootDisk.succeed("touch /scratch/ens10-down")
initiatorRootDisk.succeed("sync /scratch")
initiatorRootDisk.succeed("ip link set ens10 up")
initiatorRootDisk.succeed("touch /scratch/ens10-down")
initiatorRootDisk.succeed("sync /scratch")
initiatorRootDisk.succeed("ip link set ens9 up")
initiatorRootDisk.succeed("ip link set ens10 up")
initiatorRootDisk.shutdown()
# Verify we can boot with the target's eth1 down, forcing
# it to multipath via the second link
target.succeed("ip link set eth1 down")
initiatorRootDisk.start()
initiatorRootDisk.wait_for_unit("multi-user.target")
initiatorRootDisk.wait_for_unit("iscsid")
initiatorRootDisk.succeed("test -e /scratch/both-up")
'';
}
)

View file

@ -33,8 +33,13 @@ in {
in {
networking.firewall.allowedTCPPorts = [ 80 ];
systemd.tmpfiles.rules = [
"d /var/lib/nextcloud-data 0750 nextcloud nginx - -"
];
services.nextcloud = {
enable = true;
datadir = "/var/lib/nextcloud-data";
hostName = "nextcloud";
config = {
# Don't inherit adminuser since "root" is supposed to be the default
@ -98,6 +103,7 @@ in {
"${withRcloneEnv} ${copySharedFile}"
)
client.wait_for_unit("multi-user.target")
nextcloud.succeed("test -f /var/lib/nextcloud-data/data/root/files/test-shared-file")
client.succeed(
"${withRcloneEnv} ${diffSharedFile}"
)

View file

@ -198,6 +198,8 @@
railgun = callPackage ./railgun { };
rec-mode = callPackage ./rec-mode { };
structured-haskell-mode = self.shm;
sv-kalender = callPackage ./sv-kalender { };

View file

@ -0,0 +1,18 @@
{ lib
, trivialBuild
, recutils
}:
trivialBuild {
pname = "rec-mode";
inherit (recutils) version src;
postUnpack = ''
sourceRoot="$sourceRoot/etc"
'';
meta = recutils.meta // {
description = "A major mode for editing rec files";
};
}

View file

@ -4,9 +4,9 @@
, curl, writeShellScript, common-updater-scripts }:
let
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.1-20f4dbb0/Hubstaff-1.6.1-20f4dbb0.sh";
version = "1.6.1-20f4dbb0";
sha256 = "097hpr4sjh14pidflvs8n1mkjpmij9l2vaan4m82vjrr0qdqi8qy";
url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.2-b5029032/Hubstaff-1.6.2-b5029032.sh";
version = "1.6.2-b5029032";
sha256 = "1q3gimg6bcpdnm1fkn1vq3b6shwgi6y84bixisyfcva5px7dmi4s";
rpath = lib.makeLibraryPath
[ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "markets";
version = "0.5.2";
version = "0.5.3";
src = fetchFromGitHub {
owner = "bitstower";
repo = "markets";
rev = version;
sha256 = "0nk1bs7i6b7r90g5qwd3s2m462vk3kvza0drq7rzb5sdaiz9ccnz";
sha256 = "0sfdmz7cp8i2bymippp8jyxsidxjn69v9cqm40q77j81kfm84bfv";
};
nativeBuildInputs = [

View file

@ -14,11 +14,11 @@ let
in
stdenv.mkDerivation rec {
pname = "mkgmap";
version = "4807";
version = "4808";
src = fetchurl {
url = "https://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
sha256 = "3DEcXopoCIcBANYrGclZH6K0JLgeYADXtPjQtobyfps=";
sha256 = "ooiXotpxdy99ViUQ0kFp0NoTowGEZjEoD31x+3XrW28=";
};
patches = [

View file

@ -15,6 +15,7 @@
, hunspellWithDicts
, intltool
, isocodes
, libappindicator-gtk3
, libcanberra-gtk3
, mousetweaks
, udev
@ -70,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
gtk3
hunspell
isocodes
libappindicator-gtk3
libcanberra-gtk3
libxkbcommon
mousetweaks
@ -78,7 +80,7 @@ python3.pkgs.buildPythonApplication rec {
xorg.libxkbfile
] ++ lib.optional atspiSupport at-spi2-core;
propagatedBuildInputs = with python3.pkgs; [
pythonPath = with python3.pkgs; [
dbus-python
distutils_extra
pyatspi

View file

@ -65,7 +65,7 @@ buildPythonApplication rec {
gobject-introspection
];
propagatedBuildInputs = [
pythonPath = [
pygobject3
pyatspi
dbus-python

View file

@ -5,19 +5,19 @@
rustPlatform.buildRustPackage rec {
pname = "taskwarrior-tui";
version = "0.13.33";
version = "0.13.34";
src = fetchFromGitHub {
owner = "kdheepak";
repo = "taskwarrior-tui";
rev = "v${version}";
sha256 = "sha256-vKmVScXQLDjhNJEzlhqiyhRZjR26xjrT1LijxzZK8Cg=";
sha256 = "0p0nkqvkir6lriq75ingpfywn2yvyn3l35yxzk4aiq6vr2n7h3mw";
};
# Because there's a test that requires terminal access
doCheck = false;
cargoSha256 = "sha256-0E4nk8WLprumHKQjpdn+U36z7mdgFb7g/i7egLk4Jcs=";
cargoSha256 = "1mzc6rnqcv97dlkl4j4p180f46wlyq45lc6nq7gqw396wc6m04km";
meta = with lib; {
description = "A terminal user interface for taskwarrior ";

View file

@ -0,0 +1,65 @@
{ lib
, gobject-introspection
, meson
, ninja
, pkg-config
, wrapGAppsHook
, desktop-file-utils
, glib
, gtk3
, python3
, gsettings-desktop-schemas
, python3Packages
, fetchFromGitHub
}:
python3Packages.buildPythonApplication rec {
pname = "themechanger";
version = "0.10.1";
format = "other";
src = fetchFromGitHub {
owner = "ALEX11BR";
repo = "ThemeChanger";
rev = "v${version}";
sha256 = "1bxxn5bmdwaxfvyh6z2rxklwnxgvv6kh5y9m8r1k7d0n4msx1x2h";
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook
desktop-file-utils
gtk3
];
buildInputs = [
glib
gtk3
python3
gsettings-desktop-schemas
];
propagatedBuildInputs = with python3Packages; [
pygobject3
];
postPatch = ''
patchShebangs postinstall.py
'';
meta = with lib; {
homepage = "https://github.com/ALEX11BR/ThemeChanger";
description = "A theme changing utility for Linux";
longDescription = ''
This app is a theme changing utility for Linux, BSDs, and whatnots.
It lets the user change GTK 2/3/4, Kvantum, icon and cursor themes, edit GTK CSS with live preview, and set some related options.
It also lets the user install icon and widget theme archives.
'';
maintainers = with maintainers; [ ALEX11BR ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -92,11 +92,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.30.87";
version = "1.30.89";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "0mx1vnrip1y87g6zj9sdcf5siihwn0b6v1q106d9kz89znpzd64s";
sha256 = "2fu6Nk/eMLQ9nYy1aZDpjnRg16YosQPqdKtJ2VAYBrw=";
};
dontConfigure = true;

View file

@ -53,9 +53,6 @@ buildFun:
with lib;
let
python2WithPackages = python2.withPackages(ps: with ps; [
ply jinja2 setuptools
]);
python3WithPackages = python3.withPackages(ps: with ps; [
ply jinja2 setuptools
]);
@ -125,7 +122,7 @@ let
nativeBuildInputs = [
ninja pkg-config
python2WithPackages python3WithPackages perl
python2 python3WithPackages perl
gnutar which
llvmPackages.bintools
];
@ -308,7 +305,7 @@ let
# This is to ensure expansion of $out.
libExecPath="${libExecPath}"
${python2}/bin/python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
${python3}/bin/python3 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries}
${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
# Fail if `gn gen` contains a WARNING.

View file

@ -18,11 +18,11 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec {
pname = "vivaldi";
version = "4.1.2369.21-1";
version = "4.3.2439.44-1";
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
sha256 = "03062mik6paqp219jz420jsg762jjrfxmj1daq129z2zgzq0qr8l";
sha256 = "1bsx8axs438f4p019mdq66pmpimf575r31rv6cibpgv85366xhh9";
};
unpackPhase = ''
@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
buildPhase = ''
runHook preBuild
echo "Patching Vivaldi binaries"
for f in crashpad_handler vivaldi-bin vivaldi-sandbox ; do
for f in chrome_crashpad_handler vivaldi-bin vivaldi-sandbox ; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}" \

View file

@ -563,10 +563,10 @@
"owner": "hashicorp",
"provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
"repo": "terraform-provider-kubernetes",
"rev": "v2.4.1",
"sha256": "0mk0f12yy58gjkki7xpf9bjfw9h9zdgby2b4bddqp5csq11payhd",
"rev": "v2.5.0",
"sha256": "1hp3bwhlfiwf1a4l6xfldwdxmyjs4nq3n8g343grjya7ibbhh4sg",
"vendorSha256": null,
"version": "2.4.1"
"version": "2.5.0"
},
"launchdarkly": {
"owner": "terraform-providers",

View file

@ -1,43 +1,74 @@
{ lib, stdenv, mkDerivation, fetchFromGitHub
, qmake, pkg-config, olm, wrapQtAppsHook
, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qtgraphicaleffects
, python3Packages, pyotherside, libXScrnSaver
{ lib
, stdenv
, mkDerivation
, fetchFromGitHub
, libXScrnSaver
, olm
, pkg-config
, pyotherside
, python3Packages
, qmake
, qtbase
, qtgraphicaleffects
, qtkeychain
, qtmultimedia
, qtquickcontrols2
, wrapQtAppsHook
}:
let
pypkgs = with python3Packages; [
aiofiles filetype matrix-nio appdirs cairosvg
pymediainfo setuptools html-sanitizer mistune blist
pyotherside
];
in
mkDerivation rec {
pname = "mirage";
version = "0.6.4";
version = "0.7.2";
src = fetchFromGitHub {
owner = "mirukana";
repo = pname;
rev = "v${version}";
sha256 = "15x0x2rf4fzsd0zr84fq3j3ddzkgc5il8s54jpxk8wl4ah03g4nv";
sha256 = "sha256-dJS4lAXHHNUEAG75gQaS9+aQTTTj8KHqHjISioynFdY=";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook python3Packages.wrapPython ];
buildInputs = [
qtbase qtmultimedia
qtquickcontrols2
qtkeychain qtgraphicaleffects
olm pyotherside
libXScrnSaver
nativeBuildInputs = [
pkg-config
python3Packages.wrapPython
qmake
wrapQtAppsHook
];
propagatedBuildInputs = pypkgs;
buildInputs = [
libXScrnSaver
olm
pyotherside
qtbase
qtgraphicaleffects
qtkeychain
qtmultimedia
qtquickcontrols2
] ++ pythonPath;
pythonPath = pypkgs;
pythonPath = with python3Packages; [
aiofiles
appdirs
blist
cairosvg
filetype
html-sanitizer
hsluv
matrix-nio
mistune
plyer
pymediainfo
pyotherside
redbaron
simpleaudio
setuptools
watchgod
];
qmakeFlags = [ "PREFIX=${placeholder "out"}" "CONFIG+=qtquickcompiler" ];
qmakeFlags = [
"PREFIX=${placeholder "out"}"
"CONFIG+=qtquickcompiler"
];
dontWrapQtApps = true;
postInstall = ''
@ -45,14 +76,14 @@ mkDerivation rec {
wrapProgram $out/bin/mirage \
--prefix PYTHONPATH : "$PYTHONPATH" \
"''${qtWrapperArgs[@]}"
'';
'';
meta = with lib; {
description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication";
homepage = "https://github.com/mirukana/mirage";
license = licenses.lgpl3;
maintainers = with maintainers; [ colemickens ];
broken = stdenv.isDarwin;
description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ colemickens AndersonTorres ];
inherit (qtbase.meta) platforms;
broken = stdenv.isDarwin;
};
}

View file

@ -7,7 +7,7 @@ let
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
# source of the latter disappears much faster.
version = "8.75.0.140";
version = "8.77.0.97";
rpath = lib.makeLibraryPath [
alsa-lib
@ -69,7 +69,7 @@ let
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
];
sha256 = "sha256-z3xsl53CSJthSd/BMbMD7RdYQ4z9oI/Rb9jUvd82H4E=";
sha256 = "sha256-0u1fpKJrsEgbvTwdkqJZ/SwCRDmJwEi9IXHbMmY8MJI=";
}
else
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";

View file

@ -1,25 +1,25 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, gtk2, lua, perl, python3
{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, gtk2, lua, perl, python3Packages
, pciutils, dbus-glib, libcanberra-gtk2, libproxy
, enchant2, libnotify, openssl, isocodes
, desktop-file-utils
, meson, ninja
, meson, ninja, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "hexchat";
version = "2.14.3";
version = "2.16.0";
src = fetchFromGitHub {
owner = "hexchat";
repo = "hexchat";
rev = "v${version}";
sha256 = "08kvp0dcn3bvmlqcfp9312075bwkqkpa8m7zybr88pfp210gfl85";
sha256 = "08zhlf9d3xdis62byxzgizhfg8kbppxl7cgxkzhwdc1srpj7vpx6";
};
nativeBuildInputs = [ meson ninja pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config makeWrapper ];
buildInputs = [
gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy
gtk2 lua perl python3Packages.python python3Packages.cffi pciutils dbus-glib libcanberra-gtk2 libproxy
libnotify openssl desktop-file-utils
isocodes
];
@ -30,9 +30,10 @@ stdenv.mkDerivation rec {
sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build
chmod +x meson_post_install.py
for f in meson_post_install.py \
src/common/make-te.py \
plugins/perl/generate_header.py \
po/validate-textevent-translations
plugins/python/generate_plugin.py \
po/validate-textevent-translations \
src/common/make-te.py
do
patchShebangs $f
done
@ -40,6 +41,10 @@ stdenv.mkDerivation rec {
mesonFlags = [ "-Dwith-lua=lua" "-Dwith-text=true" ];
postInstall = ''
wrapProgram $out/bin/hexchat --prefix PYTHONPATH : "$PYTHONPATH"
'';
meta = with lib; {
description = "A popular and easy to use graphical IRC (chat) client";
homepage = "https://hexchat.github.io/";

View file

@ -44,6 +44,7 @@ let
"8.13.0".sha256 = "0sjbqmz6qcvnz0hv87xha80qbhvmmyd675wyc5z4rgr34j2l1ymd";
"8.13.1".sha256 = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
"8.13.2".sha256 = "1884vbmwmqwn9ngibax6dhnqh4cc02l0s2ajc6jb1xgr0i60whjk";
"8.14+rc1".sha256 = "0jrkgj7c2959dsinw4x7q4ril1x24qq08snl25hgx33ls4sym5zb";
};
releaseRev = v: "V${v}";
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@ -163,7 +164,7 @@ self = stdenv.mkDerivation {
prefixKey = "-prefix ";
buildFlags = [ "revision" "coq" "coqide" "bin/votour" ];
buildFlags = [ "revision" "coq" "coqide" ] ++ optional (!versionAtLeast "8.14") "bin/votour";
enableParallelBuilding = true;
createFindlibDestdir = true;
@ -177,9 +178,11 @@ self = stdenv.mkDerivation {
categories = "Development;Science;Math;IDE;GTK";
});
postInstall = ''
postInstall = let suffix = if versionAtLeast "8.14" then "-core" else ""; in ''
cp bin/votour $out/bin/
ln -s $out/lib/coq $OCAMLFIND_DESTDIR/coq
ln -s $out/lib/coq${suffix} $OCAMLFIND_DESTDIR/coq${suffix}
'' + optionalString (versionAtLeast "8.14") ''
ln -s $out/lib/coqide-server $OCAMLFIND_DESTDIR/coqide-server
'' + optionalString buildIde ''
mkdir -p "$out/share/pixmaps"
ln -s "$out/share/coq/coq.png" "$out/share/pixmaps/"

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
# z3's install phase is stupid because it tries to calculate the
# python package store location itself, meaning it'll attempt to
# write files into the nix store, and fail.
soext = if stdenv.system == "x86_64-darwin" then ".dylib" else ".so";
soext = stdenv.hostPlatform.extensions.sharedLibrary;
installPhase = ''
mkdir -p $out/bin $out/lib/${python.libPrefix}/site-packages $out/include
cp ../src/api/z3*.h $out/include

View file

@ -3,11 +3,11 @@
buildPythonApplication rec {
pname = "MAVProxy";
version = "1.8.44";
version = "1.8.45";
src = fetchPypi {
inherit pname version;
sha256 = "104000a0e57ef4591bdf28addf8057339b22cbff9501ba92b9b1720d0b2b7325";
sha256 = "f1010cefb5b97a5d392d32aa1425bdb7df995161125f8686f2c7383c2a86e9e5";
};
postPatch = ''

View file

@ -13,11 +13,11 @@ let
in
stdenv.mkDerivation rec {
pname = "gitkraken";
version = "7.7.2";
version = "8.0.1";
src = fetchzip {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
sha256 = "sha256-jL0XLw0V0ED+lDBn3sGaJmm96zQwXue333UuYGHjB64=";
sha256 = "1n88m41424qwsfp2hy58piqpv2dk6i74hcj184aq6njllvnsznnq";
};
dontBuild = true;

View file

@ -0,0 +1,37 @@
{ stdenv, gnutar, findutils, fetchurl, ... }:
{ name
, url
, version
, sha256
, patches ? [ ]
}:
stdenv.mkDerivation {
name = "nc-app-${name}";
inherit version patches;
src = fetchurl {
inherit url sha256;
};
nativeBuildInputs = [
gnutar
findutils
];
unpackPhase = ''
tar -xzpf $src
'';
installPhase = ''
approot="$(dirname $(dirname $(find -path '*/appinfo/info.xml' | head -n 1)))"
if [ -d "$approot" ];
then
mv "$approot/" $out
chmod -R a-w $out
else
echo "Could not find appinfo/info.xml"
exit 1;
fi
'';
}

View file

@ -14,6 +14,8 @@ mkDerivation rec {
pname = "adwaita-qt";
version = "1.4.0";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "FedoraQt";
repo = pname;

View file

@ -79,13 +79,12 @@ python3.pkgs.buildPythonApplication rec {
gst-plugins-ugly
]);
propagatedBuildInputs = with python3.pkgs; [
pythonPath = with python3.pkgs; [
pycairo
dbus-python
pygobject3
];
postPatch = ''
for f in meson_post_conf.py meson_post_install.py; do
chmod +x $f
@ -93,6 +92,13 @@ python3.pkgs.buildPythonApplication rec {
done
'';
# Prevent double wrapping, let the Python wrapper use the args in preFixup.
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
doCheck = false;
# handle setup hooks better

View file

@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dhttpd=${apacheHttpd.out}/bin/httpd"
"-Dmodules_path=${apacheHttpd.dev}/modules"
"-Dmodules_path=${apacheHttpd}/modules"
"-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
# In 3.34.0 it defaults to false but it is silently ignored and always installed.
# Lets add it anyway in case they decide to make build respect the option in the future.

View file

@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
pname = "nautilus";
version = "41.0";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "+blBrcEEcAxn6kB2YiMV8fa3fc7BVMN/PUwLKDlQoeU=";

View file

@ -56,7 +56,7 @@ python3Packages.buildPythonApplication rec {
libsoup
];
propagatedBuildInputs = with python3Packages; [
pythonPath = with python3Packages; [
pygobject3
];

View file

@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-httpd=${apacheHttpd.out}/bin/httpd"
"--with-modules-path=${apacheHttpd.dev}/modules"
"--with-modules-path=${apacheHttpd}/modules"
"--with-cajadir=$(out)/lib/caja/extensions-2.0"
];

View file

@ -1,20 +1,27 @@
{ lib, rustPlatform, fetchFromGitHub, makeWrapper, z3 }:
{ lib, rustPlatform, fetchFromGitHub, makeWrapper, z3, pkgsHostTarget }:
let
runtimeDeps = [
z3
pkgsHostTarget.targetPackages.stdenv.cc
];
in
rustPlatform.buildRustPackage rec {
pname = "zz";
version = "unstable-2021-03-07";
version = "unstable-2021-05-04";
# when updating, choose commit of the latest build on http://bin.zetz.it/
src = fetchFromGitHub {
owner = "zetzit";
repo = "zz";
rev = "d3fc968ba2ae6668f930e39077f9a90aecb9fdc4";
sha256 = "18p17lgwq6rq1n76sj0dwb32bpxflfd7knky1v0sgmaxfpaq04y3";
rev = "18020b10b933cfe2fc7f2256b71e646889f9b1d2";
sha256 = "01nlyyk1qxk76dq2hw3wpbjwkh27zzp6mpczjnxdpv6rxs7mc825";
};
nativeBuildInputs = [ makeWrapper ];
cargoSha256 = "03xdmm4993hqdb3cihjjv4n4mdk8lnlccva08fh6m1d56p807rni";
cargoSha256 = "080rd8x4jsssnx4il80xcb81iw8pjcm70zckpa1hcijkw9104dgs";
postPatch = ''
# remove search path entry which would reference /build
@ -26,7 +33,7 @@ rustPlatform.buildRustPackage rec {
cp -r modules "$out/share/zz/"
wrapProgram $out/bin/zz \
--prefix PATH ":" "${lib.getBin z3}/bin" \
--prefix PATH ":" "${lib.makeBinPath runtimeDeps}" \
--suffix ZZ_MODULE_PATHS ":" "$out/share/zz/modules"
'';

View file

@ -6,6 +6,7 @@ mkCoqDerivation {
releaseRev = v: "v${v}";
release."8.14.0".sha256 = "04x47ngb95m1h4jw2gl0v79s5im7qimcw7pafc34gkkf51pyhakp";
release."8.13.0".sha256 = "sha256-MAnMc4KzC551JInrRcfKED4nz04FO0GyyyuDVRmnYTY=";
release."8.12.0".sha256 = "sha256-dPNA19kZo/2t3rbyX/R5yfGcaEfMhbm9bo71Uo4ZwoM=";
release."8.11.0".sha256 = "sha256-CKKMiJLltIb38u+ZKwfQh/NlxYawkafp+okY34cGCYU=";
@ -17,6 +18,7 @@ mkCoqDerivation {
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = "8.14"; out = "8.14.0"; }
{ case = "8.13"; out = "8.13.0"; }
{ case = "8.12"; out = "8.12.0"; }
{ case = "8.11"; out = "8.11.0"; }

View file

@ -8,6 +8,7 @@ with lib; mkCoqDerivation {
defaultVersion = if versions.isGe "8.5" coq.coq-version
then "${coq.coq-version}.0" else null;
release."8.14.0".sha256 = "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06";
release."8.13.0".sha256 = "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y";
release."8.12.0".sha256 = "14ijb3qy2hin3g4djx437jmnswxxq7lkfh3dwh9qvrds9a015yg8";
release."8.11.0".sha256 = "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp";

View file

@ -6,6 +6,7 @@ with lib; mkCoqDerivation {
repo = "Coq-Equations";
inherit version;
defaultVersion = switch coq.coq-version [
{ case = "8.14"; out = "1.3-8.14"; }
{ case = "8.13"; out = "1.2.4+coq8.13"; }
{ case = "8.12"; out = "1.2.4+coq8.12"; }
{ case = "8.11"; out = "1.2.4+coq8.11"; }
@ -43,6 +44,8 @@ with lib; mkCoqDerivation {
release."1.2.4+coq8.12".sha256 = "1n0w8is464qcq8mk2mv7amaf0khbjz5mpc9phf0rhpjm0lb22cb3";
release."1.2.4+coq8.13".rev = "v1.2.4-8.13";
release."1.2.4+coq8.13".sha256 = "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q";
release."1.3-8.14".rev = "v1.3-8.14";
release."1.3-8.14".sha256 = "19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv";
mlPlugin = true;
preBuild = "coq_makefile -f _CoqProject -o Makefile";

View file

@ -9,8 +9,8 @@ mkCoqDerivation {
release."1.2.3".sha256 = "sha256-gwKfUa74fIP7j+2eQgnLD7AswjCtOFGHGaIWb4qI0n4=";
inherit version;
defaultVersion = with versions; switch mathcomp.version [
{ case = pred.inter (isGe "1.11.0") (isLt "1.13"); out = "1.2.3"; }
defaultVersion = with versions; switch [ coq.version mathcomp.version ] [
{ cases = [ (isLe "8.13") (pred.inter (isGe "1.11.0") (isLt "1.13")) ]; out = "1.2.3"; }
] null;
propagatedBuildInputs = [ mathcomp.algebra ];

View file

@ -10,7 +10,7 @@ mkCoqDerivation {
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.11"; out = "8.12.0"; }
{ case = range "8.11" "8.13"; out = "8.12.0"; }
] null;
propagatedBuildInputs = [ hydra-battles pocklington ];

View file

@ -12,7 +12,7 @@ mkCoqDerivation {
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.13"; out = "0.9"; }
{ case = isEq "8.13"; out = "0.9"; }
] null;
propagatedBuildInputs = [ mathcomp-algebra mathcomp-finmap hierarchy-builder ];

View file

@ -5,8 +5,8 @@ with lib; mkCoqDerivation {
owner = "math-comp";
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.12"; out = "1.1.0"; }
{ case = range "8.11" "8.12"; out = "0.10.0"; }
{ case = range "8.12" "8.13"; out = "1.1.0"; }
{ case = isEq "8.11"; out = "0.10.0"; }
] null;
release."1.1.0".sha256 = "sha256-spno5ty4kU4WWiOfzoqbXF8lWlNSlySWcRReR3zE/4Q=";
release."1.0.0".sha256 = "0yykygs0z6fby6vkiaiv3azy1i9yx4rqg8xdlgkwnf2284hffzpp";

View file

@ -6,8 +6,8 @@ with lib; mkCoqDerivation rec {
owner = "iris";
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.11"; out = "3.4.0"; }
{ case = range "8.9" "8.11"; out = "3.3.0"; }
{ case = range "8.11" "8.13"; out = "3.4.0"; }
{ case = range "8.9" "8.10"; out = "3.3.0"; }
] null;
release."3.4.0".sha256 = "0vdc2mdqn5jjd6yz028c0c6blzrvpl0c7apx6xas7ll60136slrb";
release."3.3.0".sha256 = "0az4gkp5m8sq0p73dlh0r7ckkzhk7zkg5bndw01bdsy5ywj0vilp";

View file

@ -9,7 +9,7 @@ mkCoqDerivation rec {
release."8.13+no".sha256 = "sha256-gXoxtLcHPoyjJkt7WqvzfCMCQlh6kL2KtCGe3N6RC/A=";
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.13"; out = "8.13+no"; }
{ case = isEq "8.13"; out = "8.13+no"; }
] null;
mlPlugin = true;

View file

@ -9,7 +9,7 @@ with lib; mkCoqDerivation {
inherit version;
defaultVersion = with versions; switch [ coq.version mathcomp.version ] [
{ cases = [ (range "8.10" "8.13") "1.12.0" ]; out = "1.5.4"; }
{ cases = [ (range "8.10" "8.14") "1.12.0" ]; out = "1.5.4"; }
{ cases = [ (range "8.10" "8.12") "1.12.0" ]; out = "1.5.3"; }
{ cases = [ (range "8.7" "8.12") "1.11.0" ]; out = "1.5.2"; }
{ cases = [ (range "8.7" "8.11") (range "1.8" "1.10") ]; out = "1.5.0"; }

View file

@ -5,8 +5,8 @@ with lib; mkCoqDerivation {
owner = "snu-sf";
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.6"; out = "4.0.2"; }
{ case = range "8.5" "8.8"; out = "1.2.8"; }
{ case = range "8.6" "8.13"; out = "4.0.2"; }
{ case = isEq "8.5"; out = "1.2.8"; }
] null;
release."4.0.2".sha256 = "1q96bsxclqx84xn5vkid501jkwlc1p6fhb8szrlrp82zglj58b0b";
release."1.2.8".sha256 = "05fskx5x1qgaf9qv626m38y5izichzzqc7g2rglzrkygbskrrwsb";

View file

@ -11,7 +11,7 @@ mkCoqDerivation {
releaseRev = (v: "v${v}");
inherit version;
defaultVersion = if versions.isGe "8.12" coq.version then "0.1.0" else null;
defaultVersion = if versions.range "8.12" "8.13" coq.version then "0.1.0" else null;
release."0.1.0".sha256 = "sha256:01avfcqirz2b9wjzi9iywbhz9szybpnnj3672dgkfsimyg9jgnsr";
meta = {

View file

@ -10,7 +10,7 @@ mkCoqDerivation {
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = range "8.10" "8.13"; out = "1.1.2"; }
{ case = range "8.10" "8.14"; out = "1.1.2"; }
] null;

View file

@ -15,11 +15,11 @@ mkCoqDerivation {
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.13"; out = "1.7.5"; }
{ case = isGe "8.12"; out = "1.7.4"; }
{ case = isGe "8.11"; out = "1.7.3"; }
{ case = isGe "8.10"; out = "1.7.2"; }
{ case = isGe "8.9"; out = "1.7.1"; }
{ case = isEq "8.13"; out = "1.7.5"; }
{ case = isEq "8.12"; out = "1.7.4"; }
{ case = isEq "8.11"; out = "1.7.3"; }
{ case = isEq "8.10"; out = "1.7.2"; }
{ case = isEq "8.9"; out = "1.7.1"; }
] null;
mlPlugin = true;

View file

@ -15,8 +15,7 @@ mkCoqDerivation rec {
inherit version;
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.13"; out = "8.13.0"; }
{ case = "8.11"; out = "8.11.1"; }
{ case = range "8.10" "8.13"; out = "8.13.0"; }
{ case = "8.9"; out = "8.9.0"; }
{ case = "8.8"; out = "8.8.0"; }
{ case = "8.7"; out = "8.7.0"; }

View file

@ -15,10 +15,11 @@ let
});
release = {
"8.13.0+0.13.0".sha256 = "sha256:0k69907xn4k61w4mkhwf8kh8drw9pijk9ynijsppihw98j8w38fy";
"8.12.0+0.12.1".sha256 = "sha256:048x3sgcq4h845hi6hm4j4dsfca8zfj70dm42w68n63qcm6xf9hn";
"8.11.0+0.11.1".sha256 = "sha256:1phmh99yqv71vlwklqgfxiq2vj99zrzxmryj2j4qvg5vav3y3y6c";
"8.10.0+0.7.2".sha256 = "sha256:1ljzm63hpd0ksvkyxcbh8rdf7p90vg91gb4h0zz0941v1zh40k8c";
"8.14+rc1+0.14.0".sha256 = "1w7d7anvcfx8vz51mnrf1jkw6rlpzjkjlr06avf58wlhymww7pja";
"8.13.0+0.13.0".sha256 = "0k69907xn4k61w4mkhwf8kh8drw9pijk9ynijsppihw98j8w38fy";
"8.12.0+0.12.1".sha256 = "048x3sgcq4h845hi6hm4j4dsfca8zfj70dm42w68n63qcm6xf9hn";
"8.11.0+0.11.1".sha256 = "1phmh99yqv71vlwklqgfxiq2vj99zrzxmryj2j4qvg5vav3y3y6c";
"8.10.0+0.7.2".sha256 = "1ljzm63hpd0ksvkyxcbh8rdf7p90vg91gb4h0zz0941v1zh40k8c";
};
in
@ -27,6 +28,7 @@ in
inherit version release;
defaultVersion = with versions; switch coq.version [
{ case = isEq "8.14"; out = "8.14+rc1+0.14.0"; }
{ case = isEq "8.13"; out = "8.13.0+0.13.0"; }
{ case = isEq "8.12"; out = "8.12.0+0.12.1"; }
{ case = isEq "8.11"; out = "8.11.0+0.11.1"; }
@ -63,10 +65,14 @@ in
}).overrideAttrs(o:
let inherit (o) version; in {
src = fetchzip {
url = "https://github.com/ejgallego/coq-serapi/releases/download/${version}/coq-serapi-${
if version == "8.11.0+0.11.1" then version
else builtins.replaceStrings [ "+" ] [ "." ] version
}.tbz";
url =
if version == "8.14+rc1+0.14.0"
then "https://github.com/ejgallego/coq-serapi/archive/refs/tags/8.14+rc1+0.14.0.tar.gz"
else
"https://github.com/ejgallego/coq-serapi/releases/download/${version}/coq-serapi-${
if version == "8.11.0+0.11.1" then version
else builtins.replaceStrings [ "+" ] [ "." ] version
}.tbz";
sha256 = release."${version}".sha256;
};
})

View file

@ -6,8 +6,8 @@ with lib; mkCoqDerivation rec {
domain = "gitlab.mpi-sws.org";
owner = "iris";
defaultVersion = with versions; switch coq.coq-version [
{ case = isGe "8.11"; out = "1.5.0"; }
{ case = range "8.8" "8.11"; out = "1.4.0"; }
{ case = range "8.11" "8.13"; out = "1.5.0"; }
{ case = range "8.8" "8.10"; out = "1.4.0"; }
] null;
release."1.5.0".sha256 = "1ym0fy620imah89p8b6rii8clx2vmnwcrbwxl3630h24k42092nf";
release."1.4.0".sha256 = "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r";

View file

@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
pname = "dleyna-core";
version = "0.6.0";
outputs = [ "out" "dev" ];
setupHook = ./setup-hook.sh;
src = fetchFromGitHub {

View file

@ -233,6 +233,7 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
"-Dglib-asserts=disabled" # asserts should be disabled on stable releases
"-Davtp=disabled"
"-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development"

View file

@ -120,6 +120,7 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dexamples=disabled" # requires many dependencies and probably not useful for our users
"-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
"-Dglib-asserts=disabled" # asserts should be disabled on stable releases
] ++ lib.optionals (!qt5Support) [
"-Dqt5=disabled"
] ++ lib.optionals (!gtkSupport) [

View file

@ -6,6 +6,8 @@ stdenv.mkDerivation rec {
pname = "libgxps";
version = "0.3.2";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "bSeGclajXM+baSU+sqiKMrrKO5fV9O9/guNmf6Q1JRw=";

View file

@ -151,13 +151,11 @@ stdenv.mkDerivation rec {
in
(lib.optionalString enableFIPS (''
for libname in freebl3 nssdbm3 softokn3
do '' +
do libfile="$out/lib/lib$libname${stdenv.hostPlatform.extensions.sharedLibrary}"'' +
(if stdenv.isDarwin
then ''
libfile="$out/lib/lib$libname.dylib"
DYLD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
'' else ''
libfile="$out/lib/lib$libname.so"
LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
'') + ''
${nss}/bin/shlibsign -v -i "$libfile"

View file

@ -166,13 +166,11 @@ stdenv.mkDerivation rec {
in
(lib.optionalString enableFIPS (''
for libname in freebl3 nssdbm3 softokn3
do '' +
do libfile="$out/lib/lib$libname${stdenv.hostPlatform.extensions.sharedLibrary}"'' +
(if stdenv.isDarwin
then ''
libfile="$out/lib/lib$libname.dylib"
DYLD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
'' else ''
libfile="$out/lib/lib$libname.so"
LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
'') + ''
${nss}/bin/shlibsign -v -i "$libfile"

View file

@ -57,7 +57,7 @@
passthru = {
fancyName = "MariaDB";
driver = if stdenv.isDarwin then "lib/libmaodbc.dylib" else "lib/libmaodbc.so";
driver = "lib/libmaodbc${stdenv.hostPlatform.extensions.sharedLibrary}";
};
meta = with lib; {

View file

@ -1,34 +1,22 @@
{ lib, fetchFromGitLab, buildDunePackage, ff, zarith, ctypes, tezos-rust-libs, alcotest }:
{ lib, buildDunePackage, bls12-381-gen, ff-sig, zarith, ctypes, alcotest }:
buildDunePackage rec {
pname = "bls12-381";
version = "0.3.15";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-bls12-381";
rev = version;
sha256 = "1s8n657fsl2gs01p7v2ffpcfzymavifhhpriyx1gq5qh4zvvw4vr";
};
useDune2 = true;
inherit (bls12-381-gen) version src useDune2 doCheck;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
ff
ff-sig
zarith
ctypes
tezos-rust-libs
bls12-381-gen
];
checkInputs = [
alcotest
];
# This is a hack to work around the hack used in the dune files
OPAM_SWITCH_PREFIX = "${tezos-rust-libs}";
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "OCaml binding for bls12-381 from librustzcash";

View file

@ -0,0 +1,30 @@
{ lib, fetchFromGitLab, buildDunePackage, ff-sig, zarith }:
buildDunePackage rec {
pname = "bls12-381-gen";
version = "0.4.2";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-bls12-381";
rev = version;
sha256 = "0jxc8qrdn74brmzjns1xycv3cb257kx5pa3ripgl9ci4njkv87n2";
};
useDune2 = true;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
ff-sig
zarith
];
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-bls12-381";
description = "Functors to generate BLS12-381 primitives based on stubs";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,48 @@
{ lib
, buildDunePackage
, rustc
, cargo
, dune-configurator
, bls12-381
, bls12-381-gen
, ff-pbt
, ff-sig
, zarith
, ctypes
, tezos-rust-libs
, alcotest
}:
buildDunePackage {
pname = "bls12-381-unix";
inherit (bls12-381-gen) version src useDune2 doCheck;
checkInputs = [
alcotest
ff-pbt
];
buildInputs = [
rustc
cargo
dune-configurator
];
propagatedBuildInputs = [
ff-sig
zarith
ctypes
bls12-381-gen
bls12-381
tezos-rust-libs
];
# This is a hack to work around the hack used in the dune files
OPAM_SWITCH_PREFIX = "${tezos-rust-libs}";
meta = {
description = "UNIX version of BLS12-381 primitives implementing the virtual package bls12-381";
license = lib.licenses.mit;
};
}

View file

@ -12,13 +12,13 @@
buildDunePackage {
pname = "data-encoding";
version = "0.2.0";
version = "0.4.0";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "data-encoding";
rev = "0.2";
sha256 = "0d9c2ix2imqk4r0jfhnwak9laarlbsq9kmswvbnjzdm2g0hwin1d";
rev = "v0.4";
sha256 = "1f88l9azpfk730hps5v6zlg4yyyyhj1gl27qy3cbbkzjc82d2rhx";
};
useDune2 = true;

View file

@ -0,0 +1,21 @@
{ lib, fetchFromGitLab, buildDunePackage, zarith, ff-sig, alcotest }:
buildDunePackage {
pname = "ff-pbt";
inherit (ff-sig) version src doCheck useDune2;
minimalOCamlVersion = "4.08";
checkInputs = [
alcotest
];
propagatedBuildInputs = [
zarith
ff-sig
];
meta = ff-sig.meta // {
description = "Property based testing library for finite fields over the package ff-sig";
};
}

View file

@ -0,0 +1,27 @@
{ lib, fetchFromGitLab, buildDunePackage, zarith }:
buildDunePackage rec {
pname = "ff-sig";
version = "0.6.1";
src = fetchFromGitLab {
owner = "dannywillems";
repo = "ocaml-ff";
rev = version;
sha256 = "0p42ivyfbn1pwm18773y4ga9cm64ysha0rplzvrnhszg01anarc0";
};
useDune2 = true;
propagatedBuildInputs = [
zarith
];
doCheck = true;
meta = {
homepage = "https://gitlab.com/dannywillems/ocaml-ff";
description = "Minimal finite field signatures";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, fetchzip, stdenv, ocaml, findlib, ocamlbuild }:
stdenv.mkDerivation rec {
pname = "ocaml${ocaml.version}-getopt";
version = "20120615";
src = fetchzip {
url = "https://download.ocamlcore.org/ocaml-getopt/ocaml-getopt/${version}/ocaml-getopt-${version}.tar.gz";
sha256 = "0bng2mmdixpmj23xn8krlnaq66k22iclwz46r8zjrsrq3wcn1xgn";
};
buildInputs = [
ocaml
findlib
ocamlbuild
];
doCheck = true;
createFindlibDestdir = true;
meta = {
inherit (ocaml.meta) platforms;
homepage = "https://github.com/gildor478/ocaml-getopt";
description = "Parsing of command line arguments (similar to GNU GetOpt) for OCaml";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,23 @@
{ lib, fetchFromGitHub, buildDunePackage }:
buildDunePackage rec {
pname = "hashcons";
version = "1.4";
src = fetchFromGitHub {
owner = "backtracking";
repo = "ocaml-${pname}";
rev = "d733325eeb55878bed285120c2c088daf78f0e2b";
sha256 = "0h4pvwj34pndaw3pajkhl710ywwinhc9pqimgllfmkl37wz2d8zq";
};
useDune2 = true;
doCheck = true;
meta = {
description = "OCaml hash-consing library";
license = lib.licenses.lgpl21;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -1,4 +1,4 @@
{ lib, buildDunePackage, json-data-encoding, ocplib-endian, crowbar }:
{ lib, buildDunePackage, json-data-encoding, ocplib-endian, crowbar, alcotest }:
buildDunePackage {
pname = "json-data-encoding-bson";
@ -12,6 +12,7 @@ buildDunePackage {
checkInputs = [
crowbar
alcotest
];
meta = json-data-encoding.meta // {

View file

@ -1,14 +1,14 @@
{ lib, fetchFromGitLab, buildDunePackage, uri, crowbar }:
{ lib, fetchFromGitLab, buildDunePackage, uri, crowbar, alcotest }:
buildDunePackage rec {
pname = "json-data-encoding";
version = "0.8";
version = "0.10";
minimalOCamlVersion = "4.10";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "json-data-encoding";
rev = "v${version}";
sha256 = "1c6m2qvi9bm6qjxc38p6cia1f66r0rb9xf6b8svlj3jjymvqw889";
rev = "${version}";
sha256 = "0m0xx382wr44wz7gxf7mpfjx2w287pvqhg2lfvzmclfq3y5iy6mx";
};
useDune2 = true;
@ -18,6 +18,7 @@ buildDunePackage rec {
checkInputs = [
crowbar
alcotest
];
doCheck = true;

View file

@ -2,13 +2,13 @@
buildDunePackage rec {
pname = "lwt-canceler";
version = "0.2";
version = "0.3";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = "lwt-canceler";
rev = "v${version}";
sha256 = "07931486vg83sl1c268i0vyw61l8n8xs2krjsj43070zljqi8rf1";
sha256 = "1xbb7012hp901b755kxmfgg293rz34rkhwzg2z9i6sakwd7i0h9p";
};
useDune2 = true;

View file

@ -0,0 +1,34 @@
{ lib
, fetchFromGitLab
, buildDunePackage
, lwt
, ptime
}:
buildDunePackage rec {
pname = "lwt-exit";
version = "1.0";
src = fetchFromGitLab {
owner = "nomadic-labs";
repo = pname;
rev = "${version}";
sha256 = "1k763bmj1asj9ijar39rh3h1d59rckmsf21h2y8966lgglsf42bd";
};
useDune2 = true;
minimalOCamlVersion = "4.08";
propagatedBuildInputs = [
lwt
ptime
];
doCheck = true;
meta = {
description = "An opinionated clean-exit and signal-handling library for Lwt programs";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,44 @@
{ stdenv, lib, fetchFromGitHub, ocaml, findlib, utop, python3, stdcompat, ncurses }:
stdenv.mkDerivation rec {
pname = "pyml";
version = "20210226";
src = fetchFromGitHub {
owner = "thierry-martinez";
repo = pname;
rev = version;
sha256 = "15xk6bgdzsf04d6wdjpr3s1ci2g7d7qnbq3102avkz179d5n62h7";
};
buildInputs = [
ocaml
findlib
utop
ncurses
];
propagatedBuildInputs = [
python3
stdcompat
];
buildPhase = ''
make all pymltop pymlutop PREFIX=$out
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mkdir -p $OCAMLFIND_DESTDIR/stublibs
make install PREFIX=$out
runHook postInstall
'';
doCheck = true;
meta = {
description = "OCaml bindings for Python";
license = lib.licenses.bsd2;
};
}

View file

@ -0,0 +1,39 @@
{ lib
, fetchFromGitHub
, buildDunePackage
, ppx_cstruct
, cstruct
, re
, ppx_tools
}:
buildDunePackage rec {
pname = "tar";
version = "1.1.0";
src = fetchFromGitHub {
owner = "mirage";
repo = "ocaml-tar";
rev = "v${version}";
sha256 = "14k24vn3q5jl0iyrynb5vwg80670qsv12fsmc6cdgh4zwdpjh7zs";
};
useDune2 = true;
propagatedBuildInputs = [
ppx_cstruct
cstruct
re
];
buildInputs = [
ppx_tools
];
doCheck = true;
meta = {
description = "Decode and encode tar format files from Unix";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,27 @@
{ lib
, buildDunePackage
, tar
, cstruct
, cstruct-lwt
, re
, lwt
}:
buildDunePackage rec {
pname = "tar-unix";
inherit (tar) version src useDune2 doCheck;
propagatedBuildInputs = [
tar
cstruct
cstruct-lwt
re
lwt
];
meta = {
description = "Decode and encode tar format files from Unix";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ulrikstrid ];
};
}

View file

@ -0,0 +1,39 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-stdlib-unix
, tezos-base
, tezos-shell-services
, tezos-protocol-environment
, tezos-protocol-010-PtGRANAD
, tezos-protocol-010-PtGRANAD-parameters
, tezos-client-010-PtGRANAD
, alcotest-lwt
}:
buildDunePackage {
pname = "tezos-010-PtGRANAD-test-helpers";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/proto_010_PtGRANAD/lib_protocol/test/helpers";
propagatedBuildInputs = [
tezos-base
tezos-stdlib-unix
tezos-shell-services
tezos-protocol-environment
tezos-protocol-010-PtGRANAD
tezos-protocol-010-PtGRANAD-parameters
tezos-client-010-PtGRANAD
alcotest-lwt
];
checkInputs = [
alcotest-lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos/Protocol: protocol testing framework";
};
}

View file

@ -2,31 +2,35 @@
, buildDunePackage
, tezos-stdlib
, tezos-crypto
, tezos-hacl-glue-unix
, tezos-micheline
, tezos-test-helpers
, ptime
, ezjsonm
, ipaddr
, qcheck-alcotest
, crowbar
, bls12-381-unix
}:
buildDunePackage {
pname = "tezos-base";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_base";
propagatedBuildInputs = [
tezos-crypto
tezos-micheline
tezos-hacl-glue-unix
bls12-381-unix
ptime
ezjsonm
ipaddr
];
checkInputs = [
qcheck-alcotest
crowbar
# tezos-test-helpers
];
# circular dependency if we add this
doCheck = false;
meta = tezos-stdlib.meta // {
description = "Tezos: meta-package and pervasive type definitions for Tezos";
};

View file

@ -8,7 +8,8 @@
buildDunePackage {
pname = "tezos-clic";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_clic";
propagatedBuildInputs = [
tezos-stdlib-unix
@ -19,6 +20,8 @@ buildDunePackage {
alcotest-lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: library of auto-documented command-line-parsing combinators";
};

View file

@ -0,0 +1,38 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-mockup-registration
, tezos-proxy
, tezos-signer-backends
, tezos-protocol-010-PtGRANAD-parameters
, tezos-protocol-plugin-010-PtGRANAD
, alcotest-lwt
, ppx_inline_test
, cacert
}:
buildDunePackage {
pname = "tezos-client-010-PtGRANAD";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/proto_010_PtGRANAD/lib_client";
propagatedBuildInputs = [
tezos-mockup-registration
tezos-proxy
tezos-signer-backends
tezos-protocol-010-PtGRANAD-parameters
tezos-protocol-plugin-010-PtGRANAD
ppx_inline_test
];
checkInputs = [
alcotest-lwt
cacert
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos/Protocol: protocol specific library for `tezos-client`";
};
}

View file

@ -0,0 +1,28 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-shell-services
, tezos-sapling
, alcotest
}:
buildDunePackage {
pname = "tezos-client-base";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_client_base";
propagatedBuildInputs = [
tezos-shell-services
tezos-sapling
];
checkInputs = [
alcotest
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: protocol registration for the mockup mode";
};
}

View file

@ -0,0 +1,34 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-base
, tezos-shell-services
, irmin
, irmin-pack
, digestif
, alcotest-lwt
}:
buildDunePackage {
pname = "tezos-context";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_context";
propagatedBuildInputs = [
tezos-base
tezos-shell-services
irmin
irmin-pack
digestif
];
checkInputs = [
alcotest-lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: library of auto-documented RPCs (service and hierarchy descriptions)";
};
}

View file

@ -1,37 +1,41 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-clic
, tezos-rpc
, bls12-381
, hacl-star
, tezos-clic
, tezos-hacl-glue
, tezos-hacl-glue-unix
, secp256k1-internal
, uecc
, ringo
, ff
, alcotest
, bls12-381
, bls12-381-unix
, tezos-test-helpers
, alcotest-lwt
}:
buildDunePackage {
pname = "tezos-crypto";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_crypto";
propagatedBuildInputs = [
tezos-clic
tezos-rpc
bls12-381
hacl-star
tezos-clic
tezos-hacl-glue
tezos-hacl-glue-unix
secp256k1-internal
uecc
ringo
bls12-381
bls12-381-unix
];
checkInputs = [
alcotest
tezos-test-helpers
alcotest-lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: library with all the cryptographic primitives used by Tezos";
};

View file

@ -0,0 +1,30 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-protocol-010-PtGRANAD
, tezos-protocol-updater
, tezos-protocol-compiler
}:
buildDunePackage {
pname = "tezos-embedded-protocol-010-PtGRANAD";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/proto_010_PtGRANAD/lib_protocol";
preBuild = tezos-protocol-010-PtGRANAD.preBuild;
propagatedBuildInputs = [
tezos-protocol-010-PtGRANAD
tezos-protocol-updater
];
buildInputs = [
tezos-protocol-compiler
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos/Protocol: economic-protocol definition, embedded in `tezos-node`";
};
}

View file

@ -4,19 +4,22 @@
, data-encoding
, lwt
, lwt-canceler
, tezos-lwt-result-stdlib
, alcotest
, alcotest-lwt
}:
buildDunePackage {
pname = "tezos-error-monad";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_error_monad";
propagatedBuildInputs = [
tezos-stdlib
data-encoding
lwt
lwt-canceler
tezos-lwt-result-stdlib
];
checkInputs = [
@ -24,6 +27,8 @@ buildDunePackage {
alcotest-lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: error monad";
};

View file

@ -1,21 +1,27 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-lwt-result-stdlib
, tezos-error-monad
, data-encoding
, lwt_log
, alcotest
, alcotest-lwt
, lwt
}:
buildDunePackage {
pname = "tezos-event-logging";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_event_logging";
propagatedBuildInputs = [
tezos-lwt-result-stdlib
tezos-stdlib
tezos-error-monad
data-encoding
lwt_log
lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: event logging library";
};

View file

@ -0,0 +1,26 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-hacl-glue
, ctypes
, hacl-star
}:
buildDunePackage {
pname = "tezos-hacl-glue-unix";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_hacl_glue/unix";
propagatedBuildInputs = [
ctypes
hacl-star
tezos-hacl-glue
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: thin layer of glue around hacl-star (unix implementation)";
};
}

View file

@ -0,0 +1,17 @@
{ lib
, buildDunePackage
, tezos-stdlib
}:
buildDunePackage {
pname = "tezos-hacl-glue";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_hacl_glue/virtual";
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: thin layer of glue around hacl-star (virtual package)";
};
}

View file

@ -0,0 +1,40 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-context
, tezos-lmdb
, tezos-validation
, tezos-shell-services
, tezos-protocol-compiler
, lwt-watcher
, alcotest-lwt
}:
buildDunePackage {
pname = "tezos-legacy-store";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_store/legacy_store";
propagatedBuildInputs = [
tezos-context
tezos-lmdb
tezos-validation
tezos-shell-services
lwt-watcher
];
buildInputs = [
tezos-protocol-compiler
];
checkInputs = [
alcotest-lwt
];
# A lot of extra deps with wide dependency cones needed
doCheck = false;
meta = tezos-stdlib.meta // {
description = "Tezos: custom economic-protocols environment implementation for `tezos-client` and testing";
};
}

View file

@ -8,25 +8,23 @@
, alcotest
}:
buildDunePackage rec {
pname = "tezos-lmdb";
let
version = "7.4";
src = fetchFromGitLab {
owner = "tezos";
repo = "tezos";
rev = "v${version}";
sha256 = "18q02j74aa8mxv233kvyb62xbhjngzpgppp6kgr4m53d7a78wgsm";
sha256 = "0sghc60xzr02pmmkr626pnhzrnczf7mki7qyxzzfn7rbbdbrf4wp";
};
in
buildDunePackage {
pname = "tezos-lmdb";
version = version;
src = "${src}/vendors/ocaml-lmdb";
useDune2 = true;
preBuild = ''
rm dune
rm -rf src
rm -rf docs
ls vendors | grep -v ocaml-lmdb |xargs rm -rf
'';
buildInputs = [
pkg-config
];

View file

@ -2,10 +2,10 @@
, buildDunePackage
, ocaml
, tezos-stdlib
, tezos-error-monad
, lwt
, alcotest
, alcotest-lwt
, crowbar
, tezos-test-helpers
}:
if lib.versionAtLeast ocaml.version "4.12" then
@ -14,18 +14,21 @@ else
buildDunePackage {
pname = "tezos-lwt-result-stdlib";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_lwt_result_stdlib";
propagatedBuildInputs = [
tezos-error-monad
lwt
];
checkInputs = [
alcotest
alcotest-lwt
crowbar
tezos-test-helpers
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: error-aware stdlib replacement";
};

View file

@ -10,11 +10,13 @@
buildDunePackage {
pname = "tezos-micheline";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_micheline";
propagatedBuildInputs = [
tezos-error-monad
uutf
ppx_inline_test
];
checkInputs = [
@ -22,6 +24,8 @@ buildDunePackage {
alcotest-lwt
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: internal AST and parser for the Michelson language";
};

View file

@ -0,0 +1,27 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-client-base
, tezos-protocol-environment
, tezos-rpc-http-client
, resto-cohttp-self-serving-client
}:
buildDunePackage {
pname = "tezos-mockup-proxy";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_mockup_proxy";
propagatedBuildInputs = [
tezos-client-base
tezos-protocol-environment
tezos-rpc-http-client
resto-cohttp-self-serving-client
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: local RPCs";
};
}

View file

@ -0,0 +1,23 @@
{ lib
, buildDunePackage
, tezos-stdlib
, tezos-client-base
, tezos-protocol-environment
}:
buildDunePackage {
pname = "tezos-mockup-registration";
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_mockup";
propagatedBuildInputs = [
tezos-client-base
tezos-protocol-environment
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: protocol registration for the mockup mode";
};
}

View file

@ -6,7 +6,8 @@
buildDunePackage {
pname = "tezos-p2p-services";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_p2p_services";
propagatedBuildInputs = [
tezos-base

View file

@ -2,13 +2,16 @@
, buildDunePackage
, tezos-stdlib
, tezos-p2p-services
, tezos-test-services
, alcotest-lwt
, astring
, lwt-watcher
}:
buildDunePackage {
pname = "tezos-p2p";
inherit (tezos-stdlib) version src useDune2 preBuild doCheck;
inherit (tezos-stdlib) version useDune2;
src = "${tezos-stdlib.base_src}/src/lib_p2p";
propagatedBuildInputs = [
tezos-p2p-services
@ -16,9 +19,13 @@ buildDunePackage {
];
checkInputs = [
astring
alcotest-lwt
tezos-test-services
];
doCheck = true;
meta = tezos-stdlib.meta // {
description = "Tezos: library for a pool of P2P connections";
};

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