Merge master into haskell-updates
This commit is contained in:
commit
2e989fab1d
@ -1,7 +1,7 @@
|
|||||||
{ pkgs ? import ../../.. {} }:
|
{ pkgs ? import ../../.. {} }:
|
||||||
let
|
let
|
||||||
inherit (pkgs) lib;
|
inherit (pkgs) lib;
|
||||||
manpageURLs = builtins.fromJSON (builtins.readFile (pkgs.path + "/doc/manpage-urls.json"));
|
manpageURLs = lib.importJSON (pkgs.path + "/doc/manpage-urls.json");
|
||||||
in pkgs.writeText "link-manpages.lua" ''
|
in pkgs.writeText "link-manpages.lua" ''
|
||||||
--[[
|
--[[
|
||||||
Adds links to known man pages that aren't already in a link.
|
Adds links to known man pages that aren't already in a link.
|
||||||
|
@ -45,7 +45,10 @@ let
|
|||||||
# NB: This file describes the Nixpkgs manual, which happens to use module
|
# NB: This file describes the Nixpkgs manual, which happens to use module
|
||||||
# docs infra originally developed for NixOS.
|
# docs infra originally developed for NixOS.
|
||||||
optionsDoc = pkgs.nixosOptionsDoc {
|
optionsDoc = pkgs.nixosOptionsDoc {
|
||||||
inherit (pkgs.lib.evalModules { modules = [ ../../pkgs/top-level/config.nix ]; }) options;
|
inherit (pkgs.lib.evalModules {
|
||||||
|
modules = [ ../../pkgs/top-level/config.nix ];
|
||||||
|
class = "nixpkgsConfig";
|
||||||
|
}) options;
|
||||||
documentType = "none";
|
documentType = "none";
|
||||||
transformOptions = opt:
|
transformOptions = opt:
|
||||||
opt // {
|
opt // {
|
||||||
|
@ -38,12 +38,12 @@ Here is a simple package example.
|
|||||||
|
|
||||||
- It uses the `fetchFromGitHub` fetcher to get its source.
|
- It uses the `fetchFromGitHub` fetcher to get its source.
|
||||||
|
|
||||||
- `duneVersion = "2"` ensures that Dune version 2 is used for the
|
- It also accept `duneVersion` parameter (valid value are `"1"`, `"2"`, and
|
||||||
build (this is the default; valid values are `"1"`, `"2"`, and `"3"`);
|
`"3"`). The recommended practice it to set only if you don't want the default
|
||||||
note that there is also a legacy `useDune2` boolean attribute:
|
value and/or it depends on something else like package version. You might see
|
||||||
set to `false` it corresponds to `duneVersion = "1"`; set to `true` it
|
a not-supported argument `useDune2`. The behavior was `useDune2 = true;` =>
|
||||||
corresponds to `duneVersion = "2"`. If both arguments (`duneVersion` and
|
`duneVersion = "2";` and `useDune2 = false;` => `duneVersion = "1";`. It was
|
||||||
`useDune2`) are given, the second one (`useDune2`) is silently ignored.
|
used at the time when dune3 didn't existed.
|
||||||
|
|
||||||
- It sets the optional `doCheck` attribute such that tests will be run with
|
- It sets the optional `doCheck` attribute such that tests will be run with
|
||||||
`dune runtest -p angstrom` after the build (`dune build -p angstrom`) is
|
`dune runtest -p angstrom` after the build (`dune build -p angstrom`) is
|
||||||
@ -71,7 +71,6 @@ Here is a simple package example.
|
|||||||
buildDunePackage rec {
|
buildDunePackage rec {
|
||||||
pname = "angstrom";
|
pname = "angstrom";
|
||||||
version = "0.15.0";
|
version = "0.15.0";
|
||||||
duneVersion = "2";
|
|
||||||
|
|
||||||
minimalOCamlVersion = "4.04";
|
minimalOCamlVersion = "4.04";
|
||||||
|
|
||||||
@ -104,8 +103,6 @@ buildDunePackage rec {
|
|||||||
pname = "wtf8";
|
pname = "wtf8";
|
||||||
version = "1.0.2";
|
version = "1.0.2";
|
||||||
|
|
||||||
useDune2 = true;
|
|
||||||
|
|
||||||
minimalOCamlVersion = "4.02";
|
minimalOCamlVersion = "4.02";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
|
@ -12,7 +12,11 @@
|
|||||||
<xi:include href="using/configuration.chapter.xml" />
|
<xi:include href="using/configuration.chapter.xml" />
|
||||||
<xi:include href="using/overlays.chapter.xml" />
|
<xi:include href="using/overlays.chapter.xml" />
|
||||||
<xi:include href="using/overrides.chapter.xml" />
|
<xi:include href="using/overrides.chapter.xml" />
|
||||||
|
</part>
|
||||||
|
<part>
|
||||||
|
<title>Nixpkgs <code>lib</code></title>
|
||||||
<xi:include href="functions.xml" />
|
<xi:include href="functions.xml" />
|
||||||
|
<xi:include href="module-system/module-system.chapter.xml" />
|
||||||
</part>
|
</part>
|
||||||
<part xml:id="part-stdenv">
|
<part xml:id="part-stdenv">
|
||||||
<title>Standard environment</title>
|
<title>Standard environment</title>
|
||||||
|
105
doc/module-system/module-system.chapter.md
Normal file
105
doc/module-system/module-system.chapter.md
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
# Module System {#module-system}
|
||||||
|
|
||||||
|
## Introduction {#module-system-introduction}
|
||||||
|
|
||||||
|
The module system is a language for handling configuration, implemented as a Nix library.
|
||||||
|
|
||||||
|
Compared to plain Nix, it adds documentation, type checking and composition or extensibility.
|
||||||
|
|
||||||
|
::: {.note}
|
||||||
|
This chapter is new and not complete yet. For a gentle introduction to the module system, in the context of NixOS, see [Writing NixOS Modules](https://nixos.org/manual/nixos/unstable/index.html#sec-writing-modules) in the NixOS manual.
|
||||||
|
:::
|
||||||
|
|
||||||
|
|
||||||
|
## `lib.evalModules` {#module-system-lib-evalModules}
|
||||||
|
|
||||||
|
Evaluate a set of modules. This function is typically only used once per application (e.g. once in NixOS, once in Home Manager, ...).
|
||||||
|
|
||||||
|
### Parameters {#module-system-lib-evalModules-parameters}
|
||||||
|
|
||||||
|
#### `modules` {#module-system-lib-evalModules-param-modules}
|
||||||
|
|
||||||
|
A list of modules. These are merged together to form the final configuration.
|
||||||
|
<!-- TODO link to section about merging, TBD -->
|
||||||
|
|
||||||
|
#### `specialArgs` {#module-system-lib-evalModules-param-specialArgs}
|
||||||
|
|
||||||
|
An attribute set of module arguments that can be used in `imports`.
|
||||||
|
|
||||||
|
This is in contrast to `config._module.args`, which is only available after all `imports` have been resolved.
|
||||||
|
|
||||||
|
#### `class` {#module-system-lib-evalModules-param-class}
|
||||||
|
|
||||||
|
If the `class` attribute is set and non-`null`, the module system will reject `imports` with a different `_class` declaration.
|
||||||
|
|
||||||
|
The `class` value should be a string in lower [camel case](https://en.wikipedia.org/wiki/Camel_case).
|
||||||
|
|
||||||
|
If applicable, the `class` should match the "prefix" of the attributes used in (experimental) [flakes](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-flake.html#description). Some examples are:
|
||||||
|
|
||||||
|
- `nixos` as in `flake.nixosModules`
|
||||||
|
- `nixosTest`: modules that constitute a [NixOS VM test](https://nixos.org/manual/nixos/stable/index.html#sec-nixos-tests)
|
||||||
|
<!-- We've only just started with `class`. You're invited to add a few more. -->
|
||||||
|
|
||||||
|
#### `prefix` {#module-system-lib-evalModules-param-prefix}
|
||||||
|
|
||||||
|
A list of strings representing the location at or below which all options are evaluated. This is used by `types.submodule` to improve error reporting and find the implicit `name` module argument.
|
||||||
|
|
||||||
|
### Return value {#module-system-lib-evalModules-return-value}
|
||||||
|
|
||||||
|
The result is an attribute set with the following attributes:
|
||||||
|
|
||||||
|
#### `options` {#module-system-lib-evalModules-return-value-options}
|
||||||
|
|
||||||
|
The nested attribute set of all option declarations.
|
||||||
|
|
||||||
|
#### `config` {#module-system-lib-evalModules-return-value-config}
|
||||||
|
|
||||||
|
The nested attribute set of all option values.
|
||||||
|
|
||||||
|
#### `type` {#module-system-lib-evalModules-return-value-type}
|
||||||
|
|
||||||
|
A module system type. This type is an instance of `types.submoduleWith` containing the current [`modules`](#module-system-lib-evalModules-param-modules).
|
||||||
|
|
||||||
|
The option definitions that are typed with this type will extend the current set of modules, like [`extendModules`](#module-system-lib-evalModules-return-value-extendModules).
|
||||||
|
|
||||||
|
However, the value returned from the type is just the [`config`](#module-system-lib-evalModules-return-value-config), like any submodule.
|
||||||
|
|
||||||
|
If you're familiar with prototype inheritance, you can think of this `evalModules` invocation as the prototype, and usages of this type as the instances.
|
||||||
|
|
||||||
|
This type is also available to the [`modules`](#module-system-lib-evalModules-param-modules) as the module argument `moduleType`.
|
||||||
|
<!-- TODO: document the module arguments. Using moduleType is like saying: suppose this configuration was extended. -->
|
||||||
|
|
||||||
|
#### `extendModules` {#module-system-lib-evalModules-return-value-extendModules}
|
||||||
|
|
||||||
|
A function similar to `evalModules` but building on top of the already passed [`modules`](#module-system-lib-evalModules-param-modules). Its arguments, `modules` and `specialArgs` are added to the existing values.
|
||||||
|
|
||||||
|
If you're familiar with prototype inheritance, you can think of the current, actual `evalModules` invocation as the prototype, and the return value of `extendModules` as the instance.
|
||||||
|
|
||||||
|
This functionality is also available to modules as the `extendModules` module argument.
|
||||||
|
|
||||||
|
::: {.note}
|
||||||
|
|
||||||
|
**Evaluation Performance**
|
||||||
|
|
||||||
|
`extendModules` returns a configuration that shares very little with the original `evalModules` invocation, because the module arguments may be different.
|
||||||
|
|
||||||
|
So if you have a configuration that has been (or will be) largely evaluated, almost none of the computation is shared with the configuration returned by `extendModules`.
|
||||||
|
|
||||||
|
The real work of module evaluation happens while computing the values in `config` and `options`, so multiple invocations of `extendModules` have a particularly small cost, as long as only the final `config` and `options` are evaluated.
|
||||||
|
|
||||||
|
If you do reference multiple `config` (or `options`) from before and after `extendModules`, evaluation performance is the same as with multiple `evalModules` invocations, because the new modules' ability to override existing configuration fundamentally requires constructing a new `config` and `options` fixpoint.
|
||||||
|
:::
|
||||||
|
|
||||||
|
#### `_module` {#module-system-lib-evalModules-return-value-_module}
|
||||||
|
|
||||||
|
A portion of the configuration tree which is elided from `config`.
|
||||||
|
|
||||||
|
<!-- TODO: when markdown migration is complete, make _module docs visible again and reference _module docs. Maybe move those docs into this chapter? -->
|
||||||
|
|
||||||
|
#### `_type` {#module-system-lib-evalModules-return-value-_type}
|
||||||
|
|
||||||
|
A nominal type marker, always `"configuration"`.
|
||||||
|
|
||||||
|
#### `class` {#module-system-lib-evalModules-return-value-_configurationClass}
|
||||||
|
|
||||||
|
The [`class` argument](#module-system-lib-evalModules-param-class).
|
160
lib/modules.nix
160
lib/modules.nix
@ -63,39 +63,8 @@ let
|
|||||||
decls
|
decls
|
||||||
));
|
));
|
||||||
|
|
||||||
in
|
/* See https://nixos.org/manual/nixpkgs/unstable/#module-system-lib-evalModules
|
||||||
|
or file://./../doc/module-system/module-system.chapter.md
|
||||||
rec {
|
|
||||||
|
|
||||||
/*
|
|
||||||
Evaluate a set of modules. The result is a set with the attributes:
|
|
||||||
|
|
||||||
‘options’: The nested set of all option declarations,
|
|
||||||
|
|
||||||
‘config’: The nested set of all option values.
|
|
||||||
|
|
||||||
‘type’: A module system type representing the module set as a submodule,
|
|
||||||
to be extended by configuration from the containing module set.
|
|
||||||
|
|
||||||
This is also available as the module argument ‘moduleType’.
|
|
||||||
|
|
||||||
‘extendModules’: A function similar to ‘evalModules’ but building on top
|
|
||||||
of the module set. Its arguments, ‘modules’ and ‘specialArgs’ are
|
|
||||||
added to the existing values.
|
|
||||||
|
|
||||||
Using ‘extendModules’ a few times has no performance impact as long
|
|
||||||
as you only reference the final ‘options’ and ‘config’.
|
|
||||||
If you do reference multiple ‘config’ (or ‘options’) from before and
|
|
||||||
after ‘extendModules’, performance is the same as with multiple
|
|
||||||
‘evalModules’ invocations, because the new modules' ability to
|
|
||||||
override existing configuration fundamentally requires a new
|
|
||||||
fixpoint to be constructed.
|
|
||||||
|
|
||||||
This is also available as a module argument.
|
|
||||||
|
|
||||||
‘_module’: A portion of the configuration tree which is elided from
|
|
||||||
‘config’. It contains some values that are mostly internal to the
|
|
||||||
module system implementation.
|
|
||||||
|
|
||||||
!!! Please think twice before adding to this argument list! The more
|
!!! Please think twice before adding to this argument list! The more
|
||||||
that is specified here instead of in the modules themselves the harder
|
that is specified here instead of in the modules themselves the harder
|
||||||
@ -110,8 +79,12 @@ rec {
|
|||||||
# there's _module.args. If specialArgs.modulesPath is defined it will be
|
# there's _module.args. If specialArgs.modulesPath is defined it will be
|
||||||
# used as the base path for disabledModules.
|
# used as the base path for disabledModules.
|
||||||
specialArgs ? {}
|
specialArgs ? {}
|
||||||
, # This would be remove in the future, Prefer _module.args option instead.
|
, # `class`:
|
||||||
args ? {}
|
# A nominal type for modules. When set and non-null, this adds a check to
|
||||||
|
# make sure that only compatible modules are imported.
|
||||||
|
# This would be remove in the future, Prefer _module.args option instead.
|
||||||
|
class ? null
|
||||||
|
, args ? {}
|
||||||
, # This would be remove in the future, Prefer _module.check option instead.
|
, # This would be remove in the future, Prefer _module.check option instead.
|
||||||
check ? true
|
check ? true
|
||||||
}:
|
}:
|
||||||
@ -260,6 +233,7 @@ rec {
|
|||||||
|
|
||||||
merged =
|
merged =
|
||||||
let collected = collectModules
|
let collected = collectModules
|
||||||
|
class
|
||||||
(specialArgs.modulesPath or "")
|
(specialArgs.modulesPath or "")
|
||||||
(regularModules ++ [ internalModule ])
|
(regularModules ++ [ internalModule ])
|
||||||
({ inherit lib options config specialArgs; } // specialArgs);
|
({ inherit lib options config specialArgs; } // specialArgs);
|
||||||
@ -336,38 +310,64 @@ rec {
|
|||||||
prefix ? [],
|
prefix ? [],
|
||||||
}:
|
}:
|
||||||
evalModules (evalModulesArgs // {
|
evalModules (evalModulesArgs // {
|
||||||
|
inherit class;
|
||||||
modules = regularModules ++ modules;
|
modules = regularModules ++ modules;
|
||||||
specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
|
specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
|
||||||
prefix = extendArgs.prefix or evalModulesArgs.prefix or [];
|
prefix = extendArgs.prefix or evalModulesArgs.prefix or [];
|
||||||
});
|
});
|
||||||
|
|
||||||
type = lib.types.submoduleWith {
|
type = lib.types.submoduleWith {
|
||||||
inherit modules specialArgs;
|
inherit modules specialArgs class;
|
||||||
};
|
};
|
||||||
|
|
||||||
result = withWarnings {
|
result = withWarnings {
|
||||||
|
_type = "configuration";
|
||||||
options = checked options;
|
options = checked options;
|
||||||
config = checked (removeAttrs config [ "_module" ]);
|
config = checked (removeAttrs config [ "_module" ]);
|
||||||
_module = checked (config._module);
|
_module = checked (config._module);
|
||||||
inherit extendModules type;
|
inherit extendModules type;
|
||||||
|
class = class;
|
||||||
};
|
};
|
||||||
in result;
|
in result;
|
||||||
|
|
||||||
# collectModules :: (modulesPath: String) -> (modules: [ Module ]) -> (args: Attrs) -> [ Module ]
|
# collectModules :: (class: String) -> (modulesPath: String) -> (modules: [ Module ]) -> (args: Attrs) -> [ Module ]
|
||||||
#
|
#
|
||||||
# Collects all modules recursively through `import` statements, filtering out
|
# Collects all modules recursively through `import` statements, filtering out
|
||||||
# all modules in disabledModules.
|
# all modules in disabledModules.
|
||||||
collectModules = let
|
collectModules = class: let
|
||||||
|
|
||||||
# Like unifyModuleSyntax, but also imports paths and calls functions if necessary
|
# Like unifyModuleSyntax, but also imports paths and calls functions if necessary
|
||||||
loadModule = args: fallbackFile: fallbackKey: m:
|
loadModule = args: fallbackFile: fallbackKey: m:
|
||||||
if isFunction m || isAttrs m then
|
if isFunction m then
|
||||||
unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgsIfFunction fallbackKey m args)
|
unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)
|
||||||
|
else if isAttrs m then
|
||||||
|
if m._type or "module" == "module" then
|
||||||
|
unifyModuleSyntax fallbackFile fallbackKey m
|
||||||
|
else if m._type == "if" || m._type == "override" then
|
||||||
|
loadModule args fallbackFile fallbackKey { config = m; }
|
||||||
|
else
|
||||||
|
throw (
|
||||||
|
"Could not load a value as a module, because it is of type ${lib.strings.escapeNixString m._type}"
|
||||||
|
+ lib.optionalString (fallbackFile != unknownModule) ", in file ${toString fallbackFile}."
|
||||||
|
+ lib.optionalString (m._type == "configuration") " If you do intend to import this configuration, please only import the modules that make up the configuration. You may have to create a `let` binding, file or attribute to give yourself access to the relevant modules.\nWhile loading a configuration into the module system is a very sensible idea, it can not be done cleanly in practice."
|
||||||
|
# Extended explanation: That's because a finalized configuration is more than just a set of modules. For instance, it has its own `specialArgs` that, by the nature of `specialArgs` can't be loaded through `imports` or the the `modules` argument. So instead, we have to ask you to extract the relevant modules and use those instead. This way, we keep the module system comparatively simple, and hopefully avoid a bad surprise down the line.
|
||||||
|
)
|
||||||
else if isList m then
|
else if isList m then
|
||||||
let defs = [{ file = fallbackFile; value = m; }]; in
|
let defs = [{ file = fallbackFile; value = m; }]; in
|
||||||
throw "Module imports can't be nested lists. Perhaps you meant to remove one level of lists? Definitions: ${showDefs defs}"
|
throw "Module imports can't be nested lists. Perhaps you meant to remove one level of lists? Definitions: ${showDefs defs}"
|
||||||
else unifyModuleSyntax (toString m) (toString m) (applyModuleArgsIfFunction (toString m) (import m) args);
|
else unifyModuleSyntax (toString m) (toString m) (applyModuleArgsIfFunction (toString m) (import m) args);
|
||||||
|
|
||||||
|
checkModule =
|
||||||
|
if class != null
|
||||||
|
then
|
||||||
|
m:
|
||||||
|
if m._class != null -> m._class == class
|
||||||
|
then m
|
||||||
|
else
|
||||||
|
throw "The module ${m._file or m.key} was imported into ${class} instead of ${m._class}."
|
||||||
|
else
|
||||||
|
m: m;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Collects all modules recursively into the form
|
Collects all modules recursively into the form
|
||||||
|
|
||||||
@ -401,7 +401,7 @@ rec {
|
|||||||
};
|
};
|
||||||
in parentFile: parentKey: initialModules: args: collectResults (imap1 (n: x:
|
in parentFile: parentKey: initialModules: args: collectResults (imap1 (n: x:
|
||||||
let
|
let
|
||||||
module = loadModule args parentFile "${parentKey}:anon-${toString n}" x;
|
module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
|
||||||
collectedImports = collectStructuredModules module._file module.key module.imports args;
|
collectedImports = collectStructuredModules module._file module.key module.imports args;
|
||||||
in {
|
in {
|
||||||
key = module.key;
|
key = module.key;
|
||||||
@ -465,11 +465,12 @@ rec {
|
|||||||
else config;
|
else config;
|
||||||
in
|
in
|
||||||
if m ? config || m ? options then
|
if m ? config || m ? options then
|
||||||
let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta" "freeformType"]; in
|
let badAttrs = removeAttrs m ["_class" "_file" "key" "disabledModules" "imports" "options" "config" "meta" "freeformType"]; in
|
||||||
if badAttrs != {} then
|
if badAttrs != {} then
|
||||||
throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by introducing a top-level `config' or `options' attribute. Add configuration attributes immediately on the top level instead, or move all of them (namely: ${toString (attrNames badAttrs)}) into the explicit `config' attribute."
|
throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by introducing a top-level `config' or `options' attribute. Add configuration attributes immediately on the top level instead, or move all of them (namely: ${toString (attrNames badAttrs)}) into the explicit `config' attribute."
|
||||||
else
|
else
|
||||||
{ _file = toString m._file or file;
|
{ _file = toString m._file or file;
|
||||||
|
_class = m._class or null;
|
||||||
key = toString m.key or key;
|
key = toString m.key or key;
|
||||||
disabledModules = m.disabledModules or [];
|
disabledModules = m.disabledModules or [];
|
||||||
imports = m.imports or [];
|
imports = m.imports or [];
|
||||||
@ -480,14 +481,18 @@ rec {
|
|||||||
# shorthand syntax
|
# shorthand syntax
|
||||||
lib.throwIfNot (isAttrs m) "module ${file} (${key}) does not look like a module."
|
lib.throwIfNot (isAttrs m) "module ${file} (${key}) does not look like a module."
|
||||||
{ _file = toString m._file or file;
|
{ _file = toString m._file or file;
|
||||||
|
_class = m._class or null;
|
||||||
key = toString m.key or key;
|
key = toString m.key or key;
|
||||||
disabledModules = m.disabledModules or [];
|
disabledModules = m.disabledModules or [];
|
||||||
imports = m.require or [] ++ m.imports or [];
|
imports = m.require or [] ++ m.imports or [];
|
||||||
options = {};
|
options = {};
|
||||||
config = addFreeformType (removeAttrs m ["_file" "key" "disabledModules" "require" "imports" "freeformType"]);
|
config = addFreeformType (removeAttrs m ["_class" "_file" "key" "disabledModules" "require" "imports" "freeformType"]);
|
||||||
};
|
};
|
||||||
|
|
||||||
applyModuleArgsIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then
|
applyModuleArgsIfFunction = key: f: args@{ config, options, lib, ... }:
|
||||||
|
if isFunction f then applyModuleArgs key f args else f;
|
||||||
|
|
||||||
|
applyModuleArgs = key: f: args@{ config, options, lib, ... }:
|
||||||
let
|
let
|
||||||
# Module arguments are resolved in a strict manner when attribute set
|
# Module arguments are resolved in a strict manner when attribute set
|
||||||
# deconstruction is used. As the arguments are now defined with the
|
# deconstruction is used. As the arguments are now defined with the
|
||||||
@ -511,9 +516,7 @@ rec {
|
|||||||
# context on the explicit arguments of "args" too. This update
|
# context on the explicit arguments of "args" too. This update
|
||||||
# operator is used to make the "args@{ ... }: with args.lib;" notation
|
# operator is used to make the "args@{ ... }: with args.lib;" notation
|
||||||
# works.
|
# works.
|
||||||
in f (args // extraArgs)
|
in f (args // extraArgs);
|
||||||
else
|
|
||||||
f;
|
|
||||||
|
|
||||||
/* Merge a list of modules. This will recurse over the option
|
/* Merge a list of modules. This will recurse over the option
|
||||||
declarations in all modules, combining them into a single set.
|
declarations in all modules, combining them into a single set.
|
||||||
@ -1218,4 +1221,67 @@ rec {
|
|||||||
_file = file;
|
_file = file;
|
||||||
config = lib.importTOML file;
|
config = lib.importTOML file;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private = lib.mapAttrs
|
||||||
|
(k: lib.warn "External use of `lib.modules.${k}` is deprecated. If your use case isn't covered by non-deprecated functions, we'd like to know more and perhaps support your use case well, instead of providing access to these low level functions. In this case please open an issue in https://github.com/nixos/nixpkgs/issues/.")
|
||||||
|
{
|
||||||
|
inherit
|
||||||
|
applyModuleArgsIfFunction
|
||||||
|
dischargeProperties
|
||||||
|
evalOptionValue
|
||||||
|
mergeModules
|
||||||
|
mergeModules'
|
||||||
|
pushDownProperties
|
||||||
|
unifyModuleSyntax
|
||||||
|
;
|
||||||
|
collectModules = collectModules null;
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
private //
|
||||||
|
{
|
||||||
|
# NOTE: not all of these functions are necessarily public interfaces; some
|
||||||
|
# are just needed by types.nix, but are not meant to be consumed
|
||||||
|
# externally.
|
||||||
|
inherit
|
||||||
|
defaultOrderPriority
|
||||||
|
defaultOverridePriority
|
||||||
|
defaultPriority
|
||||||
|
doRename
|
||||||
|
evalModules
|
||||||
|
filterOverrides
|
||||||
|
filterOverrides'
|
||||||
|
fixMergeModules
|
||||||
|
fixupOptionType # should be private?
|
||||||
|
importJSON
|
||||||
|
importTOML
|
||||||
|
mergeDefinitions
|
||||||
|
mergeOptionDecls # should be private?
|
||||||
|
mkAfter
|
||||||
|
mkAliasAndWrapDefinitions
|
||||||
|
mkAliasAndWrapDefsWithPriority
|
||||||
|
mkAliasDefinitions
|
||||||
|
mkAliasIfDef
|
||||||
|
mkAliasOptionModule
|
||||||
|
mkAliasOptionModuleMD
|
||||||
|
mkAssert
|
||||||
|
mkBefore
|
||||||
|
mkChangedOptionModule
|
||||||
|
mkDefault
|
||||||
|
mkDerivedConfig
|
||||||
|
mkFixStrictness
|
||||||
|
mkForce
|
||||||
|
mkIf
|
||||||
|
mkImageMediaOverride
|
||||||
|
mkMerge
|
||||||
|
mkMergedOptionModule
|
||||||
|
mkOptionDefault
|
||||||
|
mkOrder
|
||||||
|
mkOverride
|
||||||
|
mkRemovedOptionModule
|
||||||
|
mkRenamedOptionModule
|
||||||
|
mkRenamedOptionModuleWith
|
||||||
|
mkVMOverride
|
||||||
|
setDefaultModuleLocation
|
||||||
|
sortProperties;
|
||||||
}
|
}
|
||||||
|
@ -166,6 +166,7 @@ checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*'
|
|||||||
checkConfigOutput '^true$' "$@" ./define-module-check.nix
|
checkConfigOutput '^true$' "$@" ./define-module-check.nix
|
||||||
|
|
||||||
# Check coerced value.
|
# Check coerced value.
|
||||||
|
set --
|
||||||
checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
|
checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
|
||||||
checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
|
checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
|
||||||
checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
||||||
@ -254,6 +255,8 @@ checkConfigError 'A definition for option .* is not of type .*' \
|
|||||||
## Freeform modules
|
## Freeform modules
|
||||||
# Assigning without a declared option should work
|
# Assigning without a declared option should work
|
||||||
checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix
|
checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix
|
||||||
|
# Shorthand modules interpret `meta` and `class` as config items
|
||||||
|
checkConfigOutput '^true$' options._module.args.value.result ./freeform-attrsOf.nix ./define-freeform-keywords-shorthand.nix
|
||||||
# No freeform assignments shouldn't make it error
|
# No freeform assignments shouldn't make it error
|
||||||
checkConfigOutput '^{ }$' config ./freeform-attrsOf.nix
|
checkConfigOutput '^{ }$' config ./freeform-attrsOf.nix
|
||||||
# but only if the type matches
|
# but only if the type matches
|
||||||
@ -359,6 +362,24 @@ checkConfigOutput 'ok' config.freeformItems.foo.bar ./adhoc-freeformType-survive
|
|||||||
# because of an `extendModules` bug, issue 168767.
|
# because of an `extendModules` bug, issue 168767.
|
||||||
checkConfigOutput '^1$' config.sub.specialisation.value ./extendModules-168767-imports.nix
|
checkConfigOutput '^1$' config.sub.specialisation.value ./extendModules-168767-imports.nix
|
||||||
|
|
||||||
|
# Class checks, evalModules
|
||||||
|
checkConfigOutput '^{ }$' config.ok.config ./class-check.nix
|
||||||
|
checkConfigOutput '"nixos"' config.ok.class ./class-check.nix
|
||||||
|
checkConfigError 'The module .*/module-class-is-darwin.nix was imported into nixos instead of darwin.' config.fail.config ./class-check.nix
|
||||||
|
checkConfigError 'The module foo.nix#darwinModules.default was imported into nixos instead of darwin.' config.fail-anon.config ./class-check.nix
|
||||||
|
|
||||||
|
# Class checks, submoduleWith
|
||||||
|
checkConfigOutput '^{ }$' config.sub.nixosOk ./class-check.nix
|
||||||
|
checkConfigError 'The module .*/module-class-is-darwin.nix was imported into nixos instead of darwin.' config.sub.nixosFail.config ./class-check.nix
|
||||||
|
|
||||||
|
# submoduleWith type merge with different class
|
||||||
|
checkConfigError 'error: A submoduleWith option is declared multiple times with conflicting class values "darwin" and "nixos".' config.sub.mergeFail.config ./class-check.nix
|
||||||
|
|
||||||
|
# _type check
|
||||||
|
checkConfigError 'Could not load a value as a module, because it is of type "flake", in file .*/module-imports-_type-check.nix' config.ok.config ./module-imports-_type-check.nix
|
||||||
|
checkConfigOutput '^true$' "$@" config.enable ./declare-enable.nix ./define-enable-with-top-level-mkIf.nix
|
||||||
|
checkConfigError 'Could not load a value as a module, because it is of type "configuration", in file .*/import-configuration.nix.*please only import the modules that make up the configuration.*' config ./import-configuration.nix
|
||||||
|
|
||||||
# doRename works when `warnings` does not exist.
|
# doRename works when `warnings` does not exist.
|
||||||
checkConfigOutput '^1234$' config.c.d.e ./doRename-basic.nix
|
checkConfigOutput '^1234$' config.c.d.e ./doRename-basic.nix
|
||||||
# doRename adds a warning.
|
# doRename adds a warning.
|
||||||
|
76
lib/tests/modules/class-check.nix
Normal file
76
lib/tests/modules/class-check.nix
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{ lib, ... }: {
|
||||||
|
options = {
|
||||||
|
sub = {
|
||||||
|
nixosOk = lib.mkOption {
|
||||||
|
type = lib.types.submoduleWith {
|
||||||
|
class = "nixos";
|
||||||
|
modules = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Same but will have bad definition
|
||||||
|
nixosFail = lib.mkOption {
|
||||||
|
type = lib.types.submoduleWith {
|
||||||
|
class = "nixos";
|
||||||
|
modules = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mergeFail = lib.mkOption {
|
||||||
|
type = lib.types.submoduleWith {
|
||||||
|
class = "nixos";
|
||||||
|
modules = [ ];
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
sub = {
|
||||||
|
mergeFail = lib.mkOption {
|
||||||
|
type = lib.types.submoduleWith {
|
||||||
|
class = "darwin";
|
||||||
|
modules = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
_module.freeformType = lib.types.anything;
|
||||||
|
ok =
|
||||||
|
lib.evalModules {
|
||||||
|
class = "nixos";
|
||||||
|
modules = [
|
||||||
|
./module-class-is-nixos.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
fail =
|
||||||
|
lib.evalModules {
|
||||||
|
class = "nixos";
|
||||||
|
modules = [
|
||||||
|
./module-class-is-nixos.nix
|
||||||
|
./module-class-is-darwin.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
fail-anon =
|
||||||
|
lib.evalModules {
|
||||||
|
class = "nixos";
|
||||||
|
modules = [
|
||||||
|
./module-class-is-nixos.nix
|
||||||
|
{ _file = "foo.nix#darwinModules.default";
|
||||||
|
_class = "darwin";
|
||||||
|
config = {};
|
||||||
|
imports = [];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
sub.nixosOk = { _class = "nixos"; };
|
||||||
|
sub.nixosFail = { imports = [ ./module-class-is-darwin.nix ]; };
|
||||||
|
};
|
||||||
|
}
|
5
lib/tests/modules/define-enable-with-top-level-mkIf.nix
Normal file
5
lib/tests/modules/define-enable-with-top-level-mkIf.nix
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
# I think this might occur more realistically in a submodule
|
||||||
|
{
|
||||||
|
imports = [ (lib.mkIf true { enable = true; }) ];
|
||||||
|
}
|
15
lib/tests/modules/define-freeform-keywords-shorthand.nix
Normal file
15
lib/tests/modules/define-freeform-keywords-shorthand.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ config, ... }: {
|
||||||
|
class = { "just" = "data"; };
|
||||||
|
a = "one";
|
||||||
|
b = "two";
|
||||||
|
meta = "meta";
|
||||||
|
|
||||||
|
_module.args.result =
|
||||||
|
let r = builtins.removeAttrs config [ "_module" ];
|
||||||
|
in builtins.trace (builtins.deepSeq r r) (r == {
|
||||||
|
a = "one";
|
||||||
|
b = "two";
|
||||||
|
class = { "just" = "data"; };
|
||||||
|
meta = "meta";
|
||||||
|
});
|
||||||
|
}
|
12
lib/tests/modules/import-configuration.nix
Normal file
12
lib/tests/modules/import-configuration.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
myconf = lib.evalModules { modules = [ { } ]; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# We can't do this. A configuration is not equal to its set of a modules.
|
||||||
|
# Equating those would lead to a mess, as specialArgs, anonymous modules
|
||||||
|
# that can't be deduplicated, and possibly more come into play.
|
||||||
|
myconf
|
||||||
|
];
|
||||||
|
}
|
4
lib/tests/modules/module-class-is-darwin.nix
Normal file
4
lib/tests/modules/module-class-is-darwin.nix
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
_class = "darwin";
|
||||||
|
config = {};
|
||||||
|
}
|
4
lib/tests/modules/module-class-is-nixos.nix
Normal file
4
lib/tests/modules/module-class-is-nixos.nix
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
_class = "nixos";
|
||||||
|
config = {};
|
||||||
|
}
|
3
lib/tests/modules/module-imports-_type-check.nix
Normal file
3
lib/tests/modules/module-imports-_type-check.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
imports = [ { _type = "flake"; } ];
|
||||||
|
}
|
@ -696,6 +696,7 @@ rec {
|
|||||||
, specialArgs ? {}
|
, specialArgs ? {}
|
||||||
, shorthandOnlyDefinesConfig ? false
|
, shorthandOnlyDefinesConfig ? false
|
||||||
, description ? null
|
, description ? null
|
||||||
|
, class ? null
|
||||||
}@attrs:
|
}@attrs:
|
||||||
let
|
let
|
||||||
inherit (lib.modules) evalModules;
|
inherit (lib.modules) evalModules;
|
||||||
@ -707,7 +708,7 @@ rec {
|
|||||||
) defs;
|
) defs;
|
||||||
|
|
||||||
base = evalModules {
|
base = evalModules {
|
||||||
inherit specialArgs;
|
inherit class specialArgs;
|
||||||
modules = [{
|
modules = [{
|
||||||
# This is a work-around for the fact that some sub-modules,
|
# This is a work-around for the fact that some sub-modules,
|
||||||
# such as the one included in an attribute set, expects an "args"
|
# such as the one included in an attribute set, expects an "args"
|
||||||
@ -762,9 +763,14 @@ rec {
|
|||||||
functor = defaultFunctor name // {
|
functor = defaultFunctor name // {
|
||||||
type = types.submoduleWith;
|
type = types.submoduleWith;
|
||||||
payload = {
|
payload = {
|
||||||
inherit modules specialArgs shorthandOnlyDefinesConfig description;
|
inherit modules class specialArgs shorthandOnlyDefinesConfig description;
|
||||||
};
|
};
|
||||||
binOp = lhs: rhs: {
|
binOp = lhs: rhs: {
|
||||||
|
class =
|
||||||
|
if lhs.class == null then rhs.class
|
||||||
|
else if rhs.class == null then lhs.class
|
||||||
|
else if lhs.class == rhs.class then lhs.class
|
||||||
|
else throw "A submoduleWith option is declared multiple times with conflicting class values \"${toString lhs.class}\" and \"${toString rhs.class}\".";
|
||||||
modules = lhs.modules ++ rhs.modules;
|
modules = lhs.modules ++ rhs.modules;
|
||||||
specialArgs =
|
specialArgs =
|
||||||
let intersecting = builtins.intersectAttrs lhs.specialArgs rhs.specialArgs;
|
let intersecting = builtins.intersectAttrs lhs.specialArgs rhs.specialArgs;
|
||||||
|
@ -1654,6 +1654,16 @@
|
|||||||
githubId = 1017537;
|
githubId = 1017537;
|
||||||
name = "Bruno Bieth";
|
name = "Bruno Bieth";
|
||||||
};
|
};
|
||||||
|
badele = {
|
||||||
|
name = "Bruno Adelé";
|
||||||
|
email = "brunoadele@gmail.com";
|
||||||
|
matrix = "@badele:matrix.org";
|
||||||
|
github = "badele";
|
||||||
|
githubId = 2806307;
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "00F4 21C4 C537 7BA3 9820 E13F 6B95 E13D E469 CC5D";
|
||||||
|
}];
|
||||||
|
};
|
||||||
badmutex = {
|
badmutex = {
|
||||||
email = "github@badi.sh";
|
email = "github@badi.sh";
|
||||||
github = "badmutex";
|
github = "badmutex";
|
||||||
@ -14685,12 +14695,6 @@
|
|||||||
githubId = 6391601;
|
githubId = 6391601;
|
||||||
name = "Roger Mason";
|
name = "Roger Mason";
|
||||||
};
|
};
|
||||||
spwhitt = {
|
|
||||||
email = "sw@swhitt.me";
|
|
||||||
github = "spwhitt";
|
|
||||||
githubId = 1414088;
|
|
||||||
name = "Spencer Whitt";
|
|
||||||
};
|
|
||||||
squalus = {
|
squalus = {
|
||||||
email = "squalus@squalus.net";
|
email = "squalus@squalus.net";
|
||||||
github = "squalus";
|
github = "squalus";
|
||||||
|
@ -70,6 +70,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||||||
|
|
||||||
- [opensearch](https://opensearch.org), a search server alternative to Elasticsearch. Available as [services.opensearch](options.html#opt-services.opensearch.enable).
|
- [opensearch](https://opensearch.org), a search server alternative to Elasticsearch. Available as [services.opensearch](options.html#opt-services.opensearch.enable).
|
||||||
|
|
||||||
|
- [kavita](https://kavitareader.com), a self-hosted digital library. Available as [services.kavita](options.html#opt-services.kavita.enable).
|
||||||
|
|
||||||
- [monica](https://www.monicahq.com), an open source personal CRM. Available as [services.monica](options.html#opt-services.monica.enable).
|
- [monica](https://www.monicahq.com), an open source personal CRM. Available as [services.monica](options.html#opt-services.monica.enable).
|
||||||
|
|
||||||
- [authelia](https://www.authelia.com/), is an open-source authentication and authorization server. Available under [services.authelia](options.html#opt-services.authelia.enable).
|
- [authelia](https://www.authelia.com/), is an open-source authentication and authorization server. Available under [services.authelia](options.html#opt-services.authelia.enable).
|
||||||
|
@ -33,6 +33,7 @@ let
|
|||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit config pkgs utils;
|
inherit config pkgs utils;
|
||||||
|
class = "nixos";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
docs = import "${nixosPath}/doc/manual" {
|
docs = import "${nixosPath}/doc/manual" {
|
||||||
|
@ -38,6 +38,7 @@ let
|
|||||||
# is experimental.
|
# is experimental.
|
||||||
lib.evalModules {
|
lib.evalModules {
|
||||||
inherit prefix modules;
|
inherit prefix modules;
|
||||||
|
class = "nixos";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
modulesPath = builtins.toString ../modules;
|
modulesPath = builtins.toString ../modules;
|
||||||
} // specialArgs;
|
} // specialArgs;
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
{ lib }:
|
{ lib }:
|
||||||
let
|
let
|
||||||
|
|
||||||
evalTest = module: lib.evalModules { modules = testModules ++ [ module ]; };
|
evalTest = module: lib.evalModules {
|
||||||
|
modules = testModules ++ [ module ];
|
||||||
|
class = "nixosTest";
|
||||||
|
};
|
||||||
runTest = module: (evalTest ({ config, ... }: { imports = [ module ]; result = config.test; })).config.result;
|
runTest = module: (evalTest ({ config, ... }: { imports = [ module ]; result = config.test; })).config.result;
|
||||||
|
|
||||||
testModules = [
|
testModules = [
|
||||||
|
@ -127,7 +127,7 @@ in
|
|||||||
system.nixos-generate-config.configuration = mkDefault ''
|
system.nixos-generate-config.configuration = mkDefault ''
|
||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running `nixos-help`).
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ in
|
|||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It’s perfectly fine and recommended to leave
|
# on your system were taken. It's perfectly fine and recommended to leave
|
||||||
# this value at the release version of the first install of this system.
|
# this value at the release version of the first install of this system.
|
||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
@ -38,6 +38,7 @@ let
|
|||||||
modules = [ {
|
modules = [ {
|
||||||
_module.check = false;
|
_module.check = false;
|
||||||
} ] ++ docModules.eager;
|
} ] ++ docModules.eager;
|
||||||
|
class = "nixos";
|
||||||
specialArgs = specialArgs // {
|
specialArgs = specialArgs // {
|
||||||
pkgs = scrubDerivations "pkgs" pkgs;
|
pkgs = scrubDerivations "pkgs" pkgs;
|
||||||
# allow access to arbitrary options for eager modules, eg for getting
|
# allow access to arbitrary options for eager modules, eg for getting
|
||||||
|
@ -1184,6 +1184,7 @@
|
|||||||
./services/web-apps/jirafeau.nix
|
./services/web-apps/jirafeau.nix
|
||||||
./services/web-apps/jitsi-meet.nix
|
./services/web-apps/jitsi-meet.nix
|
||||||
./services/web-apps/kasmweb/default.nix
|
./services/web-apps/kasmweb/default.nix
|
||||||
|
./services/web-apps/kavita.nix
|
||||||
./services/web-apps/keycloak.nix
|
./services/web-apps/keycloak.nix
|
||||||
./services/web-apps/komga.nix
|
./services/web-apps/komga.nix
|
||||||
./services/web-apps/lemmy.nix
|
./services/web-apps/lemmy.nix
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
{pkgs, config, lib, ...}:
|
{ pkgs, config, lib, ... }:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.programs.fzf;
|
cfg = config.programs.fzf;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
programs.fzf = {
|
programs.fzf = {
|
||||||
fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf");
|
fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf");
|
||||||
@ -11,17 +12,21 @@ in {
|
|||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf;
|
environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf;
|
||||||
|
|
||||||
programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
|
programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
|
||||||
source ${pkgs.fzf}/share/fzf/completion.bash
|
source ${pkgs.fzf}/share/fzf/completion.bash
|
||||||
'' + optionalString cfg.keybindings ''
|
'' + optionalString cfg.keybindings ''
|
||||||
source ${pkgs.fzf}/share/fzf/key-bindings.bash
|
source ${pkgs.fzf}/share/fzf/key-bindings.bash
|
||||||
'';
|
'';
|
||||||
|
|
||||||
programs.zsh.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
|
programs.zsh.interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable)
|
||||||
|
(optionalString cfg.fuzzyCompletion ''
|
||||||
source ${pkgs.fzf}/share/fzf/completion.zsh
|
source ${pkgs.fzf}/share/fzf/completion.zsh
|
||||||
'' + optionalString cfg.keybindings ''
|
'' + optionalString cfg.keybindings ''
|
||||||
source ${pkgs.fzf}/share/fzf/key-bindings.zsh
|
source ${pkgs.fzf}/share/fzf/key-bindings.zsh
|
||||||
'';
|
'');
|
||||||
|
|
||||||
|
programs.zsh.ohMyZsh.plugins = optional (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ];
|
||||||
};
|
};
|
||||||
meta.maintainers = with maintainers; [ laalsaas ];
|
meta.maintainers = with maintainers; [ laalsaas ];
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ let
|
|||||||
env = {
|
env = {
|
||||||
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
|
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
|
||||||
DEBUG = "0";
|
DEBUG = "0";
|
||||||
|
DEBUG_TOOLBAR = "0";
|
||||||
MEDIA_ROOT = "/var/lib/tandoor-recipes";
|
MEDIA_ROOT = "/var/lib/tandoor-recipes";
|
||||||
} // optionalAttrs (config.time.timeZone != null) {
|
} // optionalAttrs (config.time.timeZone != null) {
|
||||||
TIMEZONE = config.time.timeZone;
|
TIMEZONE = config.time.timeZone;
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let cfg = config.services.cloud-init;
|
let
|
||||||
|
cfg = config.services.cloud-init;
|
||||||
path = with pkgs; [
|
path = with pkgs; [
|
||||||
cloud-init
|
cloud-init
|
||||||
iproute2
|
iproute2
|
||||||
@ -11,9 +12,12 @@ let cfg = config.services.cloud-init;
|
|||||||
shadow
|
shadow
|
||||||
util-linux
|
util-linux
|
||||||
busybox
|
busybox
|
||||||
] ++ optional cfg.btrfs.enable btrfs-progs
|
]
|
||||||
|
++ optional cfg.btrfs.enable btrfs-progs
|
||||||
++ optional cfg.ext4.enable e2fsprogs
|
++ optional cfg.ext4.enable e2fsprogs
|
||||||
;
|
;
|
||||||
|
settingsFormat = pkgs.formats.yaml { };
|
||||||
|
cfgfile = settingsFormat.generate "cloud.cfg" cfg.settings;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@ -21,7 +25,7 @@ in
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = lib.mdDoc ''
|
description = mdDoc ''
|
||||||
Enable the cloud-init service. This services reads
|
Enable the cloud-init service. This services reads
|
||||||
configuration metadata in a cloud environment and configures
|
configuration metadata in a cloud environment and configures
|
||||||
the machine according to this metadata.
|
the machine according to this metadata.
|
||||||
@ -40,7 +44,7 @@ in
|
|||||||
btrfs.enable = mkOption {
|
btrfs.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = lib.mdDoc ''
|
description = mdDoc ''
|
||||||
Allow the cloud-init service to operate `btrfs` filesystem.
|
Allow the cloud-init service to operate `btrfs` filesystem.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -48,7 +52,7 @@ in
|
|||||||
ext4.enable = mkOption {
|
ext4.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = lib.mdDoc ''
|
description = mdDoc ''
|
||||||
Allow the cloud-init service to operate `ext4` filesystem.
|
Allow the cloud-init service to operate `ext4` filesystem.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -56,81 +60,106 @@ in
|
|||||||
network.enable = mkOption {
|
network.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = lib.mdDoc ''
|
description = mdDoc ''
|
||||||
Allow the cloud-init service to configure network interfaces
|
Allow the cloud-init service to configure network interfaces
|
||||||
through systemd-networkd.
|
through systemd-networkd.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings = mkOption {
|
||||||
|
description = mdDoc ''
|
||||||
|
Structured cloud-init configuration.
|
||||||
|
'';
|
||||||
|
type = types.submodule {
|
||||||
|
freeformType = settingsFormat.type;
|
||||||
|
};
|
||||||
|
default = { };
|
||||||
|
};
|
||||||
|
|
||||||
config = mkOption {
|
config = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = ''
|
default = "";
|
||||||
system_info:
|
description = mdDoc ''
|
||||||
distro: nixos
|
raw cloud-init configuration.
|
||||||
network:
|
|
||||||
renderers: [ 'networkd' ]
|
|
||||||
users:
|
|
||||||
- root
|
|
||||||
|
|
||||||
disable_root: false
|
Takes precedence over the `settings` option if set.
|
||||||
preserve_hostname: false
|
|
||||||
|
|
||||||
cloud_init_modules:
|
|
||||||
- migrator
|
|
||||||
- seed_random
|
|
||||||
- bootcmd
|
|
||||||
- write-files
|
|
||||||
- growpart
|
|
||||||
- resizefs
|
|
||||||
- update_hostname
|
|
||||||
- resolv_conf
|
|
||||||
- ca-certs
|
|
||||||
- rsyslog
|
|
||||||
- users-groups
|
|
||||||
|
|
||||||
cloud_config_modules:
|
|
||||||
- disk_setup
|
|
||||||
- mounts
|
|
||||||
- ssh-import-id
|
|
||||||
- set-passwords
|
|
||||||
- timezone
|
|
||||||
- disable-ec2-metadata
|
|
||||||
- runcmd
|
|
||||||
- ssh
|
|
||||||
|
|
||||||
cloud_final_modules:
|
|
||||||
- rightscale_userdata
|
|
||||||
- scripts-vendor
|
|
||||||
- scripts-per-once
|
|
||||||
- scripts-per-boot
|
|
||||||
- scripts-per-instance
|
|
||||||
- scripts-user
|
|
||||||
- ssh-authkey-fingerprints
|
|
||||||
- keys-to-console
|
|
||||||
- phone-home
|
|
||||||
- final-message
|
|
||||||
- power-state-change
|
|
||||||
'';
|
'';
|
||||||
description = lib.mdDoc "cloud-init configuration.";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = {
|
||||||
|
services.cloud-init.settings = {
|
||||||
|
system_info = mkDefault {
|
||||||
|
distro = "nixos";
|
||||||
|
network = {
|
||||||
|
renderers = [ "networkd" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
environment.etc."cloud/cloud.cfg".text = cfg.config;
|
users = mkDefault [ "root" ];
|
||||||
|
disable_root = mkDefault false;
|
||||||
|
preserve_hostname = mkDefault false;
|
||||||
|
|
||||||
|
cloud_init_modules = mkDefault [
|
||||||
|
"migrator"
|
||||||
|
"seed_random"
|
||||||
|
"bootcmd"
|
||||||
|
"write-files"
|
||||||
|
"growpart"
|
||||||
|
"resizefs"
|
||||||
|
"update_hostname"
|
||||||
|
"resolv_conf"
|
||||||
|
"ca-certs"
|
||||||
|
"rsyslog"
|
||||||
|
"users-groups"
|
||||||
|
];
|
||||||
|
|
||||||
|
cloud_config_modules = mkDefault [
|
||||||
|
"disk_setup"
|
||||||
|
"mounts"
|
||||||
|
"ssh-import-id"
|
||||||
|
"set-passwords"
|
||||||
|
"timezone"
|
||||||
|
"disable-ec2-metadata"
|
||||||
|
"runcmd"
|
||||||
|
"ssh"
|
||||||
|
];
|
||||||
|
|
||||||
|
cloud_final_modules = mkDefault [
|
||||||
|
"rightscale_userdata"
|
||||||
|
"scripts-vendor"
|
||||||
|
"scripts-per-once"
|
||||||
|
"scripts-per-boot"
|
||||||
|
"scripts-per-instance"
|
||||||
|
"scripts-user"
|
||||||
|
"ssh-authkey-fingerprints"
|
||||||
|
"keys-to-console"
|
||||||
|
"phone-home"
|
||||||
|
"final-message"
|
||||||
|
"power-state-change"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
} // (mkIf cfg.enable {
|
||||||
|
|
||||||
|
environment.etc."cloud/cloud.cfg" =
|
||||||
|
if cfg.config == "" then
|
||||||
|
{ source = cfgfile; }
|
||||||
|
else
|
||||||
|
{ text = cfg.config; }
|
||||||
|
;
|
||||||
|
|
||||||
systemd.network.enable = cfg.network.enable;
|
systemd.network.enable = cfg.network.enable;
|
||||||
|
|
||||||
systemd.services.cloud-init-local =
|
systemd.services.cloud-init-local = {
|
||||||
{ description = "Initial cloud-init job (pre-networking)";
|
description = "Initial cloud-init job (pre-networking)";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
before = ["systemd-networkd.service"];
|
before = [ "systemd-networkd.service" ];
|
||||||
path = path;
|
path = path;
|
||||||
serviceConfig =
|
serviceConfig = {
|
||||||
{ Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${pkgs.cloud-init}/bin/cloud-init init --local";
|
ExecStart = "${pkgs.cloud-init}/bin/cloud-init init --local";
|
||||||
RemainAfterExit = "yes";
|
RemainAfterExit = "yes";
|
||||||
TimeoutSec = "infinity";
|
TimeoutSec = "infinity";
|
||||||
@ -138,17 +167,21 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.cloud-init =
|
systemd.services.cloud-init = {
|
||||||
{ description = "Initial cloud-init job (metadata service crawler)";
|
description = "Initial cloud-init job (metadata service crawler)";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
wants = [ "network-online.target" "cloud-init-local.service"
|
wants = [
|
||||||
"sshd.service" "sshd-keygen.service" ];
|
"network-online.target"
|
||||||
|
"cloud-init-local.service"
|
||||||
|
"sshd.service"
|
||||||
|
"sshd-keygen.service"
|
||||||
|
];
|
||||||
after = [ "network-online.target" "cloud-init-local.service" ];
|
after = [ "network-online.target" "cloud-init-local.service" ];
|
||||||
before = [ "sshd.service" "sshd-keygen.service" ];
|
before = [ "sshd.service" "sshd-keygen.service" ];
|
||||||
requires = [ "network.target"];
|
requires = [ "network.target" ];
|
||||||
path = path;
|
path = path;
|
||||||
serviceConfig =
|
serviceConfig = {
|
||||||
{ Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${pkgs.cloud-init}/bin/cloud-init init";
|
ExecStart = "${pkgs.cloud-init}/bin/cloud-init init";
|
||||||
RemainAfterExit = "yes";
|
RemainAfterExit = "yes";
|
||||||
TimeoutSec = "infinity";
|
TimeoutSec = "infinity";
|
||||||
@ -156,15 +189,15 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.cloud-config =
|
systemd.services.cloud-config = {
|
||||||
{ description = "Apply the settings specified in cloud-config";
|
description = "Apply the settings specified in cloud-config";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
wants = [ "network-online.target" ];
|
wants = [ "network-online.target" ];
|
||||||
after = [ "network-online.target" "syslog.target" "cloud-config.target" ];
|
after = [ "network-online.target" "syslog.target" "cloud-config.target" ];
|
||||||
|
|
||||||
path = path;
|
path = path;
|
||||||
serviceConfig =
|
serviceConfig = {
|
||||||
{ Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${pkgs.cloud-init}/bin/cloud-init modules --mode=config";
|
ExecStart = "${pkgs.cloud-init}/bin/cloud-init modules --mode=config";
|
||||||
RemainAfterExit = "yes";
|
RemainAfterExit = "yes";
|
||||||
TimeoutSec = "infinity";
|
TimeoutSec = "infinity";
|
||||||
@ -172,15 +205,15 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.cloud-final =
|
systemd.services.cloud-final = {
|
||||||
{ description = "Execute cloud user/final scripts";
|
description = "Execute cloud user/final scripts";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
wants = [ "network-online.target" ];
|
wants = [ "network-online.target" ];
|
||||||
after = [ "network-online.target" "syslog.target" "cloud-config.service" "rc-local.service" ];
|
after = [ "network-online.target" "syslog.target" "cloud-config.service" "rc-local.service" ];
|
||||||
requires = [ "cloud-config.target" ];
|
requires = [ "cloud-config.target" ];
|
||||||
path = path;
|
path = path;
|
||||||
serviceConfig =
|
serviceConfig = {
|
||||||
{ Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${pkgs.cloud-init}/bin/cloud-init modules --mode=final";
|
ExecStart = "${pkgs.cloud-init}/bin/cloud-init modules --mode=final";
|
||||||
RemainAfterExit = "yes";
|
RemainAfterExit = "yes";
|
||||||
TimeoutSec = "infinity";
|
TimeoutSec = "infinity";
|
||||||
@ -188,9 +221,9 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.targets.cloud-config =
|
systemd.targets.cloud-config = {
|
||||||
{ description = "Cloud-config availability";
|
description = "Cloud-config availability";
|
||||||
requires = [ "cloud-init-local.service" "cloud-init.service" ];
|
requires = [ "cloud-init-local.service" "cloud-init.service" ];
|
||||||
};
|
};
|
||||||
};
|
});
|
||||||
}
|
}
|
||||||
|
83
nixos/modules/services/web-apps/kavita.nix
Normal file
83
nixos/modules/services/web-apps/kavita.nix
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.kavita;
|
||||||
|
in {
|
||||||
|
options.services.kavita = {
|
||||||
|
enable = lib.mkEnableOption (lib.mdDoc "Kavita reading server");
|
||||||
|
|
||||||
|
user = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "kavita";
|
||||||
|
description = lib.mdDoc "User account under which Kavita runs.";
|
||||||
|
};
|
||||||
|
|
||||||
|
package = lib.mkPackageOptionMD pkgs "kavita" { };
|
||||||
|
|
||||||
|
dataDir = lib.mkOption {
|
||||||
|
default = "/var/lib/kavita";
|
||||||
|
type = lib.types.str;
|
||||||
|
description = lib.mdDoc "The directory where Kavita stores its state.";
|
||||||
|
};
|
||||||
|
|
||||||
|
tokenKeyFile = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
A file containing the TokenKey, a secret with at 128+ bits.
|
||||||
|
It can be generated with `head -c 32 /dev/urandom | base64`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
port = lib.mkOption {
|
||||||
|
default = 5000;
|
||||||
|
type = lib.types.port;
|
||||||
|
description = lib.mdDoc "Port to bind to.";
|
||||||
|
};
|
||||||
|
ipAdresses = lib.mkOption {
|
||||||
|
default = ["0.0.0.0" "::"];
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
description = lib.mdDoc "IP Adresses to bind to. The default is to bind
|
||||||
|
to all IPv4 and IPv6 addresses.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
systemd.services.kavita = {
|
||||||
|
description = "Kavita";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
preStart = ''
|
||||||
|
umask u=rwx,g=rx,o=
|
||||||
|
cat > "${cfg.dataDir}/config/appsettings.json" <<EOF
|
||||||
|
{
|
||||||
|
"TokenKey": "$(cat ${cfg.tokenKeyFile})",
|
||||||
|
"Port": ${toString cfg.port},
|
||||||
|
"IpAddresses": "${lib.concatStringsSep "," cfg.ipAdresses}"
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
WorkingDirectory = cfg.dataDir;
|
||||||
|
ExecStart = "${lib.getExe cfg.package}";
|
||||||
|
Restart = "always";
|
||||||
|
User = cfg.user;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.dataDir}' 0750 ${cfg.user} ${cfg.user} - -"
|
||||||
|
"d '${cfg.dataDir}/config' 0750 ${cfg.user} ${cfg.user} - -"
|
||||||
|
];
|
||||||
|
|
||||||
|
users = {
|
||||||
|
users.${cfg.user} = {
|
||||||
|
description = "kavita service user";
|
||||||
|
isSystemUser = true;
|
||||||
|
group = cfg.user;
|
||||||
|
home = cfg.dataDir;
|
||||||
|
};
|
||||||
|
groups.${cfg.user} = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ misterio77 ];
|
||||||
|
}
|
@ -272,7 +272,7 @@ let
|
|||||||
suggestedRootDevice = {
|
suggestedRootDevice = {
|
||||||
"efi_bootloading_with_default_fs" = "${cfg.bootLoaderDevice}2";
|
"efi_bootloading_with_default_fs" = "${cfg.bootLoaderDevice}2";
|
||||||
"legacy_bootloading_with_default_fs" = "${cfg.bootLoaderDevice}1";
|
"legacy_bootloading_with_default_fs" = "${cfg.bootLoaderDevice}1";
|
||||||
"direct_boot_with_default_fs" = lookupDriveDeviceName "root" cfg.qemu.drives;
|
"direct_boot_with_default_fs" = cfg.bootLoaderDevice;
|
||||||
# This will enforce a NixOS module type checking error
|
# This will enforce a NixOS module type checking error
|
||||||
# to ask explicitly the user to set a rootDevice.
|
# to ask explicitly the user to set a rootDevice.
|
||||||
# As it will look like `rootDevice = lib.mkDefault null;` after
|
# As it will look like `rootDevice = lib.mkDefault null;` after
|
||||||
@ -344,14 +344,14 @@ in
|
|||||||
|
|
||||||
virtualisation.bootLoaderDevice =
|
virtualisation.bootLoaderDevice =
|
||||||
mkOption {
|
mkOption {
|
||||||
type = types.nullOr types.path;
|
type = types.path;
|
||||||
default = if cfg.useBootLoader then lookupDriveDeviceName "root" cfg.qemu.drives else null;
|
default = lookupDriveDeviceName "root" cfg.qemu.drives;
|
||||||
defaultText = literalExpression ''if cfg.useBootLoader then lookupDriveDeviceName "root" cfg.qemu.drives else null;'';
|
defaultText = literalExpression ''lookupDriveDeviceName "root" cfg.qemu.drives'';
|
||||||
example = "/dev/vda";
|
example = "/dev/vda";
|
||||||
description =
|
description =
|
||||||
lib.mdDoc ''
|
lib.mdDoc ''
|
||||||
The disk to be used for the boot filesystem.
|
The disk to be used for the boot filesystem.
|
||||||
By default, it is the same disk as the root filesystem if you use a bootloader, otherwise it's null.
|
By default, it is the same disk as the root filesystem.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -863,16 +863,6 @@ in
|
|||||||
The address must be in the default VLAN (10.0.2.0/24).
|
The address must be in the default VLAN (10.0.2.0/24).
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
{ assertion = cfg.useBootLoader -> cfg.diskImage != null;
|
|
||||||
message =
|
|
||||||
''
|
|
||||||
Currently, bootloaders cannot be used with a tmpfs disk image.
|
|
||||||
It would require some rework in the boot configuration mechanism
|
|
||||||
to detect the proper boot partition in UEFI scenarios for example.
|
|
||||||
|
|
||||||
If you are interested into this feature, please open an issue or open a pull request.
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
]));
|
]));
|
||||||
|
|
||||||
warnings =
|
warnings =
|
||||||
@ -899,8 +889,7 @@ in
|
|||||||
# legacy and UEFI. In order to avoid this, we have to put "nodev" to force UEFI-only installs.
|
# legacy and UEFI. In order to avoid this, we have to put "nodev" to force UEFI-only installs.
|
||||||
# Otherwise, we set the proper bootloader device for this.
|
# Otherwise, we set the proper bootloader device for this.
|
||||||
# FIXME: make a sense of this mess wrt to multiple ESP present in the system, probably use boot.efiSysMountpoint?
|
# FIXME: make a sense of this mess wrt to multiple ESP present in the system, probably use boot.efiSysMountpoint?
|
||||||
boot.loader.grub.enable = cfg.useBootLoader;
|
boot.loader.grub.device = mkVMOverride (if cfg.useEFIBoot then "nodev" else cfg.bootLoaderDevice);
|
||||||
boot.loader.grub.device = mkIf cfg.useBootLoader (mkVMOverride (if cfg.useEFIBoot then "nodev" else cfg.bootLoaderDevice));
|
|
||||||
boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
|
boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
|
||||||
virtualisation.rootDevice = mkDefault suggestedRootDevice;
|
virtualisation.rootDevice = mkDefault suggestedRootDevice;
|
||||||
|
|
||||||
@ -908,13 +897,13 @@ in
|
|||||||
|
|
||||||
boot.loader.supportsInitrdSecrets = mkIf (!cfg.useBootLoader) (mkVMOverride false);
|
boot.loader.supportsInitrdSecrets = mkIf (!cfg.useBootLoader) (mkVMOverride false);
|
||||||
|
|
||||||
boot.initrd.extraUtilsCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable && cfg.diskImage != null)
|
boot.initrd.extraUtilsCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable)
|
||||||
''
|
''
|
||||||
# We need mke2fs in the initrd.
|
# We need mke2fs in the initrd.
|
||||||
copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
|
copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
|
||||||
'';
|
'';
|
||||||
|
|
||||||
boot.initrd.postDeviceCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable && cfg.diskImage != null)
|
boot.initrd.postDeviceCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable)
|
||||||
''
|
''
|
||||||
# If the disk image appears to be empty, run mke2fs to
|
# If the disk image appears to be empty, run mke2fs to
|
||||||
# initialise.
|
# initialise.
|
||||||
|
@ -352,6 +352,7 @@ in {
|
|||||||
kafka = handleTest ./kafka.nix {};
|
kafka = handleTest ./kafka.nix {};
|
||||||
kanidm = handleTest ./kanidm.nix {};
|
kanidm = handleTest ./kanidm.nix {};
|
||||||
karma = handleTest ./karma.nix {};
|
karma = handleTest ./karma.nix {};
|
||||||
|
kavita = handleTest ./kavita.nix {};
|
||||||
kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
|
kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
|
||||||
kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
|
kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
|
||||||
kea = handleTest ./kea.nix {};
|
kea = handleTest ./kea.nix {};
|
||||||
|
36
nixos/tests/kavita.nix
Normal file
36
nixos/tests/kavita.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||||
|
name = "kavita";
|
||||||
|
meta = with pkgs.lib.maintainers; {
|
||||||
|
maintainers = [ misterio77 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
kavita = { config, pkgs, ... }: {
|
||||||
|
services.kavita = {
|
||||||
|
enable = true;
|
||||||
|
port = 5000;
|
||||||
|
tokenKeyFile = builtins.toFile "kavita.key" "QfpjFvjT83BLtZ74GE3U3Q==";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = let
|
||||||
|
regUrl = "http://kavita:5000/api/Account/register";
|
||||||
|
payload = builtins.toFile "payload.json" (builtins.toJSON {
|
||||||
|
username = "foo";
|
||||||
|
password = "correcthorsebatterystaple";
|
||||||
|
email = "foo@bar";
|
||||||
|
});
|
||||||
|
in ''
|
||||||
|
kavita.start
|
||||||
|
kavita.wait_for_unit("kavita.service")
|
||||||
|
|
||||||
|
# Check that static assets are working
|
||||||
|
kavita.wait_until_succeeds("curl http://kavita:5000/site.webmanifest | grep Kavita")
|
||||||
|
|
||||||
|
# Check that registration is working
|
||||||
|
kavita.succeed("curl -fX POST ${regUrl} --json @${payload}")
|
||||||
|
# But only for the first one
|
||||||
|
kavita.fail("curl -fX POST ${regUrl} --json @${payload}")
|
||||||
|
'';
|
||||||
|
})
|
47
pkgs/applications/audio/butt/default.nix
Normal file
47
pkgs/applications/audio/butt/default.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ lib, stdenv, fetchurl, pkg-config, fltk13, portaudio, lame, libvorbis, libogg
|
||||||
|
, flac, libopus, libsamplerate, fdk_aac, dbus, openssl, curl }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "butt";
|
||||||
|
version = "0.1.37";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
|
||||||
|
hash = "sha256-FI8xRCaGSMC6KEf5v87Q4syO3kVPWXYXgnL24+myRKo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
# remove advertising
|
||||||
|
substituteInPlace src/FLTK/flgui.cpp \
|
||||||
|
--replace 'idata_radio_co_badge, 124, 61, 4,' 'nullptr, 0, 0, 0,'
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
fltk13
|
||||||
|
portaudio
|
||||||
|
lame
|
||||||
|
libvorbis
|
||||||
|
libogg
|
||||||
|
flac
|
||||||
|
libopus
|
||||||
|
libsamplerate
|
||||||
|
fdk_aac
|
||||||
|
dbus
|
||||||
|
openssl
|
||||||
|
curl
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
cp -r usr/share $out/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description =
|
||||||
|
"butt (broadcast using this tool) is an easy to use, multi OS streaming tool";
|
||||||
|
homepage = "https://danielnoethen.de/butt/";
|
||||||
|
license = lib.licenses.gpl2;
|
||||||
|
maintainers = with lib.maintainers; [ ehmry ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,11 +1,13 @@
|
|||||||
{ mkDerivation
|
{ mkDerivation
|
||||||
, alsa-lib
|
, alsa-lib
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
|
, evince
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, flac
|
, flac
|
||||||
, gcc11
|
, gcc12
|
||||||
, lib
|
, lib
|
||||||
, libmicrohttpd
|
, libmicrohttpd
|
||||||
|
, libusb-compat-0_1
|
||||||
, llvmPackages_10
|
, llvmPackages_10
|
||||||
, qtcharts
|
, qtcharts
|
||||||
, qtdeclarative
|
, qtdeclarative
|
||||||
@ -18,15 +20,15 @@
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "hqplayer-desktop";
|
pname = "hqplayer-desktop";
|
||||||
version = "4.13.1-38";
|
version = "4.22.0-65";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.signalyst.eu/bins/hqplayer/fc34/hqplayer4desktop-${version}.fc34.x86_64.rpm";
|
url = "https://www.signalyst.eu/bins/hqplayer4desktop-${version}.fc36.x86_64.rpm";
|
||||||
sha256 = "sha256-DEZWEGk5SfhcNQddehCBVbfeTH8KfVCdaxQ+F3MrRe8=";
|
sha256 = "sha256-PA8amsqy4O9cMruNYVhG+uBiUGQ5WfnZC2ARppmZd7g=";
|
||||||
};
|
};
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
${rpmextract}/bin/rpmextract $src
|
${rpmextract}/bin/rpmextract "$src"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ autoPatchelfHook rpmextract ];
|
nativeBuildInputs = [ autoPatchelfHook rpmextract ];
|
||||||
@ -34,8 +36,9 @@ mkDerivation rec {
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
alsa-lib
|
alsa-lib
|
||||||
flac
|
flac
|
||||||
gcc11.cc.lib
|
gcc12.cc.lib
|
||||||
libmicrohttpd
|
libmicrohttpd
|
||||||
|
libusb-compat-0_1
|
||||||
llvmPackages_10.openmp
|
llvmPackages_10.openmp
|
||||||
qtcharts
|
qtcharts
|
||||||
qtdeclarative
|
qtdeclarative
|
||||||
@ -45,41 +48,52 @@ mkDerivation rec {
|
|||||||
wavpack
|
wavpack
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontPatch = true;
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
# main executable
|
# additional library
|
||||||
mkdir -p $out/bin
|
mkdir -p "$out"/lib
|
||||||
cp ./usr/bin/* $out/bin
|
mv ./opt/hqplayer4desktop/lib/* "$out"/lib
|
||||||
|
|
||||||
# desktop files
|
# main executable
|
||||||
mkdir -p $out/share/applications
|
mkdir -p "$out"/bin
|
||||||
cp ./usr/share/applications/* $out/share/applications
|
mv ./usr/bin/* "$out"/bin
|
||||||
|
|
||||||
# documentation
|
# documentation
|
||||||
mkdir -p $out/share/doc/${pname}
|
mkdir -p "$doc/share/doc/${pname}" "$doc/share/applications"
|
||||||
cp ./usr/share/doc/hqplayer4desktop/* $out/share/doc/${pname}
|
mv ./usr/share/doc/hqplayer4desktop/* "$doc/share/doc/${pname}"
|
||||||
|
mv ./usr/share/applications/hqplayer4desktop-manual.desktop "$doc/share/applications"
|
||||||
|
|
||||||
|
# desktop files
|
||||||
|
mkdir -p "$out/share/applications"
|
||||||
|
mv ./usr/share/applications/* "$out/share/applications"
|
||||||
|
|
||||||
# pixmaps
|
# pixmaps
|
||||||
mkdir -p $out/share/pixmaps
|
mkdir -p "$out/share/pixmaps"
|
||||||
cp ./usr/share/pixmaps/* $out/share/pixmaps
|
mv ./usr/share/pixmaps/* "$out/share/pixmaps"
|
||||||
|
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# doc has dependencies on evince that is not required by main app
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
for desktopFile in $out/share/applications/*; do
|
for desktopFile in $out/share/applications/hqplayer4{desktop-nostyle,desktop-highdpi,-client,desktop}.desktop; do
|
||||||
substituteInPlace "$desktopFile" \
|
substituteInPlace "$desktopFile" \
|
||||||
--replace /usr/bin/ $out/bin/ \
|
--replace /usr/bin "$out"/bin
|
||||||
--replace /usr/share/doc/ $out/share/doc/
|
|
||||||
done
|
done
|
||||||
|
substituteInPlace "$doc/share/applications/hqplayer4desktop-manual.desktop" \
|
||||||
|
--replace /usr/share/doc/hqplayer4desktop "$doc/share/doc/${pname}" \
|
||||||
|
--replace evince "${evince}/bin/evince"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
patchelf --replace-needed libomp.so.5 libomp.so $out/bin/.hqplayer4desktop-wrapped
|
patchelf --replace-needed libomp.so.5 libomp.so "$out/bin/.hqplayer4desktop-wrapped"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
@ -89,7 +103,5 @@ mkDerivation rec {
|
|||||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ lovesegfault ];
|
maintainers = with maintainers; [ lovesegfault ];
|
||||||
# src link returns 403
|
|
||||||
broken = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,6 @@ pythonPackages.buildPythonApplication rec {
|
|||||||
homepage = "https://github.com/pimusicbox/mopidy-musicbox-webclient";
|
homepage = "https://github.com/pimusicbox/mopidy-musicbox-webclient";
|
||||||
changelog = "https://github.com/pimusicbox/mopidy-musicbox-webclient/blob/v${version}/CHANGELOG.rst";
|
changelog = "https://github.com/pimusicbox/mopidy-musicbox-webclient/blob/v${version}/CHANGELOG.rst";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ spwhitt ];
|
maintainers = with maintainers; [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,6 @@ pythonPackages.buildPythonApplication rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Mopidy extension for playing music from SoundCloud";
|
description = "Mopidy extension for playing music from SoundCloud";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = [ maintainers.spwhitt ];
|
maintainers = [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,6 @@ python3.pkgs.buildPythonApplication rec {
|
|||||||
description = "Mopidy extension for playing music from YouTube";
|
description = "Mopidy extension for playing music from YouTube";
|
||||||
homepage = "https://github.com/natumbri/mopidy-youtube";
|
homepage = "https://github.com/natumbri/mopidy-youtube";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ spwhitt ];
|
maintainers = with maintainers; [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
|
"-DCMAKE_INCLUDE_PATH=${lib.getDev libjack2}/include/jack;${lib.getDev libpulseaudio}/include/pulse"
|
||||||
"-DENABLE_JACK=ON"
|
"-DENABLE_JACK=ON"
|
||||||
"-DENABLE_PULSEAUDIO=ON"
|
"-DENABLE_PULSEAUDIO=ON"
|
||||||
];
|
];
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "stellar-core";
|
pname = "stellar-core";
|
||||||
version = "19.9.0";
|
version = "19.10.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "stellar";
|
owner = "stellar";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-00bTqc3YDl/o03Y7NBsgGFwUzb2zYe/A3ccpHPIann8=";
|
sha256 = "sha256-BcZsj2TbeJW91aiZ2I7NbDa+rgjfs6lQUsWOnhFQXtw=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,13 +8,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "emptty";
|
pname = "emptty";
|
||||||
version = "0.9.1";
|
version = "0.10.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tvrzna";
|
owner = "tvrzna";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-CbTPJgnKMWMXdG6Hr8xT9ae4Q9MxAfhITn5WSCzCmI4=";
|
hash = "sha256-8JVF3XNNzmcaJCINnv8B6l2IB5c8q/AvGOzwAlIFYq8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pam libX11 ];
|
buildInputs = [ pam libX11 ];
|
||||||
|
@ -522,6 +522,13 @@ let
|
|||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tokei = super.tokei.overrideAttrs (attrs: {
|
||||||
|
postPatch = attrs.postPatch or "" + ''
|
||||||
|
substituteInPlace tokei.el \
|
||||||
|
--replace 'tokei-program "tokei"' 'tokei-program "${lib.getExe pkgs.tokei}"'
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
|
treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
|
||||||
# searches for Git at build time
|
# searches for Git at build time
|
||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
|
@ -775,12 +775,12 @@ final: prev:
|
|||||||
|
|
||||||
auto-session = buildVimPluginFrom2Nix {
|
auto-session = buildVimPluginFrom2Nix {
|
||||||
pname = "auto-session";
|
pname = "auto-session";
|
||||||
version = "2023-04-29";
|
version = "2023-05-05";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "rmagatti";
|
owner = "rmagatti";
|
||||||
repo = "auto-session";
|
repo = "auto-session";
|
||||||
rev = "9752e6b11327329ed3ba5ec2bec36abe4535a8e0";
|
rev = "21033c6815f249a7839c3a85fc8a6b44d74925c9";
|
||||||
sha256 = "0hqh8mzs9vxfasxb1sr4vx2igcjl9f9vmf5spd7vriaxi331sf1p";
|
sha256 = "1xw2azfkwn2q0nz3g67wy6wkaqlmhxy26x7bnjl7n21lh2gxv7fm";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/rmagatti/auto-session/";
|
meta.homepage = "https://github.com/rmagatti/auto-session/";
|
||||||
};
|
};
|
||||||
@ -2827,6 +2827,18 @@ final: prev:
|
|||||||
meta.homepage = "https://github.com/sainnhe/edge/";
|
meta.homepage = "https://github.com/sainnhe/edge/";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
edgedb-vim = buildVimPluginFrom2Nix {
|
||||||
|
pname = "edgedb-vim";
|
||||||
|
version = "2022-10-26";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "edgedb";
|
||||||
|
repo = "edgedb-vim";
|
||||||
|
rev = "a888b285a30ede6f5fcb03617733b3974356c450";
|
||||||
|
sha256 = "012jd6652f681ja22gvnrnlvsn1fllj9vmf6idghcdzz6lyjir07";
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/edgedb/edgedb-vim/";
|
||||||
|
};
|
||||||
|
|
||||||
editorconfig-vim = buildVimPluginFrom2Nix {
|
editorconfig-vim = buildVimPluginFrom2Nix {
|
||||||
pname = "editorconfig-vim";
|
pname = "editorconfig-vim";
|
||||||
version = "2023-03-22";
|
version = "2023-03-22";
|
||||||
@ -3288,12 +3300,12 @@ final: prev:
|
|||||||
|
|
||||||
fzf-lua = buildVimPluginFrom2Nix {
|
fzf-lua = buildVimPluginFrom2Nix {
|
||||||
pname = "fzf-lua";
|
pname = "fzf-lua";
|
||||||
version = "2023-04-27";
|
version = "2023-05-05";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ibhagwan";
|
owner = "ibhagwan";
|
||||||
repo = "fzf-lua";
|
repo = "fzf-lua";
|
||||||
rev = "79c7c3480cc363b3d4ecdfcb8b56623d9decd570";
|
rev = "2dbedc91386a78ce08967135969d39392f7f36d7";
|
||||||
sha256 = "0vay2k6hv30fhchjd59m4xqdyl9642xs5gjlc1rrb9v3s2xs9g53";
|
sha256 = "11850qbyr83bh5im75lf74ssizw956gf3n34s3wcqdhxx6nv5xbp";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
|
meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
|
||||||
};
|
};
|
||||||
@ -6419,12 +6431,12 @@ final: prev:
|
|||||||
|
|
||||||
nvim-highlite = buildVimPluginFrom2Nix {
|
nvim-highlite = buildVimPluginFrom2Nix {
|
||||||
pname = "nvim-highlite";
|
pname = "nvim-highlite";
|
||||||
version = "2023-05-04";
|
version = "2023-05-05";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Iron-E";
|
owner = "Iron-E";
|
||||||
repo = "nvim-highlite";
|
repo = "nvim-highlite";
|
||||||
rev = "624fddaf856add7a4a9a40b33fad3bb3818f4fc8";
|
rev = "d5654c3a8951f6c503cb8083a0e9dbfc35a5f59c";
|
||||||
sha256 = "1r65wcpbdqi05mpa9382bawv32l2r0s8avr9in5q07sl66wd59v8";
|
sha256 = "1c00jijxqa83xbg3spn8830h8gmn1mqh6m4jifhahglanh3y5228";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
|
meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
|
||||||
};
|
};
|
||||||
@ -14305,12 +14317,12 @@ final: prev:
|
|||||||
|
|
||||||
vista-vim = buildVimPluginFrom2Nix {
|
vista-vim = buildVimPluginFrom2Nix {
|
||||||
pname = "vista.vim";
|
pname = "vista.vim";
|
||||||
version = "2023-04-17";
|
version = "2023-05-05";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "liuchengxu";
|
owner = "liuchengxu";
|
||||||
repo = "vista.vim";
|
repo = "vista.vim";
|
||||||
rev = "cbe87c86505d80fe5ad7fd508f2d92185f2e2aa1";
|
rev = "522a5e0ef955c037d530d5c89944043c92e4e8da";
|
||||||
sha256 = "0vx99bhrgwr72az85imp7qwni54q9kk1v9vhdbglfc4h1rd3fzm5";
|
sha256 = "0g9vjji4760824q7w0ik89b1wrq0k0rv54c3wmpxk9hxfd34wlb1";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/liuchengxu/vista.vim/";
|
meta.homepage = "https://github.com/liuchengxu/vista.vim/";
|
||||||
};
|
};
|
||||||
|
@ -236,6 +236,7 @@ https://github.com/Mofiqul/dracula.nvim/,HEAD,
|
|||||||
https://github.com/stevearc/dressing.nvim/,,
|
https://github.com/stevearc/dressing.nvim/,,
|
||||||
https://github.com/Shougo/echodoc.vim/,,
|
https://github.com/Shougo/echodoc.vim/,,
|
||||||
https://github.com/sainnhe/edge/,,
|
https://github.com/sainnhe/edge/,,
|
||||||
|
https://github.com/edgedb/edgedb-vim/,,
|
||||||
https://github.com/editorconfig/editorconfig-vim/,,
|
https://github.com/editorconfig/editorconfig-vim/,,
|
||||||
https://github.com/gpanders/editorconfig.nvim/,,
|
https://github.com/gpanders/editorconfig.nvim/,,
|
||||||
https://github.com/elixir-tools/elixir-tools.nvim/,HEAD,
|
https://github.com/elixir-tools/elixir-tools.nvim/,HEAD,
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
hashesFile = builtins.fromJSON (builtins.readFile ./hashes.json);
|
hashesFile = lib.importJSON ./hashes.json;
|
||||||
|
|
||||||
getCoreSrc = core:
|
getCoreSrc = core:
|
||||||
fetchFromGitHub (builtins.getAttr core hashesFile);
|
fetchFromGitHub (builtins.getAttr core hashesFile);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
let
|
let
|
||||||
|
|
||||||
pname = "1password";
|
pname = "1password";
|
||||||
version = if channel == "stable" then "8.10.4" else "8.10.5-10.BETA";
|
version = if channel == "stable" then "8.10.4" else "8.10.6-20.BETA";
|
||||||
|
|
||||||
sources = {
|
sources = {
|
||||||
stable = {
|
stable = {
|
||||||
@ -33,19 +33,19 @@ let
|
|||||||
beta = {
|
beta = {
|
||||||
x86_64-linux = {
|
x86_64-linux = {
|
||||||
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
|
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
|
||||||
sha256 = "sha256-GM93nW7kGeC2Mmq1ZtOK72RQc0QHvlWedDLEAmqtPt4=";
|
sha256 = "sha256-zhZF6BlJMlEcjKUv43f5yKv8cOzjX01yiVtIrAgw578=";
|
||||||
};
|
};
|
||||||
aarch64-linux = {
|
aarch64-linux = {
|
||||||
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
|
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
|
||||||
sha256 = "sha256-f0K35utZ/WPv08wRe/ZQPWC/IYiXsf/tBqhKjgeNBHc=";
|
sha256 = "sha256-pzZSV4mKhdm/zGErWSLwaf0WISvYBheGzCgB34ysCe4=";
|
||||||
};
|
};
|
||||||
x86_64-darwin = {
|
x86_64-darwin = {
|
||||||
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
||||||
sha256 = "sha256-zWS1nmRNm2SjMKWRbCJp4DRCzvVsdATdf/EMlpvRz1k=";
|
sha256 = "sha256-2Lbh5WPhBAJxvZ7J8/DDXDHkN8Th595RdA/S4Dwi3+0=";
|
||||||
};
|
};
|
||||||
aarch64-darwin = {
|
aarch64-darwin = {
|
||||||
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
||||||
sha256 = "sha256-fQ98NJI5h0IBvrcsV8GBt9RBWDiyYq0NPtS5B5ikz8k=";
|
sha256 = "sha256-XpVT5yfo6HkvbmZWyoPLD7/M3FrNIKec6yt450bPUxQ=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -3,19 +3,19 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "furtherance";
|
pname = "furtherance";
|
||||||
version = "1.6.0";
|
version = "1.7.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "lakoliu";
|
owner = "lakoliu";
|
||||||
repo = "Furtherance";
|
repo = "Furtherance";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "xshZpwL5AQvYSPoyt9Qutaym5IGBQHWwz4ev3xnVcSk=";
|
sha256 = "sha256-M3k2q32/vMG9uTHk2qqUz0E4ptzxfCOrs9NMjtyxZ5Y=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||||
inherit src;
|
inherit src;
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
sha256 = "J/e8NYd9JjmANj+4Eh3/Uq2/vS711CwERgmJ7i5orNw=";
|
sha256 = "sha256-qLrX3X8wgNrI8G0RgWydVA35cdxcblSUxTKHty+eCds=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
68
pkgs/applications/misc/imaginer/default.nix
Normal file
68
pkgs/applications/misc/imaginer/default.nix
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, appstream-glib
|
||||||
|
, blueprint-compiler
|
||||||
|
, desktop-file-utils
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gettext
|
||||||
|
, glib
|
||||||
|
, gobject-introspection
|
||||||
|
, libadwaita
|
||||||
|
, libsoup_3
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, python3Packages
|
||||||
|
, wrapGAppsHook4
|
||||||
|
}:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "imaginer";
|
||||||
|
version = "0.1.3";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ImaginerApp";
|
||||||
|
repo = "Imaginer";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-x1ZnmfaMfxnITiuFDlMPfTU8KZbd1ME9jDevnlsrbJs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
format = "other";
|
||||||
|
dontWrapGApps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
appstream-glib
|
||||||
|
blueprint-compiler
|
||||||
|
desktop-file-utils
|
||||||
|
gettext
|
||||||
|
glib
|
||||||
|
gobject-introspection
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
wrapGAppsHook4
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libadwaita
|
||||||
|
libsoup_3
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
openai
|
||||||
|
pillow
|
||||||
|
pygobject3
|
||||||
|
requests
|
||||||
|
];
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/ImaginerApp/Imaginer";
|
||||||
|
description = "Imaginer with AI";
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = with maintainers; [ _0xMRTT ];
|
||||||
|
};
|
||||||
|
}
|
@ -9,13 +9,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "mob";
|
pname = "mob";
|
||||||
version = "4.4.0";
|
version = "4.4.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "remotemobprogramming";
|
owner = "remotemobprogramming";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-g2l/XeSyFem2Xi/lVgfbWW+nWHxAcQV/v+2AIqB0apM=";
|
sha256 = "sha256-Ovp+JsNqFcOMk054khSdvPebFsv/fQD1Ghox8J3YcgA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "spicetify-cli";
|
pname = "spicetify-cli";
|
||||||
version = "2.17.2";
|
version = "2.18.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "spicetify";
|
owner = "spicetify";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-WVatvMdCp4BeCe5+hz933OAJIKaR4ChR22nVrl8tmIc=";
|
sha256 = "sha256-k9fbChpHy997Mj+U9n/iiSGDdsHZ22AoYUkCHUMGfbo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-mAtwbYuzkHUqG4fr2JffcM8PmBsBrnHWyl4DvVzfJCw=";
|
vendorHash = "sha256-mAtwbYuzkHUqG4fr2JffcM8PmBsBrnHWyl4DvVzfJCw=";
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
{ lib, fetchFromGitHub }:
|
{ lib, fetchFromGitHub }:
|
||||||
rec {
|
rec {
|
||||||
version = "1.4.4";
|
version = "1.4.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "TandoorRecipes";
|
owner = "TandoorRecipes";
|
||||||
repo = "recipes";
|
repo = "recipes";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-1wqZoOT2Aafbs2P0mL33jw5HkrLIitUcRt6bQQcHx40=";
|
sha256 = "sha256-h424lUm/wmCHXkMW2XejogvH3wL/+J67cG4m8rIWM1U=";
|
||||||
};
|
};
|
||||||
|
|
||||||
yarnSha256 = "sha256-gH0q3pJ2BC5pAU9KSo3C9DDRUnpypoyLOEqKSrkxYrk=";
|
yarnSha256 = "sha256-LJ0uL66tcK6zL8Mkd2UB8dHsslMTtf8wQmgbZdvOT6s=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://tandoor.dev/";
|
homepage = "https://tandoor.dev/";
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
, nixosTests
|
, nixosTests
|
||||||
, python3
|
, python3
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchpatch
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
python = python3.override {
|
python = python3.override {
|
||||||
@ -41,6 +42,12 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
|
|||||||
patches = [
|
patches = [
|
||||||
# Allow setting MEDIA_ROOT through environment variable
|
# Allow setting MEDIA_ROOT through environment variable
|
||||||
./media-root.patch
|
./media-root.patch
|
||||||
|
# Address CVE-2023-31047 on Django 4.2.1+
|
||||||
|
(fetchpatch {
|
||||||
|
name = "fix-multiple-file-field";
|
||||||
|
url = "https://github.com/TandoorRecipes/recipes/pull/2458/commits/6b04c922977317354a367487427b15a8ed619be9.patch";
|
||||||
|
hash = "sha256-KmfjJSrB/4tOWtU7zrDJ/AOG4XlmWy/halw8IEEXdZ0=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python.pkgs; [
|
propagatedBuildInputs = with python.pkgs; [
|
||||||
@ -101,8 +108,10 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
|
|||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
runHook preBuild
|
runHook preBuild
|
||||||
|
|
||||||
# Avoid dependency on django debug toolbar
|
# Disable debug logging
|
||||||
export DEBUG=0
|
export DEBUG=0
|
||||||
|
# Avoid dependency on django debug toolbar
|
||||||
|
export DEBUG_TOOLBAR=0
|
||||||
|
|
||||||
# See https://github.com/TandoorRecipes/recipes/issues/2043
|
# See https://github.com/TandoorRecipes/recipes/issues/2043
|
||||||
mkdir cookbook/static/themes/maps/
|
mkdir cookbook/static/themes/maps/
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchYarnDeps, fixup_yarn_lock, callPackage, nodejs_16 }:
|
{ stdenv, fetchYarnDeps, fixup_yarn_lock, callPackage, nodejs }:
|
||||||
let
|
let
|
||||||
common = callPackage ./common.nix { };
|
common = callPackage ./common.nix { };
|
||||||
in
|
in
|
||||||
@ -15,9 +15,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
fixup_yarn_lock
|
fixup_yarn_lock
|
||||||
# Use Node JS 16 because of @achrinza/node-ipc@9.2.2
|
nodejs
|
||||||
nodejs_16
|
nodejs.pkgs.yarn
|
||||||
nodejs_16.pkgs.yarn
|
|
||||||
];
|
];
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
|
@ -22,14 +22,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "valent";
|
pname = "valent";
|
||||||
version = "unstable-2023-03-31";
|
version = "unstable-2023-05-01";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "andyholmes";
|
owner = "andyholmes";
|
||||||
repo = "valent";
|
repo = "valent";
|
||||||
rev = "bb9fc25a58eeb81abea2bb651accc9538a3a82fd";
|
rev = "74f5d9349a60f0d9fcf88cda01713980a221d639";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
sha256 = "sha256-3pEPE96gFjDGesFs/EZswuv6D3JQEpnAnlCw0IWYkR0=";
|
sha256 = "sha256-wqdujEKizrDFXtsjSTWpFgDL7MH3tsLTc7yd3LFgIQU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = "https://github.com/andyholmes/valent/";
|
homepage = "https://github.com/andyholmes/valent/";
|
||||||
changelog = "https://github.com/andyholmes/valent/blob/${src.rev}/CHANGELOG.md";
|
changelog = "https://github.com/andyholmes/valent/blob/${src.rev}/CHANGELOG.md";
|
||||||
license = with licenses; [ gpl3Plus cc0 ];
|
license = with licenses; [ gpl3Plus cc0 ];
|
||||||
maintainers = with maintainers; [ federicoschonborn ];
|
maintainers = with maintainers; [ federicoschonborn aleksana ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ fetchurl, fetchFromGitLab }:
|
{ lib, fetchurl, fetchFromGitLab }:
|
||||||
let src = builtins.fromJSON (builtins.readFile ./src.json);
|
let src = lib.importJSON ./src.json;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit (src) packageVersion;
|
inherit (src) packageVersion;
|
||||||
|
@ -2,20 +2,20 @@
|
|||||||
|
|
||||||
buildNpmPackage rec {
|
buildNpmPackage rec {
|
||||||
pname = "vieb";
|
pname = "vieb";
|
||||||
version = "9.7.0";
|
version = "9.7.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Jelmerro";
|
owner = "Jelmerro";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-uo5V5RRDSR+f9+AqojikrlybmtcWTmB7TPXEvLG9n4E=";
|
hash = "sha256-1G3hhqWMClxdwt3aOmnAbEV+n2ui5X6Cgf30391OVi0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i '/"electron"/d' package.json
|
sed -i '/"electron"/d' package.json
|
||||||
'';
|
'';
|
||||||
|
|
||||||
npmDepsHash = "sha256-RUpeqbb8bnSQ6sCYH8O9mL3Rpb+ZlcPi7fq6LlbkSic=";
|
npmDepsHash = "sha256-t8fKbh9M63CCkxwlXj3zGvP8y5uLMqbyNd8BimBhIBc=";
|
||||||
dontNpmBuild = true;
|
dontNpmBuild = true;
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isAarch64 python3;
|
nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isAarch64 python3;
|
||||||
|
@ -7,13 +7,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "cloudflared";
|
pname = "cloudflared";
|
||||||
version = "2023.4.2";
|
version = "2023.5.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cloudflare";
|
owner = "cloudflare";
|
||||||
repo = "cloudflared";
|
repo = "cloudflared";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-oHiaRdTEiTcGQkYoGw8TT0KZMFR8Rkce/4+cxSXAHMM=";
|
hash = "sha256-0zUKlacB6aTj0UQ8dIQSU8F6SvVOTAU/GdbUqbJ8okI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
@ -8,13 +8,13 @@
|
|||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "bosh-cli";
|
pname = "bosh-cli";
|
||||||
|
|
||||||
version = "7.2.2";
|
version = "7.2.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cloudfoundry";
|
owner = "cloudfoundry";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-cSix1muhmPrL7fDGznkFAOAoArZoDvptli7uRo71Dlk=";
|
sha256 = "sha256-sN6+hPH+VziXs94RkPdPlg6TKo/as4xC8Gd8MxAKluk=";
|
||||||
};
|
};
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "cilium-cli";
|
pname = "cilium-cli";
|
||||||
version = "0.14.0";
|
version = "0.14.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cilium";
|
owner = "cilium";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-E/14YYX4EFakzBsaUxy1SZAaBCIKmgpWlY/9EazWWFI=";
|
sha256 = "sha256-y7R9+YxkPWVEjcN8Czfp8UC47AAAt554XLo/nStoGLY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "kube-router";
|
pname = "kube-router";
|
||||||
version = "1.5.3";
|
version = "1.5.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cloudnativelabs";
|
owner = "cloudnativelabs";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-aO72wvq31kue75IKfEByhKxUwSSGGmPLzHDBSvTChTM=";
|
sha256 = "sha256-/ruSSq+iHmJDFHH+mLoqtdljAGlc15lXjTqq+luJIU8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-+3uTIaXuiwbU0fUgn2th4RNDQ5gCDi3ntPMu92S+mXc=";
|
vendorHash = "sha256-U2TvH4TPBI6verEcyv0Z+ZFAKbADgzncJhW1IAJw4Ms=";
|
||||||
|
|
||||||
CGO_ENABLED = 0;
|
CGO_ENABLED = 0;
|
||||||
|
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "kubecm";
|
pname = "kubecm";
|
||||||
version = "0.22.1";
|
version = "0.23.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "sunny0826";
|
owner = "sunny0826";
|
||||||
repo = "kubecm";
|
repo = "kubecm";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-0oQOuBYCDNnOODM2ZSqTgOI+jHWuHTtsk2NfGIPMy5A=";
|
hash = "sha256-BywtQ6YVGPz5A0GE2q0zRoBZNU6HZgVbr6H0OMR05wM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-fVPiEDB6WFu2x5EY7NjmJEEq297QxP10593cXxxv8iI=";
|
vendorHash = "sha256-WZxjv4v2nfJjbzFfaDh2kE7ZBREB+Q8BmHhUrAiDd7g=";
|
||||||
ldflags = [ "-s" "-w" "-X github.com/sunny0826/kubecm/version.Version=${version}"];
|
ldflags = [ "-s" "-w" "-X github.com/sunny0826/kubecm/version.Version=${version}"];
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -9,14 +9,14 @@
|
|||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
"acme": {
|
"acme": {
|
||||||
"hash": "sha256-uyycmae+OAZ/dC4GReEF5xrClQvophLX1/EZv+kpFU4=",
|
"hash": "sha256-Q8uoWKdpo6S3XHyZrMvUqxY08IOoHmRhmS/3fuShr8s=",
|
||||||
"homepage": "https://registry.terraform.io/providers/vancluever/acme",
|
"homepage": "https://registry.terraform.io/providers/vancluever/acme",
|
||||||
"owner": "vancluever",
|
"owner": "vancluever",
|
||||||
"proxyVendor": true,
|
"proxyVendor": true,
|
||||||
"repo": "terraform-provider-acme",
|
"repo": "terraform-provider-acme",
|
||||||
"rev": "v2.13.1",
|
"rev": "v2.14.0",
|
||||||
"spdx": "MPL-2.0",
|
"spdx": "MPL-2.0",
|
||||||
"vendorHash": "sha256-C78RPGpENvn6mBm8xsnl3DXKUQ0xtdN8k25t8USigWE="
|
"vendorHash": "sha256-VizPxWLvNpZ9FAs8FGuBhXjJoxhePiB/RIzbNfiEwOQ="
|
||||||
},
|
},
|
||||||
"age": {
|
"age": {
|
||||||
"hash": "sha256-bJrzjvkrCX93bNqCA+FdRibHnAw6cb61StqtwUY5ok4=",
|
"hash": "sha256-bJrzjvkrCX93bNqCA+FdRibHnAw6cb61StqtwUY5ok4=",
|
||||||
@ -110,11 +110,11 @@
|
|||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
"aws": {
|
"aws": {
|
||||||
"hash": "sha256-oD8I7wWLdn9Yv6naRcq0myg1L2DcvP/a6VL/fUfdC+g=",
|
"hash": "sha256-bJScfyTNDW0cKGp93cffDcZ/PZQ8trNbemHT5OoCkvg=",
|
||||||
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
|
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
|
||||||
"owner": "hashicorp",
|
"owner": "hashicorp",
|
||||||
"repo": "terraform-provider-aws",
|
"repo": "terraform-provider-aws",
|
||||||
"rev": "v4.66.0",
|
"rev": "v4.66.1",
|
||||||
"spdx": "MPL-2.0",
|
"spdx": "MPL-2.0",
|
||||||
"vendorHash": "sha256-tetNRSjQTgFzFLSdmRL6f+UlwKp62zr00JzFXJs8nMs="
|
"vendorHash": "sha256-tetNRSjQTgFzFLSdmRL6f+UlwKp62zr00JzFXJs8nMs="
|
||||||
},
|
},
|
||||||
@ -128,11 +128,11 @@
|
|||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
"azurerm": {
|
"azurerm": {
|
||||||
"hash": "sha256-1K+uM8uRpFigr9scvBL/FDoqc7TKh4ZnppEHnl8i8EA=",
|
"hash": "sha256-frIlEojIK/6KhPquliQPveP279bFHvLAy830bx6Yd2c=",
|
||||||
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
|
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
|
||||||
"owner": "hashicorp",
|
"owner": "hashicorp",
|
||||||
"repo": "terraform-provider-azurerm",
|
"repo": "terraform-provider-azurerm",
|
||||||
"rev": "v3.54.0",
|
"rev": "v3.55.0",
|
||||||
"spdx": "MPL-2.0",
|
"spdx": "MPL-2.0",
|
||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
@ -182,11 +182,11 @@
|
|||||||
"vendorHash": "sha256-jOscYbwZ8m4smGiAy2vNhPMTAUnINkpuVRQ8E6LpWVw="
|
"vendorHash": "sha256-jOscYbwZ8m4smGiAy2vNhPMTAUnINkpuVRQ8E6LpWVw="
|
||||||
},
|
},
|
||||||
"buildkite": {
|
"buildkite": {
|
||||||
"hash": "sha256-nwGnt/+pSR1rGiXZ1RJIpekT+i0k4ZmMN27VpYCDVU0=",
|
"hash": "sha256-5R3aX0tzUnewsYguHlelYXn1JrfowrOCaqYtfvrnoSE=",
|
||||||
"homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
|
"homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
|
||||||
"owner": "buildkite",
|
"owner": "buildkite",
|
||||||
"repo": "terraform-provider-buildkite",
|
"repo": "terraform-provider-buildkite",
|
||||||
"rev": "v0.17.0",
|
"rev": "v0.17.1",
|
||||||
"spdx": "MIT",
|
"spdx": "MIT",
|
||||||
"vendorHash": "sha256-ZXjmR1maiiLeWipXGOAGfLEuot9TsrzAX4EPRNQ5Gbo="
|
"vendorHash": "sha256-ZXjmR1maiiLeWipXGOAGfLEuot9TsrzAX4EPRNQ5Gbo="
|
||||||
},
|
},
|
||||||
@ -209,13 +209,13 @@
|
|||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
"cloudamqp": {
|
"cloudamqp": {
|
||||||
"hash": "sha256-cFXQgB++BcTKCFuJ3bMm8Qw3Zdr9m9d6LaZMz5tKXBM=",
|
"hash": "sha256-z7SE69j+9qlwO53xbvSvBQd41zL+1jDDhJ0ByfVEqqo=",
|
||||||
"homepage": "https://registry.terraform.io/providers/cloudamqp/cloudamqp",
|
"homepage": "https://registry.terraform.io/providers/cloudamqp/cloudamqp",
|
||||||
"owner": "cloudamqp",
|
"owner": "cloudamqp",
|
||||||
"repo": "terraform-provider-cloudamqp",
|
"repo": "terraform-provider-cloudamqp",
|
||||||
"rev": "v1.26.0",
|
"rev": "v1.26.1",
|
||||||
"spdx": "MPL-2.0",
|
"spdx": "MPL-2.0",
|
||||||
"vendorHash": "sha256-wyPwStUCprrnq0S6jKzDqAXeWTZW43ml+vBOuX05eRs="
|
"vendorHash": "sha256-IXhs9fSrIKuhLUwamaSd8vY4ePK8DAre9crvonpUvys="
|
||||||
},
|
},
|
||||||
"cloudflare": {
|
"cloudflare": {
|
||||||
"hash": "sha256-0bHKQe4wIieKdxPF0S7Qv8QLlg+AZzBOG8n2qiMOM0g=",
|
"hash": "sha256-0bHKQe4wIieKdxPF0S7Qv8QLlg+AZzBOG8n2qiMOM0g=",
|
||||||
@ -282,13 +282,13 @@
|
|||||||
"vendorHash": "sha256-ZCMSmOCPEMxCSpl3DjIUGPj1W/KNJgyjtHpmQ19JquA="
|
"vendorHash": "sha256-ZCMSmOCPEMxCSpl3DjIUGPj1W/KNJgyjtHpmQ19JquA="
|
||||||
},
|
},
|
||||||
"datadog": {
|
"datadog": {
|
||||||
"hash": "sha256-i6v55pIooA+7L5V2yNL+T2KCgGNLU5ZrqeKzdzdvNoA=",
|
"hash": "sha256-bay1hBIfgYBqY1SSpbezPMW4L6ZpJIYfH/5up13wgUo=",
|
||||||
"homepage": "https://registry.terraform.io/providers/DataDog/datadog",
|
"homepage": "https://registry.terraform.io/providers/DataDog/datadog",
|
||||||
"owner": "DataDog",
|
"owner": "DataDog",
|
||||||
"repo": "terraform-provider-datadog",
|
"repo": "terraform-provider-datadog",
|
||||||
"rev": "v3.24.1",
|
"rev": "v3.25.0",
|
||||||
"spdx": "MPL-2.0",
|
"spdx": "MPL-2.0",
|
||||||
"vendorHash": "sha256-MMPE1Urnlt7QCoiEnHqWnFZzmeSs/i4UtiotyrXZF2U="
|
"vendorHash": "sha256-0KuoVcM/pvXMxdLL1HO6XsVTUOfQylzl6yGfQF6HdvQ="
|
||||||
},
|
},
|
||||||
"dhall": {
|
"dhall": {
|
||||||
"hash": "sha256-K0j90YAzYqdyJD4aofyxAJF9QBYNMbhSVm/s1GvWuJ4=",
|
"hash": "sha256-K0j90YAzYqdyJD4aofyxAJF9QBYNMbhSVm/s1GvWuJ4=",
|
||||||
@ -419,11 +419,11 @@
|
|||||||
"vendorHash": "sha256-uWTY8cFztXFrQQ7GW6/R+x9M6vHmsb934ldq+oeW5vk="
|
"vendorHash": "sha256-uWTY8cFztXFrQQ7GW6/R+x9M6vHmsb934ldq+oeW5vk="
|
||||||
},
|
},
|
||||||
"github": {
|
"github": {
|
||||||
"hash": "sha256-gMuQNI0+zvveVqyhRdIyPyxVNfdk6PUXpf4Iv2Y+jI4=",
|
"hash": "sha256-BDYnzyda7I+Oz3YVUSpR24S+FxZwRPjmBgFeyzr0iZQ=",
|
||||||
"homepage": "https://registry.terraform.io/providers/integrations/github",
|
"homepage": "https://registry.terraform.io/providers/integrations/github",
|
||||||
"owner": "integrations",
|
"owner": "integrations",
|
||||||
"repo": "terraform-provider-github",
|
"repo": "terraform-provider-github",
|
||||||
"rev": "v5.24.0",
|
"rev": "v5.25.0",
|
||||||
"spdx": "MIT",
|
"spdx": "MIT",
|
||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
@ -728,13 +728,13 @@
|
|||||||
"vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
|
"vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
|
||||||
},
|
},
|
||||||
"minio": {
|
"minio": {
|
||||||
"hash": "sha256-URn6XFqKTE3nXE5ZcaXmRvGl6qLdffLLSoMRq70zh4I=",
|
"hash": "sha256-LL3jOuNNCd5isNPyt+I35j5BdxAbnWRQ2o2RBLSOc/E=",
|
||||||
"homepage": "https://registry.terraform.io/providers/aminueza/minio",
|
"homepage": "https://registry.terraform.io/providers/aminueza/minio",
|
||||||
"owner": "aminueza",
|
"owner": "aminueza",
|
||||||
"repo": "terraform-provider-minio",
|
"repo": "terraform-provider-minio",
|
||||||
"rev": "v1.14.0",
|
"rev": "v1.15.0",
|
||||||
"spdx": "Apache-2.0",
|
"spdx": "Apache-2.0",
|
||||||
"vendorHash": "sha256-Mdy9uXYb7MH9XHqSNkG0QqTVzjvTy4+/Mr6VHXJBEZE="
|
"vendorHash": "sha256-Xz6WxAxzvLfgJTD2oDgZoeHffcdA7dyfgwY1g6lFkbk="
|
||||||
},
|
},
|
||||||
"mongodbatlas": {
|
"mongodbatlas": {
|
||||||
"hash": "sha256-NvKthj+rVT23v/V1C8w8CMTfOy3yNsMjg2knXECzay4=",
|
"hash": "sha256-NvKthj+rVT23v/V1C8w8CMTfOy3yNsMjg2knXECzay4=",
|
||||||
@ -1226,13 +1226,13 @@
|
|||||||
"vendorHash": null
|
"vendorHash": null
|
||||||
},
|
},
|
||||||
"vsphere": {
|
"vsphere": {
|
||||||
"hash": "sha256-VScIcK4bInS9yhIYkYRsU8Hhzex9iyVkPiyjnnjshkI=",
|
"hash": "sha256-XVMTKYb9RuK5sErVHsP0j5otUEioxp6C7GV7/J6OYVA=",
|
||||||
"homepage": "https://registry.terraform.io/providers/hashicorp/vsphere",
|
"homepage": "https://registry.terraform.io/providers/hashicorp/vsphere",
|
||||||
"owner": "hashicorp",
|
"owner": "hashicorp",
|
||||||
"repo": "terraform-provider-vsphere",
|
"repo": "terraform-provider-vsphere",
|
||||||
"rev": "v2.3.1",
|
"rev": "v2.4.0",
|
||||||
"spdx": "MPL-2.0",
|
"spdx": "MPL-2.0",
|
||||||
"vendorHash": "sha256-guUjkk7oW+Gvu015LUAxGqUwZF4H+4xmmOaMqKixZaI="
|
"vendorHash": "sha256-wKKrBSJkbdqqnDLoS+jhvI26rOzvMWjjsN8wh67Le5U="
|
||||||
},
|
},
|
||||||
"vultr": {
|
"vultr": {
|
||||||
"hash": "sha256-4Um4UyDjtamy2s15K3Idm5edZj5BOy13+kr39wl9e0Q=",
|
"hash": "sha256-4Um4UyDjtamy2s15K3Idm5edZj5BOy13+kr39wl9e0Q=",
|
||||||
|
@ -5,13 +5,13 @@ buildGoModule rec {
|
|||||||
/* Do not use "dev" as a version. If you do, Tilt will consider itself
|
/* Do not use "dev" as a version. If you do, Tilt will consider itself
|
||||||
running in development environment and try to serve assets from the
|
running in development environment and try to serve assets from the
|
||||||
source tree, which is not there once build completes. */
|
source tree, which is not there once build completes. */
|
||||||
version = "0.32.2";
|
version = "0.32.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tilt-dev";
|
owner = "tilt-dev";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-YB/stG+7gxIaB+vMx8PwmUm4W32fCNeRnVrOvOXba5k=";
|
sha256 = "sha256-5QTZUapHhSSI+UZu77IUZdflCIm+oCu4kPQVhLHCsUQ=";
|
||||||
};
|
};
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
pname = "zulip";
|
pname = "zulip";
|
||||||
version = "5.9.5";
|
version = "5.10.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
|
url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
|
||||||
hash = "sha256-w2thmF/UA42j3u3m4L+/onilQhwMOa7IJoOMZ/ERypw=";
|
hash = "sha256-rfFEhoykCStFCyBasQV6Cpb5ey+wvQLMXloIR0A1z7g=";
|
||||||
name="${pname}-${version}.AppImage";
|
name="${pname}-${version}.AppImage";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -10,16 +10,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "netmaker";
|
pname = "netmaker";
|
||||||
version = "0.18.7";
|
version = "0.19.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "gravitl";
|
owner = "gravitl";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-XnBz5dUBu6VqxLFsBXOvdLu/LsrfyEp9MLR/+nNggBk=";
|
hash = "sha256-wiexultPliYD3WrLVtWUdLs762OzLAmoH66phwjOuUw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-a2ecHdxX82/JScRPGKpgEtrISD7qkPoZyv9kvO6SzaQ=";
|
vendorHash = "sha256-Msvonap1soJExzBymouY8kZJnHT4SIwpfJjBgpkO2Rw=";
|
||||||
|
|
||||||
inherit subPackages;
|
inherit subPackages;
|
||||||
|
|
||||||
|
@ -39,14 +39,14 @@
|
|||||||
, makeWrapper
|
, makeWrapper
|
||||||
, wrapGAppsHook
|
, wrapGAppsHook
|
||||||
, withQt ? true
|
, withQt ? true
|
||||||
, qt5 ? null
|
, qt6 ? null
|
||||||
, ApplicationServices
|
, ApplicationServices
|
||||||
, SystemConfiguration
|
, SystemConfiguration
|
||||||
, gmp
|
, gmp
|
||||||
, asciidoctor
|
, asciidoctor
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert withQt -> qt5 != null;
|
assert withQt -> qt6 != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.0.5";
|
version = "4.0.5";
|
||||||
@ -70,6 +70,7 @@ stdenv.mkDerivation {
|
|||||||
# Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
|
# Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
|
||||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||||
"-DLEMON_C_COMPILER=cc"
|
"-DLEMON_C_COMPILER=cc"
|
||||||
|
"-DUSE_qt6=ON"
|
||||||
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
||||||
"-DHAVE_C99_VSNPRINTF_EXITCODE=0"
|
"-DHAVE_C99_VSNPRINTF_EXITCODE=0"
|
||||||
"-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
|
"-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
|
||||||
@ -79,7 +80,7 @@ stdenv.mkDerivation {
|
|||||||
env.NIX_CFLAGS_COMPILE = toString [ "-DQT_NO_DEBUG" ];
|
env.NIX_CFLAGS_COMPILE = toString [ "-DQT_NO_DEBUG" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ asciidoctor bison cmake ninja flex makeWrapper pkg-config python3 perl ]
|
nativeBuildInputs = [ asciidoctor bison cmake ninja flex makeWrapper pkg-config python3 perl ]
|
||||||
++ lib.optionals withQt [ qt5.wrapQtAppsHook wrapGAppsHook ];
|
++ lib.optionals withQt [ qt6.wrapQtAppsHook wrapGAppsHook ];
|
||||||
|
|
||||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
|
||||||
@ -108,11 +109,10 @@ stdenv.mkDerivation {
|
|||||||
c-ares
|
c-ares
|
||||||
glib
|
glib
|
||||||
zlib
|
zlib
|
||||||
] ++ lib.optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
|
] ++ lib.optionals withQt (with qt6; [ qtbase qtmultimedia qtsvg qttools qt5compat ])
|
||||||
++ lib.optionals (withQt && stdenv.isLinux) [ qt5.qtwayland ]
|
++ lib.optionals (withQt && stdenv.isLinux) [ qt6.qtwayland ]
|
||||||
++ lib.optionals stdenv.isLinux [ libcap libnl sbc ]
|
++ lib.optionals stdenv.isLinux [ libcap libnl sbc ]
|
||||||
++ lib.optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ]
|
++ lib.optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ];
|
||||||
++ lib.optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]);
|
|
||||||
|
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
|
||||||
|
@ -7,16 +7,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "soju";
|
pname = "soju";
|
||||||
version = "0.5.2";
|
version = "0.6.1";
|
||||||
|
|
||||||
src = fetchFromSourcehut {
|
src = fetchFromSourcehut {
|
||||||
owner = "~emersion";
|
owner = "~emersion";
|
||||||
repo = "soju";
|
repo = "soju";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-lpLWqaSFx/RJg73n5XNN/qUXHfZsBkbABoYcgxpK3rU=";
|
hash = "sha256-e3yA8gXuLxRzJIQQIjhajIOWVtikd+gNVxbhzfy56b0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-n1wwi7I2hDLOe08RkJOiopDUGI6uhipNpBdeOLARIoU=";
|
vendorHash = "sha256-iT/QMm6RM6kvw69Az+aLTtBuaCX7ELAiYlj5wXAtBd4=";
|
||||||
|
|
||||||
subPackages = [
|
subPackages = [
|
||||||
"cmd/soju"
|
"cmd/soju"
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "treesheets";
|
pname = "treesheets";
|
||||||
version = "unstable-2023-05-03";
|
version = "unstable-2023-05-04";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "aardappel";
|
owner = "aardappel";
|
||||||
repo = "treesheets";
|
repo = "treesheets";
|
||||||
rev = "b942b919a2f6b4e6d04ea62a4a82623f9e815cdd";
|
rev = "3694b16809daaa59b9198cd9645662e2a8cf4650";
|
||||||
sha256 = "rfYEpbhfWiviojqWWMhmYjpDh04hfRPGPdDQtcqhr8o=";
|
sha256 = "NShLLBTBS88UXWWjsSeMVxj8HnnN4yA8gmz83wdpIzE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -18,11 +18,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "fldigi";
|
pname = "fldigi";
|
||||||
version = "4.1.25";
|
version = "4.1.26";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
|
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
|
||||||
sha256 = "sha256-TsS/OS2mXwqsk+E+9MEoETIHRWks8Hg/qw8WRmAxB2M=";
|
sha256 = "sha256-RIrTWjQPnn0I8bzV3kMQEesNaAkIQnhikLMaYivrWRc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
1253
pkgs/applications/radio/noaa-apt/Cargo.lock
generated
1253
pkgs/applications/radio/noaa-apt/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -13,13 +13,13 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "noaa-apt";
|
pname = "noaa-apt";
|
||||||
version = "1.3.1";
|
version = "1.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "martinber";
|
owner = "martinber";
|
||||||
repo = "noaa-apt";
|
repo = "noaa-apt";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-A78O5HkD/LyfvjLJjf7PpJDuftkNbaxq7Zs5kNUaULk=";
|
sha256 = "sha256-wmjglF2+BFmlTfvqt90nbCxuldN8AEFXj7y9tgTvA2Y=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -55,15 +55,15 @@ rustPlatform.buildRustPackage rec {
|
|||||||
|
|
||||||
# Desktop icon.
|
# Desktop icon.
|
||||||
install -Dm644 -t $out/share/applications $src/debian/ar.com.mbernardi.noaa-apt.desktop
|
install -Dm644 -t $out/share/applications $src/debian/ar.com.mbernardi.noaa-apt.desktop
|
||||||
install -Dm644 -t $out/share/icons/hicolor/48x48/apps $src/debian/noaa-apt.png
|
install -Dm644 -t $out/share/icons/hicolor/48x48/apps $src/debian/ar.com.mbernardi.noaa-apt.png
|
||||||
install -Dm644 -t $out/share/icons/hicolor/scalable/apps $src/debian/noaa-apt.svg
|
install -Dm644 -t $out/share/icons/hicolor/scalable/apps $src/debian/ar.com.mbernardi.noaa-apt.svg
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "NOAA APT image decoder";
|
description = "NOAA APT image decoder";
|
||||||
homepage = "https://noaa-apt.mbernardi.com.ar/";
|
homepage = "https://noaa-apt.mbernardi.com.ar/";
|
||||||
license = licenses.gpl3Only;
|
license = licenses.gpl3Only;
|
||||||
maintainers = with maintainers; [ trepetti ];
|
maintainers = with maintainers; [ trepetti tmarkus ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
changelog = "https://github.com/martinber/noaa-apt/releases/tag/v${version}";
|
changelog = "https://github.com/martinber/noaa-apt/releases/tag/v${version}";
|
||||||
};
|
};
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gnuastro";
|
pname = "gnuastro";
|
||||||
version = "0.19";
|
version = "0.20";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/gnuastro/gnuastro-${version}.tar.gz";
|
url = "mirror://gnu/gnuastro/gnuastro-${version}.tar.gz";
|
||||||
sha256 = "sha256-4bPNW0sSb/J34vSOit8BA9Z/wK0Hz5o9OqfgVSlDDjU=";
|
sha256 = "sha256-kkuLtqwc0VFj3a3Dqb/bi4jKx7UJnV+CHs7bw/Cwac0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ libtool ];
|
nativeBuildInputs = [ libtool ];
|
||||||
|
@ -1,27 +1,39 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, flex, bison, qt4, libX11, cmake, gperf, adms,
|
{ stdenv
|
||||||
ngspice, wrapGAppsHook,
|
, lib
|
||||||
kernels ? [ ngspice ] }:
|
, fetchFromGitHub
|
||||||
|
, flex
|
||||||
|
, bison
|
||||||
|
, qtbase
|
||||||
|
, qttools
|
||||||
|
, qtsvg
|
||||||
|
, qtwayland
|
||||||
|
, wrapQtAppsHook
|
||||||
|
, libX11
|
||||||
|
, cmake
|
||||||
|
, gperf
|
||||||
|
, adms
|
||||||
|
, ngspice
|
||||||
|
, kernels ? [ ngspice ]
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "qucs-s";
|
pname = "qucs-s";
|
||||||
version = "0.0.22";
|
version = "1.0.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ra3xdh";
|
owner = "ra3xdh";
|
||||||
repo = "qucs_s";
|
repo = "qucs_s";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0rrq2ddridc09m6fixdmbngn42xmv8cmdf6r8zzn2s98fqib5qd6";
|
sha256 = "sha256-2YyVeeUnLBS1Si9gwEsQLZVG98715dz/v+WCYjB3QlI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapGAppsHook cmake ];
|
nativeBuildInputs = [ flex bison wrapQtAppsHook cmake ];
|
||||||
buildInputs = [ flex bison qt4 libX11 gperf adms ] ++ kernels;
|
buildInputs = [ qtbase qttools qtsvg qtwayland libX11 gperf adms ] ++ kernels;
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
# Make custom kernels avaible from qucs-s
|
# Make custom kernels avaible from qucs-s
|
||||||
gappsWrapperArgs+=(--prefix PATH ":" ${lib.escapeShellArg (lib.makeBinPath kernels)})
|
qtWrapperArgs = [ "--prefix" "PATH" ":" (lib.makeBinPath kernels) ];
|
||||||
'';
|
|
||||||
|
|
||||||
QTDIR=qt4;
|
QTDIR = qtbase.dev;
|
||||||
|
|
||||||
doInstallCheck = true;
|
doInstallCheck = true;
|
||||||
installCheck = ''
|
installCheck = ''
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ lib, stdenv
|
{ lib, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, fetchpatch
|
||||||
, autoconf
|
, autoconf
|
||||||
, bison
|
, bison
|
||||||
, bzip2
|
, bzip2
|
||||||
@ -7,56 +8,62 @@
|
|||||||
, gperf
|
, gperf
|
||||||
, ncurses
|
, ncurses
|
||||||
, perl
|
, perl
|
||||||
|
, python3
|
||||||
, readline
|
, readline
|
||||||
, zlib
|
, zlib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
|
||||||
# iverilog-test has been merged to the main iverilog main source tree
|
|
||||||
# in January 2022, so it won't be longer necessary.
|
|
||||||
# For now let's fetch it from the separate repo, since 11.0 was released in 2020.
|
|
||||||
iverilog-test = fetchFromGitHub {
|
|
||||||
owner = "steveicarus";
|
|
||||||
repo = "ivtest";
|
|
||||||
rev = "a19e629a1879801ffcc6f2e6256ca435c20570f3";
|
|
||||||
sha256 = "sha256-3EkmrAXU0/mRxrxp5Hy7C3yWTVK16L+tPqqeEryY/r8=";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "iverilog";
|
pname = "iverilog";
|
||||||
version = "11.0";
|
version = "12.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "steveicarus";
|
owner = "steveicarus";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${lib.replaceStrings ["."] ["_"] version}";
|
rev = "v${lib.replaceStrings ["."] ["_"] version}";
|
||||||
sha256 = "0nzcyi6l2zv9wxzsv9i963p3igyjds0n55x0ph561mc3pfbc7aqp";
|
hash = "sha256-J9hedSmC6mFVcoDnXBtaTXigxrSCFa2AhhFd77ueo7I=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf bison flex gperf ];
|
nativeBuildInputs = [ autoconf bison flex gperf ];
|
||||||
|
|
||||||
|
CC_FOR_BUILD="${stdenv.cc}/bin/cc";
|
||||||
|
CXX_FOR_BUILD="${stdenv.cc}/bin/c++";
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# NOTE(jleightcap): `-Werror=format-security` warning patched shortly after release, backport the upstream fix
|
||||||
|
(fetchpatch {
|
||||||
|
name = "format-security";
|
||||||
|
url = "https://github.com/steveicarus/iverilog/commit/23e51ef7a8e8e4ba42208936e0a6a25901f58c65.patch";
|
||||||
|
hash = "sha256-fMWfBsCl2fuXe+6AR10ytb8QpC84bXlP5RSdrqsWzEk=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [ bzip2 ncurses readline zlib ];
|
buildInputs = [ bzip2 ncurses readline zlib ];
|
||||||
|
|
||||||
preConfigure = "sh autoconf.sh";
|
preConfigure = "sh autoconf.sh";
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
nativeInstallCheckInputs = [ perl ];
|
# NOTE(jleightcap): the `make check` target only runs a "Hello, World"-esque sanity check.
|
||||||
|
# the tests in the doInstallCheck phase run a full regression test suite.
|
||||||
|
# however, these tests currently fail upstream on aarch64
|
||||||
|
# (see https://github.com/steveicarus/iverilog/issues/917)
|
||||||
|
# so disable the full suite for now.
|
||||||
|
doCheck = true;
|
||||||
|
doInstallCheck = !stdenv.isAarch64;
|
||||||
|
|
||||||
|
nativeInstallCheckInputs = [
|
||||||
|
perl
|
||||||
|
(python3.withPackages (pp: with pp; [
|
||||||
|
docopt
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
|
||||||
installCheckPhase = ''
|
installCheckPhase = ''
|
||||||
# copy tests to allow writing results
|
runHook preInstallCheck
|
||||||
export TESTDIR=$(mktemp -d)
|
export PATH="$PATH:$out/bin"
|
||||||
cp -r ${iverilog-test}/* $TESTDIR
|
sh .github/test.sh
|
||||||
|
runHook postInstallCheck
|
||||||
pushd $TESTDIR
|
|
||||||
|
|
||||||
# Run & check tests
|
|
||||||
PATH=$out/bin:$PATH perl vvp_reg.pl
|
|
||||||
# Check the tests, will error if unexpected tests fail. Some failures MIGHT be normal.
|
|
||||||
diff regression_report-devel.txt regression_report.txt
|
|
||||||
PATH=$out/bin:$PATH perl vpi_reg.pl
|
|
||||||
|
|
||||||
popd
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more";
|
description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
maintainers = with maintainers; [ spwhitt cko SuperSandro2000 ];
|
maintainers = with maintainers; [ cko SuperSandro2000 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,6 @@ buildPythonApplication rec {
|
|||||||
homepage = "https://github.com/mhagger/git-imerge";
|
homepage = "https://github.com/mhagger/git-imerge";
|
||||||
description = "Perform a merge between two branches incrementally";
|
description = "Perform a merge between two branches incrementally";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = [ maintainers.spwhitt ];
|
maintainers = [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
, pkg-config, glib, libsecret
|
, pkg-config, glib, libsecret
|
||||||
, gzip # needed at runtime by gitweb.cgi
|
, gzip # needed at runtime by gitweb.cgi
|
||||||
, withSsh ? false
|
, withSsh ? false
|
||||||
|
, sysctl
|
||||||
, doInstallCheck ? !stdenv.isDarwin # extremely slow on darwin
|
, doInstallCheck ? !stdenv.isDarwin # extremely slow on darwin
|
||||||
, tests
|
, tests
|
||||||
}:
|
}:
|
||||||
@ -294,6 +295,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
"PERL_PATH=${buildPackages.perl}/bin/perl"
|
"PERL_PATH=${buildPackages.perl}/bin/perl"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nativeInstallCheckInputs = lib.optional stdenv.isDarwin sysctl;
|
||||||
|
|
||||||
preInstallCheck = ''
|
preInstallCheck = ''
|
||||||
installCheckFlagsArray+=(
|
installCheckFlagsArray+=(
|
||||||
GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save"
|
GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save"
|
||||||
|
@ -15,16 +15,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "i3status-rust";
|
pname = "i3status-rust";
|
||||||
version = "0.31.1";
|
version = "0.31.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "greshake";
|
owner = "greshake";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-nAwAQUjoKeGaTixTdk9yIgdy4+j6t6cbvH4NpBdSyns=";
|
hash = "sha256-4lr2ibtBtJYXeeArBK4M35L4CUNqZcUDB+3Nm1kqp4w=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-/Z6HKOMIhQm52MlPty8ED9QPPJcM7juDpQQKgJVozyU=";
|
cargoHash = "sha256-5LIXzfYSuHOdxYxfp1eMdxsqyP+3sldBCV0mgv7SRRI=";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||||
|
|
||||||
|
@ -135,11 +135,11 @@ let
|
|||||||
packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides;
|
packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides;
|
||||||
productPackages = builtins.filter (package: package.kind != "dev")
|
productPackages = builtins.filter (package: package.kind != "dev")
|
||||||
(if autoDepsList
|
(if autoDepsList
|
||||||
then builtins.fromJSON (builtins.readFile deps.depsListFile)
|
then lib.importJSON deps.depsListFile
|
||||||
else
|
else
|
||||||
if depsListFile == null
|
if depsListFile == null
|
||||||
then [ ]
|
then [ ]
|
||||||
else builtins.fromJSON (builtins.readFile depsListFile));
|
else lib.importJSON depsListFile);
|
||||||
in
|
in
|
||||||
builtins.foldl'
|
builtins.foldl'
|
||||||
(prev: package:
|
(prev: package:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
{ pname, version, nativeBuildInputs ? [], enableParallelBuilding ? true, ... }@args:
|
{ pname, version, nativeBuildInputs ? [], enableParallelBuilding ? true, ... }@args:
|
||||||
|
|
||||||
let Dune =
|
let Dune =
|
||||||
let dune-version = args . duneVersion or (if args.useDune2 or true then "2" else "1"); in
|
let dune-version = args.duneVersion or "2"; in
|
||||||
{ "1" = dune_1; "2" = dune_2; "3" = dune_3; }."${dune-version}"
|
{ "1" = dune_1; "2" = dune_2; "3" = dune_3; }."${dune-version}"
|
||||||
; in
|
; in
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
stdenvNoCC.mkDerivation rec {
|
||||||
pname = "lxgw-wenkai";
|
pname = "lxgw-wenkai";
|
||||||
version = "1.250";
|
version = "1.300";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/lxgw/LxgwWenKai/releases/download/v${version}/${pname}-v${version}.tar.gz";
|
url = "https://github.com/lxgw/LxgwWenKai/releases/download/v${version}/${pname}-v${version}.tar.gz";
|
||||||
hash = "sha256-Nkd0xXYCnR0NZAk/JCxy+zOlxIxD52Px4F9o2L9mgRE=";
|
hash = "sha256-pPN8siF/8D78sEcXoF+vZ4BIeYWyXAuk4HBQJP+G3O8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -89,7 +89,7 @@ rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkNotoCJK = { typeface, version, rev, sha256 }:
|
mkNotoCJK = { typeface, version, sha256 }:
|
||||||
stdenvNoCC.mkDerivation {
|
stdenvNoCC.mkDerivation {
|
||||||
pname = "noto-fonts-cjk-${lib.toLower typeface}";
|
pname = "noto-fonts-cjk-${lib.toLower typeface}";
|
||||||
inherit version;
|
inherit version;
|
||||||
@ -97,7 +97,8 @@ rec {
|
|||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "googlefonts";
|
owner = "googlefonts";
|
||||||
repo = "noto-cjk";
|
repo = "noto-cjk";
|
||||||
inherit rev sha256;
|
rev = "${typeface}${version}";
|
||||||
|
inherit sha256;
|
||||||
sparseCheckout = [ "${typeface}/Variable/OTC" ];
|
sparseCheckout = [ "${typeface}/Variable/OTC" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -154,15 +155,13 @@ rec {
|
|||||||
noto-fonts-cjk-sans = mkNotoCJK {
|
noto-fonts-cjk-sans = mkNotoCJK {
|
||||||
typeface = "Sans";
|
typeface = "Sans";
|
||||||
version = "2.004";
|
version = "2.004";
|
||||||
rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
|
sha256 = "sha256-IgalJkiOAVjNxKaPAQWfb5hKeqclliR4qVXCq63FGWY=";
|
||||||
sha256 = "sha256-PWpcTBnBRK87ZuRI/PsGp2UMQgCCyfkLHwvB1mOl5K0=";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
noto-fonts-cjk-serif = mkNotoCJK {
|
noto-fonts-cjk-serif = mkNotoCJK {
|
||||||
typeface = "Serif";
|
typeface = "Serif";
|
||||||
version = "2.000";
|
version = "2.001";
|
||||||
rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
|
sha256 = "sha256-y1103SS0qkZMhEL5+7kQZ+OBs5tRaqkqOcs4796Fzhg=";
|
||||||
sha256 = "sha256-1w66Ge7DZjbONGhxSz69uFhfsjMsDiDkrGl6NsoB7dY=";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
noto-fonts-emoji =
|
noto-fonts-emoji =
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# and callHackage
|
# and callHackage
|
||||||
{ lib, fetchurl }:
|
{ lib, fetchurl }:
|
||||||
let
|
let
|
||||||
pin = builtins.fromJSON (builtins.readFile ./pin.json);
|
pin = lib.importJSON ./pin.json;
|
||||||
in
|
in
|
||||||
fetchurl {
|
fetchurl {
|
||||||
inherit (pin) url sha256;
|
inherit (pin) url sha256;
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "v2ray-geoip";
|
pname = "v2ray-geoip";
|
||||||
version = "202304270044";
|
version = "202305040042";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "v2fly";
|
owner = "v2fly";
|
||||||
repo = "geoip";
|
repo = "geoip";
|
||||||
rev = "015e040dbd71ec79f57555d9c2721326e4254b34";
|
rev = "ef62a770a54006accfdfa8e3e38e2bdf5997baf0";
|
||||||
sha256 = "sha256-yY+mEsnc4x6zgslpu8755tGt7I17xBB1RXdAzSLtf2U=";
|
sha256 = "sha256-CThhxFVBIz9H0YiI3+fdy76kwq7bsMdONyRAvMQ5VrA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -1,21 +1,26 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenvNoCC
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, gtk-engine-murrine
|
, gtk-engine-murrine
|
||||||
|
, jdupes
|
||||||
, gitUpdater
|
, gitUpdater
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenvNoCC.mkDerivation rec {
|
||||||
pname = "theme-obsidian2";
|
pname = "theme-obsidian2";
|
||||||
version = "2.22";
|
version = "2.23";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
|
url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
|
||||||
sha256 = "sha256-WvSlzCock0UMdvajHRBNHSugVMStR1FDt9vjzX5Kp8A=";
|
sha256 = "sha256-yJoMS5XrHlMss+rdJ+xLJx0F9Hs1Cc+MFk+xyhRXaf0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
jdupes
|
||||||
|
];
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [
|
propagatedUserEnvPkgs = [
|
||||||
gtk-engine-murrine
|
gtk-engine-murrine
|
||||||
];
|
];
|
||||||
@ -24,6 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
runHook preInstall
|
runHook preInstall
|
||||||
mkdir -p $out/share/themes
|
mkdir -p $out/share/themes
|
||||||
cp -a Obsidian-2* $out/share/themes
|
cp -a Obsidian-2* $out/share/themes
|
||||||
|
jdupes --quiet --link-soft --recurse $out/share
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ lib.makeScope pkgs.newScope (self: with self; {
|
|||||||
nemo-with-extensions = callPackage ./nemo/wrapper.nix { };
|
nemo-with-extensions = callPackage ./nemo/wrapper.nix { };
|
||||||
mint-artwork = callPackage ./mint-artwork { };
|
mint-artwork = callPackage ./mint-artwork { };
|
||||||
mint-cursor-themes = callPackage ./mint-cursor-themes { };
|
mint-cursor-themes = callPackage ./mint-cursor-themes { };
|
||||||
|
mint-l-icons = callPackage ./mint-l-icons { };
|
||||||
|
mint-l-theme = callPackage ./mint-l-theme { };
|
||||||
mint-themes = callPackage ./mint-themes { };
|
mint-themes = callPackage ./mint-themes { };
|
||||||
mint-x-icons = callPackage ./mint-x-icons { };
|
mint-x-icons = callPackage ./mint-x-icons { };
|
||||||
mint-y-icons = callPackage ./mint-y-icons { };
|
mint-y-icons = callPackage ./mint-y-icons { };
|
||||||
|
53
pkgs/desktops/cinnamon/mint-l-icons/default.nix
Normal file
53
pkgs/desktops/cinnamon/mint-l-icons/default.nix
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{ stdenvNoCC
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gnome
|
||||||
|
, gnome-icon-theme
|
||||||
|
, hicolor-icon-theme
|
||||||
|
, gtk3
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenvNoCC.mkDerivation rec {
|
||||||
|
pname = "mint-l-icons";
|
||||||
|
version = "1.6.4";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "linuxmint";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-C6BnBIOKeewsaQPPXWWo70eQpO1pJS0+xVQghPj/TTE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
gnome.adwaita-icon-theme
|
||||||
|
gnome-icon-theme
|
||||||
|
hicolor-icon-theme
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
gtk3
|
||||||
|
];
|
||||||
|
|
||||||
|
dontDropIconThemeCache = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out
|
||||||
|
mv usr/share $out
|
||||||
|
|
||||||
|
for theme in $out/share/icons/*; do
|
||||||
|
gtk-update-icon-cache $theme
|
||||||
|
done
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/linuxmint/mint-l-icons";
|
||||||
|
description = "Mint-L icon theme";
|
||||||
|
license = licenses.gpl3Plus; # from debian/copyright
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = teams.cinnamon.members;
|
||||||
|
};
|
||||||
|
}
|
46
pkgs/desktops/cinnamon/mint-l-theme/default.nix
Normal file
46
pkgs/desktops/cinnamon/mint-l-theme/default.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ stdenvNoCC
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, python3
|
||||||
|
, sassc
|
||||||
|
, sass
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenvNoCC.mkDerivation rec {
|
||||||
|
pname = "mint-l-theme";
|
||||||
|
version = "1.9.3";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "linuxmint";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-x+elC1NWcd+x8dNewwKPZBdkxSzEbo7jsG8B9DcWdoA=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
python3
|
||||||
|
sassc
|
||||||
|
sass
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
patchShebangs .
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out
|
||||||
|
mv usr/share $out
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/linuxmint/mint-l-theme";
|
||||||
|
description = "Mint-L theme for the Cinnamon desktop";
|
||||||
|
license = licenses.gpl3Plus; # from debian/copyright
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = teams.cinnamon.members;
|
||||||
|
};
|
||||||
|
}
|
@ -43,13 +43,13 @@ in
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gdm";
|
pname = "gdm";
|
||||||
version = "44.0";
|
version = "44.1";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "ziCwoiHb+M3gBktQH9jzj3ODkVKFfEU1M36wnMUvf2w=";
|
sha256 = "aCZrOr59KPxGnQBnqsnF2rsMp5UswffCOKBJUfPcWw0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, lib
|
, lib
|
||||||
, fetchurl
|
, fetchurl
|
||||||
|
, fetchpatch2
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
, pkg-config
|
, pkg-config
|
||||||
@ -15,13 +16,41 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "zenity";
|
pname = "zenity";
|
||||||
version = "3.91.0";
|
version = "3.92.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "N2GeCYAwgXj9vPaDItmaB7MzbBwLuY7ysyycsQkCI5k=";
|
sha256 = "bSvCP2bL2PfhlVVvDDG9ZfClx4vLGuow6XFty/qxqKk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Add non-fatal deprecation warning for --attach, --icon-name, --hint
|
||||||
|
# To reduce issues like https://github.com/BuddiesOfBudgie/budgie-desktop/issues/356
|
||||||
|
(fetchpatch2 {
|
||||||
|
url = "https://gitlab.gnome.org/GNOME/zenity/-/commit/181ca36ad4790b425f79b20be40dd25804208463.patch";
|
||||||
|
sha256 = "Z6XOn5XnBzJSti8tD4EGezCpHmYAsIxBf7s4W3rBc9I=";
|
||||||
|
})
|
||||||
|
(fetchpatch2 {
|
||||||
|
url = "https://gitlab.gnome.org/GNOME/zenity/-/commit/70abb01173562dba40916c522bd20b4ba5a55904.patch";
|
||||||
|
sha256 = "yBm7AxJiTPh2BFb+79L4WSh8xOcM6AHuvLzIEEFY80s=";
|
||||||
|
})
|
||||||
|
(fetchpatch2 {
|
||||||
|
url = "https://gitlab.gnome.org/GNOME/zenity/-/commit/df445feb0c0fab6865d96fb693a32fbc26503d83.patch";
|
||||||
|
sha256 = "DTeBCsahceNZCfNziO2taXiMEdAFgm5Bx9OrlZv0LsM=";
|
||||||
|
})
|
||||||
|
(fetchpatch2 {
|
||||||
|
url = "https://gitlab.gnome.org/GNOME/zenity/-/commit/54bd43cbe30fbe5c9f01e42e8f3de63405770e2a.patch";
|
||||||
|
sha256 = "tR9CKt24w7D3EA6FLu6qroS5rTkfIsaQnuY4KzgDKMY=";
|
||||||
|
})
|
||||||
|
|
||||||
|
# Restore the availability of running multiple instances of zenity
|
||||||
|
# https://gitlab.gnome.org/GNOME/zenity/-/issues/58
|
||||||
|
(fetchpatch2 {
|
||||||
|
url = "https://gitlab.gnome.org/GNOME/zenity/-/commit/cd32ad7d3fa66dccc77d96a0fd3a61bf137250f6.patch";
|
||||||
|
sha256 = "4XCuJgXsNIiBXv4NM1JRoiqgBqyxnro0HHapkK2fM8o=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
|
@ -15,11 +15,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "engrampa";
|
pname = "engrampa";
|
||||||
version = "1.26.0";
|
version = "1.26.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "1qsy0ynhj1v0kyn3g3yf62g31rwxmpglfh9xh0w5lc9j5k1b5kcp";
|
sha256 = "8CJBB6ek6epjCcnniqX6rIAsTPcqSawoOqnnrh6KbEo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -21,11 +21,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "marco";
|
pname = "marco";
|
||||||
version = "1.26.1";
|
version = "1.26.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "tPpVUL+J1Pnv9a5ufWFQ42YaItUw1q3cZ1e86N0qXT0=";
|
sha256 = "EvGiVP4QcvAwSIRxHgiaVoJ4CgEVk0Au043muUgOB6M=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
let
|
let
|
||||||
|
|
||||||
# To control nodejs version we pass down
|
# To control nodejs version we pass down
|
||||||
nodejs = pkgs.nodejs_14;
|
nodejs = pkgs.nodejs_16;
|
||||||
|
|
||||||
fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { };
|
fetchElmDeps = pkgs.callPackage ./fetchElmDeps.nix { };
|
||||||
|
|
||||||
|
@ -75,9 +75,12 @@ let rpath = lib.makeLibraryPath [
|
|||||||
buildType = if debugBuild then "Debug" else "Release";
|
buildType = if debugBuild then "Debug" else "Release";
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "jcef-jetbrains";
|
pname = "jcef-jetbrains";
|
||||||
rev = "153d40c761a25a745d7ebf0ee3a024bbc2c840b5";
|
rev = "3dfde2a70f1f914c6a84ba967123a0e38f51053f";
|
||||||
commit-num = "611"; # Run `git rev-list --count HEAD`
|
# This is the commit number
|
||||||
|
# Currently from the 231 branch: https://github.com/JetBrains/jcef/tree/231
|
||||||
|
# Run `git rev-list --count HEAD`
|
||||||
|
version = "654";
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake python3 jdk17 git rsync ant ninja ];
|
nativeBuildInputs = [ cmake python3 jdk17 git rsync ant ninja ];
|
||||||
buildInputs = [ libX11 libXdamage nss nspr ];
|
buildInputs = [ libX11 libXdamage nss nspr ];
|
||||||
@ -86,7 +89,7 @@ in stdenv.mkDerivation rec {
|
|||||||
owner = "jetbrains";
|
owner = "jetbrains";
|
||||||
repo = "jcef";
|
repo = "jcef";
|
||||||
inherit rev;
|
inherit rev;
|
||||||
hash = "sha256-Vud4nIT2c7uOK7GKKw3plf41WzKqhg+2xpIwB/LyqnE=";
|
hash = "sha256-g8jWzRI2uYzu8O7JHENn0u9yY08fvY6g0Uym02oYUMI=";
|
||||||
};
|
};
|
||||||
cef-bin = let
|
cef-bin = let
|
||||||
fileName = "cef_binary_104.4.26+g4180781+chromium-104.0.5112.102_linux64_minimal";
|
fileName = "cef_binary_104.4.26+g4180781+chromium-104.0.5112.102_linux64_minimal";
|
||||||
@ -116,7 +119,7 @@ in stdenv.mkDerivation rec {
|
|||||||
-e 's|os.path.isdir(os.path.join(path, \x27.git\x27))|True|' \
|
-e 's|os.path.isdir(os.path.join(path, \x27.git\x27))|True|' \
|
||||||
-e 's|"%s rev-parse %s" % (git_exe, branch)|"echo '${rev}'"|' \
|
-e 's|"%s rev-parse %s" % (git_exe, branch)|"echo '${rev}'"|' \
|
||||||
-e 's|"%s config --get remote.origin.url" % git_exe|"echo 'https://github.com/jetbrains/jcef'"|' \
|
-e 's|"%s config --get remote.origin.url" % git_exe|"echo 'https://github.com/jetbrains/jcef'"|' \
|
||||||
-e 's|"%s rev-list --count %s" % (git_exe, branch)|"echo '${commit-num}'"|' \
|
-e 's|"%s rev-list --count %s" % (git_exe, branch)|"echo '${version}'"|' \
|
||||||
-i tools/git_util.py
|
-i tools/git_util.py
|
||||||
|
|
||||||
cp ${clang-fmt} tools/buildtools/linux64/clang-format
|
cp ${clang-fmt} tools/buildtools/linux64/clang-format
|
||||||
|
@ -32,13 +32,13 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "terra";
|
pname = "terra";
|
||||||
version = "1.0.6";
|
version = "1.1.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "terralang";
|
owner = "terralang";
|
||||||
repo = "terra";
|
repo = "terra";
|
||||||
rev = "release-${version}";
|
rev = "release-${version}";
|
||||||
sha256 = "1bs76ibzb469rlqs7slw8pm65csjq1nf0lqh6i9kcvbzavmdfds7";
|
sha256 = "0v9vpxcp9ybwnfljskqn41vjq7c0srdfv7qs890a6480pnk4kavd";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
@ -50,6 +50,7 @@ in stdenv.mkDerivation rec {
|
|||||||
"-DHAS_TERRA_VERSION=0"
|
"-DHAS_TERRA_VERSION=0"
|
||||||
"-DTERRA_VERSION=${version}"
|
"-DTERRA_VERSION=${version}"
|
||||||
"-DTERRA_LUA=luajit"
|
"-DTERRA_LUA=luajit"
|
||||||
|
"-DTERRA_SKIP_LUA_DOWNLOAD=ON"
|
||||||
"-DCLANG_RESOURCE_DIR=${llvmMerged}/lib/clang/${clangVersion}"
|
"-DCLANG_RESOURCE_DIR=${llvmMerged}/lib/clang/${clangVersion}"
|
||||||
] ++ lib.optional enableCUDA "-DTERRA_ENABLE_CUDA=ON";
|
] ++ lib.optional enableCUDA "-DTERRA_ENABLE_CUDA=ON";
|
||||||
|
|
||||||
@ -60,9 +61,6 @@ in stdenv.mkDerivation rec {
|
|||||||
patches = [ ./nix-cflags.patch ];
|
patches = [ ./nix-cflags.patch ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i '/file(DOWNLOAD "''${LUAJIT_URL}" "''${LUAJIT_TAR}")/d' \
|
|
||||||
cmake/Modules/GetLuaJIT.cmake
|
|
||||||
|
|
||||||
substituteInPlace src/terralib.lua \
|
substituteInPlace src/terralib.lua \
|
||||||
--subst-var-by NIX_LIBC_INCLUDE ${lib.getDev stdenv.cc.libc}/include
|
--subst-var-by NIX_LIBC_INCLUDE ${lib.getDev stdenv.cc.libc}/include
|
||||||
'';
|
'';
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
{ stdenv, fetchurl, perl, icu, zlib, gmp, lib, nqp, removeReferencesTo }:
|
{ stdenv, fetchFromGitHub, perl, icu, zlib, gmp, lib, nqp, removeReferencesTo }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "rakudo";
|
pname = "rakudo";
|
||||||
version = "2023.02";
|
version = "2023.04";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
|
owner = "rakudo";
|
||||||
hash = "sha256-/RaGqizzLrnw630Nb5bfyJfPU8z4ntp9Iltoc4CTqhE=";
|
repo = "rakudo";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-m5rXriBKfp/i9AIcBGCYGfXIGBRsxgVmBbLJPXXc5AY=";
|
||||||
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ removeReferencesTo ];
|
nativeBuildInputs = [ removeReferencesTo ];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchurl
|
, fetchFromGitHub
|
||||||
, perl
|
, perl
|
||||||
, CoreServices
|
, CoreServices
|
||||||
, ApplicationServices
|
, ApplicationServices
|
||||||
@ -8,11 +8,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "moarvm";
|
pname = "moarvm";
|
||||||
version = "2023.02";
|
version = "2023.04";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz";
|
owner = "moarvm";
|
||||||
hash = "sha256-Z+IU1E1fYmeHyn8EQkBDpjkwikOnd3tvpBkmtyQODcU=";
|
repo = "moarvm";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-QYA4nSsrouYFaw1eju/6gNWwMcE/VeL0sNJmsTvtU3I=";
|
||||||
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
{ stdenv, fetchurl, perl, lib, moarvm }:
|
{ stdenv, fetchFromGitHub, perl, lib, moarvm }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "nqp";
|
pname = "nqp";
|
||||||
version = "2023.02";
|
version = "2023.04";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
|
owner = "raku";
|
||||||
hash = "sha256-417V7ZTsMqbXMO6BW/hcX8+IqGf6xlZjaMGtSf5jtT8=";
|
repo = "nqp";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-6V9d01aacDc+770XPSbQd4m1bg7Bbe47TTNOUxc2Fpw=";
|
||||||
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ perl ];
|
buildInputs = [ perl ];
|
||||||
|
@ -3,15 +3,16 @@
|
|||||||
, makeWrapper
|
, makeWrapper
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
pname = "renpy";
|
|
||||||
|
|
||||||
# https://renpy.org/doc/html/changelog.html#versioning
|
# https://renpy.org/doc/html/changelog.html#versioning
|
||||||
# base_version is of the form major.minor.patch
|
# base_version is of the form major.minor.patch
|
||||||
# vc_version is of the form YYMMDDCC
|
# vc_version is of the form YYMMDDCC
|
||||||
# version corresponds to the tag on GitHub
|
# version corresponds to the tag on GitHub
|
||||||
base_version = "8.0.3";
|
base_version = "8.0.3";
|
||||||
vc_version = "22090809";
|
vc_version = "22090809";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "renpy";
|
||||||
|
|
||||||
version = "${base_version}.${vc_version}";
|
version = "${base_version}.${vc_version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
@ -46,7 +47,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace module/setup.py \
|
substituteInPlace module/setup.py \
|
||||||
--replace "@fribidi@" "${fribidi}"
|
--replace "@fribidi@" "${fribidi.dev}"
|
||||||
|
|
||||||
cp tutorial/game/tutorial_director.rpy{m,}
|
cp tutorial/game/tutorial_director.rpy{m,}
|
||||||
|
|
||||||
@ -87,4 +88,6 @@ stdenv.mkDerivation rec {
|
|||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ shadowrz ];
|
maintainers = with maintainers; [ shadowrz ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
passthru = { inherit base_version vc_version; };
|
||||||
}
|
}
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dsdcc";
|
pname = "dsdcc";
|
||||||
version = "1.9.3";
|
version = "1.9.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "f4exb";
|
owner = "f4exb";
|
||||||
repo = "dsdcc";
|
repo = "dsdcc";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-8lO2c4fkQCaVO8IM05+Rdpo6oMxoEIObBm0y08i+/0k=";
|
sha256 = "sha256-EsjmU0LQOXnOoTFrnn63hAbvqbE6NVlSQTngot5Zuf4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "faudio";
|
pname = "faudio";
|
||||||
version = "23.04";
|
version = "23.05";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "FNA-XNA";
|
owner = "FNA-XNA";
|
||||||
repo = "FAudio";
|
repo = "FAudio";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-XajCJ8wmKzvLxPaA/SVETRiDM3gcd3NFxmdoz+WzkF8=";
|
sha256 = "sha256-uZSKbLQ36Kw6useAKyDoxLKD1xtKbigq/ejWErxvkcE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [cmake];
|
nativeBuildInputs = [cmake];
|
||||||
|
@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
description = "Fastest Fourier Transform in the West library";
|
description = "Fastest Fourier Transform in the West library";
|
||||||
homepage = "http://www.fftw.org/";
|
homepage = "http://www.fftw.org/";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = [ maintainers.spwhitt ];
|
maintainers = [ ];
|
||||||
pkgConfigModules = [
|
pkgConfigModules = [
|
||||||
{
|
{
|
||||||
"single" = "fftw3f";
|
"single" = "fftw3f";
|
||||||
|
@ -78,8 +78,7 @@ stdenvNoLibs.mkDerivation rec {
|
|||||||
tm.h \
|
tm.h \
|
||||||
options.h \
|
options.h \
|
||||||
insn-constants.h \
|
insn-constants.h \
|
||||||
insn-modes.h \
|
insn-modes.h
|
||||||
gcov-iov.h
|
|
||||||
)
|
)
|
||||||
mkdir -p "$buildRoot/gcc/include"
|
mkdir -p "$buildRoot/gcc/include"
|
||||||
''
|
''
|
||||||
@ -141,6 +140,9 @@ stdenvNoLibs.mkDerivation rec {
|
|||||||
# Do not have dynamic linker without libc
|
# Do not have dynamic linker without libc
|
||||||
"--enable-static"
|
"--enable-static"
|
||||||
"--disable-shared"
|
"--disable-shared"
|
||||||
|
|
||||||
|
# Avoid dependency on gcc.
|
||||||
|
"--disable-gcov"
|
||||||
];
|
];
|
||||||
|
|
||||||
makeFlags = [ "MULTIBUILDTOP:=../" ];
|
makeFlags = [ "MULTIBUILDTOP:=../" ];
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user