Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-08-06 12:02:05 +00:00 committed by GitHub
commit b536c72108
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
43 changed files with 638 additions and 183 deletions

View file

@ -18,6 +18,8 @@
- [wayfire](https://wayfire.org), A modular and extensible wayland compositor. Available as [programs.wayfire](#opt-programs.wayfire.enable). - [wayfire](https://wayfire.org), A modular and extensible wayland compositor. Available as [programs.wayfire](#opt-programs.wayfire.enable).
- [mautrix-whatsapp](https://docs.mau.fi/bridges/go/whatsapp/index.html) A Matrix-WhatsApp puppeting bridge
- [GoToSocial](https://gotosocial.org/), an ActivityPub social network server, written in Golang. Available as [services.gotosocial](#opt-services.gotosocial.enable). - [GoToSocial](https://gotosocial.org/), an ActivityPub social network server, written in Golang. Available as [services.gotosocial](#opt-services.gotosocial.enable).
- [Typesense](https://github.com/typesense/typesense), a fast, typo-tolerant search engine for building delightful search experiences. Available as [services.typesense](#opt-services.typesense.enable). - [Typesense](https://github.com/typesense/typesense), a fast, typo-tolerant search engine for building delightful search experiences. Available as [services.typesense](#opt-services.typesense.enable).

View file

@ -600,6 +600,7 @@
./services/matrix/dendrite.nix ./services/matrix/dendrite.nix
./services/matrix/mautrix-facebook.nix ./services/matrix/mautrix-facebook.nix
./services/matrix/mautrix-telegram.nix ./services/matrix/mautrix-telegram.nix
./services/matrix/mautrix-whatsapp.nix
./services/matrix/mjolnir.nix ./services/matrix/mjolnir.nix
./services/matrix/mx-puppet-discord.nix ./services/matrix/mx-puppet-discord.nix
./services/matrix/pantalaimon.nix ./services/matrix/pantalaimon.nix

View file

@ -0,0 +1,198 @@
{
lib,
config,
pkgs,
...
}: let
cfg = config.services.mautrix-whatsapp;
dataDir = "/var/lib/mautrix-whatsapp";
registrationFile = "${dataDir}/whatsapp-registration.yaml";
settingsFile = "${dataDir}/config.json";
settingsFileUnsubstituted = settingsFormat.generate "mautrix-whatsapp-config-unsubstituted.json" cfg.settings;
settingsFormat = pkgs.formats.json {};
appservicePort = 29318;
in {
imports = [];
options.services.mautrix-whatsapp = {
enable = lib.mkEnableOption "mautrix-whatsapp, a puppeting/relaybot bridge between Matrix and WhatsApp.";
settings = lib.mkOption {
type = settingsFormat.type;
default = {
appservice = {
address = "http://localhost:${toString appservicePort}";
hostname = "[::]";
port = appservicePort;
database = {
type = "sqlite3";
uri = "${dataDir}/mautrix-whatsapp.db";
};
id = "whatsapp";
bot = {
username = "whatsappbot";
displayname = "WhatsApp Bridge Bot";
};
as_token = "";
hs_token = "";
};
bridge = {
username_template = "whatsapp_{{.}}";
displayname_template = "{{if .BusinessName}}{{.BusinessName}}{{else if .PushName}}{{.PushName}}{{else}}{{.JID}}{{end}} (WA)";
double_puppet_server_map = {};
login_shared_secret_map = {};
command_prefix = "!wa";
permissions."*" = "relay";
relay.enabled = true;
};
logging = {
min_level = "info";
writers = [
{
type = "stdout";
format = "pretty-colored";
}
{
type = "file";
format = "json";
}
];
};
};
description = lib.mdDoc ''
{file}`config.yaml` configuration as a Nix attribute set.
Configuration options should match those described in
[example-config.yaml](https://github.com/mautrix/whatsapp/blob/master/example-config.yaml).
Secret tokens should be specified using {option}`environmentFile`
instead of this world-readable attribute set.
'';
example = {
appservice = {
database = {
type = "postgres";
uri = "postgresql:///mautrix_whatsapp?host=/run/postgresql";
};
id = "whatsapp";
ephemeral_events = false;
};
bridge = {
history_sync = {
request_full_sync = true;
};
private_chat_portal_meta = true;
mute_bridging = true;
encryption = {
allow = true;
default = true;
require = true;
};
provisioning = {
shared_secret = "disable";
};
permissions = {
"example.com" = "user";
};
};
};
};
environmentFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = lib.mdDoc ''
File containing environment variables to be passed to the mautrix-whatsapp service,
in which secret tokens can be specified securely by optionally defining a value for
`MAUTRIX_WHATSAPP_BRIDGE_LOGIN_SHARED_SECRET`.
'';
};
serviceDependencies = lib.mkOption {
type = with lib.types; listOf str;
default = lib.optional config.services.matrix-synapse.enable "matrix-synapse.service";
defaultText = lib.literalExpression ''
optional config.services.matrix-synapse.enable "matrix-synapse.service"
'';
description = lib.mdDoc ''
List of Systemd services to require and wait for when starting the application service.
'';
};
};
config = lib.mkIf cfg.enable {
services.mautrix-whatsapp.settings = {
homeserver.domain = lib.mkDefault config.services.matrix-synapse.settings.server_name;
};
systemd.services.mautrix-whatsapp = {
description = "Mautrix-WhatsApp Service - A WhatsApp bridge for Matrix";
wantedBy = ["multi-user.target"];
wants = ["network-online.target"] ++ cfg.serviceDependencies;
after = ["network-online.target"] ++ cfg.serviceDependencies;
preStart = ''
# substitute the settings file by environment variables
# in this case read from EnvironmentFile
test -f '${settingsFile}' && rm -f '${settingsFile}'
old_umask=$(umask)
umask 0177
${pkgs.envsubst}/bin/envsubst \
-o '${settingsFile}' \
-i '${settingsFileUnsubstituted}'
umask $old_umask
# generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-whatsapp}/bin/mautrix-whatsapp \
--generate-registration \
--config='${settingsFile}' \
--registration='${registrationFile}'
fi
chmod 640 ${registrationFile}
umask 0177
${pkgs.yq}/bin/yq -s '.[0].appservice.as_token = .[1].as_token
| .[0].appservice.hs_token = .[1].hs_token
| .[0]' '${settingsFile}' '${registrationFile}' \
> '${settingsFile}.tmp'
mv '${settingsFile}.tmp' '${settingsFile}'
umask $old_umask
'';
serviceConfig = {
DynamicUser = true;
EnvironmentFile = cfg.environmentFile;
StateDirectory = baseNameOf dataDir;
WorkingDirectory = "${dataDir}";
ExecStart = ''
${pkgs.mautrix-whatsapp}/bin/mautrix-whatsapp \
--config='${settingsFile}' \
--registration='${registrationFile}'
'';
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
Restart = "on-failure";
RestartSec = "30s";
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = ["@system-service"];
Type = "simple";
UMask = 0027;
};
restartTriggers = [settingsFileUnsubstituted];
};
};
meta.maintainers = with lib.maintainers; [frederictobiasc];
}

View file

@ -142,8 +142,8 @@ in {
default = config.services.nextcloud.home; default = config.services.nextcloud.home;
defaultText = literalExpression "config.services.nextcloud.home"; defaultText = literalExpression "config.services.nextcloud.home";
description = lib.mdDoc '' description = lib.mdDoc ''
Data storage path of nextcloud. Will be [](#opt-services.nextcloud.home) by default. Nextcloud's data storage path. Will be [](#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)."; This folder will be populated with a config.php file and a data folder which contains the state of the instance (excluding the database).";
''; '';
example = "/mnt/nextcloud-file"; example = "/mnt/nextcloud-file";
}; };
@ -176,8 +176,8 @@ in {
type = types.bool; type = types.bool;
default = true; default = true;
description = lib.mdDoc '' description = lib.mdDoc ''
Automatically enable the apps in [](#opt-services.nextcloud.extraApps) every time nextcloud starts. Automatically enable the apps in [](#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. If set to false, apps need to be enabled in the Nextcloud web user interface or with `nextcloud-occ app:enable`.
''; '';
}; };
appstoreEnable = mkOption { appstoreEnable = mkOption {
@ -185,16 +185,28 @@ in {
default = null; default = null;
example = true; example = true;
description = lib.mdDoc '' description = lib.mdDoc ''
Allow the installation of apps and app updates from the store. Allow the installation and updating of apps from the Nextcloud appstore.
Enabled by default unless there are packages in [](#opt-services.nextcloud.extraApps). Enabled by default unless there are packages in [](#opt-services.nextcloud.extraApps).
Set to true to force enable the store even if [](#opt-services.nextcloud.extraApps) is used. Set this to true to force enable the store even if [](#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. Set this to false to disable the installation of apps from the global appstore. App management is always enabled regardless of this setting.
''; '';
}; };
logLevel = mkOption { logLevel = mkOption {
type = types.ints.between 0 4; type = types.ints.between 0 4;
default = 2; default = 2;
description = lib.mdDoc "Log level value between 0 (DEBUG) and 4 (FATAL)."; description = lib.mdDoc ''
Log level value between 0 (DEBUG) and 4 (FATAL).
- 0 (debug): Log all activity.
- 1 (info): Log activity such as user logins and file activities, plus warnings, errors, and fatal errors.
- 2 (warn): Log successful operations, as well as warnings of potential problems, errors and fatal errors.
- 3 (error): Log failed operations and fatal errors.
- 4 (fatal): Log only fatal errors that cause the server to stop.
'';
}; };
logType = mkOption { logType = mkOption {
type = types.enum [ "errorlog" "file" "syslog" "systemd" ]; type = types.enum [ "errorlog" "file" "syslog" "systemd" ];
@ -208,7 +220,7 @@ in {
https = mkOption { https = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
description = lib.mdDoc "Use https for generated links."; description = lib.mdDoc "Use HTTPS for generated links.";
}; };
package = mkOption { package = mkOption {
type = types.package; type = types.package;
@ -228,7 +240,7 @@ in {
default = "512M"; default = "512M";
type = types.str; type = types.str;
description = lib.mdDoc '' description = lib.mdDoc ''
Defines the upload limit for files. This changes the relevant options The upload limit for files. This changes the relevant options
in php.ini and nginx if enabled. in php.ini and nginx if enabled.
''; '';
}; };
@ -257,10 +269,10 @@ in {
default = all: []; default = all: [];
defaultText = literalExpression "all: []"; defaultText = literalExpression "all: []";
description = lib.mdDoc '' description = lib.mdDoc ''
Additional PHP extensions to use for nextcloud. Additional PHP extensions to use for Nextcloud.
By default, only extensions necessary for a vanilla nextcloud installation are enabled, By default, only extensions necessary for a vanilla Nextcloud installation are enabled,
but you may choose from the list of available extensions and add further ones. but you may choose from the list of available extensions and add further ones.
This is sometimes necessary to be able to install a certain nextcloud app that has additional requirements. This is sometimes necessary to be able to install a certain Nextcloud app that has additional requirements.
''; '';
example = literalExpression '' example = literalExpression ''
all: [ all.pdlib all.bz2 ] all: [ all.pdlib all.bz2 ]
@ -318,7 +330,7 @@ in {
type = types.nullOr types.lines; type = types.nullOr types.lines;
default = null; default = null;
description = lib.mdDoc '' description = lib.mdDoc ''
Options for nextcloud's PHP pool. See the documentation on `php-fpm.conf` for details on configuration directives. Options for Nextcloud's PHP pool. See the documentation on `php-fpm.conf` for details on configuration directives.
''; '';
}; };
@ -336,7 +348,7 @@ in {
type = types.bool; type = types.bool;
default = false; default = false;
description = lib.mdDoc '' description = lib.mdDoc ''
Create the database and database user locally. Whether to create the database and database user locally.
''; '';
}; };
@ -374,9 +386,10 @@ in {
else "localhost"; else "localhost";
defaultText = "localhost"; defaultText = "localhost";
description = lib.mdDoc '' description = lib.mdDoc ''
Database host or socket path. Defaults to the correct unix socket Database host or socket path.
instead if `services.nextcloud.database.createLocally` is true and If [](#opt-services.nextcloud.database.createLocally) is true and
`services.nextcloud.config.dbtype` is either `pgsql` or `mysql`. [](#opt-services.nextcloud.config.dbtype) is either `pgsql` or `mysql`,
defaults to the correct Unix socket instead.
''; '';
}; };
dbport = mkOption { dbport = mkOption {
@ -387,19 +400,19 @@ in {
dbtableprefix = mkOption { dbtableprefix = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
description = lib.mdDoc "Table prefix in Nextcloud database."; description = lib.mdDoc "Table prefix in Nextcloud's database.";
}; };
adminuser = mkOption { adminuser = mkOption {
type = types.str; type = types.str;
default = "root"; default = "root";
description = lib.mdDoc "Admin username."; description = lib.mdDoc "Username for the admin account.";
}; };
adminpassFile = mkOption { adminpassFile = mkOption {
type = types.str; type = types.str;
description = lib.mdDoc '' description = lib.mdDoc ''
The full path to a file that contains the admin's password. Must be The full path to a file that contains the admin's password. Must be
readable by user `nextcloud`. The password is set only in the initial readable by user `nextcloud`. The password is set only in the initial
setup of nextcloud by the systemd `nextcloud-setup.service`. setup of Nextcloud by the systemd service `nextcloud-setup.service`.
''; '';
}; };
@ -407,7 +420,7 @@ in {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
description = lib.mdDoc '' description = lib.mdDoc ''
Trusted domains, from which the nextcloud installation will be Trusted domains from which the Nextcloud installation will be
accessible. You don't need to add accessible. You don't need to add
`services.nextcloud.hostname` here. `services.nextcloud.hostname` here.
''; '';
@ -417,8 +430,8 @@ in {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
description = lib.mdDoc '' description = lib.mdDoc ''
Trusted proxies, to provide if the nextcloud installation is being Trusted proxies to provide if the Nextcloud installation is being
proxied to secure against e.g. spoofing. proxied to secure against, e.g. spoofing.
''; '';
}; };
@ -428,10 +441,10 @@ in {
example = "https"; example = "https";
description = lib.mdDoc '' description = lib.mdDoc ''
Force Nextcloud to always use HTTPS i.e. for link generation. Nextcloud Force Nextcloud to always use HTTP or HTTPS i.e. for link generation.
uses the currently used protocol by default, but when behind a reverse-proxy, Nextcloud uses the currently used protocol by default, but when
it may use `http` for everything although Nextcloud behind a reverse-proxy, it may use `http` for everything although
may be served via HTTPS. Nextcloud may be served via HTTPS.
''; '';
}; };
@ -440,16 +453,12 @@ in {
type = types.nullOr types.str; type = types.nullOr types.str;
example = "DE"; example = "DE";
description = lib.mdDoc '' description = lib.mdDoc ''
::: {.warning} An [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html)
This option exists since Nextcloud 21! If older versions are used, country code which replaces automatic phone-number detection
this will throw an eval-error! without a country code.
:::
[ISO 3611-1](https://www.iso.org/iso-3166-country-codes.html) As an example, with `DE` set as the default phone region,
country codes for automatic phone-number detection without a country code. the `+49` prefix can be omitted for phone numbers.
With e.g. `DE` set, the `+49` can be omitted for
phone-numbers.
''; '';
}; };
@ -574,10 +583,10 @@ in {
default = config.services.nextcloud.notify_push.enable; default = config.services.nextcloud.notify_push.enable;
defaultText = literalExpression "config.services.nextcloud.notify_push.enable"; defaultText = literalExpression "config.services.nextcloud.notify_push.enable";
description = lib.mdDoc '' description = lib.mdDoc ''
Whether to configure nextcloud to use the recommended redis settings for small instances. Whether to configure Nextcloud to use the recommended Redis settings for small instances.
::: {.note} ::: {.note}
The `notify_push` app requires redis to be configured. If this option is turned off, this must be configured manually. The `notify_push` app requires Redis to be configured. If this option is turned off, this must be configured manually.
::: :::
''; '';
}; };
@ -614,7 +623,7 @@ in {
type = types.bool; type = types.bool;
default = false; default = false;
description = lib.mdDoc '' description = lib.mdDoc ''
Run regular auto update of all apps installed from the nextcloud app store. Run a regular auto-update of all apps installed from the Nextcloud app store.
''; '';
}; };
startAt = mkOption { startAt = mkOption {
@ -661,7 +670,7 @@ in {
type = jsonFormat.type; type = jsonFormat.type;
default = {}; default = {};
description = lib.mdDoc '' description = lib.mdDoc ''
Extra options which should be appended to nextcloud's config.php file. Extra options which should be appended to Nextcloud's config.php file.
''; '';
example = literalExpression '' { example = literalExpression '' {
redis = { redis = {
@ -678,7 +687,7 @@ in {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
description = lib.mdDoc '' description = lib.mdDoc ''
Secret options which will be appended to nextcloud's config.php file (written as JSON, in the same Secret options which will be appended to Nextcloud's config.php file (written as JSON, in the same
form as the [](#opt-services.nextcloud.extraOptions) option), for example form as the [](#opt-services.nextcloud.extraOptions) option), for example
`{"redis":{"password":"secret"}}`. `{"redis":{"password":"secret"}}`.
''; '';
@ -712,7 +721,7 @@ in {
A legacy Nextcloud install (from before NixOS ${nixos}) may be installed. A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
After nextcloud${toString major} is installed successfully, you can safely upgrade After nextcloud${toString major} is installed successfully, you can safely upgrade
to ${toString (major + 1)}. The latest version available is nextcloud${toString latest}. to ${toString (major + 1)}. The latest version available is Nextcloud${toString latest}.
Please note that Nextcloud doesn't support upgrades across multiple major versions Please note that Nextcloud doesn't support upgrades across multiple major versions
(i.e. an upgrade from 16 is possible to 17, but not 16 to 18). (i.e. an upgrade from 16 is possible to 17, but not 16 to 18).

View file

@ -27,11 +27,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kid3"; pname = "kid3";
version = "3.9.3"; version = "3.9.4";
src = fetchurl { src = fetchurl {
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz"; url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "sha256-D2hrdej2Q69AYjDn2Ey4vBSOmzBY3UzZMUdJSRjurdA="; sha256 = "sha256-xBCWDpYiXeChxIiMPqHG3CyiRau2kUdDJtzcPtvWpSA=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -49,15 +49,11 @@ stdenv.mkDerivation rec {
# Test suite is non-determinisitic in later versions # Test suite is non-determinisitic in later versions
doCheck = false; doCheck = false;
postInstall = postInstall = ''
let wrapProgram $out/bin/haunt \
guileVersion = lib.versions.majorMinor guile.version; --prefix GUILE_LOAD_PATH : "$out/${guile.siteDir}:$GUILE_LOAD_PATH" \
in --prefix GUILE_LOAD_COMPILED_PATH : "$out/${guile.siteCcacheDir}:$GUILE_LOAD_COMPILED_PATH"
'' '';
wrapProgram $out/bin/haunt \
--prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \
--prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH"
'';
doInstallCheck = true; doInstallCheck = true;
installCheckPhase = '' installCheckPhase = ''

View file

@ -27,9 +27,9 @@ stdenv.mkDerivation rec {
]; ];
configureFlags = [ configureFlags = [
"--with-guile-site-dir=${builtins.placeholder "out"}/share/guile/site" "--with-guile-site-dir=${builtins.placeholder "out"}/${guile.siteDir}"
"--with-guile-site-ccache-dir=${builtins.placeholder "out"}/share/guile/site" "--with-guile-site-ccache-dir=${builtins.placeholder "out"}/${guile.siteCcacheDir}"
"--with-guile-extension-dir=${builtins.placeholder "out"}/share/guile/extensions" "--with-guile-extension-dir=${builtins.placeholder "out"}/lib/guile/${guile.effectiveVersion}/extensions"
]; ];
meta = with lib; { meta = with lib; {

View file

@ -29,16 +29,12 @@ stdenv.mkDerivation rec {
"--with-gnu-filesystem-hierarchy" "--with-gnu-filesystem-hierarchy"
]; ];
postFixup = postFixup = ''
let for f in $out/${guile.siteDir}/ncurses/**.scm; do \
guileVersion = lib.versions.majorMinor guile.version; substituteInPlace $f \
in --replace "libguile-ncurses" "$out/lib/guile/${guile.effectiveVersion}/libguile-ncurses"; \
'' done
for f in $out/share/guile/site/ncurses/**.scm; do \ '';
substituteInPlace $f \
--replace "libguile-ncurses" "$out/lib/guile/${guileVersion}/libguile-ncurses"; \
done
'';
# XXX: 1 of 65 tests failed. # XXX: 1 of 65 tests failed.
doCheck = false; doCheck = false;

View file

@ -27,9 +27,9 @@ stdenv.mkDerivation rec {
libffi libffi
]; ];
GUILE_SITE="${guile-lib}/share/guile/site"; env.GUILE_SITE = "${guile-lib}/${guile.siteDir}";
configureFlags = [ "--with-guilemoduledir=$(out)/share/guile/site" ]; configureFlags = [ "--with-guilemoduledir=$(out)/${guile.siteDir}" ];
meta = with lib; { meta = with lib; {
homepage = "https://www.nongnu.org/guile-reader/"; homepage = "https://www.nongnu.org/guile-reader/";

View file

@ -20,10 +20,10 @@ stdenv.mkDerivation rec {
sha256 = "sha256-P29U88QrCjoyl/wdTPZbiMoykd/v6ul6CW/IJn9UAyw="; sha256 = "sha256-P29U88QrCjoyl/wdTPZbiMoykd/v6ul6CW/IJn9UAyw=";
}; };
configureFlags = [ "--with-guilesitedir=\${out}/share/guile/site" ]; configureFlags = [ "--with-guilesitedir=\${out}/${guile.siteDir}" ];
postFixup = '' postFixup = ''
for f in $out/share/guile/site/ssh/**.scm; do \ for f in $out/${guile.siteDir}/ssh/**.scm; do \
substituteInPlace $f \ substituteInPlace $f \
--replace "libguile-ssh" "$out/lib/libguile-ssh"; \ --replace "libguile-ssh" "$out/lib/libguile-ssh"; \
done done

View file

@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
]; ];
configureFlags = [ configureFlags = [
"--with-guile-site-dir=$out/share/guile/site" "--with-guile-site-dir=$(out)/${guile.siteDir}"
"--with-guile-site-ccache-dir=$out/share/guile/site" "--with-guile-site-ccache-dir=$(out)/${guile.siteCcacheDir}"
]; ];
makeFlags = [ makeFlags = [

View file

@ -86,6 +86,12 @@ stdenv.mkDerivation rec {
setupHook = ./setup-hook-1.8.sh; setupHook = ./setup-hook-1.8.sh;
passthru = {
effectiveVersion = lib.versions.majorMinor version;
siteCcacheDir = "lib/guile/site-ccache";
siteDir = "share/guile/site";
};
meta = with lib; { meta = with lib; {
homepage = "https://www.gnu.org/software/guile/"; homepage = "https://www.gnu.org/software/guile/";
description = "Embeddable Scheme implementation"; description = "Embeddable Scheme implementation";

View file

@ -133,6 +133,12 @@ builder rec {
setupHook = ./setup-hook-2.0.sh; setupHook = ./setup-hook-2.0.sh;
passthru = rec {
effectiveVersion = lib.versions.majorMinor version;
siteCcacheDir = "lib/guile/${effectiveVersion}/site-ccache";
siteDir = "share/guile/site/${effectiveVersion}";
};
meta = with lib; { meta = with lib; {
homepage = "https://www.gnu.org/software/guile/"; homepage = "https://www.gnu.org/software/guile/";
description = "Embeddable Scheme implementation"; description = "Embeddable Scheme implementation";

View file

@ -124,6 +124,12 @@ builder rec {
setupHook = ./setup-hook-2.2.sh; setupHook = ./setup-hook-2.2.sh;
passthru = rec {
effectiveVersion = lib.versions.majorMinor version;
siteCcacheDir = "lib/guile/${effectiveVersion}/site-ccache";
siteDir = "share/guile/site/${effectiveVersion}";
};
meta = with lib; { meta = with lib; {
homepage = "https://www.gnu.org/software/guile/"; homepage = "https://www.gnu.org/software/guile/";
description = "Embeddable Scheme implementation"; description = "Embeddable Scheme implementation";

View file

@ -127,7 +127,11 @@ builder rec {
setupHook = ./setup-hook-3.0.sh; setupHook = ./setup-hook-3.0.sh;
passthru = { passthru = rec {
effectiveVersion = lib.versions.majorMinor version;
siteCcacheDir = "lib/guile/${effectiveVersion}/site-ccache";
siteDir = "share/guile/site/${effectiveVersion}";
updateScript = writeScript "update-guile-3" '' updateScript = writeScript "update-guile-3" ''
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl pcre common-updater-scripts #!nix-shell -i bash -p curl pcre common-updater-scripts

View file

@ -9,7 +9,7 @@
, zlib , zlib
, libpng , libpng
, boost , boost
, guile_3_0 , guile
, stdenv , stdenv
}: }:
@ -25,12 +25,12 @@ mkDerivation {
}; };
nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config ]; nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config ];
buildInputs = [ eigen zlib libpng boost guile_3_0 ]; buildInputs = [ eigen zlib libpng boost guile ];
preConfigure = '' preConfigure = ''
substituteInPlace studio/src/guile/interpreter.cpp \ substituteInPlace studio/src/guile/interpreter.cpp \
--replace "qputenv(\"GUILE_LOAD_COMPILED_PATH\", \"libfive/bind/guile\");" \ --replace "qputenv(\"GUILE_LOAD_COMPILED_PATH\", \"libfive/bind/guile\");" \
"qputenv(\"GUILE_LOAD_COMPILED_PATH\", \"libfive/bind/guile:$out/lib/guile/3.0/ccache\");" "qputenv(\"GUILE_LOAD_COMPILED_PATH\", \"libfive/bind/guile:$out/${guile.siteCcacheDir}\");"
substituteInPlace libfive/bind/guile/CMakeLists.txt \ substituteInPlace libfive/bind/guile/CMakeLists.txt \
--replace "LIBFIVE_FRAMEWORK_DIR=$<TARGET_FILE_DIR:libfive>" \ --replace "LIBFIVE_FRAMEWORK_DIR=$<TARGET_FILE_DIR:libfive>" \
@ -42,7 +42,7 @@ mkDerivation {
''; '';
cmakeFlags = [ cmakeFlags = [
"-DGUILE_CCACHE_DIR=${placeholder "out"}/lib/guile/3.0/ccache" "-DGUILE_CCACHE_DIR=${placeholder "out"}/${guile.siteCcacheDir}"
]; ];
postInstall = if stdenv.isDarwin then '' postInstall = if stdenv.isDarwin then ''

View file

@ -1,8 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, guile, flex, fetchpatch }: { lib, stdenv, fetchurl, pkg-config, guile, flex, fetchpatch }:
let
guileVersion = lib.versions.majorMinor guile.version;
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.1.11"; version = "1.1.11";
pname = "libmatheval"; pname = "libmatheval";
@ -32,8 +29,8 @@ stdenv.mkDerivation rec {
}) })
]; ];
env.NIX_CFLAGS_COMPILE = "-I${lib.getDev guile}/include/guile/${guileVersion}"; env.NIX_CFLAGS_COMPILE = "-I${lib.getDev guile}/include/guile/${guile.effectiveVersion}";
env.NIX_LDFLAGS = "-L${guile}/lib -lguile-${guileVersion}"; env.NIX_LDFLAGS = "-L${guile}/lib -lguile-${guile.effectiveVersion}";
meta = { meta = {
description = "A library to parse and evaluate symbolic expressions input as text"; description = "A library to parse and evaluate symbolic expressions input as text";

View file

@ -1,8 +1,9 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, fetchpatch
, setuptools , setuptools
, nose , wheel
, parts , parts
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
@ -20,8 +21,23 @@ buildPythonPackage rec {
hash = "sha256-eViakuhgSe9E8ltxzeg8m6/ze7QQvoKBtYZoBZzHxlA="; hash = "sha256-eViakuhgSe9E8ltxzeg8m6/ze7QQvoKBtYZoBZzHxlA=";
}; };
patches = [
# https://github.com/lapets/bitlist/pull/1
(fetchpatch {
name = "unpin-setuptools-dependency.patch";
url = "https://github.com/lapets/bitlist/commit/d1f977a9e835852df358b2d93b642a6820619c10.patch";
hash = "sha256-BBa6gdhuYsWahtp+Qdp/RigmVHK+uWyK46M1CdD8O2g=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace '--cov=bitlist --cov-report term-missing' ""
'';
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools
wheel
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -30,18 +46,12 @@ buildPythonPackage rec {
nativeCheckInputs = [ nativeCheckInputs = [
pytestCheckHook pytestCheckHook
nose
]; ];
pythonImportsCheck = [ pythonImportsCheck = [
"bitlist" "bitlist"
]; ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "--doctest-modules --ignore=docs --cov=bitlist --cov-report term-missing" ""
'';
meta = with lib; { meta = with lib; {
description = "Python library for working with little-endian list representation of bit strings"; description = "Python library for working with little-endian list representation of bit strings";
homepage = "https://github.com/lapets/bitlist"; homepage = "https://github.com/lapets/bitlist";

View file

@ -1,6 +1,7 @@
{ lib { lib
, attrs , attrs
, buildPythonPackage , buildPythonPackage
, cbor2
, fetchFromGitHub , fetchFromGitHub
, exceptiongroup , exceptiongroup
, hypothesis , hypothesis
@ -20,7 +21,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "cattrs"; pname = "cattrs";
version = "22.2.0"; version = "23.1.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -29,7 +30,7 @@ buildPythonPackage rec {
owner = "python-attrs"; owner = "python-attrs";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Qnrq/mIA/t0mur6IAen4vTmMIhILWS6v5nuf+Via2hA="; hash = "sha256-YO4Clbo5fmXbysxwwM2qCHJwO5KwDC05VctRVFruJcw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -40,11 +41,11 @@ buildPythonPackage rec {
attrs attrs
] ++ lib.optionals (pythonOlder "3.11") [ ] ++ lib.optionals (pythonOlder "3.11") [
exceptiongroup exceptiongroup
] ++ lib.optionals (pythonOlder "3.7") [
typing-extensions typing-extensions
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
cbor2
hypothesis hypothesis
immutables immutables
motor motor
@ -54,6 +55,7 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
pyyaml pyyaml
tomlkit tomlkit
typing-extensions
ujson ujson
]; ];
@ -94,6 +96,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Python custom class converters for attrs"; description = "Python custom class converters for attrs";
homepage = "https://github.com/python-attrs/cattrs"; homepage = "https://github.com/python-attrs/cattrs";
changelog = "https://github.com/python-attrs/cattrs/blob/${src.rev}/HISTORY.md";
license = with licenses; [ mit ]; license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View file

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "hydra-check"; pname = "hydra-check";
version = "1.3.4"; version = "1.3.5";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -18,8 +18,8 @@ buildPythonPackage rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nix-community"; owner = "nix-community";
repo = pname; repo = pname;
rev = "v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-voSbpOPJUPjwzdMLVt2TC/FIi6LKk01PLd/GczOAUR8="; hash = "sha256-fRSC+dfZZSBBeN6YidXRKc1kPUbBKz5OiFSHGOSikgI=";
}; };
nativeBuildInputs = [ poetry-core ]; nativeBuildInputs = [ poetry-core ];

View file

@ -12,6 +12,7 @@
, joblib , joblib
, wikipedia , wikipedia
, stemming , stemming
, setuptools
}: }:
let let
pname = "quantulum3"; pname = "quantulum3";
@ -40,6 +41,7 @@ buildPythonPackage {
joblib joblib
wikipedia wikipedia
stemming stemming
setuptools
]; ];
pythonImportsCheck = [ "quantulum3" ]; pythonImportsCheck = [ "quantulum3" ];

View file

@ -22,14 +22,14 @@ with py.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "checkov"; pname = "checkov";
version = "2.3.318"; version = "2.3.356";
format = "setuptools"; format = "setuptools";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bridgecrewio"; owner = "bridgecrewio";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-E1PSwbEmTTHsYbRlLUJ2HLqiJJuQO/aN73xWHTaQdBY="; hash = "sha256-Bz+A0QUUZ3Pvcw9XnRqm1fD/AjToJLSK+L/B81Kay20=";
}; };
patches = [ patches = [

View file

@ -7,17 +7,17 @@
buildGoModule rec { buildGoModule rec {
pname = "gitea-actions-runner"; pname = "gitea-actions-runner";
version = "0.2.3"; version = "0.2.5";
src = fetchFromGitea { src = fetchFromGitea {
domain = "gitea.com"; domain = "gitea.com";
owner = "gitea"; owner = "gitea";
repo = "act_runner"; repo = "act_runner";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-RNH/12XV07nWhGnmR4FKJSSK/KnLA76+pKFHTPG8AAk="; hash = "sha256-HWJrgZJfI5fOeZvQkmpd6wciJWh1JOmZMlyGHSbgHpc=";
}; };
vendorHash = "sha256-VS1CIxV0e01h5L1UA4p8R1Z28yLOEZTMxS+gbEaJwKs="; vendorHash = "sha256-Z61kTbKHSUpt2F6jVUUK4KwMJ0ILT1FI4/62AkNQuZI=";
ldflags = [ ldflags = [
"-s" "-s"

View file

@ -20,15 +20,11 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
postInstall = postInstall = ''
let wrapProgram $out/bin/hall \
guileVersion = lib.versions.majorMinor guile.version; --prefix GUILE_LOAD_PATH : "$out/${guile.siteDir}:$GUILE_LOAD_PATH" \
in --prefix GUILE_LOAD_COMPILED_PATH : "$out/${guile.siteCcacheDir}:$GUILE_LOAD_COMPILED_PATH"
'' '';
wrapProgram $out/bin/hall \
--prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \
--prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH"
'';
doInstallCheck = true; doInstallCheck = true;
installCheckPhase = '' installCheckPhase = ''

View file

@ -0,0 +1,99 @@
{ lib
, stdenv
, fetchFromGitHub
, emptyDirectory
, writeText
, makeWrapper
, gradle
, jdk20
, llvmPackages
}:
let
gradleInit = writeText "init.gradle" ''
logger.lifecycle 'Replacing Maven repositories with empty directory...'
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
repositories {
clear()
maven { url '${emptyDirectory}' }
}
}
}
settingsEvaluated { settings ->
settings.pluginManagement {
repositories {
maven { url '${emptyDirectory}' }
}
}
}
'';
in
stdenv.mkDerivation {
pname = "jextract";
version = "unstable-2023-04-14";
src = fetchFromGitHub {
owner = "openjdk";
repo = "jextract";
rev = "cf3afe9ca71592c8ebb32f219707285dd1d5b28a";
hash = "sha256-8qRD1Xg39vxtFAdguD8XvkQ8u7YzFU55MhyyJozVffo=";
};
nativeBuildInputs = [
gradle
makeWrapper
];
env = {
ORG_GRADLE_PROJECT_llvm_home = llvmPackages.libclang.lib;
ORG_GRADLE_PROJECT_jdk20_home = jdk20;
};
buildPhase = ''
runHook preBuild
export GRADLE_USER_HOME=$(mktemp -d)
gradle --console plain --init-script "${gradleInit}" assemble
runHook postBuild
'';
doCheck = true;
checkPhase = ''
runHook preCheck
gradle --console plain --init-script "${gradleInit}" verify
runHook postCheck
'';
installPhase = ''
runHook preInstall
install -D --mode=0444 --target-directory="$out/share/java" \
./build/libs/org.openjdk.jextract-unspecified.jar
runHook postInstall
'';
postFixup = ''
makeWrapper "${jdk20}/bin/java" "$out/bin/jextract" \
--add-flags "--enable-preview" \
--add-flags "--class-path $out/share/java/org.openjdk.jextract-unspecified.jar" \
--add-flags "org.openjdk.jextract.JextractTool"
'';
meta = with lib; {
description = "A tool which mechanically generates Java bindings from a native library headers";
homepage = "https://github.com/openjdk/jextract";
license = licenses.gpl2Only;
maintainers = with maintainers; [ sharzy ];
};
}

View file

@ -8,13 +8,13 @@
buildGoModule rec { buildGoModule rec {
pname = "pscale"; pname = "pscale";
version = "0.150.0"; version = "0.151.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "planetscale"; owner = "planetscale";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-tDpiInZab7RZ54Ho9uXnNEturINMhv0YqK5A9pmnEgs="; sha256 = "sha256-w5FNZ7oFA+2weZtEsLX6eOwNyqVreDHg+2FApTsV5L0=";
}; };
vendorHash = "sha256-I/cZa5IDmnYw/MU5h7jarYqbTY+5NrDDj5pz9WTcvGo="; vendorHash = "sha256-I/cZa5IDmnYw/MU5h7jarYqbTY+5NrDDj5pz9WTcvGo=";

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "tile38"; pname = "tile38";
version = "1.31.0"; version = "1.32.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tidwall"; owner = "tidwall";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-aGt5iBVT5MTbnuoZ4zd5r6sIwmNKPo1J7UjDAefKfPo="; sha256 = "sha256-NSoi7CsxL+6DoKZZal+xhjlSz+9N9CFyzlMrTYHbiW8=";
}; };
vendorHash = "sha256-9KK1IRwERcJtVnK4y5l3Nr87I3hg7E8nJuJjRiCMCZk="; vendorHash = "sha256-Vy5ct5JP2t3085TM4CCWVEAQR4mAqVbGM5JE2KctSlU=";
subPackages = [ "cmd/tile38-cli" "cmd/tile38-server" ]; subPackages = [ "cmd/tile38-cli" "cmd/tile38-server" ];

View file

@ -11,7 +11,7 @@ py.toPythonApplication
py.mysqlclient py.mysqlclient
]; ];
postPatch = '' postPatch = (old.postPatch or "") + ''
substituteInPlace mlflow/utils/process.py --replace \ substituteInPlace mlflow/utils/process.py --replace \
"child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True," \ "child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True," \
"cmd[0]='$out/bin/gunicornMlflow'; child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True," "cmd[0]='$out/bin/gunicornMlflow'; child = subprocess.Popen(cmd, env=cmd_env, cwd=cwd, universal_newlines=True,"

View file

@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
license = licenses.mit; license = licenses.mit;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ andrewchambers ]; maintainers = with maintainers; [ andrewchambers ];
mainProgram = "bupstash";
}; };
} }

View file

@ -45,5 +45,6 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/sharkdp/fd/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/sharkdp/fd/blob/v${version}/CHANGELOG.md";
license = with licenses; [ asl20 /* or */ mit ]; license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ dywedir figsoda globin ma27 zowoq ]; maintainers = with maintainers; [ dywedir figsoda globin ma27 zowoq ];
mainProgram = "fd";
}; };
} }

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pspg"; pname = "pspg";
version = "5.7.8"; version = "5.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "okbob"; owner = "okbob";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-gJsRVDKcLrXa20u2vrUaChTX2tj169x4SmJqa7dceu4="; sha256 = "sha256-VkWGVKLN8arc6BOivmjSk8MtMbp2WYqZE9lM8oTQe+U=";
}; };
nativeBuildInputs = [ pkg-config installShellFiles ]; nativeBuildInputs = [ pkg-config installShellFiles ];

View file

@ -1,4 +1,4 @@
{lib, stdenv, fetchurl, openssh}: { lib, stdenv, fetchurl, openssh }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "autossh"; pname = "autossh";
@ -17,13 +17,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ openssh ]; nativeBuildInputs = [ openssh ];
installPhase = '' installPhase = ''
install -D -m755 autossh $out/bin/autossh || return 1 install -D -m755 autossh $out/bin/autossh || return 1
install -D -m644 CHANGES $out/share/doc/autossh/CHANGES || return 1 install -D -m644 CHANGES $out/share/doc/autossh/CHANGES || return 1
install -D -m644 README $out/share/doc/autossh/README || return 1 install -D -m644 README $out/share/doc/autossh/README || return 1
install -D -m644 autossh.host $out/share/autossh/examples/autossh.host || return 1 install -D -m644 autossh.host $out/share/autossh/examples/autossh.host || return 1
install -D -m644 rscreen $out/share/autossh/examples/rscreen || return 1 install -D -m644 rscreen $out/share/autossh/examples/rscreen || return 1
install -D -m644 autossh.1 $out/man/man1/autossh.1 || return 1 install -D -m644 autossh.1 $out/man/man1/autossh.1 || return 1
''; '';
meta = with lib; { meta = with lib; {
homepage = "https://www.harding.motd.ca/autossh/"; homepage = "https://www.harding.motd.ca/autossh/";
@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
license = licenses.bsd1; license = licenses.bsd1;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ pSub ]; maintainers = with maintainers; [ pSub ];
mainProgram = "autossh";
}; };
} }

View file

@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
buildInputs = [ libpcap guile_2_2 openssl ]; buildInputs = [ libpcap guile_2_2 openssl ];
nativeBuildInputs = [ autoreconfHook pkg-config ]; nativeBuildInputs = [ autoreconfHook pkg-config ];
configureFlags = [ configureFlags = [
"GUILELIBDIR=\${out}/share/guile/site" "GUILELIBDIR=\${out}/${guile_2_2.siteDir}"
"GUILECACHEDIR=\${out}/lib/guile/ccache" "GUILECACHEDIR=\${out}/${guile_2_2.siteCcacheDir}"
]; ];
meta = { meta = {

View file

@ -17,32 +17,31 @@
buildGoModule rec { buildGoModule rec {
pname = "opensnitch"; pname = "opensnitch";
version = "1.5.2"; version = "1.6.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "evilsocket"; owner = "evilsocket";
repo = "opensnitch"; repo = "opensnitch";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-MF7K3WasG1xLdw1kWz6xVYrdfuZW5GUq6dlS0pPOkHI="; sha256 = "sha256-yEo5nga0WTbgZm8W2qbJcTOO4cCzFWrjRmTBCFH7GLg=";
}; };
patches = [
# https://github.com/evilsocket/opensnitch/pull/384 don't require
# a configuration file in /etc
(fetchpatch {
name = "dont-require-config-in-etc.patch";
url = "https://github.com/evilsocket/opensnitch/commit/8a3f63f36aa92658217bbbf46d39e6d20b2c0791.patch";
sha256 = "sha256-WkwjKTQZppR0nqvRO4xiQoKZ307NvuUwoRx+boIpuTg=";
})
];
modRoot = "daemon"; modRoot = "daemon";
buildInputs = [ libnetfilter_queue libnfnetlink ]; buildInputs = [
libnetfilter_queue
libnfnetlink
];
nativeBuildInputs = [ pkg-config protobuf go-protobuf makeWrapper protoc-gen-go-grpc ]; nativeBuildInputs = [
pkg-config
protobuf
go-protobuf
makeWrapper
protoc-gen-go-grpc
];
vendorSha256 = "sha256-jWP0oF+jZRFMi5Y2y0SARMoP8wTKVZ8UWra9JNzdSOw="; vendorSha256 = "sha256-bUzGWpQxeXzvkzQ7G53ljQJq6wwqiXqbi6bgeFlNvvM=";
preBuild = '' preBuild = ''
# Fix inconsistent vendoring build error # Fix inconsistent vendoring build error

View file

@ -3,14 +3,31 @@ module github.com/evilsocket/opensnitch/daemon
go 1.14 go 1.14
require ( require (
github.com/evilsocket/ftrace v1.2.0
github.com/fsnotify/fsnotify v1.4.7 github.com/fsnotify/fsnotify v1.4.7
github.com/golang/protobuf v1.5.0
github.com/google/gopacket v1.1.14 github.com/google/gopacket v1.1.14
github.com/google/nftables v0.0.0-20210514154851-a285acebcad3 github.com/google/nftables v0.1.0
github.com/google/uuid v1.3.0
github.com/iovisor/gobpf v0.2.0 github.com/iovisor/gobpf v0.2.0
github.com/varlink/go v0.4.0
github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452 github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452
golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271 github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 golang.org/x/net v0.0.0-20211209124913-491a49abca63
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d
google.golang.org/grpc v1.32.0 google.golang.org/grpc v1.32.0
google.golang.org/protobuf v1.26.0 google.golang.org/protobuf v1.26.0
) )
require (
github.com/BurntSushi/toml v0.4.1 // indirect
github.com/google/go-cmp v0.5.6 // indirect
github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 // indirect
github.com/mdlayher/netlink v1.4.2 // indirect
github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb // indirect
golang.org/x/mod v0.5.1 // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/tools v0.1.8 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect
honnef.co/go/tools v0.2.2 // indirect
)

View file

@ -1,13 +1,17 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/evilsocket/ftrace v1.2.0 h1:SHa+EQzNOtWO/BsOyL+6UNTSoVvnMYCKHZalWRtWvUw= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/evilsocket/ftrace v1.2.0/go.mod h1:CJ9cMkpTofsHSNDovrcFezQ5NteqGDerh7psoSM38Dc=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@ -20,60 +24,159 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gopacket v1.1.14 h1:1+TEhSu8Mh154ZBVjyd1Nt2Bb7cnyOeE3GQyb1WGLqI= github.com/google/gopacket v1.1.14 h1:1+TEhSu8Mh154ZBVjyd1Nt2Bb7cnyOeE3GQyb1WGLqI=
github.com/google/gopacket v1.1.14/go.mod h1:UCLx9mCmAwsVbn6qQl1WIEt2SO7Nd2fD0th1TBAsqBw= github.com/google/gopacket v1.1.14/go.mod h1:UCLx9mCmAwsVbn6qQl1WIEt2SO7Nd2fD0th1TBAsqBw=
github.com/google/nftables v0.0.0-20210514154851-a285acebcad3 h1:jv+t8JqcvaSeB0r4u3356q7RE5tagFbVC0Bi1x13YFc= github.com/google/nftables v0.1.0 h1:T6lS4qudrMufcNIZ8wSRrL+iuwhsKxpN+zFLxhUWOqk=
github.com/google/nftables v0.0.0-20210514154851-a285acebcad3/go.mod h1:cfspEyr/Ap+JDIITA+N9a0ernqG0qZ4W1aqMRgDZa1g= github.com/google/nftables v0.1.0/go.mod h1:b97ulCCFipUC+kSin+zygkvUVpx0vyIAwxXFdY3PlNc=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/iovisor/gobpf v0.2.0 h1:34xkQxft+35GagXBk3n23eqhm0v7q0ejeVirb8sqEOQ= github.com/iovisor/gobpf v0.2.0 h1:34xkQxft+35GagXBk3n23eqhm0v7q0ejeVirb8sqEOQ=
github.com/iovisor/gobpf v0.2.0/go.mod h1:WSY9Jj5RhdgC3ci1QaacvbFdQ8cbrEjrpiZbLHLt2s4= github.com/iovisor/gobpf v0.2.0/go.mod h1:WSY9Jj5RhdgC3ci1QaacvbFdQ8cbrEjrpiZbLHLt2s4=
github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a h1:84IpUNXj4mCR9CuCEvSiCArMbzr/TMbuPIadKDwypkI= github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 h1:uhL5Gw7BINiiPAo24A2sxkcDI0Jt/sqp1v5xQCniEFA=
github.com/josharian/native v0.0.0-20200817173448-b6b71def0850/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
github.com/koneu/natend v0.0.0-20150829182554-ec0926ea948d h1:MFX8DxRnKMY/2M3H61iSsVbo/n3h0MWGmWNN1UViOU0= github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ=
github.com/koneu/natend v0.0.0-20150829182554-ec0926ea948d/go.mod h1:QHb4k4cr1fQikUahfcRVPcEXiUgFsdIstGqlurL0XL4= github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok=
github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod h1:cR77jAZG3Y3bsb8hF6fHJbFoyFukLFOkQ98S0pQz3xw=
github.com/jsimonetti/rtnetlink v0.0.0-20201220180245-69540ac93943/go.mod h1:z4c53zj6Eex712ROyh8WI0ihysb5j2ROyV42iNogmAs=
github.com/jsimonetti/rtnetlink v0.0.0-20210122163228-8d122574c736/go.mod h1:ZXpIyOK59ZnN7J0BV99cZUPmsqDRZ3eq5X+st7u/oSA=
github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b/go.mod h1:8w9Rh8m+aHZIG69YPGGem1i5VzoyRC8nw2kA8B+ik5U=
github.com/jsimonetti/rtnetlink v0.0.0-20210525051524-4cc836578190/go.mod h1:NmKSdU4VGSiv1bMsdqNALI4RSvvjtz65tTMCnD05qLo=
github.com/jsimonetti/rtnetlink v0.0.0-20211022192332-93da33804786 h1:N527AHMa793TP5z5GNAn/VLPzlc0ewzWdeP/25gDfgQ=
github.com/jsimonetti/rtnetlink v0.0.0-20211022192332-93da33804786/go.mod h1:v4hqbTdfQngbVSZJVWUhGE/lbTFf9jb+ygmNUDQMuOs=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo=
github.com/mdlayher/ethtool v0.0.0-20211028163843-288d040e9d60 h1:tHdB+hQRHU10CfcK0furo6rSNgZ38JT8uPh70c/pFD8=
github.com/mdlayher/ethtool v0.0.0-20211028163843-288d040e9d60/go.mod h1:aYbhishWc4Ai3I2U4Gaa2n3kHWSwzme6EsG/46HRQbE=
github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=
github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
github.com/mdlayher/netlink v0.0.0-20191009155606-de872b0d824b h1:W3er9pI7mt2gOqOWzwvx20iJ8Akiqz1mUMTxU6wdvl8= github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
github.com/mdlayher/netlink v0.0.0-20191009155606-de872b0d824b/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY=
github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o=
github.com/mdlayher/netlink v1.2.0/go.mod h1:kwVW1io0AZy9A1E2YYgaD4Cj+C+GPkU6klXCMzIJ9p8=
github.com/mdlayher/netlink v1.2.1/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
github.com/mdlayher/netlink v1.2.2-0.20210123213345-5cc92139ae3e/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
github.com/mdlayher/netlink v1.3.0/go.mod h1:xK/BssKuwcRXHrtN04UBkwQ6dY9VviGGuriDdoPSWys=
github.com/mdlayher/netlink v1.4.0/go.mod h1:dRJi5IABcZpBD2A3D0Mv/AiX8I9uDEu5oGkAVrekmf8=
github.com/mdlayher/netlink v1.4.1/go.mod h1:e4/KuJ+s8UhfUpO9z00/fDZZmhSrs+oxyqAS9cNgn6Q=
github.com/mdlayher/netlink v1.4.2 h1:3sbnJWe/LETovA7yRZIX3f9McVOWV3OySH6iIBxiFfI=
github.com/mdlayher/netlink v1.4.2/go.mod h1:13VaingaArGUTUxFLf/iEovKxXji32JAtF858jZYEug=
github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00/go.mod h1:GAFlyu4/XV68LkQKYzKhIo/WW7j3Zi0YRAz/BOoanUc=
github.com/mdlayher/socket v0.0.0-20211007213009-516dcbdf0267/go.mod h1:nFZ1EtZYK8Gi/k6QNu7z7CgO20i/4ExeQswwWuPmG/g=
github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb h1:2dC7L10LmTqlyMVzFJ00qM25lqESg9Z4u3GuEXN5iHY=
github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb/go.mod h1:nFZ1EtZYK8Gi/k6QNu7z7CgO20i/4ExeQswwWuPmG/g=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/varlink/go v0.4.0 h1:+/BQoUO9eJK/+MTSHwFcJch7TMsb6N6Dqp6g0qaXXRo=
github.com/varlink/go v0.4.0/go.mod h1:DKg9Y2ctoNkesREGAEak58l+jOC6JU2aqZvUYs5DynU=
github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452 h1:xe1bLd/sNkKVWdZuAb2+4JeMQMYyQ7Av38iRrE1lhm8= github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452 h1:xe1bLd/sNkKVWdZuAb2+4JeMQMYyQ7Av38iRrE1lhm8=
github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns=
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271 h1:N66aaryRB3Ax92gH0v3hp1QYZ3zWWCCUR/j8Ifh45Ss= golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191028085509-fe3aa8a45271/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY=
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE=
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d h1:FjkYO/PPp4Wi0EAUOVLxePm7qVW4r4ctbWpURyuOD0E=
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
golang.org/x/tools v0.1.8 h1:P1HhGGuLW4aAclzjtmJdf0mJOjVUZUzOTqkAkWL+l6w=
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
@ -89,3 +192,6 @@ google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/l
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
honnef.co/go/tools v0.2.2 h1:MNh1AVMyVX23VUHE2O27jm6lNj3vjO5DexS4A1xvnzk=
honnef.co/go/tools v0.2.2/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=

View file

@ -6,17 +6,17 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "opensnitch-ui"; pname = "opensnitch-ui";
version = "1.5.2"; version = "1.6.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "evilsocket"; owner = "evilsocket";
repo = "opensnitch"; repo = "opensnitch";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-MF7K3WasG1xLdw1kWz6xVYrdfuZW5GUq6dlS0pPOkHI="; sha256 = "sha256-yEo5nga0WTbgZm8W2qbJcTOO4cCzFWrjRmTBCFH7GLg=";
}; };
postPatch = '' postPatch = ''
substituteInPlace ui/opensnitch/utils.py \ substituteInPlace ui/opensnitch/utils/__init__.py \
--replace /usr/lib/python3/dist-packages/data ${python3Packages.pyasn}/${python3Packages.python.sitePackages}/pyasn/data --replace /usr/lib/python3/dist-packages/data ${python3Packages.pyasn}/${python3Packages.python.sitePackages}/pyasn/data
''; '';

View file

@ -10,16 +10,16 @@
buildGoModule rec { buildGoModule rec {
pname = "restish"; pname = "restish";
version = "0.17.0"; version = "0.18.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "danielgtaylor"; owner = "danielgtaylor";
repo = "restish"; repo = "restish";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-sXktiYCymoqZgEWQJHYn9KAUxtZYNCSyDyPC8D/X+Mw="; hash = "sha256-DvI1pe4ONuIhSecJOhv6GKRzOYHo+jePqT8oYVvcKnM=";
}; };
vendorHash = "sha256-quDHEoHVAEAnw+M0xiAd07s/EOhVUgH0T1z8TaBcbj0="; vendorHash = "sha256-sUBqeLhpWUu1NfAmFQCKFHm8DQaB8LYRrFexvuF8vC8=";
buildInputs = lib.optionals stdenv.isDarwin [ buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Cocoa darwin.apple_sdk.frameworks.Cocoa

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lynis"; pname = "lynis";
version = "3.0.8"; version = "3.0.9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "CISOfy"; owner = "CISOfy";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-fPQX/Iz+dc3nF3xMPt0bek4JC2XSHe4aC4O0tZwLf6Y="; sha256 = "sha256-Qf5YVvsw4o2ZS3KjrHPJt8+iPr7G97egdDRN+peL8eU=";
}; };
nativeBuildInputs = [ installShellFiles makeWrapper ]; nativeBuildInputs = [ installShellFiles makeWrapper ];

View file

@ -26,5 +26,6 @@ buildGoModule rec {
homepage = "https://github.com/Mic92/ssh-to-age"; homepage = "https://github.com/Mic92/ssh-to-age";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ mic92 ]; maintainers = with maintainers; [ mic92 ];
mainProgram = "ssh-to-age";
}; };
} }

View file

@ -2,14 +2,14 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "mdbook-katex"; pname = "mdbook-katex";
version = "0.5.5"; version = "0.5.6";
src = fetchCrate { src = fetchCrate {
inherit pname version; inherit pname version;
hash = "sha256-ZiMMO3v//re6rCwDojJqaXChKL4wTK1fKVdQ8plHv9Q="; hash = "sha256-aG7mXMDogGfAHwz+itJthl7sJ4o+Oz5RnrTHNstrh28=";
}; };
cargoHash = "sha256-FEyUWR5WcKZsGTFAnvysYReH1wOrKYoKQ0wlrPaW4ok="; cargoHash = "sha256-LE9NalzCTYvcj7WwQKVc7HkbyUj9zQIA2RfK8uxNfOk=";
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ]; buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];

View file

@ -46,15 +46,11 @@ in stdenv.mkDerivation (finalAttrs: {
++ optional enablePloticus ploticus ++ optional enablePloticus ploticus
++ optional enableTex tex; ++ optional enableTex tex;
postInstall = postInstall = ''
let wrapProgram $out/bin/skribilo \
guileVersion = lib.versions.majorMinor guile.version; --prefix GUILE_LOAD_PATH : "$out/${guile.siteDir}:$GUILE_LOAD_PATH" \
in --prefix GUILE_LOAD_COMPILED_PATH : "$out/${guile.siteCcacheDir}:$GUILE_LOAD_COMPILED_PATH"
'' '';
wrapProgram $out/bin/skribilo \
--prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \
--prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH"
'';
meta = { meta = {
homepage = "https://www.nongnu.org/skribilo/"; homepage = "https://www.nongnu.org/skribilo/";

View file

@ -25553,6 +25553,8 @@ with pkgs;
fastjar = callPackage ../development/tools/java/fastjar { }; fastjar = callPackage ../development/tools/java/fastjar { };
jextract = callPackage ../development/tools/java/jextract { };
httpunit = callPackage ../development/libraries/java/httpunit { }; httpunit = callPackage ../development/libraries/java/httpunit { };
javaCup = callPackage ../development/libraries/java/cup { javaCup = callPackage ../development/libraries/java/cup {