Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-02-16 00:08:42 +00:00 committed by GitHub
commit 4d96a2c0b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
219 changed files with 5267 additions and 5406 deletions

View File

@ -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";
};

View File

@ -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 dont 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&gt;=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>,

View File

@ -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.

View File

@ -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

View File

@ -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}
'';

View File

@ -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 Wikipedias <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 = [

View 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" ];
};
}

View 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"
];
};
};
};
}

View File

@ -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;

View File

@ -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

View File

@ -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 {};

View File

@ -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"))
'';
})

View 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
'';
}
)

View File

@ -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 ];

View File

@ -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" ];

View 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 ];
};
}

View File

@ -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";

View File

@ -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;
};

View File

@ -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 ];
};
}

View File

@ -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 = [

View File

@ -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

View File

@ -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 ];
};
}

View File

@ -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 ];

View File

@ -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;

View 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 ];
};
}

View File

@ -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

View File

@ -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 = [

View File

@ -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; {

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;
};
}

View File

@ -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

View File

@ -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;

View File

@ -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 = [

View File

@ -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 ];

View File

@ -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 = ''

View File

@ -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;

View File

@ -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"
}
}

View File

@ -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";

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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;
};
}

View File

@ -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

View File

@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.linux;
};
}

View File

@ -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 = ''

View File

@ -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;

View File

@ -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;

View File

@ -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 ];

View File

@ -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 ];

View File

@ -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 ];

View File

@ -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 { }) ];

View File

@ -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=";
};
})

View File

@ -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";

View File

@ -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/";

View File

@ -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 ];

View File

@ -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 ];

View 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;
};
}

View File

@ -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))

View File

@ -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" ;

View File

@ -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";

View File

@ -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

View 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 ];
};
}

View File

@ -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 = [

View File

@ -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 = [

View File

@ -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;

View File

@ -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 = [

View File

@ -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 = [

View File

@ -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 = [

View File

@ -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;
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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";

View File

@ -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;

View File

@ -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 ];

View File

@ -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 ];

View File

@ -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 = ''

View File

@ -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 ];

View File

@ -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";

View File

@ -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

View File

@ -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";
};

View File

@ -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 ];

View File

@ -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 ];

View File

@ -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" ];

View File

@ -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;
};

View File

@ -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; {

View File

@ -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 {

View File

@ -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 ];

View File

@ -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

View File

@ -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;
};
}

View File

@ -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);

View File

@ -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

View File

@ -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