Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-04-07 00:11:54 +00:00 committed by GitHub
commit ee14a276ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
200 changed files with 13587 additions and 4462 deletions

View file

@ -2992,6 +2992,13 @@
githubId = 298705;
name = "Cyril Cohen";
};
colamaroro = {
name = "Corentin Rondier";
email = "github@rondier.io";
github = "colamaroro";
githubId = 12484955;
matrix = "@colamaroro:lovelyrad.io";
};
cole-h = {
name = "Cole Helbling";
email = "cole.e.helbling@outlook.com";
@ -4152,7 +4159,7 @@
};
dylanmtaylor = {
email = "dylan@dylanmtaylor.com";
github = "dylamtaylor";
github = "dylanmtaylor";
githubId = 277927;
name = "Dylan Taylor";
};
@ -10567,6 +10574,12 @@
githubId = 772914;
name = "Mikael Voss";
};
mwdomino = {
email = "matt@dominey.io";
github = "mwdomino";
githubId = 46284538;
name = "Matt Dominey";
};
mwolfe = {
email = "corp@m0rg.dev";
github = "m0rg-dev";

View file

@ -288,7 +288,6 @@ with lib.maintainers; {
golang = {
members = [
c00w
kalbasit
mic92
zowoq

View file

@ -73,6 +73,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [v2rayA](https://v2raya.org), a Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel. Available as [services.v2raya](options.html#opt-services.v2raya.enable).
- [wstunnel](https://github.com/erebe/wstunnel), a proxy tunnelling arbitrary TCP or UDP traffic through a WebSocket connection. Instances may be configured via [services.wstunnel](options.html#opt-services.wstunnel.enable).
- [ulogd](https://www.netfilter.org/projects/ulogd/index.html), a userspace logging daemon for netfilter/iptables related logging. Available as [services.ulogd](options.html#opt-services.ulogd.enable).
- [jellyseerr](https://github.com/Fallenbagel/jellyseerr), a web-based requests manager for Jellyfin, forked from Overseerr. Available as [services.jellyseerr](#opt-services.jellyseerr.enable).
@ -87,6 +89,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [nimdow](https://github.com/avahe-kellenberger/nimdow), a window manager written in Nim, inspired by dwm.
- [trurl](https://github.com/curl/trurl), a command line tool for URL parsing and manipulation.
- [woodpecker-agents](https://woodpecker-ci.org/), a simple CI engine with great extensibility. Available as [services.woodpecker-agents](#opt-services.woodpecker-agents.agents._name_.enable).
- [woodpecker-server](https://woodpecker-ci.org/), a simple CI engine with great extensibility. Available as [services.woodpecker-server](#opt-services.woodpecker-server.enable).
@ -321,6 +325,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- Enabling global redirect in `services.nginx.virtualHosts` now allows one to add exceptions with the `locations` option.
- A new option `proxyCachePath` has been added to `services.nginx`. Learn more about proxy_cache_path: <https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path>.
- A new option `recommendedBrotliSettings` has been added to `services.nginx`. Learn more about compression in Brotli format [here](https://github.com/google/ngx_brotli/blob/master/README.md).
- Updated recommended settings in `services.nginx.recommendedGzipSettings`:

View file

@ -1039,6 +1039,7 @@
./services/networking/wg-quick.nix
./services/networking/wireguard.nix
./services/networking/wpa_supplicant.nix
./services/networking/wstunnel.nix
./services/networking/x2goserver.nix
./services/networking/xandikos.nix
./services/networking/xinetd.nix

View file

@ -35,7 +35,10 @@ let
# ...
# } ];
usedPlatforms = config:
if isAttrs config then
# don't recurse into derivations possibly creating an infinite recursion
if isDerivation config then
[ ]
else if isAttrs config then
optional (config ? platform) config.platform
++ concatMap usedPlatforms (attrValues config)
else if isList config then
@ -505,6 +508,7 @@ in {
"mysensors"
"nad"
"numato"
"otbr"
"rflink"
"rfxtrx"
"scsgate"

View file

@ -0,0 +1,429 @@
{ config, lib, options, pkgs, utils, ... }:
with lib;
let
cfg = config.services.wstunnel;
attrsToArgs = attrs: utils.escapeSystemdExecArgs (
mapAttrsToList
(name: value: if value == true then "--${name}" else "--${name}=${value}")
attrs
);
hostPortSubmodule = {
options = {
host = mkOption {
description = mdDoc "The hostname.";
type = types.str;
};
port = mkOption {
description = mdDoc "The port.";
type = types.port;
};
};
};
localRemoteSubmodule = {
options = {
local = mkOption {
description = mdDoc "Local address and port to listen on.";
type = types.submodule hostPortSubmodule;
example = {
host = "127.0.0.1";
port = 51820;
};
};
remote = mkOption {
description = mdDoc "Address and port on remote to forward traffic to.";
type = types.submodule hostPortSubmodule;
example = {
host = "127.0.0.1";
port = 51820;
};
};
};
};
hostPortToString = { host, port }: "${host}:${builtins.toString port}";
localRemoteToString = { local, remote }: utils.escapeSystemdExecArg "${hostPortToString local}:${hostPortToString remote}";
commonOptions = {
enable = mkOption {
description = mdDoc "Whether to enable this `wstunnel` instance.";
type = types.bool;
default = true;
};
package = mkPackageOptionMD pkgs "wstunnel" {};
autoStart = mkOption {
description = mdDoc "Whether this tunnel server should be started automatically.";
type = types.bool;
default = true;
};
extraArgs = mkOption {
description = mdDoc "Extra command line arguments to pass to `wstunnel`. Attributes of the form `argName = true;` will be translated to `--argName`, and `argName = \"value\"` to `--argName=value`.";
type = with types; attrsOf (either str bool);
default = {};
example = {
"someNewOption" = true;
"someNewOptionWithValue" = "someValue";
};
};
verboseLogging = mkOption {
description = mdDoc "Enable verbose logging.";
type = types.bool;
default = false;
};
environmentFile = mkOption {
description = mdDoc "Environment file to be passed to the systemd service. Useful for passing secrets to the service to prevent them from being world-readable in the Nix store. Note however that the secrets are passed to `wstunnel` through the command line, which makes them locally readable for all users of the system at runtime.";
type = types.nullOr types.path;
default = null;
example = "/var/lib/secrets/wstunnelSecrets";
};
};
serverSubmodule = { config, ...}: {
options = commonOptions // {
listen = mkOption {
description = mdDoc "Address and port to listen on. Setting the port to a value below 1024 will also give the process the required `CAP_NET_BIND_SERVICE` capability.";
type = types.submodule hostPortSubmodule;
default = {
address = "0.0.0.0";
port = if config.enableHTTPS then 443 else 80;
};
defaultText = literalExpression ''
{
address = "0.0.0.0";
port = if enableHTTPS then 443 else 80;
}
'';
};
restrictTo = mkOption {
description = mdDoc "Accepted traffic will be forwarded only to this service. Set to `null` to allow forwarding to arbitrary addresses.";
type = types.nullOr (types.submodule hostPortSubmodule);
example = {
host = "127.0.0.1";
port = 51820;
};
};
enableHTTPS = mkOption {
description = mdDoc "Use HTTPS for the tunnel server.";
type = types.bool;
default = true;
};
tlsCertificate = mkOption {
description = mdDoc "TLS certificate to use instead of the hardcoded one in case of HTTPS connections. Use together with `tlsKey`.";
type = types.nullOr types.path;
default = null;
example = "/var/lib/secrets/cert.pem";
};
tlsKey = mkOption {
description = mdDoc "TLS key to use instead of the hardcoded on in case of HTTPS connections. Use together with `tlsCertificate`.";
type = types.nullOr types.path;
default = null;
example = "/var/lib/secrets/key.pem";
};
useACMEHost = mkOption {
description = mdDoc "Use a certificate generated by the NixOS ACME module for the given host. Note that this will not generate a new certificate - you will need to do so with `security.acme.certs`.";
type = types.nullOr types.str;
default = null;
example = "example.com";
};
};
};
clientSubmodule = { config, ... }: {
options = commonOptions // {
connectTo = mkOption {
description = mdDoc "Server address and port to connect to.";
type = types.submodule hostPortSubmodule;
example = {
host = "example.com";
};
};
enableHTTPS = mkOption {
description = mdDoc "Enable HTTPS when connecting to the server.";
type = types.bool;
default = true;
};
localToRemote = mkOption {
description = mdDoc "Local hosts and ports to listen on, plus the hosts and ports on remote to forward traffic to. Setting a local port to a value less than 1024 will additionally give the process the required CAP_NET_BIND_SERVICE capability.";
type = types.listOf (types.submodule localRemoteSubmodule);
default = [];
example = [ {
local = {
host = "127.0.0.1";
port = 8080;
};
remote = {
host = "127.0.0.1";
port = 8080;
};
} ];
};
dynamicToRemote = mkOption {
description = mdDoc "Host and port for the SOCKS5 proxy to dynamically forward traffic to. Leave this at `null` to disable the SOCKS5 proxy. Setting the port to a value less than 1024 will additionally give the service the required CAP_NET_BIND_SERVICE capability.";
type = types.nullOr (types.submodule hostPortSubmodule);
default = null;
example = {
host = "127.0.0.1";
port = 1080;
};
};
udp = mkOption {
description = mdDoc "Whether to forward UDP instead of TCP traffic.";
type = types.bool;
default = false;
};
udpTimeout = mkOption {
description = mdDoc "When using UDP forwarding, timeout in seconds after which the tunnel connection is closed. `-1` means no timeout.";
type = types.int;
default = 30;
};
httpProxy = mkOption {
description = mdDoc ''
Proxy to use to connect to the wstunnel server (`USER:PASS@HOST:PORT`).
::: {.warning}
Passwords specified here will be world-readable in the Nix store! To pass a password to the service, point the `environmentFile` option to a file containing `PROXY_PASSWORD=<your-password-here>` and set this option to `<user>:$PROXY_PASSWORD@<host>:<port>`. Note however that this will also locally leak the passwords at runtime via e.g. /proc/<pid>/cmdline.
:::
'';
type = types.nullOr types.str;
default = null;
};
soMark = mkOption {
description = mdDoc "Mark network packets with the SO_MARK sockoption with the specified value. Setting this option will also enable the required `CAP_NET_ADMIN` capability for the systemd service.";
type = types.nullOr types.int;
default = null;
};
upgradePathPrefix = mkOption {
description = mdDoc "Use a specific HTTP path prefix that will show up in the upgrade request to the `wstunnel` server. Useful when running `wstunnel` behind a reverse proxy.";
type = types.nullOr types.str;
default = null;
example = "wstunnel";
};
hostHeader = mkOption {
description = mdDoc "Use this as the HTTP host header instead of the real hostname. Useful for circumventing hostname-based firewalls.";
type = types.nullOr types.str;
default = null;
};
tlsSNI = mkOption {
description = mdDoc "Use this as the SNI while connecting via TLS. Useful for circumventing hostname-based firewalls.";
type = types.nullOr types.str;
default = null;
};
tlsVerifyCertificate = mkOption {
description = mdDoc "Whether to verify the TLS certificate of the server. It might be useful to set this to `false` when working with the `tlsSNI` option.";
type = types.bool;
default = true;
};
# The original argument name `websocketPingFrequency` is a misnomer, as the frequency is the inverse of the interval.
websocketPingInterval = mkOption {
description = mdDoc "Do a heartbeat ping every N seconds to keep up the websocket connection.";
type = types.nullOr types.ints.unsigned;
default = null;
};
upgradeCredentials = mkOption {
description = mdDoc ''
Use these credentials to authenticate during the HTTP upgrade request (Basic authorization type, `USER:[PASS]`).
::: {.warning}
Passwords specified here will be world-readable in the Nix store! To pass a password to the service, point the `environmentFile` option to a file containing `HTTP_PASSWORD=<your-password-here>` and set this option to `<user>:$HTTP_PASSWORD`. Note however that this will also locally leak the passwords at runtime via e.g. /proc/<pid>/cmdline.
:::
'';
type = types.nullOr types.str;
default = null;
};
customHeaders = mkOption {
description = mdDoc "Custom HTTP headers to send during the upgrade request.";
type = types.attrsOf types.str;
default = {};
example = {
"X-Some-Header" = "some-value";
};
};
};
};
generateServerUnit = name: serverCfg: {
name = "wstunnel-server-${name}";
value = {
description = "wstunnel server - ${name}";
requires = [ "network.target" "network-online.target" ];
after = [ "network.target" "network-online.target" ];
wantedBy = optional serverCfg.autoStart "multi-user.target";
serviceConfig = let
certConfig = config.security.acme.certs."${serverCfg.useACMEHost}";
in {
Type = "simple";
ExecStart = with serverCfg; let
resolvedTlsCertificate = if useACMEHost != null
then "${certConfig.directory}/fullchain.pem"
else tlsCertificate;
resolvedTlsKey = if useACMEHost != null
then "${certConfig.directory}/key.pem"
else tlsKey;
in ''
${package}/bin/wstunnel \
--server \
${optionalString (restrictTo != null) "--restrictTo=${utils.escapeSystemdExecArg (hostPortToString restrictTo)}"} \
${optionalString (resolvedTlsCertificate != null) "--tlsCertificate=${utils.escapeSystemdExecArg resolvedTlsCertificate}"} \
${optionalString (resolvedTlsKey != null) "--tlsKey=${utils.escapeSystemdExecArg resolvedTlsKey}"} \
${optionalString verboseLogging "--verbose"} \
${attrsToArgs extraArgs} \
${utils.escapeSystemdExecArg "${if enableHTTPS then "wss" else "ws"}://${hostPortToString listen}"}
'';
EnvironmentFile = optional (serverCfg.environmentFile != null) serverCfg.environmentFile;
DynamicUser = true;
SupplementaryGroups = optional (serverCfg.useACMEHost != null) certConfig.group;
PrivateTmp = true;
AmbientCapabilities = optional (serverCfg.listen.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
NoNewPrivileges = true;
RestrictNamespaces = "uts ipc pid user cgroup";
ProtectSystem = "strict";
ProtectHome = true;
ProtectKernelTunables = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
PrivateDevices = true;
RestrictSUIDSGID = true;
};
};
};
generateClientUnit = name: clientCfg: {
name = "wstunnel-client-${name}";
value = {
description = "wstunnel client - ${name}";
requires = [ "network.target" "network-online.target" ];
after = [ "network.target" "network-online.target" ];
wantedBy = optional clientCfg.autoStart "multi-user.target";
serviceConfig = {
Type = "simple";
ExecStart = with clientCfg; ''
${package}/bin/wstunnel \
${concatStringsSep " " (builtins.map (x: "--localToRemote=${localRemoteToString x}") localToRemote)} \
${concatStringsSep " " (mapAttrsToList (n: v: "--customHeaders=\"${n}: ${v}\"") customHeaders)} \
${optionalString (dynamicToRemote != null) "--dynamicToRemote=${utils.escapeSystemdExecArg (hostPortToString dynamicToRemote)}"} \
${optionalString udp "--udp"} \
${optionalString (httpProxy != null) "--httpProxy=${httpProxy}"} \
${optionalString (soMark != null) "--soMark=${toString soMark}"} \
${optionalString (upgradePathPrefix != null) "--upgradePathPrefix=${upgradePathPrefix}"} \
${optionalString (hostHeader != null) "--hostHeader=${hostHeader}"} \
${optionalString (tlsSNI != null) "--tlsSNI=${tlsSNI}"} \
${optionalString tlsVerifyCertificate "--tlsVerifyCertificate"} \
${optionalString (websocketPingInterval != null) "--websocketPingFrequency=${toString websocketPingInterval}"} \
${optionalString (upgradeCredentials != null) "--upgradeCredentials=${upgradeCredentials}"} \
--udpTimeoutSec=${toString udpTimeout} \
${optionalString verboseLogging "--verbose"} \
${attrsToArgs extraArgs} \
${utils.escapeSystemdExecArg "${if enableHTTPS then "wss" else "ws"}://${hostPortToString connectTo}"}
'';
EnvironmentFile = optional (clientCfg.environmentFile != null) clientCfg.environmentFile;
DynamicUser = true;
PrivateTmp = true;
AmbientCapabilities = (optional (clientCfg.soMark != null) [ "CAP_NET_ADMIN" ]) ++ (optional ((clientCfg.dynamicToRemote.port or 1024) < 1024 || (any (x: x.local.port < 1024) clientCfg.localToRemote)) [ "CAP_NET_BIND_SERVICE" ]);
NoNewPrivileges = true;
RestrictNamespaces = "uts ipc pid user cgroup";
ProtectSystem = "strict";
ProtectHome = true;
ProtectKernelTunables = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
PrivateDevices = true;
RestrictSUIDSGID = true;
};
};
};
in {
options.services.wstunnel = {
enable = mkEnableOption (mdDoc "wstunnel");
servers = mkOption {
description = mdDoc "`wstunnel` servers to set up.";
type = types.attrsOf (types.submodule serverSubmodule);
default = {};
example = {
"wg-tunnel" = {
listen.port = 8080;
enableHTTPS = true;
tlsCertificate = "/var/lib/secrets/fullchain.pem";
tlsKey = "/var/lib/secrets/key.pem";
restrictTo = {
host = "127.0.0.1";
port = 51820;
};
};
};
};
clients = mkOption {
description = mdDoc "`wstunnel` clients to set up.";
type = types.attrsOf (types.submodule clientSubmodule);
default = {};
example = {
"wg-tunnel" = {
connectTo = {
host = "example.com";
port = 8080;
};
enableHTTPS = true;
localToRemote = {
local = {
host = "127.0.0.1";
port = 51820;
};
remote = {
host = "127.0.0.1";
port = 51820;
};
};
udp = true;
};
};
};
};
config = mkIf cfg.enable {
systemd.services = (mapAttrs' generateServerUnit (filterAttrs (n: v: v.enable) cfg.servers)) // (mapAttrs' generateClientUnit (filterAttrs (n: v: v.enable) cfg.clients));
assertions = (mapAttrsToList (name: serverCfg: {
assertion = !(serverCfg.useACMEHost != null && (serverCfg.tlsCertificate != null || serverCfg.tlsKey != null));
message = ''
Options services.wstunnel.servers."${name}".useACMEHost and services.wstunnel.servers."${name}".{tlsCertificate, tlsKey} are mutually exclusive.
'';
}) cfg.servers) ++
(mapAttrsToList (name: serverCfg: {
assertion = !((serverCfg.tlsCertificate != null || serverCfg.tlsKey != null) && !(serverCfg.tlsCertificate != null && serverCfg.tlsKey != null));
message = ''
services.wstunnel.servers."${name}".tlsCertificate and services.wstunnel.servers."${name}".tlsKey need to be set together.
'';
}) cfg.servers) ++
(mapAttrsToList (name: clientCfg: {
assertion = !(clientCfg.localToRemote == [] && clientCfg.dynamicToRemote == null);
message = ''
Either one of services.wstunnel.clients."${name}".localToRemote or services.wstunnel.clients."${name}".dynamicToRemote must be set.
'';
}) cfg.clients);
};
meta.maintainers = with maintainers; [ alyaeanyx ];
}

View file

@ -48,6 +48,8 @@ let
# User and group
User = cfg.user;
Group = cfg.group;
# Working directory
WorkingDirectory = cfg.package;
# State directory and mode
StateDirectory = "mastodon";
StateDirectoryMode = "0750";
@ -110,6 +112,37 @@ let
$sudo ${cfg.package}/bin/tootctl "$@"
'';
sidekiqUnits = lib.attrsets.mapAttrs' (name: processCfg:
lib.nameValuePair "mastodon-sidekiq-${name}" (let
jobClassArgs = toString (builtins.map (c: "-q ${c}") processCfg.jobClasses);
jobClassLabel = toString ([""] ++ processCfg.jobClasses);
threads = toString (if processCfg.threads == null then cfg.sidekiqThreads else processCfg.threads);
in {
after = [ "network.target" "mastodon-init-dirs.service" ]
++ lib.optional databaseActuallyCreateLocally "postgresql.service"
++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
requires = [ "mastodon-init-dirs.service" ]
++ lib.optional databaseActuallyCreateLocally "postgresql.service"
++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
description = "Mastodon sidekiq${jobClassLabel}";
wantedBy = [ "mastodon.target" ];
environment = env // {
PORT = toString(cfg.sidekiqPort);
DB_POOL = threads;
};
serviceConfig = {
ExecStart = "${cfg.package}/bin/sidekiq ${jobClassArgs} -c ${threads} -r ${cfg.package}";
Restart = "always";
RestartSec = 20;
EnvironmentFile = [ "/var/lib/mastodon/.secrets_env" ] ++ cfg.extraEnvFiles;
WorkingDirectory = cfg.package;
# System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
})
) cfg.sidekiqProcesses;
in {
options = {
@ -195,12 +228,53 @@ in {
type = lib.types.port;
default = 55002;
};
sidekiqThreads = lib.mkOption {
description = lib.mdDoc "Worker threads used by the mastodon-sidekiq service.";
description = lib.mdDoc "Worker threads used by the mastodon-sidekiq-all service. If `sidekiqProcesses` is configured and any processes specify null `threads`, this value is used.";
type = lib.types.int;
default = 25;
};
sidekiqProcesses = lib.mkOption {
description = lib.mdDoc "How many Sidekiq processes should be used to handle background jobs, and which job classes they handle. *Read the [upstream documentation](https://docs.joinmastodon.org/admin/scaling/#sidekiq) before configuring this!*";
type = with lib.types; attrsOf (submodule {
options = {
jobClasses = lib.mkOption {
type = listOf (enum [ "default" "push" "pull" "mailers" "scheduler" "ingress" ]);
description = lib.mdDoc "If not empty, which job classes should be executed by this process. *Only one process should handle the 'scheduler' class. If left empty, this process will handle the 'scheduler' class.*";
};
threads = lib.mkOption {
type = nullOr int;
description = lib.mdDoc "Number of threads this process should use for executing jobs. If null, the configured `sidekiqThreads` are used.";
};
};
});
default = {
all = {
jobClasses = [ ];
threads = null;
};
};
example = {
all = {
jobClasses = [ ];
threads = null;
};
ingress = {
jobClasses = [ "ingress" ];
threads = 5;
};
default = {
jobClasses = [ "default" ];
threads = 10;
};
push-pull = {
jobClasses = [ "push" "pull" ];
threads = 5;
};
};
};
vapidPublicKeyFile = lib.mkOption {
description = lib.mdDoc ''
Path to file containing the public key used for Web Push
@ -482,7 +556,7 @@ in {
};
};
config = lib.mkIf cfg.enable {
config = lib.mkIf cfg.enable (lib.mkMerge [{
assertions = [
{
assertion = databaseActuallyCreateLocally -> (cfg.user == cfg.database.user);
@ -517,6 +591,12 @@ in {
environment.systemPackages = [ mastodonTootctl ];
systemd.targets.mastodon = {
description = "Target for all Mastodon services";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
};
systemd.services.mastodon-init-dirs = {
script = ''
umask 077
@ -551,7 +631,7 @@ in {
environment = env;
serviceConfig = {
Type = "oneshot";
WorkingDirectory = cfg.package;
SyslogIdentifier = "mastodon-init-dirs";
# System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " (systemCallsList ++ [ "@resources" ])) "@chown" "pipe" "pipe2" ];
} // cfgService;
@ -609,7 +689,7 @@ in {
requires = [ "mastodon-init-dirs.service" ]
++ lib.optional databaseActuallyCreateLocally "postgresql.service"
++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
wantedBy = [ "multi-user.target" ];
wantedBy = [ "mastodon.target" ];
description = "Mastodon streaming";
environment = env // (if cfg.enableUnixSocket
then { SOCKET = "/run/mastodon-streaming/streaming.socket"; }
@ -636,7 +716,7 @@ in {
requires = [ "mastodon-init-dirs.service" ]
++ lib.optional databaseActuallyCreateLocally "postgresql.service"
++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
wantedBy = [ "multi-user.target" ];
wantedBy = [ "mastodon.target" ];
description = "Mastodon web";
environment = env // (if cfg.enableUnixSocket
then { SOCKET = "/run/mastodon-web/web.socket"; }
@ -657,31 +737,6 @@ in {
path = with pkgs; [ file imagemagick ffmpeg ];
};
systemd.services.mastodon-sidekiq = {
after = [ "network.target" "mastodon-init-dirs.service" ]
++ lib.optional databaseActuallyCreateLocally "postgresql.service"
++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
requires = [ "mastodon-init-dirs.service" ]
++ lib.optional databaseActuallyCreateLocally "postgresql.service"
++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
wantedBy = [ "multi-user.target" ];
description = "Mastodon sidekiq";
environment = env // {
PORT = toString(cfg.sidekiqPort);
DB_POOL = toString cfg.sidekiqThreads;
};
serviceConfig = {
ExecStart = "${cfg.package}/bin/sidekiq -c ${toString cfg.sidekiqThreads} -r ${cfg.package}";
Restart = "always";
RestartSec = 20;
EnvironmentFile = [ "/var/lib/mastodon/.secrets_env" ] ++ cfg.extraEnvFiles;
WorkingDirectory = cfg.package;
# System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ file imagemagick ffmpeg ];
};
systemd.services.mastodon-media-auto-remove = lib.mkIf cfg.mediaAutoRemove.enable {
description = "Mastodon media auto remove";
environment = env;
@ -757,7 +812,9 @@ in {
];
users.groups.${cfg.group}.members = lib.optional cfg.configureNginx config.services.nginx.user;
};
}
{ systemd.services = sidekiqUnits; }
]);
meta.maintainers = with lib.maintainers; [ happy-river erictapen ];

View file

@ -51,11 +51,11 @@ in
default = "none";
type = types.enum ([ "none" "1" "2" "3" 1 2 3 ]);
apply = v: toString v;
description = lib.mdDoc "Garage replication mode, defaults to none, see: <https://garagehq.deuxfleurs.fr/reference_manual/configuration.html#replication_mode> for reference.";
description = lib.mdDoc "Garage replication mode, defaults to none, see: <https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/#replication-mode> for reference.";
};
};
};
description = lib.mdDoc "Garage configuration, see <https://garagehq.deuxfleurs.fr/reference_manual/configuration.html> for reference.";
description = lib.mdDoc "Garage configuration, see <https://garagehq.deuxfleurs.fr/documentation/reference-manual/configuration/> for reference.";
};
package = mkOption {

View file

@ -102,6 +102,17 @@ let
proxy_set_header X-Forwarded-Server $host;
'';
proxyCachePathConfig = concatStringsSep "\n" (mapAttrsToList (name: proxyCachePath: ''
proxy_cache_path ${concatStringsSep " " [
"/var/cache/nginx/${name}"
"keys_zone=${proxyCachePath.keysZoneName}:${proxyCachePath.keysZoneSize}"
"levels=${proxyCachePath.levels}"
"use_temp_path=${if proxyCachePath.useTempPath then "on" else "off"}"
"inactive=${proxyCachePath.inactive}"
"max_size=${proxyCachePath.maxSize}"
]};
'') (filterAttrs (name: conf: conf.enable) cfg.proxyCachePath));
upstreamConfig = toString (flip mapAttrsToList cfg.upstreams (name: upstream: ''
upstream ${name} {
${toString (flip mapAttrsToList upstream.servers (name: server: ''
@ -241,16 +252,10 @@ let
server_tokens ${if cfg.serverTokens then "on" else "off"};
${optionalString cfg.proxyCache.enable ''
proxy_cache_path /var/cache/nginx keys_zone=${cfg.proxyCache.keysZoneName}:${cfg.proxyCache.keysZoneSize}
levels=${cfg.proxyCache.levels}
use_temp_path=${if cfg.proxyCache.useTempPath then "on" else "off"}
inactive=${cfg.proxyCache.inactive}
max_size=${cfg.proxyCache.maxSize};
''}
${cfg.commonHttpConfig}
${proxyCachePathConfig}
${vhosts}
${optionalString cfg.statusPage ''
@ -808,10 +813,10 @@ in
'';
};
proxyCache = mkOption {
type = types.submodule {
proxyCachePath = mkOption {
type = types.attrsOf (types.submodule ({ ... }: {
options = {
enable = mkEnableOption (lib.mdDoc "Enable proxy cache");
enable = mkEnableOption (lib.mdDoc "this proxy cache path entry");
keysZoneName = mkOption {
type = types.str;
@ -869,9 +874,12 @@ in
description = lib.mdDoc "Set maximum cache size";
};
};
};
}));
default = {};
description = lib.mdDoc "Configure proxy cache";
description = lib.mdDoc ''
Configure a proxy cache path entry.
See <http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path> for documentation.
'';
};
resolver = mkOption {
@ -982,6 +990,12 @@ in
The Nginx log directory has been moved to /var/log/nginx, the cache directory
to /var/cache/nginx. The option services.nginx.stateDir has been removed.
'')
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "inactive" ] [ "services" "nginx" "proxyCachePath" "" "inactive" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "useTempPath" ] [ "services" "nginx" "proxyCachePath" "" "useTempPath" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "levels" ] [ "services" "nginx" "proxyCachePath" "" "levels" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "keysZoneSize" ] [ "services" "nginx" "proxyCachePath" "" "keysZoneSize" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "keysZoneName" ] [ "services" "nginx" "proxyCachePath" "" "keysZoneName" ])
(mkRenamedOptionModule [ "services" "nginx" "proxyCache" "enable" ] [ "services" "nginx" "proxyCachePath" "" "enable" ])
];
config = mkIf cfg.enable {

View file

@ -9,7 +9,7 @@
${extraInit}
server.wait_for_unit("redis-mastodon.service")
server.wait_for_unit("mastodon-sidekiq.service")
server.wait_for_unit("mastodon-sidekiq-all.service")
server.wait_for_unit("mastodon-streaming.service")
server.wait_for_unit("mastodon-web.service")
server.wait_for_open_port(55000)

View file

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "ncspot";
version = "0.13.0";
version = "0.13.1";
src = fetchFromGitHub {
owner = "hrkfdn";
repo = "ncspot";
rev = "v${version}";
hash = "sha256-YWA8chp33SkMdo+XT/7qikIkgwt8pozC9wMFpY8Dv8Q=";
hash = "sha256-TZTADhoJloqMSO2UgbwwvJoZqhi8UC1qNDDNxE6Aq54=";
};
cargoHash = "sha256-DB3r6pPtustEQG8QXM6qT1hkd7msC//46bhVP/HMxnY=";
cargoHash = "sha256-tEk7BxAN8jEquJiv89vC0lYrB/sKeZhThBzs09A9NpA=";
nativeBuildInputs = [ pkg-config ];

View file

@ -0,0 +1,27 @@
--- a/resources/pulsar.sh 2023-03-16 04:11:14.000000000 +0100
+++ b/resources/pulsar.sh 2023-03-24 14:37:13.468813964 +0100
@@ -123,22 +123,9 @@
elif [ $OS == 'Linux' ]; then
SCRIPT=$(readlink -f "$0")
- PULSAR_PATH="/opt/Pulsar/pulsar"
+ # PULSAR_PATH is set-up via `wrapProgram` in the postFixup phase
- #Will allow user to get context menu on cinnamon desktop enviroment
- #Add a check to make sure that DESKTOP_SESSION is set before attempting to grep it
- #expr substr is expecting 3 arguments string, index, length
- #If grep doesnt find anything is provides an empty string which causes the expr: syntax error: missing argument after '8' error - see pulsar-edit/pulsar#174
- #Im also not quite sure why they used grep instead of simply [ "${DESKTOP_SESSION}" == "cinnamon" ]
- if [ -n "${DESKTOP_SESSION}" ] && [ "$(expr substr $(printenv | grep 'DESKTOP_SESSION=') 17 8)" == "cinnamon" ]; then
- #This local path is almost assuredly wrong as it shouldnt exist in a standard install
- ACTION_PATH="resources/linux/desktopenviroment/cinnamon/pulsar.nemo_action"
-
- #Validate the file exists before attempting to copy it
- if [ -f "${ACTION_PATH}" ]; then
- cp "${$ACTION_PATH}" "/usr/share/nemo/actions/pulsar.nemo_action"
- fi
- fi
+ # We remove the nemo integration. It is handled by the postFixup phase
#Set tmpdir only if tmpdir is unset
: ${TMPDIR:=/tmp}

View file

@ -0,0 +1,163 @@
{ lib
, stdenv
, git
, runtimeShell
, fetchurl
, wrapGAppsHook
, glib
, gtk3
, atomEnv
, xorg
, libxkbcommon
, hunspell
, hunspellDicts
, useHunspell ? true
, languages ? [ "en_US" ]
, withNemoAction ? true
, makeDesktopItem
, copyDesktopItems
, makeWrapper
}:
let
pname = "Pulsar";
version = "1.103.0";
sourcesPath = {
x86_64-linux.tarname = "Linux.${pname}-${version}.tar.gz";
x86_64-linux.hash = "sha256-C9La+rMpxyFthNPwPBZfV1goP/F1TiNYYYwmPCSkKdw=";
aarch64-linux.tarname = "ARM.Linux.${pname}-${version}-arm64.tar.gz";
aarch64-linux.hash = "sha256-uVGxDLqFgm5USZT6i7pLYJZq8jFxZviVXXYTL3RVhpw=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
additionalLibs = lib.makeLibraryPath [
xorg.libxshmfence
libxkbcommon
xorg.libxkbfile
];
newLibpath = "${atomEnv.libPath}:${additionalLibs}";
# Hunspell
hunspellDirs = builtins.map (lang: "${hunspellDicts.${lang}}/share/hunspell") languages;
hunspellTargetDirs = "$out/opt/Pulsar/resources/app.asar.unpacked/node_modules/spellchecker/vendor/hunspell_dictionaries";
hunspellCopyCommands = lib.concatMapStringsSep "\n" (lang: "cp -r ${lang}/* ${hunspellTargetDirs};") hunspellDirs;
in
stdenv.mkDerivation rec {
inherit pname version;
src = with sourcesPath; fetchurl {
url = "https://github.com/pulsar-edit/pulsar/releases/download/v${version}/${tarname}";
inherit hash;
};
patches = [
./001-patch-wrapper.patch
];
nativeBuildInputs = [
wrapGAppsHook
copyDesktopItems
];
buildInputs = [
gtk3
xorg.libxkbfile
];
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
mkdir -p $out/opt/Pulsar
mv * $out/opt/Pulsar
runHook postInstall
'';
preFixup = ''
gappsWrapperArgs+=(
# needed for gio executable to be able to delete files
--prefix "PATH" : "${lib.makeBinPath [ glib ]}"
)
'' + lib.optionalString useHunspell ''
# On all platforms, we must inject our dictionnaries
${hunspellCopyCommands}
'';
postFixup = ''
opt=$out/opt/Pulsar
# Patch the prebuilt binaries
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${newLibpath}:$opt" \
--add-needed libffmpeg.so \
--add-needed libxshmfence.so.1 \
--add-needed libxkbcommon.so.0 \
--add-needed libxkbfile.so.1 \
--add-needed libsecret-1.so.0 \
$opt/pulsar
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${newLibpath}" \
$opt/resources/app/ppm/bin/node
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
$opt/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux
'' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") ''
# Replace the bundled git with the one from nixpkgs
dugite=$opt/resources/app.asar.unpacked/node_modules/dugite
rm -f $dugite/git/bin/git
ln -s ${git}/bin/git $dugite/git/bin/git
rm -f $dugite/git/libexec/git-core/git
ln -s ${git}/bin/git $dugite/git/libexec/git-core/git
'' + ''
# Patch the bundled node executables
find $opt -name "*.node" -exec patchelf --set-rpath "${newLibpath}:$opt" {} \;
# Also patch the node executable for apm
patchelf --set-rpath "${newLibpath}:$opt" $opt/resources/app/ppm/bin/node
# We have patched the original wrapper, but now it needs the "PULSAR_PATH" env var
mkdir -p $out/bin
wrapProgram $opt/resources/pulsar.sh \
--prefix "PULSAR_PATH" : "$opt/pulsar"
ln -s $opt/resources/pulsar.sh $out/bin/pulsar
ln -s $opt/resources/app/ppm/bin/apm $out/bin/ppm
# Copy the icons
mkdir -p $out/share/icons/hicolor/scalable/apps $out/share/icons/hicolor/1024x1024/apps
cp $opt/resources/pulsar.svg $out/share/icons/hicolor/scalable/apps/pulsar.svg
cp $opt/resources/pulsar.png $out/share/icons/hicolor/1024x1024/apps/pulsar.png
'' + lib.optionalString withNemoAction ''
# Copy the nemo action file
mkdir -p $out/share/nemo/actions
cp ${./pulsar.nemo_action} $out/share/nemo/actions/pulsar.nemo_action
'';
desktopItems = [
(makeDesktopItem {
name = "Pulsar";
desktopName = "Pulsar";
exec = "pulsar";
icon = "pulsar";
comment = "A Community-led Hyper-Hackable Text Editor";
genericName = "Text Editor";
categories = [ "Development" "TextEditor" "Utility" ];
mimeTypes = [ "text/plain" ];
})
];
passthru.updateScript = ./update.mjs;
meta = with lib; {
description = "A Community-led Hyper-Hackable Text Editor";
longDescription = ''
A Community-led Hyper-Hackable Text Editor, Forked from Atom, built on Electron.
Designed to be deeply customizable, but still approachable using the default configuration.
'';
homepage = "https://github.com/pulsar-edit/pulsar";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ colamaroro ];
};
}

View file

@ -0,0 +1,9 @@
[Nemo Action]
Active=true
Name=Open in Pulsar
Comment=Open in Pulsar
#%U is the current selected file, this will also work on current directory
Exec=pulsar -n %U
Icon-Name=pulsar
Selection=any
Extensions=any

View file

@ -0,0 +1,89 @@
#!/usr/bin/env nix-shell
/*
#!nix-shell -i node -p nodejs-18_x
*/
import { promises as fs } from 'node:fs';
import { promisify } from 'node:util';
import { exec as _exec } from 'node:child_process';
const exec = promisify(_exec);
const constants = {
githubUrl: "https://api.github.com/repos/pulsar-edit/pulsar/releases",
sha256FileURL: (newVersion) => `https://github.com/pulsar-edit/pulsar/releases/download/v${newVersion}/SHA256SUMS.txt`,
x86_64FileName: (newVersion) => `Linux.pulsar-${newVersion}.tar.gz`,
aarch64FileName: (newVersion) => `ARM.Linux.pulsar-${newVersion}-arm64.tar.gz`,
};
async function getLatestVersion() {
const requestResult = await fetch(constants.githubUrl);
if (!requestResult.ok) {
console.error("Failed to fetch releases");
console.error(requestResult);
process.exit(1);
};
let jsonResult = await requestResult.json();
jsonResult = jsonResult.filter((release) => !release.prerelease && !release.draft);
if (jsonResult.length == 0) {
console.error("No releases found");
process.exit(1);
}
return jsonResult[0].tag_name.replace(/^v/, '');
}
async function getSha256Sum(hashFileContent, targetFile) {
// The upstream file has a fomat like this:
// 0000000000000000000000000000000000000000000000000000000000000000 targetFile
let sha256 = hashFileContent.
split('\n').
filter((line) => line.endsWith(targetFile))[0].
split(' ')[0];
return "sha256-" + Buffer.from(sha256, 'hex').toString('base64');
}
async function getSha256Sums(newVersion) {
// Upstream provides a file with the hashes of the files, but it's not in the SRI format, and it refers to the compressed tarball
// So let's just use nix-prefetch-url to get the hashes of the decompressed tarball, and `nix hash to-sri` to convert them to SRI format
const hashFileUrl = constants.sha256FileURL(newVersion);
const hashFileContent = await fetch(hashFileUrl).then((response) => response.text());
let x86_64;
let aarch64;
console.log("Getting new hashes");
let promises = [
getSha256Sum(hashFileContent, constants.x86_64FileName(newVersion)).then((hash) => { x86_64 = hash; }),
getSha256Sum(hashFileContent, constants.aarch64FileName(newVersion)).then((hash) => { aarch64 = hash; }),
];
await Promise.all(promises);
return { x86_64, aarch64 };
}
async function updateFile(newVersion, sha256Sums, currentFile) {
// There is some assumptions in how the file is formatted, but nothing egregious
let newFile = currentFile.replace(/version = "(.*)";/, `version = "${newVersion}";`);
newFile = newFile.replace(/x86_64-linux\.hash = "(.*)";/, `x86_64-linux.hash = "${sha256Sums.x86_64}";`);
newFile = newFile.replace(/aarch64-linux\.hash = "(.*)";/, `aarch64-linux.hash = "${sha256Sums.aarch64}";`);
await fs.writeFile('default.nix', newFile);
};
let currentFile = await fs.readFile('default.nix', 'utf8');
let currentVersion = currentFile.match(/version = "(.*)";/)[1];
const newVersion = await getLatestVersion();
if (currentVersion === newVersion) {
console.error("Already up to date");
process.exit(0);
}
console.log("New version: " + newVersion);
const sha256Sums = await getSha256Sums(newVersion);
console.log(sha256Sums)
if (!sha256Sums.x86_64 || !sha256Sums.aarch64) {
console.error("Failed to find sha256 sums for the 2 files");
process.exit(1);
}
updateFile(newVersion, sha256Sums, currentFile);

File diff suppressed because it is too large Load diff

View file

@ -49,12 +49,12 @@
};
awk = buildGrammar {
language = "awk";
version = "0.0.0+rev=b8e81f6";
version = "0.0.0+rev=8eaa762";
src = fetchFromGitHub {
owner = "Beaglefoot";
repo = "tree-sitter-awk";
rev = "b8e81f62109e65adca1ab51ab9d414411db5a37f";
hash = "sha256-3fCaV/MxqOP9g6Ma/eTAerKL+HVweDjihgeUR6h4wY0=";
rev = "8eaa762d05cc67c0e2cc53a0a71750b3c16733c2";
hash = "sha256-H10WU81pDlIvERF5h999B1bho1ycKO6kdEyUZFddlp4=";
};
meta.homepage = "https://github.com/Beaglefoot/tree-sitter-awk";
};
@ -269,12 +269,12 @@
};
cue = buildGrammar {
language = "cue";
version = "0.0.0+rev=4ffcda8";
version = "0.0.0+rev=f83fd9a";
src = fetchFromGitHub {
owner = "eonpatapon";
repo = "tree-sitter-cue";
rev = "4ffcda8c2bdfee1c2ba786cd503d0508ea92cca2";
hash = "sha256-a72Z67LXmEuHF/mKIaxi1Y9TNzqLjAiPYR3+VUu9fso=";
rev = "f83fd9abbece9becb5232c517b9d47ff141e237a";
hash = "sha256-3XAECPbUOeH51mAfrHZ8takklAeIQES9opoWfQ0ps24=";
};
meta.homepage = "https://github.com/eonpatapon/tree-sitter-cue";
};
@ -753,17 +753,6 @@
};
meta.homepage = "https://github.com/connorlay/tree-sitter-heex";
};
help = buildGrammar {
language = "help";
version = "0.0.0+rev=c4e23d2";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vimdoc";
rev = "c4e23d265f022dcd51053c40d47cd06e7756a347";
hash = "sha256-D6ML/6fixz2suB7TmoOb4B4nZaj+B7wluug/m/MZ7Oc=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
};
hjson = buildGrammar {
language = "hjson";
version = "0.0.0+rev=02fa3b7";
@ -1630,12 +1619,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=d2b64d8";
version = "0.0.0+rev=685c890";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "d2b64d85d0cab5edeffe44243134033e6ff07c02";
hash = "sha256-Mo87yEF0YGF9t+bXvxuULtlOWAFKyBDjU6rF6eOXLao=";
rev = "685c8905831fa7a0b548f7d712b97436b6eb301f";
hash = "sha256-kcr8dY69dKQgzK5D/Fimymq7W/NqS55yoGIvAjbMBQ8=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -1685,23 +1674,23 @@
};
svelte = buildGrammar {
language = "svelte";
version = "0.0.0+rev=52e122a";
version = "0.0.0+rev=697bb51";
src = fetchFromGitHub {
owner = "Himujjal";
repo = "tree-sitter-svelte";
rev = "52e122ae68b316d3aa960a0a422d3645ba717f42";
hash = "sha256-ACRpn1/2d6/ambLvr0xr7kT9gTzFFHXtvbQRTxEoet0=";
rev = "697bb515471871e85ff799ea57a76298a71a9cca";
hash = "sha256-TJVAQULTBTZxVwvpBpFmBPJM1jh2aN+KG8YfuT+/ylg=";
};
meta.homepage = "https://github.com/Himujjal/tree-sitter-svelte";
};
swift = buildGrammar {
language = "swift";
version = "0.0.0+rev=8c8412a";
version = "0.0.0+rev=ca3a370";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "8c8412a54d97d6f96a4bf4ecb76cba4808952ed5";
hash = "sha256-rt7pmmPuWn6eA8pYk4wRABmMql4jm0+4BtNwcRI2QRQ=";
rev = "ca3a37055069277ad91d6a2c35faf9f247dcfbfb";
hash = "sha256-H/6BBBB+vITl91FwiM6/aiv8OEgGjLt3HihTTsYzTVE=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@ -1777,12 +1766,12 @@
};
tiger = buildGrammar {
language = "tiger";
version = "0.0.0+rev=a233ebe";
version = "0.0.0+rev=4a09924";
src = fetchFromGitHub {
owner = "ambroisie";
repo = "tree-sitter-tiger";
rev = "a233ebe360a73a92c50978e5c4e9e471bc59ff42";
hash = "sha256-lQ3WkA1v3J2FuK2zPUwqahPnHPkAuevpBJrLtrlqaEs=";
rev = "4a099243ed68a4fc72fdad8ea3ce57ec411ebfe3";
hash = "sha256-y3bpfBPwvkFNMl1qZtlnpVhi5nnOqo0K9XGS2bCWPmY=";
};
meta.homepage = "https://github.com/ambroisie/tree-sitter-tiger";
};
@ -1923,12 +1912,12 @@
};
vhs = buildGrammar {
language = "vhs";
version = "0.0.0+rev=621457c";
version = "0.0.0+rev=77fd8a8";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = "tree-sitter-vhs";
rev = "621457c5c6efe471b601edb5a42191824f304b41";
hash = "sha256-oNtvynabIoiitnLg6R1F8VL+IxNifI+3Um/QuUqui88=";
rev = "77fd8a8fcc0b4788e0b1569b1a4fa070b36add28";
hash = "sha256-6/Mg3oDjIzVnqbvZ8Q/HLyycGyHIBn3aBRcechWht/s=";
};
meta.homepage = "https://github.com/charmbracelet/tree-sitter-vhs";
};
@ -1943,6 +1932,17 @@
};
meta.homepage = "https://github.com/vigoux/tree-sitter-viml";
};
vimdoc = buildGrammar {
language = "vimdoc";
version = "0.0.0+rev=15c2fdc";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vimdoc";
rev = "15c2fdcc57f51f1caef82fe75e1ffb733626dcae";
hash = "sha256-pke1yxPfZt4hykmT76sHpk/LOQHfcH/oII7oZyU8m6U=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
};
vue = buildGrammar {
language = "vue";
version = "0.0.0+rev=91fe275";

View file

@ -722,6 +722,7 @@ https://github.com/fhill2/telescope-ultisnips.nvim/,,
https://github.com/debugloop/telescope-undo.nvim/,HEAD,
https://github.com/tom-anders/telescope-vim-bookmarks.nvim/,,
https://github.com/nvim-telescope/telescope-z.nvim/,,
https://github.com/natecraddock/telescope-zf-native.nvim/,HEAD,
https://github.com/jvgrootveld/telescope-zoxide/,,
https://github.com/nvim-telescope/telescope.nvim/,,
https://github.com/luc-tielen/telescope_hoogle/,HEAD,

View file

@ -18,17 +18,17 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "1j9m31d760zrmj1gwfqnxvji8kmm8sx2s9p2mam3vsk5mb9l3n58";
x86_64-darwin = "1p54yrmcv7xlgj247yyj7y83q92jx2vhjkx6hrbqcai67ixw531w";
aarch64-linux = "1m2xqy9lnb3ifnh90lq9qk3fd3h6nmk5fnwrlyjgrg395hvgk4ai";
aarch64-darwin = "15n8g5rwz1h31dish9idwzvqimx3civn4rj1jzhnq77aixk8p5z3";
armv7l-linux = "1j1nlbcpncb0s2gn1520kxqqamga3gh1slr7scl24mj1z8fg5r1n";
x86_64-linux = "0znr64f0rs513vkj7f3by2dzllxk3msic5sajc5scv9cwy3j6xld";
x86_64-darwin = "0qqqbmmhr1r7rxij6cc4d7shyjvm3ni4cwv0xy3qikfr7v9w948a";
aarch64-linux = "0qjrz73q0ilshhqcgk6lxzkpd617p5153nrba9islxrashsqb9bj";
aarch64-darwin = "0cdrkn756817whr476inn5j9myhbz6dq11bli0byn829g2jh8s4h";
armv7l-linux = "1dqw1ha69zsdhvf2n2ps0mvqbamqs90wnc6z02pzs3jz9cxxl15j";
}.${system} or throwSystem;
in
callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.77.0";
version = "1.77.1";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";

View file

@ -3,8 +3,7 @@
, fetchFromGitHub
, SDL2
, cmake
, ffmpeg_4
, imagemagick
, ffmpeg
, libedit
, libelf
, libepoxy
@ -16,7 +15,6 @@
}:
let
ffmpeg = ffmpeg_4;
lua = lua5_4;
inherit (libsForQt5)
qtbase
@ -44,7 +42,6 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
SDL2
ffmpeg
imagemagick
libedit
libelf
libepoxy

View file

@ -10,13 +10,13 @@
}:
let
version = "1.1.0-1";
version = "1.2.0-1";
src = fetchFromGitHub {
owner = "mucommander";
repo = "mucommander";
rev = version;
sha256 = "sha256-sCBbY3aBSuJmyOuy36pg8X2jX6hXwW8SW2UzYyp/isM=";
sha256 = "sha256-OrtC7E/8n9uEo7zgFHYQqXV3qLpdKtxwbwZfxoOqTqA=";
};
postPatch = ''
@ -49,7 +49,7 @@ let
'';
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-15ThPkvcmOfa5m/HMJzjrOOUi/BYbd57p5bBfj5/3n4=";
outputHash = "sha256-T4UhEzkaYh237+ZsoQTv1RgqcAKY4dPc/3x+dEie4A8=";
};
in

View file

@ -6,16 +6,17 @@
, ninja
, python3
, pkg-config
, wrapGAppsHook
, wrapGAppsHook4
, desktop-file-utils
, gtk4
, libadwaita
, json-glib
, glib
, glib-networking
, gtksourceview5
, libxml2
, libgee
, libsoup
, libsoup_3
, libsecret
, gst_all_1
, nix-update-script
@ -23,12 +24,12 @@
stdenv.mkDerivation rec {
pname = "tuba";
version = "0.1.0";
version = "0.2.0";
src = fetchFromGitHub {
owner = "GeopJr";
repo = "Tuba";
rev = "v${version}";
hash = "sha256-dkURVzbDBrE4bBUvf2fPqvgLKE07tn7jl3OudZpEWUo=";
hash = "sha256-LPhGGIHvN/hc71PL50TBw1Q0ysubdtJaEiUEI29HRrE=";
};
nativeBuildInputs = [
@ -37,17 +38,18 @@ stdenv.mkDerivation rec {
pkg-config
vala
python3
wrapGAppsHook
wrapGAppsHook4
desktop-file-utils
];
buildInputs = [
glib
glib-networking
gtksourceview5
json-glib
libxml2
libgee
libsoup
libsoup_3
gtk4
libadwaita
libsecret
@ -68,7 +70,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Browse the Fediverse";
homepage = "https://tuba.geopjr.dev/";
mainProgram = "dev.geopjr.Tuba";
license = licenses.gpl3Only;
changelog = "https://github.com/GeopJr/Tuba/releases/tag/v${version}";
maintainers = with maintainers; [ chuangzhu ];
};
}

View file

@ -10,18 +10,18 @@
buildGoModule rec {
pname = "usql";
version = "0.13.12";
version = "0.14.0";
src = fetchFromGitHub {
owner = "xo";
repo = "usql";
rev = "v${version}";
hash = "sha256-GJFPKQNrdyrFhXsPsVC629t/rHXZ16A19e8EaSdUOls=";
hash = "sha256-AYo1sRzsOuyv0p3X8/TmsWdCBq3Gcqo0J6+B2aI7UIo=";
};
buildInputs = [ unixODBC icu ];
vendorHash = "sha256-X58rFQi4YA8nCP02zH1nRi0TFGkQJ7jyCK6p8bfe0fI=";
vendorHash = "sha256-ro/m9t8vHxyAS+a42/OkaqhrUs0FPGu0Ns9tn5HyKXg=";
proxyVendor = true;
# Exclude broken impala & hive driver

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubergrunt";
version = "0.10.1";
version = "0.11.1";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = "kubergrunt";
rev = "v${version}";
sha256 = "sha256-vIqmE9U/0WGIaTpy8NfUadIkaTdN8YKqvRLQ/69NgBE=";
sha256 = "sha256-pg0D3zTSJirH+NNtbun7VoAILR/C32VstkNGbwpfoNo=";
};
vendorHash = "sha256-K/Cw7Sh/2OqTbWQPEsoQbj/ejyaXcLxFT8Rg5Ore5DE=";

View file

@ -438,22 +438,22 @@
"vendorHash": "sha256-s4FynUO6bT+8uZYkecbQCtFw1jFTAAYUkSzONI6Ba9g="
},
"google": {
"hash": "sha256-XeY2AXdwzYUC5d5Bhx0vgBnmF80qDsjxUlJfUf+eKzw=",
"hash": "sha256-/35j6kmJ+R0ZSt0CpQe29cTcKSOEZJ+BV0x3BYQV8aA=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
"owner": "hashicorp",
"proxyVendor": true,
"repo": "terraform-provider-google",
"rev": "v4.60.0",
"rev": "v4.60.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-ztoWOiqyOrusSo0peigEV9wy2f387gVGfcolkYoJvhw="
},
"google-beta": {
"hash": "sha256-Fx6CEMjgrd0dnscSRono4QsyV/zZKzgrP9jyLqxtAFU=",
"hash": "sha256-rCCzPvaZGoQLES0QzYaRLWlaiZI8QIPb8bxGBJ8ERmk=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
"owner": "hashicorp",
"proxyVendor": true,
"repo": "terraform-provider-google-beta",
"rev": "v4.60.0",
"rev": "v4.60.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-ztoWOiqyOrusSo0peigEV9wy2f387gVGfcolkYoJvhw="
},
@ -567,13 +567,13 @@
"vendorHash": null
},
"ibm": {
"hash": "sha256-7TuvaeCRtQcYkJe6KbinGdK3JvmEbT4yxwHbzLR6jfE=",
"hash": "sha256-GHjBM2+fgSGXXndhn8CdttsWiP7j+So3KuD5Enjl2ks=",
"homepage": "https://registry.terraform.io/providers/IBM-Cloud/ibm",
"owner": "IBM-Cloud",
"repo": "terraform-provider-ibm",
"rev": "v1.51.0",
"rev": "v1.52.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-l+Q4ix50ItXI/i5aDvqSC2kTk3tDBPZgO/6aok+P0hQ="
"vendorHash": "sha256-BTt21bR4kgzyAuS3flalgOJuRxVPwwNOIR2nj2zdw9E="
},
"icinga2": {
"hash": "sha256-Y/Oq0aTzP+oSKPhHiHY9Leal4HJJm7TNDpcdqkUsCmk=",
@ -774,11 +774,11 @@
"vendorHash": null
},
"newrelic": {
"hash": "sha256-bntX0rW0ItVzRpDVwKbt7QtpbKu6QDbzW4zUPrUntF4=",
"hash": "sha256-BGfIem4k0fQ6C5igNRBIOvd7ZRD7RKtTD59n5gdzht4=",
"homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
"owner": "newrelic",
"repo": "terraform-provider-newrelic",
"rev": "v3.20.0",
"rev": "v3.20.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-X/piLF1xMA/epnL/g0ZY0N+5PUjFZhNBV/lmsrwqwpA="
},
@ -820,11 +820,11 @@
"vendorHash": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI="
},
"oci": {
"hash": "sha256-pgiuMw/ciguj54C1qN8VYWsozXuNNXiU36ZdzYP+Eds=",
"hash": "sha256-r+GmKd+kOnx9xwuSORbcCamb1ea1/YZaTvyw59e0nZg=",
"homepage": "https://registry.terraform.io/providers/oracle/oci",
"owner": "oracle",
"repo": "terraform-provider-oci",
"rev": "v4.114.0",
"rev": "v4.115.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -892,11 +892,11 @@
"vendorHash": null
},
"pagerduty": {
"hash": "sha256-FHGoaWJQ3HRtY/LNCTX+L+jgYMPKkefjpbtfzMVbPQw=",
"hash": "sha256-yQjpU5lO0BbYBLOJOp3FzAbKyaUYqzWAmtsaA7TLnxg=",
"homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
"owner": "PagerDuty",
"repo": "terraform-provider-pagerduty",
"rev": "v2.11.2",
"rev": "v2.11.3",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -973,11 +973,11 @@
"vendorHash": null
},
"scaleway": {
"hash": "sha256-8bo+bJdzEZWQN6dATt9ln2BlEu11/9abWLl5V09mQX8=",
"hash": "sha256-pNiDT5yV+0nnNrwLbgq68csegGyvkqnOOgm9M+WKc0Y=",
"homepage": "https://registry.terraform.io/providers/scaleway/scaleway",
"owner": "scaleway",
"repo": "terraform-provider-scaleway",
"rev": "v2.16.0",
"rev": "v2.16.2",
"spdx": "MPL-2.0",
"vendorHash": "sha256-KUbE00fajvs4p8QxmuKV5IoRfCdWtfZTrOftcRAPSws="
},
@ -1054,13 +1054,13 @@
"vendorHash": "sha256-NO1r/EWLgH1Gogru+qPeZ4sW7FuDENxzNnpLSKstnE8="
},
"spotinst": {
"hash": "sha256-4zD2/0s7zeZhreM1dauJ6BSMxTKL16HH530bNCiKNv4=",
"hash": "sha256-sBfNolPMCPM8xI1K3lgV0X8kmwET8RYij4AcYv1UMqA=",
"homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
"owner": "spotinst",
"repo": "terraform-provider-spotinst",
"rev": "v1.108.0",
"rev": "v1.109.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Ac8cWoaTj18DFZOf8FYbI9FPb17GcA9r7ZkOMNV7iI4="
"vendorHash": "sha256-cuhijHsEsMGuK2+Gvm2zL3diN523wRroKmnDsQZ5wKA="
},
"stackpath": {
"hash": "sha256-7KQUddq+M35WYyAIAL8sxBjAaXFcsczBRO1R5HURUZg=",

View file

@ -14,6 +14,18 @@ let
hash = "sha256-lfwC9/wfMZmqpHqKdXQ3E0z2GOnZlMhO/9U/Uww4WG8=";
};
});
# Flexget's transmission plugin is not currently compatible with the 4.x
# branch for transmission-rpc.
transmission-rpc = super.transmission-rpc.overridePythonAttrs (old: rec {
version = "3.4.2";
src = fetchFromGitHub {
owner = "Trim21";
repo = "transmission-rpc";
rev = "refs/tags/v${version}";
hash = "sha256-7XbL6plIPZHQ/0Z+7bvtj8hqkh4klFyIV73DnrUAkps=";
};
});
};
};
in

View file

@ -48,23 +48,23 @@ let
# and often with different versions. We write them on three lines
# like this (rather than using {}) so that the updater script can
# find where to edit them.
versions.aarch64-darwin = "5.14.0.16775";
versions.x86_64-darwin = "5.14.0.16775";
versions.x86_64-linux = "5.14.0.1720";
versions.aarch64-darwin = "5.14.2.17213";
versions.x86_64-darwin = "5.14.2.17213";
versions.x86_64-linux = "5.14.2.2046";
srcs = {
aarch64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
name = "zoomusInstallerFull.pkg";
hash = "sha256-79Jb5cv9OWYM55fB8wtP+qYJc67+gNdiw9VrqnQPJ5U=";
hash = "sha256-jXSjfPIQepSeG5B/CLBHiCbRP1ceczHt+Mu3KYLonkU=";
};
x86_64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
hash = "sha256-HetPvZ7Bv8bC4DdoNM+92bFFQnwDY26WiEniwrBNSfk=";
hash = "sha256-F/k9NE2GVzn5etkPWCMX80kkyRzVznsKo3rgtztcYn8=";
};
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
hash = "sha256-d8R2jfol5zAaI4qcpUIVdph899d7t/LRxQImXFzXXWo=";
hash = "sha256-k16JlqabzdNC/UXoPWM2yYzs66rOtJvhExHpjVka5M0=";
};
};

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "ipget";
version = "0.9.1";
version = "0.9.2";
src = fetchFromGitHub {
owner = "ipfs";
repo = "ipget";
rev = "v${version}";
sha256 = "sha256-JGG3DsmFXmWFOFvJ8pKVhQMRgZ0cbkdtmBjMkLYqOwU=";
hash = "sha256-gcxfsP5awCCau1RqCuXKEdXC2jvpwsGsPkBsiaRlfBU=";
};
vendorSha256 = "sha256-scrueQoqr9nUONnpitUontcX3Xe0KmmUmvxOcpxK7M8=";
vendorHash = "sha256-qCUa/XbfDrbwPSZywNVK/yn88C7Dsmz0cDTG2Z4ho0Y=";
postPatch = ''
# main module (github.com/ipfs/ipget) does not contain package github.com/ipfs/ipget/sharness/dependencies

View file

@ -2,23 +2,21 @@
buildGoModule rec {
pname = "protonmail-bridge";
version = "3.0.21";
version = "3.1.0";
src = fetchFromGitHub {
owner = "ProtonMail";
repo = "proton-bridge";
rev = "v${version}";
hash = "sha256-aRzVXmAWRifIGCAPWYciBhK9XMvsmtHc67XRoI19VYU=";
hash = "sha256-jCoTFpxEHk0ITEzJ3RaVeUpzX4E7tuI9ZBKwabtOT6w=";
};
vendorHash = "sha256-zCE4LO6m4uyOvSzhUbzH2F9EgDs0UZH4eCl6lfRjIRQ=";
vendorHash = "sha256-zWcqEAeHbBUVRLPw37NgWOoiq/CXCcP/geP3lfo4TWg=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libsecret ];
proxyVendor = true; # Bridge uses some C headers so we have to enable proxyVendor
preBuild = ''
patchShebangs ./utils/
(cd ./utils/ && ./credits.sh bridge)

View file

@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "treesheets";
version = "unstable-2023-03-18";
version = "unstable-2023-04-04";
src = fetchFromGitHub {
owner = "aardappel";
repo = "treesheets";
rev = "fd73698ba15b36cfd1f1726e51558405a56c6cd2";
sha256 = "kGpze5aBbBjhLTU9jV2xX44iO82skgbxVKc0lHndezw=";
rev = "a7d0065763c0bf0cfc2b410b17cb1fce33619616";
sha256 = "wDAheXzObiqFkZ2ZVQAzMVZT5mzIEzxh6jNwPiPoWis=";
};
nativeBuildInputs = [

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "varscan";
version = "2.4.5";
version = "2.4.6";
src = fetchurl {
url = "https://github.com/dkoboldt/varscan/raw/master/VarScan.v${version}.jar";
sha256 = "sha256-q4jkkKTqXHiaAPRThqo82i43+B4NaHUUuMyefW6tgg0=";
sha256 = "sha256-6CcjC0epbKsDXFxxeOUImSGh4cjR5INqawL/iOOkwqs=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -2,20 +2,20 @@
rustPlatform.buildRustPackage rec {
pname = "git-absorb";
version = "0.6.9";
version = "0.6.10";
src = fetchFromGitHub {
owner = "tummychow";
repo = pname;
rev = "refs/tags/${version}";
sha256 = "sha256-z02bMJ+KQaLHqIzsdB3BCVzTQ0NRG0ylAfTHYgOxZYk=";
hash = "sha256-lFaiv9bgzu6XVcQuLXWoWsKl0cylfrF5rC0i3qj+zU0=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
cargoSha256 = "sha256-lP0fU2Cirta4WWha7Pgje537u6TbD5oiHLfamfzJtpU=";
cargoHash = "sha256-hksSyVdsGe/Ha3F5orL4W/k2nzFCuMqQjBgsT1jiWLw=";
postInstall = ''
installManPage Documentation/git-absorb.1

View file

@ -0,0 +1,62 @@
{ lib
, buildPythonApplication
, fetchFromGitHub
, git
, pytestCheckHook
, pytest-mock
}:
buildPythonApplication rec {
pname = "git-archive-all";
version = "1.23.1";
src = fetchFromGitHub {
owner = "Kentzo";
repo = "git-archive-all";
rev = version;
hash = "sha256-fIPjggOx+CEorj1bazz8s81ZdppkTL0OlA5tRqCYZyc=";
};
# * Don't use pinned dependencies
# * Remove formatter and coverage generator
# * Don't fail on warnings. Almost all tests output this warning:
# ResourceWarning: unclosed file [...]/repo.tar
# https://github.com/Kentzo/git-archive-all/issues/90
postPatch = ''
substituteInPlace setup.cfg \
--replace pycodestyle==2.5.0 "" \
--replace pytest==5.2.2 pytest \
--replace pytest-cov==2.8.1 "" \
--replace pytest-mock==1.11.2 pytest-mock \
--replace "--cov=git_archive_all --cov-report=term --cov-branch" "" \
--replace "filterwarnings = error" ""
substituteInPlace test_git_archive_all.py \
--replace "import pycodestyle" ""
'';
nativeCheckInputs = [
git
];
checkInputs = [
pytestCheckHook
pytest-mock
];
disabledTests = [ "pycodestyle" ];
preCheck = ''
export HOME="$(mktemp -d)"
'';
meta = with lib; {
description = "Archive a repository with all its submodules";
longDescription = ''
A python script wrapper for git-archive that archives a git superproject
and its submodules, if it has any. Takes into account .gitattributes
'';
homepage = "https://github.com/Kentzo/git-archive-all";
license = licenses.mit;
maintainers = with maintainers; [ fgaz ];
};
}

View file

@ -196,6 +196,11 @@ stdenv.mkDerivation rec {
url = "https://code.videolan.org/videolan/vlc/uploads/eb1c313d2d499b8a777314f789794f9d/0001-Add-lssl-and-lcrypto-to-liblive555_plugin_la_LIBADD.patch";
sha256 = "0kyi8q2zn2ww148ngbia9c7qjgdrijf4jlvxyxgrj29cb5iy1kda";
})
# patch to build with recent libplacebo
(fetchpatch {
url = "https://code.videolan.org/videolan/vlc/-/merge_requests/3027.patch";
hash = "sha256-aV+YT1l0ND/USoIIpxcPhdIlP/06J2FxVW4uArS8j88=";
})
];
postPatch = ''

View file

@ -1,6 +1,7 @@
{ stdenv
, cacert
, lib
, writeCBin
}:
args@{
@ -44,7 +45,15 @@ args@{
}:
let
fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ];
fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ] // {
name = name;
bazelFlags = bazelFlags;
bazelBuildFlags = bazelBuildFlags;
bazelTestFlags = bazelTestFlags;
bazelFetchFlags = bazelFetchFlags;
bazelTestTargets = bazelTestTargets;
dontAddBazelOpts = dontAddBazelOpts;
};
fBuildAttrs = fArgs // buildAttrs;
fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ];
bazelCmd = { cmd, additionalFlags, targets }:
@ -67,13 +76,33 @@ let
${lib.strings.concatStringsSep " " additionalFlags} \
${lib.strings.concatStringsSep " " targets}
'';
# we need this to chmod dangling symlinks on darwin, gnu coreutils refuses to do so:
# chmod: cannot operate on dangling symlink '$symlink'
chmodder = writeCBin "chmodder" ''
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
int main(int argc, char** argv) {
mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
if (argc != 2) {
fprintf(stderr, "usage: chmodder file");
exit(EXIT_FAILURE);
}
if (lchmod(argv[1], mode) != 0) {
fprintf(stderr, "failed to lchmod '%s': %s", argv[0], strerror(errno));
exit(EXIT_FAILURE);
}
}
'';
in
stdenv.mkDerivation (fBuildAttrs // {
inherit name bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTargets bazelTestTargets;
deps = stdenv.mkDerivation (fFetchAttrs // {
name = "${name}-deps.tar.gz";
inherit bazelFlags bazelBuildFlags bazelTestFlags bazelFetchFlags bazelTargets bazelTestTargets;
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or [];
@ -103,7 +132,7 @@ stdenv.mkDerivation (fBuildAttrs // {
"--loading_phase_threads=1"
"$bazelFetchFlags"
];
targets = bazelTargets ++ bazelTestTargets;
targets = fFetchAttrs.bazelTargets ++ fFetchAttrs.bazelTestTargets;
}
}
@ -143,6 +172,10 @@ stdenv.mkDerivation (fBuildAttrs // {
new_target="$(readlink "$symlink" | sed "s,$NIX_BUILD_TOP,NIX_BUILD_TOP,")"
rm "$symlink"
ln -sf "$new_target" "$symlink"
'' + lib.optionalString stdenv.isDarwin ''
# on linux symlink permissions cannot be modified, so we modify those on darwin to match the linux ones
${chmodder}/bin/chmodder "$symlink"
'' + ''
done
echo '${bazel.name}' > $bazelOut/external/.nix-bazel-version
@ -187,8 +220,6 @@ stdenv.mkDerivation (fBuildAttrs // {
done
'' + fBuildAttrs.preConfigure or "";
inherit dontAddBazelOpts;
buildPhase = fBuildAttrs.buildPhase or ''
runHook preBuild
@ -221,15 +252,15 @@ stdenv.mkDerivation (fBuildAttrs // {
bazelCmd {
cmd = "test";
additionalFlags =
["--test_output=errors"] ++ bazelTestFlags;
targets = bazelTestTargets;
["--test_output=errors"] ++ fBuildAttrs.bazelTestFlags;
targets = fBuildAttrs.bazelTestTargets;
}
}
${
bazelCmd {
cmd = "build";
additionalFlags = bazelBuildFlags;
targets = bazelTargets;
additionalFlags = fBuildAttrs.bazelBuildFlags;
targets = fBuildAttrs.bazelTargets;
}
}
runHook postBuild

View file

@ -35,6 +35,7 @@
, libevdev
, alsa-lib
, graphene
, protobuf
, ...
}:
@ -207,6 +208,10 @@ in
buildInputs = [ postgresql ];
};
prost-build = attr: {
nativeBuildInputs = [ protobuf ];
};
rdkafka-sys = attr: {
nativeBuildInputs = [ pkg-config ];
buildInputs = [ rdkafka ];

View file

@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation rec {
pname = "numix-icon-theme-square";
version = "23.03.19";
version = "23.04.05";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
sha256 = "sha256-Hdwby8U9D+k4AjKyDeWhCfGr7z7ETNQPr1lnwweAp7g=";
sha256 = "sha256-fyb0qHmZev7kH8/q6mk2WPT30Szx1/jLIweq12eAIaw=";
};
nativeBuildInputs = [ gtk3 ];

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "budgie-backgrounds";
version = "0.1";
version = "1.0";
src = fetchFromGitHub {
owner = "BuddiesOfBudgie";
repo = "budgie-backgrounds";
rev = "v${version}";
hash = "sha256-pDFd+WvWOPgDoSffmX9mzjDQbhePsJV1wGqmPDcnOlw=";
hash = "sha256-TdtgOYHO2QH4W2jWBuAzYQwxwAPya2lC3VrIi7kvi+M=";
};
nativeBuildInputs = [

View file

@ -3,6 +3,7 @@
, intltool
, fetchFromGitLab
, meson
, mesonEmulatorHook
, ninja
, pkg-config
, python3
@ -18,7 +19,6 @@
, docbook_xsl
, docbook_xml_dtd_412
, gsettings-desktop-schemas
, callPackage
, unzip
, unicode-character-database
, unihan-database
@ -57,6 +57,7 @@ in stdenv.mkDerivation rec {
sha256 = "sha256-QoHLMq3U/BvpCFKttxLo0qs2xmZ/pCqPjsgq/MMWNbo=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
@ -73,6 +74,8 @@ in stdenv.mkDerivation rec {
libxml2
desktop-file-utils
gobject-introspection
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [

View file

@ -0,0 +1,52 @@
{ lib
, fetchPypi
, buildPythonApplication
, poetry-core
, colorama
, more-itertools
, packaging
, pydantic
, requests
, pygobject3
, gobject-introspection
, wrapGAppsNoGuiHook
}:
buildPythonApplication rec {
pname = "gnome-extensions-cli";
version = "0.9.5";
format = "pyproject";
src = fetchPypi {
pname = "gnome_extensions_cli";
inherit version;
hash = "sha256-4eRVmG5lqK8ql9WpvXsf18znOt7kDSnpQnLfy73doy4=";
};
nativeBuildInputs = [
gobject-introspection
poetry-core
wrapGAppsNoGuiHook
];
propagatedBuildInputs = [
colorama
more-itertools
packaging
pydantic
requests
pygobject3
];
pythonImportsCheck = [
"gnome_extensions_cli"
];
meta = with lib; {
homepage = "https://github.com/essembeh/gnome-extensions-cli";
description = "Command line tool to manage your GNOME Shell extensions";
license = licenses.asl20;
maintainers = with maintainers; [ dylanmtaylor ];
platforms = platforms.linux;
};
}

View file

@ -16,17 +16,18 @@
, libgee
, pcre2
, wrapGAppsHook
, xvfb-run
}:
stdenv.mkDerivation rec {
pname = "elementary-terminal";
version = "6.1.1";
version = "6.1.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "terminal";
rev = version;
sha256 = "sha256-HnCKLN07tlfosXIHHKcHyTtqULqE4irBnYssyMMO5xk=";
sha256 = "sha256-k+xowr9HmOUgNkn25uj+oV7AtG9EZfgFDop0Z+H7b3Q=";
};
nativeBuildInputs = [
@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
python3
vala
wrapGAppsHook
xvfb-run
];
buildInputs = [

View file

@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "sideload";
version = "6.1.0";
version = "6.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-iyqKhyBU9OLlPLy5ZD/GxoOzprbm7uKBkFzjUUoQc5g=";
sha256 = "sha256-AIfQDkodxc3zKi9oYBWIkOw1UgW+nXufNXbpM1Jxjtg=";
};
nativeBuildInputs = [

View file

@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, meson
, ninja
@ -17,24 +16,15 @@
stdenv.mkDerivation rec {
pname = "switchboard-plug-onlineaccounts";
version = "6.5.1";
version = "6.5.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-7eKbOf5lD2zwmZc0k9PWGwnqaqXmwgJPmij0WtMT7Qk=";
sha256 = "sha256-IW6twvEbCzQbuNFnryHxer5rK5zYfbmilcLjHCV9ZsM=";
};
patches = [
# build: support evolution-data-server 3.45
# https://github.com/elementary/switchboard-plug-onlineaccounts/pull/248
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/08faf7b4241547b7900596af12a03d816712a808.patch";
sha256 = "sha256-QLe+NPHuo3hLM9n1f4hT5IK4nkWtYSe91L1wVSBzw6k=";
})
];
nativeBuildInputs = [
meson
ninja

View file

@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, pkg-config
, meson
@ -26,40 +25,19 @@
stdenv.mkDerivation rec {
pname = "gala";
version = "7.0.1";
version = "7.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-YHmmF9tYDgMieLCs9My7NU16Ysq4n2sxWT/7MpaerkI=";
sha256 = "sha256-+StE63q6niRK7ypFNzSsAQfPmbrzlBKm1GGESBKSSl4=";
};
patches = [
# We look for plugins in `/run/current-system/sw/lib/` because
# there are multiple plugin providers (e.g. gala and wingpanel).
./plugins-dir.patch
# WindowClone: Don't calculate offset
# https://github.com/elementary/gala/pull/1567
(fetchpatch {
url = "https://github.com/elementary/gala/commit/b7139add2333e5419afd1c82c3790d85044c1f76.patch";
sha256 = "sha256-QhBARbA3YEXB/RIM/gmFiry1IzGvFFQVXGDs0kGjf20=";
})
# Map notification windows manually while switching workspace
# https://github.com/elementary/gala/pull/1577
(fetchpatch {
url = "https://github.com/elementary/gala/commit/97b33173e2ee8b4a4af3fe0513b6d264de9d9b2a.patch";
sha256 = "sha256-y2PicvHxtKlZTpr6a0Hua1ppXpRwDItsIoGG2r+DAjQ=";
})
# Use ClickAction for FramedBackground and close buttons
# https://github.com/elementary/gala/pull/1579
(fetchpatch {
url = "https://github.com/elementary/gala/commit/79453b324d2e737ba32124212632e1269c6c9af1.patch";
sha256 = "sha256-ipOoY3dn0Hs1U2d9OER+ZfgC5AL4yay4FD8ongID/xY=";
})
];
nativeBuildInputs = [

View file

@ -37,6 +37,11 @@ args@
, freeglut
, libGLU
, libsForQt5
, libtiff
, qt6Packages
, rdma-core
, ucx
, rsync
}:
backendStdenv.mkDerivation rec {
@ -67,13 +72,20 @@ backendStdenv.mkDerivation rec {
nativeBuildInputs = [
perl
makeWrapper
rsync
addOpenGLRunpath
autoPatchelfHook
autoAddOpenGLRunpathHook
] ++ lib.optionals (lib.versionOlder version "11") [
libsForQt5.wrapQtAppsHook
] ++ lib.optionals (lib.versionAtLeast version "11.8") [
qt6Packages.wrapQtAppsHook
];
buildInputs = [
buildInputs = lib.optionals (lib.versionOlder version "11") [
libsForQt5.qt5.qtwebengine
freeglut
libGLU
] ++ [
# To get $GDK_PIXBUF_MODULE_FILE via setup-hook
gdk-pixbuf
@ -109,10 +121,13 @@ backendStdenv.mkDerivation rec {
unixODBC
alsa-lib
wayland
] ++ lib.optionals (lib.versionOlder version "11") [
libsForQt5.qt5.qtwebengine
freeglut
libGLU
] ++ lib.optionals (lib.versionAtLeast version "11.8") [
(lib.getLib libtiff)
qt6Packages.qtwayland
rdma-core
ucx
xorg.libxshmfence
xorg.libxkbfile
];
# Prepended to runpaths by autoPatchelf.
@ -205,6 +220,13 @@ backendStdenv.mkDerivation rec {
mv pkg/builds/nsight_systems/target-linux-x64 $out/target-linux-x64
mv pkg/builds/nsight_systems/host-linux-x64 $out/host-linux-x64
''}
${lib.optionalString (lib.versionAtLeast version "11.8")
# error: auto-patchelf could not satisfy dependency libtiff.so.5 wanted by /nix/store/.......-cudatoolkit-12.0.1/host-linux-x64/Plugins/imageformats/libqtiff.so
# we only ship libtiff.so.6, so let's use qt plugins built by Nix.
# TODO: don't copy, come up with a symlink-based "merge"
''
rsync ${lib.getLib qt6Packages.qtimageformats}/lib/qt-6/plugins/ $out/host-linux-x64/Plugins/ -aP
''}
rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?

View file

@ -1,31 +1,30 @@
{ stdenv, lib
, fetchurl
, autoPatchelfHook
, gmp5, ncurses5, zlib
}:
let
os = if stdenv.isDarwin then "macos" else "linux";
arch = if stdenv.isAarch64 then "arm64" else "x86_64";
hashes =
{
"x86_64-linux" = "443a763487366fa960120bfe193441e6bbe86fdb31baeed7dbb17d410dee0522";
"aarch64-linux" = "f11bec3b094df0c0958a8f1e07af5570199e671a882ad5fe979f1e7e482e986d";
"x86_64-darwin" = "d05a88d13e240fdbc1bf64bd1a4a9ec4d3d53c95961bb9e338449b856df91853";
"aarch64-darwin" = "bb105e7aebae3c637b761017c6fb49d9696eba1022f27ec594aac9c2dbffd907";
};
in
stdenv.mkDerivation rec {
pname = "lamdera";
version = "1.0.1";
version = "1.1.0";
src = fetchurl {
url = "https://static.lamdera.com/bin/linux/lamdera-v${version}";
sha256 = "15dee9df5d4e71b07a65fbd89d0f7dcd8c3e7ba05fe2b0e7a30d29bbd1239d9f";
url = "https://static.lamdera.com/bin/lamdera-${version}-${os}-${arch}";
sha256 = hashes.${stdenv.system};
};
dontUnpack = true;
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [
gmp5
ncurses5
zlib
];
installPhase = ''
install -m755 -D $src $out/bin/lamdera
'';
@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
homepage = "https://lamdera.com";
license = licenses.unfree;
description = "A delightful platform for full-stack web apps";
platforms = [ "x86_64-linux" ];
platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
maintainers = with maintainers; [ Zimmi48 ];
};
}

View file

@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
map (hardware: "--enable-${hardware}") extraHardwareSupport
;
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
"-Wno-error=cpp"
"-Wno-error=strict-prototypes" # fixes build failure with hidapi 0.10.0

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zef";
version = "0.18.1";
version = "0.18.2";
src = fetchFromGitHub {
owner = "ugexe";
repo = "zef";
rev = "v${version}";
sha256 = "sha256-F4q8cHM1CLp9FLZTo6WmxEiK2sqmAx3LOHevNXn2kOw=";
sha256 = "sha256-0EWajziWoxWLGaj54FfvEMNPPTc2Wb6O050o2qWGJ9c=";
};
nativeBuildInputs = [ makeWrapper ];

View file

@ -3,6 +3,7 @@
, fetchurl
, gtk3
, meson
, mesonEmulatorHook
, ninja
, pkg-config
, gobject-introspection
@ -24,6 +25,7 @@ stdenv.mkDerivation rec {
sha256 = "1QEVuFyHKqwpaTS17nJqP6FWxvWtltJ+Dt0Kpa0XMig=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
@ -32,6 +34,8 @@ stdenv.mkDerivation rec {
gobject-introspection
gtk-doc
docbook-xsl-nons
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [

View file

@ -1,4 +1,4 @@
{ fetchurl, fetchpatch, lib, stdenv, pkg-config, clutter, gtk3, glib, cogl, gnome, gdk-pixbuf }:
{ fetchurl, fetchpatch, lib, stdenv, pkg-config, clutter, gtk3, glib, cogl, gnome, gdk-pixbuf, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "clutter-gst";
@ -21,8 +21,9 @@ stdenv.mkDerivation rec {
})
];
strictDeps = true;
nativeBuildInputs = [ pkg-config glib gobject-introspection ];
propagatedBuildInputs = [ clutter gtk3 glib cogl gdk-pixbuf ];
nativeBuildInputs = [ pkg-config ];
postBuild = "rm -rf $out/share/gtk-doc";

View file

@ -1,13 +1,13 @@
{ lib, stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "cmark-gfm";
version = "0.29.0.gfm.9";
version = "0.29.0.gfm.10";
src = fetchFromGitHub {
owner = "github";
repo = "cmark-gfm";
rev = version;
sha256 = "sha256-goQtLaiLCyEqVItPfH3e/pFroQWZuVT5oxLs1/GwdoU=";
sha256 = "sha256-8TGwxZB/sT+VmQ0eIwK8rHJrCZXvpG69t+HA3aFz5h8=";
};
nativeBuildInputs = [ cmake ];

View file

@ -46,6 +46,10 @@ stdenv.mkDerivation rec {
configureFlags = [
"--enable-relocatable" # needed for tests
"--with-aspell"
"--with-hspell"
"--with-hunspell"
"--with-nuspell"
];
meta = with lib; {

View file

@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config gobject-introspection ];
propagatedBuildInputs = [ glib zlib libgpg-error ];
configureFlags = [ "--enable-introspection=yes" ];
configureFlags = [
"--enable-introspection=yes"
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "ac_cv_have_iconv_detect_h=yes" ];
postPatch = ''
substituteInPlace tests/testsuite.c \
@ -24,6 +26,10 @@ stdenv.mkDerivation rec {
--replace /bin/mkdir mkdir
'';
preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp ${if stdenv.hostPlatform.isMusl then ./musl-iconv-detect.h else ./iconv-detect.h} ./iconv-detect.h
'';
nativeCheckInputs = [ gnupg ];
enableParallelBuilding = true;

View file

@ -12,19 +12,32 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
buildInputs = [ vala gobject-introspection zlib gpgme libidn2 libunistring ];
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [ pkg-config gobject-introspection vala ];
buildInputs = [
zlib
gpgme
libidn2
libunistring
vala # for share/vala/Makefile.vapigen
];
propagatedBuildInputs = [ glib ];
configureFlags = [
"--enable-introspection=yes"
"--enable-vala=yes"
];
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "ac_cv_have_iconv_detect_h=yes" ];
postPatch = ''
substituteInPlace tests/testsuite.c \
--replace /bin/rm rm
'';
preConfigure = ''
PKG_CONFIG_VAPIGEN_VAPIGEN="$(type -p vapigen)"
export PKG_CONFIG_VAPIGEN_VAPIGEN
'' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
cp ${if stdenv.hostPlatform.isMusl then ./musl-iconv-detect.h else ./iconv-detect.h} ./iconv-detect.h
'';
nativeCheckInputs = [ gnupg ];
doCheck = true;

View file

@ -0,0 +1,6 @@
/* This is an auto-generated header, DO NOT EDIT! */
#define ICONV_ISO_INT_FORMAT "iso-%u-%u"
#define ICONV_ISO_STR_FORMAT "iso-%u-%s"
#define ICONV_SHIFT_JIS "shift-jis"
#define ICONV_10646 "iso-10646"

View file

@ -0,0 +1,6 @@
/* This is an auto-generated header, DO NOT EDIT! */
#define ICONV_ISO_INT_FORMAT "iso-%u-%u"
#define ICONV_ISO_STR_FORMAT "iso-%u-%s"
#define ICONV_SHIFT_JIS "shift-jis"
#define ICONV_10646 "UCS-4BE"

View file

@ -59,6 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
gobject-introspection
vala
gi-docgen
gtk4 # for gtk4-update-icon-cache checked during configure
];
buildInputs = [

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gobject-introspection, vala, gtk-doc, docbook_xsl, glib }:
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gobject-introspection, vala, gtk-doc, docbook_xsl, glib, mesonEmulatorHook }:
# TODO: Add installed tests once https://gitlab.gnome.org/World/libcloudproviders/issues/4 is fixed
@ -17,7 +17,18 @@ stdenv.mkDerivation rec {
"-Denable-gtk-doc=true"
];
nativeBuildInputs = [ meson ninja pkg-config gobject-introspection vala gtk-doc docbook_xsl ];
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
gobject-introspection
vala
gtk-doc
docbook_xsl
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [ glib ];

View file

@ -1061,7 +1061,7 @@ dependencies = [
[[package]]
name = "deltachat"
version = "1.112.5"
version = "1.112.6"
dependencies = [
"ansi_term",
"anyhow",
@ -1135,7 +1135,7 @@ dependencies = [
[[package]]
name = "deltachat-jsonrpc"
version = "1.112.5"
version = "1.112.6"
dependencies = [
"anyhow",
"async-channel",
@ -1158,7 +1158,7 @@ dependencies = [
[[package]]
name = "deltachat-repl"
version = "1.112.5"
version = "1.112.6"
dependencies = [
"ansi_term",
"anyhow",
@ -1173,7 +1173,7 @@ dependencies = [
[[package]]
name = "deltachat-rpc-server"
version = "1.112.5"
version = "1.112.6"
dependencies = [
"anyhow",
"deltachat",
@ -1197,7 +1197,7 @@ dependencies = [
[[package]]
name = "deltachat_ffi"
version = "1.112.5"
version = "1.112.6"
dependencies = [
"anyhow",
"deltachat",
@ -1781,7 +1781,7 @@ dependencies = [
"futures-sink",
"nanorand",
"pin-project",
"spin 0.9.7",
"spin 0.9.8",
]
[[package]]
@ -2325,9 +2325,9 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
[[package]]
name = "iroh"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c019223f5af15f978ff44ae02b8b83d21d53df4c42d4475aa80670819c3ecdce"
checksum = "e4fb9858c8cd3dd924a5da5bc511363845a9bcfdfac066bb2ef8454eb6111546"
dependencies = [
"abao",
"anyhow",
@ -4147,9 +4147,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
name = "spin"
version = "0.9.7"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0959fd6f767df20b231736396e4f602171e00d95205676286e79d4a4eb67bef"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]

View file

@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "1.112.5";
version = "1.112.6";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
rev = "v${version}";
hash = "sha256-me09xhsaiJr2i6kdB62suS5LBf3gr4vL3dHgdPMbD1g=";
hash = "sha256-xadf6N5x3zdefwsKUFaVs71HmLMpJoUq5LL7IENsvC0=";
};
patches = [

View file

@ -0,0 +1,704 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "anes"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
[[package]]
name = "anyhow"
version = "1.0.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi 0.1.19",
"libc",
"winapi",
]
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitstream-io"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d28070975aaf4ef1fd0bd1f29b739c06c2cdd9972e090617fb6dca3b2cb564e"
[[package]]
name = "bitvec"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
dependencies = [
"funty",
"radium",
"tap",
"wyz",
]
[[package]]
name = "bitvec_helpers"
version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ef6883bd86b4112b56be19de3a1628de6c4063be7be6e641d484c83069efb4a"
dependencies = [
"bitstream-io",
]
[[package]]
name = "bumpalo"
version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
[[package]]
name = "cast"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "ciborium"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
dependencies = [
"ciborium-io",
"ciborium-ll",
"serde",
]
[[package]]
name = "ciborium-io"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
[[package]]
name = "ciborium-ll"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
dependencies = [
"ciborium-io",
"half",
]
[[package]]
name = "clap"
version = "3.2.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
dependencies = [
"bitflags",
"clap_lex",
"indexmap",
"textwrap",
]
[[package]]
name = "clap_lex"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
dependencies = [
"os_str_bytes",
]
[[package]]
name = "crc"
version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
dependencies = [
"crc-catalog",
]
[[package]]
name = "crc-catalog"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484"
[[package]]
name = "criterion"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
dependencies = [
"anes",
"atty",
"cast",
"ciborium",
"clap",
"criterion-plot",
"itertools",
"lazy_static",
"num-traits",
"oorandom",
"plotters",
"rayon",
"regex",
"serde",
"serde_derive",
"serde_json",
"tinytemplate",
"walkdir",
]
[[package]]
name = "criterion-plot"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
dependencies = [
"cast",
"itertools",
]
[[package]]
name = "crossbeam-channel"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
dependencies = [
"cfg-if",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
dependencies = [
"cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset",
"scopeguard",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
dependencies = [
"cfg-if",
]
[[package]]
name = "dolby_vision"
version = "3.1.2"
dependencies = [
"anyhow",
"bitvec",
"bitvec_helpers",
"crc",
"criterion",
"libc",
"roxmltree",
"serde",
"serde_json",
]
[[package]]
name = "either"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[package]]
name = "funty"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
[[package]]
name = "half"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "hermit-abi"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
dependencies = [
"libc",
]
[[package]]
name = "indexmap"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown",
]
[[package]]
name = "itertools"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
dependencies = [
"either",
]
[[package]]
name = "itoa"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
[[package]]
name = "js-sys"
version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.141"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
[[package]]
name = "log"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
[[package]]
name = "memoffset"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
dependencies = [
"autocfg",
]
[[package]]
name = "num-traits"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
"autocfg",
]
[[package]]
name = "num_cpus"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
dependencies = [
"hermit-abi 0.2.6",
"libc",
]
[[package]]
name = "once_cell"
version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
[[package]]
name = "oorandom"
version = "11.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
[[package]]
name = "os_str_bytes"
version = "6.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
[[package]]
name = "plotters"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
dependencies = [
"num-traits",
"plotters-backend",
"plotters-svg",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "plotters-backend"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
[[package]]
name = "plotters-svg"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
dependencies = [
"plotters-backend",
]
[[package]]
name = "proc-macro2"
version = "1.0.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
dependencies = [
"proc-macro2",
]
[[package]]
name = "radium"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
[[package]]
name = "rayon"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-utils",
"num_cpus",
]
[[package]]
name = "regex"
version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
dependencies = [
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.6.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "roxmltree"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8"
dependencies = [
"xmlparser",
]
[[package]]
name = "ryu"
version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
[[package]]
name = "same-file"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
dependencies = [
"winapi-util",
]
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "serde"
version = "1.0.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.13",
]
[[package]]
name = "serde_json"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
dependencies = [
"indexmap",
"itoa",
"ryu",
"serde",
]
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syn"
version = "2.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "tap"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "textwrap"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[package]]
name = "tinytemplate"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "unicode-ident"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
[[package]]
name = "walkdir"
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
dependencies = [
"same-file",
"winapi-util",
]
[[package]]
name = "wasm-bindgen"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
"syn 1.0.109",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
[[package]]
name = "web-sys"
version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
dependencies = [
"js-sys",
"wasm-bindgen",
]
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "wyz"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
dependencies = [
"tap",
]
[[package]]
name = "xmlparser"
version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"

View file

@ -0,0 +1,53 @@
{ lib
, rustPlatform
, fetchCrate
, cargo-c
, rust
, stdenv
}:
let
rustTargetPlatformSpec = rust.toRustTargetSpec stdenv.hostPlatform;
in
rustPlatform.buildRustPackage rec {
pname = "libdovi";
version = "3.1.2";
src = fetchCrate {
pname = "dolby_vision";
inherit version;
hash = "sha256-eLmGswgxtmqGc9f8l/9qvwSm+8bi06q+Ryvo7Oyr7s0=";
};
cargoLock.lockFile = ./Cargo.lock;
postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [ cargo-c ];
buildPhase = ''
runHook preBuild
cargo cbuild -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
runHook postBuild
'';
installPhase = ''
runHook preInstall
cargo cinstall -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
cargo ctest -j $NIX_BUILD_CORES --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
runHook postCheck
'';
meta = with lib; {
description = "C library for Dolby Vision metadata parsing and writing";
homepage = "https://crates.io/crates/dolby_vision";
license = licenses.mit;
maintainers = with maintainers; [ kranzes ];
};
}

View file

@ -1,4 +1,5 @@
{ lib, stdenv
{ lib
, stdenv
, fetchFromGitLab
, meson
, ninja
@ -8,40 +9,41 @@
, vulkan-loader
, shaderc
, lcms2
, libepoxy
, libGL
, xorg
, libunwind
, libdovi
}:
stdenv.mkDerivation rec {
pname = "libplacebo";
version = "4.208.0";
version = "5.264.1";
src = fetchFromGitLab {
domain = "code.videolan.org";
owner = "videolan";
repo = pname;
rev = "v${version}";
sha256 = "161dp5781s74ca3gglaxlmchx7glyshf0wg43w98pl22n1jcm5qk";
hash = "sha256-YEefuEfJURi5/wswQKskA/J1UGzessQQkBpltJ0Spq8=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3Packages.mako
vulkan-headers
python3Packages.jinja2
python3Packages.glad2
];
buildInputs = [
vulkan-headers
vulkan-loader
shaderc
lcms2
libepoxy
libGL
xorg.libX11
libunwind
libdovi
];
mesonFlags = [
@ -53,6 +55,11 @@ stdenv.mkDerivation rec {
"-Dunwind=disabled" # libplacebo doesnt build with `darwin.libunwind`
];
postPatch = ''
substituteInPlace meson.build \
--replace 'python_env.append' '#'
'';
meta = with lib; {
description = "Reusable library for GPU-accelerated video/image rendering primitives";
longDescription = ''

View file

@ -37,6 +37,8 @@ stdenv.mkDerivation rec {
})
];
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
@ -64,6 +66,12 @@ stdenv.mkDerivation rec {
# https://gitlab.gnome.org/GNOME/librest/-/merge_requests/19
substituteInPlace meson.build \
--replace "con." "conf."
# Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
# it should be a build-time dep for build
# TODO: send upstream
substituteInPlace docs/meson.build \
--replace "'gi-docgen', ver" "'gi-docgen', native:true, ver"
'';
postFixup = ''

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ icu ];
propagatedBuildInputs = [ icu ];
outputs = [ "out" "lib" "dev" ];

View file

@ -22,16 +22,17 @@ stdenv.mkDerivation rec {
sha256 = "sKN013HN0IESXzjDq9B5ZXZCMBxxpUPVVeK/IZGSc/A=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
libxslt
gobject-introspection
vala
python3
];
buildInputs = [
glibcLocales
python3
];
propagatedBuildInputs = [

View file

@ -1,6 +1,7 @@
{ lib, stdenv
, fetchurl
, meson
, mesonEmulatorHook
, ninja
, amtk
, gnome
@ -24,6 +25,7 @@ stdenv.mkDerivation rec {
sha256 = "XlayBmnQzwX6HWS1jIw0LFkVgSLcUYEA0JPVnfm4cyE=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
@ -31,6 +33,8 @@ stdenv.mkDerivation rec {
pkg-config
gtk-doc
docbook-xsl-nons
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [

View file

@ -2,6 +2,7 @@
, lib
, fetchFromGitLab
, meson
, mesonEmulatorHook
, ninja
, pkg-config
, gobject-introspection
@ -26,6 +27,7 @@ stdenv.mkDerivation rec {
sha256 = "NuxiVVowZ8ilP9rcgapCe9OzFCpoOfZxZiSyjTeOrts=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
@ -34,6 +36,8 @@ stdenv.mkDerivation rec {
vala
gtk-doc
docbook-xsl-nons
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [

View file

@ -1,20 +1,32 @@
{ stdenv, fetchurl, buildPackages
{ stdenv, fetchurl, buildPackages, lib, fetchpatch, texinfo
, # "newlib-nano" is what the official ARM embedded toolchain calls this build
# configuration that prioritizes low space usage. We include it as a preset
# for embedded projects striving for a similar configuration.
nanoizeNewlib ? false
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "newlib";
version = "4.1.0";
version = "4.3.0.20230120";
src = fetchurl {
url = "ftp://sourceware.org/pub/newlib/newlib-${version}.tar.gz";
sha256 = "0m01sjjyj0ib7bwlcrvmk1qkkgd66zf1dhbw716j490kymrf75pj";
url = "ftp://sourceware.org/pub/newlib/newlib-${finalAttrs.version}.tar.gz";
sha256 = "sha256-g6Yqma9Z4465sMWO0JLuJNcA//Q6IsA+QzlVET7zUVA=";
};
depsBuildBuild = [ buildPackages.stdenv.cc ];
patches = lib.optionals nanoizeNewlib [
# https://bugs.gentoo.org/723756
(fetchpatch {
name = "newlib-3.3.0-no-nano-cxx.patch";
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-libs/newlib/files/newlib-3.3.0-no-nano-cxx.patch?id=9ee5a1cd6f8da6d084b93b3dbd2e8022a147cfbf";
sha256 = "sha256-S3mf7vwrzSMWZIGE+d61UDH+/SK/ao1hTPee1sElgco=";
})
];
depsBuildBuild = [
buildPackages.stdenv.cc
texinfo # for makeinfo
];
# newlib expects CC to build for build platform, not host platform
preConfigure = ''
@ -22,31 +34,65 @@ stdenv.mkDerivation rec {
'';
configurePlatforms = [ "build" "target" ];
# flags copied from https://community.arm.com/support-forums/f/compilers-and-libraries-forum/53310/gcc-arm-none-eabi-what-were-the-newlib-compilation-options
# sort alphabetically
configureFlags = [
"--host=${stdenv.buildPlatform.config}"
] ++ (if !nanoizeNewlib then [
"--disable-newlib-supplied-syscalls"
"--disable-nls"
"--enable-newlib-retargetable-locking"
] ++ (if !nanoizeNewlib then [
"--enable-newlib-io-c99-formats"
"--enable-newlib-io-long-long"
"--enable-newlib-reent-check-verify"
"--enable-newlib-register-fini"
"--enable-newlib-retargetable-locking"
] else [
"--enable-newlib-reent-small"
"--disable-newlib-fvwrite-in-streamio"
"--disable-newlib-fseek-optimization"
"--disable-newlib-wide-orient"
"--enable-newlib-nano-malloc"
"--disable-newlib-fvwrite-in-streamio"
"--disable-newlib-supplied-syscalls"
"--disable-newlib-unbuf-stream-opt"
"--disable-newlib-wide-orient"
"--disable-nls"
"--enable-lite-exit"
"--enable-newlib-global-atexit"
"--enable-newlib-nano-formatted-io"
"--enable-newlib-nano-malloc"
"--enable-newlib-reent-check-verify"
"--enable-newlib-reent-small"
"--enable-newlib-retargetable-locking"
]);
dontDisableStatic = true;
# apply necessary nano changes from https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/manifest/copy_nano_libraries.sh?rev=4c50be6ccb9c4205a5262a3925317073&hash=1375A7B0A1CD0DB9B9EB0D2B574ADF66
postInstall = lib.optionalString nanoizeNewlib ''
mkdir -p $out${finalAttrs.passthru.incdir}/newlib-nano
cp $out${finalAttrs.passthru.incdir}/newlib.h $out${finalAttrs.passthru.incdir}/newlib-nano/
(
cd $out${finalAttrs.passthru.libdir}
for f in librdimon.a libc.a libg.a; do
cp "$f" "''${f%%\.a}_nano.a"
done
)
'';
passthru = {
incdir = "/${stdenv.targetPlatform.config}/include";
libdir = "/${stdenv.targetPlatform.config}/lib";
};
}
meta = with lib; {
description = "a C library intended for use on embedded systems";
homepage = "https://sourceware.org/newlib/";
# arch has "bsd" while gentoo has "NEWLIB LIBGLOSS GPL-2" while COPYING has "gpl2"
# there are 5 copying files in total
# COPYING
# COPYING.LIB
# COPYING.LIBGLOSS
# COPYING.NEWLIB
# COPYING3
license = licenses.gpl2Plus;
};
})

View file

@ -2,11 +2,13 @@
buildDunePackage rec {
pname = "atdgen-codec-runtime";
version = "2.10.0";
version = "2.11.0";
duneVersion = "3";
src = fetchurl {
url = "https://github.com/ahrefs/atd/releases/download/${version}/atdts-${version}.tbz";
sha256 = "sha256-d9J0CaTp2sQbnKLp6mCDbGwYAIsioVer7ftaLSSFCZg=";
hash = "sha256-TTTuSxNKydPmTmztUapLoxntBIrAo8aWYIJ/G5cok1Y=";
};
meta = {

View file

@ -6,6 +6,8 @@ buildDunePackage {
pname = "atdgen";
inherit (atdgen-codec-runtime) version src;
duneVersion = "3";
buildInputs = [ atd re ];
propagatedBuildInputs = [ atdgen-runtime ];

View file

@ -5,6 +5,7 @@ buildDunePackage rec {
inherit (atdgen-codec-runtime) version src;
minimalOCamlVersion = "4.08";
duneVersion = "3";
propagatedBuildInputs = [ biniou yojson ];

View file

@ -35,6 +35,7 @@ buildDunePackage rec {
./atd_2_10.patch;
minimalOCamlVersion = "4.04";
duneVersion = "3";
# atdgen is both a library and executable
nativeBuildInputs = [ perl ]

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "aiodiscover";
version = "1.4.15";
version = "1.4.16";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "bdraco";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-Ee6lo1910dR02fAQEkuS+xCzM93UMKkrgbKPd/Id0Uc=";
hash = "sha256-umHw9DFLIsoxBNlUSuSmaRy5O270lP0tLZ8rilw0oWg=";
};
propagatedBuildInputs = [

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "aioesphomeapi";
version = "13.6.0";
version = "13.6.1";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "esphome";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-M/KgQFt603V9wzd3SGexjDU7YWwStzVPZOoMBwp52/I=";
hash = "sha256-S2a5v4OeE0DC9J2JAHFQ6YyhWt6RXp3cP+zkONp+Bzc=";
};
propagatedBuildInputs = [

View file

@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "aiohomekit";
version = "2.6.2";
version = "2.6.3";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "Jc2k";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-FqZYJoNaRISuZ5m5ZeeregPdBT4fh8NdcgzEho0ZWd0=";
hash = "sha256-bVvz5ruc1OpRnSKso3XHAnppnN/4ySfRHodE787eLFw=";
};
nativeBuildInputs = [

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "aiounifi";
version = "45";
version = "46";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-VwuZj0TBc8BBO6ZxpIAR0s0hrOI1muiT4AsDZ+xZPcI=";
hash = "sha256-M6N7KTFYmtjmRSiIYummn2GbO3XemQzCEW+6GVXq9ZI=";
};
propagatedBuildInputs = [

View file

@ -19,7 +19,7 @@
}:
buildPythonPackage rec {
version = "8.2.0";
version = "8.2.5";
pname = "approvaltests";
format = "setuptools";
@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "approvals";
repo = "ApprovalTests.Python";
rev = "refs/tags/v${version}";
hash = "sha256-7OeFOPBOs+SXKOQGKxiigVvoY50+bqRo+oDbVYTMQxU=";
hash = "sha256-guZR996UBqWsBnZx2kdSffkPzkMRfS48b1XcM5L8+I4=";
};
propagatedBuildInputs = [

View file

@ -1,10 +1,11 @@
{ lib, buildPythonPackage, fetchPypi, pythonOlder, python }:
{ lib, buildPythonPackage, fetchPypi, pythonOlder, python, pythonAtLeast }:
buildPythonPackage rec {
pname = "asynctest";
version = "0.13.0";
disabled = pythonOlder "3.5";
# Unmaintained and incompatible python 3.11
disabled = pythonAtLeast "3.11";
src = fetchPypi {
inherit pname version;

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "asyncwhois";
version = "1.0.4";
version = "1.0.5";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "pogzyb";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-ygpmm0CF+L871CpHZEmzdJQvin1uYZMb7kkilrom1YU=";
hash = "sha256-ILKnJlPT8BuZK06xk7fWYXcdn9SRL5zA3+B6CfJwvKM=";
};
propagatedBuildInputs = [

View file

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "bellows";
version = "0.34.10";
version = "0.35.0";
format = "setuptools";
disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "bellows";
rev = "refs/tags/${version}";
hash = "sha256-eD9E/NbM3t1kWhPwY2SmjuCk+XVwklm4rwzISlQHtq0=";
hash = "sha256-LxIIaxrDWRdYV3K2Geuz0gdDEzqMzYN1tXvjIkQxQoA=";
};
propagatedBuildInputs = [

View file

@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "bimmer-connected";
version = "0.13.0";
version = "0.13.1";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "bimmerconnected";
repo = "bimmer_connected";
rev = "refs/tags/${version}";
hash = "sha256-o6rCxSJtWqcHqcrhKaVSxEfFLDBikUU9jAszRjihM2o=";
hash = "sha256-bkJhVMcQifNWT/TkUDR2xHlKFHf0lydHdRMQotZWeCM=";
};
nativeBuildInputs = [
@ -50,6 +50,7 @@ buildPythonPackage rec {
];
meta = with lib; {
changelog = "https://github.com/bimmerconnected/bimmer_connected/releases/tag/${version}";
description = "Library to read data from the BMW Connected Drive portal";
homepage = "https://github.com/bimmerconnected/bimmer_connected";
license = licenses.asl20;

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "bleak-retry-connector";
version = "3.0.0";
version = "3.0.2";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-zBZDfUOmy2stIW3Ldm/VN/2G66vg4Lj6kdJCBwo885Y=";
hash = "sha256-mJQ3Y6o6HAqnktsPVuD9ebGgJo0BjSnlDTyqTpNPb1M=";
};
postPatch = ''

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "bleak";
version = "0.19.5";
version = "0.20.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "hbldh";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-KKZrp5yNuslEPn/TS4eAOMT48C4A5Da5/NhklyFcy7M=";
hash = "sha256-8QFcoWKF2Hc49xJ+224lYaPpTVF1QsMu6Lu66J5ok0Y=";
};
nativeBuildInputs = [

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "brother";
version = "2.2.0";
version = "2.3.0";
format = "setuptools";
disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "bieniu";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-bp4YerSTTsuWX3Yc+btlhwCNZO3eDxRgKNzLZFJbKV0=";
hash = "sha256-f55daLPBepNDIfZFAZWdkAvEkNb0cyYQt9LkqyIMrnY=";
};
propagatedBuildInputs = [

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "docformatter";
version = "1.5.1";
version = "1.6.0";
disabled = pythonOlder "3.6";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "PyCQA";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-r+8FOl9Rrfi3V8f8wD41bRsaqDb+UrOBWuR3goK43xY=";
hash = "sha256-CzfJk8EkUKPGIJwaDC/IT4CDCJpQI7XEZFnH+RahURI=";
};
patches = [

View file

@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "env-canada";
version = "0.5.29";
version = "0.5.30";
format = "setuptools";
disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "michaeldavie";
repo = "env_canada";
rev = "refs/tags/v${version}";
hash = "sha256-iGL2LrjVDj4rmzRe6JEBlZxqk6Zt1JlCsQdo+wYXb+0=";
hash = "sha256-bwoLxE47rLr7KNv0qEHjqKf5PJxBNdkaGLf86diTnKo=";
};
propagatedBuildInputs = [

View file

@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "furo";
version = "2022.12.7";
version = "2023.3.27";
format = "wheel";
disable = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
inherit pname version format;
dist = "py3";
python = "py3";
hash = "sha256-fLdsEqJe9l24WrB0PfkHVz0DAnozYx8X0mflmOuxkfc=";
hash = "sha256-SrK+JUotXlJ5LQynk6EsNVgt0JiXIopt1HiF2r1clSE=";
};
propagatedBuildInputs = [

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "gcal-sync";
version = "4.1.2";
version = "4.1.3";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "allenporter";
repo = "gcal_sync";
rev = "refs/tags/${version}";
hash = "sha256-xUU+Bbc0NJBdGXNne/b8kClPNR3REAPiOTAzTDbdU+Q=";
hash = "sha256-NfgR+X77cuhXCy55Bx9ecP8vN8zs2coexcnCsQ4SbfU=";
};
propagatedBuildInputs = [

View file

@ -0,0 +1,28 @@
{ lib
, python3
, fetchPypi
}:
python3.pkgs.buildPythonPackage rec {
pname = "glad2";
version = "2.0.4";
format = "setuptools";
src = fetchPypi {
inherit pname version;
hash = "sha256-7eFjn2nyugjx9JikCnB/NKYJ0k6y6g1sk2RomnmM99A=";
};
propagatedBuildInputs = with python3.pkgs; [
jinja2
];
pythonImportsCheck = [ "glad" ];
meta = with lib; {
description = "Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specifications";
homepage = "https://pypi.org/project/glad2";
license = licenses.mit;
maintainers = with maintainers; [ kranzes ];
};
}

View file

@ -8,19 +8,23 @@
, pycognito
, pytest-aiohttp
, pytestCheckHook
, pythonOlder
, snitun
, warrant
}:
buildPythonPackage rec {
pname = "hass-nabucasa";
version = "0.61.0";
version = "0.64.0";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "nabucasa";
repo = pname;
rev = version;
hash = "sha256-KG2eCwGZWVtepJQdsSwFziWsT1AbV6rYWRIO/I/CR8g=";
rev = "refs/tags/${version}";
hash = "sha256-30Z8KBgcd53Nd9lf39Wt28PaYFcnBZ5LC7B+1cestKM=";
};
postPatch = ''
@ -40,18 +44,19 @@ buildPythonPackage rec {
warrant
];
doCheck = lib.versionAtLeast pytest-aiohttp.version "1.0.0";
nativeCheckInputs = [
pytest-aiohttp
pytestCheckHook
];
pythonImportsCheck = [ "hass_nabucasa" ];
pythonImportsCheck = [
"hass_nabucasa"
];
meta = with lib; {
homepage = "https://github.com/NabuCasa/hass-nabucasa";
description = "Python module for the Home Assistant cloud integration";
changelog = "https://github.com/NabuCasa/hass-nabucasa/releases/tag/${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ Scriptkiddi ];
};

View file

@ -13,11 +13,12 @@
, pytest-golden
, pytestCheckHook
, pythonOlder
, pyyaml
}:
buildPythonPackage rec {
pname = "ical";
version = "4.2.9";
version = "4.5.3";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -26,7 +27,7 @@ buildPythonPackage rec {
owner = "allenporter";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-p1cvs+xLin2WK2zyqQFd1vWKzt+LU2mpDSieOgA7Qf8=";
hash = "sha256-CHo6khJ8Bqej/OdQBtcfa/luO1Gj8cu7h//MwPhWrMU=";
};
propagatedBuildInputs = [
@ -44,11 +45,9 @@ buildPythonPackage rec {
pytest-benchmark
pytest-golden
pytestCheckHook
pyyaml
];
# https://github.com/allenporter/ical/issues/136
disabledTests = [ "test_all_zoneinfo" ];
pythonImportsCheck = [
"ical"
];

View file

@ -7,14 +7,14 @@
buildPythonPackage rec {
pname = "insteon-frontend-home-assistant";
version = "0.3.3";
version = "0.3.4";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-aZ10z7xCVWq4V2+jPCybFa5LKGhvtchrwgTVFfxhM+o=";
hash = "sha256-c4IvtTn1pLcPHKPyP0FRv3NOu1+Ie42B/Jkc7ej1Roo=";
};
nativeBuildInputs = [

View file

@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "internetarchive";
version = "3.3.0";
version = "3.4.0";
format = "setuptools";
@ -24,7 +24,7 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
hash = "sha256-PLf+PMIXlaoL974e7coQCQKH6cVBYODPhkDxa2vhTB0=";
hash = "sha256-vrvktAuijBKo3IsMQzUs5EyfwFCFGmvXZ4kCvlbeGWE=";
};
propagatedBuildInputs = [

View file

@ -239,7 +239,7 @@ let
x86_64-linux = "sha256-A0A18kxgGNGHNQ67ZPUzh3Yq2LEcRV7CqR9EfP80NQk=";
aarch64-linux = "sha256-mU2jzuDu89jVmaG/M5bA3jSd7n7lDi+h8sdhs1z8p1A=";
x86_64-darwin = "sha256-9nNTpetvjyipD/l8vKlregl1j/OnZKAcOCoZQeRBvts=";
aarch64-darwin = "sha256-dOGUsdFImeOLcZ3VtgrNnd8A/HgIs/LYuH9GQV7A+78=";
aarch64-darwin = "sha256-FqYwI1YC5eqSv+DYj09DC5IaBfFDUCO97y+TFhGiWAA=";
}.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
};

View file

@ -2,6 +2,7 @@
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pythonRelaxDepsHook
, rapidfuzz
, click
}:
@ -20,6 +21,7 @@ buildPythonPackage rec {
nativeBuildInputs = [
poetry-core
pythonRelaxDepsHook
];
propagatedBuildInputs = [
@ -27,10 +29,14 @@ buildPythonPackage rec {
click
];
pythonRelaxDeps = [
"rapidfuzz"
];
pythonImportsCheck = [ "jiwer" ];
meta = with lib; {
description = "JiWER is a simple and fast python package to evaluate an automatic speech recognition system";
description = "A simple and fast python package to evaluate an automatic speech recognition system";
homepage = "https://github.com/jitsi/jiwer";
license = licenses.asl20;
maintainers = with maintainers; [ GaetanLepage ];

View file

@ -0,0 +1,55 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, poetry-core
, setuptools
, pytestCheckHook
, multidict
, xmljson
}:
buildPythonPackage rec {
pname = "latex2mathml";
version = "3.75.2";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "roniemartinez";
repo = pname;
rev = version;
hash = "sha256-i/F1B/Rndg66tiKok1PDMK/rT5c2e8upnQrMSCTUzpU=";
};
format = "pyproject";
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
setuptools # needs pkg_resources at runtime
];
nativeCheckInputs = [
pytestCheckHook
multidict
xmljson
];
# Disable code coverage in check phase
postPatch = ''
sed -i '/--cov/d' pyproject.toml
'';
pythonImportsCheck = [ "latex2mathml" ];
meta = with lib; {
description = "Pure Python library for LaTeX to MathML conversion";
homepage = "https://github.com/roniemartinez/latex2mathml";
changelog = "https://github.com/roniemartinez/latex2mathml/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ sfrijters ];
};
}

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "lsprotocol";
version = "2022.0.0a10";
version = "2023.0.0a1";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "microsoft";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-IAFNEWpBRVAGcJNIV1bog9K2nANRw/qJfCJ9+Wu/yJc=";
hash = "sha256-gfsqn9NtO7meMks4dUhrTYVlr69Ffh339GD9FvCJvJM=";
};
nativeBuildInputs = [
@ -44,6 +44,14 @@ buildPythonPackage rec {
pyhamcrest
];
preBuild = ''
cd packages/python
'';
preCheck = ''
cd ../../
'';
checkPhase = ''
runHook preCheck

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "mitmproxy-wireguard";
version = "0.1.21";
version = "0.1.23";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "decathorpe";
repo = "mitmproxy_wireguard";
rev = "refs/tags/${version}";
hash = "sha256-479JCAxc6bK5X8nKKyzLvmuxPYPj5M19sZiO9vaK0DM=";
hash = "sha256-z9ucTBLLRXc1lcHA0r1wUleoP8X7yIlHrtdZdLD9qJk=";
};
buildInputs = lib.optionals stdenv.isDarwin [
@ -38,7 +38,7 @@ buildPythonPackage rec {
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-3reDkpnLTS32MZvvbRzDJovzUPAZmn2WRThmmeHGVXY=";
hash = "sha256-qgyAaUpyuWVYMxUA4Gg8inlUMlSLo++16+nVvmDMhTQ=";
};
# Module has no tests, only a test client

View file

@ -13,6 +13,8 @@
, gorilla
, gunicorn
, importlib-metadata
, markdown
, matplotlib
, numpy
, packaging
, pandas
@ -20,28 +22,37 @@
, protobuf
, python-dateutil
, pythonOlder
, pythonRelaxDepsHook
, pyarrow
, pyyaml
, querystring_parser
, requests
, scikit-learn
, scipy
, shap
, simplejson
, six
, sqlalchemy
, sqlparse
}:
buildPythonPackage rec {
pname = "mlflow";
version = "2.1.1";
version = "2.2.2";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-oRazzUW7+1CaFyO/1DiL21ZqPlBF483lOQ5mf1kUmKY=";
hash = "sha256-PvLC7iDJp63t/zTnVsbtrGLPTZBXZa0OgHS8naoMWAw";
};
# Remove currently broken dependency `shap`, a model explainability package.
# This seems quite unprincipled especially with tests not being enabled,
# but not mlflow has a 'skinny' install option which does not require `shap`.
nativeBuildInputs = [ pythonRelaxDepsHook ];
pythonRemoveDeps = [ "shap" ];
propagatedBuildInputs = [
alembic
click
@ -54,18 +65,22 @@ buildPythonPackage rec {
gorilla
gunicorn
importlib-metadata
markdown
matplotlib
numpy
packaging
pandas
prometheus-flask-exporter
protobuf
python-dateutil
pyarrow
pyyaml
querystring_parser
requests
scikit-learn
scipy
#shap
simplejson
six
sqlalchemy
sqlparse
];
@ -74,6 +89,7 @@ buildPythonPackage rec {
"mlflow"
];
# no tests in PyPI dist
# run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
# also, tests use conda so can't run on NixOS without buildFHSUserEnv
doCheck = false;
@ -84,9 +100,5 @@ buildPythonPackage rec {
changelog = "https://github.com/mlflow/mlflow/blob/v${version}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ tbenst ];
knownVulnerabilities = [
"CVE-2023-1176"
"CVE-2023-1177"
];
};
}

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