Merge master into haskell-updates
This commit is contained in:
commit
ee14a276ab
200 changed files with 13587 additions and 4462 deletions
|
@ -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";
|
||||
|
|
|
@ -288,7 +288,6 @@ with lib.maintainers; {
|
|||
|
||||
golang = {
|
||||
members = [
|
||||
c00w
|
||||
kalbasit
|
||||
mic92
|
||||
zowoq
|
||||
|
|
|
@ -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`:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
429
nixos/modules/services/networking/wstunnel.nix
Normal file
429
nixos/modules/services/networking/wstunnel.nix
Normal 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 ];
|
||||
}
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
27
pkgs/applications/editors/pulsar/001-patch-wrapper.patch
Normal file
27
pkgs/applications/editors/pulsar/001-patch-wrapper.patch
Normal 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}
|
163
pkgs/applications/editors/pulsar/default.nix
Normal file
163
pkgs/applications/editors/pulsar/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
9
pkgs/applications/editors/pulsar/pulsar.nemo_action
Normal file
9
pkgs/applications/editors/pulsar/pulsar.nemo_action
Normal 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
|
89
pkgs/applications/editors/pulsar/update.mjs
Executable file
89
pkgs/applications/editors/pulsar/update.mjs
Executable 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
|
@ -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";
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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=",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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=";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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 = ''
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
52
pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix
Normal file
52
pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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?
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -46,6 +46,10 @@ stdenv.mkDerivation rec {
|
|||
|
||||
configureFlags = [
|
||||
"--enable-relocatable" # needed for tests
|
||||
"--with-aspell"
|
||||
"--with-hspell"
|
||||
"--with-hunspell"
|
||||
"--with-nuspell"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
6
pkgs/development/libraries/gmime/iconv-detect.h
Normal file
6
pkgs/development/libraries/gmime/iconv-detect.h
Normal 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"
|
6
pkgs/development/libraries/gmime/musl-iconv-detect.h
Normal file
6
pkgs/development/libraries/gmime/musl-iconv-detect.h
Normal 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"
|
|
@ -59,6 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
gobject-introspection
|
||||
vala
|
||||
gi-docgen
|
||||
gtk4 # for gtk4-update-icon-cache checked during configure
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
20
pkgs/development/libraries/libdeltachat/Cargo.lock
generated
20
pkgs/development/libraries/libdeltachat/Cargo.lock
generated
|
@ -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",
|
||||
]
|
||||
|
|
|
@ -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 = [
|
||||
|
|
704
pkgs/development/libraries/libdovi/Cargo.lock
generated
Normal file
704
pkgs/development/libraries/libdovi/Cargo.lock
generated
Normal 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"
|
53
pkgs/development/libraries/libdovi/default.nix
Normal file
53
pkgs/development/libraries/libdovi/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 doesn’t 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 = ''
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ icu ];
|
||||
propagatedBuildInputs = [ icu ];
|
||||
|
||||
outputs = [ "out" "lib" "dev" ];
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -6,6 +6,8 @@ buildDunePackage {
|
|||
pname = "atdgen";
|
||||
inherit (atdgen-codec-runtime) version src;
|
||||
|
||||
duneVersion = "3";
|
||||
|
||||
buildInputs = [ atd re ];
|
||||
|
||||
propagatedBuildInputs = [ atdgen-runtime ];
|
||||
|
|
|
@ -5,6 +5,7 @@ buildDunePackage rec {
|
|||
inherit (atdgen-codec-runtime) version src;
|
||||
|
||||
minimalOCamlVersion = "4.08";
|
||||
duneVersion = "3";
|
||||
|
||||
propagatedBuildInputs = [ biniou yojson ];
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ buildDunePackage rec {
|
|||
./atd_2_10.patch;
|
||||
|
||||
minimalOCamlVersion = "4.04";
|
||||
duneVersion = "3";
|
||||
|
||||
# atdgen is both a library and executable
|
||||
nativeBuildInputs = [ perl ]
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
28
pkgs/development/python-modules/glad2/default.nix
Normal file
28
pkgs/development/python-modules/glad2/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
];
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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}");
|
||||
};
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
|
|
55
pkgs/development/python-modules/latex2mathml/default.nix
Normal file
55
pkgs/development/python-modules/latex2mathml/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
Loading…
Reference in a new issue