Merge master into haskell-updates
This commit is contained in:
commit
4d96a2c0b4
|
@ -145,6 +145,12 @@
|
|||
githubId = 16829510;
|
||||
name = "Aaron Janse";
|
||||
};
|
||||
aaronjheng = {
|
||||
email = "wentworth@outlook.com";
|
||||
github = "aaronjheng";
|
||||
githubId = 806876;
|
||||
name = "Aaron Jheng";
|
||||
};
|
||||
aaronschif = {
|
||||
email = "aaronschif@gmail.com";
|
||||
github = "aaronschif";
|
||||
|
@ -6073,6 +6079,12 @@
|
|||
githubId = 810075;
|
||||
name = "Juan Rodal";
|
||||
};
|
||||
juboba = {
|
||||
email = "juboba@gmail.com";
|
||||
github = "juboba";
|
||||
githubId = 1189739;
|
||||
name = "Julio Borja Barra";
|
||||
};
|
||||
juliendehos = {
|
||||
email = "dehos@lisic.univ-littoral.fr";
|
||||
github = "juliendehos";
|
||||
|
@ -7104,6 +7116,12 @@
|
|||
githubId = 30698906;
|
||||
name = "Luna D Dragon";
|
||||
};
|
||||
LunNova = {
|
||||
email = "nixpkgs-maintainer@lunnova.dev";
|
||||
github = "LunNova";
|
||||
githubId = 782440;
|
||||
name = "Luna Nova";
|
||||
};
|
||||
lionello = {
|
||||
email = "lio@lunesu.com";
|
||||
github = "lionello";
|
||||
|
@ -8910,9 +8928,9 @@
|
|||
githubId = 2946283;
|
||||
name = "Brian Cohen";
|
||||
};
|
||||
novoxudonoser = {
|
||||
novoxd = {
|
||||
email = "radnovox@gmail.com";
|
||||
github = "novoxudonoser";
|
||||
github = "novoxd";
|
||||
githubId = 6052922;
|
||||
name = "Kirill Struokov";
|
||||
};
|
||||
|
|
|
@ -122,6 +122,14 @@
|
|||
<link xlink:href="options.html#opt-services.powerdns-admin.enable">services.powerdns-admin</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/sezanzeb/input-remapper">input-remapper</link>,
|
||||
an easy to use tool to change the mapping of your input device
|
||||
buttons. Available at
|
||||
<link xlink:href="options.html#opt-services.input-remapper.enable">services.input-remapper</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://invoiceplane.com">InvoicePlane</link>,
|
||||
|
@ -152,6 +160,14 @@
|
|||
<link linkend="opt-services.tetrd.enable">services.tetrd</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/mbrubeck/agate">agate</link>,
|
||||
a very simple server for the Gemini hypertext protocol.
|
||||
Available as
|
||||
<link xlink:href="options.html#opt-services.agate.enable">services.agate</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm">ArchiSteamFarm</link>,
|
||||
|
@ -261,6 +277,23 @@
|
|||
<literal>(ghc.withPackages.override { useLLVM = true; }) (p: [])</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>home-assistant</literal> module now requires
|
||||
users that don’t want their configuration to be managed
|
||||
declaratively to set
|
||||
<literal>services.home-assistant.config = null;</literal>.
|
||||
This is required due to the way default settings are handled
|
||||
with the new settings style.
|
||||
</para>
|
||||
<para>
|
||||
Additionally the default list of
|
||||
<literal>extraComponents</literal> now includes the minimal
|
||||
dependencies to successfully complete the
|
||||
<link xlink:href="https://www.home-assistant.io/getting-started/onboarding/">onboarding</link>
|
||||
procedure.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.emacsPackages.orgPackages</literal> is removed
|
||||
|
@ -278,6 +311,17 @@
|
|||
removed due to it being an outdated version.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>services.kubernetes.scheduler.{port,address}</literal>
|
||||
now set <literal>--secure-port</literal> and
|
||||
<literal>--bind-address</literal> instead of
|
||||
<literal>--port</literal> and <literal>--address</literal>,
|
||||
since the former have been deprecated and are no longer
|
||||
functional in kubernetes>=1.23. Ensure that you are not
|
||||
relying on the insecure behaviour before upgrading.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The DHCP server (<literal>services.dhcpd4</literal>,
|
||||
|
|
|
@ -39,6 +39,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [PowerDNS-Admin](https://github.com/ngoduykhanh/PowerDNS-Admin), a web interface for the PowerDNS server. Available at [services.powerdns-admin](options.html#opt-services.powerdns-admin.enable).
|
||||
|
||||
- [input-remapper](https://github.com/sezanzeb/input-remapper), an easy to use tool to change the mapping of your input device buttons. Available at [services.input-remapper](options.html#opt-services.input-remapper.enable).
|
||||
|
||||
- [InvoicePlane](https://invoiceplane.com), web application for managing and creating invoices. Available at [services.invoiceplane](options.html#opt-services.invoiceplane.enable).
|
||||
|
||||
- [maddy](https://maddy.email), a composable all-in-one mail server. Available as [services.maddy](options.html#opt-services.maddy.enable).
|
||||
|
@ -47,6 +49,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [tetrd](https://tetrd.app), share your internet connection from your device to your PC and vice versa through a USB cable. Available at [services.tetrd](#opt-services.tetrd.enable).
|
||||
|
||||
- [agate](https://github.com/mbrubeck/agate), a very simple server for the Gemini hypertext protocol. Available as [services.agate](options.html#opt-services.agate.enable).
|
||||
|
||||
- [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm), a C# application with primary purpose of idling Steam cards from multiple accounts simultaneously. Available as [services.archisteamfarm](options.html#opt-services.archisteamfarm.enable).
|
||||
|
||||
- [teleport](https://goteleport.com), allows engineers and security professionals to unify access for SSH servers, Kubernetes clusters, web applications, and databases across all environments. Available at [services.teleport](#opt-services.teleport.enable).
|
||||
|
@ -89,6 +93,15 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
`useLLVM`. So instead of `(ghc.withPackages (p: [])).override { withLLVM = true; }`,
|
||||
one needs to use `(ghc.withPackages.override { useLLVM = true; }) (p: [])`.
|
||||
|
||||
- The `home-assistant` module now requires users that don't want their
|
||||
configuration to be managed declaratively to set
|
||||
`services.home-assistant.config = null;`. This is required
|
||||
due to the way default settings are handled with the new settings style.
|
||||
|
||||
Additionally the default list of `extraComponents` now includes the minimal
|
||||
dependencies to successfully complete the [onboarding](https://www.home-assistant.io/getting-started/onboarding/)
|
||||
procedure.
|
||||
|
||||
- `pkgs.emacsPackages.orgPackages` is removed because org elpa is deprecated.
|
||||
The packages in the top level of `pkgs.emacsPackages`, such as org and
|
||||
org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
|
||||
|
@ -96,6 +109,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
|
||||
|
||||
- `services.kubernetes.scheduler.{port,address}` now set `--secure-port` and `--bind-address` instead of `--port` and `--address`, since the former have been deprecated and are no longer functional in kubernetes>=1.23. Ensure that you are not relying on the insecure behaviour before upgrading.
|
||||
|
||||
- The DHCP server (`services.dhcpd4`, `services.dhcpd6`) has been hardened.
|
||||
The service is now using the systemd's `DynamicUser` mechanism to run as an unprivileged dynamically-allocated user with limited capabilities.
|
||||
The dhcpd state files are now always stored in `/var/lib/dhcpd{4,6}` and the `services.dhcpd4.stateDir` and `service.dhcpd6.stateDir` options have been removed.
|
||||
|
|
|
@ -450,6 +450,7 @@
|
|||
./services/hardware/undervolt.nix
|
||||
./services/hardware/vdr.nix
|
||||
./services/hardware/xow.nix
|
||||
./services/home-automation/home-assistant.nix
|
||||
./services/logging/SystemdJournal2Gelf.nix
|
||||
./services/logging/awstats.nix
|
||||
./services/logging/filebeat.nix
|
||||
|
@ -545,8 +546,8 @@
|
|||
./services/misc/headphones.nix
|
||||
./services/misc/heisenbridge.nix
|
||||
./services/misc/greenclip.nix
|
||||
./services/misc/home-assistant.nix
|
||||
./services/misc/ihaskell.nix
|
||||
./services/misc/input-remapper.nix
|
||||
./services/misc/irkerd.nix
|
||||
./services/misc/jackett.nix
|
||||
./services/misc/jellyfin.nix
|
||||
|
@ -1056,6 +1057,7 @@
|
|||
./services/web-apps/wordpress.nix
|
||||
./services/web-apps/youtrack.nix
|
||||
./services/web-apps/zabbix.nix
|
||||
./services/web-servers/agate.nix
|
||||
./services/web-servers/apache-httpd/default.nix
|
||||
./services/web-servers/caddy/default.nix
|
||||
./services/web-servers/darkhttpd.nix
|
||||
|
|
|
@ -66,12 +66,12 @@ in
|
|||
serviceConfig = {
|
||||
Slice = "kubernetes.slice";
|
||||
ExecStart = ''${top.package}/bin/kube-scheduler \
|
||||
--address=${cfg.address} \
|
||||
--bind-address=${cfg.address} \
|
||||
${optionalString (cfg.featureGates != [])
|
||||
"--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \
|
||||
--kubeconfig=${top.lib.mkKubeConfig "kube-scheduler" cfg.kubeconfig} \
|
||||
--leader-elect=${boolToString cfg.leaderElect} \
|
||||
--port=${toString cfg.port} \
|
||||
--secure-port=${toString cfg.port} \
|
||||
${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \
|
||||
${cfg.extraOpts}
|
||||
'';
|
||||
|
|
|
@ -4,35 +4,27 @@ with lib;
|
|||
|
||||
let
|
||||
cfg = config.services.home-assistant;
|
||||
format = pkgs.formats.yaml {};
|
||||
|
||||
# cfg.config != null can be assumed here
|
||||
configJSON = pkgs.writeText "configuration.json"
|
||||
(builtins.toJSON (if cfg.applyDefaultConfig then
|
||||
(recursiveUpdate defaultConfig cfg.config) else cfg.config));
|
||||
# Render config attribute sets to YAML
|
||||
# Values that are null will be filtered from the output, so this is one way to have optional
|
||||
# options shown in settings.
|
||||
# We post-process the result to add support for YAML functions, like secrets or includes, see e.g.
|
||||
# https://www.home-assistant.io/docs/configuration/secrets/
|
||||
filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ null ])) cfg.config or {};
|
||||
configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } ''
|
||||
${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out
|
||||
# Hack to support custom yaml objects,
|
||||
# i.e. secrets: https://www.home-assistant.io/docs/configuration/secrets/
|
||||
cp ${format.generate "configuration.yaml" filteredConfig} $out
|
||||
sed -i -e "s/'\!\([a-z_]\+\) \(.*\)'/\!\1 \2/;s/^\!\!/\!/;" $out
|
||||
'';
|
||||
lovelaceConfig = cfg.lovelaceConfig or {};
|
||||
lovelaceConfigFile = format.generate "ui-lovelace.yaml" lovelaceConfig;
|
||||
|
||||
lovelaceConfigJSON = pkgs.writeText "ui-lovelace.json"
|
||||
(builtins.toJSON cfg.lovelaceConfig);
|
||||
lovelaceConfigFile = pkgs.runCommand "ui-lovelace.yaml" { preferLocalBuild = true; } ''
|
||||
${pkgs.remarshal}/bin/json2yaml -i ${lovelaceConfigJSON} -o $out
|
||||
'';
|
||||
|
||||
# Components advertised by the home-assistant package
|
||||
availableComponents = cfg.package.availableComponents;
|
||||
|
||||
# Components that were added by overriding the package
|
||||
explicitComponents = cfg.package.extraComponents;
|
||||
|
||||
usedPlatforms = config:
|
||||
if isAttrs config then
|
||||
optional (config ? platform) config.platform
|
||||
++ concatMap usedPlatforms (attrValues config)
|
||||
else if isList config then
|
||||
concatMap usedPlatforms config
|
||||
else [ ];
|
||||
useExplicitComponent = component: elem component explicitComponents;
|
||||
|
||||
# Given a component "platform", looks up whether it is used in the config
|
||||
# as `platform = "platform";`.
|
||||
|
@ -42,33 +34,45 @@ let
|
|||
# platform = "mqtt";
|
||||
# ...
|
||||
# } ];
|
||||
usedPlatforms = config:
|
||||
if isAttrs config then
|
||||
optional (config ? platform) config.platform
|
||||
++ concatMap usedPlatforms (attrValues config)
|
||||
else if isList config then
|
||||
concatMap usedPlatforms config
|
||||
else [ ];
|
||||
|
||||
useComponentPlatform = component: elem component (usedPlatforms cfg.config);
|
||||
|
||||
useExplicitComponent = component: elem component explicitComponents;
|
||||
|
||||
# Returns whether component is used in config or explicitly passed into package
|
||||
# Returns whether component is used in config, explicitly passed into package or
|
||||
# configured in the module.
|
||||
useComponent = component:
|
||||
hasAttrByPath (splitString "." component) cfg.config
|
||||
|| useComponentPlatform component
|
||||
|| useExplicitComponent component;
|
||||
|| useExplicitComponent component
|
||||
|| builtins.elem component cfg.extraComponents;
|
||||
|
||||
# List of components used in config
|
||||
# Final list of components passed into the package to include required dependencies
|
||||
extraComponents = filter useComponent availableComponents;
|
||||
|
||||
package = if (cfg.autoExtraComponents && cfg.config != null)
|
||||
then (cfg.package.override { inherit extraComponents; })
|
||||
else cfg.package;
|
||||
|
||||
# If you are changing this, please update the description in applyDefaultConfig
|
||||
defaultConfig = {
|
||||
homeassistant.time_zone = config.time.timeZone;
|
||||
http.server_port = cfg.port;
|
||||
} // optionalAttrs (cfg.lovelaceConfig != null) {
|
||||
lovelace.mode = "yaml";
|
||||
};
|
||||
|
||||
package = (cfg.package.override (oldArgs: {
|
||||
# Respect overrides that already exist in the passed package and
|
||||
# concat it with values passed via the module.
|
||||
extraComponents = oldArgs.extraComponents ++ extraComponents;
|
||||
extraPackages = ps: (oldArgs.extraPackages ps) ++ (cfg.extraPackages ps);
|
||||
}));
|
||||
in {
|
||||
meta.maintainers = teams.home-assistant.members;
|
||||
imports = [
|
||||
# Migrations in NixOS 22.05
|
||||
(mkRemovedOptionModule [ "services" "home-assistant" "applyDefaultConfig" ] "The default config was migrated into services.home-assistant.config")
|
||||
(mkRemovedOptionModule [ "services" "home-assistant" "autoExtraComponents" ] "Components are now parsed from services.home-assistant.config unconditionally")
|
||||
(mkRenamedOptionModule [ "services" "home-assistant" "port" ] [ "services" "home-assistant" "config" "http" "server_port" ])
|
||||
];
|
||||
|
||||
meta = {
|
||||
buildDocsInSandbox = false;
|
||||
maintainers = teams.home-assistant.members;
|
||||
};
|
||||
|
||||
options.services.home-assistant = {
|
||||
# Running home-assistant on NixOS is considered an installation method that is unsupported by the upstream project.
|
||||
|
@ -81,42 +85,166 @@ in {
|
|||
description = "The config directory, where your <filename>configuration.yaml</filename> is located.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
default = 8123;
|
||||
type = types.port;
|
||||
description = "The port on which to listen.";
|
||||
extraComponents = mkOption {
|
||||
type = types.listOf (types.enum availableComponents);
|
||||
default = [
|
||||
# List of components required to complete the onboarding
|
||||
"default_config"
|
||||
"met"
|
||||
"esphome"
|
||||
] ++ optionals (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) [
|
||||
# Use the platform as an indicator that we might be running on a RaspberryPi and include
|
||||
# relevant components
|
||||
"rpi_power"
|
||||
];
|
||||
example = literalExpression ''
|
||||
[
|
||||
"analytics"
|
||||
"default_config"
|
||||
"esphome"
|
||||
"my"
|
||||
"shopping_list"
|
||||
"wled"
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
List of <link xlink:href="https://www.home-assistant.io/integrations/">components</link> that have their dependencies included in the package.
|
||||
|
||||
The component name can be found in the URL, for example <literal>https://www.home-assistant.io/integrations/ffmpeg/</literal> would map to <literal>ffmpeg</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
applyDefaultConfig = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
extraPackages = mkOption {
|
||||
type = types.functionTo (types.listOf types.package);
|
||||
default = _: [];
|
||||
defaultText = literalExpression ''
|
||||
python3Packages: with python3Packages; [];
|
||||
'';
|
||||
example = literalExpression ''
|
||||
python3Packages: with python3Packages; [
|
||||
# postgresql support
|
||||
psycopg2
|
||||
];
|
||||
'';
|
||||
description = ''
|
||||
Setting this option enables a few configuration options for HA based on NixOS configuration (such as time zone) to avoid having to manually specify configuration we already have.
|
||||
</para>
|
||||
<para>
|
||||
Currently one side effect of enabling this is that the <literal>http</literal> component will be enabled.
|
||||
</para>
|
||||
<para>
|
||||
This only takes effect if <literal>config != null</literal> in order to ensure that a manually managed <filename>configuration.yaml</filename> is not overwritten.
|
||||
List of packages to add to propagatedBuildInputs.
|
||||
|
||||
A popular example is <package>python3Packages.psycopg2</package>
|
||||
for PostgreSQL support in the recorder component.
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
default = null;
|
||||
# Migrate to new option types later: https://github.com/NixOS/nixpkgs/pull/75584
|
||||
type = with lib.types; let
|
||||
valueType = nullOr (oneOf [
|
||||
bool
|
||||
int
|
||||
float
|
||||
str
|
||||
(lazyAttrsOf valueType)
|
||||
(listOf valueType)
|
||||
]) // {
|
||||
description = "Yaml value";
|
||||
emptyValue.value = {};
|
||||
type = types.submodule {
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
# This is a partial selection of the most common options, so new users can quickly
|
||||
# pick up how to match home-assistants config structure to ours. It also lets us preset
|
||||
# config values intelligently.
|
||||
|
||||
homeassistant = {
|
||||
# https://www.home-assistant.io/docs/configuration/basic/
|
||||
name = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "Home";
|
||||
description = ''
|
||||
Name of the location where Home Assistant is running.
|
||||
'';
|
||||
};
|
||||
|
||||
latitude = mkOption {
|
||||
type = types.nullOr (types.either types.float types.str);
|
||||
default = null;
|
||||
example = 52.3;
|
||||
description = ''
|
||||
Latitude of your location required to calculate the time the sun rises and sets.
|
||||
'';
|
||||
};
|
||||
|
||||
longitude = mkOption {
|
||||
type = types.nullOr (types.either types.float types.str);
|
||||
default = null;
|
||||
example = 4.9;
|
||||
description = ''
|
||||
Longitude of your location required to calculate the time the sun rises and sets.
|
||||
'';
|
||||
};
|
||||
|
||||
unit_system = mkOption {
|
||||
type = types.nullOr (types.enum [ "metric" "imperial" ]);
|
||||
default = null;
|
||||
example = "metric";
|
||||
description = ''
|
||||
The unit system to use. This also sets temperature_unit, Celsius for Metric and Fahrenheit for Imperial.
|
||||
'';
|
||||
};
|
||||
|
||||
temperature_unit = mkOption {
|
||||
type = types.nullOr (types.enum [ "C" "F" ]);
|
||||
default = null;
|
||||
example = "C";
|
||||
description = ''
|
||||
Override temperature unit set by unit_system. <literal>C</literal> for Celsius, <literal>F</literal> for Fahrenheit.
|
||||
'';
|
||||
};
|
||||
|
||||
time_zone = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = config.time.timeZone or null;
|
||||
defaultText = literalExpression ''
|
||||
config.time.timeZone or null
|
||||
'';
|
||||
example = "Europe/Amsterdam";
|
||||
description = ''
|
||||
Pick your time zone from the column TZ of Wikipedia’s <link xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">list of tz database time zones</link>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
in valueType;
|
||||
|
||||
http = {
|
||||
# https://www.home-assistant.io/integrations/http/
|
||||
server_host = mkOption {
|
||||
type = types.either types.str (types.listOf types.str);
|
||||
default = [
|
||||
"0.0.0.0"
|
||||
"::"
|
||||
];
|
||||
example = "::1";
|
||||
description = ''
|
||||
Only listen to incoming requests on specific IP/host. The default listed assumes support for IPv4 and IPv6.
|
||||
'';
|
||||
};
|
||||
|
||||
server_port = mkOption {
|
||||
default = 8123;
|
||||
type = types.port;
|
||||
description = ''
|
||||
The port on which to listen.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
lovelace = {
|
||||
# https://www.home-assistant.io/lovelace/dashboards/
|
||||
mode = mkOption {
|
||||
type = types.enum [ "yaml" "storage" ];
|
||||
default = if cfg.lovelaceConfig != null
|
||||
then "yaml"
|
||||
else "storage";
|
||||
defaultText = literalExpression ''
|
||||
if cfg.lovelaceConfig != null
|
||||
then "yaml"
|
||||
else "storage";
|
||||
'';
|
||||
example = "yaml";
|
||||
description = ''
|
||||
In what mode should the main Lovelace panel be, <literal>yaml</literal> or <literal>storage</literal> (UI managed).
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
example = literalExpression ''
|
||||
{
|
||||
homeassistant = {
|
||||
|
@ -130,15 +258,19 @@ in {
|
|||
frontend = {
|
||||
themes = "!include_dir_merge_named themes";
|
||||
};
|
||||
http = { };
|
||||
http = {};
|
||||
feedreader.urls = [ "https://nixos.org/blogs.xml" ];
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Your <filename>configuration.yaml</filename> as a Nix attribute set.
|
||||
Beware that setting this option will delete your previous <filename>configuration.yaml</filename>.
|
||||
<link xlink:href="https://www.home-assistant.io/docs/configuration/secrets/">Secrets</link>
|
||||
are encoded as strings as shown in the example.
|
||||
|
||||
YAML functions like <link xlink:href="https://www.home-assistant.io/docs/configuration/secrets/">secrets</link>
|
||||
can be passed as a string and will be unquoted automatically.
|
||||
|
||||
Unless this option is explicitly set to <literal>null</literal>
|
||||
we assume your <filename>configuration.yaml</filename> is
|
||||
managed through this module and thereby overwritten on startup.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -147,16 +279,18 @@ in {
|
|||
type = types.bool;
|
||||
description = ''
|
||||
Whether to make <filename>configuration.yaml</filename> writable.
|
||||
This only has an effect if <option>config</option> is set.
|
||||
|
||||
This will allow you to edit it from Home Assistant's web interface.
|
||||
|
||||
This only has an effect if <option>config</option> is set.
|
||||
However, bear in mind that it will be overwritten at every start of the service.
|
||||
'';
|
||||
};
|
||||
|
||||
lovelaceConfig = mkOption {
|
||||
default = null;
|
||||
type = with types; nullOr attrs;
|
||||
# from https://www.home-assistant.io/lovelace/yaml-mode/
|
||||
type = types.nullOr format.type;
|
||||
# from https://www.home-assistant.io/lovelace/dashboards/
|
||||
example = literalExpression ''
|
||||
{
|
||||
title = "My Awesome Home";
|
||||
|
@ -172,8 +306,8 @@ in {
|
|||
'';
|
||||
description = ''
|
||||
Your <filename>ui-lovelace.yaml</filename> as a Nix attribute set.
|
||||
Setting this option will automatically add
|
||||
<literal>lovelace.mode = "yaml";</literal> to your <option>config</option>.
|
||||
Setting this option will automatically set <literal>lovelace.mode</literal> to <literal>yaml</literal>.
|
||||
|
||||
Beware that setting this option will delete your previous <filename>ui-lovelace.yaml</filename>
|
||||
'';
|
||||
};
|
||||
|
@ -183,8 +317,10 @@ in {
|
|||
type = types.bool;
|
||||
description = ''
|
||||
Whether to make <filename>ui-lovelace.yaml</filename> writable.
|
||||
This only has an effect if <option>lovelaceConfig</option> is set.
|
||||
|
||||
This will allow you to edit it from Home Assistant's web interface.
|
||||
|
||||
This only has an effect if <option>lovelaceConfig</option> is set.
|
||||
However, bear in mind that it will be overwritten at every start of the service.
|
||||
'';
|
||||
};
|
||||
|
@ -201,11 +337,18 @@ in {
|
|||
type = types.package;
|
||||
example = literalExpression ''
|
||||
pkgs.home-assistant.override {
|
||||
extraPackages = ps: with ps; [ colorlog ];
|
||||
extraPackages = python3Packages: with python3Packages; [
|
||||
psycopg2
|
||||
];
|
||||
extraComponents = [
|
||||
"default_config"
|
||||
"esphome"
|
||||
"met"
|
||||
];
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Home Assistant package to use. By default the tests are disabled, as they take a considerable amout of time to complete.
|
||||
The Home Assistant package to use.
|
||||
Override <literal>extraPackages</literal> or <literal>extraComponents</literal> in order to add additional dependencies.
|
||||
If you specify <option>config</option> and do not set <option>autoExtraComponents</option>
|
||||
to <literal>false</literal>, overriding <literal>extraComponents</literal> will have no effect.
|
||||
|
@ -213,21 +356,6 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
autoExtraComponents = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
If set to <literal>true</literal>, the components used in <literal>config</literal>
|
||||
are set as the specified package's <literal>extraComponents</literal>.
|
||||
This in turn adds all packaged dependencies to the derivation.
|
||||
You might still see import errors in your log.
|
||||
In this case, you will need to package the necessary dependencies yourself
|
||||
or ask for someone else to package them.
|
||||
If a dependency is packaged but not automatically added to this list,
|
||||
you might need to specify it in <literal>extraPackages</literal>.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
|
@ -240,18 +368,30 @@ in {
|
|||
|
||||
systemd.services.home-assistant = {
|
||||
description = "Home Assistant";
|
||||
after = [ "network.target" ];
|
||||
preStart = optionalString (cfg.config != null) (if cfg.configWritable then ''
|
||||
cp --no-preserve=mode ${configFile} "${cfg.configDir}/configuration.yaml"
|
||||
'' else ''
|
||||
rm -f "${cfg.configDir}/configuration.yaml"
|
||||
ln -s ${configFile} "${cfg.configDir}/configuration.yaml"
|
||||
'') + optionalString (cfg.lovelaceConfig != null) (if cfg.lovelaceConfigWritable then ''
|
||||
cp --no-preserve=mode ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
|
||||
'' else ''
|
||||
rm -f "${cfg.configDir}/ui-lovelace.yaml"
|
||||
ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
|
||||
'');
|
||||
after = [
|
||||
"network-online.target"
|
||||
|
||||
# prevent races with database creation
|
||||
"mysql.service"
|
||||
"postgresql.service"
|
||||
];
|
||||
preStart = let
|
||||
copyConfig = if cfg.configWritable then ''
|
||||
cp --no-preserve=mode ${configFile} "${cfg.configDir}/configuration.yaml"
|
||||
'' else ''
|
||||
rm -f "${cfg.configDir}/configuration.yaml"
|
||||
ln -s ${configFile} "${cfg.configDir}/configuration.yaml"
|
||||
'';
|
||||
copyLovelaceConfig = if cfg.lovelaceConfigWritable then ''
|
||||
cp --no-preserve=mode ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
|
||||
'' else ''
|
||||
rm -f "${cfg.configDir}/ui-lovelace.yaml"
|
||||
ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
|
||||
'';
|
||||
in
|
||||
(optionalString (cfg.config != null) copyConfig) +
|
||||
(optionalString (cfg.lovelaceConfig != null) copyLovelaceConfig)
|
||||
;
|
||||
serviceConfig = let
|
||||
# List of capabilities to equip home-assistant with, depending on configured components
|
||||
capabilities = [
|
29
nixos/modules/services/misc/input-remapper.nix
Normal file
29
nixos/modules/services/misc/input-remapper.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let cfg = config.services.input-remapper; in
|
||||
{
|
||||
options = {
|
||||
services.input-remapper = {
|
||||
enable = mkEnableOption "input-remapper, an easy to use tool to change the mapping of your input device buttons.";
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.input-remapper;
|
||||
defaultText = literalExpression "pkgs.input-remapper";
|
||||
description = ''
|
||||
The input-remapper package to use.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# FIXME: udev rule hangs sometimes when lots of devices connected, so let's not use it
|
||||
# config.services.udev.packages = mapper-pkg;
|
||||
services.dbus.packages = cfg.package;
|
||||
systemd.packages = cfg.package;
|
||||
environment.systemPackages = cfg.package;
|
||||
systemd.services.input-remapper.wantedBy = [ "graphical.target" ];
|
||||
};
|
||||
}
|
148
nixos/modules/services/web-servers/agate.nix
Normal file
148
nixos/modules/services/web-servers/agate.nix
Normal file
|
@ -0,0 +1,148 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.agate;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.agate = {
|
||||
enable = mkEnableOption "Agate Server";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.agate;
|
||||
defaultText = literalExpression "pkgs.agate";
|
||||
description = "The package to use";
|
||||
};
|
||||
|
||||
addresses = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "0.0.0.0:1965" ];
|
||||
description = ''
|
||||
Addresses to listen on, IP:PORT, if you haven't disabled forwarding
|
||||
only set IPv4.
|
||||
'';
|
||||
};
|
||||
|
||||
contentDir = mkOption {
|
||||
default = "/var/lib/agate/content";
|
||||
type = types.path;
|
||||
description = "Root of the content directory.";
|
||||
};
|
||||
|
||||
certificatesDir = mkOption {
|
||||
default = "/var/lib/agate/certificates";
|
||||
type = types.path;
|
||||
description = "Root of the certificate directory.";
|
||||
};
|
||||
|
||||
hostnames = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.str;
|
||||
description = ''
|
||||
Domain name of this Gemini server, enables checking hostname and port
|
||||
in requests. (multiple occurences means basic vhosts)
|
||||
'';
|
||||
};
|
||||
|
||||
language = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
description = "RFC 4646 Language code for text/gemini documents.";
|
||||
};
|
||||
|
||||
onlyTls_1_3 = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = "Only use TLSv1.3 (default also allows TLSv1.2).";
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "" ];
|
||||
example = [ "--log-ip" ];
|
||||
description = "Extra arguments to use running agate.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# available for generating certs by hand
|
||||
# it can be a bit arduous with openssl
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
systemd.services.agate = {
|
||||
description = "Agate";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "network-online.target" ];
|
||||
|
||||
script =
|
||||
let
|
||||
prefixKeyList = key: list: concatMap (v: [ key v ]) list;
|
||||
addresses = prefixKeyList "--addr" cfg.addresses;
|
||||
hostnames = prefixKeyList "--hostname" cfg.hostnames;
|
||||
in
|
||||
''
|
||||
exec ${cfg.package}/bin/agate ${
|
||||
escapeShellArgs (
|
||||
[
|
||||
"--content" "${cfg.contentDir}"
|
||||
"--certs" "${cfg.certificatesDir}"
|
||||
] ++
|
||||
addresses ++
|
||||
(optionals (cfg.hostnames != []) hostnames) ++
|
||||
(optionals (cfg.language != null) [ "--lang" cfg.language ]) ++
|
||||
(optionals cfg.onlyTls_1_3 [ "--only-tls13" ]) ++
|
||||
(optionals (cfg.extraArgs != []) cfg.extraArgs)
|
||||
)
|
||||
}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
RestartSec = "5s";
|
||||
DynamicUser = true;
|
||||
StateDirectory = "agate";
|
||||
|
||||
# Security options:
|
||||
AmbientCapabilities = "";
|
||||
CapabilityBoundingSet = "";
|
||||
|
||||
# ProtectClock= adds DeviceAllow=char-rtc r
|
||||
DeviceAllow = "";
|
||||
|
||||
LockPersonality = true;
|
||||
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
PrivateUsers = true;
|
||||
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
|
||||
RestrictNamespaces = true;
|
||||
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
|
||||
RestrictRealtime = true;
|
||||
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallErrorNumber = "EPERM";
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@cpu-emulation"
|
||||
"~@debug"
|
||||
"~@keyring"
|
||||
"~@memlock"
|
||||
"~@obsolete"
|
||||
"~@privileged"
|
||||
"~@setuid"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Array::Compare;
|
||||
use Config::IniFiles;
|
||||
use File::Path qw(make_path);
|
||||
use File::Basename;
|
||||
|
@ -221,9 +220,13 @@ sub unrecord_unit {
|
|||
# - 2 if the units are different and a reload action is required
|
||||
sub compare_units {
|
||||
my ($old_unit, $new_unit) = @_;
|
||||
my $comp = Array::Compare->new;
|
||||
my $ret = 0;
|
||||
|
||||
my $comp_array = sub {
|
||||
my ($a, $b) = @_;
|
||||
return join("\0", @{$a}) eq join("\0", @{$b});
|
||||
};
|
||||
|
||||
# Comparison hash for the sections
|
||||
my %section_cmp = map { $_ => 1 } keys %{$new_unit};
|
||||
# Iterate over the sections
|
||||
|
@ -255,7 +258,7 @@ sub compare_units {
|
|||
}
|
||||
my @new_value = @{$new_unit->{$section_name}{$ini_key}};
|
||||
# If the contents are different, the units are different
|
||||
if (not $comp->compare(\@old_value, \@new_value)) {
|
||||
if (not $comp_array->(\@old_value, \@new_value)) {
|
||||
# Check if only the reload triggers changed
|
||||
if ($section_name eq 'Unit' and $ini_key eq 'X-Reload-Triggers') {
|
||||
$ret = 2;
|
||||
|
|
|
@ -117,7 +117,7 @@ let
|
|||
configurationName = config.boot.loader.grub.configurationName;
|
||||
|
||||
# Needed by switch-to-configuration.
|
||||
perl = pkgs.perl.withPackages (p: with p; [ ArrayCompare ConfigIniFiles FileSlurp NetDBus ]);
|
||||
perl = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp NetDBus ]);
|
||||
};
|
||||
|
||||
# Handle assertions and warnings
|
||||
|
|
|
@ -32,6 +32,7 @@ in
|
|||
acme = handleTest ./acme.nix {};
|
||||
adguardhome = handleTest ./adguardhome.nix {};
|
||||
aesmd = handleTest ./aesmd.nix {};
|
||||
agate = handleTest ./web-servers/agate.nix {};
|
||||
agda = handleTest ./agda.nix {};
|
||||
airsonic = handleTest ./airsonic.nix {};
|
||||
amazon-init-shell = handleTest ./amazon-init-shell.nix {};
|
||||
|
|
|
@ -10,6 +10,7 @@ in {
|
|||
|
||||
nodes.hass = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ mosquitto ];
|
||||
|
||||
services.mosquitto = {
|
||||
enable = true;
|
||||
listeners = [ {
|
||||
|
@ -21,14 +22,42 @@ in {
|
|||
};
|
||||
} ];
|
||||
};
|
||||
services.home-assistant = {
|
||||
inherit configDir;
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "hass" ];
|
||||
ensureUsers = [{
|
||||
name = "hass";
|
||||
ensurePermissions = {
|
||||
"DATABASE hass" = "ALL PRIVILEGES";
|
||||
};
|
||||
}];
|
||||
};
|
||||
|
||||
services.home-assistant = {
|
||||
enable = true;
|
||||
inherit configDir;
|
||||
|
||||
# tests loading components by overriding the package
|
||||
package = (pkgs.home-assistant.override {
|
||||
extraPackages = ps: with ps; [
|
||||
colorama
|
||||
];
|
||||
extraComponents = [ "zha" ];
|
||||
}).overrideAttrs (oldAttrs: {
|
||||
doInstallCheck = false;
|
||||
});
|
||||
|
||||
# tests loading components from the module
|
||||
extraComponents = [
|
||||
"wake_on_lan"
|
||||
];
|
||||
|
||||
# test extra package passing from the module
|
||||
extraPackages = python3Packages: with python3Packages; [
|
||||
psycopg2
|
||||
];
|
||||
|
||||
config = {
|
||||
homeassistant = {
|
||||
name = "Home";
|
||||
|
@ -37,34 +66,58 @@ in {
|
|||
longitude = "0.0";
|
||||
elevation = 0;
|
||||
};
|
||||
|
||||
# configure the recorder component to use the postgresql db
|
||||
recorder.db_url = "postgresql://@/hass";
|
||||
|
||||
# we can't load default_config, because the updater requires
|
||||
# network access and would cause an error, so load frontend
|
||||
# here explicitly.
|
||||
# https://www.home-assistant.io/integrations/frontend/
|
||||
frontend = {};
|
||||
|
||||
# configure an mqtt broker connection
|
||||
# https://www.home-assistant.io/integrations/mqtt
|
||||
mqtt = {
|
||||
broker = "127.0.0.1";
|
||||
username = mqttUsername;
|
||||
password = mqttPassword;
|
||||
};
|
||||
binary_sensor = [{
|
||||
|
||||
# create a mqtt sensor that syncs state with its mqtt topic
|
||||
# https://www.home-assistant.io/integrations/sensor.mqtt/
|
||||
binary_sensor = [ {
|
||||
platform = "mqtt";
|
||||
state_topic = "home-assistant/test";
|
||||
payload_on = "let_there_be_light";
|
||||
payload_off = "off";
|
||||
}];
|
||||
wake_on_lan = {};
|
||||
switch = [{
|
||||
} ];
|
||||
|
||||
# set up a wake-on-lan switch to test capset capability required
|
||||
# for the ping suid wrapper
|
||||
# https://www.home-assistant.io/integrations/wake_on_lan/
|
||||
switch = [ {
|
||||
platform = "wake_on_lan";
|
||||
mac = "00:11:22:33:44:55";
|
||||
host = "127.0.0.1";
|
||||
}];
|
||||
# tests component-based capability assignment (CAP_NET_BIND_SERVICE)
|
||||
} ];
|
||||
|
||||
# test component-based capability assignment (CAP_NET_BIND_SERVICE)
|
||||
# https://www.home-assistant.io/integrations/emulated_hue/
|
||||
emulated_hue = {
|
||||
host_ip = "127.0.0.1";
|
||||
listen_port = 80;
|
||||
};
|
||||
|
||||
# show mqtt interaction in the log
|
||||
# https://www.home-assistant.io/integrations/logger/
|
||||
logger = {
|
||||
default = "info";
|
||||
logs."homeassistant.components.mqtt" = "debug";
|
||||
};
|
||||
};
|
||||
|
||||
# configure the sample lovelace dashboard
|
||||
lovelaceConfig = {
|
||||
title = "My Awesome Home";
|
||||
views = [{
|
||||
|
@ -81,34 +134,57 @@ in {
|
|||
};
|
||||
|
||||
testScript = ''
|
||||
import re
|
||||
|
||||
start_all()
|
||||
|
||||
# Parse the package path out of the systemd unit, as we cannot
|
||||
# access the final package, that is overriden inside the module,
|
||||
# by any other means.
|
||||
pattern = re.compile(r"path=(?P<path>[\/a-z0-9-.]+)\/bin\/hass")
|
||||
response = hass.execute("systemctl show -p ExecStart home-assistant.service")[1]
|
||||
match = pattern.search(response)
|
||||
package = match.group('path')
|
||||
|
||||
hass.wait_for_unit("home-assistant.service")
|
||||
|
||||
with subtest("Check that YAML configuration file is in place"):
|
||||
hass.succeed("test -L ${configDir}/configuration.yaml")
|
||||
with subtest("lovelace config is copied because lovelaceConfigWritable = true"):
|
||||
|
||||
with subtest("Check the lovelace config is copied because lovelaceConfigWritable = true"):
|
||||
hass.succeed("test -f ${configDir}/ui-lovelace.yaml")
|
||||
|
||||
with subtest("Check extraComponents and extraPackages are considered from the package"):
|
||||
hass.succeed(f"grep -q 'colorama' {package}/extra_packages")
|
||||
hass.succeed(f"grep -q 'zha' {package}/extra_components")
|
||||
|
||||
with subtest("Check extraComponents and extraPackages are considered from the module"):
|
||||
hass.succeed(f"grep -q 'psycopg2' {package}/extra_packages")
|
||||
hass.succeed(f"grep -q 'wake_on_lan' {package}/extra_components")
|
||||
|
||||
with subtest("Check that Home Assistant's web interface and API can be reached"):
|
||||
hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'Home Assistant initialized in'")
|
||||
hass.wait_for_open_port(8123)
|
||||
hass.succeed("curl --fail http://localhost:8123/lovelace")
|
||||
|
||||
with subtest("Toggle a binary sensor using MQTT"):
|
||||
hass.wait_for_open_port(1883)
|
||||
hass.succeed(
|
||||
"mosquitto_pub -V mqttv5 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -m let_there_be_light"
|
||||
)
|
||||
|
||||
with subtest("Check that capabilities are passed for emulated_hue to bind to port 80"):
|
||||
hass.wait_for_open_port(80)
|
||||
hass.succeed("curl --fail http://localhost:80/description.xml")
|
||||
|
||||
with subtest("Check extra components are considered in systemd unit hardening"):
|
||||
hass.succeed("systemctl show -p DeviceAllow home-assistant.service | grep -q char-ttyUSB")
|
||||
|
||||
with subtest("Print log to ease debugging"):
|
||||
output_log = hass.succeed("cat ${configDir}/home-assistant.log")
|
||||
print("\n### home-assistant.log ###\n")
|
||||
print(output_log + "\n")
|
||||
|
||||
# wait for home-assistant to fully boot
|
||||
hass.sleep(30)
|
||||
hass.wait_for_unit("home-assistant.service")
|
||||
|
||||
with subtest("Check that no errors were logged"):
|
||||
assert "ERROR" not in output_log
|
||||
|
||||
|
@ -117,7 +193,7 @@ in {
|
|||
assert "let_there_be_light" in output_log
|
||||
|
||||
with subtest("Check systemd unit hardening"):
|
||||
hass.log(hass.succeed("systemctl show home-assistant.service"))
|
||||
hass.log(hass.succeed("systemctl cat home-assistant.service"))
|
||||
hass.log(hass.succeed("systemd-analyze security home-assistant.service"))
|
||||
'';
|
||||
})
|
||||
|
|
29
nixos/tests/web-servers/agate.nix
Normal file
29
nixos/tests/web-servers/agate.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
import ../make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "agate";
|
||||
meta = with lib.maintainers; { maintainers = [ jk ]; };
|
||||
|
||||
nodes = {
|
||||
geminiserver = { pkgs, ... }: {
|
||||
services.agate = {
|
||||
enable = true;
|
||||
hostnames = [ "localhost" ];
|
||||
contentDir = pkgs.writeTextDir "index.gmi" ''
|
||||
# Hello NixOS!
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
geminiserver.wait_for_unit("agate")
|
||||
geminiserver.wait_for_open_port(1965)
|
||||
|
||||
with subtest("check is serving over gemini"):
|
||||
response = geminiserver.succeed("${pkgs.gmni}/bin/gmni -j once -i -N gemini://localhost:1965")
|
||||
print(response)
|
||||
assert "Hello NixOS!" in response
|
||||
'';
|
||||
}
|
||||
)
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "geonkick";
|
||||
version = "2.8.0";
|
||||
version = "2.8.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "iurie-sw";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0dpwdjyy6phhr1jm1cabj2gc3rfsdan513mijbgnpzkq9w9jfb60";
|
||||
sha256 = "sha256-wSlZ9pVVqlrPSz20pRdcRLq6pTcibxD7326l9WY7ZDY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
let
|
||||
pname = "plexamp";
|
||||
version = "3.9.1";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
|
||||
name="${pname}-${version}.AppImage";
|
||||
sha512 = "uassNLdCXx3WLarUMJNhU8fbXugG7yTLMQacPAszLoRdmbMwcN6wT7ED26VhlNVhY3xr02GjZSDw4/LADZWqKw==";
|
||||
sha512 = "C6fR3HyXZ5dXvKqtADjCm9WwsnI/wKhlR0K4+zkEW4JNmozmZvdB9eDIoS32wgTe23phtwazbXwroK/Xb0kZmQ==";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
@ -33,7 +33,7 @@ in appimageTools.wrapType2 {
|
|||
meta = with lib; {
|
||||
description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
|
||||
homepage = "https://plexamp.com/";
|
||||
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/37";
|
||||
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/38";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ killercup synthetica ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
|
|
24
pkgs/applications/audio/sptlrx/default.nix
Normal file
24
pkgs/applications/audio/sptlrx/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "sptlrx";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raitonoberu";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Wk4vXm6sB+Rw0VFAhfD0GKxsP+1LwpS6VFHa3UENuJk=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-l5gIbjB2rJyNmZBqrHo4kwClmAgjgDWHTs5KWzrfC08=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Spotify lyrics in your terminal";
|
||||
homepage = "https://github.com/raitonoberu/sptlrx";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ MoritzBoehme ];
|
||||
};
|
||||
}
|
|
@ -10,16 +10,16 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "snarkos";
|
||||
version = "2.0.1";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AleoHQ";
|
||||
repo = "snarkOS";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-BbCcdz0/oAEA+v9O8yQOpBb0/rXttn94tKS9tzRQ78w=";
|
||||
sha256 = "sha256-sS8emB+uhWuoq5ISuT8FgSSzX7/WDoOY8hHzPE/EX3o=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-+N1X3D+XSz3SoZJEy9SNmYWt9yZPdaumWUUYhwbD+0w=";
|
||||
cargoSha256 = "sha256-XS6dw6BIoJdigEso/J1dUaAp7AIAda3HrKnCoBynRv8=";
|
||||
|
||||
# buildAndTestSubdir = "cli";
|
||||
|
||||
|
|
|
@ -1,29 +1,44 @@
|
|||
{ lib, python3, fetchFromGitHub, wrapQtAppsHook, buildEnv, aspellDicts
|
||||
# Use `lib.collect lib.isDerivation aspellDicts;` to make all dictionaries
|
||||
# available.
|
||||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, wrapQtAppsHook
|
||||
, buildEnv
|
||||
, aspellDicts
|
||||
# Use `lib.collect lib.isDerivation aspellDicts;` to make all dictionaries
|
||||
# available.
|
||||
, enchantAspellDicts ? with aspellDicts; [ en en-computers en-science ]
|
||||
}:
|
||||
|
||||
let
|
||||
version = "7.0.4";
|
||||
pythonEnv = python3.withPackages (ps: with ps; [
|
||||
pyqt5 docutils pyenchant Markups markdown pygments chardet
|
||||
]);
|
||||
in python3.pkgs.buildPythonApplication {
|
||||
inherit version;
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "retext";
|
||||
version = "7.2.3";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "retext-project";
|
||||
repo = "retext";
|
||||
rev = version;
|
||||
sha256 = "1zcapywspc9v5zf5cxqkcy019np9n41gmryqixj66zsvd544c6si";
|
||||
hash = "sha256-EwaJFODnkZGbqVw1oQrTrx2ME4vRttVW4CMPkWvMtHA=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
nativeBuildInputs = [
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||
propagatedBuildInputs = [ pythonEnv ];
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
chardet
|
||||
docutils
|
||||
markdown
|
||||
markups
|
||||
pyenchant
|
||||
pygments
|
||||
pyqt5
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Remove wheel check
|
||||
sed -i -e '31,36d' setup.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
|
||||
|
@ -39,10 +54,16 @@ in python3.pkgs.buildPythonApplication {
|
|||
--replace "Icon=ReText-${version}.data/data/share/retext/icons/retext.svg" "Icon=$out/share/retext/icons/retext.svg"
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"ReText"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Editor for Markdown and reStructuredText";
|
||||
homepage = "https://github.com/retext-project/retext/";
|
||||
description = "Simple but powerful editor for Markdown and reStructuredText";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ klntsky ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
|
|
@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
GSEXE="${ghostscript}/bin/gs";
|
||||
|
||||
configureFlags = [ "--enable-transfig" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/fig2ps2tex \
|
||||
--set PATH ${lib.makeBinPath [ coreutils bc gnugrep gawk ]}
|
||||
|
@ -36,7 +38,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Tool to convert Xfig files to other formats";
|
||||
homepage = "http://mcj.sourceforge.net/";
|
||||
license = licenses.xfig;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ lesuisse ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "hydrus";
|
||||
version = "472";
|
||||
version = "473";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hydrusnetwork";
|
||||
repo = "hydrus";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-6BhicOKQez9gk73WHaPeN/FXcUetdklhh8jePSgvN6E=";
|
||||
sha256 = "sha256-eSnN9+9xJ1CeJm/jWw4jZq5OkgXC0p0KmxQ8bhnp9W4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,42 +1,34 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchPypi
|
||||
, requests
|
||||
, mypy-extensions
|
||||
, django_3
|
||||
, django-extensions
|
||||
, dateparser
|
||||
, youtube-dl
|
||||
, python-crontab
|
||||
, croniter
|
||||
, w3lib
|
||||
, ipython
|
||||
, python3
|
||||
}:
|
||||
|
||||
let
|
||||
django_3' = django_3.overridePythonAttrs (old: rec {
|
||||
pname = "Django";
|
||||
version = "3.1.7";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-Ms55Lum2oMu+w0ASPiKayfdl3/jCpK6SR6FLK6OjZac=";
|
||||
python = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
django = super.django_3.overridePythonAttrs (old: rec {
|
||||
version = "3.1.7";
|
||||
src = old.src.override {
|
||||
inherit version;
|
||||
sha256 = "sha256-Ms55Lum2oMu+w0ASPiKayfdl3/jCpK6SR6FLK6OjZac=";
|
||||
};
|
||||
});
|
||||
};
|
||||
});
|
||||
};
|
||||
in
|
||||
|
||||
buildPythonApplication rec {
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "archivebox";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchPypi {
|
||||
src = python.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-zHty7lTra6yab9d0q3EqsPG3F+lrnZL6PjQAbL1A2NY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
propagatedBuildInputs = with python.pkgs; [
|
||||
requests
|
||||
mypy-extensions
|
||||
django_3'
|
||||
django
|
||||
django-extensions
|
||||
dateparser
|
||||
youtube-dl
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{lib, python3Packages, fetchpatch, gettext, qt5, fetchFromGitHub}:
|
||||
{lib, python3Packages, gettext, qt5, fetchFromGitHub}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "dupeguru";
|
||||
version = "4.0.4";
|
||||
version = "4.1.1";
|
||||
|
||||
format = "other";
|
||||
|
||||
|
@ -10,19 +10,10 @@ python3Packages.buildPythonApplication rec {
|
|||
owner = "arsenetar";
|
||||
repo = "dupeguru";
|
||||
rev = version;
|
||||
sha256 = "0ma4f1c6vmpz8gi4sdy43x1ik7wh42wayvk1iq520d3i714kfcpy";
|
||||
sha256 = "sha256-0lJocrNQHTrpslbPE6xjZDWhzza8cAt2js35LvicZKg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
# already merged to master, remove next version bump
|
||||
(fetchpatch {
|
||||
name = "remove-m-from-so-var.patch";
|
||||
url = "https://github.com/arsenetar/dupeguru/commit/bd0f53bcbe463c48fe141b73af13542da36d82ba.patch";
|
||||
sha256 = "07iisz8kcr7v8lb21inzj1avlpfhh9k8wcivbd33w49cr3mmnr26";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
python3Packages.pyqt5
|
||||
|
@ -31,6 +22,7 @@ python3Packages.buildPythonApplication rec {
|
|||
|
||||
pythonPath = with python3Packages; [
|
||||
pyqt5
|
||||
pyqt5_sip
|
||||
send2trash
|
||||
sphinx
|
||||
polib
|
||||
|
@ -42,9 +34,12 @@ python3Packages.buildPythonApplication rec {
|
|||
"NO_VENV=1"
|
||||
];
|
||||
|
||||
# TODO: package pytest-monkeyplus for running tests
|
||||
# https://github.com/NixOS/nixpkgs/pull/75054/files#r357690123
|
||||
doCheck = false;
|
||||
checkInputs = with python3Packages; [
|
||||
pytestCheckHook
|
||||
];
|
||||
preCheck = ''
|
||||
export HOME="$(mktemp -d)"
|
||||
'';
|
||||
|
||||
# Avoid double wrapping Python programs.
|
||||
dontWrapQtApps = true;
|
||||
|
@ -66,6 +61,6 @@ python3Packages.buildPythonApplication rec {
|
|||
homepage = "https://github.com/arsenetar/dupeguru";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.novoxudonoser ];
|
||||
maintainers = [ maintainers.novoxd ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "gallery_dl";
|
||||
version = "1.20.4";
|
||||
version = "1.20.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-K22ee6qcVXbJJKH5/6EMvSdSNKBb7xAP++1s+A5ENu4=";
|
||||
sha256 = "sha256-UJAoxRybEYxQY+7l/szSj9fy1J552yaxF3MdaEmDiQQ=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ requests yt-dlp ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kanboard";
|
||||
version = "1.2.21";
|
||||
version = "1.2.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kanboard";
|
||||
repo = "kanboard";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0CIemSdgNnYfpwZqfTerd/RZ+mYeFUWTE+v2hwu+9gI=";
|
||||
sha256 = "sha256-pLxCm+T9jdn0FFqbTFe1tsIPTaVTT+QDeLHDxrbpGBg=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
|
35
pkgs/applications/misc/lemonade/default.nix
Normal file
35
pkgs/applications/misc/lemonade/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "lemonade";
|
||||
version = "unstable-2021-06-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lemonade-command";
|
||||
repo = pname;
|
||||
rev = "97ad2f7d63cbe6c696af36a754d399b4be4553bc";
|
||||
sha256 = "sha256-77ymkpO/0DE4+m8fnpXGdnLLFxWMnKu2zsqCpQ3wEPM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/lemonade-command/lemonade/commit/2b292b0c9d8dc57f73c30a58b3f0f790a953b212.patch";
|
||||
sha256 = "sha256-jUcOfsKu1IYa7arZuAvhuD0vw7JTmhzA/VLxOtAnbmI=";
|
||||
})
|
||||
];
|
||||
|
||||
vendorSha256 = "sha256-wjQfTKVNmehu4aU5425gS0YWKj53dosVSTLgdu9KjKc=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Remote utility tool that to copy, paste and open browsers over TCP";
|
||||
homepage = "https://github.com/lemonade-command/lemonade/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||
};
|
||||
}
|
|
@ -6,24 +6,24 @@
|
|||
, substituteAll
|
||||
, nix-update-script
|
||||
# To include additional plugins, pass them here as an overlay.
|
||||
, packageOverrides ? self: super: {}
|
||||
, packageOverrides ? self: super: { }
|
||||
}:
|
||||
let
|
||||
mkOverride = attrname: version: sha256:
|
||||
self: super: {
|
||||
${attrname} = super.${attrname}.overridePythonAttrs (
|
||||
oldAttrs: {
|
||||
inherit version;
|
||||
src = oldAttrs.src.override {
|
||||
inherit version sha256;
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
self: super: {
|
||||
${attrname} = super.${attrname}.overridePythonAttrs (
|
||||
oldAttrs: {
|
||||
inherit version;
|
||||
src = oldAttrs.src.override {
|
||||
inherit version sha256;
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
py = python3.override {
|
||||
self = py;
|
||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) (
|
||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) (
|
||||
[
|
||||
# the following dependencies are non trivial to update since later versions introduce backwards incompatible
|
||||
# changes that might affect plugins, or due to other observed problems
|
||||
|
@ -57,7 +57,7 @@ let
|
|||
inherit version;
|
||||
sha256 = "6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c";
|
||||
};
|
||||
doCheck= false;
|
||||
doCheck = false;
|
||||
});
|
||||
}
|
||||
)
|
||||
|
@ -92,7 +92,7 @@ let
|
|||
pysocks
|
||||
];
|
||||
disabledTests = [
|
||||
"testConnect" # requires network access
|
||||
"testConnect" # requires network access
|
||||
];
|
||||
}
|
||||
);
|
||||
|
@ -154,10 +154,60 @@ let
|
|||
disabledTests = [
|
||||
"test_apply_simulates_delivery_info"
|
||||
"test_auto_enabling_integrations_catches_import_error"
|
||||
"test_leaks"
|
||||
];
|
||||
disabledTestPaths = [
|
||||
# Don't test integrations
|
||||
"tests/integrations"
|
||||
# test crashes on aarch64
|
||||
"tests/test_transport.py"
|
||||
];
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
# Octoprint fails due to a newly added test in pytest-httpbin
|
||||
# see https://github.com/NixOS/nixpkgs/issues/159864
|
||||
(
|
||||
self: super: {
|
||||
pytest-httpbin = super.pytest-httpbin.overridePythonAttrs (oldAttrs: rec {
|
||||
disabledTests = [
|
||||
"test_redirect_location_is_https_for_secure_server"
|
||||
];
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
# All test fail on aarch64
|
||||
(
|
||||
self: super: {
|
||||
azure-core = super.azure-core.overridePythonAttrs (oldAttrs: rec {
|
||||
doCheck = stdenv.buildPlatform == "x86_64-linux";
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
# needs network
|
||||
(
|
||||
self: super: {
|
||||
falcon = super.falcon.overridePythonAttrs (oldAttrs: rec {
|
||||
#pytestFlagsArray = [ "-W ignore::DeprecationWarning" ];
|
||||
disabledTestPaths = oldAttrs.disabledTestPaths ++ [
|
||||
"tests/asgi/test_asgi_servers.py"
|
||||
];
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
# update broke some tests
|
||||
(
|
||||
self: super: {
|
||||
sanic = super.sanic.overridePythonAttrs (oldAttrs: rec {
|
||||
disabledTestPaths = oldAttrs.disabledTestPaths ++ [
|
||||
"test_cli.py"
|
||||
"test_cookies.py"
|
||||
# requires network
|
||||
"test_worker.py"
|
||||
];
|
||||
});
|
||||
}
|
||||
|
@ -302,29 +352,30 @@ let
|
|||
})
|
||||
];
|
||||
|
||||
postPatch = let
|
||||
ignoreVersionConstraints = [
|
||||
"cachelib"
|
||||
"colorlog"
|
||||
"emoji"
|
||||
"immutabledict"
|
||||
"PyYAML"
|
||||
"sarge"
|
||||
"sentry-sdk"
|
||||
"watchdog"
|
||||
"wrapt"
|
||||
"zeroconf"
|
||||
];
|
||||
in
|
||||
postPatch =
|
||||
let
|
||||
ignoreVersionConstraints = [
|
||||
"cachelib"
|
||||
"colorlog"
|
||||
"emoji"
|
||||
"immutabledict"
|
||||
"PyYAML"
|
||||
"sarge"
|
||||
"sentry-sdk"
|
||||
"watchdog"
|
||||
"wrapt"
|
||||
"zeroconf"
|
||||
];
|
||||
in
|
||||
''
|
||||
sed -r -i \
|
||||
${lib.concatStringsSep "\n" (
|
||||
map (
|
||||
e:
|
||||
''-e 's@${e}[<>=]+.*@${e}",@g' \''
|
||||
) ignoreVersionConstraints
|
||||
)}
|
||||
setup.py
|
||||
sed -r -i \
|
||||
${lib.concatStringsSep "\n" (
|
||||
map (
|
||||
e:
|
||||
''-e 's@${e}[<>=]+.*@${e}",@g' \''
|
||||
) ignoreVersionConstraints
|
||||
)}
|
||||
setup.py
|
||||
'';
|
||||
|
||||
dontUseSetuptoolsCheck = true;
|
||||
|
@ -360,4 +411,4 @@ let
|
|||
);
|
||||
};
|
||||
in
|
||||
with py.pkgs; toPythonApplication octoprint
|
||||
with py.pkgs; toPythonApplication octoprint
|
||||
|
|
|
@ -34,13 +34,13 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "orca";
|
||||
version = "41.1";
|
||||
version = "41.2";
|
||||
|
||||
format = "other";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "H9ArmQlPCfbnLfd54actzkFCfsguJFpOqDIzqX7tonE=";
|
||||
sha256 = "1/Jy6ps3+9ZFTkAh5GU4okcibhwKxXDW4rhOlxmqKv4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -7,14 +7,12 @@
|
|||
, libhandy, webkitgtk, glib-networking
|
||||
, gnome, dconf
|
||||
}:
|
||||
let
|
||||
pythonEnv = python3.withPackages (p: with p; [
|
||||
pygobject3
|
||||
requests
|
||||
]);
|
||||
in stdenv.mkDerivation rec {
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "wike";
|
||||
version = "1.7.1";
|
||||
format = "other";
|
||||
strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hugolabe";
|
||||
|
@ -35,7 +33,6 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
buildInputs = [
|
||||
glib
|
||||
pythonEnv
|
||||
gtk3
|
||||
libhandy
|
||||
webkitgtk
|
||||
|
@ -44,10 +41,13 @@ in stdenv.mkDerivation rec {
|
|||
dconf
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
requests
|
||||
pygobject3
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs build-aux/meson/postinstall.py
|
||||
substituteInPlace src/wike.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
|
||||
substituteInPlace src/wike-sp.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
|
||||
let
|
||||
pname = "zettlr";
|
||||
version = "2.1.3";
|
||||
version = "2.2.1";
|
||||
name = "${pname}-${version}";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
|
||||
sha256 = "sha256-prUKMtM9qf34OXaMjuWa1jTZ+2tn99rVJBdqk1El3zs=";
|
||||
sha256 = "sha256-nO5omfUdWQcvWmYfoGBHRpGZ6ihEeB6hyvyWeWVizbY=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit name src;
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
, freetype
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gnome2
|
||||
, gnome
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
|
@ -60,7 +59,6 @@ rpath = lib.makeLibraryPath [
|
|||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
gtk3
|
||||
libdrm
|
||||
libpulseaudio
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, stdenv, patchelf, makeWrapper
|
||||
|
||||
# Linked dynamic libraries.
|
||||
, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
|
||||
, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, nss, nspr
|
||||
, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
|
||||
, alsa-lib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
|
||||
, dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
|
||||
|
@ -57,7 +57,7 @@ let
|
|||
version = chromium.upstream-info.version;
|
||||
|
||||
deps = [
|
||||
glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr
|
||||
glib fontconfig freetype pango cairo libX11 libXi atk nss nspr
|
||||
libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb
|
||||
alsa-lib libXdamage libXtst libXrandr libxshmfence expat cups
|
||||
dbus gdk-pixbuf gcc-unwrapped.lib
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchzip
|
||||
, autoPatchelfHook
|
||||
, wrapGAppsHook
|
||||
, gnome2
|
||||
, gtk2
|
||||
, nss
|
||||
, xdg-utils
|
||||
, xorg
|
||||
, alsa-lib
|
||||
, atk
|
||||
, cairo
|
||||
, cups
|
||||
, curl
|
||||
, dbus
|
||||
, expat
|
||||
, fontconfig
|
||||
, freetype
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gtk3
|
||||
, libX11
|
||||
, libxcb
|
||||
, libXScrnSaver
|
||||
, libXcomposite
|
||||
, libXcursor
|
||||
, libXdamage
|
||||
, libXext
|
||||
, libXfixes
|
||||
, libXi
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, libXtst
|
||||
, libdrm
|
||||
, libnotify
|
||||
, libopus
|
||||
, libpulseaudio
|
||||
, libuuid
|
||||
, libxshmfence
|
||||
, mesa
|
||||
, nspr
|
||||
, pango
|
||||
, systemd
|
||||
, at-spi2-atk
|
||||
, at-spi2-core
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "icecat-bin";
|
||||
version = "60.7.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://mirror.tochlab.net/pub/gnu/gnuzilla/${version}/icecat-${version}.en-US.gnulinux-x86_64.tar.bz2";
|
||||
sha256 = "sha256-bEapbQIcZXQ0Tip/X1Q0guowpr3wNDYsFbHGmTbc5mE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
nss
|
||||
xdg-utils
|
||||
xorg.libxkbfile
|
||||
alsa-lib
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
curl
|
||||
dbus
|
||||
expat
|
||||
fontconfig.lib
|
||||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
gtk2
|
||||
gtk3
|
||||
libX11
|
||||
libXScrnSaver
|
||||
libXcomposite
|
||||
libXcursor
|
||||
libXdamage
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libXtst
|
||||
libdrm
|
||||
libnotify
|
||||
libopus
|
||||
libuuid
|
||||
libxcb
|
||||
libxshmfence
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
xorg.libXt
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
unpackPhase = ''
|
||||
mkdir -p $TMP/ $out/{opt,bin}
|
||||
cp $src/* $TMP/ -r
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -r $TMP/* $out/opt/
|
||||
ln -sf $out/opt/icecat-bin $out/bin/icecat
|
||||
'';
|
||||
|
||||
runtimeDependencies = [
|
||||
libpulseaudio.out
|
||||
(lib.getLib systemd)
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Binary build of the GNU version of the Mozilla Firefox browser";
|
||||
homepage = "https://www.gnu.org/software/gnuzilla/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ dan4ik605743 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -11,7 +11,6 @@
|
|||
, freetype
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gnome2
|
||||
, gtk3
|
||||
, gtk4
|
||||
, lib
|
||||
|
@ -79,7 +78,6 @@ in stdenv.mkDerivation rec {
|
|||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
gtk3
|
||||
libX11
|
||||
libXScrnSaver
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
, freetype, fontconfig, libXft, libXrender, libxcb, expat
|
||||
, libuuid
|
||||
, libxml2
|
||||
, glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core, gnome2
|
||||
, glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core
|
||||
, libdrm, mesa
|
||||
, nss, nspr
|
||||
, patchelf, makeWrapper
|
||||
|
@ -19,11 +19,11 @@ let
|
|||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "5.0.2497.51-1";
|
||||
version = "5.1.2567.39-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
|
||||
sha256 = "OOLTY6Q0BI65PVN/B6+Q9t4Fa5Z0p9U2KyAeCGwCCPw=";
|
||||
sha256 = "140idghryk132nyb8np011xiwzgh518n0fxrkjnnvi3c67shq7qc";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
|
|||
libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
|
||||
atk at-spi2-atk at-spi2-core alsa-lib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd libva
|
||||
freetype fontconfig libXrender libuuid expat glib nss nspr
|
||||
libxml2 pango cairo gnome2.GConf
|
||||
libxml2 pango cairo
|
||||
libdrm mesa
|
||||
] ++ lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs;
|
||||
|
||||
|
|
|
@ -8,18 +8,18 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "arkade";
|
||||
version = "0.8.12";
|
||||
version = "0.8.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexellis";
|
||||
repo = "arkade";
|
||||
rev = version;
|
||||
sha256 = "sha256-OBcvJ1+VAE7jDeQ/I/9uc0wiU0iibeflRMmb+ulgDtQ=";
|
||||
sha256 = "sha256-XH7JtLv0J6bznZZ/L8wg5KB53OPe3KLiYujBlxP71pg=";
|
||||
};
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
vendorSha256 = "05zdd5c2x4k4myxmgj32md8wq08i543l8q81rabqgyd3r9nwv4lx";
|
||||
vendorSha256 = "sha256-ipLVzBkliQSPBZTL5FU8xosTVjxFsUVlAvO0a0q+j2o=";
|
||||
|
||||
# Exclude pkg/get: tests downloading of binaries which fail when sandbox=true
|
||||
subPackages = [
|
||||
|
|
|
@ -21,13 +21,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kubernetes";
|
||||
version = "1.22.6";
|
||||
version = "1.23.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-NL00GOdkVLVHTlj1RK1+stssioy+0xbtiKn4FZnCuzs=";
|
||||
sha256 = "sha256-Ccf+9mwDv1Fs0+xN8yDkUjh4A3aGox7rBGesyYtkUDs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
|
||||
|
|
|
@ -2,21 +2,22 @@
|
|||
|
||||
let
|
||||
pname = "lens";
|
||||
version = "5.2.6";
|
||||
build = "${version}-latest.20211104.1";
|
||||
version = "5.3.4";
|
||||
build = "${version}-latest.20220120.1";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.k8slens.dev/binaries/Lens-${build}.x86_64.AppImage";
|
||||
sha256 = "1lkxzgwrgafraimpnciv89fs6r399275vb73drxlg5z83acacf5z";
|
||||
name="${pname}.AppImage";
|
||||
sha256 = "sha256-9vRLQFSocVkHAfgwdKSPhSAO4G/v/ANd0WQmilcZiVw=";
|
||||
name = "${pname}.AppImage";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit name src;
|
||||
};
|
||||
|
||||
in appimageTools.wrapType2 {
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit name src;
|
||||
|
||||
profile = ''
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "qbec";
|
||||
version = "0.14.8";
|
||||
version = "0.15.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "splunk";
|
||||
repo = "qbec";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-awuYmazBx7zv/WuDsePzdWNRcpAzLK7lf4L2W2Jbt3A=";
|
||||
sha256 = "sha256-cXU+LnOCsGg+iwH5c7cKVi2Htw45AGxyjJFKXKbTkUo=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-VOBRQJzATaY9DNRhZvYTRpoISikbzUAwS/1hUfce/44=";
|
||||
vendorSha256 = "sha256-CiVAzFN/ygIiyhZKYtJ197TZO3ppL/emWSj4hAlIanc=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
@ -30,20 +30,20 @@
|
|||
"owner": "akamai",
|
||||
"provider-source-address": "registry.terraform.io/akamai/akamai",
|
||||
"repo": "terraform-provider-akamai",
|
||||
"rev": "v1.10.0",
|
||||
"sha256": "1nsgdqdg3p08f40427qxk3whwgqw1xdsks55d3j8j94zgrndmpv3",
|
||||
"vendorSha256": "11q46n36yv56ivdax7w2hsyl65jwylxgwdfvnfz4w3p1bpyy0qxv",
|
||||
"version": "1.10.0"
|
||||
"rev": "v1.10.1",
|
||||
"sha256": "0gbvq5hlibqxch4igicsyfqfbvm9pdz4901ywaabnd80jmsfhv4c",
|
||||
"vendorSha256": "0rzxfybxdsl99mzr5r5amammpsjv66fiakialfws696mz915zz4k",
|
||||
"version": "1.10.1"
|
||||
},
|
||||
"alicloud": {
|
||||
"deleteVendor": true,
|
||||
"owner": "aliyun",
|
||||
"provider-source-address": "registry.terraform.io/aliyun/alicloud",
|
||||
"repo": "terraform-provider-alicloud",
|
||||
"rev": "v1.154.0",
|
||||
"sha256": "1wmmy82c44jdq9xgli24wgh2nb2jg6xw0nlm35psyj0jmmxvisrw",
|
||||
"rev": "v1.155.0",
|
||||
"sha256": "0gzgh9w564c29hkx2sbrfrw04qbgdswc3ppvaa6xsz1s7g0p902a",
|
||||
"vendorSha256": "18chs2723i2cxhhm649mz52pp6wrfqzxgk12zxq9idrhicchqnzg",
|
||||
"version": "1.154.0"
|
||||
"version": "1.155.0"
|
||||
},
|
||||
"ansible": {
|
||||
"owner": "nbering",
|
||||
|
@ -94,28 +94,28 @@
|
|||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/aws",
|
||||
"repo": "terraform-provider-aws",
|
||||
"rev": "v3.74.0",
|
||||
"sha256": "1w8xgsc4xb86m2why5wgq3vj48rsz9m4fp9lpdid0x5836dg3wxl",
|
||||
"vendorSha256": "104a93i9dqcbwr4rzbqlzz6jw68x2bq2w21s5n03i4pf4a170p1l",
|
||||
"version": "3.74.0"
|
||||
"rev": "v4.0.0",
|
||||
"sha256": "03lsdkjahq9prqrnw3v9073bi9378cqyl0g16qaqns7wrhxcxzm2",
|
||||
"vendorSha256": "1mzacd4bmr3743kvxcp1nyc0gkr2gh8gm0rhq887z62lafpnbhy1",
|
||||
"version": "4.0.0"
|
||||
},
|
||||
"azuread": {
|
||||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/azuread",
|
||||
"repo": "terraform-provider-azuread",
|
||||
"rev": "v2.17.0",
|
||||
"sha256": "183lpw9d22arw9yap614khbn77w5914rgq5vclscsa4k8jbiszy3",
|
||||
"rev": "v2.18.0",
|
||||
"sha256": "06l4w9g4p48gnb9c9mmnydvpyr89f8rijpf103ndsg6ack6k4mg2",
|
||||
"vendorSha256": null,
|
||||
"version": "2.17.0"
|
||||
"version": "2.18.0"
|
||||
},
|
||||
"azurerm": {
|
||||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/azurerm",
|
||||
"repo": "terraform-provider-azurerm",
|
||||
"rev": "v2.95.0",
|
||||
"sha256": "1xqfnc7c3ddgpj3mhp9x50kaszc01jwrwhkm0gxn9ixy0bqy4v7m",
|
||||
"rev": "v2.96.0",
|
||||
"sha256": "18c164acz8l1s2d06af9v8rg09a5b1s0360974fpca8rfiw425lf",
|
||||
"vendorSha256": null,
|
||||
"version": "2.95.0"
|
||||
"version": "2.96.0"
|
||||
},
|
||||
"azurestack": {
|
||||
"owner": "hashicorp",
|
||||
|
@ -166,10 +166,10 @@
|
|||
"owner": "checkly",
|
||||
"provider-source-address": "registry.terraform.io/checkly/checkly",
|
||||
"repo": "terraform-provider-checkly",
|
||||
"rev": "v1.4.0-rc2",
|
||||
"sha256": "0n8wlngvz3lnpadsj339gx73jnnfxlhsy091a2lws4s3c9a0ncgb",
|
||||
"vendorSha256": "1bqwfl5qc0w5qwkg0b42iyrhcchm2zxaxh6qmvk5hynxdwczqvk8",
|
||||
"version": "1.4.0-rc2"
|
||||
"rev": "v1.4.1",
|
||||
"sha256": "15biy4gm8lwmqm1s5rjr0d77vy4mgyjwaa3wydrna1655w3rgkr6",
|
||||
"vendorSha256": "0pjxrdpsn99g6hjp0flrk7czjb05ibnsjcggrvvpwzrbj55rqzgd",
|
||||
"version": "1.4.1"
|
||||
},
|
||||
"checkpoint": {
|
||||
"deleteVendor": true,
|
||||
|
@ -329,10 +329,10 @@
|
|||
"owner": "phillbaker",
|
||||
"provider-source-address": "registry.terraform.io/phillbaker/elasticsearch",
|
||||
"repo": "terraform-provider-elasticsearch",
|
||||
"rev": "v2.0.0-beta.3",
|
||||
"sha256": "1a3jrj93yr22srs4rwk4j1kydhpmkic0aqxrklg7v9ri7rdwx36s",
|
||||
"rev": "v2.0.0-beta.4",
|
||||
"sha256": "0ypw916sziy8dhvbv96f7d4as08ps18xxx8h6ip69mk74vf029sm",
|
||||
"vendorSha256": "1w92k895ikrqm9n1hf36wlh9nq278vifl3r14v0rxa8g9awizfdr",
|
||||
"version": "2.0.0-beta.3"
|
||||
"version": "2.0.0-beta.4"
|
||||
},
|
||||
"exoscale": {
|
||||
"owner": "exoscale",
|
||||
|
@ -356,10 +356,10 @@
|
|||
"owner": "fastly",
|
||||
"provider-source-address": "registry.terraform.io/fastly/fastly",
|
||||
"repo": "terraform-provider-fastly",
|
||||
"rev": "v0.41.0",
|
||||
"sha256": "096dwysa1awyb4a1fay9sw1i784cki8q4x141f9gan5w1qwns89y",
|
||||
"rev": "v1.0.0",
|
||||
"sha256": "0rpggjsnxwz3rd93nxqr0w2addscxw498mf1mjp3mvkj1f3r9afi",
|
||||
"vendorSha256": null,
|
||||
"version": "0.41.0"
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"flexibleengine": {
|
||||
"owner": "FlexibleEngineCloud",
|
||||
|
@ -411,20 +411,20 @@
|
|||
"provider-source-address": "registry.terraform.io/hashicorp/google",
|
||||
"proxyVendor": true,
|
||||
"repo": "terraform-provider-google",
|
||||
"rev": "v4.9.0",
|
||||
"sha256": "17f6d9dhsakllrlxxnp9ysqqqlr876jyjpz1hvk2h99skwp89xg5",
|
||||
"vendorSha256": "1izwgxv1kplay15p8dbjnkllpnh4ic9di93zyi7wy6lhl8gi83hx",
|
||||
"version": "4.9.0"
|
||||
"rev": "v4.10.0",
|
||||
"sha256": "19hxlvahjk0pfixykb4vfg2gyf85p6zrj0z6wfm1q3ddk35rka4z",
|
||||
"vendorSha256": "0l6f0zi3abkz4hn23bbp009bp43mpwsz9sqk3d75jpxgxi7c7f33",
|
||||
"version": "4.10.0"
|
||||
},
|
||||
"google-beta": {
|
||||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/google-beta",
|
||||
"proxyVendor": true,
|
||||
"repo": "terraform-provider-google-beta",
|
||||
"rev": "v4.9.0",
|
||||
"sha256": "0wv5m9ixhsq3i0vhcc9jcm0xx1mryab2m22wfiy1w8m73gls96r2",
|
||||
"vendorSha256": "1izwgxv1kplay15p8dbjnkllpnh4ic9di93zyi7wy6lhl8gi83hx",
|
||||
"version": "4.9.0"
|
||||
"rev": "v4.10.0",
|
||||
"sha256": "01w0p1b4q2h7rmyq7fmh1zr8h22gwlws8w58ggbnah2xvn3jzvk3",
|
||||
"vendorSha256": "0l6f0zi3abkz4hn23bbp009bp43mpwsz9sqk3d75jpxgxi7c7f33",
|
||||
"version": "4.10.0"
|
||||
},
|
||||
"grafana": {
|
||||
"owner": "grafana",
|
||||
|
@ -439,10 +439,10 @@
|
|||
"owner": "gridscale",
|
||||
"provider-source-address": "registry.terraform.io/gridscale/gridscale",
|
||||
"repo": "terraform-provider-gridscale",
|
||||
"rev": "v1.14.0",
|
||||
"sha256": "1syi3hvmff8dkbh538r4acbr5r72nmd073fvr52zcn0a9bc3q9np",
|
||||
"rev": "v1.14.1",
|
||||
"sha256": "1vf1xvj3djm1mgrgfj428yh26qxksclxxnvkxl663nqsvy14gd6s",
|
||||
"vendorSha256": null,
|
||||
"version": "1.14.0"
|
||||
"version": "1.14.1"
|
||||
},
|
||||
"hcloud": {
|
||||
"owner": "hetznercloud",
|
||||
|
@ -466,10 +466,10 @@
|
|||
"owner": "heroku",
|
||||
"provider-source-address": "registry.terraform.io/heroku/heroku",
|
||||
"repo": "terraform-provider-heroku",
|
||||
"rev": "v4.9.0",
|
||||
"sha256": "0h61wldnjmmqfhjxvjf6jh0h6v22zx7rmff48pw1dyir19di7mdr",
|
||||
"vendorSha256": "183j20my61mqhch87cn455l938jqx4ssbnv8yl416i6bxgcpy6f9",
|
||||
"version": "4.9.0"
|
||||
"rev": "v5.0.0-beta.1",
|
||||
"sha256": "1dskbwa10dmj5fdw0wplby6hhcvxri68jlg34966mqx8pas3zsxy",
|
||||
"vendorSha256": "13f7841i14b5n5iabqky7694mbqg95f0cvaygapczki5lf2j7fqy",
|
||||
"version": "5.0.0-beta.1"
|
||||
},
|
||||
"http": {
|
||||
"owner": "hashicorp",
|
||||
|
@ -511,10 +511,10 @@
|
|||
"owner": "IBM-Cloud",
|
||||
"provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
|
||||
"repo": "terraform-provider-ibm",
|
||||
"rev": "v1.38.1",
|
||||
"sha256": "08ssvqa4c4f2fnxzi3gfz9ygl6abh13s330q0lwq1zmfy1lzfjvg",
|
||||
"vendorSha256": "1s77rmqd7igzlhd01jh6l56yar241jhb5ipfkch50yglkr7lqij5",
|
||||
"version": "1.38.1"
|
||||
"rev": "v1.38.2",
|
||||
"sha256": "1c6mm57apk93s18747h8ywvq5463qwapinr735ci2pmb2655cs85",
|
||||
"vendorSha256": "034k4sjbd5b64v4xvxgrhg3n8dchv41fk5vbcmk29rppi6pjc0yg",
|
||||
"version": "1.38.2"
|
||||
},
|
||||
"icinga2": {
|
||||
"owner": "Icinga",
|
||||
|
@ -529,10 +529,10 @@
|
|||
"owner": "infobloxopen",
|
||||
"provider-source-address": "registry.terraform.io/infobloxopen/infoblox",
|
||||
"repo": "terraform-provider-infoblox",
|
||||
"rev": "v2.0.1",
|
||||
"sha256": "0xmlhm4lgb43f75300hajlq7zk3r1xqxi4dc2x0vlnkhgdj3hrfi",
|
||||
"rev": "v2.1.0",
|
||||
"sha256": "1agxlvm5gxgsfyg1kij09jaly4pj3wfbdc4hk7456m2v1k4r7asn",
|
||||
"vendorSha256": null,
|
||||
"version": "2.0.1"
|
||||
"version": "2.1.0"
|
||||
},
|
||||
"kafka": {
|
||||
"owner": "Mongey",
|
||||
|
@ -583,19 +583,19 @@
|
|||
"owner": "hashicorp",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
|
||||
"repo": "terraform-provider-kubernetes",
|
||||
"rev": "v2.7.1",
|
||||
"sha256": "061zxphysj6spr1giwfnqgy3hh8s4j0lw10gs3cjkqxbpc4bbs7a",
|
||||
"rev": "v2.8.0",
|
||||
"sha256": "15mjx531jzrsfd4kxnklcr8q7gbq64z772y9m5lhq73anr9yqfa3",
|
||||
"vendorSha256": null,
|
||||
"version": "2.7.1"
|
||||
"version": "2.8.0"
|
||||
},
|
||||
"launchdarkly": {
|
||||
"owner": "launchdarkly",
|
||||
"provider-source-address": "registry.terraform.io/launchdarkly/launchdarkly",
|
||||
"repo": "terraform-provider-launchdarkly",
|
||||
"rev": "v2.4.1",
|
||||
"sha256": "1smrdhg6fn9lzrlh0mz822zibnvd1487w5qn38l71ark9dadahqv",
|
||||
"rev": "v2.5.0",
|
||||
"sha256": "1083w217y8l6clj3q31f1lanzngfinw682kdqpm0xfssqas7qzx6",
|
||||
"vendorSha256": "13vcxvw56bn7mdz917lvdryd2d7mcvi83ykbzjfbpxr4lzrrm9qw",
|
||||
"version": "2.4.1"
|
||||
"version": "2.5.0"
|
||||
},
|
||||
"libvirt": {
|
||||
"owner": "dmacvicar",
|
||||
|
@ -647,10 +647,10 @@
|
|||
"owner": "terraform-lxd",
|
||||
"provider-source-address": "registry.terraform.io/terraform-lxd/lxd",
|
||||
"repo": "terraform-provider-lxd",
|
||||
"rev": "v1.7.0",
|
||||
"sha256": "1fg9ad6zmkkg8j4sqfan3ibjjb73digg10k5h8xaii778r9bh311",
|
||||
"rev": "v1.7.1",
|
||||
"sha256": "0r1d0d6fp3rihxhfsxlay0dqp5rmnja9s369msra8jylqyharnrh",
|
||||
"vendorSha256": "11x12jxh4q99hinpljqfchysgkhch93sgv0mz065ws20y0dxzfvs",
|
||||
"version": "1.7.0"
|
||||
"version": "1.7.1"
|
||||
},
|
||||
"mailgun": {
|
||||
"owner": "wgebis",
|
||||
|
@ -774,19 +774,19 @@
|
|||
"owner": "terraform-providers",
|
||||
"provider-source-address": "registry.terraform.io/hashicorp/oci",
|
||||
"repo": "terraform-provider-oci",
|
||||
"rev": "v4.62.0",
|
||||
"sha256": "1mnk1sk12jk9xsqfarfl0c33h176jhj7c8jdhxv2p8bf92c5jhfn",
|
||||
"rev": "v4.63.0",
|
||||
"sha256": "03hdq6024ch3rx20vgqh3xix6dn0chwgiz1z68f22h4gqzj5p955",
|
||||
"vendorSha256": null,
|
||||
"version": "4.62.0"
|
||||
"version": "4.63.0"
|
||||
},
|
||||
"okta": {
|
||||
"owner": "okta",
|
||||
"provider-source-address": "registry.terraform.io/okta/okta",
|
||||
"repo": "terraform-provider-okta",
|
||||
"rev": "v3.20.6",
|
||||
"sha256": "0v6fmdkdc3bqvqb1jh1z75sk03qy7409anfd2xdxr5nfvmkd9jrr",
|
||||
"vendorSha256": "1ybwn1v77kq93h9v8ymfmlf1lk4lm4yh9490js583v0kasnm2q5s",
|
||||
"version": "3.20.6"
|
||||
"rev": "v3.21.0",
|
||||
"sha256": "1j1nvg0qj8xaqnbwlrnhpy73032zc1ik78c0q1iq7xa2gs833qya",
|
||||
"vendorSha256": "0l0di6cmm41z7i4d498xxc8wcrbg6r9w4vcdksqhz92s1gqs3f4z",
|
||||
"version": "3.21.0"
|
||||
},
|
||||
"oktaasa": {
|
||||
"owner": "oktadeveloper",
|
||||
|
@ -820,28 +820,28 @@
|
|||
"owner": "terraform-provider-openstack",
|
||||
"provider-source-address": "registry.terraform.io/terraform-provider-openstack/openstack",
|
||||
"repo": "terraform-provider-openstack",
|
||||
"rev": "v1.46.0",
|
||||
"sha256": "1kkqfr0i33kw0qj3dp5knxm14p1ndy72n4chd36dhkydp4rm688f",
|
||||
"vendorSha256": "10vcxqh77wqxwzsrq1y0rlyl7wazl5glmsqbz5wfvrq5b9q1r75x",
|
||||
"version": "1.46.0"
|
||||
"rev": "v1.47.0",
|
||||
"sha256": "0hbp5hk3b9fdsyqkxb3fzpjiw5dd7h7f3gs3xv5imzkfv1dmqghz",
|
||||
"vendorSha256": "007qmkgp5svhy7gvlkbyxllh0ijsk4xq5kmy7zmjgf7mawp16ny6",
|
||||
"version": "1.47.0"
|
||||
},
|
||||
"opentelekomcloud": {
|
||||
"owner": "opentelekomcloud",
|
||||
"provider-source-address": "registry.terraform.io/opentelekomcloud/opentelekomcloud",
|
||||
"repo": "terraform-provider-opentelekomcloud",
|
||||
"rev": "v1.27.3",
|
||||
"sha256": "17n1vy9h2blw9k3p82sbcz9zbj4hilg33qga5n09nq2ngafagazg",
|
||||
"vendorSha256": "12ahdbb83gxb9dcax635ngr54cqvnydr7l65h5dvv7b2gfldb1ki",
|
||||
"version": "1.27.3"
|
||||
"rev": "v1.27.5-alpha.1",
|
||||
"sha256": "17ws855280bi1ps6q0rdcylsbjmb1m4wvv7m9gxxlryq0gkjdsw2",
|
||||
"vendorSha256": "1qxh3nf6c0ii6wm8vch1bks3gqi2gfzi97szspbcn0z8kdhic07s",
|
||||
"version": "1.27.5-alpha.1"
|
||||
},
|
||||
"opsgenie": {
|
||||
"owner": "opsgenie",
|
||||
"provider-source-address": "registry.terraform.io/opsgenie/opsgenie",
|
||||
"repo": "terraform-provider-opsgenie",
|
||||
"rev": "v0.6.8",
|
||||
"sha256": "10lq9gfmpwc56m6rihxjc5hkglmfh6sqsa0fwsypw6709488a7yq",
|
||||
"rev": "v0.6.9",
|
||||
"sha256": "1wi0wdz0xh8p1znbb545xyzhg191d0xb1pwqqrxl5gz5w009dcz6",
|
||||
"vendorSha256": null,
|
||||
"version": "0.6.8"
|
||||
"version": "0.6.9"
|
||||
},
|
||||
"oraclepaas": {
|
||||
"owner": "terraform-providers",
|
||||
|
@ -865,19 +865,19 @@
|
|||
"owner": "PagerDuty",
|
||||
"provider-source-address": "registry.terraform.io/PagerDuty/pagerduty",
|
||||
"repo": "terraform-provider-pagerduty",
|
||||
"rev": "v2.2.1",
|
||||
"sha256": "0nhn47bd9lqs14wvxjkvhsnzgm6iys5icy5ydmsma3p2fb90qgas",
|
||||
"rev": "v2.3.0",
|
||||
"sha256": "02k416zgjg2f4bl4ilxbg0ig2lh86qc4pv96p2slpzyg8ypf87zg",
|
||||
"vendorSha256": null,
|
||||
"version": "2.2.1"
|
||||
"version": "2.3.0"
|
||||
},
|
||||
"panos": {
|
||||
"owner": "PaloAltoNetworks",
|
||||
"provider-source-address": "registry.terraform.io/PaloAltoNetworks/panos",
|
||||
"repo": "terraform-provider-panos",
|
||||
"rev": "v1.9.2",
|
||||
"sha256": "03585rm434lcp6xk58185i78iv5fjd18z7nrdnbhxxy94yhhf335",
|
||||
"rev": "v1.10.0",
|
||||
"sha256": "1nh1kc8pz10014p6dw8l2qdiqxdgcj5yy3da2qhbarwn0qm9fs36",
|
||||
"vendorSha256": null,
|
||||
"version": "1.9.2"
|
||||
"version": "1.10.0"
|
||||
},
|
||||
"pass": {
|
||||
"owner": "camptocamp",
|
||||
|
@ -991,10 +991,10 @@
|
|||
"owner": "splunk-terraform",
|
||||
"provider-source-address": "registry.terraform.io/splunk-terraform/signalfx",
|
||||
"repo": "terraform-provider-signalfx",
|
||||
"rev": "v6.8.0",
|
||||
"sha256": "1hd71ig9m5c2xfnkxqv6kr3jnnh53cz82cd9icx3391rlrswwcbm",
|
||||
"vendorSha256": "1an1issc7yk9rnx7dl6n2pvnyjqakk1qfg4yz2yk29j1cbrcnjrs",
|
||||
"version": "6.8.0"
|
||||
"rev": "v6.8.1",
|
||||
"sha256": "094a3avlvaacw8g45ll17x1wrch47m5bvj548rvmz77pdbhpzvr5",
|
||||
"vendorSha256": "12c1lhyrl3bwnkvp4qw9wxawy54x3k86vh1dnnvf5n8916pvwcw0",
|
||||
"version": "6.8.1"
|
||||
},
|
||||
"skytap": {
|
||||
"owner": "skytap",
|
||||
|
@ -1018,10 +1018,10 @@
|
|||
"owner": "spotinst",
|
||||
"provider-source-address": "registry.terraform.io/spotinst/spotinst",
|
||||
"repo": "terraform-provider-spotinst",
|
||||
"rev": "v1.65.0",
|
||||
"sha256": "1gk4v6lxa4k8za6c1zxrrrc6qw3ymsk46w97qhfri6y7vrc3vxh0",
|
||||
"vendorSha256": "0xhzj8lmrh0mcpbxa7xkzhhgl3jfk6mz5adia0jgflgrx4wjaf38",
|
||||
"version": "1.65.0"
|
||||
"rev": "v1.66.0",
|
||||
"sha256": "0rkh9vf2k9iynvpkzavca23jxi96dz7b7yc0h9hlhi5bmp5b337a",
|
||||
"vendorSha256": "19zhyib256sp1b6zv281lw5mry8g865n4nrxc6x9gkpwg1m0z87z",
|
||||
"version": "1.66.0"
|
||||
},
|
||||
"stackpath": {
|
||||
"owner": "stackpath",
|
||||
|
@ -1045,10 +1045,10 @@
|
|||
"owner": "SumoLogic",
|
||||
"provider-source-address": "registry.terraform.io/SumoLogic/sumologic",
|
||||
"repo": "terraform-provider-sumologic",
|
||||
"rev": "v2.11.5",
|
||||
"sha256": "1k3z0rbnqfjrz4awrmid03g7lmalkya7m60l22qdhpsc6c6pg0mp",
|
||||
"vendorSha256": "0jfzyzlfvpkbxi60439hmsrn2qqm86ghb859jl4mphd6g7p75zdj",
|
||||
"version": "2.11.5"
|
||||
"rev": "v2.12.0",
|
||||
"sha256": "04rrs6x9grkqqqrz3l3nqzp3vy03jw24l1grx2nbw8srpgw1pcwl",
|
||||
"vendorSha256": "19zhpa47wxkxk2nixd960xz9xh38nq5ml7dwnimr4v1mpvw9hcgc",
|
||||
"version": "2.12.0"
|
||||
},
|
||||
"template": {
|
||||
"owner": "hashicorp",
|
||||
|
@ -1118,10 +1118,10 @@
|
|||
"owner": "turbot",
|
||||
"provider-source-address": "registry.terraform.io/turbot/turbot",
|
||||
"repo": "terraform-provider-turbot",
|
||||
"rev": "v1.8.2",
|
||||
"sha256": "16nxngn7mx7049mar7azj03pyslmf9wri50kwhimkfjva0k9zbl7",
|
||||
"rev": "v1.8.3",
|
||||
"sha256": "0jx37w4sbm7gj8vqnb58rg24s6fafc73ds954vqh9rjn8a6x0qz9",
|
||||
"vendorSha256": null,
|
||||
"version": "1.8.2"
|
||||
"version": "1.8.3"
|
||||
},
|
||||
"ucloud": {
|
||||
"owner": "ucloud",
|
||||
|
@ -1155,10 +1155,10 @@
|
|||
"owner": "Venafi",
|
||||
"provider-source-address": "registry.terraform.io/Venafi/venafi",
|
||||
"repo": "terraform-provider-venafi",
|
||||
"rev": "v0.13.0",
|
||||
"sha256": "1gvr0g622ddc8sw7f1g6vqw6wvzmm26qqzw7dljmgbvch0xyal86",
|
||||
"vendorSha256": "1hk8nwm29yfbvwy6h8lv136vvh8nynjnqifzjdriqv2ldxl6pykj",
|
||||
"version": "0.13.0"
|
||||
"rev": "v0.14.0",
|
||||
"sha256": "16a7mr4dzfkvf9gg77dax92dp6g99plfg5qpzfhxdfanb25lq7za",
|
||||
"vendorSha256": "0vmmki2pmg6ns75ldygyvj5pzl3blzz62zfqh4jsm1zbswfs75df",
|
||||
"version": "0.14.0"
|
||||
},
|
||||
"vercel": {
|
||||
"owner": "ondrejsika",
|
||||
|
@ -1218,9 +1218,9 @@
|
|||
"owner": "yandex-cloud",
|
||||
"provider-source-address": "registry.terraform.io/yandex-cloud/yandex",
|
||||
"repo": "terraform-provider-yandex",
|
||||
"rev": "v0.70.0",
|
||||
"sha256": "0dmhzjwcd0j7rfczxahami23yjcc0pr10m12iig3z4hj9kgikzvy",
|
||||
"vendorSha256": "0zx2lq9va0llrjlf3lk8pnx6f5knmi4jjxrnll89kp01imydjqv8",
|
||||
"version": "0.70.0"
|
||||
"rev": "v0.71.0",
|
||||
"sha256": "1ccfmn6j96jy6hhqijjas31ylsmhs1gj8367v3b94mgam7p1pxcd",
|
||||
"vendorSha256": "16cdg3j00dkmddxgb94as49470a67nv8linfm6s9vrx3xvjk04xw",
|
||||
"version": "0.71.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,21 @@ let
|
|||
];
|
||||
|
||||
python = python3.override {
|
||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides;
|
||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: {
|
||||
jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "3.2.0";
|
||||
|
||||
src = super.fetchPypi {
|
||||
inherit (oldAttrs) pname;
|
||||
inherit version;
|
||||
sha256 = "sha256-yKhbKNN3zHc35G4tnytPRO48Dh3qxr9G3e/HGH0weXo=";
|
||||
};
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
||||
doCheck = false;
|
||||
});
|
||||
}) defaultOverrides;
|
||||
};
|
||||
in python.pkgs.buildPythonPackage rec {
|
||||
pname = "gns3-gui";
|
||||
|
|
|
@ -17,13 +17,28 @@ let
|
|||
};
|
||||
doCheck = false;
|
||||
});
|
||||
|
||||
jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "3.2.0";
|
||||
|
||||
src = super.fetchPypi {
|
||||
inherit (oldAttrs) pname;
|
||||
inherit version;
|
||||
sha256 = "sha256-yKhbKNN3zHc35G4tnytPRO48Dh3qxr9G3e/HGH0weXo=";
|
||||
};
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
||||
doCheck = false;
|
||||
});
|
||||
|
||||
})
|
||||
];
|
||||
|
||||
python = python3.override {
|
||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([ packageOverrides ] ++ defaultOverrides);
|
||||
};
|
||||
in python.pkgs.buildPythonPackage {
|
||||
in python.pkgs.buildPythonApplication {
|
||||
pname = "gns3-server";
|
||||
inherit version;
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
, freetype
|
||||
, fontconfig
|
||||
, gtk3
|
||||
, gnome2
|
||||
, dbus
|
||||
, nss
|
||||
, nspr
|
||||
|
@ -61,7 +60,6 @@ stdenv.mkDerivation rec {
|
|||
freetype
|
||||
fontconfig
|
||||
dbus
|
||||
gnome2.GConf
|
||||
nss
|
||||
nspr
|
||||
alsa-lib
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, alsa-lib, atk, at-spi2-core, cairo, cups, dbus, dpkg, expat, fetchurl
|
||||
, fontconfig, freetype, gdk-pixbuf, glib, gnome2, gtk3, libdrm, libX11
|
||||
, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libdrm, libX11
|
||||
, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
|
||||
, libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx
|
||||
, libnotify, libpulseaudio, libxcb, makeDesktopItem, makeWrapper, mesa, nspr, nss
|
||||
|
@ -18,7 +18,6 @@ let gitterDirectorySuffix = "opt/gitter";
|
|||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
gtk3
|
||||
libX11
|
||||
libXScrnSaver
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests
|
||||
, gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
|
||||
, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
|
||||
, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
|
||||
, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsa-lib
|
||||
, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa
|
||||
|
@ -56,7 +56,6 @@ in stdenv.mkDerivation rec {
|
|||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
gtk3
|
||||
libX11
|
||||
libXScrnSaver
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchurl, dpkg
|
||||
, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome
|
||||
, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome
|
||||
, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
|
||||
, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon, libxshmfence }:
|
||||
|
||||
|
@ -26,7 +26,6 @@ let
|
|||
libsecret
|
||||
libuuid
|
||||
|
||||
gnome2.GConf
|
||||
gdk-pixbuf
|
||||
gtk3
|
||||
libappindicator-gtk3
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
, freetype
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gnome2
|
||||
, gtk3
|
||||
, libGL
|
||||
, libappindicator-gtk3
|
||||
|
@ -105,7 +104,6 @@ let
|
|||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
gtk3
|
||||
libGL
|
||||
libappindicator-gtk3
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ stdenv, lib, fetchurl, dpkg
|
||||
, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig, freetype
|
||||
, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3, mesa
|
||||
, gdk-pixbuf, glib, pango, nspr, nss, gtk3, mesa
|
||||
, xorg, autoPatchelfHook, systemd, libnotify, libappindicator
|
||||
, makeWrapper
|
||||
}:
|
||||
|
@ -16,7 +16,6 @@ let deps = [
|
|||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome2.GConf
|
||||
pango
|
||||
gtk3
|
||||
libappindicator
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
{ lib, buildPythonPackage, fetchPypi, pythonOlder
|
||||
, aiohttp, webargs, fetchFromGitHub, callPackage
|
||||
}:
|
||||
|
||||
let
|
||||
apispec3 = callPackage ./apispec.nix {};
|
||||
jinja2 = callPackage ../../../../development/python2-modules/jinja2 {};
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "aiohttp-apispec";
|
||||
version = "unstable-2021-21-08";
|
||||
|
||||
# unstable so we can use latest webargs
|
||||
src = fetchFromGitHub {
|
||||
owner = "maximdanilchenko";
|
||||
repo = "aiohttp-apispec";
|
||||
rev = "cfa19646394480dda289f6b7af19b7d50f245d81";
|
||||
sha256 = "uEgDRAlMjTa4rvdE3fkORCHIlCLzxPJJ2/m4ZRU3eIQ=";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ aiohttp webargs apispec3 jinja2 ];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"aiohttp_apispec"
|
||||
];
|
||||
|
||||
# Requires pytest-sanic, currently broken in nixpkgs
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Build and document REST APIs with aiohttp and apispec";
|
||||
homepage = "https://github.com/maximdanilchenko/aiohttp-apispec/";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.viric ];
|
||||
};
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pyyaml
|
||||
, prance
|
||||
, marshmallow
|
||||
, pytestCheckHook
|
||||
, mock
|
||||
, openapi-spec-validator
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "apispec";
|
||||
version = "3.3.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "d23ebd5b71e541e031b02a19db10b5e6d5ef8452c552833e3e1afc836b40b1ad";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pyyaml
|
||||
prance
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
rm tests/test_ext_marshmallow.py
|
||||
'';
|
||||
|
||||
checkInputs = [
|
||||
openapi-spec-validator
|
||||
marshmallow
|
||||
mock
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"apispec"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification";
|
||||
homepage = "https://github.com/marshmallow-code/apispec";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.viric ];
|
||||
};
|
||||
}
|
|
@ -1,12 +1,15 @@
|
|||
{ stdenv, lib, fetchurl, python3, makeWrapper
|
||||
, libtorrent-rasterbar-1_2_x, qt5
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, python3
|
||||
, makeWrapper
|
||||
, libtorrent-rasterbar-1_2_x
|
||||
, qt5
|
||||
}:
|
||||
|
||||
let
|
||||
libtorrent = (python3.pkgs.toPythonModule (
|
||||
libtorrent-rasterbar-1_2_x.override { python = python3; })).python;
|
||||
|
||||
aiohttp-apispec = python3.pkgs.callPackage ./aiohttp-apispec.nix { };
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tribler";
|
||||
|
@ -14,7 +17,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz";
|
||||
sha256 = "1x45z23d1cqf0lai7wg5ki7gi2vba5hqk0swhggzplcjwma4wmh9";
|
||||
hash = "sha256-CVZOVOWS0fvfg1yDiWFRa4v4Tpzl8RMVBQ6z0Ib4hfQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -29,40 +32,36 @@ stdenv.mkDerivation rec {
|
|||
pythonPath = [
|
||||
libtorrent
|
||||
] ++ (with python3.pkgs; [
|
||||
twisted
|
||||
netifaces
|
||||
pycrypto
|
||||
pyasn1
|
||||
requests
|
||||
m2crypto
|
||||
pyqt5
|
||||
chardet
|
||||
cherrypy
|
||||
cryptography
|
||||
libnacl
|
||||
configobj
|
||||
decorator
|
||||
feedparser
|
||||
service-identity
|
||||
psutil
|
||||
pillow
|
||||
networkx
|
||||
pony
|
||||
lz4
|
||||
pyqtgraph
|
||||
pyyaml
|
||||
aiohttp
|
||||
aiohttp-apispec
|
||||
asynctest
|
||||
chardet
|
||||
cherrypy
|
||||
configobj
|
||||
cryptography
|
||||
decorator
|
||||
faker
|
||||
sentry-sdk
|
||||
feedparser
|
||||
libnacl
|
||||
lz4
|
||||
m2crypto
|
||||
netifaces
|
||||
networkx
|
||||
pillow
|
||||
pony
|
||||
psutil
|
||||
pyasn1
|
||||
pycrypto
|
||||
pyqt5
|
||||
pyqtgraph
|
||||
pytest-asyncio
|
||||
pytest-timeout
|
||||
asynctest
|
||||
pyyaml
|
||||
requests
|
||||
sentry-sdk
|
||||
service-identity
|
||||
twisted
|
||||
yappi
|
||||
|
||||
# there is a BTC feature, but it requires some unclear version of
|
||||
# bitcoinlib, so this doesn't work right now.
|
||||
# bitcoinlib
|
||||
]);
|
||||
|
||||
installPhase = ''
|
||||
|
@ -84,10 +83,10 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
maintainers = with maintainers; [ xvapx viric ];
|
||||
description = "Decentralised P2P filesharing client based on the Bittorrent protocol";
|
||||
homepage = "https://www.tribler.org/";
|
||||
description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
|
||||
license = licenses.lgpl21;
|
||||
license = licenses.lgpl21Plus;
|
||||
maintainers = with maintainers; [ xvapx viric ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
, qtsvg
|
||||
, qtlocation
|
||||
, qtdeclarative
|
||||
, qqc2-desktop-style
|
||||
|
||||
, kirigami2
|
||||
, kdbusaddons
|
||||
|
@ -38,14 +39,14 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "kalendar";
|
||||
version = "0.4.0";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "pim";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-j383I40lChsI/VOgceaHYGhE61p3SpvInUrkUV5HnHY=";
|
||||
sha256 = "sha256-kjtLVU+8wbIa7R6J1XOjuvS3AnJNngxNBCx24Dy1QzM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -60,6 +61,7 @@ mkDerivation rec {
|
|||
qtsvg
|
||||
qtlocation
|
||||
qtdeclarative
|
||||
qqc2-desktop-style
|
||||
|
||||
kirigami2
|
||||
kdbusaddons
|
||||
|
|
|
@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -17,14 +17,14 @@ let
|
|||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "14.32.6";
|
||||
version = "14.32.21";
|
||||
pname = "jmol";
|
||||
|
||||
src = let
|
||||
baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
|
||||
in fetchurl {
|
||||
url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
|
||||
sha256 = "sha256-b9E/IJfqeA8rBSQogb/ZVBMW3y9bc2dBj/BIl0HWFR8=";
|
||||
sha256 = "sha256-jJw/y6lQ0bvzOmwOhedufxK0Tuq9Pq6lIPZ97o03Zec=";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
|
|
@ -38,7 +38,8 @@ let
|
|||
| sh
|
||||
'';
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-1TWySkS8w7L6Q+V946kcLOnM4hL3fieFvLrF5BZAlh4=";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "sha256-GjBUwJxeyJA6vGrPQVtNpcHb4CJlNlY4kHt1PT21xjo=";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit pname version src sourceRoot;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Lua 5.3 needed and not available now
|
||||
#, luaSupport ? false, lua5
|
||||
, fortranSupport ? false, gfortran
|
||||
, buildDocumentation ? false, transfig, ghostscript, doxygen
|
||||
, buildDocumentation ? false, fig2dev, ghostscript, doxygen
|
||||
, buildJavaBindings ? false, openjdk
|
||||
, modelCheckingSupport ? false, libunwind, libevent, elfutils # Inside elfutils: libelf and libdw
|
||||
, debug ? false
|
||||
|
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
|||
nativeBuildInputs = [ cmake perl python3 valgrind ]
|
||||
++ optionals fortranSupport [ gfortran ]
|
||||
++ optionals buildJavaBindings [ openjdk ]
|
||||
++ optionals buildDocumentation [ transfig ghostscript doxygen ]
|
||||
++ optionals buildDocumentation [ fig2dev ghostscript doxygen ]
|
||||
++ optionals modelCheckingSupport [ libunwind libevent elfutils ];
|
||||
|
||||
#buildInputs = optional luaSupport lua5;
|
||||
|
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "delta";
|
||||
version = "0.11.3";
|
||||
version = "0.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dandavison";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-qpoXUzXRcsUi1WHZAYGgnEaNxBYEQAdkXAz7YPiPae8=";
|
||||
sha256 = "sha256-RlEPC9yyPYj974UVto7w+r24Lc5+Et1Ks49o+QTdrZQ=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-eds2W47+lOwO/HHKR+IjXOJOD8p1OYkk5qilDYTOUyk=";
|
||||
cargoSha256 = "sha256-4tOeYiRBF4qDUiI6yU093y0Ttq7+CdmGaA5eqdMjgow=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "2.5.0";
|
||||
version = "2.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-zQHFLXcsIFMqMCJp7+3Abc0WbSWKJyfAAE+TTJGRRmY=";
|
||||
sha256 = "sha256-T0xThL4VHzpNMQV8fTVnG7R+D9ol/Z7a4MYMXbkQ680=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-yMc3Czo7gTb2ZSWjj0yyId+qyro4mU1C+FOgEjZEhBY=";
|
||||
vendorSha256 = "sha256-tJg/vekGUYP4q1ZP5UV3+lXv6bht4doVV3IaGH+4uf8=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "git-machete";
|
||||
version = "3.5.0";
|
||||
version = "3.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "virtuslab";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-kR37TClFMkoe4e46g/omfwZCrQFr7gukW7I70WI9+dw=";
|
||||
sha256 = "sha256-7WaLUCJr29i7JW5YAJG1AuYnSLKRMpAEnCY2i4Zle+c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gitstatus";
|
||||
version = "1.5.3";
|
||||
version = "1.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "romkatv";
|
||||
repo = "gitstatus";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ZTpnT4kuntHdMWK7c/pHS6mJrAHF9T51DydXnWXj8Z0=";
|
||||
sha256 = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk=";
|
||||
};
|
||||
|
||||
buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
|
||||
|
|
|
@ -16,7 +16,7 @@ libgit2.overrideAttrs (oldAttrs: {
|
|||
src = fetchFromGitHub {
|
||||
owner = "romkatv";
|
||||
repo = "libgit2";
|
||||
rev = "tag-5860a42d19bcd226cb6eff2dcbfcbf155d570c73";
|
||||
sha256 = "sha256-OdGLNGOzXbWQGqw5zYM1RhU4Z2yRXi9cpAt7Vn9+j5I=";
|
||||
rev = "tag-0ad3d776aa86dd607dc86dcd7f77ad3ed7ebec61";
|
||||
sha256 = "sha256-mXCmspM3fqI14DF9sAIMH5vGdMMjWkdDjdME4EiQuqY=";
|
||||
};
|
||||
})
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoPackage rec {
|
||||
pname = "git-lfs";
|
||||
version = "3.0.2";
|
||||
version = "3.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "git-lfs";
|
||||
repo = "git-lfs";
|
||||
sha256 = "0k2pzbhd95xixh5aqdwf5pafilg85wl46d04xbb4lx6k3gkfv0f3";
|
||||
sha256 = "sha256-xXE0BCO1Ur5qhn0gOKOqaSGKNeXNEHD+pZCz1SoPD3A=";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/git-lfs/git-lfs";
|
||||
|
|
|
@ -3,17 +3,21 @@
|
|||
, fetchurl
|
||||
, bison
|
||||
, cdrtools
|
||||
, docbook5
|
||||
, docbook_xml_dtd_412
|
||||
, docbook-xsl-nons
|
||||
, dvdauthor
|
||||
, dvdplusrwtools
|
||||
, ffmpeg
|
||||
, flex
|
||||
, fontconfig
|
||||
, gettext
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, libexif
|
||||
, makeWrapper
|
||||
, libjpeg
|
||||
, pkg-config
|
||||
, wxGTK30
|
||||
, wrapGAppsHook
|
||||
, wxGTK30-gtk3 # crash with wxGTK30 with GTK2 compat
|
||||
, wxSVG
|
||||
, xine-ui
|
||||
, xmlto
|
||||
|
@ -37,43 +41,50 @@ in stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
bison
|
||||
docbook_xml_dtd_412
|
||||
docbook-xsl-nons
|
||||
flex
|
||||
gettext
|
||||
gobject-introspection
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
xmlto
|
||||
zip
|
||||
];
|
||||
buildInputs = [
|
||||
bison
|
||||
cdrtools
|
||||
docbook5
|
||||
dvdauthor
|
||||
dvdplusrwtools
|
||||
ffmpeg
|
||||
flex
|
||||
fontconfig
|
||||
gettext
|
||||
glib
|
||||
libexif
|
||||
makeWrapper
|
||||
libjpeg
|
||||
wxSVG
|
||||
wxGTK30
|
||||
wxGTK30-gtk3
|
||||
xine-ui
|
||||
xmlto
|
||||
zip
|
||||
]
|
||||
++ optionals dvdisasterSupport [ dvdisaster ]
|
||||
++ optionals udevSupport [ udev ]
|
||||
++ optionals dbusSupport [ dbus ]
|
||||
++ optionals thumbnailSupport [ libgnomeui ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = let
|
||||
binPath = makeBinPath [
|
||||
preFixup = let
|
||||
binPath = makeBinPath ([
|
||||
cdrtools
|
||||
dvdauthor
|
||||
dvdplusrwtools
|
||||
]; in
|
||||
] ++ optionals dvdisasterSupport [ dvdisaster ]);
|
||||
in
|
||||
''
|
||||
wrapProgram $out/bin/dvdstyler --prefix PATH ":" "${binPath}"
|
||||
'';
|
||||
gappsWrapperArgs+=(
|
||||
--prefix PATH : "${binPath}"
|
||||
)
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.dvdstyler.org/";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obs-multi-rtmp";
|
||||
version = "0.2.7.1";
|
||||
version = "0.2.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sorayuki";
|
||||
repo = "obs-multi-rtmp";
|
||||
rev = version;
|
||||
sha256 = "sha256-pnSIbAWGufcWIARXpX/zwA/Ff35lrinFaMIdFY00c4Y=";
|
||||
sha256 = "sha256-OhatuSlDJ2VDNorM4QfoKPYKyv5YpN8EnIelLdBTlZ0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, curl
|
||||
, libjpeg
|
||||
, libpng
|
||||
|
@ -22,7 +24,17 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-sjgtB1xysbEAOeDpAxDMhsjZEDWMU1We2C09WEIB9cU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# Fix build on aarch64
|
||||
name = "xine-ui_FTBS_aarch64.patch";
|
||||
url = "https://salsa.debian.org/debian/xine-ui/-/raw/b2f04f64947a8975a805950e7e67b15cb44007ef/debian/patches/backport/0003-Fix-build.patch";
|
||||
sha256 = "03f8nkm7q11v5vssl1bj500ja4ljz4y752mfk22k2g4djkwimx62";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
shared-mime-info
|
||||
];
|
||||
|
@ -57,7 +69,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://xinehq.de/";
|
||||
homepage = "http://xine.sourceforge.net/";
|
||||
description = "Xlib-based frontend for Xine video player";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
|
|
41
pkgs/applications/virtualization/podman-tui/default.nix
Normal file
41
pkgs/applications/virtualization/podman-tui/default.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
{ lib
|
||||
, pkg-config
|
||||
, fetchFromGitHub
|
||||
, buildGoModule
|
||||
, btrfs-progs
|
||||
, gpgme
|
||||
, lvm2
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "podman-tui";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
repo = "podman-tui";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qPQSu6l1WkX6sddVr5h1DqKQCyw6vy8S6lXC/ZO4DL8=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
btrfs-progs
|
||||
gpgme
|
||||
lvm2
|
||||
];
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/containers/podman-tui";
|
||||
description = "Podman Terminal UI";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ aaronjheng ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -18,7 +18,7 @@ config:
|
|||
|
||||
# Documentation
|
||||
# python2Packages.markdown
|
||||
, transfig, ghostscript, texinfo, pandoc
|
||||
, fig2dev, ghostscript, texinfo, pandoc
|
||||
|
||||
, binutils-unwrapped
|
||||
|
||||
|
@ -81,7 +81,7 @@ stdenv.mkDerivation (rec {
|
|||
python2Packages.wrapPython
|
||||
|
||||
# Documentation
|
||||
python2Packages.markdown transfig ghostscript texinfo pandoc
|
||||
python2Packages.markdown fig2dev ghostscript texinfo pandoc
|
||||
|
||||
# Others
|
||||
] ++ (concatMap (x: x.buildInputs or []) (attrValues config.xenfiles))
|
||||
|
|
|
@ -59,10 +59,9 @@ switch arg [
|
|||
(optionalAttrs has-owner { owner = head splitted; }));
|
||||
}; }
|
||||
{ case = isAttrs;
|
||||
out = let
|
||||
{ version = arg.version or "dev";
|
||||
src = (arg.fetcher or fetcher) (location // (arg.location or {}));
|
||||
}; }
|
||||
out = {
|
||||
version = arg.version or "dev";
|
||||
src = (arg.fetcher or fetcher) (location // (arg.location or {})); }; }
|
||||
{ case = isPath;
|
||||
out = {
|
||||
version = "dev" ;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
let
|
||||
pname = "gandom-fonts";
|
||||
version = "0.6";
|
||||
version = "0.8";
|
||||
in fetchFromGitHub {
|
||||
name = "${pname}-${version}";
|
||||
owner = "rastikerdar";
|
||||
|
@ -13,7 +13,7 @@ in fetchFromGitHub {
|
|||
tar xf $downloadedFile --strip=1
|
||||
find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/gandom-fonts {} \;
|
||||
'';
|
||||
sha256 = "0zsq6s9ziyb5jz0v8aj00dlxd1aly0ibxgszd05dfvykmgz051lc";
|
||||
sha256 = "sha256-EDS3wwKwe2BIcOCxu7DxkVLCoEoTPP31k5ID51lqn3M=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/rastikerdar/gandom-font";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
let
|
||||
pname = "montserrat";
|
||||
version = "7.210";
|
||||
version = "7.222";
|
||||
in fetchFromGitHub {
|
||||
name = "${pname}-${version}";
|
||||
owner = "JulietaUla";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-C6T0Iz1rFC+EsKFJRil2jGTMQ4X7wR80E3eORL5qi0U=";
|
||||
sha256 = "sha256-MeNnc1e5X5f0JyaLY6fX22rytHkvL++eM2ygsdlGMv0=";
|
||||
|
||||
postFetch = ''
|
||||
tar xf $downloadedFile --strip 1
|
||||
|
|
35
pkgs/data/themes/artim-dark/default.nix
Normal file
35
pkgs/data/themes/artim-dark/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenvNoCC, fetchFromGitHub }:
|
||||
|
||||
stdenvNoCC.mkDerivation rec{
|
||||
pname = "artim-dark";
|
||||
version = "unstable-2021-12-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner="Mrcuve0";
|
||||
repo="Aritim-Dark";
|
||||
rev = "99cd330a1ab4814260e28f15431e3338a1103668";
|
||||
hash = "sha256-xGnw5KpXbVyDdTuAkav1Hec6bitpZdPzZk0xv7WHTdY=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/plasma/desktoptheme
|
||||
cp -R KDE/plasmaTheme/Aritim-Dark* $out/share/plasma/desktoptheme
|
||||
mkdir -p $out/share/aurorae/themes
|
||||
cp -R KDE/auroraeTheme $out/share/aurorae/themes/Aritim-Dark
|
||||
mkdir -p $out/share/color-schemes
|
||||
cp -R KDE/colorScheme/*.colors $out/share/color-schemes
|
||||
mkdir -p $out/share/plasma/look-and-feel
|
||||
cp -R KDE/globalTheme $out/share/plasma/look-and-feel/Aritim-Dark
|
||||
mkdir -p $out/share/themes
|
||||
cp -R GTK $out/share/themes/Aritim-Dark
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Dark theme deeply inspired by the Ayu Dark color palette";
|
||||
homepage = "https://github.com/Mrcuve0/Aritim-Dark";
|
||||
license = with lib.licenses; [ gpl3Only ];
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ lib.maintainers.pasqui23 ];
|
||||
};
|
||||
}
|
|
@ -56,11 +56,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "efl";
|
||||
version = "1.26.1";
|
||||
version = "1.26.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0hm6i1f2g4mwj726rc6na38xhys1plbv9swrlc9hrpa87mz6gac6";
|
||||
sha256 = "071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -21,11 +21,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "enlightenment";
|
||||
version = "0.25.1";
|
||||
version = "0.25.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0i1424vsc929h36hx04646pbrjiya6nc1nqr6s15xwvfv7imzw1c";
|
||||
sha256 = "1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-maps";
|
||||
version = "41.2";
|
||||
version = "41.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-gYIbTK/GQc1QDXOzMMY85aBahPBDBxbWPoizyuqs/Qw=";
|
||||
sha256 = "sha256-40CxP0b+C31bD48BQTKR3c2HDHSlw4+iTKwfWF5wOT4=";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
|
|
@ -27,14 +27,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-todo";
|
||||
version = "unstable-2022-01-01";
|
||||
version = "unstable-2022-02-01";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "gnome-todo";
|
||||
rev = "4a6be8c38510d909a9f94ec34c4da1f31ac9f1ab";
|
||||
sha256 = "5UGo9vMb8scPWK91gftYOjqkJs9tGMiH1lqyEqedF2A=";
|
||||
rev = "2cd071ad35efdef72038730d658f013dd0fc7daa";
|
||||
sha256 = "FMG9ju+LsglAvbBhdgDF+2ZxB633EwnatwCFgW+VOTk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -35,11 +35,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-initial-setup";
|
||||
version = "41.2";
|
||||
version = "41.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "GTr79qMILaCjKncU8ejVKo20Vycpde0vNlQ2SjM5Gz8=";
|
||||
sha256 = "luzS2252xROxjGBtwmK7UjIoxKrtvtageBHlaP1dtkI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-extension-arcmenu";
|
||||
version = "20";
|
||||
version = "21";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "arcmenu";
|
||||
repo = "ArcMenu";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HjhOZfXld0gnKOAazT8qbI0Jdq6NY/FsrhzAY9uxxMg=";
|
||||
sha256 = "sha256-A47nX2fmFcJfWvQUJZsFGK1h4GPkf3QBB0BALlr9ZlM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -1,95 +1,101 @@
|
|||
{ lib, stdenv, pkgs
|
||||
, haskell, haskellPackages, nodejs-14_x
|
||||
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
|
||||
# Rust dependecies
|
||||
, curl, rustPlatform, openssl, pkg-config, Security, darwin
|
||||
}:
|
||||
{ pkgs, lib }:
|
||||
|
||||
let
|
||||
|
||||
# To controll nodejs version we pass down
|
||||
nodejs = nodejs-14_x;
|
||||
nodejs = pkgs.nodejs-14_x;
|
||||
|
||||
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
|
||||
fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { };
|
||||
|
||||
hsPkgs = haskellPackages.override {
|
||||
overrides = self: super: with haskell.lib.compose; with lib;
|
||||
let elmPkgs = rec {
|
||||
elm = overrideCabal (drv: {
|
||||
# sadly with parallelism most of the time breaks compilation
|
||||
enableParallelBuilding = false;
|
||||
preConfigure = self.fetchElmDeps {
|
||||
elmPackages = (import ./packages/elm-srcs.nix);
|
||||
elmVersion = drv.version;
|
||||
registryDat = ./registry.dat;
|
||||
};
|
||||
buildTools = drv.buildTools or [] ++ [ makeWrapper ];
|
||||
jailbreak = true;
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/elm \
|
||||
--prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
|
||||
'';
|
||||
hsPkgs = self: pkgs.haskellPackages.override {
|
||||
overrides = self: super: with pkgs.haskell.lib.compose; with lib;
|
||||
let elmPkgs = rec {
|
||||
elm = overrideCabal (drv: {
|
||||
# sadly with parallelism most of the time breaks compilation
|
||||
enableParallelBuilding = false;
|
||||
preConfigure = fetchElmDeps {
|
||||
elmPackages = (import ./packages/elm-srcs.nix);
|
||||
elmVersion = drv.version;
|
||||
registryDat = ./registry.dat;
|
||||
};
|
||||
buildTools = drv.buildTools or [] ++ [ pkgs.makeWrapper ];
|
||||
jailbreak = true;
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/elm \
|
||||
--prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
|
||||
'';
|
||||
|
||||
description = "A delightful language for reliable webapps";
|
||||
homepage = "https://elm-lang.org/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ domenkozar turbomack ];
|
||||
}) (self.callPackage ./packages/elm.nix { });
|
||||
description = "A delightful language for reliable webapps";
|
||||
homepage = "https://elm-lang.org/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ domenkozar turbomack ];
|
||||
}) (self.callPackage ./packages/elm.nix { });
|
||||
|
||||
/*
|
||||
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
|
||||
`package/nix/build.sh`
|
||||
*/
|
||||
elm-format = justStaticExecutables (overrideCabal (drv: {
|
||||
jailbreak = true;
|
||||
/*
|
||||
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
|
||||
`package/nix/build.sh`
|
||||
*/
|
||||
elm-format = justStaticExecutables (overrideCabal (drv: {
|
||||
jailbreak = true;
|
||||
|
||||
description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
|
||||
homepage = "https://github.com/avh4/elm-format";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ avh4 turbomack ];
|
||||
}) (self.callPackage ./packages/elm-format.nix {}));
|
||||
description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
|
||||
homepage = "https://github.com/avh4/elm-format";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ avh4 turbomack ];
|
||||
}) (self.callPackage ./packages/elm-format.nix {}));
|
||||
|
||||
elmi-to-json = justStaticExecutables (overrideCabal (drv: {
|
||||
prePatch = ''
|
||||
substituteInPlace package.yaml --replace "- -Werror" ""
|
||||
hpack
|
||||
'';
|
||||
jailbreak = true;
|
||||
elmi-to-json = justStaticExecutables (overrideCabal (drv: {
|
||||
prePatch = ''
|
||||
substituteInPlace package.yaml --replace "- -Werror" ""
|
||||
hpack
|
||||
'';
|
||||
jailbreak = true;
|
||||
|
||||
description = "Tool that reads .elmi files (Elm interface file) generated by the elm compiler";
|
||||
homepage = "https://github.com/stoeffel/elmi-to-json";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
}) (self.callPackage ./packages/elmi-to-json.nix {}));
|
||||
description = "Tool that reads .elmi files (Elm interface file) generated by the elm compiler";
|
||||
homepage = "https://github.com/stoeffel/elmi-to-json";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
}) (self.callPackage ./packages/elmi-to-json.nix {}));
|
||||
|
||||
elm-instrument = justStaticExecutables (overrideCabal (drv: {
|
||||
prePatch = ''
|
||||
sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
|
||||
'';
|
||||
jailbreak = true;
|
||||
# Tests are failing because of missing instances for Eq and Show type classes
|
||||
doCheck = false;
|
||||
elm-instrument = justStaticExecutables (overrideCabal (drv: {
|
||||
prePatch = ''
|
||||
sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
|
||||
'';
|
||||
jailbreak = true;
|
||||
# Tests are failing because of missing instances for Eq and Show type classes
|
||||
doCheck = false;
|
||||
|
||||
description = "Instrument Elm code as a preprocessing step for elm-coverage";
|
||||
homepage = "https://github.com/zwilias/elm-instrument";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
}) (self.callPackage ./packages/elm-instrument.nix {}));
|
||||
description = "Instrument Elm code as a preprocessing step for elm-coverage";
|
||||
homepage = "https://github.com/zwilias/elm-instrument";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
}) (self.callPackage ./packages/elm-instrument.nix {}));
|
||||
|
||||
inherit fetchElmDeps;
|
||||
elmVersion = elmPkgs.elm.version;
|
||||
};
|
||||
in elmPkgs // {
|
||||
inherit elmPkgs;
|
||||
inherit fetchElmDeps;
|
||||
elmVersion = elmPkgs.elm.version;
|
||||
};
|
||||
in elmPkgs // {
|
||||
inherit elmPkgs;
|
||||
|
||||
# Needed for elm-format
|
||||
indents = self.callPackage ./packages/indents.nix {};
|
||||
bimap = self.callPackage ./packages/bimap.nix {};
|
||||
avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {});
|
||||
elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {});
|
||||
elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {};
|
||||
elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {};
|
||||
};
|
||||
# Needed for elm-format
|
||||
indents = self.callPackage ./packages/indents.nix {};
|
||||
bimap = self.callPackage ./packages/bimap.nix {};
|
||||
avh4-lib = doJailbreak (self.callPackage ./packages/avh4-lib.nix {});
|
||||
elm-format-lib = doJailbreak (self.callPackage ./packages/elm-format-lib.nix {});
|
||||
elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {};
|
||||
elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {};
|
||||
};
|
||||
};
|
||||
|
||||
nodePkgs = pkgs.callPackage ./packages/node-composition.nix {
|
||||
inherit pkgs;
|
||||
nodejs = pkgs.nodejs-14_x;
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
};
|
||||
|
||||
in lib.makeScope pkgs.newScope (self: with self; {
|
||||
inherit fetchElmDeps nodejs;
|
||||
|
||||
/* Node/NPM based dependecies can be upgraded using script `packages/generate-node-packages.sh`.
|
||||
|
||||
* Packages which rely on `bin-wrap` will fail by default
|
||||
|
@ -98,110 +104,83 @@ let
|
|||
* Packages which depend on npm installation of elm can be patched using
|
||||
`patchNpmElm` function also defined in `packages/lib.nix`.
|
||||
*/
|
||||
elmLib = import ./packages/lib.nix {
|
||||
inherit lib writeScriptBin stdenv;
|
||||
inherit (hsPkgs.elmPkgs) elm;
|
||||
elmLib = let
|
||||
hsElmPkgs = hsPkgs self;
|
||||
in import ./packages/lib.nix {
|
||||
inherit lib;
|
||||
inherit (pkgs) writeScriptBin stdenv;
|
||||
inherit (hsElmPkgs.elmPkgs) elm;
|
||||
};
|
||||
|
||||
elmRustPackages = {
|
||||
elm-json = import ./packages/elm-json.nix {
|
||||
inherit curl lib rustPlatform fetchurl openssl stdenv pkg-config Security;
|
||||
} // {
|
||||
meta = with lib; {
|
||||
description = "Install, upgrade and uninstall Elm dependencies";
|
||||
homepage = "https://github.com/zwilias/elm-json";
|
||||
elm-json = callPackage ./packages/elm-json.nix { };
|
||||
|
||||
elm-test-rs = callPackage ./packages/elm-test-rs.nix { };
|
||||
|
||||
elm-test = nodePkgs.elm-test // {
|
||||
meta = with lib; nodePkgs.elm-test.meta // {
|
||||
description = "Runs elm-test suites from Node.js";
|
||||
homepage = "https://github.com/rtfeldman/node-test-runner";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
} // (hsPkgs self).elmPkgs // (with elmLib; with (hsPkgs self).elmPkgs; {
|
||||
elm-verify-examples = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples // {
|
||||
meta = with lib; nodePkgs.elm-verify-examples.meta // {
|
||||
description = "Verify examples in your docs";
|
||||
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-coverage = let
|
||||
patched = patchNpmElm (patchBinwrap [elmi-to-json] nodePkgs.elm-coverage);
|
||||
in patched.override (old: {
|
||||
# Symlink Elm instrument binary
|
||||
preRebuild = (old.preRebuild or "") + ''
|
||||
# Noop custom installation script
|
||||
sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
|
||||
|
||||
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
|
||||
# in case of just this package
|
||||
# TODO: investigate
|
||||
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
|
||||
'';
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
mkdir -p unpacked_bin
|
||||
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
|
||||
'';
|
||||
meta = with lib; nodePkgs.elm-coverage.meta // {
|
||||
description = "Work in progress - Code coverage tooling for Elm";
|
||||
homepage = "https://github.com/zwilias/elm-coverage";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
});
|
||||
|
||||
create-elm-app = patchNpmElm
|
||||
nodePkgs.create-elm-app // {
|
||||
meta = with lib; nodePkgs.create-elm-app.meta // {
|
||||
description = "Create Elm apps with no build configuration";
|
||||
homepage = "https://github.com/halfzebra/create-elm-app";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-test-rs = import ./packages/elm-test-rs.nix {
|
||||
inherit lib rustPlatform fetchurl openssl stdenv Security darwin;
|
||||
} // {
|
||||
meta = with lib; {
|
||||
description = "Fast and portable executable to run your Elm tests";
|
||||
homepage = "https://github.com/mpizenberg/elm-test-rs";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.jpagex ];
|
||||
elm-review =
|
||||
nodePkgs.elm-review // {
|
||||
meta = with lib; nodePkgs.elm-review.meta // {
|
||||
description = "Analyzes Elm projects, to help find mistakes before your users find them";
|
||||
homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
elmNodePackages = with elmLib;
|
||||
let
|
||||
nodePkgs = import ./packages/node-composition.nix {
|
||||
inherit nodejs pkgs;
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
};
|
||||
in with hsPkgs.elmPkgs; {
|
||||
|
||||
elm-test =
|
||||
nodePkgs.elm-test // {
|
||||
meta = with lib; {
|
||||
description = "Runs elm-test suites from Node.js";
|
||||
homepage = "https://github.com/rtfeldman/node-test-runner";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-verify-examples = patchBinwrap [elmi-to-json]
|
||||
nodePkgs.elm-verify-examples // {
|
||||
meta = with lib; {
|
||||
description = "Verify examples in your docs";
|
||||
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-coverage =
|
||||
let patched = patchNpmElm (patchBinwrap [elmi-to-json] nodePkgs.elm-coverage);
|
||||
in patched.override (old: {
|
||||
# Symlink Elm instrument binary
|
||||
preRebuild = (old.preRebuild or "") + ''
|
||||
# Noop custom installation script
|
||||
sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
|
||||
|
||||
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
|
||||
# in case of just this package
|
||||
# TODO: investigate
|
||||
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
|
||||
'';
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
mkdir -p unpacked_bin
|
||||
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "Work in progress - Code coverage tooling for Elm";
|
||||
homepage = "https://github.com/zwilias/elm-coverage";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
});
|
||||
|
||||
create-elm-app = patchNpmElm
|
||||
nodePkgs.create-elm-app // {
|
||||
meta = with lib; {
|
||||
description = "Create Elm apps with no build configuration";
|
||||
homepage = "https://github.com/halfzebra/create-elm-app";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-review =
|
||||
nodePkgs.elm-review // {
|
||||
meta = with lib; {
|
||||
description = "Analyzes Elm projects, to help find mistakes before your users find them";
|
||||
homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
|
||||
meta = with lib; {
|
||||
meta = with lib; nodePkgs."@elm-tooling/elm-language-server".meta // {
|
||||
description = "Language server implementation for Elm";
|
||||
homepage = "https://github.com/elm-tooling/elm-language-server";
|
||||
license = licenses.mit;
|
||||
|
@ -210,7 +189,7 @@ let
|
|||
};
|
||||
|
||||
elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
|
||||
meta = with lib; {
|
||||
meta = with lib; nodePkgs."elm-optimize-level-2".meta // {
|
||||
description = "A second level of optimization for the Javascript that the Elm Compiler produces";
|
||||
homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
|
||||
license = licenses.bsd3;
|
||||
|
@ -219,8 +198,6 @@ let
|
|||
};
|
||||
|
||||
inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
|
||||
};
|
||||
})
|
||||
)
|
||||
|
||||
in hsPkgs.elmPkgs // elmNodePackages // elmRustPackages // {
|
||||
lib = elmLib;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
{ lib, curl, rustPlatform, fetchurl, openssl, stdenv, pkg-config, Security }:
|
||||
{ lib
|
||||
, curl
|
||||
, rustPlatform
|
||||
, fetchurl
|
||||
, openssl
|
||||
, stdenv
|
||||
, pkg-config
|
||||
, darwin
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "elm-json";
|
||||
version = "0.2.10";
|
||||
|
@ -12,10 +21,19 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ curl openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
|
||||
buildInputs = [
|
||||
curl openssl
|
||||
] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
|
||||
|
||||
cargoSha256 = "sha256:01zasrqf1va58i52s3kwdkj1rnwy80gv00xi6npfshjirj3ix07f";
|
||||
|
||||
# Tests perform networking and therefore can't work in sandbox
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Install, upgrade and uninstall Elm dependencies";
|
||||
homepage = "https://github.com/zwilias/elm-json";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ lib, rustPlatform, fetchurl, openssl, stdenv, Security, darwin }:
|
||||
{ lib, rustPlatform, fetchurl, openssl, stdenv, darwin }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "elm-test-rs";
|
||||
version = "2.0";
|
||||
|
@ -8,11 +9,23 @@ rustPlatform.buildRustPackage rec {
|
|||
sha256 = "sha256:1manr42w613r9vyji7pxx5gb08jcgkdxv29qqylrqlwxa8d5dcid";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security darwin.apple_sdk.frameworks.CoreServices ];
|
||||
buildInputs = lib.optionals (!stdenv.isDarwin) [
|
||||
openssl
|
||||
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Security
|
||||
CoreServices
|
||||
]);
|
||||
|
||||
cargoSha256 = "sha256:1dpdlzv96kpc25yf5jgsz9qldghyw35x382qpxhkadkn5dryzjvd";
|
||||
verifyCargoDeps = true;
|
||||
|
||||
# Tests perform networking and therefore can't work in sandbox
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fast and portable executable to run your Elm tests";
|
||||
homepage = "https://github.com/mpizenberg/elm-test-rs";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.jpagex ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
, snap-core, snap-server, lib, template-haskell, time
|
||||
, unordered-containers, utf8-string, vector, zip-archive
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
pname = "elm";
|
||||
version = "0.19.1";
|
||||
|
|
|
@ -28,6 +28,10 @@ stdenv.mkDerivation {
|
|||
prePatch = lib.optionalString (check-ocaml-version "4.02") ''
|
||||
substituteInPlace myocamlbuild.pre.ml \
|
||||
--replace '@1..3' '@1..2+3'
|
||||
''
|
||||
# Compatibility with PPrint ≥ 20220103
|
||||
+ ''
|
||||
substituteInPlace typing/Fact.ml --replace PPrintOCaml PPrint.OCaml
|
||||
'';
|
||||
|
||||
createFindlibDestdir = true;
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tvm";
|
||||
version = "0.7.0";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apache";
|
||||
repo = "incubator-tvm";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "0qflpd3lw0jslyk5lqpv2v42lkqs8mkvnn6i3fdms32iskdfk6p5";
|
||||
sha256 = "sha256-fv2hhPGbr/AbwuN8rAF9PI/QTTqxNgwjYl9arg5GjKY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rakudo";
|
||||
version = "2021.12";
|
||||
version = "2022.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
|
||||
sha256 = "sha256-f1PSxxONE6sBaS1b19vCjz8p7Ya9ltUoCFb1WhqwVAY=";
|
||||
sha256 = "sha256-am6dvMbZoWEKNMbsZ+LT9pTXsz6eCg8iRUMIn6f3EzI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ removeReferencesTo ];
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "moarvm";
|
||||
version = "2021.12";
|
||||
version = "2022.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz";
|
||||
sha256 = "sha256-1Ju+sQ2WFsLYen+t0ca7elzhHBnHxEu7i+928ltQXE8=";
|
||||
sha256 = "sha256-T5PNzmuKVloyKCuzjMlxzv63H10CLIUMM47oFFV07pY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nqp";
|
||||
version = "2021.12";
|
||||
version = "2022.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
|
||||
sha256 = "sha256-Dh1TT9HuYaTIByMJuvvARmDprnLYhhjaoOjxUCLw2RM=";
|
||||
sha256 = "sha256-JdPJl0XNhPQEmpvZzya7XcgXklq6r+ccm9tohBzbGLE=";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ];
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, stdenv, fetchurl, lv2, pkg-config, python3, serd, sord, sratom, wafHook }:
|
||||
{ lib, stdenv, fetchurl, lv2, pkg-config, python3, serd, sord, sratom, wafHook
|
||||
|
||||
# test derivations
|
||||
, pipewire
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lilv";
|
||||
version = "0.24.12";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.drobilla.net/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-JqN3kIkMnB+DggO0f1sjIDNP6SwCpNJuu+Jmnb12kGE=";
|
||||
|
@ -15,6 +21,10 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [ serd sord sratom ];
|
||||
propagatedBuildInputs = [ lv2 ];
|
||||
|
||||
passthru.tests = {
|
||||
inherit pipewire;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://drobilla.net/software/lilv";
|
||||
description = "A C library to make the use of LV2 plugins";
|
||||
|
|
|
@ -31,8 +31,8 @@ assert enableShared || enableStatic;
|
|||
assert enablePython -> stdenv.hostPlatform == stdenv.buildPlatform;
|
||||
assert enableNumpy -> enablePython;
|
||||
|
||||
# Boost <1.69 can't be build with clang >8, because pth was removed
|
||||
assert with lib; ((toolset == "clang" && !(versionOlder stdenv.cc.version "8.0.0")) -> !(versionOlder version "1.69"));
|
||||
# Boost <1.69 can't be built on linux with clang >8, because pth was removed
|
||||
assert with lib; ((stdenv.isLinux && toolset == "clang" && !(versionOlder stdenv.cc.version "8.0.0")) -> !(versionOlder version "1.69"));
|
||||
|
||||
with lib;
|
||||
let
|
||||
|
|
|
@ -5,13 +5,11 @@
|
|||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "libindicator-gtk${gtkVersion}-${version}";
|
||||
version = "${versionMajor}.${versionMinor}";
|
||||
versionMajor = "12.10";
|
||||
versionMinor = "1";
|
||||
pname = "libindicator-gtk${gtkVersion}";
|
||||
version = "12.10.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/${versionMajor}/${version}/+download/libindicator-${version}.tar.gz";
|
||||
url = "https://launchpad.net/libindicator/${lib.versions.majorMinor version}/${version}/+download/libindicator-${version}.tar.gz";
|
||||
sha256 = "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f";
|
||||
};
|
||||
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libplctag";
|
||||
version = "2.4.12";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libplctag";
|
||||
repo = "libplctag";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1gytTzGdB4Zq0LqbilNHbeA8wDmQ3dw36nocmjBeu+8=";
|
||||
sha256 = "sha256-Xzdljx08aXwD6pE1f/3YBAjvrSzvs2fcXmmLH04GFyg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{lib, stdenv, fetchFromGitHub, cmake}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.3.2";
|
||||
version = "1.4.2";
|
||||
pname = "nanoflann";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jlblancoc";
|
||||
repo = "nanoflann";
|
||||
rev = "v${version}";
|
||||
sha256 = "0lq1zqwjvk8wv15hd7aw57jsqbvv45cwb8ngdh1d2iyw5rvnbhsn";
|
||||
sha256 = "sha256-znIX1S0mfOqLYPIcyVziUM1asBjENPEAdafLud1CfFI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "notcurses";
|
||||
version = "3.0.3";
|
||||
version = "3.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dankamongmen";
|
||||
repo = "notcurses";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jIUIr7roX9ciYkNmvS9m14RdNgFTElwrKadYzi0lCP0=";
|
||||
sha256 = "sha256-DGAE3XomAoRhAkKUCxmr8R0dhNXeusSgETzmsbV1RhQ=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pkcs11-helper";
|
||||
version = "1.27";
|
||||
version = "1.28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenSC";
|
||||
repo = "pkcs11-helper";
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "1idrqip59bqzcgddpnk2inin5n5yn4y0dmcyaggfpdishraiqgd5";
|
||||
sha256 = "sha256-gy04f62TX42mW4hKD/jTZXTpz9v6gQXNrY/pv8Ie4p0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/OpenSC/pkcs11-helper";
|
||||
license = with licenses; [ bsd3 gpl2 ];
|
||||
license = with licenses; [ bsd3 gpl2Only ];
|
||||
description = "Library that simplifies the interaction with PKCS#11 providers";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "primesieve";
|
||||
version = "7.7";
|
||||
version = "7.8";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||
owner = "kimwalisch";
|
||||
repo = "primesieve";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1Gfo00yaf7zHzCLfu/abWqeM0qBuLu+f+lowFFnWFxY=";
|
||||
sha256 = "sha256-M35CP/xEyC7mEh84kaGsgfsDI9fnanHraNPgTvpqimI=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, stdenv, fetchsvn, SDL, autoconf, automake, libtool, gtk2, m4, pkg-config, libGLU, libGL, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "smpeg-svn${version}";
|
||||
pname = "smpeg-svn";
|
||||
version = "390";
|
||||
|
||||
src = fetchsvn {
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, aalib
|
||||
, alsa-lib
|
||||
, autoconf
|
||||
, ffmpeg
|
||||
, flac
|
||||
, libGL
|
||||
|
@ -33,7 +35,23 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-71GyHRDdoQRfp9cRvZFxz9rwpaKHQjO88W/98o7AcAU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with libcaca 0.99.beta20 ; remove for xine-lib 1.2.12
|
||||
(fetchpatch {
|
||||
name = "xine-lib-libcaca-0.99.beta20-fix.patch";
|
||||
url = "https://raw.githubusercontent.com/archlinux/svntogit-community/209ae10d59d29c13633b75aa327cf937f3ff0725/trunk/010-xine-lib-libcaca-0.99.beta20-fix.patch";
|
||||
sha256 = "088141x1yp84y09x3s01v21yzas2bwavxz9v30z5hyq6c3syrmgr";
|
||||
})
|
||||
# Fix build with ffmpeg 5.0 ; remove for xine-lib 1.2.12
|
||||
(fetchpatch {
|
||||
name = "xine-lib-ffmpeg-5.0-fix.patch";
|
||||
url = "https://raw.githubusercontent.com/archlinux/svntogit-community/209ae10d59d29c13633b75aa327cf937f3ff0725/trunk/020-xine-lib-ffmpeg-5.0-fix.patch";
|
||||
sha256 = "15ff15bqxq1nqqazfbmfq6swrdjr2raxyq7hx6k0r61izhf0g8ld";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
pkg-config
|
||||
perl
|
||||
];
|
||||
|
@ -71,7 +89,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.xinehq.de/";
|
||||
homepage = "http://xine.sourceforge.net/";
|
||||
description = "A high-performance, portable and reusable multimedia playback engine";
|
||||
license = with licenses; [ gpl2Plus lgpl2Plus ];
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
## How to update
|
||||
|
||||
1. bump version of `@google/clasp` in [node-packages.json](./node-packages.json)
|
||||
2. run [generate.sh](./generate.sh)
|
||||
3. set the same version in [default.nix](./default.nix)
|
||||
4. build and test it
|
|
@ -1,19 +0,0 @@
|
|||
{ lib, stdenv, pkgs }:
|
||||
let
|
||||
version = "2.2.1";
|
||||
in
|
||||
(import ./google-clasp.nix {
|
||||
inherit pkgs;
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
})."@google/clasp-${version}".override {
|
||||
preRebuild = ''
|
||||
patch -p1 <<<"${builtins.readFile ./dotf.patch}"
|
||||
'';
|
||||
meta = {
|
||||
description = "Command Line tool for Google Apps Script Projects";
|
||||
homepage = "https://developers.google.com/apps-script/guides/clasp";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.michojel ];
|
||||
priority = 100;
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
Index: nodejs/tmp/xcindf87mmqyp0x5blima5q2m9fw3dx3-node__at_google_slash_clasp-2.2.1/lib/node_modules/@google/clasp/src/dotfile.js
|
||||
===================================================================
|
||||
--- clasp.orig/src/dotfile.js
|
||||
+++ clasp/src/dotfile.js
|
||||
@@ -94,7 +94,7 @@ exports.DOTFILE = {
|
||||
return dotf(projectPath ? path_1.default.dirname(projectPath) : exports.DOT.PROJECT.DIR, exports.DOT.PROJECT.NAME);
|
||||
},
|
||||
// Stores {ClaspCredentials}
|
||||
- RC: dotf(exports.DOT.RC.DIR, exports.DOT.RC.NAME),
|
||||
+ RC: dotf.default(exports.DOT.RC.DIR, exports.DOT.RC.NAME),
|
||||
// Stores {ClaspCredentials}
|
||||
RC_LOCAL: function () {
|
||||
var localPath = find_up_1.default.sync(exports.DOT.PROJECT.PATH);
|
|
@ -1,9 +0,0 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nodePackages.node2nix
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
exec node2nix --nodejs-10 \
|
||||
-i node-packages.json -o node-packages.nix \
|
||||
-c google-clasp.nix \
|
||||
--no-copy-node-env -e ../../../development/node-packages/node-env.nix
|
|
@ -1,17 +0,0 @@
|
|||
# This file has been generated by node2nix 1.9.0. Do not edit!
|
||||
|
||||
{pkgs ? import <nixpkgs> {
|
||||
inherit system;
|
||||
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
|
||||
|
||||
let
|
||||
nodeEnv = import ../../node-packages/node-env.nix {
|
||||
inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
|
||||
inherit pkgs nodejs;
|
||||
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
|
||||
};
|
||||
in
|
||||
import ./node-packages.nix {
|
||||
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
|
||||
inherit nodeEnv;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue