diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e30a4bb0f95e..32201333c37b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -538,7 +538,7 @@ To get a sense for what changes are considered mass rebuilds, see [previously me When adding yourself as maintainer, in the same pull request, make a separate commit with the message `maintainers: add `. Add the commit before those making changes to the package or module. - See [Nixpkgs Maintainers](../maintainers/README.md) for details. + See [Nixpkgs Maintainers](./maintainers/README.md) for details. ### Writing good commit messages diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 30620038e9e5..e874a74612e5 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -4424,6 +4424,15 @@ githubId = 14034137; name = "Mostly Void"; }; + ditsuke = { + name = "Tushar"; + email = "hello@ditsuke.com"; + github = "ditsuke"; + githubId = 72784348; + keys = [{ + fingerprint = "8FD2 153F 4889 541A 54F1 E09E 71B6 C31C 8A5A 9D21"; + }]; + }; djacu = { email = "daniel.n.baker@gmail.com"; github = "djacu"; @@ -18024,6 +18033,12 @@ githubId = 1983821; name = "Eric Wolf"; }; + u2x1 = { + email = "u2x1@outlook.com"; + github = "u2x1"; + githubId = 30677291; + name = "u2x1"; + }; uakci = { name = "uakci"; email = "uakci@uakci.pl"; diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py index 18b354f0be9c..5ceaab8db901 100644 --- a/maintainers/scripts/pluginupdate.py +++ b/maintainers/scripts/pluginupdate.py @@ -327,7 +327,6 @@ def run_nix_expr(expr, nixpkgs: str): :param expr nix expression to fetch current plugins :param nixpkgs Path towards a nixpkgs checkout ''' - # local_pkgs = str(Path(__file__).parent.parent.parent) with CleanEnvironment(nixpkgs) as nix_path: cmd = [ "nix", @@ -341,8 +340,8 @@ def run_nix_expr(expr, nixpkgs: str): "--nix-path", nix_path, ] - log.debug("Running command %s", " ".join(cmd)) - out = subprocess.check_output(cmd) + log.debug("Running command: %s", " ".join(cmd)) + out = subprocess.check_output(cmd, timeout=90) data = json.loads(out) return data @@ -572,7 +571,6 @@ class CleanEnvironment(object): self.empty_config = NamedTemporaryFile() self.empty_config.write(b"{}") self.empty_config.flush() - # os.environ["NIXPKGS_CONFIG"] = self.empty_config.name return f"localpkgs={self.local_pkgs}" def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 3c041af00b0f..ec1b3358fd71 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -70,6 +70,8 @@ - [Prometheus MySQL exporter](https://github.com/prometheus/mysqld_exporter), a MySQL server exporter for Prometheus. Available as [services.prometheus.exporters.mysqld](#opt-services.prometheus.exporters.mysqld.enable). +- [LibreNMS](https://www.librenms.org), a auto-discovering PHP/MySQL/SNMP based network monitoring. Available as [services.librenms](#opt-services.librenms.enable). + - [sitespeed-io](https://sitespeed.io), a tool that can generate metrics (timings, diagnostics) for websites. Available as [services.sitespeed-io](#opt-services.sitespeed-io.enable). - [stalwart-mail](https://stalw.art), an all-in-one email server (SMTP, IMAP, JMAP). Available as [services.stalwart-mail](#opt-services.stalwart-mail.enable). @@ -95,6 +97,8 @@ - [Honk](https://humungus.tedunangst.com/r/honk), a complete ActivityPub server with minimal setup and support costs. Available as [services.honk](#opt-services.honk.enable). +- [ferretdb](https://www.ferretdb.io/), an open-source proxy, converting the MongoDB 6.0+ wire protocol queries to PostgreSQL or SQLite. Available as [services.ferretdb](options.html#opt-services.ferretdb.enable). + - [NNCP](http://www.nncpgo.org/). Added nncp-daemon and nncp-caller services. Configuration is set with [programs.nncp.settings](#opt-programs.nncp.settings) and the daemons are enabled at [services.nncp](#opt-services.nncp.caller.enable). - [tuxedo-rs](https://github.com/AaronErhardt/tuxedo-rs), Rust utilities for interacting with hardware from TUXEDO Computers. @@ -275,6 +279,8 @@ - Package `noto-fonts-emoji` was renamed to `noto-fonts-color-emoji`; see [#221181](https://github.com/NixOS/nixpkgs/issues/221181). +- Package `cloud-sql-proxy` was renamed to `google-cloud-sql-proxy` as it cannot be used with other cloud providers.; + - Package `pash` was removed due to being archived upstream. Use `powershell` as an alternative. - `security.sudo.extraRules` now includes `root`'s default rule, with ordering diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index b51e2786797e..9b347527ab01 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -415,6 +415,7 @@ ./services/databases/couchdb.nix ./services/databases/dgraph.nix ./services/databases/dragonflydb.nix + ./services/databases/ferretdb.nix ./services/databases/firebird.nix ./services/databases/foundationdb.nix ./services/databases/hbase-standalone.nix @@ -774,6 +775,7 @@ ./services/monitoring/kapacitor.nix ./services/monitoring/karma.nix ./services/monitoring/kthxbye.nix + ./services/monitoring/librenms.nix ./services/monitoring/loki.nix ./services/monitoring/longview.nix ./services/monitoring/mackerel-agent.nix @@ -1163,6 +1165,7 @@ ./services/security/sshguard.nix ./services/security/sslmate-agent.nix ./services/security/step-ca.nix + ./services/security/tang.nix ./services/security/tor.nix ./services/security/torify.nix ./services/security/torsocks.nix diff --git a/nixos/modules/services/databases/ferretdb.nix b/nixos/modules/services/databases/ferretdb.nix new file mode 100644 index 000000000000..5b2cc59d8c06 --- /dev/null +++ b/nixos/modules/services/databases/ferretdb.nix @@ -0,0 +1,79 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.ferretdb; +in +{ + + meta.maintainers = with lib.maintainers; [ julienmalka camillemndn ]; + + options = { + services.ferretdb = { + enable = mkEnableOption "FerretDB, an Open Source MongoDB alternative."; + + package = mkOption { + type = types.package; + example = literalExpression "pkgs.ferretdb"; + default = pkgs.ferretdb; + defaultText = "pkgs.ferretdb"; + description = "FerretDB package to use."; + }; + + settings = lib.mkOption { + type = + lib.types.submodule { freeformType = with lib.types; attrsOf str; }; + example = { + FERRETDB_LOG_LEVEL = "warn"; + FERRETDB_MODE = "normal"; + }; + description = '' + Additional configuration for FerretDB, see + + for supported values. + ''; + }; + }; + }; + + config = mkIf cfg.enable + { + + services.ferretdb.settings = { + FERRETDB_HANDLER = lib.mkDefault "sqlite"; + FERRETDB_SQLITE_URL = lib.mkDefault "file:/var/lib/ferretdb/"; + }; + + systemd.services.ferretdb = { + description = "FerretDB"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + environment = cfg.settings; + serviceConfig = { + Type = "simple"; + StateDirectory = "ferretdb"; + WorkingDirectory = "/var/lib/ferretdb"; + ExecStart = "${cfg.package}/bin/ferretdb"; + Restart = "on-failure"; + ProtectHome = true; + ProtectSystem = "strict"; + PrivateTmp = true; + PrivateDevices = true; + ProtectHostname = true; + ProtectClock = true; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectKernelLogs = true; + ProtectControlGroups = true; + NoNewPrivileges = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + RemoveIPC = true; + PrivateMounts = true; + DynamicUser = true; + }; + }; + }; +} + diff --git a/nixos/modules/services/monitoring/librenms.nix b/nixos/modules/services/monitoring/librenms.nix new file mode 100644 index 000000000000..08a46754e0e8 --- /dev/null +++ b/nixos/modules/services/monitoring/librenms.nix @@ -0,0 +1,624 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.services.librenms; + settingsFormat = pkgs.formats.json {}; + configJson = settingsFormat.generate "librenms-config.json" cfg.settings; + + package = pkgs.librenms.override { + logDir = cfg.logDir; + dataDir = cfg.dataDir; + }; + + phpOptions = '' + log_errors = on + post_max_size = 100M + upload_max_filesize = 100M + date.timezone = "${config.time.timeZone}" + ''; + phpIni = pkgs.runCommand "php.ini" { + inherit (package) phpPackage; + inherit phpOptions; + preferLocalBuild = true; + passAsFile = [ "phpOptions" ]; + } '' + cat $phpPackage/etc/php.ini $phpOptionsPath > $out + ''; + + artisanWrapper = pkgs.writeShellScriptBin "librenms-artisan" '' + cd ${package} + sudo=exec + if [[ "$USER" != ${cfg.user} ]]; then + sudo='exec /run/wrappers/bin/sudo -u ${cfg.user}' + fi + $sudo ${package}/artisan $* + ''; + + lnmsWrapper = pkgs.writeShellScriptBin "lnms" '' + cd ${package} + exec ${package}/lnms $* + ''; + + configFile = pkgs.writeText "config.php" '' + cfg.database.host == "localhost"; + message = "The database host must be \"localhost\" if services.librenms.database.createLocally is set to true."; + } + { + assertion = !(cfg.useDistributedPollers && cfg.distributedPoller.enable); + message = "The LibreNMS instance can't be a distributed poller and a full instance at the same time."; + } + ]; + + users.users.${cfg.user} = { + group = "${cfg.group}"; + isSystemUser = true; + }; + + users.groups.${cfg.group} = { }; + + services.librenms.settings = { + # basic configs + "user" = cfg.user; + "own_hostname" = cfg.hostname; + "base_url" = lib.mkDefault "/"; + "auth_mechanism" = lib.mkDefault "mysql"; + + # disable auto update function (won't work with NixOS) + "update" = false; + + # enable fast ping by default + "ping_rrd_step" = 60; + + # one minute polling + "rrd.step" = if cfg.enableOneMinutePolling then 60 else 300; + "rrd.heartbeat" = if cfg.enableOneMinutePolling then 120 else 600; + } // (lib.optionalAttrs cfg.distributedPoller.enable { + "distributed_poller" = true; + "distributed_poller_name" = lib.mkIf (cfg.distributedPoller.name != null) cfg.distributedPoller.name; + "distributed_poller_group" = cfg.distributedPoller.group; + "distributed_billing" = cfg.distributedPoller.distributedBilling; + "distributed_poller_memcached_host" = cfg.distributedPoller.memcachedHost; + "distributed_poller_memcached_port" = cfg.distributedPoller.memcachedPort; + "rrdcached" = "${cfg.distributedPoller.rrdcachedHost}:${toString cfg.distributedPoller.rrdcachedPort}"; + }) // (lib.optionalAttrs cfg.useDistributedPollers { + "distributed_poller" = true; + # still enable a local poller with distributed polling + "distributed_poller_group" = lib.mkDefault "0"; + "distributed_billing" = lib.mkDefault true; + "distributed_poller_memcached_host" = "localhost"; + "distributed_poller_memcached_port" = 11211; + "rrdcached" = "localhost:42217"; + }); + + services.memcached = lib.mkIf cfg.useDistributedPollers { + enable = true; + listen = "0.0.0.0"; + }; + + systemd.services.rrdcached = lib.mkIf cfg.useDistributedPollers { + description = "rrdcached"; + after = [ "librenms-setup.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "forking"; + User = cfg.user; + Group = cfg.group; + LimitNOFILE = 16384; + RuntimeDirectory = "rrdcached"; + PidFile = "/run/rrdcached/rrdcached.pid"; + # rrdcached params from https://docs.librenms.org/Extensions/Distributed-Poller/#config-sample + ExecStart = "${pkgs.rrdtool}/bin/rrdcached -l 0:42217 -R -j ${cfg.dataDir}/rrdcached-journal/ -F -b ${cfg.dataDir}/rrd -B -w 1800 -z 900 -p /run/rrdcached/rrdcached.pid"; + }; + }; + + services.mysql = lib.mkIf cfg.database.createLocally { + enable = true; + package = lib.mkDefault pkgs.mariadb; + settings.mysqld = { + innodb_file_per_table = 1; + lower_case_table_names = 0; + } // (lib.optionalAttrs cfg.useDistributedPollers { + bind-address = "0.0.0.0"; + }); + ensureDatabases = [ cfg.database.database ]; + ensureUsers = [ + { + name = cfg.database.username; + ensurePermissions = { + "${cfg.database.database}.*" = "ALL PRIVILEGES"; + }; + } + ]; + initialScript = lib.mkIf cfg.useDistributedPollers (pkgs.writeText "mysql-librenms-init" '' + CREATE USER IF NOT EXISTS '${cfg.database.username}'@'%'; + GRANT ALL PRIVILEGES ON ${cfg.database.database}.* TO '${cfg.database.username}'@'%'; + ''); + }; + + services.nginx = lib.mkIf (!cfg.distributedPoller.enable) { + enable = true; + virtualHosts."${cfg.hostname}" = lib.mkMerge [ + cfg.nginx + { + root = lib.mkForce "${package}/html"; + locations."/" = { + index = "index.php"; + tryFiles = "$uri $uri/ /index.php?$query_string"; + }; + locations."~ .php$".extraConfig = '' + fastcgi_pass unix:${config.services.phpfpm.pools."librenms".socket}; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + ''; + } + ]; + }; + + services.phpfpm.pools.librenms = lib.mkIf (!cfg.distributedPoller.enable) { + user = cfg.user; + group = cfg.group; + inherit (package) phpPackage; + inherit phpOptions; + settings = { + "listen.mode" = "0660"; + "listen.owner" = config.services.nginx.user; + "listen.group" = config.services.nginx.group; + } // cfg.poolConfig; + }; + + systemd.services.librenms-scheduler = { + description = "LibreNMS Scheduler"; + path = [ pkgs.unixtools.whereis ]; + serviceConfig = { + Type = "oneshot"; + WorkingDirectory = package; + User = cfg.user; + Group = cfg.group; + ExecStart = "${artisanWrapper}/bin/librenms-artisan schedule:run"; + }; + }; + + systemd.timers.librenms-scheduler = { + description = "LibreNMS Scheduler"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "minutely"; + AccuracySec = "1second"; + }; + }; + + systemd.services.librenms-setup = { + description = "Preparation tasks for LibreNMS"; + before = [ "phpfpm-librenms.service" ]; + after = [ "systemd-tmpfiles-setup.service" ] + ++ (lib.optional (cfg.database.host == "localhost") "mysql.service"); + wantedBy = [ "multi-user.target" ]; + restartTriggers = [ package configFile ]; + path = [ pkgs.mariadb pkgs.unixtools.whereis pkgs.gnused ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + EnvironmentFile = lib.mkIf (cfg.environmentFile != null) [ cfg.environmentFile ]; + User = cfg.user; + Group = cfg.group; + ExecStartPre = lib.mkIf cfg.database.createLocally [ "!${pkgs.writeShellScript "librenms-db-init" '' + DB_PASSWORD=$(cat ${cfg.database.passwordFile} | tr -d '\n') + echo "ALTER USER '${cfg.database.username}'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql + ${lib.optionalString cfg.useDistributedPollers '' + echo "ALTER USER '${cfg.database.username}'@'%' IDENTIFIED BY '$DB_PASSWORD';" | ${pkgs.mariadb}/bin/mysql + ''} + ''}"]; + }; + script = '' + set -euo pipefail + + # config setup + ln -sf ${configFile} ${cfg.dataDir}/config.php + ${pkgs.envsubst}/bin/envsubst -i ${configJson} -o ${cfg.dataDir}/config.json + export PHPRC=${phpIni} + + if [[ ! -s ${cfg.dataDir}/.env ]]; then + # init .env file + echo "APP_KEY=" > ${cfg.dataDir}/.env + ${artisanWrapper}/bin/librenms-artisan key:generate --ansi + ${artisanWrapper}/bin/librenms-artisan webpush:vapid + echo "" >> ${cfg.dataDir}/.env + echo -n "NODE_ID=" >> ${cfg.dataDir}/.env + ${package.phpPackage}/bin/php -r "echo uniqid();" >> ${cfg.dataDir}/.env + echo "" >> ${cfg.dataDir}/.env + else + # .env file already exists --> only update database and cache config + ${pkgs.gnused}/bin/sed -i /^DB_/d ${cfg.dataDir}/.env + ${pkgs.gnused}/bin/sed -i /^CACHE_DRIVER/d ${cfg.dataDir}/.env + fi + ${lib.optionalString (cfg.useDistributedPollers || cfg.distributedPoller.enable) '' + echo "CACHE_DRIVER=memcached" >> ${cfg.dataDir}/.env + ''} + echo "DB_HOST=${cfg.database.host}" >> ${cfg.dataDir}/.env + echo "DB_PORT=${toString cfg.database.port}" >> ${cfg.dataDir}/.env + echo "DB_DATABASE=${cfg.database.database}" >> ${cfg.dataDir}/.env + echo "DB_USERNAME=${cfg.database.username}" >> ${cfg.dataDir}/.env + echo -n "DB_PASSWORD=" >> ${cfg.dataDir}/.env + cat ${cfg.database.passwordFile} >> ${cfg.dataDir}/.env + + # clear cache after update + OLD_VERSION=$(cat ${cfg.dataDir}/version) + if [[ $OLD_VERSION != "${package.version}" ]]; then + rm -r ${cfg.dataDir}/cache/* + echo "${package.version}" > ${cfg.dataDir}/version + fi + + # convert rrd files when the oneMinutePolling option is changed + OLD_ENABLED=$(cat ${cfg.dataDir}/one_minute_enabled) + if [[ $OLD_ENABLED != "${lib.boolToString cfg.enableOneMinutePolling}" ]]; then + ${package}/scripts/rrdstep.php -h all + echo "${lib.boolToString cfg.enableOneMinutePolling}" > ${cfg.dataDir}/one_minute_enabled + fi + + # migrate db + ${artisanWrapper}/bin/librenms-artisan migrate --force --no-interaction + ''; + }; + + programs.mtr.enable = true; + + services.logrotate = { + enable = true; + settings."${cfg.logDir}/librenms.log" = { + su = "${cfg.user} ${cfg.group}"; + create = "0640 ${cfg.user} ${cfg.group}"; + rotate = 6; + frequency = "weekly"; + compress = true; + delaycompress = true; + missingok = true; + notifempty = true; + }; + }; + + services.cron = { + enable = true; + systemCronJobs = let + env = "PHPRC=${phpIni}"; + in [ + # based on crontab provided by LibreNMS + "33 */6 * * * ${cfg.user} ${env} ${package}/cronic ${package}/discovery-wrapper.py 1" + "*/5 * * * * ${cfg.user} ${env} ${package}/discovery.php -h new >> /dev/null 2>&1" + + "${if cfg.enableOneMinutePolling then "*" else "*/5"} * * * * ${cfg.user} ${env} ${package}/cronic ${package}/poller-wrapper.py ${toString cfg.pollerThreads}" + "* * * * * ${cfg.user} ${env} ${package}/alerts.php >> /dev/null 2>&1" + + "*/5 * * * * ${cfg.user} ${env} ${package}/poll-billing.php >> /dev/null 2>&1" + "01 * * * * ${cfg.user} ${env} ${package}/billing-calculate.php >> /dev/null 2>&1" + "*/5 * * * * ${cfg.user} ${env} ${package}/check-services.php >> /dev/null 2>&1" + + # extra: fast ping + "* * * * * ${cfg.user} ${env} ${package}/ping.php >> /dev/null 2>&1" + + # daily.sh tasks are split to exclude update + "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh cleanup >> /dev/null 2>&1" + "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh notifications >> /dev/null 2>&1" + "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh peeringdb >> /dev/null 2>&1" + "19 0 * * * ${cfg.user} ${env} ${package}/daily.sh mac_oui >> /dev/null 2>&1" + ]; + }; + + security.wrappers = { + fping = { + setuid = true; + owner = "root"; + group = "root"; + source = "${pkgs.fping}/bin/fping"; + }; + }; + + environment.systemPackages = [ artisanWrapper lnmsWrapper ]; + + systemd.tmpfiles.rules = [ + "d ${cfg.logDir} 0750 ${cfg.user} ${cfg.group} - -" + "f ${cfg.logDir}/librenms.log 0640 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -" + "f ${cfg.dataDir}/.env 0600 ${cfg.user} ${cfg.group} - -" + "f ${cfg.dataDir}/version 0600 ${cfg.user} ${cfg.group} - -" + "f ${cfg.dataDir}/one_minute_enabled 0600 ${cfg.user} ${cfg.group} - -" + "f ${cfg.dataDir}/config.json 0600 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/app 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/debugbar 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/framework 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/framework/cache 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/framework/sessions 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/framework/views 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/storage/logs 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/rrd 0700 ${cfg.user} ${cfg.group} - -" + "d ${cfg.dataDir}/cache 0700 ${cfg.user} ${cfg.group} - -" + ] ++ lib.optionals cfg.useDistributedPollers [ + "d ${cfg.dataDir}/rrdcached-journal 0700 ${cfg.user} ${cfg.group} - -" + ]; + + }; + + meta.maintainers = lib.teams.wdz.members; +} diff --git a/nixos/modules/services/security/tang.nix b/nixos/modules/services/security/tang.nix new file mode 100644 index 000000000000..9cb0a22fca42 --- /dev/null +++ b/nixos/modules/services/security/tang.nix @@ -0,0 +1,95 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.services.tang; +in +{ + options.services.tang = { + enable = mkEnableOption "tang"; + + package = mkOption { + type = types.package; + default = pkgs.tang; + defaultText = literalExpression "pkgs.tang"; + description = mdDoc "The tang package to use."; + }; + + listenStream = mkOption { + type = with types; listOf str; + default = [ "7654" ]; + example = [ "198.168.100.1:7654" "[2001:db8::1]:7654" "7654" ]; + description = mdDoc '' + Addresses and/or ports on which tang should listen. + For detailed syntax see ListenStream in {manpage}`systemd.socket(5)`. + ''; + }; + + ipAddressAllow = mkOption { + example = [ "192.168.1.0/24" ]; + type = types.listOf types.str; + description = '' + Whitelist a list of address prefixes. + Preferably, internal addresses should be used. + ''; + }; + + }; + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + systemd.services."tangd@" = { + description = "Tang server"; + path = [ cfg.package ]; + serviceConfig = { + StandardInput = "socket"; + StandardOutput = "socket"; + StandardError = "journal"; + DynamicUser = true; + StateDirectory = "tang"; + RuntimeDirectory = "tang"; + StateDirectoryMode = "700"; + UMask = "0077"; + CapabilityBoundingSet = [ "" ]; + ExecStart = "${cfg.package}/libexec/tangd %S/tang"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + DeviceAllow = [ "/dev/stdin" ]; + RestrictAddressFamilies = [ "AF_UNIX" ]; + DevicePolicy = "strict"; + PrivateDevices = true; + PrivateTmp = true; + PrivateUsers = true; + ProcSubset = "pid"; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProtectSystem = "strict"; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ]; + IPAddressDeny = "any"; + IPAddressAllow = cfg.ipAddressAllow; + }; + }; + + systemd.sockets.tangd = { + description = "Tang server"; + wantedBy = [ "sockets.target" ]; + socketConfig = { + ListenStream = cfg.listenStream; + Accept = "yes"; + IPAddressDeny = "any"; + IPAddressAllow = cfg.ipAddressAllow; + }; + }; + }; + meta.maintainers = with lib.maintainers; [ jfroche julienmalka ]; +} diff --git a/nixos/modules/virtualisation/lxd.nix b/nixos/modules/virtualisation/lxd.nix index e30fbebb662c..6f628c4a6e32 100644 --- a/nixos/modules/virtualisation/lxd.nix +++ b/nixos/modules/virtualisation/lxd.nix @@ -145,9 +145,7 @@ in { }; ui = { - enable = lib.mkEnableOption (lib.mdDoc '' - Enables the (experimental) LXD UI. - ''); + enable = lib.mkEnableOption (lib.mdDoc "(experimental) LXD UI"); package = lib.mkPackageOption pkgs.lxd-unwrapped "ui" { }; }; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 61cd7a3e0c7f..2d774bc19579 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -274,6 +274,7 @@ in { fcitx5 = handleTest ./fcitx5 {}; fenics = handleTest ./fenics.nix {}; ferm = handleTest ./ferm.nix {}; + ferretdb = handleTest ./ferretdb.nix {}; firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; }; firefox-beta = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-beta; }; firefox-devedition = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-devedition; }; @@ -432,6 +433,7 @@ in { lemmy = handleTest ./lemmy.nix {}; libinput = handleTest ./libinput.nix {}; libreddit = handleTest ./libreddit.nix {}; + librenms = handleTest ./librenms.nix {}; libresprite = handleTest ./libresprite.nix {}; libreswan = handleTest ./libreswan.nix {}; librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; }; @@ -806,6 +808,7 @@ in { systemd-userdbd = handleTest ./systemd-userdbd.nix {}; systemd-homed = handleTest ./systemd-homed.nix {}; tandoor-recipes = handleTest ./tandoor-recipes.nix {}; + tang = handleTest ./tang.nix {}; taskserver = handleTest ./taskserver.nix {}; tayga = handleTest ./tayga.nix {}; teeworlds = handleTest ./teeworlds.nix {}; diff --git a/nixos/tests/buildbot.nix b/nixos/tests/buildbot.nix index 467c8d8baff4..dbf68aba9467 100644 --- a/nixos/tests/buildbot.nix +++ b/nixos/tests/buildbot.nix @@ -1,11 +1,6 @@ # Test ensures buildbot master comes up correctly and workers can connect -{ system ? builtins.currentSystem, - config ? {}, - pkgs ? import ../.. { inherit system config; } -}: - -import ./make-test-python.nix { +import ./make-test-python.nix ({ pkgs, ... }: { name = "buildbot"; nodes = { @@ -110,4 +105,4 @@ import ./make-test-python.nix { ''; meta.maintainers = with pkgs.lib.maintainers; [ ]; -} {} +}) diff --git a/nixos/tests/ferretdb.nix b/nixos/tests/ferretdb.nix new file mode 100644 index 000000000000..9ad7397ade80 --- /dev/null +++ b/nixos/tests/ferretdb.nix @@ -0,0 +1,64 @@ +{ system ? builtins.currentSystem +, pkgs ? import ../.. { inherit system; } +, ... +}: +let + lib = pkgs.lib; + testScript = '' + machine.start() + machine.wait_for_unit("ferretdb.service") + machine.wait_for_open_port(27017) + machine.succeed("mongosh --eval 'use myNewDatabase;' --eval 'db.myCollection.insertOne( { x: 1 } );'") + ''; +in +with import ../lib/testing-python.nix { inherit system; }; +{ + + postgresql = makeTest + { + inherit testScript; + name = "ferretdb-postgresql"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, ... }: + { + services.ferretdb = { + enable = true; + settings.FERRETDB_HANDLER = "pg"; + settings.FERRETDB_POSTGRESQL_URL = "postgres://ferretdb@localhost/ferretdb?host=/run/postgresql"; + }; + + systemd.services.ferretdb.serviceConfig = { + Requires = "postgresql.service"; + After = "postgresql.service"; + }; + + services.postgresql = { + enable = true; + ensureDatabases = [ "ferretdb" ]; + ensureUsers = [{ + name = "ferretdb"; + ensurePermissions."DATABASE ferretdb" = "ALL PRIVILEGES"; + }]; + }; + + environment.systemPackages = with pkgs; [ mongosh ]; + }; + }; + + sqlite = makeTest + { + inherit testScript; + name = "ferretdb-sqlite"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, ... }: + { + services.ferretdb.enable = true; + + environment.systemPackages = with pkgs; [ mongosh ]; + }; + }; +} diff --git a/nixos/tests/librenms.nix b/nixos/tests/librenms.nix new file mode 100644 index 000000000000..c59f56a32316 --- /dev/null +++ b/nixos/tests/librenms.nix @@ -0,0 +1,108 @@ +import ./make-test-python.nix ({ pkgs, lib, ... }: + +let + api_token = "f87f42114e44b63ad1b9e3c3d33d6fbe"; # random md5 hash + wrong_api_token = "e68ba041fcf1eab923a7a6de3af5f726"; # another random md5 hash +in { + name = "librenms"; + meta.maintainers = lib.teams.wdz.members; + + nodes.librenms = { + time.timeZone = "Europe/Berlin"; + + environment.systemPackages = with pkgs; [ + curl + jq + ]; + + services.librenms = { + enable = true; + hostname = "librenms"; + database = { + createLocally = true; + host = "localhost"; + database = "librenms"; + username = "librenms"; + passwordFile = pkgs.writeText "librenms-db-pass" "librenmsdbpass"; + }; + nginx = { + default = true; + }; + enableOneMinutePolling = true; + settings = { + enable_billing = true; + }; + }; + + # systemd oneshot to create a dummy admin user and a API token for testing + systemd.services.lnms-api-init = { + description = "LibreNMS API init"; + after = [ "librenms-setup.service" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + User = "root"; + Group = "root"; + }; + script = '' + API_USER_NAME=api + API_TOKEN=${api_token} # random md5 hash + + # we don't need to know the password, it just has to exist + API_USER_PASS=$(${pkgs.pwgen}/bin/pwgen -s 64 1) + ${pkgs.librenms}/artisan user:add $API_USER_NAME -r admin -p $API_USER_PASS + API_USER_ID=$(${pkgs.mariadb}/bin/mysql -D librenms -N -B -e "SELECT user_id FROM users WHERE username = '$API_USER_NAME';") + + ${pkgs.mariadb}/bin/mysql -D librenms -e "INSERT INTO api_tokens (user_id, token_hash, description) VALUES ($API_USER_ID, '$API_TOKEN', 'API User')" + ''; + }; + }; + + nodes.snmphost = { + networking.firewall.allowedUDPPorts = [ 161 ]; + + systemd.services.snmpd = { + description = "snmpd"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "forking"; + User = "root"; + Group = "root"; + ExecStart = let + snmpd-config = pkgs.writeText "snmpd-config" '' + com2sec readonly default public + + group MyROGroup v2c readonly + view all included .1 80 + access MyROGroup "" any noauth exact all none none + + syslocation Testcity, Testcountry + syscontact Testi mc Test + ''; + in "${pkgs.net-snmp}/bin/snmpd -c ${snmpd-config} -C"; + }; + }; + }; + + testScript = '' + start_all() + + snmphost.wait_until_succeeds("pgrep snmpd") + + librenms.wait_for_unit("lnms-api-init.service") + librenms.wait_for_open_port(80) + + # Test that we can authenticate against the API + librenms.succeed("curl --fail -H 'X-Auth-Token: ${api_token}' http://localhost/api/v0") + librenms.fail("curl --fail -H 'X-Auth-Token: ${wrong_api_token}' http://localhost/api/v0") + + # add snmphost as a device + librenms.succeed("curl --fail -X POST -d '{\"hostname\":\"snmphost\",\"version\":\"v2c\",\"community\":\"public\"}' -H 'X-Auth-Token: ${api_token}' http://localhost/api/v0/devices") + + # wait until snmphost gets polled + librenms.wait_until_succeeds("test $(curl -H 'X-Auth-Token: ${api_token}' http://localhost/api/v0/devices/snmphost | jq -Mr .devices[0].last_polled) != 'null'") + ''; +}) diff --git a/nixos/tests/tang.nix b/nixos/tests/tang.nix new file mode 100644 index 000000000000..10486a9feb8c --- /dev/null +++ b/nixos/tests/tang.nix @@ -0,0 +1,81 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "tang"; + meta = with pkgs.lib.maintainers; { + maintainers = [ jfroche ]; + }; + + nodes.server = + { config + , pkgs + , modulesPath + , ... + }: { + imports = [ + "${modulesPath}/../tests/common/auto-format-root-device.nix" + ]; + virtualisation = { + emptyDiskImages = [ 512 ]; + useBootLoader = true; + useEFIBoot = true; + # This requires to have access + # to a host Nix store as + # the new root device is /dev/vdb + # an empty 512MiB drive, containing no Nix store. + mountHostNixStore = true; + }; + + boot.loader.systemd-boot.enable = true; + + networking.interfaces.eth1.ipv4.addresses = [ + { address = "192.168.0.1"; prefixLength = 24; } + ]; + + environment.systemPackages = with pkgs; [ clevis tang cryptsetup ]; + services.tang = { + enable = true; + ipAddressAllow = [ "127.0.0.1/32" ]; + }; + }; + testScript = '' + start_all() + machine.wait_for_unit("sockets.target") + + with subtest("Check keys are generated"): + machine.wait_until_succeeds("curl -v http://127.0.0.1:7654/adv") + key = machine.wait_until_succeeds("tang-show-keys 7654") + + with subtest("Check systemd access list"): + machine.succeed("ping -c 3 192.168.0.1") + machine.fail("curl -v --connect-timeout 3 http://192.168.0.1:7654/adv") + + with subtest("Check basic encrypt and decrypt message"): + machine.wait_until_succeeds(f"""echo 'Hello World' | clevis encrypt tang '{{ "url": "http://127.0.0.1:7654", "thp":"{key}"}}' > /tmp/encrypted""") + decrypted = machine.wait_until_succeeds("clevis decrypt < /tmp/encrypted") + assert decrypted.strip() == "Hello World" + machine.wait_until_succeeds("tang-show-keys 7654") + + with subtest("Check encrypt and decrypt disk"): + machine.succeed("cryptsetup luksFormat --force-password --batch-mode /dev/vdb <<<'password'") + machine.succeed(f"""clevis luks bind -s1 -y -f -d /dev/vdb tang '{{ "url": "http://127.0.0.1:7654", "thp":"{key}" }}' <<< 'password' """) + clevis_luks = machine.succeed("clevis luks list -d /dev/vdb") + assert clevis_luks.strip() == """1: tang '{"url":"http://127.0.0.1:7654"}'""" + machine.succeed("clevis luks unlock -d /dev/vdb") + machine.succeed("find /dev/mapper -name 'luks*' -exec cryptsetup close {} +") + machine.succeed("clevis luks unlock -d /dev/vdb") + machine.succeed("find /dev/mapper -name 'luks*' -exec cryptsetup close {} +") + # without tang available, unlock should fail + machine.succeed("systemctl stop tangd.socket") + machine.fail("clevis luks unlock -d /dev/vdb") + machine.succeed("systemctl start tangd.socket") + + with subtest("Rotate server keys"): + machine.succeed("${pkgs.tang}/libexec/tangd-rotate-keys -d /var/lib/tang") + machine.succeed("clevis luks unlock -d /dev/vdb") + machine.succeed("find /dev/mapper -name 'luks*' -exec cryptsetup close {} +") + + with subtest("Test systemd service security"): + output = machine.succeed("systemd-analyze security tangd@.service") + machine.log(output) + assert output[-9:-1] == "SAFE :-}" + ''; +}) diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix deleted file mode 100644 index d803b09c198b..000000000000 --- a/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ stdenv, fetchurl, alsa-lib, bzip2, cairo, dpkg, freetype, gdk-pixbuf -, wrapGAppsHook, gtk2, gtk3, harfbuzz, jdk, lib, xorg -, libbsd, libjack2, libpng, ffmpeg -, libxkbcommon -, makeWrapper, pixman, autoPatchelfHook -, xdg-utils, zenity, zlib }: - -stdenv.mkDerivation rec { - pname = "bitwig-studio"; - version = "1.3.16"; - - src = fetchurl { - url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb"; - sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8"; - }; - - nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ]; - - unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root"; - - dontBuild = true; - dontWrapGApps = true; # we only want $gappsWrapperArgs here - - buildInputs = with xorg; [ - alsa-lib bzip2.out cairo freetype gdk-pixbuf gtk2 gtk3 harfbuzz libX11 libXau - libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb - libxkbfile pixman xcbutil xcbutilwm zlib - ]; - - installPhase = '' - mkdir -p $out - cp -r opt/bitwig-studio $out/libexec - - # Use NixOS versions of these libs instead of the bundled ones. - ( - cd $out/libexec/lib/bitwig-studio - rm libbz2.so* libxkbfile.so* libXcursor.so* libXau.so* \ - libXdmcp.so* libpng16.so* libxcb*.so* libharfbuzz.so* \ - libcairo.so* libfreetype.so* - ln -s ${bzip2.out}/lib/libbz2.so.1.0.6 libbz2.so.1.0 - ) - - # Use our OpenJDK instead of Bitwig’s bundled—and commercial!—one. - rm -rf $out/libexec/lib/jre - ln -s ${jdk.home}/jre $out/libexec/lib/jre - - mkdir -p $out/bin - ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio - - cp -r usr/share $out/share - substitute usr/share/applications/bitwig-studio.desktop \ - $out/share/applications/bitwig-studio.desktop \ - --replace /usr/bin/bitwig-studio $out/bin/bitwig-studio - ''; - - postFixup = '' - # Bitwig’s `libx11-windowing-system.so` has several problems: - # - # • has some old version of libxkbcommon linked statically (ಠ_ಠ), - # - # • hardcodes path to `/usr/share/X11/xkb`, - # - # • even if we redirected it with libredirect (after adding - # `eaccess()` to libredirect!), their version of libxkbcommon - # is unable to parse our xkeyboardconfig. Been there, done that. - # - # However, it suffices to override theirs with our libxkbcommon - # in LD_PRELOAD. :-) - - find $out -type f -executable \ - -not -name '*.so.*' \ - -not -name '*.so' \ - -not -path '*/resources/*' | \ - while IFS= read -r f ; do - wrapProgram $f \ - --suffix PATH : "${lib.makeBinPath [ ffmpeg zenity ]}" \ - --prefix PATH : "${lib.makeBinPath [ xdg-utils ]}" \ - "''${gappsWrapperArgs[@]}" \ - --set LD_PRELOAD "${libxkbcommon.out}/lib/libxkbcommon.so" || true - done - ''; - - meta = with lib; { - description = "A digital audio workstation"; - longDescription = '' - Bitwig Studio is a multi-platform music-creation system for - production, performance and DJing, with a focus on flexible - editing tools and a super-fast workflow. - ''; - homepage = "https://www.bitwig.com/"; - license = licenses.unfree; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ michalrus mrVanDalo ]; - }; -} diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix deleted file mode 100644 index 0d93284e2942..000000000000 --- a/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ fetchurl, bitwig-studio1, - pulseaudio }: - -bitwig-studio1.overrideAttrs (oldAttrs: rec { - pname = "bitwig-studio"; - version = "2.5"; - - src = fetchurl { - url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb"; - sha256 = "1zkiz36lhck3qvl0cp0dq6pwbv4lx4sh9wh0ga92kx5zhvbjm098"; - }; - - runtimeDependencies = [ - pulseaudio - ]; -}) diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix index a0a6ce024499..a9a9ab519db8 100644 --- a/pkgs/applications/audio/faustPhysicalModeling/default.nix +++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix @@ -1,13 +1,13 @@ { stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }: stdenv.mkDerivation rec { pname = "faustPhysicalModeling"; - version = "2.60.3"; + version = "2.68.1"; src = fetchFromGitHub { owner = "grame-cncm"; repo = "faust"; rev = version; - sha256 = "sha256-kaKDZKs/UsrqYlGmGgpSRcqN7FypxLCcIF72klovD4k="; + sha256 = "sha256-jD6/ZeS0xdtajCg5e95E0Jo2lfXOn4OIVf4LJgAfPbo="; }; buildInputs = [ faust2jaqt faust2lv2 ]; diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix index b277175ec102..72b1fe61296b 100644 --- a/pkgs/applications/audio/giada/default.nix +++ b/pkgs/applications/audio/giada/default.nix @@ -24,13 +24,13 @@ stdenv.mkDerivation rec { pname = "giada"; - version = "0.25.1"; + version = "0.26.0"; src = fetchFromGitHub { owner = "monocasual"; repo = pname; rev = version; - sha256 = "sha256-SW2qT+pMKTMBnkaL+Dg87tqutcLTqaY4nCeFfJjHIw4="; + sha256 = "sha256-q3Lu3UaEKfS7F59G6rPx+5cKcsaXk+xcdtJRIXPwVIs="; fetchSubmodules = true; }; diff --git a/pkgs/applications/audio/mbrola/default.nix b/pkgs/applications/audio/mbrola/default.nix index a21495027c86..afe3961bfa47 100644 --- a/pkgs/applications/audio/mbrola/default.nix +++ b/pkgs/applications/audio/mbrola/default.nix @@ -7,7 +7,7 @@ let meta = with lib; { license = licenses.agpl3Plus; maintainers = with maintainers; [ davidak ]; - platforms = platforms.linux; + platforms = platforms.all; description = "Speech synthesizer based on the concatenation of diphones"; homepage = "https://github.com/numediart/MBROLA"; }; diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix index 30e6ba9b2fa7..96757234e15a 100644 --- a/pkgs/applications/audio/songrec/default.nix +++ b/pkgs/applications/audio/songrec/default.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage rec { pname = "songrec"; - version = "0.3.2"; + version = "0.3.3"; src = fetchFromGitHub { owner = "marin-m"; repo = pname; rev = version; - sha256 = "sha256-cUiy8ApeUv1K8SEH4APMTvbieGTt4kZYhyB9iGJd/IY="; + hash = "sha256-K80uoMfwkyH/K8t6zdkq1ZYTpI0dAIvO2K2kzpzDoN0="; }; - cargoSha256 = "sha256-Tlq4qDp56PXP4N1UyHjtQoRgDrc/19vIv8uml/lAqqc="; + cargoHash = "sha256-Xmey+goHGTWMgKIJRzKMi9Y1bv677Yo2sfDaMauvZsM="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix index fb02345379b5..b9bd9c0b9634 100644 --- a/pkgs/applications/editors/eclipse/default.nix +++ b/pkgs/applications/editors/eclipse/default.nix @@ -13,11 +13,11 @@ let platform_major = "4"; - platform_minor = "28"; + platform_minor = "29"; year = "2023"; - month = "06"; #release month - buildmonth = "06"; #sometimes differs from release month - timestamp = "${year}${buildmonth}050440"; + month = "09"; #release month + buildmonth = "09"; #sometimes differs from release month + timestamp = "${year}${buildmonth}031000"; gtk = gtk3; arch = if stdenv.hostPlatform.isx86_64 then "x86_64" @@ -43,8 +43,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-0VFg68+M84SEPbLv2f3hNTK1tvUjN3u0X3DYFCMAFX8="; - aarch64 = "sha256-K1e1Q//X+R4FfY60eE4nPgEaF0wUkUIO/AFzzjIrGRY="; + x86_64 = "sha256-r9ZDt1D7Wt0Gp2JvW4Qwkw0Rj8F4IhUiNpVgm8FDdbY="; + aarch64 = "sha256-fyIvDY9jQfLwwNL4iaLb80X2eWaYqkLqtMd09yOQGo4="; }.${arch}; }; }; @@ -58,8 +58,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-wdZninKynNQ5o2nxyOxA7GDQ75tWs1TB2jh21O0fEpg="; - aarch64 = "sha256-5iAoMyesBjmdAy/eSMkgtuYv5rnXAEjgLb0yNX02mdw="; + x86_64 = "sha256-eO+fnoN0jZCURwmy6M0Okb9U4R3z8u1gzfm2mGp+Chc="; + aarch64 = "sha256-gN0wu7QOyVslvWum9SIkptADtQoX47UPentEupJBnQ8="; }.${arch}; }; }; @@ -73,8 +73,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-SYeCXWGSi8bPbqngGC+ZSBQaKyZrDTFeT+RLKC+ZsDk="; - aarch64 = "sha256-DN6fl7p+q96wsg9Mq6v3lTV0/7b87MFKTJSFuNrjLgs="; + x86_64 = "sha256-+0yzlB89v8KrhDfo5oqT0NKY/3hPk+Pkp2yGQ0silEg="; + aarch64 = "sha256-CvzDldzcmLzL7z9ZRxHQblmvkzza4wQYeDIZf6V6uXk="; }.${arch}; }; }; @@ -105,8 +105,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-QY16KSNZj6rq7YL+gOajI80XVtSdCh7MJGPscRJuf1o="; - aarch64 = "sha256-oZXx87dlLZ61ezwDD0WnV48ZMjcK0FkSGl83LhkJvmc="; + x86_64 = "sha256-Qp9yKSNWVPH8SX1D4PMfSv3XqiKAQCVXWFcSyQaMFmA="; + aarch64 = "sha256-cp8/BiewoNt4txhHmpiBTSXZ2sXXPu6zxuAYi24DF9I="; }.${arch}; }; }; @@ -120,8 +120,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-FC4zgx+75S9TJVp0azWgON/wNmoEy0074tj+DOdvNOg="; - aarch64 = "sha256-wnRQKqg1V4hrD9VAg6sw8yypB97Wcivt4cH6MFP4KPs="; + x86_64 = "sha256-TX8LbbBxRGWJ7lmf3tfK+Eux54dSapCsP7OmLfDw4Do="; + aarch64 = "sha256-AltrVmCuSTAoRgVsw98oNiR1HPpbYovz3UNGRXQgiVs="; }.${arch}; }; }; @@ -135,8 +135,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-eSYWuw6s3H1ht4zPDwjd4oZ49KhIn1OaywtwKHyS0wI="; - aarch64 = "sha256-9O0+S3G3vtjN1Vd4euf3gYRPPtrVxoBB+Uj7BlDAS5M="; + x86_64 = "sha256-kMEeY27Q97+5/pbl3of93p43dMXE1NQmuESCsK5sK3g="; + aarch64 = "sha256-sf+l/BjJ1VAyrc94oJUKYEInG7wEivbYEhpEXLi4C+w="; }.${arch}; }; }; @@ -150,8 +150,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-kJoXaSwsjArpe4tqeSkZiU4AcR5dLBvdsyU7tBTiTdc="; - aarch64 = "sha256-qydFxa0lQEwsxZQPlBXV/wiuXGuIcBHRasKZEmXJaOk="; + x86_64 = "sha256-K9+Up4nDXZCBKxzj2LX7F9ioPocHnxPdpHMQuc5oehs="; + aarch64 = "sha256-ibB3D+0UuX2c+Cbr0L5r8Rh6BfpmOyXNnSk13m2Q7Zk="; }.${arch}; }; }; @@ -165,8 +165,8 @@ in rec { fetchurl { url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-${arch}.tar.gz"; hash = { - x86_64 = "sha256-BAEXN6sx4f+BJnKz0lkPoAmRXnlbl5s5ETAyfE/AZak="; - aarch64 = "sha256-xayvsFAglBxAB49j2tnt52d6KX6LxMBRfx0wR/p8K70="; + x86_64 = "sha256-J+8UbkDiG9F+mDBZwr4HVGJWqeSBGMsl3EIRtA7+fK0="; + aarch64 = "sha256-+oYY37fBjEi2GJCZVaCsUyWwAhsPPD6nAstUDGmywwo="; }.${arch}; }; }; diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix index 2eb87c8394d8..ca736f80e758 100644 --- a/pkgs/applications/editors/eclipse/plugins.nix +++ b/pkgs/applications/editors/eclipse/plugins.nix @@ -255,12 +255,12 @@ rec { cdt = buildEclipseUpdateSite rec { name = "cdt-${version}"; # find current version at https://github.com/eclipse-cdt/cdt/releases - version = "11.2.0"; + version = "11.3.0"; src = fetchzip { stripRoot = false; url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip"; - hash = "sha256-YEmoAFzyGOyreg8FiL/gcwXROHT5VoLb1DfHhBp1tsQ="; + hash = "sha256-jmHiIohn8Ol0QhTCOVRStIAKmMzOPcQ5i5QNz6hKQ4M="; }; meta = with lib; { diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix index c4fd772d35a4..72ff8ae5d605 100644 --- a/pkgs/applications/editors/okteta/default.nix +++ b/pkgs/applications/editors/okteta/default.nix @@ -4,11 +4,11 @@ mkDerivation rec { pname = "okteta"; - version = "0.26.10"; + version = "0.26.13"; src = fetchurl { url = "mirror://kde/stable/okteta/${version}/src/${pname}-${version}.tar.xz"; - sha256 = "sha256-KKYU9+DDK0kXperKfgxuysqHsTGRq1NKtAT1Vps8M/o="; + sha256 = "0wlpv0rk4ys4rbcpf8lqpkm0yr5dxkaz60qk2lvm27w1s489ir8l"; }; nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ]; @@ -31,6 +31,7 @@ mkDerivation rec { meta = with lib; { license = licenses.gpl2; description = "A hex editor"; + homepage = "https://apps.kde.org/okteta/"; maintainers = with maintainers; [ peterhoeg bkchr ]; platforms = platforms.linux; }; diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py b/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py index 37414b073538..6d9fd4de0984 100755 --- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py +++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py @@ -2,34 +2,20 @@ #!nix-shell update-shell.nix -i python import json +import logging import subprocess from concurrent.futures import ThreadPoolExecutor -from os import environ -from os.path import dirname, join +import os +import sys +from os.path import join -configs = json.loads( - subprocess.check_output( - [ - "nvim", - "--headless", - "-u", - "NONE", - "+lua io.write(vim.json.encode(require('nvim-treesitter.parsers').get_parser_configs()))", - "+quit!", - ] - ) -) +log = logging.getLogger("vim-updater") -def generate_grammar(item): - lang, lock = item - cfg = configs.get(lang) - if not cfg: - return "" - +def generate_grammar(lang, rev, cfg): + """Generate grammar for a language""" info = cfg["install_info"] url = info["url"] - rev = lock["revision"] generated = f""" {lang} = buildGrammar {{ language = "{lang}"; @@ -56,7 +42,24 @@ def generate_grammar(item): return generated -def update_grammars(lockfile: str): +def update_grammars(nvim_treesitter_dir: str): + """ + The lockfile contains just revisions so we start neovim to dump the + grammar information in a better format + """ + # the lockfile + cmd = [ + "nvim", + "--headless", + "-u", + "NONE", + "--cmd", + f"set rtp^={nvim_treesitter_dir}", + "+lua io.write(vim.json.encode(require('nvim-treesitter.parsers').get_parser_configs()))", + "+quit!", + ] + log.debug("Running command: %s", ' '.join(cmd)) + configs = json.loads(subprocess.check_output(cmd)) generated_file = """# generated by pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py @@ -68,14 +71,27 @@ def update_grammars(lockfile: str): { """ - for generated in ThreadPoolExecutor().map(generate_grammar, lockfile.items()): - generated_file += generated - generated_file += "}\n" - generated_file += "}\n" - open(join(dirname(__file__), "generated.nix"), "w").write(generated_file) + lockfile_path = os.path.join(nvim_treesitter_dir, "lockfile.json") + log.debug("Opening %s", lockfile_path) + with open(lockfile_path) as lockfile_fd: + lockfile = json.load(lockfile_fd) + + def _generate_grammar(item): + lang, lock = item + cfg = configs.get(lang) + if not cfg: + return "" + return generate_grammar(lang, lock["revision"], cfg) + + for generated in ThreadPoolExecutor(max_workers=5).map( + _generate_grammar, lockfile.items() + ): + generated_file += generated + generated_file += "}\n" + return generated_file if __name__ == "__main__": - # TODO add lockfile - update_grammars() + generated = update_grammars(sys.args[1]) + open(join(os.path.dirname(__file__), "generated.nix"), "w").write(generated) diff --git a/pkgs/applications/editors/vim/plugins/update.py b/pkgs/applications/editors/vim/plugins/update.py index 438a231ec47d..b658ca7e2bd9 100755 --- a/pkgs/applications/editors/vim/plugins/update.py +++ b/pkgs/applications/editors/vim/plugins/update.py @@ -23,11 +23,12 @@ import os import logging import textwrap import json +import subprocess from typing import List, Tuple from pathlib import Path -log = logging.getLogger() +log = logging.getLogger("vim-updater") sh = logging.StreamHandler() formatter = logging.Formatter("%(name)s:%(levelname)s: %(message)s") @@ -39,15 +40,14 @@ ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe import pluginupdate import importlib from pluginupdate import run_nix_expr, PluginDesc -from treesitter import update_grammars +import treesitter HEADER = ( "# GENERATED by ./pkgs/applications/editors/vim/plugins/update.py. Do not edit!" ) -NIXPKGS_NVIMTREESITTER_FOLDER = \ - "pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix" +NIXPKGS_NVIMTREESITTER_FOLDER = "pkgs/applications/editors/vim/plugins/nvim-treesitter" class VimEditor(pluginupdate.Editor): @@ -58,8 +58,7 @@ class VimEditor(pluginupdate.Editor): ): sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower()) nvim_treesitter_rev = pluginupdate.run_nix_expr( - "(import { }).vimPlugins.nvim-treesitter.src.rev", - self.nixpkgs + "(import { }).vimPlugins.nvim-treesitter.src.rev", self.nixpkgs ) with open(outfile, "w+") as f: @@ -78,7 +77,8 @@ class VimEditor(pluginupdate.Editor): content = self.plugin2nix(pdesc, plugin) f.write(content) if ( - plugin.name == "nvim-treesitter" and plugin.commit != nvim_treesitter_rev + plugin.name == "nvim-treesitter" + and plugin.commit != nvim_treesitter_rev ): self.nvim_treesitter_updated = True f.write("\n}\n") @@ -126,13 +126,19 @@ class VimEditor(pluginupdate.Editor): def update(self, args): pluginupdate.update_plugins(self, args) + # TODO this should probably be skipped when running outside a nixpkgs checkout if self.nvim_treesitter_updated: print("updating nvim-treesitter grammars") - nvim_treesitter_dir = ROOT.joinpath("nvim-treesitter") - lockfile = os.path.join(args.nixpkgs.join(NIXPKGS_NVIMTREESITTER_FOLDER, "lockfile.json")) - lockfile = json.load(open(lockfile)) + cmd = [ + "nix", "build", + "vimPlugins.nvim-treesitter.src", "-f", self.nixpkgs + , "--print-out-paths" + ] + log.debug("Running command: %s", " ".join(cmd)) + nvim_treesitter_dir = subprocess.check_output(cmd, text=True, timeout=90).strip() - nvim_treesitter.update_grammars(lockfile) + generated = treesitter.update_grammars(nvim_treesitter_dir) + open(os.path.join(args.nixpkgs, "generated.nix"), "w").write(generated) if self.nixpkgs_repo: index = self.nixpkgs_repo.index @@ -147,13 +153,14 @@ class VimEditor(pluginupdate.Editor): def main(): - global luaPlugins log.debug(f"Loading from {ROOT}/../get-plugins.nix") with open(f"{ROOT}/../get-plugins.nix") as f: GET_PLUGINS = f.read() - editor = VimEditor("vim", Path("pkgs/applications/editors/vim/plugins"), GET_PLUGINS) + editor = VimEditor( + "vim", Path("pkgs/applications/editors/vim/plugins"), GET_PLUGINS + ) editor.run() diff --git a/pkgs/applications/editors/vim/plugins/updater.nix b/pkgs/applications/editors/vim/plugins/updater.nix index d17247b3f8af..afa245d9be9e 100644 --- a/pkgs/applications/editors/vim/plugins/updater.nix +++ b/pkgs/applications/editors/vim/plugins/updater.nix @@ -4,17 +4,12 @@ , python3Packages , lib , nix-prefetch-git +, nurl # optional , vimPlugins , neovim }: -let - my_neovim = neovim.override { - configure.packages.all.start = [ vimPlugins.nvim-treesitter ]; - }; - -in buildPythonApplication { format = "other"; pname = "vim-plugins-updater"; @@ -39,7 +34,8 @@ buildPythonApplication { cp ${../../../../../maintainers/scripts/pluginupdate.py} $out/lib/pluginupdate.py # wrap python scripts - makeWrapperArgs+=( --prefix PATH : "${lib.makeBinPath [ nix nix-prefetch-git my_neovim ]}" --prefix PYTHONPATH : "$out/lib" ) + makeWrapperArgs+=( --prefix PATH : "${lib.makeBinPath [ + nix nix-prefetch-git neovim nurl ]}" --prefix PYTHONPATH : "$out/lib" ) wrapPythonPrograms ''; diff --git a/pkgs/applications/gis/gmt/dcw.nix b/pkgs/applications/gis/gmt/dcw.nix index 1bf08aedd267..8c26be6bb2d4 100644 --- a/pkgs/applications/gis/gmt/dcw.nix +++ b/pkgs/applications/gis/gmt/dcw.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { pname = "dcw-gmt"; - version = "2.1.1"; + version = "2.1.2"; src = fetchurl { url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz"; - sha256 = "sha256-q3LIJTB2OAyEd6EiU3C8QfSv+BHCjS9k11BS/z2QA68="; + sha256 = "sha256-S7hA0HXIuj4UrrQc8XwkI2v/eHVmMU+f91irmXd0XZk="; }; installPhase = '' diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix deleted file mode 100644 index 82008de9576b..000000000000 --- a/pkgs/applications/misc/simplenote/default.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ autoPatchelfHook -, dpkg -, fetchurl -, makeDesktopItem -, makeWrapper -, lib -, stdenv -, udev -, alsa-lib -, mesa -, nss -, nspr -, systemd -, wrapGAppsHook -, xorg -}: - -let - inherit (stdenv.hostPlatform) system; - - throwSystem = throw "Unsupported system: ${system}"; - - pname = "simplenote"; - - version = "2.9.0"; - - sha256 = { - x86_64-linux = "sha256-uwd9fYqZepJ/BBttprqkJhswqMepGsHDTd5Md9gjI68="; - }.${system} or throwSystem; - - meta = with lib; { - description = "The simplest way to keep notes"; - homepage = "https://github.com/Automattic/simplenote-electron"; - license = licenses.gpl2; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - maintainers = with maintainers; [ - kiwi - ]; - platforms = [ - "x86_64-linux" - ]; - }; - - linux = stdenv.mkDerivation rec { - inherit pname version meta; - - src = fetchurl { - url = "https://github.com/Automattic/simplenote-electron/releases/download/v${version}/Simplenote-linux-${version}-amd64.deb"; - inherit sha256; - }; - - desktopItem = makeDesktopItem { - categories = [ "Development" ]; - comment = "Simplenote for Linux"; - desktopName = "Simplenote"; - exec = "simplenote %U"; - icon = "simplenote"; - name = "simplenote"; - startupNotify = true; - }; - - dontBuild = true; - dontConfigure = true; - dontPatchELF = true; - dontWrapGApps = true; - - # TODO: migrate off autoPatchelfHook and use nixpkgs' electron - nativeBuildInputs = [ - autoPatchelfHook - dpkg - makeWrapper - wrapGAppsHook - ]; - - buildInputs = [ - alsa-lib - mesa - xorg.libXScrnSaver - xorg.libXtst - nss - nspr - stdenv.cc.cc - systemd - ]; - - unpackPhase = "dpkg-deb -x $src ."; - - installPhase = '' - mkdir -p "$out/bin" - cp -R "opt" "$out" - cp -R "usr/share" "$out/share" - chmod -R g-w "$out" - - mkdir -p "$out/share/applications" - cp "${desktopItem}/share/applications/"* "$out/share/applications" - ''; - - runtimeDependencies = [ - (lib.getLib udev) - ]; - - postFixup = '' - makeWrapper $out/opt/Simplenote/simplenote $out/bin/simplenote \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }" \ - "''${gappsWrapperArgs[@]}" - ''; - }; - -in -linux diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 562fbbbb3061..c527731bb692 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,4 +1,5 @@ { stdenv, lib, fetchurl, fetchpatch +, fetchzip, zstd , buildPackages , pkgsBuildBuild , pkgsBuildTarget @@ -152,9 +153,30 @@ let inherit (upstream-info) version; inherit packageName buildType buildPath; - src = fetchurl { + src = fetchzip { + name = "chromium-${version}.tar.zstd"; url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; inherit (upstream-info) sha256; + + nativeBuildInputs = [ zstd ]; + + postFetch = '' + echo removing unused code from tarball to stay under hydra limit + rm -r $out/third_party/{rust-src,llvm} + + echo moving remains out of \$out + mv $out source + + echo recompressing final contents into new tarball + # try to make a deterministic tarball + tar \ + --use-compress-program "zstd -T$NIX_BUILD_CORES" \ + --sort name \ + --mtime 1970-01-01 \ + --owner=root --group=root \ + --numeric-owner --mode=go=rX,u+rw,a-s \ + -cf $out source + ''; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index b180e08add9b..3086f82c9c48 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -8,7 +8,7 @@ version = "2023-08-01"; }; }; - sha256 = "1wf0j189cxpayy6ffmj5j6h5yg3amivryilimjc2ap0jkyj4xrbi"; + sha256 = "0c3adrrgpnhm8g1546ask9pf17qj1sjgb950mj0rv4snxvddi75j"; sha256bin64 = "11w1di146mjb9ql30df9yk9x4b9amc6514jzyfbf09mqsrw88dvr"; version = "117.0.5938.22"; }; @@ -21,7 +21,7 @@ version = "2023-08-10"; }; }; - sha256 = "1z01b6w4sgndrlcd26jgimk3rhv3wzpn67nv1fd5ln7dwfwkyq20"; + sha256 = "16dq27lsywrn2xlgr5g46gdv15p30sihfamli4vkv3zxzfxdjisv"; sha256bin64 = "11y09hsy7y1vg65xfilq44ffsmn15dqy80fa57psj1kin4a52v2x"; version = "118.0.5966.0"; }; @@ -41,7 +41,7 @@ version = "2023-08-10"; }; }; - sha256 = "0gcrnvm3ar7x0fv38kjvdzgb8lflx1sckcqy89yawgfy6jkh1vj9"; + sha256 = "1g8rllmnmhmmpjzrmi3cww0nszxicq0kim2wd0l0ip2mzk2p8qlp"; sha256bin64 = "1bq170l0g9yq17x6xlg6fjar6gv3hdi0zijwmx4s02pmw6727484"; version = "118.0.5993.70"; }; @@ -58,7 +58,7 @@ sha256 = "0k6684cy1ks6yba2bdz17g244f05qy9769cvis4h2jzhgbf5rysh"; }; }; - sha256 = "0gcrnvm3ar7x0fv38kjvdzgb8lflx1sckcqy89yawgfy6jkh1vj9"; + sha256 = "1g8rllmnmhmmpjzrmi3cww0nszxicq0kim2wd0l0ip2mzk2p8qlp"; sha256bin64 = "1bq170l0g9yq17x6xlg6fjar6gv3hdi0zijwmx4s02pmw6727484"; version = "118.0.5993.70"; }; diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix index 80772c26ecc8..743d73f7ce7c 100644 --- a/pkgs/applications/networking/flexget/default.nix +++ b/pkgs/applications/networking/flexget/default.nix @@ -23,7 +23,7 @@ let in python.pkgs.buildPythonApplication rec { pname = "flexget"; - version = "3.9.11"; + version = "3.9.13"; format = "pyproject"; # Fetch from GitHub in order to use `requirements.in` @@ -31,7 +31,7 @@ python.pkgs.buildPythonApplication rec { owner = "Flexget"; repo = "Flexget"; rev = "refs/tags/v${version}"; - hash = "sha256-0ONjRIMSfHKvaO05hhurfnS/waNNRZEVq7BodeV00kU="; + hash = "sha256-7qHJqxKGHgj/Th513EfFbk5CLEAX24AtWJF2uS1dRLs="; }; postPatch = '' diff --git a/pkgs/applications/version-management/silver-platter/default.nix b/pkgs/applications/version-management/silver-platter/default.nix new file mode 100644 index 000000000000..1e5720f0d0ab --- /dev/null +++ b/pkgs/applications/version-management/silver-platter/default.nix @@ -0,0 +1,44 @@ +{ buildPythonApplication +, lib +, fetchFromGitHub +, setuptools +, setuptools-rust +, rustPlatform +, cargo +, rustc +, breezy +, dulwich +, jinja2 +, pyyaml +, ruamel-yaml +}: + +buildPythonApplication rec { + pname = "silver-platter"; + version = "0.5.12"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jelmer"; + repo = "silver-platter"; + rev = version; + hash = "sha256-QkTT9UcJuGDAwpp/CtXobPvfTYQzFakBR72MhF//Bpo="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-QLnKu9D23FVp1jCSuxN3odPZ1ToAZ6i/FNS8BkmNuQw="; + }; + + propagatedBuildInputs = [ setuptools breezy dulwich jinja2 pyyaml ruamel-yaml ]; + nativeBuildInputs = [ setuptools-rust rustPlatform.cargoSetupHook cargo rustc ]; + + meta = with lib; { + description = "Automate the creation of merge proposals for scriptable changes"; + homepage = "https://jelmer.uk/code/silver-platter"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ lukegb ]; + mainProgram = "svp"; + }; +} diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git index 018cf692b880..feb6c9e30535 100755 --- a/pkgs/build-support/fetchgit/nix-prefetch-git +++ b/pkgs/build-support/fetchgit/nix-prefetch-git @@ -257,9 +257,15 @@ make_deterministic_repo(){ cd "$repo" # Remove files that contain timestamps or otherwise have non-deterministic # properties. - rm -rf .git/logs/ .git/hooks/ .git/index .git/FETCH_HEAD .git/ORIG_HEAD \ - .git/refs/remotes/origin/HEAD .git/config - + if [ -f .git ]; then + local dotgit_content=$(<.git) + local dotgit_dir="${dotgit_content#gitdir: }" + else + local dotgit_dir=".git" + fi + pushd "$dotgit_dir" + rm -rf logs/ hooks/ index FETCH_HEAD ORIG_HEAD refs/remotes/origin/HEAD config + popd # Remove all remote branches. git branch -r | while read -r branch; do clean_git branch -rD "$branch" @@ -277,7 +283,7 @@ make_deterministic_repo(){ # Do a full repack. Must run single-threaded, or else we lose determinism. clean_git config pack.threads 1 clean_git repack -A -d -f - rm -f .git/config + rm -f "$dotgit_dir/config" # Garbage collect unreferenced objects. # Note: --keep-largest-pack prevents non-deterministic ordering of packs @@ -323,7 +329,7 @@ clone_user_rev() { find "$dir" -name .git -print0 | xargs -0 rm -rf else find "$dir" -name .git | while read -r gitdir; do - make_deterministic_repo "$(readlink -f "$gitdir/..")" + make_deterministic_repo "$(readlink -f "$(dirname "$gitdir")")" done fi } diff --git a/pkgs/by-name/al/algol68g/package.nix b/pkgs/by-name/al/algol68g/package.nix index a5dbf958e8a2..1622952b3ce5 100644 --- a/pkgs/by-name/al/algol68g/package.nix +++ b/pkgs/by-name/al/algol68g/package.nix @@ -1,29 +1,44 @@ { lib , stdenv , fetchurl +, curl +, gmp , gsl +, mpfr +, ncurses , plotutils , postgresql +, pkg-config , withPDFDoc ? true }: stdenv.mkDerivation (finalAttrs: { pname = "algol68g"; - version = "3.3.24"; + version = "3.4.2"; src = fetchurl { url = "https://jmvdveer.home.xs4all.nl/algol68g-${finalAttrs.version}.tar.gz"; - hash = "sha256-vSbj3YlyCs4bADpDqxAkcSC1VsoQZ2j+jIKe577WtDU="; + hash = "sha256-hKiRMU98sZhGgHhjgtwUNSIv2iPgb4T+dgYw58IGK8Q="; }; - outputs = [ "out" "man" ] ++ lib.optional withPDFDoc "doc"; + outputs = [ "out" "man" ] ++ lib.optionals withPDFDoc [ "doc" ]; + + nativeBuildInputs = [ + pkg-config + ]; buildInputs = [ + curl + mpfr + ncurses + gmp gsl plotutils postgresql ]; + strictDeps = true; + postInstall = let pdfdoc = fetchurl { url = "https://jmvdveer.home.xs4all.nl/learning-algol-68-genie.pdf"; @@ -47,8 +62,8 @@ stdenv.mkDerivation (finalAttrs: { scientific library and PostgreSQL. ''; license = lib.licenses.gpl3Plus; - maintainers = with lib.maintainers; [ AndersonTorres ]; mainProgram = "a68g"; + maintainers = with lib.maintainers; [ AndersonTorres ]; platforms = lib.platforms.unix; }; }) diff --git a/pkgs/by-name/cb/cbmbasic/package.nix b/pkgs/by-name/cb/cbmbasic/package.nix new file mode 100644 index 000000000000..a7d6d841012f --- /dev/null +++ b/pkgs/by-name/cb/cbmbasic/package.nix @@ -0,0 +1,65 @@ +{ lib +, stdenv +, fetchFromGitHub +, runCommand +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "cbmbasic"; + version = "unstable-2022-12-18"; + + src = fetchFromGitHub { + owner = "mist64"; + repo = "cbmbasic"; + rev = "352a313313dd0a15a47288c8f8031b54ac8c92a2"; + hash = "sha256-aA/ivRap+aDd2wi6KWXam9eP/21lOn6OWTeZ4i/S9Bs="; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin/ + mv cbmbasic $out/bin/ + + runHook postInstall + ''; + + # NOTE: cbmbasic uses microsoft style linebreaks `\r\n`, and testing has to + # accommodate that, else you get very cryptic diffs + passthru = { + tests.run = runCommand "cbmbasic-test-run" { + nativeBuildInputs = [finalAttrs.finalPackage]; + } '' + echo '#!${lib.getExe finalAttrs.finalPackage}' > helloI.bas; + echo 'PRINT"Hello, World!"' >> helloI.bas; + chmod +x helloI.bas + + diff -U3 --color=auto <(./helloI.bas) <(echo -e "Hello, World!\r"); + + echo '#!/usr/bin/env cbmbasic' > hello.bas; + echo 'PRINT"Hello, World!"' >> hello.bas; + chmod +x hello.bas + + diff -U3 --color=auto <(cbmbasic ./hello.bas) <(echo -e "Hello, World!\r"); + + touch $out; + ''; + }; + + meta = with lib; { + description = "Portable version of Commodore's version of Microsoft BASIC 6502 as found on the Commodore 64"; + longDescription = '' + "Commodore BASIC" (cbmbasic) is a 100% compatible version of Commodore's + version of Microsoft BASIC 6502 as found on the Commodore 64. You can use + it in interactive mode or pass a BASIC file as a command line parameter. + + This source does not emulate 6502 code; all code is completely native. On + a 1 GHz CPU you get about 1000x speed compared to a 1 MHz 6502. + ''; + homepage = "https://github.com/mist64/cbmbasic"; + license = licenses.bsd2; + maintainers = [ maintainers.cafkafk ]; + mainProgram = "cbmbasic"; + platforms = platforms.all; + }; +}) diff --git a/pkgs/by-name/mo/modern-cpp-kafka/package.nix b/pkgs/by-name/mo/modern-cpp-kafka/package.nix new file mode 100644 index 000000000000..daa3396255bc --- /dev/null +++ b/pkgs/by-name/mo/modern-cpp-kafka/package.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, boost +, rdkafka +, gtest +, rapidjson +}: + +stdenv.mkDerivation rec { + pname = "modern-cpp-kafka"; + version = "2023.03.07"; + + src = fetchFromGitHub { + repo = "modern-cpp-kafka"; + owner = "morganstanley"; + rev = "v${version}"; + hash = "sha256-7hkwM1YbveQpDRqwMZ3MXM88LTwlAT7uB8NL0t409To="; + }; + + patches = [ + (fetchpatch { + name = "fix-avoid-overwriting-library-paths.patch"; + url = "https://github.com/morganstanley/modern-cpp-kafka/pull/221.patch"; + hash = "sha256-UsQcMvJoRTn5kgXhmXOyqfW3n59kGKO596U2WjtdqAY="; + }) + (fetchpatch { + name = "add-pkg-config-cmake-config.patch"; + url = "https://github.com/morganstanley/modern-cpp-kafka/pull/222.patch"; + hash = "sha256-OjoSttnpgEwSZjCVKc888xJb5f1Dulu/rQqoGmqXNM4="; + }) + ]; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ boost ]; + propagatedBuildInputs = [ rdkafka ]; + + cmakeFlags = [ + "-DLIBRDKAFKA_INCLUDE_DIR=${rdkafka.out}/include" + "-DGTEST_LIBRARY_DIR=${gtest.out}/lib" + "-DGTEST_INCLUDE_DIR=${gtest.dev}/include" + "-DRAPIDJSON_INCLUDE_DIRS=${rapidjson.out}/include" + "-DCMAKE_CXX_FLAGS=-Wno-uninitialized" + ]; + + checkInputs = [ gtest rapidjson ]; + + meta = with lib; { + description = "A C++ API for Kafka clients (i.e. KafkaProducer, KafkaConsumer, AdminClient)"; + homepage = "https://github.com/morganstanley/modern-cpp-kafka"; + license = licenses.asl20; + maintainers = with maintainers; [ ditsuke ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/by-name/wa/waycheck/package.nix b/pkgs/by-name/wa/waycheck/package.nix index b736f0c20edc..edda82b7f7af 100644 --- a/pkgs/by-name/wa/waycheck/package.nix +++ b/pkgs/by-name/wa/waycheck/package.nix @@ -10,16 +10,16 @@ , wrapGAppsHook }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "waycheck"; - version = "0.1.3"; + version = "1.0.0"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "serebit"; repo = "waycheck"; - rev = "v${version}"; - hash = "sha256-DbXc1Q/ZIqlIMocFld3fOmUp44rU3fEzazHKSDdqMNs="; + rev = "v${finalAttrs.version}"; + hash = "sha256-oGpiFwbPBQHF0wRHliltU8B+QmClcoFfbjpAYzOFPqs="; }; nativeBuildInputs = [ @@ -51,8 +51,8 @@ stdenv.mkDerivation rec { description = "Simple GUI that displays the protocols implemented by a Wayland compositor"; homepage = "https://gitlab.freedesktop.org/serebit/waycheck"; license = licenses.asl20; - maintainers = with maintainers; [ julienmalka ]; + maintainers = with maintainers; [ julienmalka federicoschonborn ]; mainProgram = "waycheck"; platforms = platforms.linux; }; -} +}) diff --git a/pkgs/data/misc/xorg-rgb/default.nix b/pkgs/data/misc/xorg-rgb/default.nix index 205fcabc7131..646f4ae491b0 100644 --- a/pkgs/data/misc/xorg-rgb/default.nix +++ b/pkgs/data/misc/xorg-rgb/default.nix @@ -1,12 +1,12 @@ { lib, stdenv, fetchurl, pkg-config, xorgproto }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "rgb"; - version = "1.0.6"; + version = "1.1.0"; src = fetchurl { - url = "https://xorg.freedesktop.org/archive/individual/app/rgb-${version}.tar.bz2"; - sha256 = "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv"; + url = "https://xorg.freedesktop.org/archive/individual/app/rgb-${finalAttrs.version}.tar.xz"; + hash = "sha256-/APX9W5bKmF2aBZ/iSeUjM5U+TCX58zZ8FYHf0ee03s="; }; nativeBuildInputs = [ pkg-config ]; @@ -15,8 +15,8 @@ stdenv.mkDerivation rec { meta = with lib; { description = "X11 colorname to RGB mapping database"; license = licenses.mit; - maintainers = [ maintainers.raskin ]; + maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; homepage = "https://xorg.freedesktop.org/"; }; -} +}) diff --git a/pkgs/development/compilers/gambit/build.nix b/pkgs/development/compilers/gambit/build.nix index 33391c156969..60b9fb792d2f 100644 --- a/pkgs/development/compilers/gambit/build.nix +++ b/pkgs/development/compilers/gambit/build.nix @@ -5,7 +5,8 @@ stampYmd ? 0, stampHms ? 0, gambit-support, optimizationSetting ? "-O1", - gambit-params ? pkgs.gambit-support.stable-params }: + gambit-params ? pkgs.gambit-support.stable-params, + rev ? git-version }: # Note that according to a benchmark run by Marc Feeley on May 2018, # clang is 10x (with default settings) to 15% (with -O2) slower than GCC at compiling @@ -30,6 +31,11 @@ gccStdenv.mkDerivation rec { inherit src version git-version; bootstrap = gambit-support.gambit-bootstrap; + passthru = { + inherit src version git-version rev stampYmd stampHms optimizationSetting openssl; + }; + + nativeBuildInputs = [ git autoconf ]; # TODO: if/when we can get all the library packages we depend on to have static versions, @@ -47,6 +53,7 @@ gccStdenv.mkDerivation rec { "--enable-c-opt=${optimizationSetting}" "--enable-c-opt-rts=-O2" "--enable-gcc-opts" + "--enable-trust-c-tco" "--enable-shared" "--enable-absolute-shared-libs" # Yes, NixOS will want an absolute path, and fix it. "--enable-openssl" @@ -70,6 +77,9 @@ gccStdenv.mkDerivation rec { # "--enable-char-size=1" # default is 4 # "--enable-march=native" # Nope, makes it not work on machines older than the builder ] ++ gambit-params.extraOptions + # TODO: pick an appropriate architecture to optimize on on x86-64? + # https://gcc.gnu.org/onlinedocs/gcc-4.8.4/gcc/i386-and-x86-64-Options.html#i386-and-x86-64-Options + # ++ lib.optional pkgs.stdenv.isx86_64 "--enable-march=core-avx2" # Do not enable poll on darwin due to https://github.com/gambit/gambit/issues/498 ++ lib.optional (!gccStdenv.isDarwin) "--enable-poll"; diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix index cb4f5f9501ca..a0f95192cbfc 100644 --- a/pkgs/development/compilers/gambit/default.nix +++ b/pkgs/development/compilers/gambit/default.nix @@ -2,7 +2,7 @@ callPackage ./build.nix rec { version = "4.9.5"; - git-version = version; + git-version = "v${version}"; src = fetchurl { url = "https://gambitscheme.org/4.9.5/gambit-v4_9_5.tgz"; sha256 = "sha256-4o74218OexFZcgwVAFPcq498TK4fDlyDiUR5cHP4wdw="; diff --git a/pkgs/development/compilers/gambit/gambit-support.nix b/pkgs/development/compilers/gambit/gambit-support.nix index 6e42b9252f24..1209ca10aa16 100644 --- a/pkgs/development/compilers/gambit/gambit-support.nix +++ b/pkgs/development/compilers/gambit/gambit-support.nix @@ -13,16 +13,17 @@ rec { --replace "$(grep '^PACKAGE_VERSION=.*$' configure)" 'PACKAGE_VERSION="v${git-version}"' \ --replace "$(grep '^PACKAGE_STRING=.*$' configure)" 'PACKAGE_STRING="Gambit v${git-version}"' ; substituteInPlace include/makefile.in \ - --replace "echo > stamp.h;" "(echo '#define ___STAMP_VERSION \"${git-version}\"'; echo '#define ___STAMP_YMD ${toString stampYmd}'; echo '#define ___STAMP_HMS ${toString stampHms}';) > stamp.h;"; + --replace "\$\$(\$(GIT) describe --tag --always | sed 's/-bootstrap\$\$//')" "v${git-version}" \ + --replace "echo > stamp.h;" "(echo '#define ___STAMP_VERSION \"v${git-version}\"'; echo '#define ___STAMP_YMD ${toString stampYmd}'; echo '#define ___STAMP_HMS ${toString stampHms}';) > stamp.h;"; + grep -i ' version=\|echo..#define ___STAMP_VERSION' include/makefile.in # XXX DEBUG -- REMOVE ME ''; modules = true; - #extraOptions = []; - extraOptions = ["--enable-trust-c-tco" "CFLAGS=-foptimize-sibling-calls"]; + extraOptions = ["CFLAGS=-foptimize-sibling-calls"]; }; unstable-params = stable-params // { stable = false; - extraOptions = ["--enable-trust-c-tco"]; # "CFLAGS=-foptimize-sibling-calls" not necessary in latest unstable + extraOptions = []; # "CFLAGS=-foptimize-sibling-calls" not necessary in latest unstable }; export-gambopt = params : "export GAMBOPT=${params.buildRuntimeOptions} ;"; diff --git a/pkgs/development/compilers/gambit/unstable.nix b/pkgs/development/compilers/gambit/unstable.nix index 092cbdb72483..597cbedb13e3 100644 --- a/pkgs/development/compilers/gambit/unstable.nix +++ b/pkgs/development/compilers/gambit/unstable.nix @@ -1,15 +1,16 @@ { callPackage, fetchFromGitHub, gambit-support }: -callPackage ./build.nix { - version = "unstable-2023-08-06"; - git-version = "4.9.5-5-gf1fbe9aa"; - stampYmd = 20230806; - stampHms = 195822; +callPackage ./build.nix rec { + version = "unstable-2023-10-07"; + git-version = "4.9.5-59-g342399c7"; + stampYmd = 20231007; + stampHms = 170745; + rev = "342399c736ec560c0ff4faeaeb9599b45633f26c"; src = fetchFromGitHub { owner = "gambit"; repo = "gambit"; - rev = "f1fbe9aa0f461e89f2a91bc050c1373ee6d66482"; - sha256 = "0b0gd6cwj8zxwcqglpsnmanysiq4mvma2mrgdfr6qy99avhbhzxm"; + inherit rev; + sha256 = "121pj6lxihjjnfq33lq4m5hi461xbs9f41qd4l46556dr15cyf8f"; }; gambit-params = gambit-support.unstable-params; } diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix index 227f11b7c584..9ce26d0b21b2 100644 --- a/pkgs/development/compilers/gerbil/build.nix +++ b/pkgs/development/compilers/gerbil/build.nix @@ -1,8 +1,11 @@ { pkgs, gccStdenv, lib, coreutils, - openssl, zlib, sqlite, libxml2, libyaml, libmysqlclient, lmdb, leveldb, postgresql, - version, git-version, + openssl, zlib, sqlite, + version, git-version, src, gambit-support, - gambit ? pkgs.gambit, gambit-params ? pkgs.gambit-support.stable-params, src }: + gambit-git-version, + gambit-stampYmd, + gambit-stampHms, + gambit-params }: # We use Gambit, that works 10x better with GCC than Clang. See ../gambit/build.nix let stdenv = gccStdenv; in @@ -12,16 +15,13 @@ stdenv.mkDerivation rec { inherit version; inherit src; - buildInputs_libraries = [ openssl zlib sqlite libxml2 libyaml libmysqlclient lmdb leveldb postgresql ]; + buildInputs_libraries = [ openssl zlib sqlite ]; # TODO: either fix all of Gerbil's dependencies to provide static libraries, # or give up and delete all tentative support for static libraries. #buildInputs_staticLibraries = map makeStaticLibraries buildInputs_libraries; - buildInputs = [ gambit ] - ++ buildInputs_libraries; # ++ buildInputs_staticLibraries; - - env.NIX_CFLAGS_COMPILE = "-I${libmysqlclient}/include/mysql -L${libmysqlclient}/lib/mysql"; + buildInputs = buildInputs_libraries; postPatch = '' echo '(define (gerbil-version-string) "v${git-version}")' > src/gerbil/runtime/gx-version.scm ; @@ -29,6 +29,17 @@ stdenv.mkDerivation rec { grep -Fl '#!/usr/bin/env' `find . -type f -executable` | while read f ; do substituteInPlace "$f" --replace '#!/usr/bin/env' '#!${coreutils}/bin/env' ; done ; + substituteInPlace ./configure --replace 'set -e' 'set -e ; git () { echo "v${git-version}" ;}' ; + substituteInPlace ./src/build/build-version.scm --replace "with-exception-catcher" '(lambda _ "v${git-version}")' ; + #rmdir src/gambit + #cp -a ${pkgs.gambit-unstable.src} ./src/gambit + chmod -R u+w ./src/gambit + ( cd src/gambit ; ${gambit-params.fixStamp gambit-git-version gambit-stampYmd gambit-stampHms} ) + for f in src/bootstrap/gerbil/compiler/driver__0.scm \ + src/build/build-libgerbil.ss \ + src/gerbil/compiler/driver.ss ; do + substituteInPlace "$f" --replace '"gcc"' '"${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}gcc"' ; + done ''; ## TODO: make static compilation work. @@ -40,26 +51,42 @@ stdenv.mkDerivation rec { # OPENSSL_LIBSSL=${makeStaticLibraries openssl}/lib/libssl.a # MISSING! # ZLIB=${makeStaticLibraries zlib}/lib/libz.a # SQLITE=${makeStaticLibraries sqlite}/lib/sqlite.a # MISSING! -# LIBXML2=${makeStaticLibraries libxml2}/lib/libxml2.a # MISSING! -# YAML=${makeStaticLibraries libyaml}/lib/libyaml.a # MISSING! -# MYSQL=${makeStaticLibraries libmysqlclient}/lib/mariadb/libmariadb.a -# LMDB=${makeStaticLibraries lmdb}/lib/mysql/libmysqlclient_r.a # MISSING! -# LEVELDB=${makeStaticLibraries leveldb}/lib/libleveldb.a # EOF + configureFlags = [ + "--prefix=$out/gerbil" + "--enable-zlib" + "--enable-sqlite" + "--enable-shared" + "--disable-deprecated" + "--enable-march=" # Avoid non-portable invalid instructions + ]; + configurePhase = '' - (cd src && ./configure \ - --prefix=$out/gerbil \ - --with-gambit=${gambit}/gambit \ - --enable-libxml \ - --enable-libyaml \ - --enable-zlib \ - --enable-sqlite \ - --enable-mysql \ - --enable-lmdb \ - --enable-leveldb) + export CC=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}gcc \ + CXX=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}g++ \ + CPP=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}cpp \ + CXXCPP=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}cpp \ + LD=${gccStdenv.cc}/bin/${gccStdenv.cc.targetPrefix}ld \ + XMKMF=${coreutils}/bin/false + unset CFLAGS LDFLAGS LIBS CPPFLAGS CXXFLAGS + (cd src/gambit ; ${gambit-params.fixStamp gambit-git-version gambit-stampYmd gambit-stampHms}) + ./configure ${builtins.concatStringsSep " " configureFlags} + (cd src/gambit ; + substituteInPlace config.status \ + ${lib.optionalString (gccStdenv.isDarwin && !gambit-params.stable) + ''--replace "/usr/local/opt/openssl@1.1" "${lib.getLib openssl}"''} \ + --replace "/usr/local/opt/openssl" "${lib.getLib openssl}" + ./config.status + ) ''; + extraLdOptions = [ + "-L${zlib}/lib" + "-L${openssl.out}/lib" + "-L${sqlite.out}/lib" + ]; + buildPhase = '' runHook preBuild @@ -68,7 +95,7 @@ stdenv.mkDerivation rec { export GERBIL_BUILD_CORES=$NIX_BUILD_CORES export GERBIL_GXC=$PWD/bin/gxc export GERBIL_BASE=$PWD - export GERBIL_HOME=$PWD + export GERBIL_PREFIX=$PWD export GERBIL_PATH=$PWD/lib export PATH=$PWD/bin:$PATH ${gambit-support.export-gambopt gambit-params} @@ -76,13 +103,17 @@ stdenv.mkDerivation rec { # Build, replacing make by build.sh ( cd src && sh build.sh ) + f=build/lib/libgerbil.so.ldd ; [ -f $f ] && : + substituteInPlace "$f" --replace '(' \ + '(${lib.strings.concatStrings (map (x: "\"${x}\" " ) extraLdOptions)}' + runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out/gerbil $out/bin - (cd src; ./install) + ./install.sh (cd $out/bin ; ln -s ../gerbil/bin/* .) runHook postInstall ''; @@ -98,4 +129,6 @@ stdenv.mkDerivation rec { platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ fare ]; }; + + outputsToInstall = [ "out" ]; } diff --git a/pkgs/development/compilers/gerbil/default.nix b/pkgs/development/compilers/gerbil/default.nix index eeafde520de9..29e6d3575088 100644 --- a/pkgs/development/compilers/gerbil/default.nix +++ b/pkgs/development/compilers/gerbil/default.nix @@ -1,12 +1,18 @@ -{ callPackage, fetchFromGitHub }: +{ callPackage, fetchFromGitHub, gambit-unstable, gambit-support, pkgs, gccStdenv }: callPackage ./build.nix rec { - version = "0.17"; - git-version = version; + version = "0.18"; + git-version = "0.18"; src = fetchFromGitHub { - owner = "vyzo"; + owner = "mighty-gerbils"; repo = "gerbil"; - rev = "v${version}"; - sha256 = "0xzi9mhrmzcajhlz5qcnz4yjlljvbkbm9426iifgjn47ac0965zw"; + rev = "8ca36a928bc9345f9d28e5f2dfcb55ca558e85f9"; + sha256 = "sha256-EMiYgQM/Gl+dh6AxLYRZ0BKZ+VKFd+Lkyy9Pw11ivE8="; + fetchSubmodules = true; }; + inherit gambit-support; + gambit-params = gambit-support.unstable-params; + gambit-git-version = "4.9.5-40-g24201248"; # pkgs.gambit-unstable.passthru.git-version + gambit-stampYmd = "20230917"; # pkgs.gambit-unstable.passthru.git-stampYmd + gambit-stampHms = "182043"; # pkgs.gambit-unstable.passthru.git-stampHms } diff --git a/pkgs/development/compilers/gerbil/gerbil-crypto.nix b/pkgs/development/compilers/gerbil/gerbil-crypto.nix index 3d53c4da879e..dd06417d1a85 100644 --- a/pkgs/development/compilers/gerbil/gerbil-crypto.nix +++ b/pkgs/development/compilers/gerbil/gerbil-crypto.nix @@ -2,8 +2,8 @@ { pname = "gerbil-crypto"; - version = "unstable-2023-03-27"; - git-version = "0.0-18-ge57f887"; + version = "unstable-2023-09-27"; + git-version = "0.0-23-g341e09d"; gerbil-package = "clan/crypto"; gerbilInputs = with gerbilPackages; [ gerbil-utils gerbil-poo ]; nativeBuildInputs = [ pkgs.pkg-config ]; @@ -13,10 +13,10 @@ pre-src = { fun = fetchFromGitHub; - owner = "fare"; + owner = "mighty-gerbils"; repo = "gerbil-crypto"; - rev = "e57f88742d9b41640b4a7d9bd3e86c688d4a83f9"; - sha256 = "08hrk3s82hbigvza75vgx9kc7qf64yhhn3xm5calc859sy6ai4ka"; + rev = "341e09dcb15c09c836eae18093c0f63f71c0a72f"; + sha256 = "1rq50q4p4vhr5drjvirmdkxaa4wszj1rxnhjaqz98bfpjm90yk4j"; }; meta = with lib; { diff --git a/pkgs/development/compilers/gerbil/gerbil-ethereum.nix b/pkgs/development/compilers/gerbil/gerbil-ethereum.nix index d2d95284f09d..521447593d4a 100644 --- a/pkgs/development/compilers/gerbil/gerbil-ethereum.nix +++ b/pkgs/development/compilers/gerbil/gerbil-ethereum.nix @@ -2,24 +2,25 @@ rec { pname = "gerbil-ethereum"; - version = "unstable-2023-05-30"; - git-version = "0.0-375-g989a5ca"; + version = "unstable-2023-10-06"; + git-version = "0.1-1-g08b08fc"; softwareName = "Gerbil-ethereum"; - gerbil-package = "mukn/ethereum"; + gerbil-package = "clan/ethereum"; version-path = "version"; - gerbilInputs = with gerbilPackages; [ gerbil-utils gerbil-crypto gerbil-poo gerbil-persist ]; + gerbilInputs = with gerbilPackages; [ + gerbil-utils gerbil-crypto gerbil-poo gerbil-persist gerbil-leveldb ]; pre-src = { fun = fetchFromGitHub; - owner = "fare"; + owner = "mighty-gerbils"; repo = "gerbil-ethereum"; - rev = "989a5ca78958e42c4a1ec242786ade89f1887e48"; - sha256 = "0bs2knhx3hy3k72yidgaplwjd48y86arqscdik8hgxwmhm9z8kwp"; + rev = "08b08fce8c83cb59bfb532eebb1c7a2dd4bd57ab"; + sha256 = "1sy7l869d2xqhq2qflsmkvr343jfhzsq43ixx75rqfpr3cdljz0b"; }; postInstall = '' - cp scripts/{croesus.prv,genesis.json,logback.xml,yolo-evm.conf,yolo-kevm.conf,run-ethereum-test-net.ss} $out/gerbil/lib/mukn/ethereum/scripts/ + cp scripts/{croesus.prv,genesis.json,logback.xml,yolo-evm.conf,yolo-kevm.conf,run-ethereum-test-net.ss} $out/gerbil/lib/clan/ethereum/scripts/ mkdir -p $out/bin cat > $out/bin/run-ethereum-test-net < (libX11 != null && libXau != null && libXt != null let ffcallAvailable = stdenv.isLinux && (libffcall != null); + # Some modules need autoreconf called in their directory. + shouldReconfModule = name: name != "asdf"; in stdenv.mkDerivation { @@ -92,7 +95,7 @@ stdenv.mkDerivation { cd modules/${x} autoreconf -f -i -I "$root/src" -I "$root/src/m4" -I "$root/src/glm4" ) - '') withModules); + '') (builtins.filter shouldReconfModule withModules)); configureFlags = [ "builddir" ] ++ lib.optional (!dllSupport) "--without-dynamic-modules" diff --git a/pkgs/development/libraries/catboost/default.nix b/pkgs/development/libraries/catboost/default.nix new file mode 100644 index 000000000000..fc18eef2ca89 --- /dev/null +++ b/pkgs/development/libraries/catboost/default.nix @@ -0,0 +1,113 @@ +{ lib +, config +, stdenv +, fetchFromGitHub +, cmake +, libiconv +, llvmPackages +, ninja +, openssl +, python3Packages +, ragel +, yasm +, zlib +, cudaSupport ? config.cudaSupport +, cudaPackages ? {} +, pythonSupport ? false +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "catboost"; + version = "1.2.2"; + + src = fetchFromGitHub { + owner = "catboost"; + repo = "catboost"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-A1zCIqPOW21dHKBQHRtS+/sstZ2o6F8k71lmJFGn0+g="; + }; + + patches = [ + ./remove-conan.patch + ]; + + postPatch = '' + substituteInPlace cmake/common.cmake \ + --replace "\''${RAGEL_BIN}" "${ragel}/bin/ragel" \ + --replace "\''${YASM_BIN}" "${yasm}/bin/yasm" + + shopt -s globstar + for cmakelists in **/CMakeLists.*; do + sed -i "s/OpenSSL::OpenSSL/OpenSSL::SSL/g" $cmakelists + ${lib.optionalString (lib.versionOlder cudaPackages.cudaVersion "11.8") '' + sed -i 's/-gencode=arch=compute_89,code=sm_89//g' $cmakelists + sed -i 's/-gencode=arch=compute_90,code=sm_90//g' $cmakelists + ''} + done + ''; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + cmake + llvmPackages.bintools + ninja + (python3Packages.python.withPackages (ps: with ps; [ six ])) + ragel + yasm + ] ++ lib.optionals cudaSupport (with cudaPackages; [ + cuda_nvcc + ]); + + buildInputs = [ + openssl + zlib + ] ++ lib.optionals stdenv.isDarwin [ + libiconv + ] ++ lib.optionals cudaSupport (with cudaPackages; [ + cuda_cudart + cuda_cccl + libcublas + ]); + + env = { + CUDAHOSTCXX = lib.optionalString cudaSupport "${stdenv.cc}/bin/cc"; + NIX_CFLAGS_LINK = lib.optionalString stdenv.isLinux "-fuse-ld=lld"; + NIX_LDFLAGS = "-lc -lm"; + }; + + cmakeFlags = [ + "-DCMAKE_BINARY_DIR=$out" + "-DCMAKE_POSITION_INDEPENDENT_CODE=on" + "-DCATBOOST_COMPONENTS=app;libs${lib.optionalString pythonSupport ";python-package"}" + ] ++ lib.optionals cudaSupport [ + "-DHAVE_CUDA=on" + ]; + + installPhase = '' + runHook preInstall + + mkdir $dev + cp -r catboost $dev + install -Dm555 catboost/app/catboost -t $out/bin + install -Dm444 catboost/libs/model_interface/static/lib/libmodel_interface-static-lib.a -t $out/lib + install -Dm444 catboost/libs/model_interface/libcatboostmodel${stdenv.hostPlatform.extensions.sharedLibrary} -t $out/lib + install -Dm444 catboost/libs/train_interface/libcatboost${stdenv.hostPlatform.extensions.sharedLibrary} -t $out/lib + + runHook postInstall + ''; + + meta = with lib; { + description = "High-performance library for gradient boosting on decision trees"; + longDescription = '' + A fast, scalable, high performance Gradient Boosting on Decision Trees + library, used for ranking, classification, regression and other machine + learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU. + ''; + license = licenses.asl20; + platforms = platforms.unix; + homepage = "https://catboost.ai"; + maintainers = with maintainers; [ PlushBeaver natsukium ]; + mainProgram = "catboost"; + }; +}) diff --git a/pkgs/development/libraries/catboost/remove-conan.patch b/pkgs/development/libraries/catboost/remove-conan.patch new file mode 100644 index 000000000000..6f96b7989a58 --- /dev/null +++ b/pkgs/development/libraries/catboost/remove-conan.patch @@ -0,0 +1,34 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index becd2ad03c..7e3c8c99b1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -27,7 +27,6 @@ cmake_policy(SET CMP0104 OLD) + + include(cmake/archive.cmake) + include(cmake/common.cmake) +-include(cmake/conan.cmake) + include(cmake/cuda.cmake) + include(cmake/cython.cmake) + include(cmake/fbs.cmake) +@@ -37,21 +36,6 @@ include(cmake/recursive_library.cmake) + include(cmake/swig.cmake) + include(cmake/global_vars.cmake) + +-if (CMAKE_CROSSCOMPILING) +- include(${CMAKE_BINARY_DIR}/conan_paths.cmake) +-else() +- conan_cmake_autodetect(settings) +- conan_cmake_install( +- PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} +- INSTALL_FOLDER ${CMAKE_BINARY_DIR} +- BUILD missing +- REMOTE conancenter +- SETTINGS ${settings} +- ENV "CONAN_CMAKE_GENERATOR=${CMAKE_GENERATOR}" +- CONF "tools.cmake.cmaketoolchain:generator=${CMAKE_GENERATOR}" +- ) +-endif() +- + if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) + elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND HAVE_CUDA) diff --git a/pkgs/development/libraries/flatpak/fix-test-paths.patch b/pkgs/development/libraries/flatpak/fix-test-paths.patch index 683cdbcaf18c..da1475009009 100644 --- a/pkgs/development/libraries/flatpak/fix-test-paths.patch +++ b/pkgs/development/libraries/flatpak/fix-test-paths.patch @@ -180,14 +180,16 @@ index d9fc8251..d8ddb96e 100755 @@ -1,10 +1,10 @@ #!/bin/sh - if command -v gtk-update-icon-cache >/dev/null && test -d "$1/exports/share/icons/hicolor"; then +-if command -v gtk-update-icon-cache >/dev/null && test -d "$1/exports/share/icons/hicolor"; then - cp /usr/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/" -+ cp @hicolorIconTheme@/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/" ++if test -d "$1/exports/share/icons/hicolor"; then ++ @coreutils@/bin/cp -f @hicolorIconTheme@/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/" for dir in "$1"/exports/share/icons/*; do if test -f "$dir/index.theme"; then - if ! gtk-update-icon-cache --quiet "$dir"; then +- echo "Failed to run gtk-update-icon-cache for $dir" + if ! @gtk3@/bin/gtk-update-icon-cache --quiet "$dir"; then - echo "Failed to run gtk-update-icon-cache for $dir" ++ @coreutils@/bin/echo "Failed to run gtk-update-icon-cache for $dir" exit 1 fi diff --git a/triggers/mime-database.trigger b/triggers/mime-database.trigger diff --git a/pkgs/development/libraries/libcpr/default.nix b/pkgs/development/libraries/libcpr/default.nix index 9652b4a67f96..8a4025cf7097 100644 --- a/pkgs/development/libraries/libcpr/default.nix +++ b/pkgs/development/libraries/libcpr/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchFromGitHub, cmake, curl }: -let version = "1.10.4"; in +let version = "1.10.5"; in stdenv.mkDerivation { pname = "libcpr"; inherit version; @@ -11,7 +11,7 @@ stdenv.mkDerivation { owner = "libcpr"; repo = "cpr"; rev = version; - hash = "sha256-8qRNlZgBB71t/FSFPnxFhr02OuD2erLVeoc6wAx3LKk="; + hash = "sha256-mAuU2uF8d+aHvCmotgIrBi/pUp1jkP6G0f98M76zjOw="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix b/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix deleted file mode 100644 index 6b375978a4b9..000000000000 --- a/pkgs/development/libraries/libxkbcommon/libxkbcommon_7.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, bison, flex, xkeyboard_config, libxcb, libX11 }: - -stdenv.mkDerivation rec { - pname = "libxkbcommon"; - version = "0.7.2"; - - src = fetchurl { - url = "http://xkbcommon.org/download/libxkbcommon-${version}.tar.xz"; - sha256 = "1n5rv5n210kjnkyrvbh04gfwaa7zrmzy1393p8nyqfw66lkxr918"; - }; - - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ bison flex xkeyboard_config libxcb ]; - - configureFlags = [ - "--with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb" - "--with-x-locale-root=${libX11.out}/share/X11/locale" - ]; - - env.NIX_CFLAGS_COMPILE = toString [ - # Needed with GCC 12 - "-Wno-error=array-bounds" - ]; - - preBuild = lib.optionalString stdenv.isDarwin '' - sed -i 's/,--version-script=.*$//' Makefile - ''; - - meta = with lib; { - description = "A library to handle keyboard descriptions"; - homepage = "https://xkbcommon.org"; - license = licenses.mit; - maintainers = with maintainers; [ ttuegel ]; - mainProgram = "xkbcli"; - platforms = with platforms; unix; - }; -} diff --git a/pkgs/development/libraries/speech-tools/default.nix b/pkgs/development/libraries/speech-tools/default.nix index 3b34ab928295..8bee16fef753 100644 --- a/pkgs/development/libraries/speech-tools/default.nix +++ b/pkgs/development/libraries/speech-tools/default.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchurl, alsa-lib, ncurses }: +{ lib +, stdenv +, fetchurl +, fetchpatch +, ncurses +, alsa-lib +, CoreServices +, AudioUnit +, Cocoa +}: stdenv.mkDerivation rec { pname = "speech_tools"; @@ -9,7 +18,25 @@ stdenv.mkDerivation rec { sha256 = "1k2xh13miyv48gh06rgsq2vj25xwj7z6vwq9ilsn8i7ig3nrgzg4"; }; - buildInputs = [ alsa-lib ncurses ]; + patches = [ + # Fix build on Apple Silicon. Remove in the next release. + (fetchpatch { + url = "https://github.com/festvox/speech_tools/commit/06141f69d21bf507a9becb5405265dc362edb0df.patch"; + hash = "sha256-tRestCBuRhak+2ccsB6mvDxGm/TIYX4eZ3oppCOEP9s="; + }) + ]; + + buildInputs = [ + ncurses + ] ++ lib.optionals stdenv.isLinux [ + alsa-lib + ] ++ lib.optionals stdenv.isDarwin [ + CoreServices + AudioUnit + Cocoa + ]; + + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "CXX=${stdenv.cc.targetPrefix}c++" ]; # Workaround build failure on -fno-common toolchains: # ld: libestools.a(editline.o):(.bss+0x28): multiple definition of @@ -42,7 +69,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Text-to-speech engine"; maintainers = with maintainers; [ raskin ]; - platforms = platforms.linux; + platforms = platforms.unix; license = licenses.free; }; diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix index 0e0944dd32e6..486b7fd6c25c 100644 --- a/pkgs/development/python-modules/apprise/default.nix +++ b/pkgs/development/python-modules/apprise/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "apprise"; - version = "1.5.0"; + version = "1.6.0"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-PFgRQQd6EBeQ7eDKsW+ig60DKpsvl9xtNWX7LZGBP9c="; + hash = "sha256-Pu+rHF15eLDmXFCR0c2+kgaGXcPLXRnKXPvdt26Kr/4="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/breezy/default.nix b/pkgs/development/python-modules/breezy/default.nix index 5fb4dd913e60..505137993b08 100644 --- a/pkgs/development/python-modules/breezy/default.nix +++ b/pkgs/development/python-modules/breezy/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , buildPythonPackage +, fetchpatch , fetchPypi , cargo , configobj @@ -8,6 +9,7 @@ , dulwich , fastbencode , fastimport +, pygithub , libiconv , merge3 , patiencediff @@ -37,6 +39,14 @@ buildPythonPackage rec { hash = "sha256-fEEvOfo8YWhx+xuiqD/KNstlso5/K1XJnGY64tkLIwE="; }; + patches = [ + # Explicitly track which URLs are used for GitLab + (fetchpatch { + url = "https://github.com/breezy-team/breezy/commit/cc9fdf3774253183f726127c2ee191c24640d898.patch"; + hash = "sha256-HTDAW3CPEZ1YBe0wnv6ncWEd0QRHwHawfTplbVDiOGc="; + }) + ]; + cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; }; @@ -66,7 +76,8 @@ buildPythonPackage rec { pyyaml urllib3 ] ++ passthru.optional-dependencies.launchpad - ++ passthru.optional-dependencies.fastimport; + ++ passthru.optional-dependencies.fastimport + ++ passthru.optional-dependencies.github; nativeCheckInputs = [ testtools @@ -109,6 +120,9 @@ buildPythonPackage rec { fastimport = [ fastimport ]; + github = [ + pygithub + ]; }; }; diff --git a/pkgs/development/python-modules/catboost/default.nix b/pkgs/development/python-modules/catboost/default.nix index 1939b7c13a6d..30e140a83142 100644 --- a/pkgs/development/python-modules/catboost/default.nix +++ b/pkgs/development/python-modules/catboost/default.nix @@ -1,64 +1,50 @@ -{ buildPythonPackage, fetchFromGitHub, lib, pythonOlder -, clang_12, python -, graphviz, matplotlib, numpy, pandas, plotly, scipy, six -, withCuda ? false, cudatoolkit }: +{ lib +, buildPythonPackage +, catboost +, python +, graphviz +, matplotlib +, numpy +, pandas +, plotly +, scipy +, setuptools +, six +, wheel +}: -buildPythonPackage rec { - pname = "catboost"; - # nixpkgs-update: no auto update - version = "1.0.5"; +buildPythonPackage { + inherit (catboost) pname version src meta; + format = "pyproject"; - disabled = pythonOlder "3.4"; + sourceRoot = "source/catboost/python-package"; - src = fetchFromGitHub { - owner = "catboost"; - repo = "catboost"; - rev = "refs/tags/v${version}"; - hash = "sha256-ILemeZUBI9jPb9G6F7QX/T1HaVhQ+g6y7YmsT6DFCJk"; - }; - - nativeBuildInputs = [ clang_12 ]; - - propagatedBuildInputs = [ graphviz matplotlib numpy pandas scipy plotly six ] - ++ lib.optionals withCuda [ cudatoolkit ]; - - patches = [ - ./nix-support.patch + nativeBuildInputs = [ + setuptools + wheel ]; - postPatch = '' - # substituteInPlace is too slow for these large files, and the target has lots of numbers in it that change often. - sed -e 's|\$(YMAKE_PYTHON3-.*)/python3|${python.interpreter}|' -i make/*.makefile + propagatedBuildInputs = [ + graphviz + matplotlib + numpy + pandas + plotly + scipy + six + ]; + + buildPhase = '' + runHook preBuild + + # these arguments must set after bdist_wheel + ${python.pythonForBuild.interpreter} setup.py bdist_wheel --no-widget --prebuilt-extensions-build-root-dir=${lib.getDev catboost} + + runHook postBuild ''; - preBuild = '' - cd catboost/python-package - ''; - setupPyBuildFlags = [ "--with-ymake=no" ]; - CUDA_ROOT = lib.optional withCuda cudatoolkit; - enableParallelBuilding = true; + # setup a test is difficult + doCheck = false; - # Tests use custom "ya" tool, not yet supported. - dontUseSetuptoolsCheck = true; pythonImportsCheck = [ "catboost" ]; - - passthru = { - # Do not update to catboost 1.1.x because the patch doesn't apply cleanly - skipBulkUpdate = true; - }; - - meta = with lib; { - description = "High-performance library for gradient boosting on decision trees."; - longDescription = '' - A fast, scalable, high performance Gradient Boosting on Decision Trees - library, used for ranking, classification, regression and other machine - learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU. - ''; - license = licenses.asl20; - platforms = [ "x86_64-linux" ]; - homepage = "https://catboost.ai"; - maintainers = with maintainers; [ PlushBeaver ]; - # _catboost.pyx.cpp:226822:19: error: use of undeclared identifier '_PyGen_Send' - broken = withCuda; - }; } diff --git a/pkgs/development/python-modules/catboost/nix-support.patch b/pkgs/development/python-modules/catboost/nix-support.patch deleted file mode 100644 index b8294420e09c..000000000000 --- a/pkgs/development/python-modules/catboost/nix-support.patch +++ /dev/null @@ -1,173 +0,0 @@ -diff --git a/catboost/python-package/setup.py b/catboost/python-package/setup.py -index fe9251a21f..86b880c5d0 100644 ---- a/catboost/python-package/setup.py -+++ b/catboost/python-package/setup.py -@@ -80,7 +80,7 @@ class Helper(object): - self.with_cuda = os.environ.get('CUDA_PATH') or os.environ.get('CUDA_ROOT') or None - self.os_sdk = 'local' - self.with_ymake = True -- self.parallel = None -+ self.parallel = os.environ.get('NIX_BUILD_CORES') or None - - def finalize_options(self): - if os.path.exists(str(self.with_cuda)): -@@ -222,11 +222,12 @@ class build_ext(_build_ext): - - def build_with_make(self, topsrc_dir, build_dir, catboost_ext, put_dir, verbose, dry_run): - logging.info('Buildling {} with gnu make'.format(catboost_ext)) -- makefile = 'python{}.{}CLANG11-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '') -+ makefile = 'python{}.{}CLANG12-LINUX-X86_64.makefile'.format(python_version()[0], 'CUDA.' if self.with_cuda else '') - make_cmd = [ - 'make', '-f', '../../make/' + makefile, -- 'CC=clang-11', -- 'CXX=clang++-11', -+ 'CC=clang', -+ 'CXX=clang++', -+ 'PYTHON=python{}'.format(python_version()[0]), - 'BUILD_ROOT=' + build_dir, - 'SOURCE_ROOT=' + topsrc_dir, - ] -diff --git a/make/python2.CLANG12-LINUX-X86_64.makefile b/make/python2.CLANG12-LINUX-X86_64.makefile -index b49a36fb3f..33996af995 100644 ---- a/make/python2.CLANG12-LINUX-X86_64.makefile -+++ b/make/python2.CLANG12-LINUX-X86_64.makefile -@@ -4,31 +4,6 @@ BUILD_ROOT = $(shell pwd) - SOURCE_ROOT = $(shell pwd) - PYTHON = $(shell which python) - --ifneq ($(MAKECMDGOALS),help) --define _CC_TEST --__clang_major__ __clang_minor__ --endef -- --_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) --$(info _CC_VERSION = '$(_CC_VERSION)') -- --ifneq '$(_CC_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif -- --ifneq ($(MAKECMDGOALS),help) --define _CXX_TEST --__clang_major__ __clang_minor__ --endef -- --_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) --$(info _CXX_VERSION = '$(_CXX_VERSION)') -- --ifneq '$(_CXX_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif - - - all\ -diff --git a/make/python2.CUDA.CLANG12-LINUX-X86_64.makefile b/make/python2.CUDA.CLANG12-LINUX-X86_64.makefile -index 82935b297e..093cc86532 100644 ---- a/make/python2.CUDA.CLANG12-LINUX-X86_64.makefile -+++ b/make/python2.CUDA.CLANG12-LINUX-X86_64.makefile -@@ -4,31 +4,6 @@ BUILD_ROOT = $(shell pwd) - SOURCE_ROOT = $(shell pwd) - PYTHON = $(shell which python) - --ifneq ($(MAKECMDGOALS),help) --define _CC_TEST --__clang_major__ __clang_minor__ --endef -- --_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) --$(info _CC_VERSION = '$(_CC_VERSION)') -- --ifneq '$(_CC_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif -- --ifneq ($(MAKECMDGOALS),help) --define _CXX_TEST --__clang_major__ __clang_minor__ --endef -- --_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) --$(info _CXX_VERSION = '$(_CXX_VERSION)') -- --ifneq '$(_CXX_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif - - - all\ -diff --git a/make/python3.CLANG12-LINUX-X86_64.makefile b/make/python3.CLANG12-LINUX-X86_64.makefile -index 1c5d646ae4..6c091fbe17 100644 ---- a/make/python3.CLANG12-LINUX-X86_64.makefile -+++ b/make/python3.CLANG12-LINUX-X86_64.makefile -@@ -4,31 +4,6 @@ BUILD_ROOT = $(shell pwd) - SOURCE_ROOT = $(shell pwd) - PYTHON = $(shell which python) - --ifneq ($(MAKECMDGOALS),help) --define _CC_TEST --__clang_major__ __clang_minor__ --endef -- --_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) --$(info _CC_VERSION = '$(_CC_VERSION)') -- --ifneq '$(_CC_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif -- --ifneq ($(MAKECMDGOALS),help) --define _CXX_TEST --__clang_major__ __clang_minor__ --endef -- --_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) --$(info _CXX_VERSION = '$(_CXX_VERSION)') -- --ifneq '$(_CXX_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif - - - all\ -diff --git a/make/python3.CUDA.CLANG12-LINUX-X86_64.makefile b/make/python3.CUDA.CLANG12-LINUX-X86_64.makefile -index fcdb75a719..4e1dbc3cd7 100644 ---- a/make/python3.CUDA.CLANG12-LINUX-X86_64.makefile -+++ b/make/python3.CUDA.CLANG12-LINUX-X86_64.makefile -@@ -4,31 +4,6 @@ BUILD_ROOT = $(shell pwd) - SOURCE_ROOT = $(shell pwd) - PYTHON = $(shell which python) - --ifneq ($(MAKECMDGOALS),help) --define _CC_TEST --__clang_major__ __clang_minor__ --endef -- --_CC_VERSION = $(shell echo '$(_CC_TEST)' | $(CC) -E -P -) --$(info _CC_VERSION = '$(_CC_VERSION)') -- --ifneq '$(_CC_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif -- --ifneq ($(MAKECMDGOALS),help) --define _CXX_TEST --__clang_major__ __clang_minor__ --endef -- --_CXX_VERSION = $(shell echo '$(_CXX_TEST)' | $(CXX) -E -P -) --$(info _CXX_VERSION = '$(_CXX_VERSION)') -- --ifneq '$(_CXX_VERSION)' '12 0' -- $(error clang 12.0 is required) --endif --endif - - - all\ diff --git a/pkgs/development/python-modules/cirq-core/default.nix b/pkgs/development/python-modules/cirq-core/default.nix index 88d2b5115b3e..fe6a04480f66 100644 --- a/pkgs/development/python-modules/cirq-core/default.nix +++ b/pkgs/development/python-modules/cirq-core/default.nix @@ -4,7 +4,6 @@ , pythonAtLeast , pythonOlder , fetchFromGitHub -, fetchpatch , duet , matplotlib , networkx @@ -35,7 +34,7 @@ buildPythonPackage rec { version = "1.2.0"; format = "setuptools"; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "quantumlib"; @@ -94,6 +93,8 @@ buildPythonPackage rec { "test_json_and_repr_data" # Tests for some changed error handling behavior in SymPy 1.12 "test_custom_value_not_implemented" + # Calibration issue + "test_xeb_to_calibration_layer" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/cirq-ft/default.nix b/pkgs/development/python-modules/cirq-ft/default.nix new file mode 100644 index 000000000000..83a8392b9520 --- /dev/null +++ b/pkgs/development/python-modules/cirq-ft/default.nix @@ -0,0 +1,36 @@ +{ attrs +, buildPythonPackage +, cachetools +, cirq-core +, ipython +, ipywidgets +, nbconvert +, nbformat +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "cirq-ft"; + inherit (cirq-core) version src meta; + + sourceRoot = "${src.name}/${pname}"; + + propagatedBuildInputs = [ + attrs + cachetools + cirq-core + ipython + ipywidgets + nbconvert + nbformat + ]; + + nativeCheckInputs = [ + ipython + pytestCheckHook + ]; + + # cirq's importlib hook doesn't work here + #pythonImportsCheck = [ "cirq_ft" ]; + +} diff --git a/pkgs/development/python-modules/cirq-google/default.nix b/pkgs/development/python-modules/cirq-google/default.nix index 491caa5f9293..a49eebfce90d 100644 --- a/pkgs/development/python-modules/cirq-google/default.nix +++ b/pkgs/development/python-modules/cirq-google/default.nix @@ -4,6 +4,7 @@ , protobuf , pytestCheckHook , freezegun +, pythonRelaxDepsHook }: buildPythonPackage rec { @@ -18,6 +19,10 @@ buildPythonPackage rec { --replace "protobuf >= 3.15.0, < 4" "protobuf >= 3.15.0" ''; + nativeBuildInputs = [ + pythonRelaxDepsHook + ]; + propagatedBuildInputs = [ cirq-core google-api-core @@ -40,6 +45,8 @@ buildPythonPackage rec { # unittest.mock.InvalidSpecError: Cannot autospec attr 'QuantumEngineServiceClient' "test_get_engine_sampler_explicit_project_id" "test_get_engine_sampler" + # Calibration issue + "test_xeb_to_calibration_layer" ]; } diff --git a/pkgs/development/python-modules/cirq-rigetti/default.nix b/pkgs/development/python-modules/cirq-rigetti/default.nix index f09f7ce04539..be0ec040995b 100644 --- a/pkgs/development/python-modules/cirq-rigetti/default.nix +++ b/pkgs/development/python-modules/cirq-rigetti/default.nix @@ -31,20 +31,22 @@ buildPythonPackage rec { sourceRoot = "${src.name}/${pname}"; + pythonRelaxDeps = [ + "attrs" + "certifi" + "h11" + "httpcore" + "httpx" + "idna" + "iso8601" + "pydantic" + "pyjwt" + "pyquil" + "qcs-api-client" + "rfc3986" + ]; + postPatch = '' - substituteInPlace requirements.txt \ - --replace "attrs~=20.3.0" "attrs" \ - --replace "certifi~=2021.5.30" "certifi" \ - --replace "h11~=0.9.0" "h11" \ - --replace "httpcore~=0.11.1" "httpcore" \ - --replace "httpx~=0.15.5" "httpx" \ - --replace "idna~=2.10" "idna" \ - --replace "pyjwt~=1.7.1" "pyjwt" \ - --replace "qcs-api-client~=0.8.0" "qcs-api-client" \ - --replace "iso8601~=0.1.14" "iso8601" \ - --replace "rfc3986~=1.5.0" "rfc3986" \ - --replace "pyquil~=3.0.0" "pyquil" \ - --replace "pydantic~=1.8.2" "pydantic" # Remove outdated test rm cirq_rigetti/service_test.py ''; diff --git a/pkgs/development/python-modules/cirq/default.nix b/pkgs/development/python-modules/cirq/default.nix index f77741052447..f53613065fb3 100644 --- a/pkgs/development/python-modules/cirq/default.nix +++ b/pkgs/development/python-modules/cirq/default.nix @@ -1,6 +1,7 @@ { buildPythonPackage , cirq-aqt , cirq-core +, cirq-ft , cirq-google , cirq-ionq , cirq-pasqal @@ -16,6 +17,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ cirq-aqt cirq-core + cirq-ft cirq-ionq cirq-google cirq-rigetti @@ -32,6 +34,7 @@ buildPythonPackage rec { disabledTestPaths = [ "cirq-aqt" "cirq-core" + "cirq-ft" "cirq-google" "cirq-ionq" "cirq-pasqal" diff --git a/pkgs/development/python-modules/command_runner/default.nix b/pkgs/development/python-modules/command_runner/default.nix new file mode 100644 index 000000000000..f5f8586d1319 --- /dev/null +++ b/pkgs/development/python-modules/command_runner/default.nix @@ -0,0 +1,23 @@ +{ lib, buildPythonPackage, fetchPypi, psutil }: + +buildPythonPackage rec { + pname = "command_runner"; + version = "1.5.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-UIDzLLIm69W53jvS9M2LVclM+OqRYmLtvuXVAv54ltg="; + }; + + propagatedBuildInputs = [ psutil ]; + + meta = with lib; { + homepage = "https://github.com/netinvent/command_runner"; + description = '' + Platform agnostic command execution, timed background jobs with live + stdout/stderr output capture, and UAC/sudo elevation + ''; + license = licenses.bsd3; + maintainers = teams.wdz.members; + }; +} diff --git a/pkgs/development/python-modules/et_xmlfile/default.nix b/pkgs/development/python-modules/et-xmlfile/default.nix similarity index 100% rename from pkgs/development/python-modules/et_xmlfile/default.nix rename to pkgs/development/python-modules/et-xmlfile/default.nix diff --git a/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix b/pkgs/development/python-modules/guzzle-sphinx-theme/default.nix similarity index 52% rename from pkgs/development/python-modules/guzzle_sphinx_theme/default.nix rename to pkgs/development/python-modules/guzzle-sphinx-theme/default.nix index 6f765bd98d6b..48d87c8dd7d8 100644 --- a/pkgs/development/python-modules/guzzle_sphinx_theme/default.nix +++ b/pkgs/development/python-modules/guzzle-sphinx-theme/default.nix @@ -1,22 +1,37 @@ -{ lib, buildPythonPackage, sphinx, fetchPypi }: +{ lib +, buildPythonPackage +, fetchPypi +, setuptools +, sphinx +}: buildPythonPackage rec { - pname = "guzzle_sphinx_theme"; + pname = "guzzle-sphinx-theme"; version = "0.7.11"; + pyproject = true; + src = fetchPypi { - inherit pname version; - sha256 = "1rnkzrrsbnifn3vsb4pfaia3nlvgvw6ndpxp7lzjrh23qcwid34v"; + pname = "guzzle_sphinx_theme"; + inherit version; + hash = "sha256-m4wWOcNDwCw/PbffZg3fb1M7VFTukqX3sC7apXP+0+Y="; }; + nativeBuildInputs = [ + setuptools + ]; + doCheck = false; # no tests propagatedBuildInputs = [ sphinx ]; + pythonImportsCheck = [ + "guzzle_sphinx_theme" + ]; + meta = with lib; { description = "Sphinx theme used by Guzzle: http://guzzlephp.org"; homepage = "https://github.com/guzzle/guzzle_sphinx_theme/"; license = licenses.mit; maintainers = with maintainers; [ flokli ]; - platforms = platforms.unix; }; } diff --git a/pkgs/development/python-modules/lazy_imports/default.nix b/pkgs/development/python-modules/lazy-imports/default.nix similarity index 96% rename from pkgs/development/python-modules/lazy_imports/default.nix rename to pkgs/development/python-modules/lazy-imports/default.nix index 31aabf305ca7..e15b3226006f 100644 --- a/pkgs/development/python-modules/lazy_imports/default.nix +++ b/pkgs/development/python-modules/lazy-imports/default.nix @@ -6,7 +6,7 @@ , packaging }: let - pname = "lazy_imports"; + pname = "lazy-imports"; version = "0.3.1"; in buildPythonPackage { diff --git a/pkgs/development/python-modules/mkdocs-jupyter/default.nix b/pkgs/development/python-modules/mkdocs-jupyter/default.nix index 92470b9b4903..926b6db02e5b 100644 --- a/pkgs/development/python-modules/mkdocs-jupyter/default.nix +++ b/pkgs/development/python-modules/mkdocs-jupyter/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "mkdocs-jupyter"; - version = "0.24.2"; + version = "0.24.5"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -23,12 +23,12 @@ buildPythonPackage rec { src = fetchPypi { pname = "mkdocs_jupyter"; inherit version; - hash = "sha256-XgwQnVNdSHlyMHGbaUH00I3pWno8lb8VhmLEEvwVyy4="; + hash = "sha256-+ngEh5pidwJJfir66kCj2xy90qOroORBd4LdJMqJm7M="; }; postPatch = '' sed -i "/--cov/d" pyproject.toml - substituteInPlace mkdocs_jupyter/tests/test_base_usage.py \ + substituteInPlace src/mkdocs_jupyter/tests/test_base_usage.py \ --replace "[\"mkdocs\"," "[\"${mkdocs.out}/bin/mkdocs\"," ''; diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix index 03a33ef26a6b..799c991e40fe 100644 --- a/pkgs/development/python-modules/openpyxl/default.nix +++ b/pkgs/development/python-modules/openpyxl/default.nix @@ -1,6 +1,6 @@ { lib , buildPythonPackage -, et_xmlfile +, et-xmlfile , fetchFromGitLab , jdcal , lxml @@ -26,7 +26,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ jdcal - et_xmlfile + et-xmlfile lxml ]; diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix index 4f2794e3e086..578861814140 100644 --- a/pkgs/development/python-modules/pyinfra/default.nix +++ b/pkgs/development/python-modules/pyinfra/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "pyinfra"; - version = "2.7"; + version = "2.8"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "Fizzadar"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-drfxNpdhqSxCeB0SbwyKOd3DDA7bFkmDmFQJS3JwOlA="; + hash = "sha256-BYd2UYQJD/HsmpnlQjZvjfg17ShPuA3j4rtv6fTQK/A="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pytest-playwright/default.nix b/pkgs/development/python-modules/pytest-playwright/default.nix index 53766a3134a5..3e27b075efa7 100644 --- a/pkgs/development/python-modules/pytest-playwright/default.nix +++ b/pkgs/development/python-modules/pytest-playwright/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "pytest-playwright"; - version = "0.4.2"; + version = "0.4.3"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "microsoft"; repo = "playwright-pytest"; rev = "refs/tags/v${version}"; - hash = "sha256-yYFzaIPYOsuvS8bGcuwQQNS/CtvGUe1XQdORmfEJQmU="; + hash = "sha256-5qjfZGDM1OqXXNyj81O49ClKKGiAPdgyZZu6TgpskGs="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; diff --git a/pkgs/development/python-modules/python-lsp-server/default.nix b/pkgs/development/python-modules/python-lsp-server/default.nix index 66293eaa30db..4886ba27bad6 100644 --- a/pkgs/development/python-modules/python-lsp-server/default.nix +++ b/pkgs/development/python-modules/python-lsp-server/default.nix @@ -35,7 +35,7 @@ buildPythonPackage rec { pname = "python-lsp-server"; - version = "1.8.1"; + version = "1.8.2"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -44,7 +44,7 @@ buildPythonPackage rec { owner = "python-lsp"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-8wFLZuGWt3qIRUkprxzFgxh+rtmIyMBjeCnzCNTbXzA="; + hash = "sha256-jD/8Xy/o9U/qtjz5FABg5krMIvbnrT+MlK0OvXFTJkI="; }; postPatch = '' diff --git a/pkgs/development/python-modules/python-youtube/default.nix b/pkgs/development/python-modules/python-youtube/default.nix index f9a0841fdcba..d0fb764422fe 100644 --- a/pkgs/development/python-modules/python-youtube/default.nix +++ b/pkgs/development/python-modules/python-youtube/default.nix @@ -11,14 +11,14 @@ }: buildPythonPackage rec { pname = "python-youtube"; - version = "0.9.1"; + version = "0.9.2"; format = "pyproject"; src = fetchFromGitHub { owner = "sns-sdks"; repo = "python-youtube"; - rev = "v${version}"; - hash = "sha256-PbPdvUv7I9NKW6w4OJbiUoRNVJ1SoXychSXBH/y5nzY="; + rev = "refs/tags/v${version}"; + hash = "sha256-jUs6n8j1coA37V0RTYqr7pqt+LRABieX7gbyWsXQpUM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pythonnet/default.nix b/pkgs/development/python-modules/pythonnet/default.nix index 3ec700149bed..5a2272c668c3 100644 --- a/pkgs/development/python-modules/pythonnet/default.nix +++ b/pkgs/development/python-modules/pythonnet/default.nix @@ -12,11 +12,11 @@ let pname = "pythonnet"; - version = "3.0.2"; + version = "3.0.3"; src = fetchPypi { pname = "pythonnet"; inherit version; - sha256 = "sha256-LN0cztxkp8m9cRvj0P0MSniTJHQTncVKppe+3edBx0Y="; + hash = "sha256-jUsulxWKAjh1+GR0WKWPOIF/T+Oa9gq91rDYrfHXfnU="; }; # This buildDotnetModule is used only to get nuget sources, the actual @@ -70,6 +70,7 @@ buildPythonPackage { meta = with lib; { description = ".NET integration for Python"; homepage = "https://pythonnet.github.io"; + changelog = "https://github.com/pythonnet/pythonnet/releases/tag/v${version}"; license = licenses.mit; # badPlatforms = [ "aarch64-linux" ]; diff --git a/pkgs/development/python-modules/qdrant-client/default.nix b/pkgs/development/python-modules/qdrant-client/default.nix index b1d46d5fcb95..ea291641f352 100644 --- a/pkgs/development/python-modules/qdrant-client/default.nix +++ b/pkgs/development/python-modules/qdrant-client/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "qdrant-client"; - version = "1.5.4"; + version = "1.6.0"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "qdrant"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-9aZBUrGCNRQjYRF1QmIwVqeT5Tdgv7CCkyOUsbZbmVM="; + hash = "sha256-N1qvckOzmCKLoHumeFSs2293eZGhrbfOWhN9/vxeX8s="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/radish-bdd/default.nix b/pkgs/development/python-modules/radish-bdd/default.nix index e5cdbaf92a10..e5db1cbad3ce 100644 --- a/pkgs/development/python-modules/radish-bdd/default.nix +++ b/pkgs/development/python-modules/radish-bdd/default.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { pname = "radish-bdd"; - version = "0.16.2"; + version = "0.17.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -28,7 +28,7 @@ buildPythonPackage rec { owner = pname; repo = "radish"; rev = "refs/tags/v${version}"; - hash = "sha256-ZWAHPZmyPq/BRVT6pHkTRjp2SA36+wD6x6GW9OyfG7k="; + hash = "sha256-4cGUF4Qh5+mxHtKNnAjh37Q6hEFCQ9zmntya98UHx+0="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/rdkit/default.nix b/pkgs/development/python-modules/rdkit/default.nix index 783051540cc9..56cca6c1af85 100644 --- a/pkgs/development/python-modules/rdkit/default.nix +++ b/pkgs/development/python-modules/rdkit/default.nix @@ -21,16 +21,16 @@ let external = { avalon = fetchFromGitHub { - owner = "rohdebe1"; + owner = "rdkit"; repo = "ava-formake"; - rev = "AvalonToolkit_2.0.4a"; - hash = "sha256-ZyhrDBBv9XuXe1NY/Djiad86tGIJwCSTrxEMICHgSqk="; + rev = "AvalonToolkit_2.0.5-pre.3"; + hash = "sha256-2MuFZgRIHXnkV7Nc1da4fa7wDx57VHUtwLthrmjk+5o="; }; yaehmop = fetchFromGitHub { owner = "greglandrum"; repo = "yaehmop"; - rev = "v2022.09.1"; - hash = "sha256-QMnc5RyHlY3giw9QmrkGntiA+Srs7OhCIKs9GGo5DfQ="; + rev = "v2023.03.1"; + hash = "sha256-K9//cDN69U4sLETfIZq9NUaBE3RXOReH53qfiCzutqM="; }; freesasa = fetchFromGitHub { owner = "mittinatten"; @@ -42,7 +42,7 @@ let in buildPythonPackage rec { pname = "rdkit"; - version = "2023.03.3"; + version = "2023.09.1"; format = "other"; src = @@ -53,7 +53,7 @@ buildPythonPackage rec { owner = pname; repo = pname; rev = "Release_${versionTag}"; - hash = "sha256-5M7nDUWORbepDGaf2G6Cd79Hu0au3DNRc9KuONoCWK0="; + hash = "sha256-qaYD/46oCTnso1FbD08zr2JuatKmSSqNBhOYlfeIiAA="; }; unpackPhase = '' diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix index 7ded790ec53e..397259d30fe3 100644 --- a/pkgs/development/python-modules/riscv-config/default.nix +++ b/pkgs/development/python-modules/riscv-config/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "riscv-config"; - version = "3.13.1"; + version = "3.13.3"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "riscv-software-src"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-SnUt6bsTEC7abdQr0nWyNOAJbW64B1K3yy1McfkdxAc="; + hash = "sha256-tMV5mRqOLURkr8HQN1yvq5Cf3yz2NRBY6uaaxNKCy2c="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix index 58a10bdb148b..b764d9573451 100755 --- a/pkgs/development/python-modules/streamlit/default.nix +++ b/pkgs/development/python-modules/streamlit/default.nix @@ -32,14 +32,14 @@ buildPythonPackage rec { pname = "streamlit"; - version = "1.26.0"; + version = "1.27.2"; format = "setuptools"; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version format; - hash = "sha256-JUdfsVo8yfsYSUXz/JNvARmYvYOG4MiS/r4UyWJb9Ho="; + hash = "sha256-M/muDeW31ZzX2rqHdUxU7IN6dsJKz8QdH45RSPIJA+4="; }; nativeBuildInputs = [ pythonRelaxDepsHook ]; diff --git a/pkgs/development/tools/guile/guile-lint/default.nix b/pkgs/development/tools/guile/guile-lint/default.nix deleted file mode 100644 index 6de9e48ae667..000000000000 --- a/pkgs/development/tools/guile/guile-lint/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchurl, guile }: - -stdenv.mkDerivation rec { - pname = "guile-lint"; - version = "14"; - - src = fetchurl { - url = "https://download.tuxfamily.org/user42/${pname}-${version}.tar.bz2"; - sha256 = "1gnhnmki05pkmzpbfc07vmb2iwza6vhy75y03bw2x2rk4fkggz2v"; - }; - - buildInputs = [ guile ]; - - unpackPhase = ''tar xjvf "$src" && sourceRoot="$PWD/${pname}-${version}"''; - - prePatch = '' - substituteInPlace guile-lint.in --replace \ - "exec guile" "exec ${guile}/bin/guile" - ''; - - doCheck = !stdenv.isDarwin; - - meta = with lib; { - description = "Checks syntax and semantics in a Guile program or module"; - homepage = "https://user42.tuxfamily.org/guile-lint/index.html"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ vyp ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/development/tools/ktlint/default.nix b/pkgs/development/tools/ktlint/default.nix index 60d14dc79e34..4c122db6f340 100644 --- a/pkgs/development/tools/ktlint/default.nix +++ b/pkgs/development/tools/ktlint/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "ktlint"; - version = "1.0.0"; + version = "1.0.1"; src = fetchurl { url = "https://github.com/pinterest/ktlint/releases/download/${version}/ktlint"; - sha256 = "1pc1ck87l849xfy1lcdr1v3p84qyxn9725pvh09czvlqs58yy6ax"; + sha256 = "15bvk6sv6fjvfq2a5yyxh3kvpkyws0pxdqbygkkrxxsl8bnr3409"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/vsce/default.nix b/pkgs/development/tools/vsce/default.nix index 7d80b364c1b6..caddb568c65f 100644 --- a/pkgs/development/tools/vsce/default.nix +++ b/pkgs/development/tools/vsce/default.nix @@ -12,13 +12,13 @@ buildNpmPackage rec { pname = "vsce"; - version = "2.21.0"; + version = "2.21.1"; src = fetchFromGitHub { owner = "microsoft"; repo = "vscode-vsce"; rev = "v${version}"; - hash = "sha256-iBbKVfkmt8n06JJ8TSO8BDCeiird9gTkOQhlREtZ5Cw="; + hash = "sha256-cFqjoWQu/6cvbT1vxReERybuKpeL4LCVl5qhvSwr6fs="; }; npmDepsHash = "sha256-Difk9a9TYmfwzP9SawEuaxm7iHVjdfO+FxFCE7aEMzM="; diff --git a/pkgs/games/ball-and-paddle/default.nix b/pkgs/games/ball-and-paddle/default.nix deleted file mode 100644 index a935f3d46863..000000000000 --- a/pkgs/games/ball-and-paddle/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ fetchurl, lib, stdenv, SDL, SDL_image, SDL_mixer, SDL_ttf, guile, gettext }: - -stdenv.mkDerivation rec { - pname = "ballandpaddle"; - version = "0.8.1"; - - src = fetchurl { - url = "mirror://gnu/ballandpaddle/ballandpaddle-${version}.tar.gz"; - sha256 = "0zgpydad0mj7fbkippw3n9hlda6nac084dq5xfbsks9jn1xd30ny"; - }; - - buildInputs = [ SDL SDL_image SDL_mixer SDL_ttf guile gettext ]; - - patches = [ ./getenv-decl.patch ]; - - preConfigure = '' - sed -i "Makefile.in" \ - -e "s|desktopdir *=.*$|desktopdir = $out/share/applications|g ; - s|pixmapsdir *=.*$|pixmapsdir = $out/share/pixmaps|g" - ''; - - meta = { - description = "GNU Ball and Paddle, an old-fashioned ball and paddle game"; - - longDescription = '' - GNU Ball and Paddle is an old-fashioned ball and paddle game - with a set amount of blocks to destroy on each level, while - moving a paddle left and right at the bottom of the - screen. Various powerups may make different things occur. - - It now uses GNU Guile for extension and the levels are written - with Guile. Follow the example level sets and the documentation. - ''; - - license = lib.licenses.gpl3Plus; - - homepage = "https://www.gnu.org/software/ballandpaddle/"; - - maintainers = [ ]; - - platforms = lib.platforms.unix; - - hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin - }; -} diff --git a/pkgs/games/ball-and-paddle/getenv-decl.patch b/pkgs/games/ball-and-paddle/getenv-decl.patch deleted file mode 100644 index 6bf26b50a142..000000000000 --- a/pkgs/games/ball-and-paddle/getenv-decl.patch +++ /dev/null @@ -1,13 +0,0 @@ -Make the getenv(3) declaration visible. - ---- ballandpaddle-0.8.1/src/settingsmanager.cpp 2009-07-08 02:13:16.000000000 +0200 -+++ ballandpaddle-0.8.1/src/settingsmanager.cpp 2009-07-16 23:30:28.000000000 +0200 -@@ -17,6 +17,7 @@ - * along with this program. If not, see . - **/ - -+#include - #include "settingsmanager.h" - - SettingsManager::SettingsManager () - diff --git a/pkgs/games/osu-lazer/bin.nix b/pkgs/games/osu-lazer/bin.nix index e2a6e10d0335..e0198efa5b9c 100644 --- a/pkgs/games/osu-lazer/bin.nix +++ b/pkgs/games/osu-lazer/bin.nix @@ -7,21 +7,21 @@ let pname = "osu-lazer-bin"; - version = "2023.1008.0"; + version = "2023.1008.1"; name = "${pname}-${version}"; osu-lazer-bin-src = { aarch64-darwin = { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip"; - sha256 = "sha256-gtXbccVrQ2edEcDR7wG2Upv4b4a64tvu+/fiKghMquM="; + sha256 = "sha256-eL5UVZqAH7Ta442xIDjaOPu3NXJmck+lS+BoD/qnOMs="; }; x86_64-darwin = { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip"; - sha256 = "sha256-qo4EovNt158XXfYOek4lmil2Qwv185fLjZIaBsXzw74="; + sha256 = "sha256-x/HL73Fao11GVj7uMFpx4uOKv8Gmiy1PEgee2sP1fvg="; }; x86_64-linux = { url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage"; - sha256 = "sha256-aZDRwZeCC4qBNktLeD7ezbp1Bydf6mP8crtpdayUiqI="; + sha256 = "sha256-QqyymPkeRcedK75O9S0zO8DrUmPKuC7Mp4SbXT+QM9I="; }; }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); diff --git a/pkgs/games/xmage/default.nix b/pkgs/games/xmage/default.nix index 15a65efeb7bc..b6aa8e22afd2 100644 --- a/pkgs/games/xmage/default.nix +++ b/pkgs/games/xmage/default.nix @@ -1,16 +1,18 @@ -{ lib, stdenv +{ lib +, stdenv , fetchurl , jdk8 , unzip }: -stdenv.mkDerivation rec { - pname = "xmage"; - version = "1.4.42V6"; +stdenv.mkDerivation (finalAttrs: { + pname = "xmage"; + version = "1.4.50V2"; src = fetchurl { - url = "https://github.com/magefree/mage/releases/download/xmage_1.4.42V6/xmage_${version}.zip"; - sha256 = "14s4885ldi0rplqmab5m775plsqmmm0m89j402caiqm2q9mzvkhd"; + url = + "https://github.com/magefree/mage/releases/download/xmage_${finalAttrs.version}/xmage_${finalAttrs.version}.zip"; + sha256 = "sha256-t1peHYwCRy3wiIIwOD3nUyoxSOxbw6B/g++A1ofIbmg="; }; preferLocalBuild = true; @@ -19,13 +21,15 @@ stdenv.mkDerivation rec { ${unzip}/bin/unzip $src ''; - installPhase = '' + installPhase = let + strVersion = lib.substring 0 6 finalAttrs.version; + in '' mkdir -p $out/bin cp -rv ./* $out cat << EOS > $out/bin/xmage -exec ${jdk8}/bin/java -Xms256m -Xmx512m -XX:MaxPermSize=384m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar $out/mage-client/lib/mage-client-1.4.42.jar -EOS + exec ${jdk8}/bin/java -Xms256m -Xmx512m -XX:MaxPermSize=384m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar $out/mage-client/lib/mage-client-${strVersion}.jar + EOS chmod +x $out/bin/xmage ''; @@ -38,5 +42,5 @@ EOS homepage = "http://xmage.de/"; }; -} +}) diff --git a/pkgs/misc/cups/drivers/hl2260d/default.nix b/pkgs/misc/cups/drivers/hl2260d/default.nix new file mode 100644 index 000000000000..9883bd99a314 --- /dev/null +++ b/pkgs/misc/cups/drivers/hl2260d/default.nix @@ -0,0 +1,89 @@ +{ lib, stdenv, fetchurl, cups, dpkg, gnused, makeWrapper, ghostscript, coreutils, perl, gnugrep, which +, debugLvl ? "0" +}: + +let + version = "3.2.0-1"; + lprdeb = fetchurl { + url = "https://download.brother.com/welcome/dlf102692/hl2260dlpr-${version}.i386.deb"; + hash = "sha256-R+cM2SKc/MP6keo3PUrKXPC6a2dEQQdBunrpNtAHlH0="; + }; + + cupsdeb = fetchurl { + url = "https://download.brother.com/welcome/dlf102693/hl2260dcupswrapper-${version}.i386.deb"; + hash = "sha256-k6+ulZVoFTpEY6WJ9TO9Rzp2c4dwPqL3NY5/XYJpvOc="; + }; +in +stdenv.mkDerivation { + pname = "cups-brother-hl2260d"; + inherit version; + + nativeBuildInputs = [ makeWrapper dpkg ]; + buildInputs = [ cups ghostscript perl ]; + + dontPatchELF = true; + dontBuild = true; + + unpackPhase = '' + mkdir -p $out + dpkg-deb -x ${cupsdeb} $out + dpkg-deb -x ${lprdeb} $out + ''; + + patchPhase = '' + # Patch lpr + INFDIR=$out/opt/brother/Printers/HL2260D/inf + LPDDIR=$out/opt/brother/Printers/HL2260D/lpd + + substituteInPlace $LPDDIR/filter_HL2260D \ + --replace "BR_PRT_PATH =~" "BR_PRT_PATH = \"$out/opt/brother/Printers/HL2260D\"; #" \ + --replace "PRINTER =~" "PRINTER = \"HL2260D\"; #" + + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $INFDIR/braddprinter + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $LPDDIR/brprintconflsr3 + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $LPDDIR/rawtobr3 + + # Patch cupswrapper + WRAPPER=$out/opt/brother/Printers/HL2260D/cupswrapper/brother_lpdwrapper_HL2260D + PAPER_CFG=$out/opt/brother/Printers/HL2260D/cupswrapper/paperconfigml1 + + substituteInPlace $WRAPPER \ + --replace "basedir =~" "basedir = \"$out/opt/brother/Printers/HL2260D\"; #" \ + --replace "PRINTER =~" "PRINTER = \"HL2260D\"; #" \ + --replace "\$DEBUG=0;" "\$DEBUG=${debugLvl};" + substituteInPlace $WRAPPER \ + --replace "\`cp " "\`cp -p " \ + --replace "\$TEMPRC\`" "\$TEMPRC; chmod a+rw \$TEMPRC\`" \ + --replace "\`mv " "\`cp -p " + # This config script make this assumption that the *.ppd are found in a global location `/etc/cups/ppd`. + substituteInPlace $PAPER_CFG \ + --replace "/etc/cups/ppd" "$out/share/cups/model" + ''; + + installPhase = '' + mkdir -p $out/share/cups/model + ln -s $out/opt/brother/Printers/HL2260D/cupswrapper/brother-HL2260D-cups-en.ppd $out/share/cups/model + + mkdir -p $out/lib/cups/filter/ + makeWrapper \ + $out/opt/brother/Printers/HL2260D/cupswrapper/brother_lpdwrapper_HL2260D \ + $out/lib/cups/filter/brother_lpdwrapper_HL2260D \ + --prefix PATH : ${lib.makeBinPath [coreutils gnugrep gnused]} + + wrapProgram $out/opt/brother/Printers/HL2260D/lpd/filter_HL2260D \ + --prefix PATH ":" ${ lib.makeBinPath [ ghostscript which ] } + ''; + + meta = with lib; { + homepage = "http://www.brother.com/"; + description = "Brother HL-2260D printer driver"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + platforms = [ "x86_64-linux" "i686-linux" ]; + downloadPage = "https://support.brother.com/g/b/downloadtop.aspx?c=cn_ot&lang=en&prod=hl2260d_cn"; + maintainers = with maintainers; [ u2x1 ]; + }; +} diff --git a/pkgs/os-specific/darwin/yabai/default.nix b/pkgs/os-specific/darwin/yabai/default.nix index 585891b13cd9..5474e8345c1a 100644 --- a/pkgs/os-specific/darwin/yabai/default.nix +++ b/pkgs/os-specific/darwin/yabai/default.nix @@ -17,7 +17,7 @@ let pname = "yabai"; - version = "5.0.9"; + version = "6.0.0"; test-version = testers.testVersion { package = yabai; @@ -53,7 +53,7 @@ in src = fetchzip { url = "https://github.com/koekeishiya/yabai/releases/download/v${version}/yabai-v${version}.tar.gz"; - hash = "sha256-6dqQ+kau/aUAM4oPSkcgZJlJModcjKOXPlTB32MvoLQ="; + hash = "sha256-KeZ5srx9dfQN9u6Fgg9BtIhLhFWp975iz72m78bWINo="; }; nativeBuildInputs = [ @@ -89,7 +89,7 @@ in owner = "koekeishiya"; repo = "yabai"; rev = "v${version}"; - hash = "sha256-uy1KOBJa9BNK5bd+5q5okMouAV0H3DUXrG3Mvr5U6oc="; + hash = "sha256-BQhFTn9KDBv9oG8kT2TFFpPZGHARg7DfN+IeQNNDE84="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/monitoring/kapacitor/default.nix b/pkgs/servers/monitoring/kapacitor/default.nix index 2435d570cbb5..4adaefa053cb 100644 --- a/pkgs/servers/monitoring/kapacitor/default.nix +++ b/pkgs/servers/monitoring/kapacitor/default.nix @@ -1,23 +1,93 @@ -{ lib, fetchFromGitHub, buildGoPackage }: +{ stdenv +, lib +, rustPlatform +, fetchFromGitHub +, fetchpatch +, libiconv +, buildGoModule +, pkg-config +}: -buildGoPackage rec { +let + libflux_version = "0.171.0"; + flux = rustPlatform.buildRustPackage rec { + pname = "libflux"; + version = "v${libflux_version}"; + src = fetchFromGitHub { + owner = "influxdata"; + repo = "flux"; + rev = "v${libflux_version}"; + hash = "sha256-v9MUR+PcxAus91FiHYrMN9MbNOTWewh7MT6/t/QWQcM="; + }; + patches = [ + # https://github.com/influxdata/flux/pull/5273 + # fix compile error with Rust 1.64 + (fetchpatch { + url = "https://github.com/influxdata/flux/commit/20ca62138a0669f2760dd469ca41fc333e04b8f2.patch"; + stripLen = 2; + extraPrefix = ""; + hash = "sha256-Fb4CuH9ZvrPha249dmLLI8MqSNQRKqKPxPbw2pjqwfY="; + }) + ]; + sourceRoot = "${src.name}/libflux"; + cargoSha256 = "sha256-oAMoGGdR0QEjSzZ0/J5J9s/ekSlryCcRBSo5N2r70Ko="; + nativeBuildInputs = [ rustPlatform.bindgenHook ]; + buildInputs = lib.optional stdenv.isDarwin libiconv; + pkgcfg = '' + Name: flux + Version: ${libflux_version} + Description: Library for the InfluxData Flux engine + Cflags: -I/out/include + Libs: -L/out/lib -lflux -lpthread + ''; + passAsFile = [ "pkgcfg" ]; + postInstall = '' + mkdir -p $out/include $out/pkgconfig + cp -r $NIX_BUILD_TOP/source/libflux/include/influxdata $out/include + substitute $pkgcfgPath $out/pkgconfig/flux.pc \ + --replace /out $out + '' + lib.optionalString stdenv.isDarwin '' + install_name_tool -id $out/lib/libflux.dylib $out/lib/libflux.dylib + ''; + }; +in +buildGoModule rec { pname = "kapacitor"; - version = "1.5.7"; - - goPackagePath = "github.com/influxdata/kapacitor"; + version = "1.7.0"; src = fetchFromGitHub { owner = "influxdata"; repo = "kapacitor"; rev = "v${version}"; - sha256 = "0lzx25d4y5d8rsddgnypfskcxa5qlwc294sdzmn8dlq995yphpac"; + hash = "sha256-vDluZZrct1x+OMVU8MNO56YBZq7JNlpW68alOrAGYSM="; }; + vendorHash = "sha256-OX4QAthg15lwMyhOPyLTS++CMvGI5Um+FSd025PhW3E="; + + nativeBuildInputs = [ pkg-config ]; + + PKG_CONFIG_PATH = "${flux}/pkgconfig"; + + # Check that libflux is at the right version + preBuild = '' + flux_ver=$(grep github.com/influxdata/flux go.mod | awk '{print $2}') + if [ "$flux_ver" != "v${libflux_version}" ]; then + echo "go.mod wants libflux $flux_ver, but nix derivation provides ${libflux_version}" + exit 1 + fi + ''; + + # Remove failing server tests + preCheck = '' + rm server/server_test.go + ''; + meta = with lib; { description = "Open source framework for processing, monitoring, and alerting on time series data"; - license = licenses.mit; homepage = "https://influxdata.com/time-series-platform/kapacitor/"; - maintainers = with maintainers; [ offline ]; - platforms = with platforms; linux; + downloadPage = "https://github.com/influxdata/kapacitor/releases"; + license = licenses.mit; + changelog = "https://github.com/influxdata/kapacitor/blob/master/CHANGELOG.md"; + maintainers = with maintainers; [ offline totoroot ]; }; } diff --git a/pkgs/servers/monitoring/librenms/broken-binary-paths.diff b/pkgs/servers/monitoring/librenms/broken-binary-paths.diff new file mode 100644 index 000000000000..158ef779b10a --- /dev/null +++ b/pkgs/servers/monitoring/librenms/broken-binary-paths.diff @@ -0,0 +1,18 @@ +diff --git a/LibreNMS/Config.php b/LibreNMS/Config.php +index 5ed6b71..de7718a 100644 +--- a/LibreNMS/Config.php ++++ b/LibreNMS/Config.php +@@ -460,13 +460,6 @@ class Config + self::persist('device_display_default', $display_value); + } + +- // make sure we have full path to binaries in case PATH isn't set +- foreach (['fping', 'fping6', 'snmpgetnext', 'rrdtool', 'traceroute'] as $bin) { +- if (! is_executable(self::get($bin))) { +- self::persist($bin, self::locateBinary($bin)); +- } +- } +- + if (! self::has('rrdtool_version')) { + self::persist('rrdtool_version', Rrd::version()); + } diff --git a/pkgs/servers/monitoring/librenms/default.nix b/pkgs/servers/monitoring/librenms/default.nix new file mode 100644 index 000000000000..79b550e28146 --- /dev/null +++ b/pkgs/servers/monitoring/librenms/default.nix @@ -0,0 +1,116 @@ +{ lib +, fetchFromGitHub +, unixtools +, php82 +, python3 +, makeWrapper +, nixosTests +# run-time dependencies +, graphviz +, ipmitool +, libvirt +, monitoring-plugins +, mtr +, net-snmp +, nfdump +, nmap +, rrdtool +, system-sendmail +, whois +, dataDir ? "/var/lib/librenms", logDir ? "/var/log/librenms" }: + + +let + phpPackage = php82.withExtensions ({ enabled, all }: enabled ++ [ all.memcached ]); +in phpPackage.buildComposerProject rec { + name = pname + "-" + version; + pname = "librenms"; + version = "23.9.1"; + + src = fetchFromGitHub { + owner = "librenms"; + repo = pname; + rev = "${version}"; + sha256 = "sha256-glcD9AhxkvMmGo/7/RhQFeOtvHJ4pSiEFxaAjeVrTaI="; + }; + + vendorHash = "sha256-s6vdGfM7Ehy1bbkB44EQaHBBvTkpVw9yxhVsc/O8dHc="; + + php = phpPackage; + + buildInputs = [ + unixtools.whereis + (python3.withPackages (ps: with ps; [ + pymysql + python-dotenv + redis + setuptools + psutil + command_runner + ])) + ]; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mv $out/share/php/librenms/* $out + rm -r $out/share + + # This broken logic leads to bad settings being persisted in the database + patch -p1 -d $out -i ${./broken-binary-paths.diff} + + substituteInPlace \ + $out/misc/config_definitions.json \ + --replace '"default": "/bin/ping",' '"default": "/run/wrappers/bin/ping",' \ + --replace '"default": "fping",' '"default": "/run/wrappers/bin/fping",' \ + --replace '"default": "fping6",' '"default": "/run/wrappers/bin/fping6",' \ + --replace '"default": "rrdtool",' '"default": "${rrdtool}/bin/rrdtool",' \ + --replace '"default": "snmpgetnext",' '"default": "${net-snmp}/bin/snmpgetnext",' \ + --replace '"default": "traceroute",' '"default": "/run/wrappers/bin/traceroute",' \ + --replace '"default": "/usr/bin/dot",' '"default": "${graphviz}/bin/dot",' \ + --replace '"default": "/usr/bin/ipmitool",' '"default": "${ipmitool}/bin/ipmitool",' \ + --replace '"default": "/usr/bin/mtr",' '"default": "${mtr}/bin/mtr",' \ + --replace '"default": "/usr/bin/nfdump",' '"default": "${nfdump}/bin/nfdump",' \ + --replace '"default": "/usr/bin/nmap",' '"default": "${nmap}/bin/nmap",' \ + --replace '"default": "/usr/bin/sfdp",' '"default": "${graphviz}/bin/sfdp",' \ + --replace '"default": "/usr/bin/snmpbulkwalk",' '"default": "${net-snmp}/bin/snmpbulkwalk",' \ + --replace '"default": "/usr/bin/snmpget",' '"default": "${net-snmp}/bin/snmpget",' \ + --replace '"default": "/usr/bin/snmptranslate",' '"default": "${net-snmp}/bin/snmptranslate",' \ + --replace '"default": "/usr/bin/snmpwalk",' '"default": "${net-snmp}/bin/snmpwalk",' \ + --replace '"default": "/usr/bin/virsh",' '"default": "${libvirt}/bin/virsh",' \ + --replace '"default": "/usr/bin/whois",' '"default": "${whois}/bin/whois",' \ + --replace '"default": "/usr/lib/nagios/plugins",' '"default": "${monitoring-plugins}/libexec",' \ + --replace '"default": "/usr/sbin/sendmail",' '"default": "${system-sendmail}/bin/sendmail",' + + substituteInPlace $out/LibreNMS/wrapper.py --replace '/usr/bin/env php' '${phpPackage}/bin/php' + substituteInPlace $out/LibreNMS/__init__.py --replace '"/usr/bin/env", "php"' '"${phpPackage}/bin/php"' + substituteInPlace $out/snmp-scan.py --replace '"/usr/bin/env", "php"' '"${phpPackage}/bin/php"' + + wrapProgram $out/daily.sh --prefix PATH : ${phpPackage}/bin + + rm -rf $out/logs $out/rrd $out/bootstrap/cache $out/storage $out/.env + ln -s ${logDir} $out/logs + ln -s ${dataDir}/config.php $out/config.php + ln -s ${dataDir}/.env $out/.env + ln -s ${dataDir}/rrd $out/rrd + ln -s ${dataDir}/storage $out/storage + ln -s ${dataDir}/cache $out/bootstrap/cache + + runHook postInstall + ''; + + passthru = { + phpPackage = phpPackage; + tests.librenms = nixosTests.librenms; + }; + + meta = with lib; { + description = "A auto-discovering PHP/MySQL/SNMP based network monitoring"; + homepage = "https://www.librenms.org/"; + license = licenses.gpl3Only; + maintainers = teams.wdz.members; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/nosql/ferretdb/default.nix b/pkgs/servers/nosql/ferretdb/default.nix index 0fba93fb5b56..c59678418c31 100644 --- a/pkgs/servers/nosql/ferretdb/default.nix +++ b/pkgs/servers/nosql/ferretdb/default.nix @@ -1,6 +1,7 @@ { lib , buildGo121Module , fetchFromGitHub +, nixosTests }: buildGo121Module rec { @@ -34,6 +35,8 @@ buildGo121Module rec { $out/bin/ferretdb --version | grep ${version} ''; + passthru.tests = nixosTests.ferretdb; + meta = with lib; { description = "A truly Open Source MongoDB alternative"; homepage = "https://www.ferretdb.io/"; diff --git a/pkgs/servers/squid/default.nix b/pkgs/servers/squid/default.nix index 3ce09c88a848..5205115f8349 100644 --- a/pkgs/servers/squid/default.nix +++ b/pkgs/servers/squid/default.nix @@ -55,5 +55,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with maintainers; [ raskin ]; + knownVulnerabilities = [ "Squid has multiple unresolved security vulnerabilities, for more information see https://megamansec.github.io/Squid-Security-Audit/" ]; }; } diff --git a/pkgs/servers/tang/default.nix b/pkgs/servers/tang/default.nix index 227daa2cfb9f..4206973dbd15 100644 --- a/pkgs/servers/tang/default.nix +++ b/pkgs/servers/tang/default.nix @@ -13,6 +13,7 @@ , testers , tang , gitUpdater +, nixosTests }: stdenv.mkDerivation rec { @@ -53,10 +54,13 @@ stdenv.mkDerivation rec { ''; passthru = { - tests.version = testers.testVersion { - package = tang; - command = "${tang}/libexec/tangd --version"; - version = "tangd ${version}"; + tests = { + inherit (nixosTests) tang; + version = testers.testVersion { + package = tang; + command = "${tang}/libexec/tangd --version"; + version = "tangd ${version}"; + }; }; updateScript = gitUpdater { }; }; @@ -67,5 +71,6 @@ stdenv.mkDerivation rec { changelog = "https://github.com/latchset/tang/releases/tag/v${version}"; maintainers = with lib.maintainers; [ fpletz ]; license = lib.licenses.gpl3Plus; + mainProgram = "tangd"; }; } diff --git a/pkgs/tools/backup/borgbackup/default.nix b/pkgs/tools/backup/borgbackup/default.nix index a900df590eac..e11f3f1ad498 100644 --- a/pkgs/tools/backup/borgbackup/default.nix +++ b/pkgs/tools/backup/borgbackup/default.nix @@ -37,7 +37,7 @@ python3Packages.buildPythonApplication rec { # docs sphinxHook - guzzle_sphinx_theme + guzzle-sphinx-theme # shell completions installShellFiles diff --git a/pkgs/tools/misc/czkawka/default.nix b/pkgs/tools/misc/czkawka/default.nix index 6506101908d0..3379c0fbe012 100644 --- a/pkgs/tools/misc/czkawka/default.nix +++ b/pkgs/tools/misc/czkawka/default.nix @@ -19,16 +19,16 @@ rustPlatform.buildRustPackage rec { pname = "czkawka"; - version = "6.0.0"; + version = "6.1.0"; src = fetchFromGitHub { owner = "qarmin"; repo = "czkawka"; rev = version; - hash = "sha256-aMQq44vflpsI66CyaXekMfYh/ssH7UkCX0zsO55st3Y="; + hash = "sha256-uKmiBNwuu3Eduf0v3p2VYYNf6mgxJTBUsYs+tKZQZys="; }; - cargoHash = "sha256-1D87O4fje82Oxyj2Q9kAEey4uEzsNT7kTd8IbNT4WXE="; + cargoHash = "sha256-iBO99kpITVl7ySlXPkEg2YecS1lonVx9CbKt9WI180s="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/tools/misc/google-cloud-bigtable-tool/default.nix b/pkgs/tools/misc/google-cloud-bigtable-tool/default.nix new file mode 100644 index 000000000000..3c61159bf972 --- /dev/null +++ b/pkgs/tools/misc/google-cloud-bigtable-tool/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "google-cloud-bigtable-tool"; + version = "0.12.0"; + + src = fetchFromGitHub { + owner = "googleapis"; + repo = "cloud-bigtable-cbt-cli"; + rev = "v.${version}"; + hash = "sha256-N5nbWMj7kLIdRiwBUWFz4Rat88Wx01i3hceMxAvSjaA="; + }; + + vendorHash = "sha256-kwvEfvHs6XF84bB3Ss1307OjId0nh/0Imih1fRFdY0M="; + + preCheck = '' + buildFlagsArray+="-short" + ''; + + meta = with lib; { + description = "Google Cloud Bigtable Tool"; + longDescription = '' + `cbt` is the Google Cloud Bigtable Tool. A CLI utility to interact with Google Cloud Bigtable. + The cbt CLI is a command-line interface for performing several different operations on Cloud Bigtable. + It is written in Go using the Go client library for Cloud Bigtable. + An overview of its usage can be found in the [Google Cloud docs](https://cloud.google.com/bigtable/docs/cbt-overview). + For information about Bigtable in general, see the [overview of Bigtable](https://cloud.google.com/bigtable/docs/overview). + ''; + homepage = "https://github.com/googleapis/cloud-bigtable-cbt-cli"; + license = licenses.asl20; + maintainers = with maintainers; [ totoroot ]; + mainProgram = "cbt"; + }; +} diff --git a/pkgs/tools/misc/cloud-sql-proxy/default.nix b/pkgs/tools/misc/google-cloud-sql-proxy/default.nix similarity index 53% rename from pkgs/tools/misc/cloud-sql-proxy/default.nix rename to pkgs/tools/misc/google-cloud-sql-proxy/default.nix index 48783fddd654..7257f411d521 100644 --- a/pkgs/tools/misc/cloud-sql-proxy/default.nix +++ b/pkgs/tools/misc/google-cloud-sql-proxy/default.nix @@ -4,7 +4,7 @@ }: buildGoModule rec { - pname = "cloud-sql-proxy"; + pname = "google-cloud-sql-proxy"; version = "2.7.0"; src = fetchFromGitHub { @@ -24,6 +24,14 @@ buildGoModule rec { meta = with lib; { description = "Utility for ensuring secure connections to Google Cloud SQL instances"; + longDescription = '' + The Cloud SQL Auth Proxy is a utility for ensuring secure connections to your Cloud SQL instances. + It provides IAM authorization, allowing you to control who can connect to your instance through IAM permissions, + and TLS 1.3 encryption, without having to manage certificates. + See the [Connecting Overview](https://cloud.google.com/sql/docs/mysql/connect-overview) page for more information + on connecting to a Cloud SQL instance, or the [About the Proxy](https://cloud.google.com/sql/docs/mysql/sql-proxy) + page for details on how the Cloud SQL Proxy works. + ''; homepage = "https://github.com/GoogleCloudPlatform/cloud-sql-proxy"; license = licenses.asl20; maintainers = with maintainers; [ nicknovitski totoroot ]; diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix index 8790d5ada935..740a9935ca35 100644 --- a/pkgs/tools/networking/easyrsa/default.nix +++ b/pkgs/tools/networking/easyrsa/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "easyrsa"; - version = "3.1.6"; + version = "3.1.7"; src = fetchFromGitHub { owner = "OpenVPN"; repo = "easy-rsa"; rev = "v${version}"; - sha256 = "sha256-VbL2QXc4IaTe6u17nhByIk+SEsKLhl6sk85E5moGfjs="; + sha256 = "sha256-zdVcT04nj7eE1a6M7WHeWpwG/TVTwyK+WgD70XwPXfY="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/networking/sockdump/default.nix b/pkgs/tools/networking/sockdump/default.nix index db9edba0b229..95920a91eef3 100644 --- a/pkgs/tools/networking/sockdump/default.nix +++ b/pkgs/tools/networking/sockdump/default.nix @@ -2,13 +2,13 @@ python3.pkgs.buildPythonApplication rec { pname = "sockdump"; - version = "unstable-2022-10-12"; + version = "unstable-2023-09-16"; src = fetchFromGitHub { owner = "mechpen"; repo = pname; - rev = "005dcb056238c2e37ff378aef27c953208ffa08f"; - hash = "sha256-X8PIUDxlcdPoD7+aLDWzlWV++P3mmu52BwY7irhypww="; + rev = "713759e383366feae76863881e851a6411c73b68"; + hash = "sha256-q6jdwFhl2G9o2C0BVU6Xz7xizO00yaSQ2KSR/z4fixY="; }; propagatedBuildInputs = [ bcc ]; diff --git a/pkgs/tools/networking/veilid/Cargo.lock b/pkgs/tools/networking/veilid/Cargo.lock index d210e639c880..cb0a0243889e 100644 --- a/pkgs/tools/networking/veilid/Cargo.lock +++ b/pkgs/tools/networking/veilid/Cargo.lock @@ -64,18 +64,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] name = "allo-isolate" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c258c1a017ecaccfb34c8fa46ecbb2f5402584e31082c12b5caf0be82ac5ac44" +checksum = "f56b7997817c178b853573e8bdfb6c3afe02810b43f17d766d6703560074b0c3" dependencies = [ "atomic", ] @@ -158,9 +158,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.5.0" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", @@ -172,15 +172,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" dependencies = [ "utf8parse", ] @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -288,20 +288,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener", + "event-listener 2.5.3", "futures-core", ] [[package]] name = "async-executor" -version = "1.5.1" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +checksum = "2c1da3ae8dabd9c00f453a329dfe1fb28da3c0a72e2478cdcd93171740c20499" dependencies = [ "async-lock", "async-task", "concurrent-queue", - "fastrand", + "fastrand 2.0.1", "futures-lite", "slab", ] @@ -335,7 +335,7 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.23", + "rustix 0.37.25", "slab", "socket2 0.4.9", "waker-fn", @@ -347,24 +347,41 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ - "event-listener", + "event-listener 2.5.3", ] [[package]] name = "async-process" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" dependencies = [ "async-io", "async-lock", - "autocfg", + "async-signal", "blocking", "cfg-if 1.0.0", - "event-listener", + "event-listener 3.0.0", "futures-lite", - "rustix 0.37.23", - "signal-hook", + "rustix 0.38.19", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-signal" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a5415b7abcdc9cd7d63d6badba5288b2ca017e3fbd4173b8f405449f1a2399" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if 1.0.0", + "futures-core", + "futures-io", + "rustix 0.38.19", + "signal-hook-registry", + "slab", "windows-sys 0.48.0", ] @@ -398,9 +415,9 @@ dependencies = [ [[package]] name = "async-std-resolver" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0354a68a52265a3bde76005ddd2726624ef8624614f7f58871301de205a58a59" +checksum = "63547755965f54b682ed0fcb3fa467905fe071ef8feff2d59f24c7afc59661bc" dependencies = [ "async-std", "async-trait", @@ -412,10 +429,32 @@ dependencies = [ ] [[package]] -name = "async-task" -version = "4.4.0" +name = "async-stream" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "async-task" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921" [[package]] name = "async-tls" @@ -433,13 +472,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -493,20 +532,19 @@ checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" [[package]] name = "atomic-waker" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attohttpc" -version = "0.16.3" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb8867f378f33f78a811a8eb9bf108ad99430d7aad43315dd9319c827ef6247" +checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ "http", "log", "url", - "wildmatch", ] [[package]] @@ -650,16 +688,15 @@ dependencies = [ [[package]] name = "blake3" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199c42ab6972d92c9f8995f086273d25c42fc0f7b2a1fcefba465c1352d25ba5" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if 1.0.0", "constant_time_eq", - "digest 0.10.7", ] [[package]] @@ -670,7 +707,7 @@ checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -715,17 +752,18 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "blocking" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" dependencies = [ "async-channel", "async-lock", "async-task", - "atomic-waker", - "fastrand", + "fastrand 2.0.1", + "futures-io", "futures-lite", - "log", + "piper", + "tracing", ] [[package]] @@ -751,9 +789,9 @@ checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" @@ -901,9 +939,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.3" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ed82781cea27b43c9b106a979fe450a13a31aab0500595fb3fc06616de08e6" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ "clap_builder", "clap_derive", @@ -911,9 +949,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.2" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ "anstream", "anstyle", @@ -931,7 +969,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -997,9 +1035,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" dependencies = [ "crossbeam-utils", ] @@ -1025,26 +1063,27 @@ dependencies = [ [[package]] name = "console-api" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e" +checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787" dependencies = [ - "prost", + "futures-core", + "prost 0.12.1", "prost-types", - "tonic", + "tonic 0.10.2", "tracing-core", ] [[package]] name = "console-subscriber" -version = "0.1.10" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4cf42660ac07fcebed809cfe561dd8730bcd35b075215e6479c516bcd0d11cb" +checksum = "7481d4c57092cd1c19dd541b92bdce883de840df30aa5d03fd48a3935c01842e" dependencies = [ "console-api", "crossbeam-channel", "crossbeam-utils", - "futures", + "futures-task", "hdrhistogram", "humantime", "prost-types", @@ -1053,7 +1092,7 @@ dependencies = [ "thread_local", "tokio", "tokio-stream", - "tonic", + "tonic 0.10.2", "tracing", "tracing-core", "tracing-subscriber", @@ -1308,9 +1347,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.0" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -1331,7 +1370,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -1387,7 +1426,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -1409,7 +1448,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -1419,7 +1458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.14.0", + "hashbrown 0.14.1", "lock_api", "once_cell", "parking_lot_core 0.9.8", @@ -1443,9 +1482,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", +] [[package]] name = "derivative" @@ -1507,9 +1549,9 @@ checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" [[package]] name = "dyn-clone" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" +checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd" [[package]] name = "ed25519" @@ -1531,7 +1573,7 @@ dependencies = [ "ed25519", "rand_core", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "signature", "zeroize", ] @@ -1557,7 +1599,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -1577,7 +1619,7 @@ checksum = "04d0b288e3bb1d861c4403c1774a6f7a798781dfc519b3647df2a3dd4ae95f25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -1603,9 +1645,9 @@ dependencies = [ [[package]] name = "enumset" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e875f1719c16de097dee81ed675e2d9bb63096823ed3f0ca827b7dea3028bbbb" +checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d" dependencies = [ "enumset_derive", "serde", @@ -1620,7 +1662,7 @@ dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -1654,25 +1696,14 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", "libc", "windows-sys 0.48.0", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "error-code" version = "2.3.1" @@ -1689,6 +1720,17 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "event-listener" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "eyre" version = "0.6.8" @@ -1720,6 +1762,12 @@ dependencies = [ "instant", ] +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "fdeflate" version = "0.3.0" @@ -1747,9 +1795,9 @@ checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" [[package]] name = "flate2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "miniz_oxide", @@ -1827,7 +1875,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" dependencies = [ - "rustix 0.38.13", + "rustix 0.38.19", "windows-sys 0.48.0", ] @@ -1885,7 +1933,7 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "fastrand", + "fastrand 1.9.0", "futures-core", "futures-io", "memchr", @@ -1902,7 +1950,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -2128,9 +2176,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" dependencies = [ "ahash 0.8.3", "allocator-api2", @@ -2142,7 +2190,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.0", + "hashbrown 0.14.1", ] [[package]] @@ -2187,9 +2235,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -2401,12 +2449,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.1", ] [[package]] @@ -2433,7 +2481,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", "windows-sys 0.48.0", ] @@ -2465,6 +2513,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2553,18 +2610,18 @@ dependencies = [ [[package]] name = "keyvaluedb" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8833bc9e937f44bac0e8d129b3ccda60dee6ca5fa2757d7e05a5e04503df02fb" +checksum = "9bdcaabe14fa83eaae1fb92480f619c5a8b413580723153da0334848eb2dff24" dependencies = [ "smallvec", ] [[package]] name = "keyvaluedb-memorydb" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14fdc324ae658318df46f62e64159c5662b94bcc99f9b6403d47d20ca7768b21" +checksum = "62802173041ed97845bc20f8cf6817e445fe537ed879ddf43fb96166829ec8ff" dependencies = [ "keyvaluedb", "parking_lot 0.12.1", @@ -2572,9 +2629,9 @@ dependencies = [ [[package]] name = "keyvaluedb-sqlite" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6bad95a1ad34c10ad4823fae1cb655be7fec022de642c95fbfafad360ba2f54" +checksum = "144f474a27a7dadc5c179c08ef9a4662acaca8047f4e5c30d5b77582243c7538" dependencies = [ "hex", "keyvaluedb", @@ -2585,9 +2642,9 @@ dependencies = [ [[package]] name = "keyvaluedb-web" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26cc6bb420f98cdd63a72c95eaa06947cdbd04e60a8d296b87f466196bacf068" +checksum = "d93d243dfa1643389f8b981ddc07b2a7c533f0fae38b3f5831b004b2cc7f6353" dependencies = [ "async-lock", "flume", @@ -2625,9 +2682,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.148" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libloading" @@ -2676,9 +2733,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "lock_api" @@ -2740,15 +2797,15 @@ dependencies = [ [[package]] name = "matchit" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -3107,9 +3164,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] @@ -3120,7 +3177,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", ] @@ -3228,11 +3285,11 @@ dependencies = [ "opentelemetry-semantic-conventions", "opentelemetry_api", "opentelemetry_sdk", - "prost", + "prost 0.11.9", "protobuf", "thiserror", "tokio", - "tonic", + "tonic 0.9.2", ] [[package]] @@ -3245,9 +3302,9 @@ dependencies = [ "grpcio", "opentelemetry_api", "opentelemetry_sdk", - "prost", + "prost 0.11.9", "protobuf", - "tonic", + "tonic 0.9.2", ] [[package]] @@ -3307,9 +3364,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-float" -version = "3.9.1" +version = "3.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a54938017eacd63036332b4ae5c8a49fc8c0c1d6d629893057e4f13609edd06" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" dependencies = [ "num-traits", ] @@ -3372,9 +3429,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" +checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067" [[package]] name = "parking_lot" @@ -3461,9 +3518,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ "memchr", "thiserror", @@ -3472,9 +3529,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a" +checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8" dependencies = [ "pest", "pest_generator", @@ -3482,26 +3539,26 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141" +checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] name = "pest_meta" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f" +checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d" dependencies = [ "once_cell", "pest", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3531,7 +3588,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -3546,6 +3603,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -3608,6 +3676,12 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -3635,9 +3709,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -3649,7 +3723,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +dependencies = [ + "bytes", + "prost-derive 0.12.1", ] [[package]] @@ -3659,19 +3743,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "prost-types" -version = "0.11.9" +name = "prost-derive" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" dependencies = [ - "prost", + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "prost-types" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf" +dependencies = [ + "prost 0.12.1", ] [[package]] @@ -3732,7 +3829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf36131a8443d1cda3cd66eeac16d60ce46aa7c415f71e12c28d95c195e3ff23" dependencies = [ "gen_ops", - "itertools", + "itertools 0.10.5", "num-integer", "num-traits", ] @@ -3774,14 +3871,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.5" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.8", - "regex-syntax 0.7.5", + "regex-automata 0.4.2", + "regex-syntax 0.8.2", ] [[package]] @@ -3795,13 +3892,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", ] [[package]] @@ -3812,9 +3909,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "resolv-conf" @@ -3836,11 +3933,25 @@ dependencies = [ "libc", "once_cell", "spin 0.5.2", - "untrusted", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e" +dependencies = [ + "cc", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", +] + [[package]] name = "ron" version = "0.7.1" @@ -3939,9 +4050,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.23" +version = "0.37.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035" dependencies = [ "bitflags 1.3.2", "errno", @@ -3953,14 +4064,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.13" +version = "0.38.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" dependencies = [ "bitflags 2.4.0", "errno", "libc", - "linux-raw-sys 0.4.7", + "linux-raw-sys 0.4.10", "windows-sys 0.48.0", ] @@ -3971,7 +4082,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ "log", - "ring", + "ring 0.16.20", "sct", "webpki", ] @@ -4008,9 +4119,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.13" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161" +checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" dependencies = [ "dyn-clone", "schemars_derive", @@ -4020,9 +4131,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.13" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737" +checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" dependencies = [ "proc-macro2", "quote", @@ -4048,8 +4159,8 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "ring", - "untrusted", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -4097,9 +4208,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "send_wrapper" @@ -4118,9 +4229,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" dependencies = [ "serde_derive", ] @@ -4156,6 +4267,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "serde_bytes" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +dependencies = [ + "serde", +] + [[package]] name = "serde_cbor" version = "0.11.2" @@ -4168,13 +4288,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -4196,7 +4316,7 @@ checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -4218,7 +4338,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -4236,7 +4356,7 @@ version = "0.9.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.0.2", "itoa", "ryu", "serde", @@ -4265,14 +4385,14 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -4294,9 +4414,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -4305,9 +4425,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -4403,9 +4523,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "snailquote" @@ -4523,9 +4643,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.36" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e02e55d62894af2a08aca894c6577281f76769ba47c94d5756bec8ac6e7373" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", @@ -4563,11 +4683,11 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.37.23", + "rustix 0.38.19", "windows-sys 0.48.0", ] @@ -4582,22 +4702,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -4623,14 +4743,15 @@ dependencies = [ [[package]] name = "time" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", "itoa", "libc", "num_threads", + "powerfmt", "serde", "time-core", "time-macros", @@ -4638,15 +4759,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -4668,9 +4789,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ "backtrace", "bytes", @@ -4704,7 +4825,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] @@ -4720,9 +4841,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -4769,7 +4890,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.0.2", "serde", "serde_spanned", "toml_datetime", @@ -4795,7 +4916,34 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", + "prost 0.11.9", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.4", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost 0.12.1", "tokio", "tokio-stream", "tower", @@ -4838,11 +4986,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" dependencies = [ - "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -4862,20 +5009,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -4986,9 +5133,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc775440033cb114085f6f2437682b194fa7546466024b1037e82a48a052a69" +checksum = "559ac980345f7f5020883dd3bcacf176355225e01916f8c2efecad7534f682c6" dependencies = [ "async-trait", "cfg-if 1.0.0", @@ -5011,9 +5158,9 @@ dependencies = [ [[package]] name = "trust-dns-resolver" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff7aed33ef3e8bf2c9966fccdfed93f93d46f432282ea875cd66faabc6ef2f" +checksum = "c723b0e608b24ad04c73b2607e0241b2c98fd79795a95e98b068b6966138a29d" dependencies = [ "cfg-if 1.0.0", "futures-util", @@ -5059,14 +5206,14 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals 0.28.0", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] name = "tungstenite" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", "bytes", @@ -5122,9 +5269,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode_categories" @@ -5154,6 +5301,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.4.1" @@ -5215,13 +5368,14 @@ checksum = "a9ee584edf237fac328b891dd06c21e7914a1db3762907edc366a13803451fe3" [[package]] name = "veilid-cli" -version = "0.2.3" +version = "0.2.4" dependencies = [ "arboard", "async-std", "async-tungstenite", "cfg-if 1.0.0", - "clap 4.4.3", + "chrono", + "clap 4.4.6", "config", "crossbeam-channel", "cursive", @@ -5251,7 +5405,7 @@ dependencies = [ [[package]] name = "veilid-core" -version = "0.2.3" +version = "0.2.4" dependencies = [ "argon2", "async-io", @@ -5281,8 +5435,8 @@ dependencies = [ "flume", "futures-util", "getrandom", + "glob", "hex", - "ifstructs", "jni", "jni-sys", "js-sys", @@ -5297,8 +5451,6 @@ dependencies = [ "lz4_flex", "ndk", "ndk-glue", - "netlink-packet-route", - "netlink-sys", "nix 0.27.1", "num-traits", "once_cell", @@ -5307,8 +5459,6 @@ dependencies = [ "parking_lot 0.12.1", "paste", "range-set-blaze", - "rtnetlink", - "rusqlite", "rustls", "rustls-pemfile", "schemars", @@ -5316,6 +5466,7 @@ dependencies = [ "serde", "serde-big-array", "serde-wasm-bindgen 0.6.0", + "serde_bytes", "serde_json", "serial_test", "shell-words", @@ -5356,7 +5507,7 @@ dependencies = [ [[package]] name = "veilid-flutter" -version = "0.2.3" +version = "0.2.4" dependencies = [ "allo-isolate", "async-std", @@ -5371,6 +5522,7 @@ dependencies = [ "opentelemetry", "opentelemetry-otlp", "opentelemetry-semantic-conventions", + "paranoid-android", "parking_lot 0.12.1", "serde", "serde_json", @@ -5389,15 +5541,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a3dabbda02cfe176635dcaa18a021416ff2eb4d0b47a913e3fdc7f62049d7b1" dependencies = [ - "hashbrown 0.14.0", + "hashbrown 0.14.1", "serde", ] [[package]] name = "veilid-igd" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28428a3f826ed334f995522e554d7c8c1a5a0e0a0248fc795a31022ddf436c9d" +checksum = "ce2b3c073da0025538ff4cf5bea61a7a7a046c1bf060e2d0981c71800747551d" dependencies = [ "attohttpc", "log", @@ -5408,14 +5560,14 @@ dependencies = [ [[package]] name = "veilid-server" -version = "0.2.3" +version = "0.2.4" dependencies = [ "ansi_term", "async-std", "async-tungstenite", "backtrace", "cfg-if 1.0.0", - "clap 4.4.3", + "clap 4.4.6", "color-eyre", "config", "console-subscriber", @@ -5458,7 +5610,7 @@ dependencies = [ [[package]] name = "veilid-tools" -version = "0.2.3" +version = "0.2.4" dependencies = [ "android_logger 0.13.3", "async-lock", @@ -5473,6 +5625,7 @@ dependencies = [ "fn_name", "futures-util", "getrandom", + "ifstructs", "jni", "jni-sys", "js-sys", @@ -5481,6 +5634,8 @@ dependencies = [ "log", "ndk", "ndk-glue", + "netlink-packet-route", + "netlink-sys", "nix 0.27.1", "once_cell", "oslog", @@ -5489,6 +5644,7 @@ dependencies = [ "rand", "rand_core", "range-set-blaze", + "rtnetlink", "send_wrapper 0.6.0", "serial_test", "simplelog", @@ -5506,11 +5662,12 @@ dependencies = [ "wasm-bindgen-test", "wasm-logger", "wee_alloc", + "winapi", ] [[package]] name = "veilid-wasm" -version = "0.2.3" +version = "0.2.4" dependencies = [ "cfg-if 1.0.0", "console_error_panic_hook", @@ -5523,6 +5680,7 @@ dependencies = [ "send_wrapper 0.6.0", "serde", "serde-wasm-bindgen 0.6.0", + "serde_bytes", "serde_json", "tracing", "tracing-subscriber", @@ -5549,9 +5707,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "waker-fn" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" @@ -5601,7 +5759,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", "wasm-bindgen-shared", ] @@ -5635,7 +5793,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5699,12 +5857,12 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring", - "untrusted", + "ring 0.17.3", + "untrusted 0.9.0", ] [[package]] @@ -5760,7 +5918,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.13", + "rustix 0.38.19", ] [[package]] @@ -5769,12 +5927,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" -[[package]] -name = "wildmatch" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f44b95f62d34113cf558c93511ac93027e03e9c29a60dd0fd70e6e025c7270a" - [[package]] name = "winapi" version = "0.3.9" @@ -5793,9 +5945,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -5998,9 +6150,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.15" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" dependencies = [ "memchr", ] @@ -6076,9 +6228,9 @@ checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" [[package]] name = "xml-rs" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "xmltree" @@ -6108,7 +6260,7 @@ dependencies = [ "byteorder", "derivative", "enumflags2", - "fastrand", + "fastrand 1.9.0", "futures", "nb-connect", "nix 0.22.3", @@ -6150,7 +6302,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.36", + "syn 2.0.38", ] [[package]] diff --git a/pkgs/tools/networking/veilid/default.nix b/pkgs/tools/networking/veilid/default.nix index 66237d4ca789..76880eadc454 100644 --- a/pkgs/tools/networking/veilid/default.nix +++ b/pkgs/tools/networking/veilid/default.nix @@ -10,13 +10,13 @@ rustPlatform.buildRustPackage rec { pname = "veilid"; - version = "0.2.3"; + version = "0.2.4"; src = fetchFromGitLab { owner = "veilid"; repo = pname; rev = "v${version}"; - sha256 = "sha256-fpA0JsBp2mlyDWlwE6xgyX5KNI2FSypO6m1J9BI+Kjs="; + sha256 = "sha256-DQ/rFxUByPlZOHOLBO9OenT2WPiaBKl45ANiH+YkQ08="; }; cargoLock = { diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix index 0ac3a206e1b5..7f0b22d44581 100644 --- a/pkgs/tools/security/exploitdb/default.nix +++ b/pkgs/tools/security/exploitdb/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "exploitdb"; - version = "2023-10-10"; + version = "2023-10-14"; src = fetchFromGitLab { owner = "exploit-database"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-svFj+Kc2lonKqkwA4fbrvWK+JNJm3ANfWL+DCjB67pQ="; + hash = "sha256-Hhk7P6mUDxTGeAq1qbtCPV0Npm7ab/F++Q0cL5rJifc="; }; nativeBuildInputs = [ diff --git a/pkgs/tools/system/fdisk/default.nix b/pkgs/tools/system/fdisk/default.nix index e12fedd6eec9..b48108ea76c4 100644 --- a/pkgs/tools/system/fdisk/default.nix +++ b/pkgs/tools/system/fdisk/default.nix @@ -1,30 +1,57 @@ -{ fetchurl, lib, stdenv, parted, libuuid, gettext, guile }: +{ lib +, stdenv +, fetchurl +, gettext +, guile +, libuuid +, parted +}: stdenv.mkDerivation rec { pname = "gnufdisk"; - version = "2.0.0a"; # .0a1 seems broken, see https://lists.gnu.org/archive/html/bug-fdisk/2012-09/msg00000.html + version = "2.0.0a1"; src = fetchurl { url = "mirror://gnu/fdisk/gnufdisk-${version}.tar.gz"; - sha256 = "04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3"; + hash = "sha256-yWPYTf8RxBIQ//mUdC6fkKct/csEgbzEtTAiPtNRH7U="; }; - buildInputs = [ parted libuuid gettext guile ]; + postPatch = '' + sed -i "s/gnufdisk-common.h .*/\n/g" backend/configure + ''; + + strictDeps = true; + + nativeBuildInputs = [ + gettext + guile + ]; + + buildInputs = [ + guile + libuuid + parted + ]; + + env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [ + "-I../common/include" + "-I../debug/include" + "-I../exception/include" + ]; doCheck = true; meta = { description = "A command-line disk partitioning tool"; - longDescription = '' - GNU fdisk provides alternatives to util-linux fdisk and util-linux - cfdisk. It uses GNU Parted. + GNU fdisk provides a GNU version of the common disk partitioning tool + fdisk. fdisk is used for the creation and manipulation of disk partition + tables, and it understands a variety of different formats. ''; - - license = lib.licenses.gpl3Plus; - homepage = "https://www.gnu.org/software/fdisk/"; - + license = lib.licenses.gpl3Plus; + mainProgram = "gnufdisk"; + maintainers = [ lib.maintainers.wegank ]; platforms = lib.platforms.linux; }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 45f17a5eb261..d3d2ab35d299 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -83,11 +83,14 @@ mapAliases ({ badtouch = authoscope; # Project was renamed, added 20210626 baget = throw "'baget' has been removed due to being unmaintained"; + ballAndPaddle = throw "'ballAndPaddle' has been removed because it was broken and abandoned upstream"; # Added 2023-10-16 bashInteractive_5 = bashInteractive; # Added 2021-08-20 bash_5 = bash; # Added 2021-08-20 bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02 bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04 bird2 = bird; # Added 2022-02-21 + bitwig-studio1 = throw "bitwig-studio1 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03 + bitwig-studio2 = throw "bitwig-studio2 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03 ddclient = throw "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`."; # Added 2023-07-04 bluezFull = throw "'bluezFull' has been renamed to/replaced by 'bluez'"; # Converted to throw 2023-09-10 boost168 = throw "boost168 has been deprecated in favor of the latest version"; # Added 2023-06-08 @@ -329,6 +332,7 @@ mapAliases ({ gr-rds = throw "'gr-rds' has been renamed to/replaced by 'gnuradio3_7.pkgs.rds'"; # Converted to throw 2023-09-10 grub2_full = grub2; # Added 2022-11-18 grub = throw "grub1 was removed after not being maintained upstream for a decade. Please switch to another bootloader"; # Added 2023-04-11 + guile-lint = throw "'guile-lint' has been removed, please use 'guild lint' instead"; # Added 2023-10-16 ### H ### @@ -452,6 +456,7 @@ mapAliases ({ libwnck3 = libwnck; libyamlcpp = yaml-cpp; # Added 2023-01-29 libyamlcpp_0_3 = yaml-cpp_0_3; # Added 2023-01-29 + libxkbcommon_7 = throw "libxkbcommon_7 has been removed because it is impacted by security issues and not used in nixpkgs, move to 'libxkbcommon'"; # Added 2023-01-03 lightdm_gtk_greeter = lightdm-gtk-greeter; # Added 2022-08-01 llama = walk; # Added 2023-01-23 @@ -796,6 +801,7 @@ mapAliases ({ shhgit = throw "shhgit is broken and is no longer maintained. See https://github.com/eth0izzle/shhgit#-shhgit-is-no-longer-maintained-" ; # Added 2023-08-08 shipyard = jumppad; # Added 2023-06-06 signumone-ks = throw "signumone-ks has been removed from nixpkgs because the developers stopped offering the binaries"; # Added 2023-08-17 + simplenote = throw "'simplenote' has been removed because it is no longer maintained and insecure"; # Added 2023-10-09 slack-dark = slack; # Added 2020-03-27 slmenu = throw "slmenu has been removed (upstream is gone)"; # Added 2023-04-06 slurm-llnl = slurm; # renamed July 2017 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bcdb40e16e50..d0759c59aef4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2527,6 +2527,8 @@ with pkgs; scmpuff = callPackage ../applications/version-management/scmpuff { }; + silver-platter = python3Packages.callPackage ../applications/version-management/silver-platter { }; + stgit = callPackage ../applications/version-management/stgit { }; subgit = callPackage ../applications/version-management/subgit { }; @@ -3616,8 +3618,6 @@ with pkgs; clairvoyance = callPackage ../tools/security/clairvoyance { }; - cloud-sql-proxy = callPackage ../tools/misc/cloud-sql-proxy { }; - cloudfox = callPackage ../tools/security/cloudfox { }; cloudhunter = callPackage ../tools/security/cloudhunter { }; @@ -5853,6 +5853,8 @@ with pkgs; libnvme = callPackage ../os-specific/linux/libnvme { }; + librenms = callPackage ../servers/monitoring/librenms { }; + libxnd = callPackage ../development/libraries/libxnd { }; libz = callPackage ../development/libraries/libz { }; @@ -8753,6 +8755,10 @@ with pkgs; with-gce = true; }; + google-cloud-bigtable-tool = callPackage ../tools/misc/google-cloud-bigtable-tool { }; + + google-cloud-sql-proxy = callPackage ../tools/misc/google-cloud-sql-proxy { }; + google-fonts = callPackage ../data/fonts/google-fonts { }; google-clasp = callPackage ../development/tools/google-clasp { }; @@ -19361,10 +19367,6 @@ with pkgs; guile-hall = callPackage ../development/tools/guile/guile-hall { }; - guile-lint = callPackage ../development/tools/guile/guile-lint { - guile = guile_1_8; - }; - gwrap = callPackage ../development/tools/guile/g-wrap { guile = guile_2_2; }; @@ -20753,6 +20755,12 @@ with pkgs; captive-browser = callPackage ../applications/networking/browsers/captive-browser { }; + catboost = callPackage ../development/libraries/catboost { + # catboost requires clang 12+ for build + # after bumping the default version of llvm, check for compatibility with the cuda backend and pin it. + inherit (llvmPackages_12) stdenv; + }; + ndn-cxx = callPackage ../development/libraries/ndn-cxx { }; ndn-tools = callPackage ../tools/networking/ndn-tools { }; @@ -23715,7 +23723,6 @@ with pkgs; libxkbcommon = libxkbcommon_8; libxkbcommon_8 = callPackage ../development/libraries/libxkbcommon { }; - libxkbcommon_7 = callPackage ../development/libraries/libxkbcommon/libxkbcommon_7.nix { }; libxklavier = callPackage ../development/libraries/libxklavier { }; @@ -25114,7 +25121,9 @@ with pkgs; speechd = callPackage ../development/libraries/speechd { }; - speech-tools = callPackage ../development/libraries/speech-tools { }; + speech-tools = callPackage ../development/libraries/speech-tools { + inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa; + }; speex = callPackage ../development/libraries/speex { fftw = fftwFloat; @@ -30639,13 +30648,6 @@ with pkgs; bitscope = recurseIntoAttrs (callPackage ../applications/science/electronics/bitscope/packages.nix { }); - bitwig-studio1 = callPackage ../applications/audio/bitwig-studio/bitwig-studio1.nix { - inherit (gnome) zenity; - libxkbcommon = libxkbcommon_7; - }; - bitwig-studio2 = callPackage ../applications/audio/bitwig-studio/bitwig-studio2.nix { - inherit bitwig-studio1; - }; bitwig-studio3 = callPackage ../applications/audio/bitwig-studio/bitwig-studio3.nix { }; bitwig-studio4 = callPackage ../applications/audio/bitwig-studio/bitwig-studio4.nix { libjpeg = libjpeg8; @@ -37531,10 +37533,6 @@ with pkgs; azimuth = callPackage ../games/azimuth { }; - ballAndPaddle = callPackage ../games/ball-and-paddle { - guile = guile_1_8; - }; - banner = callPackage ../games/banner { }; bastet = callPackage ../games/bastet { }; @@ -40200,6 +40198,8 @@ with pkgs; cups-brother-hl1210w = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1210w { }; + cups-brother-hl2260d = pkgsi686Linux.callPackage ../misc/cups/drivers/hl2260d { }; + cups-brother-hl3140cw = pkgsi686Linux.callPackage ../misc/cups/drivers/hl3140cw { }; cups-brother-hll2340dw = pkgsi686Linux.callPackage ../misc/cups/drivers/hll2340dw { }; @@ -41681,8 +41681,6 @@ with pkgs; fpm2 = callPackage ../tools/security/fpm2 { }; - simplenote = callPackage ../applications/misc/simplenote { }; - hy = with python3Packages; toPythonApplication hy; wmic-bin = callPackage ../servers/monitoring/plugins/wmic-bin.nix { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 94eeeb99eb80..9d39469d2dc7 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -128,6 +128,7 @@ mapAliases ({ eebrightbox = throw "eebrightbox is unmaintained upstream and has therefore been removed"; # added 2022-02-03 EasyProcess = easyprocess; # added 2023-02-19 email_validator = email-validator; # added 2022-06-22 + et_xmlfile = et-xmlfile; # added 2023-10-16 ev3dev2 = python-ev3dev2; # added 2023-06-19 Fabric = fabric; # addedd 2023-02-19 face_recognition = face-recognition; # added 2022-10-15 @@ -173,6 +174,7 @@ mapAliases ({ graphite_beacon = throw "graphite_beacon was removed, because it is no longer maintained"; # added 2022-07-09 grappelli_safe = grappelli-safe; # added 2023-10-08 grpc_google_iam_v1 = grpc-google-iam-v1; # added 2021-08-21 + guzzle_sphinx_theme = guzzle-sphinx-theme; # added 2023-10-16 ha-av = throw "ha-av was removed, because it is no longer maintained"; # added 2022-04-06 HAP-python = hap-python; # added 2021-06-01 hangups = throw "hangups was removed because Google Hangouts has been shut down"; # added 2023-02-13 @@ -211,6 +213,7 @@ mapAliases ({ Keras = keras; # added 2021-11-25 ldap = python-ldap; # added 2022-09-16 lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04 + lazy_imports = lazy-imports; # added 2023-10-13 lektor = throw "lektor has been promoted to a top-level attribute"; # added 2023-08-01 logilab_astng = throw "logilab-astng has not been released since 2013 and is unmaintained"; # added 2022-11-29 logilab_common = logilab-common; # added 2022-11-21 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e30bcb28b2b9..dbf9fead10bf 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1803,7 +1803,12 @@ self: super: with self; { catalogue = callPackage ../development/python-modules/catalogue { }; - catboost = callPackage ../development/python-modules/catboost { }; + catboost = callPackage ../development/python-modules/catboost { + catboost = pkgs.catboost.override { + pythonSupport = true; + python3Packages = self; + }; + }; catppuccin = callPackage ../development/python-modules/catppuccin { }; @@ -1845,6 +1850,8 @@ self: super: with self; { comicon = callPackage ../development/python-modules/comicon { }; + command_runner = callPackage ../development/python-modules/command_runner { }; + connect-box = callPackage ../development/python-modules/connect_box { }; connection-pool = callPackage ../development/python-modules/connection-pool { }; @@ -1983,6 +1990,8 @@ self: super: with self; { cirq-core = callPackage ../development/python-modules/cirq-core { }; + cirq-ft = callPackage ../development/python-modules/cirq-ft { }; + cirq-ionq = callPackage ../development/python-modules/cirq-ionq { }; cirq-google = callPackage ../development/python-modules/cirq-google { }; @@ -3613,7 +3622,7 @@ self: super: with self; { etuples = callPackage ../development/python-modules/etuples { }; - et_xmlfile = callPackage ../development/python-modules/et_xmlfile { }; + et-xmlfile = callPackage ../development/python-modules/et-xmlfile { }; eufylife-ble-client = callPackage ../development/python-modules/eufylife-ble-client { }; @@ -4809,7 +4818,7 @@ self: super: with self; { else throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}"; - guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { }; + guzzle-sphinx-theme = callPackage ../development/python-modules/guzzle-sphinx-theme { }; gvm-tools = callPackage ../development/python-modules/gvm-tools { }; @@ -6006,7 +6015,7 @@ self: super: with self; { lazy_import = callPackage ../development/python-modules/lazy_import { }; - lazy_imports = callPackage ../development/python-modules/lazy_imports { }; + lazy-imports = callPackage ../development/python-modules/lazy-imports { }; lazy-loader = callPackage ../development/python-modules/lazy-loader { };