Merge master into staging-next
This commit is contained in:
commit
48b3a17dea
|
@ -17,6 +17,8 @@ with pkgs; stdenv.mkDerivation {
|
|||
mkdir -p $out
|
||||
ln -s ${locationsXml} $out/locations.xml
|
||||
|
||||
docgen asserts 'Assert functions'
|
||||
docgen attrsets 'Attribute-set functions'
|
||||
docgen strings 'String manipulation functions'
|
||||
docgen trivial 'Miscellaneous functions'
|
||||
docgen lists 'List manipulation functions'
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
Nixpkgs provides a standard library at <varname>pkgs.lib</varname>, or through <code>import <nixpkgs/lib></code>.
|
||||
</para>
|
||||
|
||||
<xi:include href="./library/asserts.xml" />
|
||||
|
||||
<xi:include href="./library/attrsets.xml" />
|
||||
|
||||
<!-- These docs are generated via nixdoc. To add another generated
|
||||
library function file to this list, the file
|
||||
`lib-function-docs.nix` must also be updated. -->
|
||||
|
||||
<xi:include href="./library/generated/asserts.xml" />
|
||||
|
||||
<xi:include href="./library/generated/attrsets.xml" />
|
||||
|
||||
<xi:include href="./library/generated/strings.xml" />
|
||||
|
||||
<xi:include href="./library/generated/trivial.xml" />
|
||||
|
|
0
doc/functions/library/.gitkeep
Normal file
0
doc/functions/library/.gitkeep
Normal file
|
@ -1,112 +0,0 @@
|
|||
<section xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xml:id="sec-functions-library-asserts">
|
||||
<title>Assert functions</title>
|
||||
|
||||
<section xml:id="function-library-lib.asserts.assertMsg">
|
||||
<title><function>lib.asserts.assertMsg</function></title>
|
||||
|
||||
<subtitle><literal>assertMsg :: Bool -> String -> Bool</literal>
|
||||
</subtitle>
|
||||
|
||||
<xi:include href="./locations.xml" xpointer="lib.asserts.assertMsg" />
|
||||
|
||||
<para>
|
||||
Print a trace message if <literal>pred</literal> is false.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Intended to be used to augment asserts with helpful error messages.
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<varname>pred</varname>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Condition under which the <varname>msg</varname> should <emphasis>not</emphasis> be printed.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<varname>msg</varname>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Message to print.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<example xml:id="function-library-lib.asserts.assertMsg-example-false">
|
||||
<title>Printing when the predicate is false</title>
|
||||
<programlisting><![CDATA[
|
||||
assert lib.asserts.assertMsg ("foo" == "bar") "foo is not bar, silly"
|
||||
stderr> trace: foo is not bar, silly
|
||||
stderr> assert failed
|
||||
]]></programlisting>
|
||||
</example>
|
||||
</section>
|
||||
|
||||
<section xml:id="function-library-lib.asserts.assertOneOf">
|
||||
<title><function>lib.asserts.assertOneOf</function></title>
|
||||
|
||||
<subtitle><literal>assertOneOf :: String -> String ->
|
||||
StringList -> Bool</literal>
|
||||
</subtitle>
|
||||
|
||||
<xi:include href="./locations.xml" xpointer="lib.asserts.assertOneOf" />
|
||||
|
||||
<para>
|
||||
Specialized <function>asserts.assertMsg</function> for checking if <varname>val</varname> is one of the elements of <varname>xs</varname>. Useful for checking enums.
|
||||
</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<varname>name</varname>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The name of the variable the user entered <varname>val</varname> into, for inclusion in the error message.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<varname>val</varname>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The value of what the user provided, to be compared against the values in <varname>xs</varname>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<varname>xs</varname>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The list of valid values.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<example xml:id="function-library-lib.asserts.assertOneOf-example">
|
||||
<title>Ensuring a user provided a possible value</title>
|
||||
<programlisting><![CDATA[
|
||||
let sslLibrary = "bearssl";
|
||||
in lib.asserts.assertOneOf "sslLibrary" sslLibrary [ "openssl" "libressl" ];
|
||||
=> false
|
||||
stderr> trace: sslLibrary must be one of "openssl", "libressl", but is: "bearssl"
|
||||
]]></programlisting>
|
||||
</example>
|
||||
</section>
|
||||
</section>
|
File diff suppressed because it is too large
Load diff
|
@ -10,12 +10,21 @@ At the moment we support two different methods for managing plugins:
|
|||
- Vim packages (*recommended*)
|
||||
- vim-plug (vim only)
|
||||
|
||||
Right now two Vim packages are available: `vim` which has most features that require extra
|
||||
dependencies disabled and `vim-full` which has them configurable and enabled by default.
|
||||
|
||||
::: {.note}
|
||||
`vim_configurable` is a deprecated alias for `vim-full` and refers to the fact that its
|
||||
build-time features are configurable. It has nothing to do with user configuration,
|
||||
and both the `vim` and `vim-full` packages can be customized as explained in the next section.
|
||||
:::
|
||||
|
||||
## Custom configuration {#custom-configuration}
|
||||
|
||||
Adding custom .vimrc lines can be done using the following code:
|
||||
|
||||
```nix
|
||||
vim_configurable.customize {
|
||||
vim-full.customize {
|
||||
# `name` optionally specifies the name of the executable and package
|
||||
name = "vim-with-plugins";
|
||||
|
||||
|
@ -62,7 +71,7 @@ neovim-qt.override {
|
|||
To store your plugins in Vim packages (the native Vim plugin manager, see `:help packages`) the following example can be used:
|
||||
|
||||
```nix
|
||||
vim_configurable.customize {
|
||||
vim-full.customize {
|
||||
vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
# loaded on launch
|
||||
start = [ youcompleteme fugitive ];
|
||||
|
@ -101,7 +110,7 @@ The resulting package can be added to `packageOverrides` in `~/.nixpkgs/config.n
|
|||
```nix
|
||||
{
|
||||
packageOverrides = pkgs: with pkgs; {
|
||||
myVim = vim_configurable.customize {
|
||||
myVim = vim-full.customize {
|
||||
# `name` specifies the name of the executable and package
|
||||
name = "vim-with-plugins";
|
||||
# add here code from the example section
|
||||
|
@ -190,7 +199,7 @@ To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim
|
|||
plugins the following example can be used:
|
||||
|
||||
```nix
|
||||
vim_configurable.customize {
|
||||
vim-full.customize {
|
||||
vimrcConfig.packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
# loaded on launch
|
||||
plug.plugins = [ youcompleteme fugitive phpCompletion elm-vim ];
|
||||
|
|
|
@ -16,11 +16,15 @@ rec {
|
|||
assertMsg :: Bool -> String -> Bool
|
||||
*/
|
||||
# TODO(Profpatsch): add tests that check stderr
|
||||
assertMsg = pred: msg:
|
||||
assertMsg =
|
||||
# Predicate that needs to succeed, otherwise `msg` is thrown
|
||||
pred:
|
||||
# Message to throw in case `pred` fails
|
||||
msg:
|
||||
pred || builtins.throw msg;
|
||||
|
||||
/* Specialized `assertMsg` for checking if val is one of the elements
|
||||
of a list. Useful for checking enums.
|
||||
/* Specialized `assertMsg` for checking if `val` is one of the elements
|
||||
of the list `xs`. Useful for checking enums.
|
||||
|
||||
Example:
|
||||
let sslLibrary = "libressl";
|
||||
|
@ -33,7 +37,14 @@ rec {
|
|||
Type:
|
||||
assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool
|
||||
*/
|
||||
assertOneOf = name: val: xs: assertMsg
|
||||
assertOneOf =
|
||||
# The name of the variable the user entered `val` into, for inclusion in the error message
|
||||
name:
|
||||
# The value of what the user provided, to be compared against the values in `xs`
|
||||
val:
|
||||
# The list of valid values
|
||||
xs:
|
||||
assertMsg
|
||||
(lib.elem val xs)
|
||||
"${name} must be one of ${
|
||||
lib.generators.toPretty {} xs}, but is: ${
|
||||
|
|
455
lib/attrsets.nix
455
lib/attrsets.nix
|
@ -20,13 +20,22 @@ rec {
|
|||
=> 3
|
||||
attrByPath ["z" "z"] 6 x
|
||||
=> 6
|
||||
|
||||
Type:
|
||||
attrByPath :: [String] -> Any -> AttrSet -> Any
|
||||
*/
|
||||
attrByPath = attrPath: default: e:
|
||||
attrByPath =
|
||||
# A list of strings representing the attribute path to return from `set`
|
||||
attrPath:
|
||||
# Default value if `attrPath` does not resolve to an existing value
|
||||
default:
|
||||
# The nested attribute set to select values from
|
||||
set:
|
||||
let attr = head attrPath;
|
||||
in
|
||||
if attrPath == [] then e
|
||||
else if e ? ${attr}
|
||||
then attrByPath (tail attrPath) default e.${attr}
|
||||
if attrPath == [] then set
|
||||
else if set ? ${attr}
|
||||
then attrByPath (tail attrPath) default set.${attr}
|
||||
else default;
|
||||
|
||||
/* Return if an attribute from nested attribute set exists.
|
||||
|
@ -38,8 +47,14 @@ rec {
|
|||
hasAttrByPath ["z" "z"] x
|
||||
=> false
|
||||
|
||||
Type:
|
||||
hasAttrByPath :: [String] -> AttrSet -> Bool
|
||||
*/
|
||||
hasAttrByPath = attrPath: e:
|
||||
hasAttrByPath =
|
||||
# A list of strings representing the attribute path to check from `set`
|
||||
attrPath:
|
||||
# The nested attribute set to check
|
||||
e:
|
||||
let attr = head attrPath;
|
||||
in
|
||||
if attrPath == [] then true
|
||||
|
@ -48,13 +63,20 @@ rec {
|
|||
else false;
|
||||
|
||||
|
||||
/* Return nested attribute set in which an attribute is set.
|
||||
/* Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`.
|
||||
|
||||
Example:
|
||||
setAttrByPath ["a" "b"] 3
|
||||
=> { a = { b = 3; }; }
|
||||
|
||||
Type:
|
||||
setAttrByPath :: [String] -> Any -> AttrSet
|
||||
*/
|
||||
setAttrByPath = attrPath: value:
|
||||
setAttrByPath =
|
||||
# A list of strings representing the attribute path to set
|
||||
attrPath:
|
||||
# The value to set at the location described by `attrPath`
|
||||
value:
|
||||
let
|
||||
len = length attrPath;
|
||||
atDepth = n:
|
||||
|
@ -63,8 +85,8 @@ rec {
|
|||
else { ${elemAt attrPath n} = atDepth (n + 1); };
|
||||
in atDepth 0;
|
||||
|
||||
/* Like `attrByPath' without a default value. If it doesn't find the
|
||||
path it will throw.
|
||||
/* Like `attrByPath', but without a default value. If it doesn't find the
|
||||
path it will throw an error.
|
||||
|
||||
Example:
|
||||
x = { a = { b = 3; }; }
|
||||
|
@ -72,10 +94,17 @@ rec {
|
|||
=> 3
|
||||
getAttrFromPath ["z" "z"] x
|
||||
=> error: cannot find attribute `z.z'
|
||||
|
||||
Type:
|
||||
getAttrFromPath :: [String] -> AttrSet -> Value
|
||||
*/
|
||||
getAttrFromPath = attrPath:
|
||||
getAttrFromPath =
|
||||
# A list of strings representing the attribute path to get from `set`
|
||||
attrPath:
|
||||
# The nested attribute set to find the value in.
|
||||
set:
|
||||
let errorMsg = "cannot find attribute `" + concatStringsSep "." attrPath + "'";
|
||||
in attrByPath attrPath (abort errorMsg);
|
||||
in attrByPath attrPath (abort errorMsg) set;
|
||||
|
||||
/* Map each attribute in the given set and merge them into a new attribute set.
|
||||
|
||||
|
@ -101,19 +130,23 @@ rec {
|
|||
|
||||
Takes a list of updates to apply and an attribute set to apply them to,
|
||||
and returns the attribute set with the updates applied. Updates are
|
||||
represented as { path = ...; update = ...; } values, where `path` is a
|
||||
represented as `{ path = ...; update = ...; }` values, where `path` is a
|
||||
list of strings representing the attribute path that should be updated,
|
||||
and `update` is a function that takes the old value at that attribute path
|
||||
as an argument and returns the new
|
||||
value it should be.
|
||||
|
||||
Properties:
|
||||
|
||||
- Updates to deeper attribute paths are applied before updates to more
|
||||
shallow attribute paths
|
||||
|
||||
- Multiple updates to the same attribute path are applied in the order
|
||||
they appear in the update list
|
||||
|
||||
- If any but the last `path` element leads into a value that is not an
|
||||
attribute set, an error is thrown
|
||||
|
||||
- If there is an update for an attribute path that doesn't exist,
|
||||
accessing the argument in the update function causes an error, but
|
||||
intermediate attribute sets are implicitly created as needed
|
||||
|
@ -134,6 +167,9 @@ rec {
|
|||
}
|
||||
] { a.b.c = 0; }
|
||||
=> { a = { b = { d = 1; }; }; x = { y = "xy"; }; }
|
||||
|
||||
Type:
|
||||
updateManyAttrsByPath :: [AttrSet] -> AttrSet -> AttrSet
|
||||
*/
|
||||
updateManyAttrsByPath = let
|
||||
# When recursing into attributes, instead of updating the `path` of each
|
||||
|
@ -199,8 +235,15 @@ rec {
|
|||
Example:
|
||||
attrVals ["a" "b" "c"] as
|
||||
=> [as.a as.b as.c]
|
||||
|
||||
Type:
|
||||
attrVals :: [String] -> AttrSet -> [Any]
|
||||
*/
|
||||
attrVals = nameList: set: map (x: set.${x}) nameList;
|
||||
attrVals =
|
||||
# The list of attributes to fetch from `set`. Each attribute name must exist on the attrbitue set
|
||||
nameList:
|
||||
# The set to get attribute values from
|
||||
set: map (x: set.${x}) nameList;
|
||||
|
||||
|
||||
/* Return the values of all attributes in the given set, sorted by
|
||||
|
@ -209,6 +252,8 @@ rec {
|
|||
Example:
|
||||
attrValues {c = 3; a = 1; b = 2;}
|
||||
=> [1 2 3]
|
||||
Type:
|
||||
attrValues :: AttrSet -> [Any]
|
||||
*/
|
||||
attrValues = builtins.attrValues or (attrs: attrVals (attrNames attrs) attrs);
|
||||
|
||||
|
@ -219,8 +264,15 @@ rec {
|
|||
Example:
|
||||
getAttrs [ "a" "b" ] { a = 1; b = 2; c = 3; }
|
||||
=> { a = 1; b = 2; }
|
||||
|
||||
Type:
|
||||
getAttrs :: [String] -> AttrSet -> AttrSet
|
||||
*/
|
||||
getAttrs = names: attrs: genAttrs names (name: attrs.${name});
|
||||
getAttrs =
|
||||
# A list of attribute names to get out of `set`
|
||||
names:
|
||||
# The set to get the named attributes from
|
||||
attrs: genAttrs names (name: attrs.${name});
|
||||
|
||||
/* Collect each attribute named `attr' from a list of attribute
|
||||
sets. Sets that don't contain the named attribute are ignored.
|
||||
|
@ -228,6 +280,9 @@ rec {
|
|||
Example:
|
||||
catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
|
||||
=> [1 2]
|
||||
|
||||
Type:
|
||||
catAttrs :: String -> [AttrSet] -> [Any]
|
||||
*/
|
||||
catAttrs = builtins.catAttrs or
|
||||
(attr: l: concatLists (map (s: if s ? ${attr} then [s.${attr}] else []) l));
|
||||
|
@ -239,8 +294,15 @@ rec {
|
|||
Example:
|
||||
filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
|
||||
=> { foo = 1; }
|
||||
|
||||
Type:
|
||||
filterAttrs :: (String -> Any -> Bool) -> AttrSet -> AttrSet
|
||||
*/
|
||||
filterAttrs = pred: set:
|
||||
filterAttrs =
|
||||
# Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute.
|
||||
pred:
|
||||
# The attribute set to filter
|
||||
set:
|
||||
listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
|
||||
|
||||
|
||||
|
@ -250,8 +312,15 @@ rec {
|
|||
Example:
|
||||
filterAttrsRecursive (n: v: v != null) { foo = { bar = null; }; }
|
||||
=> { foo = {}; }
|
||||
|
||||
Type:
|
||||
filterAttrsRecursive :: (String -> Any -> Bool) -> AttrSet -> AttrSet
|
||||
*/
|
||||
filterAttrsRecursive = pred: set:
|
||||
filterAttrsRecursive =
|
||||
# Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute.
|
||||
pred:
|
||||
# The attribute set to filter
|
||||
set:
|
||||
listToAttrs (
|
||||
concatMap (name:
|
||||
let v = set.${name}; in
|
||||
|
@ -269,23 +338,28 @@ rec {
|
|||
Example:
|
||||
foldAttrs (item: acc: [item] ++ acc) [] [{ a = 2; } { a = 3; }]
|
||||
=> { a = [ 2 3 ]; }
|
||||
|
||||
Type:
|
||||
foldAttrs :: (Any -> Any -> Any) -> Any -> [AttrSets] -> Any
|
||||
*/
|
||||
foldAttrs = op: nul:
|
||||
foldAttrs =
|
||||
# A function, given a value and a collector combines the two.
|
||||
op:
|
||||
# The starting value.
|
||||
nul:
|
||||
# A list of attribute sets to fold together by key.
|
||||
list_of_attrs:
|
||||
foldr (n: a:
|
||||
foldr (name: o:
|
||||
o // { ${name} = op n.${name} (a.${name} or nul); }
|
||||
) a (attrNames n)
|
||||
) {};
|
||||
) {} list_of_attrs;
|
||||
|
||||
|
||||
/* Recursively collect sets that verify a given predicate named `pred'
|
||||
from the set `attrs'. The recursion is stopped when the predicate is
|
||||
verified.
|
||||
|
||||
Type:
|
||||
collect ::
|
||||
(AttrSet -> Bool) -> AttrSet -> [x]
|
||||
|
||||
Example:
|
||||
collect isList { a = { b = ["b"]; }; c = [1]; }
|
||||
=> [["b"] [1]]
|
||||
|
@ -293,8 +367,15 @@ rec {
|
|||
collect (x: x ? outPath)
|
||||
{ a = { outPath = "a/"; }; b = { outPath = "b/"; }; }
|
||||
=> [{ outPath = "a/"; } { outPath = "b/"; }]
|
||||
|
||||
Type:
|
||||
collect :: (AttrSet -> Bool) -> AttrSet -> [x]
|
||||
*/
|
||||
collect = pred: attrs:
|
||||
collect =
|
||||
# Given an attribute's value, determine if recursion should stop.
|
||||
pred:
|
||||
# The attribute set to recursively collect.
|
||||
attrs:
|
||||
if pred attrs then
|
||||
[ attrs ]
|
||||
else if isAttrs attrs then
|
||||
|
@ -312,8 +393,12 @@ rec {
|
|||
{ a = 2; b = 10; }
|
||||
{ a = 2; b = 20; }
|
||||
]
|
||||
Type:
|
||||
cartesianProductOfSets :: AttrSet -> [AttrSet]
|
||||
*/
|
||||
cartesianProductOfSets = attrsOfLists:
|
||||
cartesianProductOfSets =
|
||||
# Attribute set with attributes that are lists of values
|
||||
attrsOfLists:
|
||||
foldl' (listOfAttrs: attrName:
|
||||
concatMap (attrs:
|
||||
map (listValue: attrs // { ${attrName} = listValue; }) attrsOfLists.${attrName}
|
||||
|
@ -321,25 +406,32 @@ rec {
|
|||
) [{}] (attrNames attrsOfLists);
|
||||
|
||||
|
||||
/* Utility function that creates a {name, value} pair as expected by
|
||||
builtins.listToAttrs.
|
||||
/* Utility function that creates a `{name, value}` pair as expected by `builtins.listToAttrs`.
|
||||
|
||||
Example:
|
||||
nameValuePair "some" 6
|
||||
=> { name = "some"; value = 6; }
|
||||
|
||||
Type:
|
||||
nameValuePair :: String -> Any -> AttrSet
|
||||
*/
|
||||
nameValuePair = name: value: { inherit name value; };
|
||||
nameValuePair =
|
||||
# Attribute name
|
||||
name:
|
||||
# Attribute value
|
||||
value:
|
||||
{ inherit name value; };
|
||||
|
||||
|
||||
/* Apply a function to each element in an attribute set. The
|
||||
function takes two arguments --- the attribute name and its value
|
||||
--- and returns the new value for the attribute. The result is a
|
||||
new attribute set.
|
||||
/* Apply a function to each element in an attribute set, creating a new attribute set.
|
||||
|
||||
Example:
|
||||
mapAttrs (name: value: name + "-" + value)
|
||||
{ x = "foo"; y = "bar"; }
|
||||
=> { x = "x-foo"; y = "y-bar"; }
|
||||
|
||||
Type:
|
||||
mapAttrs :: (String -> Any -> Any) -> AttrSet -> AttrSet
|
||||
*/
|
||||
mapAttrs = builtins.mapAttrs or
|
||||
(f: set:
|
||||
|
@ -354,24 +446,35 @@ rec {
|
|||
mapAttrs' (name: value: nameValuePair ("foo_" + name) ("bar-" + value))
|
||||
{ x = "a"; y = "b"; }
|
||||
=> { foo_x = "bar-a"; foo_y = "bar-b"; }
|
||||
|
||||
Type:
|
||||
mapAttrs' :: (String -> Any -> { name = String; value = Any }) -> AttrSet -> AttrSet
|
||||
*/
|
||||
mapAttrs' = f: set:
|
||||
mapAttrs' =
|
||||
# A function, given an attribute's name and value, returns a new `nameValuePair`.
|
||||
f:
|
||||
# Attribute set to map over.
|
||||
set:
|
||||
listToAttrs (map (attr: f attr set.${attr}) (attrNames set));
|
||||
|
||||
|
||||
/* Call a function for each attribute in the given set and return
|
||||
the result in a list.
|
||||
|
||||
Type:
|
||||
mapAttrsToList ::
|
||||
(String -> a -> b) -> AttrSet -> [b]
|
||||
|
||||
Example:
|
||||
mapAttrsToList (name: value: name + value)
|
||||
{ x = "a"; y = "b"; }
|
||||
=> [ "xa" "yb" ]
|
||||
|
||||
Type:
|
||||
mapAttrsToList :: (String -> a -> b) -> AttrSet -> [b]
|
||||
|
||||
*/
|
||||
mapAttrsToList = f: attrs:
|
||||
mapAttrsToList =
|
||||
# A function, given an attribute's name and value, returns a new value.
|
||||
f:
|
||||
# Attribute set to map over.
|
||||
attrs:
|
||||
map (name: f name attrs.${name}) (attrNames attrs);
|
||||
|
||||
|
||||
|
@ -379,16 +482,20 @@ rec {
|
|||
attribute sets. Also, the first argument of the argument
|
||||
function is a *list* of the names of the containing attributes.
|
||||
|
||||
Type:
|
||||
mapAttrsRecursive ::
|
||||
([String] -> a -> b) -> AttrSet -> AttrSet
|
||||
|
||||
Example:
|
||||
mapAttrsRecursive (path: value: concatStringsSep "-" (path ++ [value]))
|
||||
{ n = { a = "A"; m = { b = "B"; c = "C"; }; }; d = "D"; }
|
||||
=> { n = { a = "n-a-A"; m = { b = "n-m-b-B"; c = "n-m-c-C"; }; }; d = "d-D"; }
|
||||
|
||||
Type:
|
||||
mapAttrsRecursive :: ([String] -> a -> b) -> AttrSet -> AttrSet
|
||||
*/
|
||||
mapAttrsRecursive = mapAttrsRecursiveCond (as: true);
|
||||
mapAttrsRecursive =
|
||||
# A function, given a list of attribute names and a value, returns a new value.
|
||||
f:
|
||||
# Set to recursively map over.
|
||||
set:
|
||||
mapAttrsRecursiveCond (as: true) f set;
|
||||
|
||||
|
||||
/* Like `mapAttrsRecursive', but it takes an additional predicate
|
||||
|
@ -397,10 +504,6 @@ rec {
|
|||
recurse, but does apply the map function. If it returns true, it
|
||||
does recurse, and does not apply the map function.
|
||||
|
||||
Type:
|
||||
mapAttrsRecursiveCond ::
|
||||
(AttrSet -> Bool) -> ([String] -> a -> b) -> AttrSet -> AttrSet
|
||||
|
||||
Example:
|
||||
# To prevent recursing into derivations (which are attribute
|
||||
# sets with the attribute "type" equal to "derivation"):
|
||||
|
@ -408,8 +511,17 @@ rec {
|
|||
(as: !(as ? "type" && as.type == "derivation"))
|
||||
(x: ... do something ...)
|
||||
attrs
|
||||
|
||||
Type:
|
||||
mapAttrsRecursiveCond :: (AttrSet -> Bool) -> ([String] -> a -> b) -> AttrSet -> AttrSet
|
||||
*/
|
||||
mapAttrsRecursiveCond = cond: f: set:
|
||||
mapAttrsRecursiveCond =
|
||||
# A function, given the attribute set the recursion is currently at, determine if to recurse deeper into that attribute set.
|
||||
cond:
|
||||
# A function, given a list of attribute names and a value, returns a new value.
|
||||
f:
|
||||
# Attribute set to recursively map over.
|
||||
set:
|
||||
let
|
||||
recurse = path:
|
||||
let
|
||||
|
@ -428,13 +540,20 @@ rec {
|
|||
Example:
|
||||
genAttrs [ "foo" "bar" ] (name: "x_" + name)
|
||||
=> { foo = "x_foo"; bar = "x_bar"; }
|
||||
|
||||
Type:
|
||||
genAttrs :: [ String ] -> (String -> Any) -> AttrSet
|
||||
*/
|
||||
genAttrs = names: f:
|
||||
genAttrs =
|
||||
# Names of values in the resulting attribute set.
|
||||
names:
|
||||
# A function, given the name of the attribute, returns the attribute's value.
|
||||
f:
|
||||
listToAttrs (map (n: nameValuePair n (f n)) names);
|
||||
|
||||
|
||||
/* Check whether the argument is a derivation. Any set with
|
||||
{ type = "derivation"; } counts as a derivation.
|
||||
`{ type = "derivation"; }` counts as a derivation.
|
||||
|
||||
Example:
|
||||
nixpkgs = import <nixpkgs> {}
|
||||
|
@ -442,25 +561,36 @@ rec {
|
|||
=> true
|
||||
isDerivation "foobar"
|
||||
=> false
|
||||
*/
|
||||
isDerivation = x: x.type or null == "derivation";
|
||||
|
||||
/* Converts a store path to a fake derivation. */
|
||||
toDerivation = path:
|
||||
let
|
||||
path' = builtins.storePath path;
|
||||
res =
|
||||
{ type = "derivation";
|
||||
name = sanitizeDerivationName (builtins.substring 33 (-1) (baseNameOf path'));
|
||||
outPath = path';
|
||||
outputs = [ "out" ];
|
||||
out = res;
|
||||
outputName = "out";
|
||||
};
|
||||
Type:
|
||||
isDerivation :: Any -> Bool
|
||||
*/
|
||||
isDerivation =
|
||||
# Value to check.
|
||||
value: value.type or null == "derivation";
|
||||
|
||||
/* Converts a store path to a fake derivation.
|
||||
|
||||
Type:
|
||||
toDerivation :: Path -> Derivation
|
||||
*/
|
||||
toDerivation =
|
||||
# A store path to convert to a derivation.
|
||||
path:
|
||||
let
|
||||
path' = builtins.storePath path;
|
||||
res =
|
||||
{ type = "derivation";
|
||||
name = sanitizeDerivationName (builtins.substring 33 (-1) (baseNameOf path'));
|
||||
outPath = path';
|
||||
outputs = [ "out" ];
|
||||
out = res;
|
||||
outputName = "out";
|
||||
};
|
||||
in res;
|
||||
|
||||
|
||||
/* If `cond' is true, return the attribute set `as',
|
||||
/* If `cond` is true, return the attribute set `as`,
|
||||
otherwise an empty attribute set.
|
||||
|
||||
Example:
|
||||
|
@ -468,47 +598,82 @@ rec {
|
|||
=> { my = "set"; }
|
||||
optionalAttrs (false) { my = "set"; }
|
||||
=> { }
|
||||
|
||||
Type:
|
||||
optionalAttrs :: Bool -> AttrSet
|
||||
*/
|
||||
optionalAttrs = cond: as: if cond then as else {};
|
||||
optionalAttrs =
|
||||
# Condition under which the `as` attribute set is returned.
|
||||
cond:
|
||||
# The attribute set to return if `cond` is `true`.
|
||||
as:
|
||||
if cond then as else {};
|
||||
|
||||
|
||||
/* Merge sets of attributes and use the function f to merge attributes
|
||||
/* Merge sets of attributes and use the function `f` to merge attributes
|
||||
values.
|
||||
|
||||
Example:
|
||||
zipAttrsWithNames ["a"] (name: vs: vs) [{a = "x";} {a = "y"; b = "z";}]
|
||||
=> { a = ["x" "y"]; }
|
||||
|
||||
Type:
|
||||
zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
|
||||
*/
|
||||
zipAttrsWithNames = names: f: sets:
|
||||
zipAttrsWithNames =
|
||||
# List of attribute names to zip.
|
||||
names:
|
||||
# A function, accepts an attribute name, all the values, and returns a combined value.
|
||||
f:
|
||||
# List of values from the list of attribute sets.
|
||||
sets:
|
||||
listToAttrs (map (name: {
|
||||
inherit name;
|
||||
value = f name (catAttrs name sets);
|
||||
}) names);
|
||||
|
||||
/* Implementation note: Common names appear multiple times in the list of
|
||||
|
||||
/* Merge sets of attributes and use the function f to merge attribute values.
|
||||
Like `lib.attrsets.zipAttrsWithNames` with all key names are passed for `names`.
|
||||
|
||||
Implementation note: Common names appear multiple times in the list of
|
||||
names, hopefully this does not affect the system because the maximal
|
||||
laziness avoid computing twice the same expression and listToAttrs does
|
||||
laziness avoid computing twice the same expression and `listToAttrs` does
|
||||
not care about duplicated attribute names.
|
||||
|
||||
Example:
|
||||
zipAttrsWith (name: values: values) [{a = "x";} {a = "y"; b = "z";}]
|
||||
=> { a = ["x" "y"]; b = ["z"] }
|
||||
|
||||
Type:
|
||||
zipAttrsWith :: (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
|
||||
*/
|
||||
zipAttrsWith =
|
||||
builtins.zipAttrsWith or (f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets);
|
||||
/* Like `zipAttrsWith' with `(name: values: values)' as the function.
|
||||
|
||||
Example:
|
||||
zipAttrs [{a = "x";} {a = "y"; b = "z";}]
|
||||
=> { a = ["x" "y"]; b = ["z"] }
|
||||
|
||||
/* Merge sets of attributes and combine each attribute value in to a list.
|
||||
|
||||
Like `lib.attrsets.zipAttrsWith' with `(name: values: values)' as the function.
|
||||
|
||||
Example:
|
||||
zipAttrs [{a = "x";} {a = "y"; b = "z";}]
|
||||
=> { a = ["x" "y"]; b = ["z"] }
|
||||
|
||||
Type:
|
||||
zipAttrs :: [ AttrSet ] -> AttrSet
|
||||
*/
|
||||
zipAttrs = zipAttrsWith (name: values: values);
|
||||
zipAttrs =
|
||||
# List of attribute sets to zip together.
|
||||
sets:
|
||||
zipAttrsWith (name: values: values) sets;
|
||||
|
||||
|
||||
/* Does the same as the update operator '//' except that attributes are
|
||||
merged until the given predicate is verified. The predicate should
|
||||
accept 3 arguments which are the path to reach the attribute, a part of
|
||||
the first attribute set and a part of the second attribute set. When
|
||||
the predicate is verified, the value of the first attribute set is
|
||||
the predicate is satisfied, the value of the first attribute set is
|
||||
replaced by the value of the second attribute set.
|
||||
|
||||
Example:
|
||||
|
@ -524,15 +689,23 @@ rec {
|
|||
baz = 4;
|
||||
}
|
||||
|
||||
returns: {
|
||||
=> {
|
||||
foo.bar = 1; # 'foo.*' from the second set
|
||||
foo.quz = 2; #
|
||||
bar = 3; # 'bar' from the first set
|
||||
baz = 4; # 'baz' from the second set
|
||||
}
|
||||
|
||||
*/
|
||||
recursiveUpdateUntil = pred: lhs: rhs:
|
||||
Type:
|
||||
recursiveUpdateUntil :: ( [ String ] -> AttrSet -> AttrSet -> Bool ) -> AttrSet -> AttrSet -> AttrSet
|
||||
*/
|
||||
recursiveUpdateUntil =
|
||||
# Predicate, taking the path to the current attribute as a list of strings for attribute names, and the two values at that path from the original arguments.
|
||||
pred:
|
||||
# Left attribute set of the merge.
|
||||
lhs:
|
||||
# Right attribute set of the merge.
|
||||
rhs:
|
||||
let f = attrPath:
|
||||
zipAttrsWith (n: values:
|
||||
let here = attrPath ++ [n]; in
|
||||
|
@ -544,6 +717,7 @@ rec {
|
|||
);
|
||||
in f [] [rhs lhs];
|
||||
|
||||
|
||||
/* A recursive variant of the update operator ‘//’. The recursion
|
||||
stops when one of the attribute values is not an attribute set,
|
||||
in which case the right hand side value takes precedence over the
|
||||
|
@ -562,16 +736,32 @@ rec {
|
|||
boot.loader.grub.device = "";
|
||||
}
|
||||
|
||||
*/
|
||||
recursiveUpdate = recursiveUpdateUntil (path: lhs: rhs: !(isAttrs lhs && isAttrs rhs));
|
||||
Type:
|
||||
recursiveUpdate :: AttrSet -> AttrSet -> AttrSet
|
||||
*/
|
||||
recursiveUpdate =
|
||||
# Left attribute set of the merge.
|
||||
lhs:
|
||||
# Right attribute set of the merge.
|
||||
rhs:
|
||||
recursiveUpdateUntil (path: lhs: rhs: !(isAttrs lhs && isAttrs rhs)) lhs rhs;
|
||||
|
||||
|
||||
/* Returns true if the pattern is contained in the set. False otherwise.
|
||||
|
||||
Example:
|
||||
matchAttrs { cpu = {}; } { cpu = { bits = 64; }; }
|
||||
=> true
|
||||
*/
|
||||
matchAttrs = pattern: attrs: assert isAttrs pattern;
|
||||
|
||||
Type:
|
||||
matchAttrs :: AttrSet -> AttrSet -> Bool
|
||||
*/
|
||||
matchAttrs =
|
||||
# Attribute set strucutre to match
|
||||
pattern:
|
||||
# Attribute set to find patterns in
|
||||
attrs:
|
||||
assert isAttrs pattern;
|
||||
all id (attrValues (zipAttrsWithNames (attrNames pattern) (n: values:
|
||||
let pat = head values; val = elemAt values 1; in
|
||||
if length values == 1 then false
|
||||
|
@ -579,6 +769,7 @@ rec {
|
|||
else pat == val
|
||||
) [pattern attrs]));
|
||||
|
||||
|
||||
/* Override only the attributes that are already present in the old set
|
||||
useful for deep-overriding.
|
||||
|
||||
|
@ -589,10 +780,18 @@ rec {
|
|||
=> { b = 2; }
|
||||
overrideExisting { a = 3; b = 2; } { a = 1; }
|
||||
=> { a = 1; b = 2; }
|
||||
|
||||
Type:
|
||||
overrideExisting :: AttrSet -> AttrSet -> AttrSet
|
||||
*/
|
||||
overrideExisting = old: new:
|
||||
overrideExisting =
|
||||
# Original attribute set
|
||||
old:
|
||||
# Attribute set with attributes to override in `old`.
|
||||
new:
|
||||
mapAttrs (name: value: new.${name} or value) old;
|
||||
|
||||
|
||||
/* Turns a list of strings into a human-readable description of those
|
||||
strings represented as an attribute path. The result of this function is
|
||||
not intended to be machine-readable.
|
||||
|
@ -602,44 +801,120 @@ rec {
|
|||
=> "foo.\"10\".bar"
|
||||
showAttrPath []
|
||||
=> "<root attribute path>"
|
||||
|
||||
Type:
|
||||
showAttrPath :: [String] -> String
|
||||
*/
|
||||
showAttrPath = path:
|
||||
showAttrPath =
|
||||
# Attribute path to render to a string
|
||||
path:
|
||||
if path == [] then "<root attribute path>"
|
||||
else concatMapStringsSep "." escapeNixIdentifier path;
|
||||
|
||||
|
||||
/* Get a package output.
|
||||
If no output is found, fallback to `.out` and then to the default.
|
||||
|
||||
Example:
|
||||
getOutput "dev" pkgs.openssl
|
||||
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
|
||||
|
||||
Type:
|
||||
getOutput :: String -> Derivation -> String
|
||||
*/
|
||||
getOutput = output: pkg:
|
||||
if ! pkg ? outputSpecified || ! pkg.outputSpecified
|
||||
then pkg.${output} or pkg.out or pkg
|
||||
else pkg;
|
||||
|
||||
/* Get a package's `bin` output.
|
||||
If the output does not exist, fallback to `.out` and then to the default.
|
||||
|
||||
Example:
|
||||
getOutput pkgs.openssl
|
||||
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r"
|
||||
|
||||
Type:
|
||||
getOutput :: Derivation -> String
|
||||
*/
|
||||
getBin = getOutput "bin";
|
||||
|
||||
|
||||
/* Get a package's `lib` output.
|
||||
If the output does not exist, fallback to `.out` and then to the default.
|
||||
|
||||
Example:
|
||||
getOutput pkgs.openssl
|
||||
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-lib"
|
||||
|
||||
Type:
|
||||
getOutput :: Derivation -> String
|
||||
*/
|
||||
getLib = getOutput "lib";
|
||||
|
||||
|
||||
/* Get a package's `dev` output.
|
||||
If the output does not exist, fallback to `.out` and then to the default.
|
||||
|
||||
Example:
|
||||
getOutput pkgs.openssl
|
||||
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
|
||||
|
||||
Type:
|
||||
getOutput :: Derivation -> String
|
||||
*/
|
||||
getDev = getOutput "dev";
|
||||
|
||||
|
||||
/* Get a package's `man` output.
|
||||
If the output does not exist, fallback to `.out` and then to the default.
|
||||
|
||||
Example:
|
||||
getOutput pkgs.openssl
|
||||
=> "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-man"
|
||||
|
||||
Type:
|
||||
getOutput :: Derivation -> String
|
||||
*/
|
||||
getMan = getOutput "man";
|
||||
|
||||
/* Pick the outputs of packages to place in buildInputs */
|
||||
chooseDevOutputs = builtins.map getDev;
|
||||
/* Pick the outputs of packages to place in `buildInputs` */
|
||||
chooseDevOutputs =
|
||||
# List of packages to pick `dev` outputs from
|
||||
drvs:
|
||||
builtins.map getDev drvs;
|
||||
|
||||
/* Make various Nix tools consider the contents of the resulting
|
||||
attribute set when looking for what to build, find, etc.
|
||||
|
||||
This function only affects a single attribute set; it does not
|
||||
apply itself recursively for nested attribute sets.
|
||||
|
||||
Example:
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
{
|
||||
myTools = pkgs.lib.recurseIntoAttrs {
|
||||
inherit (pkgs) hello figlet;
|
||||
};
|
||||
}
|
||||
|
||||
Type:
|
||||
recurseIntoAttrs :: AttrSet -> AttrSet
|
||||
*/
|
||||
recurseIntoAttrs =
|
||||
attrs: attrs // { recurseForDerivations = true; };
|
||||
# An attribute set to scan for derivations.
|
||||
attrs:
|
||||
attrs // { recurseForDerivations = true; };
|
||||
|
||||
/* Undo the effect of recurseIntoAttrs.
|
||||
|
||||
Type:
|
||||
recurseIntoAttrs :: AttrSet -> AttrSet
|
||||
*/
|
||||
dontRecurseIntoAttrs =
|
||||
attrs: attrs // { recurseForDerivations = false; };
|
||||
# An attribute set to not scan for derivations.
|
||||
attrs:
|
||||
attrs // { recurseForDerivations = false; };
|
||||
|
||||
/* `unionOfDisjoint x y` is equal to `x // y // z` where the
|
||||
attrnames in `z` are the intersection of the attrnames in `x` and
|
||||
|
@ -655,9 +930,9 @@ rec {
|
|||
in
|
||||
(x // y) // mask;
|
||||
|
||||
/*** deprecated stuff ***/
|
||||
|
||||
# deprecated
|
||||
zipWithNames = zipAttrsWithNames;
|
||||
# deprecated
|
||||
zip = builtins.trace
|
||||
"lib.zip is deprecated, use lib.zipAttrsWith instead" zipAttrsWith;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,16 @@ you may want to use one of the unversioned `pkgs.linuxPackages_*` aliases
|
|||
such as `pkgs.linuxPackages_latest`, that are kept up to date with new
|
||||
versions.
|
||||
|
||||
Please note that the current convention in NixOS is to only keep actively
|
||||
maintained kernel versions on both unstable and the currently supported stable
|
||||
release(s) of NixOS. This means that a non-longterm kernel will be removed after it's
|
||||
abandoned by the kernel developers, even on stable NixOS versions. If you
|
||||
pin your kernel onto a non-longterm version, expect your evaluation to fail as
|
||||
soon as the version is out of maintenance.
|
||||
|
||||
Longterm versions of kernels will be removed before the next stable NixOS that will
|
||||
exceed the maintenance period of the kernel version.
|
||||
|
||||
The default Linux kernel configuration should be fine for most users.
|
||||
You can see the configuration of your current kernel with the following
|
||||
command:
|
||||
|
@ -138,3 +148,26 @@ $ cd linux-*
|
|||
$ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox modules
|
||||
# insmod ./drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
|
||||
```
|
||||
|
||||
## ZFS {#sec-linux-zfs}
|
||||
|
||||
It's a common issue that the latest stable version of ZFS doesn't support the latest
|
||||
available Linux kernel. It is recommended to use the latest available LTS that's compatible
|
||||
with ZFS. Usually this is the default kernel provided by nixpkgs (i.e. `pkgs.linuxPackages`).
|
||||
|
||||
Alternatively, it's possible to pin the system to the latest available kernel
|
||||
version *that is supported by ZFS* like this:
|
||||
|
||||
```nix
|
||||
{
|
||||
boot.kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages;
|
||||
}
|
||||
```
|
||||
|
||||
Please note that the version this attribute points to isn't monotonic because the latest kernel
|
||||
version only refers to kernel versions supported by the Linux developers. In other words,
|
||||
the latest kernel version that ZFS is compatible with may decrease over time.
|
||||
|
||||
An example: the latest version ZFS is compatible with is 5.19 which is a non-longterm version. When 5.19
|
||||
is out of maintenance, the latest supported kernel version is 5.15 because it's longterm and the versions
|
||||
5.16, 5.17 and 5.18 are already out of maintenance because they're non-longterm.
|
||||
|
|
|
@ -21,6 +21,19 @@ boot.kernelPackages = pkgs.linuxKernel.packages.linux_3_10;
|
|||
<literal>pkgs.linuxPackages_latest</literal>, that are kept up to
|
||||
date with new versions.
|
||||
</para>
|
||||
<para>
|
||||
Please note that the current convention in NixOS is to only keep
|
||||
actively maintained kernel versions on both unstable and the
|
||||
currently supported stable release(s) of NixOS. This means that a
|
||||
non-longterm kernel will be removed after it’s abandoned by the
|
||||
kernel developers, even on stable NixOS versions. If you pin your
|
||||
kernel onto a non-longterm version, expect your evaluation to fail
|
||||
as soon as the version is out of maintenance.
|
||||
</para>
|
||||
<para>
|
||||
Longterm versions of kernels will be removed before the next stable
|
||||
NixOS that will exceed the maintenance period of the kernel version.
|
||||
</para>
|
||||
<para>
|
||||
The default Linux kernel configuration should be fine for most
|
||||
users. You can see the configuration of your current kernel with the
|
||||
|
@ -154,4 +167,38 @@ $ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox module
|
|||
# insmod ./drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
|
||||
</programlisting>
|
||||
</section>
|
||||
<section xml:id="sec-linux-zfs">
|
||||
<title>ZFS</title>
|
||||
<para>
|
||||
It’s a common issue that the latest stable version of ZFS doesn’t
|
||||
support the latest available Linux kernel. It is recommended to
|
||||
use the latest available LTS that’s compatible with ZFS. Usually
|
||||
this is the default kernel provided by nixpkgs (i.e.
|
||||
<literal>pkgs.linuxPackages</literal>).
|
||||
</para>
|
||||
<para>
|
||||
Alternatively, it’s possible to pin the system to the latest
|
||||
available kernel version <emphasis>that is supported by
|
||||
ZFS</emphasis> like this:
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
{
|
||||
boot.kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages;
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
Please note that the version this attribute points to isn’t
|
||||
monotonic because the latest kernel version only refers to kernel
|
||||
versions supported by the Linux developers. In other words, the
|
||||
latest kernel version that ZFS is compatible with may decrease
|
||||
over time.
|
||||
</para>
|
||||
<para>
|
||||
An example: the latest version ZFS is compatible with is 5.19
|
||||
which is a non-longterm version. When 5.19 is out of maintenance,
|
||||
the latest supported kernel version is 5.15 because it’s longterm
|
||||
and the versions 5.16, 5.17 and 5.18 are already out of
|
||||
maintenance because they’re non-longterm.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
|
|
|
@ -158,6 +158,17 @@
|
|||
<section xml:id="sec-release-23.05-notable-changes">
|
||||
<title>Other Notable Changes</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>vim_configurable</literal> has been renamed to
|
||||
<literal>vim-full</literal> to avoid confusion:
|
||||
<literal>vim-full</literal>’s build-time features are
|
||||
configurable, but both <literal>vim</literal> and
|
||||
<literal>vim-full</literal> are
|
||||
<emphasis>customizable</emphasis> (in the sense of user
|
||||
configuration, like vimrc).
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The module for the application firewall
|
||||
|
@ -184,6 +195,21 @@
|
|||
deprecated when NixOS 22.11 reaches end of life.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
To reduce closure size in
|
||||
<literal>nixos/modules/profiles/minimal.nix</literal> profile
|
||||
disabled installation documentations and manuals. Also
|
||||
disabled <literal>logrotate</literal> and
|
||||
<literal>udisks2</literal> services.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The minimal ISO image now use
|
||||
<literal>nixos/modules/profiles/minimal.nix</literal> profile.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
A new <literal>virtualisation.rosetta</literal> module was
|
||||
|
|
|
@ -49,6 +49,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- `vim_configurable` has been renamed to `vim-full` to avoid confusion: `vim-full`'s build-time features are configurable, but both `vim` and `vim-full` are *customizable* (in the sense of user configuration, like vimrc).
|
||||
|
||||
- The module for the application firewall `opensnitch` got the ability to configure rules. Available as [services.opensnitch.rules](#opt-services.opensnitch.rules)
|
||||
|
||||
- `services.mastodon` gained a tootctl wrapped named `mastodon-tootctl` similar to `nextcloud-occ` which can be executed from any user and switches to the configured mastodon user with sudo and sources the environment variables.
|
||||
|
@ -58,6 +60,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
`services.dnsmasq.extraConfig` will be deprecated when NixOS 22.11 reaches
|
||||
end of life.
|
||||
|
||||
- To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services.
|
||||
|
||||
- The minimal ISO image now use `nixos/modules/profiles/minimal.nix` profile.
|
||||
|
||||
- A new `virtualisation.rosetta` module was added to allow running `x86_64` binaries through [Rosetta](https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment) inside virtualised NixOS guests on Apple silicon. This feature works by default with the [UTM](https://docs.getutm.app/) virtualisation [package](https://search.nixos.org/packages?channel=unstable&show=utm&from=0&size=1&sort=relevance&type=packages&query=utm).
|
||||
|
||||
- Resilio sync secret keys can now be provided using a secrets file at runtime, preventing these secrets from ending up in the Nix store.
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
# This module defines a small NixOS installation CD. It does not
|
||||
# contain any graphical stuff.
|
||||
|
||||
{ ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ ./installation-cd-base.nix
|
||||
];
|
||||
imports = [
|
||||
../../profiles/minimal.nix
|
||||
./installation-cd-base.nix
|
||||
];
|
||||
|
||||
isoImage.edition = "minimal";
|
||||
documentation.man.enable = lib.mkOverride 500 true;
|
||||
|
||||
fonts.fontconfig.enable = false;
|
||||
fonts.fontconfig.enable = lib.mkForce false;
|
||||
|
||||
isoImage.edition = lib.mkForce "minimal";
|
||||
}
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ ./netboot-base.nix
|
||||
../../profiles/minimal.nix
|
||||
];
|
||||
imports = [
|
||||
./netboot-base.nix
|
||||
../../profiles/minimal.nix
|
||||
];
|
||||
|
||||
documentation.man.enable = lib.mkOverride 500 true;
|
||||
}
|
||||
|
|
|
@ -10,10 +10,20 @@ with lib;
|
|||
|
||||
documentation.enable = mkDefault false;
|
||||
|
||||
documentation.doc.enable = mkDefault false;
|
||||
|
||||
documentation.info.enable = mkDefault false;
|
||||
|
||||
documentation.man.enable = mkDefault false;
|
||||
|
||||
documentation.nixos.enable = mkDefault false;
|
||||
|
||||
programs.command-not-found.enable = mkDefault false;
|
||||
|
||||
services.logrotate.enable = mkDefault false;
|
||||
|
||||
services.udisks2.enable = mkDefault false;
|
||||
|
||||
xdg.autostart.enable = mkDefault false;
|
||||
xdg.icons.enable = mkDefault false;
|
||||
xdg.mime.enable = mkDefault false;
|
||||
|
|
|
@ -6,7 +6,7 @@ in
|
|||
{
|
||||
options = {
|
||||
programs.skim = {
|
||||
fuzzyCompletion = mkEnableOption (mdDoc "fuzzy Completion with skim");
|
||||
fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with skim");
|
||||
keybindings = mkEnableOption (mdDoc "skim keybindings");
|
||||
package = mkPackageOption pkgs "skim" {};
|
||||
};
|
||||
|
@ -26,5 +26,9 @@ in
|
|||
'' + optionalString cfg.keybindings ''
|
||||
source ${cfg.package}/share/skim/key-bindings.zsh
|
||||
'';
|
||||
|
||||
programs.fish.interactiveShellInit = optionalString cfg.keybindings ''
|
||||
source ${cfg.package}/share/skim/key-bindings.fish && skim_key_bindings
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ in
|
|||
systemd.packages = [ pkgs.asusctl ];
|
||||
services.dbus.packages = [ pkgs.asusctl ];
|
||||
services.udev.packages = [ pkgs.asusctl ];
|
||||
services.supergfxd.enable = true;
|
||||
services.supergfxd.enable = lib.mkDefault true;
|
||||
|
||||
systemd.user.services.asusd-user.enable = cfg.enableUserService;
|
||||
};
|
||||
|
|
|
@ -23,7 +23,7 @@ in
|
|||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.supergfxctl ];
|
||||
|
||||
environment.etc."supergfxd.conf".source = lib.mkIf (cfg.settings != null) (json.generate "supergfxd.conf" cfg.settings);
|
||||
environment.etc."supergfxd.conf" = lib.mkIf (cfg.settings != null) { source = json.generate "supergfxd.conf" cfg.settings; };
|
||||
|
||||
services.dbus.enable = true;
|
||||
|
||||
|
|
|
@ -62,6 +62,11 @@ in
|
|||
configuration. For instance, if you use the NVIDIA X driver,
|
||||
then it also needs to contain an attribute
|
||||
{var}`nvidia_x11`.
|
||||
|
||||
Please note that we strictly support kernel versions that are
|
||||
maintained by the Linux developers only. More information on the
|
||||
availability of kernel versions is documented
|
||||
[in the Linux section of the manual](https://nixos.org/manual/nixos/unstable/index.html#sec-kernel-config).
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# run tests by building `neovim.tests`
|
||||
{ vimUtils, vim_configurable, writeText, neovim, vimPlugins
|
||||
{ vimUtils, writeText, neovim, vimPlugins
|
||||
, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
|
||||
, neovim-unwrapped
|
||||
, fetchFromGitLab
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, git
|
||||
, fzf
|
||||
, makeWrapper
|
||||
, vim_configurable
|
||||
, vim-full
|
||||
, vimPlugins
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
|
@ -14,7 +14,7 @@
|
|||
|
||||
let
|
||||
format = formats.toml { };
|
||||
vim-customized = vim_configurable.customize {
|
||||
vim-customized = vim-full.customize {
|
||||
name = "vim";
|
||||
# Not clear at the moment how to import plugins such that
|
||||
# SpaceVim finds them and does not auto download them to
|
||||
|
|
|
@ -63,7 +63,7 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
|
||||
pname = "vim_configurable";
|
||||
pname = "vim-full";
|
||||
|
||||
inherit (common) version postPatch hardeningDisable enableParallelBuilding meta;
|
||||
|
||||
|
|
|
@ -6,9 +6,9 @@ let
|
|||
makeCustomizable = macvim: macvim // {
|
||||
# configure expects the same args as vimUtils.vimrcFile.
|
||||
# This is the same as the value given to neovim.override { configure = … }
|
||||
# or the value of vim_configurable.customize { vimrcConfig = … }
|
||||
# or the value of vim-full.customize { vimrcConfig = … }
|
||||
#
|
||||
# Note: Like neovim and vim_configurable, configuring macvim disables the
|
||||
# Note: Like neovim and vim-full, configuring macvim disables the
|
||||
# sourcing of the user's vimrc. Use `customRC = "source $HOME/.vim/vimrc"`
|
||||
# if you want to preserve that behavior.
|
||||
configure = let
|
||||
|
|
|
@ -14,7 +14,7 @@ USAGE EXAMPLE
|
|||
Install Vim like this eg using nixos option environment.systemPackages which will provide
|
||||
vim-with-plugins in PATH:
|
||||
|
||||
vim_configurable.customize {
|
||||
vim-full.customize {
|
||||
name = "vim-with-plugins"; # optional
|
||||
|
||||
# add custom .vimrc lines like this:
|
||||
|
@ -105,7 +105,7 @@ fitting the vimrcConfig.vam.pluginDictionaries option.
|
|||
Thus the most simple usage would be:
|
||||
|
||||
vim_with_plugins =
|
||||
let vim = vim_configurable;
|
||||
let vim = vim-full;
|
||||
inherit (vimUtil.override {inherit vim}) rtpPath addRtp buildVimPlugin vimHelpTags;
|
||||
vimPlugins = [
|
||||
# the derivation list from the buffer created by nix#ExportPluginsForNix
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, stdenv, config, vim_configurable, macvim, vimPlugins
|
||||
{ lib, stdenv, config, vim-full, macvim, vimPlugins
|
||||
, useMacvim ? stdenv.isDarwin && (config.vimacs.macvim or true)
|
||||
, vimacsExtraArgs ? "" }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vimacs";
|
||||
version = lib.getVersion vimPackage;
|
||||
vimPackage = if useMacvim then macvim else vim_configurable;
|
||||
vimPackage = if useMacvim then macvim else vim-full;
|
||||
|
||||
buildInputs = [ vimPackage vimPlugins.vimacs ];
|
||||
|
||||
|
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "kubernetes";
|
||||
version = "1.25.4";
|
||||
version = "1.25.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1k0L8QUj/764X0Y7qxjFMnatTGKeRPBUroHjSMMe5M4=";
|
||||
sha256 = "sha256-HciTzp9N7YY1+jzIJY8OPmYIsGfe/5abaExnDzt1tKE=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "waypoint";
|
||||
version = "0.10.3";
|
||||
version = "0.10.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hashicorp";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-+lNeMcSlhmbs1knONnoX2RhEgxTYyCfpdD6WuDTiLx8=";
|
||||
sha256 = "sha256-jbrzXktY1vGk1DuzrzxlWwFQoFPprnDy2YjZQBgmcPI=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-59rJ30m6eiNIapJUNc1jRJE7IoAj0O+5G8JyKkhcyvY=";
|
||||
vendorSha256 = "sha256-oTzGgyQZWNj7vNpAaDO47nB7EbpUiQD66u4F1LJ2CR0=";
|
||||
|
||||
nativeBuildInputs = [ go-bindata installShellFiles ];
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, fetchFromGitHub, python3Packages, pkgs }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "accelergy";
|
||||
version = "unstable-2022-05-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Accelergy-Project";
|
||||
repo = "accelergy";
|
||||
rev = "34df8e87a889ae55cecba58992d4573466b40565";
|
||||
hash = "sha256-SRtt1EocHy5fKszpoumC+mOK/qhreoA2/Ff1wcu5WKo=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
pyyaml
|
||||
yamlordereddictloader
|
||||
pyfiglet
|
||||
setuptools
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An architecture-level energy/area estimator for accelerator designs";
|
||||
license = licenses.mit;
|
||||
homepage = "https://accelergy.mit.edu/";
|
||||
maintainers = with maintainers; [ gdinh ];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, scons
|
||||
, libconfig
|
||||
, boost
|
||||
, libyaml
|
||||
, libyamlcpp
|
||||
, ncurses
|
||||
, gpm
|
||||
, enableAccelergy ? true
|
||||
, enableISL ? false
|
||||
, accelergy
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "timeloop";
|
||||
version = "unstable-2022-11-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NVlabs";
|
||||
repo = "timeloop";
|
||||
rev = "905ba953432c812772de935d57fd0a674a89d3c1";
|
||||
hash = "sha256-EXiWXf8hdX4vFRNk9wbFSOsix/zVkwrafGUtFrsoAN0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ scons ];
|
||||
|
||||
buildInputs = [
|
||||
libconfig
|
||||
boost
|
||||
libyaml
|
||||
libyamlcpp
|
||||
ncurses
|
||||
accelergy
|
||||
] ++ lib.optionals stdenv.isLinux [ gpm ];
|
||||
|
||||
preConfigure = ''
|
||||
cp -r ./pat-public/src/pat ./src/pat
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
#link-time optimization fails on darwin
|
||||
#see https://github.com/NixOS/nixpkgs/issues/19098
|
||||
NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-fno-lto";
|
||||
|
||||
postPatch = ''
|
||||
# use nix ar/ranlib
|
||||
substituteInPlace ./SConstruct \
|
||||
--replace "env.Replace(AR = \"gcc-ar\")" "" \
|
||||
--replace "env.Replace(RANLIB = \"gcc-ranlib\")" ""
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
# prevent clang from dying on errors that gcc is fine with
|
||||
substituteInPlace ./src/SConscript --replace "-Werror" "-Wno-inconsistent-missing-override"
|
||||
|
||||
# disable LTO on macos
|
||||
substituteInPlace ./src/SConscript --replace ", '-flto'" ""
|
||||
|
||||
# static builds on mac fail as no static libcrt is provided by apple
|
||||
# see https://stackoverflow.com/questions/3801011/ld-library-not-found-for-lcrt0-o-on-osx-10-6-with-gcc-clang-static-flag
|
||||
substituteInPlace ./src/SConscript \
|
||||
--replace "'-static-libgcc', " "" \
|
||||
--replace "'-static-libstdc++', " "" \
|
||||
--replace "'-Wl,--whole-archive', '-static', " "" \
|
||||
--replace ", '-Wl,--no-whole-archive'" ""
|
||||
|
||||
#remove hardcoding of gcc
|
||||
sed -i '40i env.Replace(CC = "${stdenv.cc.targetPrefix}cc")' ./SConstruct
|
||||
sed -i '40i env.Replace(CXX = "${stdenv.cc.targetPrefix}c++")' ./SConstruct
|
||||
|
||||
#gpm doesn't exist on darwin
|
||||
substituteInPlace ./src/SConscript --replace ", 'gpm'" ""
|
||||
'';
|
||||
|
||||
sconsFlags =
|
||||
# will fail on clang/darwin on link without --static due to undefined extern
|
||||
# however, will fail with static on linux as nixpkgs deps aren't static
|
||||
lib.optional stdenv.isDarwin "--static"
|
||||
++ lib.optional enableAccelergy "--accelergy"
|
||||
++ lib.optional enableISL "--with-isl";
|
||||
|
||||
|
||||
installPhase = ''
|
||||
cp -r ./bin ./lib $out
|
||||
mkdir -p $out/share
|
||||
cp -r ./doc $out/share
|
||||
mkdir -p $out/data
|
||||
cp -r ./problem-shapes ./configs $out/data
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Chip modeling/mapping benchmarking framework";
|
||||
homepage = "https://timeloop.csail.mit.edu";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ gdinh ];
|
||||
};
|
||||
}
|
|
@ -4,13 +4,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "abc-verifier";
|
||||
version = "unstable-2022-09-08";
|
||||
version = "unstable-2022-11-09";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yosyshq";
|
||||
repo = "abc";
|
||||
rev = "ab5b16ede2ff3a4ab5209df24db2c76700899684";
|
||||
hash = "sha256-G4MnBViwIosFDiPfUimGqf6fq1KJlxj+LozmgoKaH3A=";
|
||||
rev = "be9a35c0363174a7cef21d55ed80d92a9ef95ab1";
|
||||
hash = "sha256-IN9YgJONcC55N89OXMrMuNuznTdjXNWxR0IngH8OWC8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "asusctl";
|
||||
version = "4.5.2";
|
||||
version = "4.5.5";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "asus-linux";
|
||||
repo = "asusctl";
|
||||
rev = version;
|
||||
hash = "sha256-hrmH4DDNzc7iMa5YJUQEb3Ng4QekPG+CoGWoHtv9e58=";
|
||||
hash = "sha256-3R8TAhOxnwKfA/Nc+R9JrLGMkZu9vGqCLbXUa8QGadA=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-7JOy5mKkP021+tx8a579WvmqQewEkjFgcwD/f7gzDt8=";
|
||||
cargoSha256 = "sha256-FHyKGLELX6xpPCAc/m2mqbfXcka35q0fGjeaE57g70M=";
|
||||
|
||||
postPatch = ''
|
||||
files="
|
||||
|
|
|
@ -3,7 +3,7 @@ lib: version: with lib; {
|
|||
license = licenses.gpl2Only;
|
||||
description = "The open-source Java Development Kit";
|
||||
maintainers = with maintainers; [ edwtjo asbachb ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" "powerpc64le-linux" ];
|
||||
mainProgram = "java";
|
||||
knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" ]) [
|
||||
"This OpenJDK version has reached its end of life."
|
||||
|
|
|
@ -71,13 +71,13 @@ let
|
|||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "yosys";
|
||||
version = "0.23";
|
||||
version = "0.24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YosysHQ";
|
||||
repo = "yosys";
|
||||
rev = "${pname}-${version}";
|
||||
hash = "sha256-mOakdXhSij8k4Eo7RwpKjd59IkNjw31NNFDJtL6Adgo=";
|
||||
hash = "sha256-rso08/b0ukrh6KYFpn4bFn0pP83URfeJGw28iLIjlPw=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildGraalvmNativeImage rec {
|
||||
pname = "babashka";
|
||||
version = "1.0.167";
|
||||
version = "1.0.168";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-tqhl2d0HZJNVP3EX2y5YiOmCgJsXegUUO91+f9MxQyU=";
|
||||
sha256 = "sha256-K56SEfSq0mjltUwR2VZxGiGn9nnEdDBoZrkaBOIIl7k=";
|
||||
};
|
||||
|
||||
executable = "bb";
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
, enableStatic ? !enableShared
|
||||
, enablePython ? false
|
||||
, enableNumpy ? false
|
||||
, enableIcu ? stdenv.hostPlatform == stdenv.buildPlatform
|
||||
, taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic))
|
||||
, patches ? []
|
||||
, boostBuildPatches ? []
|
||||
|
@ -226,7 +227,7 @@ stdenv.mkDerivation {
|
|||
nativeBuildInputs = [ which boost-build ]
|
||||
++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
|
||||
buildInputs = [ expat zlib bzip2 libiconv ]
|
||||
++ optional (stdenv.hostPlatform == stdenv.buildPlatform) icu
|
||||
++ optional enableIcu icu
|
||||
++ optionals enablePython [ libxcrypt python ]
|
||||
++ optional enableNumpy python.pkgs.numpy;
|
||||
|
||||
|
@ -239,7 +240,7 @@ stdenv.mkDerivation {
|
|||
"--libdir=$(out)/lib"
|
||||
"--with-bjam=b2" # prevent bootstrapping b2 in configurePhase
|
||||
] ++ optional (toolset != null) "--with-toolset=${toolset}"
|
||||
++ [ (if stdenv.hostPlatform == stdenv.buildPlatform then "--with-icu=${icu.dev}" else "--without-icu") ];
|
||||
++ [ (if enableIcu then "--with-icu=${icu.dev}" else "--without-icu") ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
{ buildPecl, lib, php }:
|
||||
{ buildPecl, lib }:
|
||||
|
||||
let
|
||||
versionData = if (lib.versionOlder php.version "8.1") then {
|
||||
version = "3.1.6";
|
||||
sha256 = "1lnmrb5kgq8lbhjs48j3wwhqgk44pnqb1yjq4b5r6ysv9l5wlkjm";
|
||||
} else {
|
||||
version = "3.2.0RC2";
|
||||
sha256 = "dQgXDP3Ifg+D0niWxaJ4ec71Vfr8KH40jv6QbxSyY+4=";
|
||||
};
|
||||
in
|
||||
buildPecl {
|
||||
pname = "xdebug";
|
||||
|
||||
inherit (versionData) version sha256;
|
||||
version = "3.2.0";
|
||||
sha256 = "1drj00z8ididm2iw7a7pnrsvakrr1g0i49aqkyz5zpysxh7b4sbp";
|
||||
|
||||
doCheck = true;
|
||||
checkTarget = "test";
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bluetooth-auto-recovery";
|
||||
version = "0.5.4";
|
||||
version = "0.5.5";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-C3CO4nqKVTjD07QturJNeg0GLx2N9cbsBatXcehJLRs=";
|
||||
hash = "sha256-f6HJlFqpmFhM9M1Cuvjz/63DXoikO33y/tmv57snI7g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -3,12 +3,15 @@
|
|||
, fetchFromGitHub
|
||||
, mock
|
||||
, pytestCheckHook
|
||||
, pyyaml
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "configargparse";
|
||||
version = "1.5.3";
|
||||
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bw2";
|
||||
repo = "ConfigArgParse";
|
||||
|
@ -19,6 +22,7 @@ buildPythonPackage rec {
|
|||
checkInputs = [
|
||||
mock
|
||||
pytestCheckHook
|
||||
pyyaml
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "configargparse" ];
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dbus-fast";
|
||||
version = "1.75.0";
|
||||
version = "1.80.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
|||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bmHUfRytUGlS0X1PEQHFocMZ4+FslA2rvzqHNE+3B3E=";
|
||||
hash = "sha256-TeOS4tfJmEQnbHkoRueyTmmIAw2De9w6gWjzD1hlwVI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -7,56 +7,75 @@
|
|||
, httpx
|
||||
, mypy-boto3-s3
|
||||
, numpy
|
||||
, scipy
|
||||
, pydantic
|
||||
, pytest-asyncio
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, pyyaml
|
||||
, scipy
|
||||
, six
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dependency-injector";
|
||||
version = "4.35.3";
|
||||
version = "4.40.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ets-labs";
|
||||
repo = "python-dependency-injector";
|
||||
rev = version;
|
||||
sha256 = "sha256-2qe4A2T3EagNCh1zSbPWblVN7p9NH8rNwQQVyESJTdk=";
|
||||
hash = "sha256-lcgPFdAgLmv7ILL2VVfqtGSw96aUfPv9oiOhksRtF3k=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
six
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = {
|
||||
aiohttp = [
|
||||
aiohttp
|
||||
];
|
||||
pydantic = [
|
||||
pydantic
|
||||
];
|
||||
flask = [
|
||||
flask
|
||||
];
|
||||
yaml = [
|
||||
pyyaml
|
||||
];
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
aiohttp
|
||||
fastapi
|
||||
flask
|
||||
httpx
|
||||
mypy-boto3-s3
|
||||
numpy
|
||||
pydantic
|
||||
scipy
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
pyyaml
|
||||
];
|
||||
scipy
|
||||
] ++ passthru.optional-dependencies.aiohttp
|
||||
++ passthru.optional-dependencies.pydantic
|
||||
++ passthru.optional-dependencies.yaml
|
||||
++ passthru.optional-dependencies.flask;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace requirements.txt \
|
||||
--replace "six>=1.7.0,<=1.15.0" "six"
|
||||
'';
|
||||
pythonImportsCheck = [
|
||||
"dependency_injector"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# There is no unique identifier to disable the one failing test
|
||||
# Exclude tests for EOL Python releases
|
||||
"tests/unit/ext/test_aiohttp_py35.py"
|
||||
"tests/unit/wiring/test_*_py36.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "dependency_injector" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Dependency injection microframework for Python";
|
||||
homepage = "https://github.com/ets-labs/python-dependency-injector";
|
||||
changelog = "https://github.com/ets-labs/python-dependency-injector/blob/${version}/docs/main/changelog.rst";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ gerschtli ];
|
||||
};
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "life360";
|
||||
version = "5.3.0";
|
||||
version = "5.4.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -17,7 +17,7 @@ buildPythonPackage rec {
|
|||
owner = "pnbruckner";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-GacesPWPTuIIZel4OARWW13OYflYFNf4Jxh9I8ms7s0=";
|
||||
hash = "sha256-AY3TW6gpKST2uxxpmtlLz+qP18yJHyOk6XdA5yGJBEg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -34,6 +34,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Python module to interact with Life360";
|
||||
homepage = "https://github.com/pnbruckner/life360";
|
||||
changelog = "https://github.com/pnbruckner/life360/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
|
@ -4,26 +4,36 @@
|
|||
, pytestCheckHook
|
||||
, cffi
|
||||
, lmdb
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "lmdb";
|
||||
version = "1.3.0";
|
||||
version = "1.4.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "60a11efc21aaf009d06518996360eed346f6000bfc9de05114374230879f992e";
|
||||
hash = "sha256-OfbE7hRdKNFwJdNQcgq7b5XbgWUU6GjbV0RP3vUcu0c=";
|
||||
};
|
||||
|
||||
buildInputs = [ lmdb ];
|
||||
buildInputs = [
|
||||
lmdb
|
||||
];
|
||||
|
||||
checkInputs = [ cffi pytestCheckHook ];
|
||||
checkInputs = [
|
||||
cffi
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
LMDB_FORCE_SYSTEM=1;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Universal Python binding for the LMDB 'Lightning' Database";
|
||||
homepage = "https://github.com/dw/py-lmdb";
|
||||
changelog = "https://github.com/jnwatson/py-lmdb/blob/py-lmdb_${version}/ChangeLog";
|
||||
license = licenses.openldap;
|
||||
maintainers = with maintainers; [ copumpkin ivan ];
|
||||
};
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "mkdocstrings-python";
|
||||
version = "0.8.0";
|
||||
version = "0.8.2";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
|||
owner = "mkdocstrings";
|
||||
repo = "python";
|
||||
rev = version;
|
||||
hash = "sha256-KAVBK0ZR1R27cWH99DVOYNFWKa4ubBXzgM0hVpGRIpE=";
|
||||
hash = "sha256-TwvXH/n2do4GnkxStW8fk9MRm59t/eP0sOjGnl3fYkw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -50,6 +50,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Python handler for mkdocstrings";
|
||||
homepage = "https://github.com/mkdocstrings/python";
|
||||
changelog = "https://github.com/mkdocstrings/python/blob/${version}/CHANGELOG.md";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "msgspec";
|
||||
version = "0.9.1";
|
||||
version = "0.10.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -16,8 +16,8 @@ buildPythonPackage rec {
|
|||
src = fetchFromGitHub {
|
||||
owner = "jcrist";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-q7WNVnkvK7MTleHEuClOFJ0Wv6EWu/3ztMi6TYdKgKU=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-/tu29RIszjzYQKeyYe+8Zkud3L/HBoWdXdpNcilWERs=";
|
||||
};
|
||||
|
||||
# Requires libasan to be accessible
|
||||
|
@ -30,6 +30,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Module to handle JSON/MessagePack";
|
||||
homepage = "https://github.com/jcrist/msgspec";
|
||||
changelog = "https://github.com/jcrist/msgspec/releases/tag/${version}";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "patiencediff";
|
||||
version = "0.2.9";
|
||||
version = "0.2.10";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -17,7 +17,7 @@ buildPythonPackage rec {
|
|||
owner = "breezy-team";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-DvbOA/NXHTuE84zWicOUtAKgGHUmKrAWgeFW1+uA8JY=";
|
||||
hash = "sha256-AlJ61Sp6HSy6nJ6trVF2OD9ziSIW241peRXcda3xWnQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -35,6 +35,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "C implementation of patiencediff algorithm for Python";
|
||||
homepage = "https://github.com/breezy-team/patiencediff";
|
||||
changelog = "https://github.com/breezy-team/patiencediff/releases/tag/v${version}";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ wildsebastian ];
|
||||
};
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pylitterbot";
|
||||
version = "2022.11.0";
|
||||
version = "2022.12.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
|||
owner = "natekspencer";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-GEKLkFzQV8xI3c8061fO1p66WKj3eDXmx7VaRYDu7kw=";
|
||||
hash = "sha256-uqiSNqM1HKNAipIKKsUHv9mPfdk01ZrNWMXIzhgxxjU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -56,6 +56,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Modulefor controlling a Litter-Robot";
|
||||
homepage = "https://github.com/natekspencer/pylitterbot";
|
||||
changelog = "https://github.com/natekspencer/pylitterbot/releases/tag/${version}";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pynamodb";
|
||||
version = "5.3.3";
|
||||
version = "5.3.4";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
|||
owner = "pynamodb";
|
||||
repo = "PynamoDB";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-j21CCPTRj7c7vClujHYEkmH31B48gDFYQbBXoChNSaI=";
|
||||
hash = "sha256-qg/aFK7rt2a/ZcLm+VSlq8UYBh6zS0/VVLqRAN7kLus=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -4,17 +4,21 @@
|
|||
, smartmontools
|
||||
, humanfriendly
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pysmart";
|
||||
version = "1.1.0";
|
||||
version = "1.2.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "truenas";
|
||||
repo = "py-SMART";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-e46ALiYg0Db/gOzqLmVc1vi9ObhfxzqwfQk9/9pz+r0=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-slLk4zoW0ht9hiOxyBt0caekjrPgih9G99pRiD2vIxE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -22,16 +26,23 @@ buildPythonPackage rec {
|
|||
--replace "which('smartctl')" '"${smartmontools}/bin/smartctl"'
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ humanfriendly ];
|
||||
propagatedBuildInputs = [
|
||||
humanfriendly
|
||||
];
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pySMART" ];
|
||||
pythonImportsCheck = [
|
||||
"pySMART"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Wrapper for smartctl (smartmontools)";
|
||||
homepage = "https://github.com/truenas/py-SMART";
|
||||
maintainers = with maintainers; [ nyanloutre ];
|
||||
changelog = "https://github.com/truenas/py-SMART/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.lgpl21Only;
|
||||
maintainers = with maintainers; [ nyanloutre ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,27 +1,32 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, isPy27
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sacn";
|
||||
version = "1.8.1";
|
||||
disabled = isPy27;
|
||||
version = "1.9.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "cdc9af732f4ca5badbf732499775575c4f815c73f857720c0a61a3fc80257f7a";
|
||||
hash = "sha256-LimA0I8y1tdjFk244iWvKJj0Rx3OEaYOSIJtirRHh4o=";
|
||||
};
|
||||
|
||||
# no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "sacn" ];
|
||||
pythonImportsCheck = [
|
||||
"sacn"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple ANSI E1.31 (aka sACN) module for python";
|
||||
description = "A simple ANSI E1.31 (aka sACN) module";
|
||||
homepage = "https://github.com/Hundemeier/sacn";
|
||||
changelog = "https://github.com/Hundemeier/sacn/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
};
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "simber";
|
||||
version = "0.2.4";
|
||||
version = "0.2.5";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -16,8 +16,8 @@ buildPythonPackage rec {
|
|||
src = fetchFromGitHub {
|
||||
owner = "deepjyoti30";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-P4bhxu9Di4E2Zkd0vIkyDi1S6Y0V/EQSMF4ftWoiXKE=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-d9YhqYmRyoYb03GqYKM7HkK8cnTQKPbSP6z2aanB6pQ=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -35,6 +35,7 @@ buildPythonPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Simple, minimal and powerful logger for Python";
|
||||
homepage = "https://github.com/deepjyoti30/simber";
|
||||
changelog = "https://github.com/deepjyoti30/simber/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ j0hax ];
|
||||
};
|
||||
|
|
|
@ -1,32 +1,39 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, isPy27
|
||||
, mock
|
||||
, pytest
|
||||
, selectors2
|
||||
, pythonOlder
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "wurlitzer";
|
||||
version = "3.0.2";
|
||||
version = "3.0.3";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "36051ac530ddb461a86b6227c4b09d95f30a1d1043de2b4a592e97ae8a84fcdf";
|
||||
hash = "sha256-Ik9f5wYYvjhywF393IxFcZHsGHBlRZYnn8we2t6+Pls=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = lib.optionals isPy27 [ selectors2 ];
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
checkInputs = [ mock pytest ];
|
||||
pythonImportsCheck = [
|
||||
"wurlitzer"
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
py.test test.py
|
||||
'';
|
||||
pytestFlagsArray = [
|
||||
"test.py"
|
||||
];
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "Capture C-level output in context managers";
|
||||
homepage = "https://github.com/minrk/wurlitzer";
|
||||
license = lib.licenses.mit;
|
||||
changelog = "https://github.com/minrk/wurlitzer/blob/{version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mill";
|
||||
version = "0.10.9";
|
||||
version = "0.10.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}-assembly";
|
||||
hash = "sha256-XDy07dFzylRl825QYqRt5eydVPR4jEevC2VrqxgTFt0=";
|
||||
hash = "sha256-Qen3z2qbgyHHYUscBh7Udc1/c82WDLnDIsZJF+tcR5M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildGraalvmNativeImage rec {
|
||||
pname = "clj-kondo";
|
||||
version = "2022.11.02";
|
||||
version = "2022.12.08";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-FLnij5ff7+tP+SoBnB2zVEpuWRG2MYp9avTrh2q6g4k=";
|
||||
sha256 = "sha256-9BFu9vD+DrMW/25do5jWhBU1Dog7XaiWhBxFIBgR6io=";
|
||||
};
|
||||
|
||||
extraNativeImageBuildArgs = [
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "grpc-client-cli";
|
||||
version = "1.15.0";
|
||||
version = "1.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vadimi";
|
||||
repo = "grpc-client-cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-MZEsThE0cajIJXvsuefNjQMAmnATNCWYBVVJQnd+q6c=";
|
||||
sha256 = "sha256-tvpLsiZvGneabAoTewIEnCh+0lzbr7DNepjXGg7azLc=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-4rU2r0hOR+XCZubLZCNnqoJ1br/WNtb70HN5urat5jQ=";
|
||||
vendorSha256 = "sha256-NFVDDOejclWA2WQr7CHX1CUNu+Lh5jukroSrkxby8Ag=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "generic gRPC command line client";
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{ stdenv, lib, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security }:
|
||||
{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl, stdenv, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
version = "0.3.1";
|
||||
version = "0.3.3";
|
||||
pname = "sccache";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
repo = "sccache";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SjGtFkFyHJRnFg3QwXksrV+T08oku80vcivLzFWt94g=";
|
||||
sha256 = "sha256-XzAU8Rs0/Q1KvE2tF0zzv9d2/a07BzZQbVzOdrPlbSk=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-cd/4otvrneOqntBzNZP1/RY0jg/NYeugiblr1tatITI=";
|
||||
cargoSha256 = "sha256-r5rIuulcPB5Y4AkbUPswf3W4DZ9Pc8auzmDDvSOOZEA=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
|
||||
|
@ -26,7 +26,8 @@ rustPlatform.buildRustPackage rec {
|
|||
meta = with lib; {
|
||||
description = "Ccache with Cloud Storage";
|
||||
homepage = "https://github.com/mozilla/sccache";
|
||||
maintainers = with maintainers; [ doronbehar ];
|
||||
changelog = "https://github.com/mozilla/sccache/releases/tag/v${version}";
|
||||
maintainers = with maintainers; [ doronbehar figsoda ];
|
||||
license = licenses.asl20;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -32,13 +32,13 @@ let
|
|||
in
|
||||
mkDerivation rec {
|
||||
pname = "renderdoc";
|
||||
version = "1.22";
|
||||
version = "1.24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "baldurk";
|
||||
repo = "renderdoc";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-eqMIOb9XAgXtoCJABvZkkS/rhHK7jNqabIFwdCgcSJU=";
|
||||
sha256 = "sha256-owFNk+UMKBkrad45zcSHTUidmRVIIGRZ06Ll84ZfEfA=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ruff";
|
||||
version = "0.0.169";
|
||||
version = "0.0.171";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "charliermarsh";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-YPVI1SaaLSqrpTu/uFTSyWbPVSDeADNVv2OfgR9K4qI=";
|
||||
sha256 = "sha256-2aqpQo7U17wqQ/YUMreOOKkcVWiKHAdFAUL/6HP6zN8=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-bP6gn/UIv1reytd8atNdoXZxsFFJCt+axl3UiCayERo=";
|
||||
cargoSha256 = "sha256-N/WoPc2BxujqE/OSp9RWS7dBHGKxIixtBqwDwR3p6TM=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
CoreServices
|
||||
|
|
|
@ -36,7 +36,9 @@ stdenv.mkDerivation rec {
|
|||
postConfigure = ''
|
||||
sed -i "s/-c -s/-c -s --strip-program=''${STRIP@Q}/" ports.mk
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace config.mk --replace x86_64-apple-darwin-ranlib ${cctools}/bin/ranlib
|
||||
substituteInPlace config.mk \
|
||||
--replace x86_64-apple-darwin-ranlib ${cctools}/bin/ranlib \
|
||||
--replace aarch64-apple-darwin-ranlib ${cctools}/bin/ranlib
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{lib, stdenv, fetchFromGitLab, autoconf, automake, gettext, ncurses}:
|
||||
{lib, stdenv, fetchFromGitLab, fetchpatch, autoconf, automake, gettext, ncurses}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "psmisc";
|
||||
|
@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-02jvRPqN8DS30ID42hQFu400NoFC5QiH5YA3NB+EoFI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream patch to be released in the next version
|
||||
(fetchpatch {
|
||||
name = "fallback-to-kill.diff";
|
||||
url = "https://gitlab.com/psmisc/psmisc/-/commit/6892e321e7042e3df60a5501a1c59d076e8a856f.patch";
|
||||
sha256 = "sha256-3uk1KXEOqAxpHWBORUw5+dR5s/Z55JJs5tuBZlTdjlo=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoconf automake gettext ];
|
||||
buildInputs = [ ncurses ];
|
||||
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
{ fetchurl, fetchzip }:
|
||||
{
|
||||
x86_64-darwin = fetchzip {
|
||||
sha256 = "sha256-R9Ggjl9Qw1F2n2U7uGcLqgjwrLoUjlO8KUsI4sQf/JU=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.19/AdGuardHome_darwin_amd64.zip";
|
||||
sha256 = "sha256-pCyMhfDl371zzc3oXo+n09qNcxMtDQEqaqVW+YIrx28=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.20/AdGuardHome_darwin_amd64.zip";
|
||||
};
|
||||
aarch64-darwin = fetchzip {
|
||||
sha256 = "sha256-MStBeDsqHK+m91DBTIAzaleIL0GNhqdslIvPOmtOaDQ=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.19/AdGuardHome_darwin_arm64.zip";
|
||||
sha256 = "sha256-O2UTzaWaYTkeR3z/O8U/Btigjp/8gns4Y/D9yoX2Hns=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.20/AdGuardHome_darwin_arm64.zip";
|
||||
};
|
||||
i686-linux = fetchurl {
|
||||
sha256 = "sha256-bkUSxifnSfDZk2kmp23n6KBlqa70CrBIKuCF+EEHTwk=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.19/AdGuardHome_linux_386.tar.gz";
|
||||
sha256 = "sha256-ao/uebGho3CafFEcCfcS+awsC9lO/6z1UL57Yvr/q14=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.20/AdGuardHome_linux_386.tar.gz";
|
||||
};
|
||||
x86_64-linux = fetchurl {
|
||||
sha256 = "sha256-dHj91ZYhHTA8XoZ8oUhDQzu6Fpg0n/CBqDZux0QnwXI=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.19/AdGuardHome_linux_amd64.tar.gz";
|
||||
sha256 = "sha256-KJIogRRlZFPy3jBb9JeEA7xgZkl9/97cA13rBK6/1fI=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.20/AdGuardHome_linux_amd64.tar.gz";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
sha256 = "sha256-f5nXnLkL6yvkE9kUnHdsD+MQhUjbkQGmVj7Nr/znBrw=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.19/AdGuardHome_linux_arm64.tar.gz";
|
||||
sha256 = "sha256-r8gqUa9dULAYPUB64X4aqyaNf0CpckUNIsWl+VylhaM=";
|
||||
url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.20/AdGuardHome_linux_arm64.tar.gz";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "adguardhome";
|
||||
version = "0.107.19";
|
||||
version = "0.107.20";
|
||||
src = sources.${system} or (throw "Source for ${pname} is not available for ${system}");
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "VictoriaMetrics";
|
||||
version = "1.83.1";
|
||||
version = "1.84.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SfLqvVExP7qc2IDW6sJ0ykVRzL79FRv6zEVXivLpaVk=";
|
||||
sha256 = "sha256-94QhjsCow1Ate/Bbia7KpWY3WgHk3oOarAY95Fq75hU=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
}@args:
|
||||
|
||||
let
|
||||
version = "2.9.0.beta12";
|
||||
version = "2.9.0.beta14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-gL3/+m8SyyOSdcQ0jXo/qEWm0rAvHrmKM3pm5Lm4354=";
|
||||
sha256 = "sha256-rdH6tALfhZyCGq1dtOQyuRlEYHSmWgvSz2qG6jrwPu0=";
|
||||
};
|
||||
|
||||
runtimeDeps = [
|
||||
|
@ -165,7 +165,7 @@ let
|
|||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/app/assets/javascripts/yarn.lock";
|
||||
sha256 = "17va1k5r3v0hxpznm7qgmy8c0vicvyk28bn6cr5hqhjn3krzwf8b";
|
||||
sha256 = "1rj8bbhmrnnhaiqw2bik8dilk7g35yhis5p7yww57zy4k5ghjvlw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = runtimeDeps ++ [
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-assign";
|
||||
rev = "1f2dfafcdebc153573e2e1a5bf32d7f63295b29a";
|
||||
sha256 = "sha256-VggOirmGIl3ihegmblgqaP3dAVX66O1O5s9vgP2peH8=";
|
||||
rev = "889df32cc61792ed7b1981a08f0b0e9c46da2a56";
|
||||
sha256 = "sha256-ggMmIzjb4CBNAJTf8E09iaN5AGPj+BDzRf2y3h4DCMc=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-docs";
|
||||
|
|
|
@ -22,4 +22,4 @@ DEPENDENCIES
|
|||
rrule (= 0.4.4)
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.24
|
||||
2.3.25
|
||||
|
|
|
@ -6,8 +6,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-calendar";
|
||||
rev = "7adaec219f0c387bda7b474d66b3706c78c9be5a";
|
||||
sha256 = "sha256-Uv+V8PVYlO80e6nCjOVF0J9XEUegemCc7kcwHWpbh2w=";
|
||||
rev = "f4f16d958e5cec5fab109d09a7bfb50fc2b8da12";
|
||||
sha256 = "sha256-TWIWHOVeq3IKjinycaoiVccFKaP4UbNUpZ5n/SQ6afA=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-calendar";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-canned-replies";
|
||||
rev = "ac2a315a0433d408cce7fdc5419beae865c4b655";
|
||||
sha256 = "sha256-ARVV5fsrY6WV67975wPb4pU8Fjsm+Q+n2xuCcrgpfTI=";
|
||||
rev = "fe92bc1324fe0d2519f0e33b3fd89a4bed21b2e9";
|
||||
sha256 = "sha256-m+DDS93XJAN9RqX8pXeA78gY+p+7A2ey1oblGpcB4L0=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-canned-replies";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-chat-integration";
|
||||
rev = "01a37669114909b3ead34a1846a97713b3051dc7";
|
||||
sha256 = "sha256-Y/SGLz3LPWfILwfFiO3Ag9JQMUOf0/RvWm5/Lk/cOsk=";
|
||||
rev = "f6dde41cba2722970cc1a49f47636174a6ec7797";
|
||||
sha256 = "sha256-Cn+Ti1DYcFRqunEEFjGJuhnICO+53IX7tF7U8MkzJX0=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-chat-integration";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-checklist";
|
||||
rev = "1954ec2b106586cbb72db2eb7b1fc9251c799e72";
|
||||
sha256 = "sha256-dVRRnwTY+2tn5JNkn09iuoMBCE0NQdwDJIECzfqfm58=";
|
||||
rev = "c97060bd9dc1287d258cac6b7222a9a61d4f97c7";
|
||||
sha256 = "sha256-fVGTYz/2PK5rq/7SE/hkQoWYiIzOcmZ9AHNe5f+osxY=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-checklist";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-data-explorer";
|
||||
rev = "41a5e0a27a06225c401cbbaa24f0f712f7bd7cf7";
|
||||
sha256 = "sha256-m1EvNepl9JLoEeUaDXTBHz4G+DDCpdPNgAz+/Lcqn1Q=";
|
||||
rev = "467b6c8a91a08ca71080b9bbff2e0cd45dc4efe5";
|
||||
sha256 = "sha256-65Osh9oud/Gfy6dVJ4QXqT+A0wdIN33BeaCUIfyWEGA=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-data-explorer";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-docs";
|
||||
rev = "f1dd03f0bc283b86b6028b76ae0841a2a7f9c2a8";
|
||||
sha256 = "sha256-Mp1nrmMa0IUE5avR+Q72eIqM7Erb2xid4PYRJWXrUhw=";
|
||||
rev = "908d9096a81e1d706da231558f9a0547357fe73a";
|
||||
sha256 = "sha256-77MTXMTjuwG1qIhYwUlNBNA39p/eyPF2+IHFpUiG8uo=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-docs";
|
||||
|
|
|
@ -3,7 +3,7 @@ GEM
|
|||
specs:
|
||||
addressable (2.8.1)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
faraday (2.6.0)
|
||||
faraday (2.7.1)
|
||||
faraday-net_http (>= 2.0, < 3.1)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-net_http (3.0.2)
|
||||
|
@ -24,4 +24,4 @@ DEPENDENCIES
|
|||
sawyer (= 0.9.2)
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.24
|
||||
2.3.25
|
||||
|
|
|
@ -6,8 +6,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-github";
|
||||
rev = "b064d4915ad11d768b11b61de0102b573cea5521";
|
||||
sha256 = "sha256-Nf6X6pQYnjkxbwsT1A6Rhf0lUNZS8N10X1XoSa33PEU=";
|
||||
rev = "873cb13a0dcb3e70360adb86a2e293f377536626";
|
||||
sha256 = "sha256-r3+RXVb0k2UFiMeBQ998Obw7GQg1/uyUzpxFP9g5yXs=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-github";
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0mqv17hfmph4ylmb2bqyccy64gsgpmzapq5yrmf5yjsqkvw9rxbv";
|
||||
sha256 = "1wyz9ab0mzi84gpf81fs19vrixglmmxi25k6n1mn9h141qmsp590";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.0";
|
||||
version = "2.7.1";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = ["default"];
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-math";
|
||||
rev = "b5d2a8a3ea302e0d8d43e1fcba5aa455e792475f";
|
||||
sha256 = "sha256-VzvPX8u1ABhzgdsH+ytaCdEkge6dvMfDZ9EyCxfU25o=";
|
||||
rev = "45563f691aafcd0d76f07db9c105d42f3e3d5ba0";
|
||||
sha256 = "sha256-s2mzV1YdUG9vjw1LKm+jZriQfWYN5Jn232z3Cc7NFeg=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-math";
|
||||
|
|
|
@ -6,8 +6,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-openid-connect";
|
||||
rev = "61137588c59fb325d9c46db4b643acbaf113eb84";
|
||||
sha256 = "sha256-w8/CxzFp+EUh3Kn65OO1BVNQdqPETdSq2WBvz5DoPQE=";
|
||||
rev = "43a30dde4a64a01250f4447e74806db65ee7ae1a";
|
||||
sha256 = "sha256-/3AE5cDELKfKwEY+XqaZ6SzJp6XAnW83r67kzLGaV2M=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-openid-connect";
|
||||
|
|
|
@ -10,4 +10,4 @@ DEPENDENCIES
|
|||
prometheus_exporter (= 0.5.0)
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.24
|
||||
2.3.25
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-prometheus";
|
||||
rev = "78ea9363b34e5fc56ac42f120cf1ea44ba99da9b";
|
||||
sha256 = "sha256-LeveJKNocK5Fm8JxIWp5dyspNrlE+117fmzq+HcGnLA=";
|
||||
rev = "72fff206ba18ad5ca3112fed2f5f0ce6a17ca6f8";
|
||||
sha256 = "sha256-lSZZTcoWeFJTXnHLgry5ezYGmCBuMFJ96dtkOQKKRJc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-saved-searches";
|
||||
rev = "92a137a164dcfce75c854b7dc44a034595bec4f0";
|
||||
sha256 = "sha256-DXmmQrgsEXvVHu/CnzfaECdJyNVm1CBpQXcEDlm27kI=";
|
||||
rev = "be97918d0bbac81b98ab96773d5c8c01313ac0c2";
|
||||
sha256 = "sha256-2HTFfaJkLXuuMDa3m7Ppkh9v4BnLfKXyWiRN4c+xaNI=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-saved-searches";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-solved";
|
||||
rev = "f3b7fbb914cb0b7714d0ad7f26f21aaf1ba14f73";
|
||||
sha256 = "sha256-T7RHSk0ZP72E1hBoLwNLXX6rVOdy4JWQfj3aehbX1RM=";
|
||||
rev = "a078219a9785f995a0a41c64b97bb0f2930a3ba1";
|
||||
sha256 = "sha256-P3rWEgPoMtzapSqARMFe5/IGT/QtTUFx8LB1kf6vBiU=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-solved";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-spoiler-alert";
|
||||
rev = "47d95b547269cb7e34c282fc1ccc1d240892edf2";
|
||||
sha256 = "sha256-vrVkLmda28p5ynS0+x/2U3Hu1lS1cPIHwunA1YGZr4o=";
|
||||
rev = "a7727a1c6b6f921365e1cee802e0c16512bbf8ee";
|
||||
sha256 = "sha256-60Sg8C7a4vXq/IApcskL0hgceoIHhWqACphcgfrbNig=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-spoiler-alert";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-voting";
|
||||
rev = "bdcff78521dccce100906663e65eb5b6e103f99a";
|
||||
sha256 = "sha256-J8jXBMcEZ8XUEqZtIg01Mi8JrLqls+ou+AQ1TORXMqU=";
|
||||
rev = "1ecf494a789235d7ceaf2c8f6cad49176347e6b6";
|
||||
sha256 = "sha256-6UX7VGuZ+AT44ExfZNFWxFwgEx9zBJ3fQbO1vgCa5bE=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-voting";
|
||||
|
|
|
@ -5,8 +5,8 @@ mkDiscoursePlugin {
|
|||
src = fetchFromGitHub {
|
||||
owner = "discourse";
|
||||
repo = "discourse-yearly-review";
|
||||
rev = "80003d8ee4f4e23b277f261edc68a71145f6086e";
|
||||
sha256 = "sha256-bjhO7MiA9QOKh6gBcttBgla+wsznuG1SAIZlPZGmZaA=";
|
||||
rev = "0f24d14d2dc861e404cb28f63832b93ed41b44eb";
|
||||
sha256 = "sha256-7cstjcuZ6OUn7u85UEp/B4pycepEK8CHg4W/O4ePoQg=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/discourse/discourse-yearly-review";
|
||||
|
|
|
@ -63,15 +63,8 @@ gem 'active_model_serializers', '~> 0.8.3'
|
|||
|
||||
gem 'http_accept_language', require: false
|
||||
|
||||
# Ember related gems need to be pinned cause they control client side
|
||||
# behavior, we will push these versions up when upgrading ember
|
||||
gem 'discourse-ember-rails', '0.18.6', require: 'ember-rails'
|
||||
gem 'discourse-ember-source', '~> 3.12.2'
|
||||
gem 'ember-handlebars-template', '0.8.0'
|
||||
gem 'discourse-fonts', require: 'discourse_fonts'
|
||||
|
||||
gem 'barber'
|
||||
|
||||
gem 'message_bus'
|
||||
|
||||
gem 'rails_multisite'
|
||||
|
@ -261,6 +254,8 @@ if ENV["IMPORT"] == "1"
|
|||
gem 'reverse_markdown'
|
||||
gem 'tiny_tds'
|
||||
gem 'csv'
|
||||
|
||||
gem 'parallel', require: false
|
||||
end
|
||||
|
||||
gem 'webpush', require: false
|
||||
|
|
|
@ -73,19 +73,16 @@ GEM
|
|||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.5.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
barber (0.12.2)
|
||||
ember-source (>= 1.0, < 3.1)
|
||||
execjs (>= 1.2, < 3)
|
||||
better_errors (2.9.1)
|
||||
coderay (>= 1.0.0)
|
||||
erubi (>= 1.0.0)
|
||||
rack (>= 0.9.0)
|
||||
binding_of_caller (1.0.0)
|
||||
debug_inspector (>= 0.0.1)
|
||||
bootsnap (1.13.0)
|
||||
bootsnap (1.15.0)
|
||||
msgpack (~> 1.2)
|
||||
builder (3.2.4)
|
||||
bullet (7.0.3)
|
||||
bullet (7.0.4)
|
||||
activesupport (>= 3.0.0)
|
||||
uniform_notifier (~> 1.11)
|
||||
byebug (11.1.3)
|
||||
|
@ -119,14 +116,6 @@ GEM
|
|||
diff-lcs (1.5.0)
|
||||
diffy (3.4.2)
|
||||
digest (3.1.0)
|
||||
discourse-ember-rails (0.18.6)
|
||||
active_model_serializers
|
||||
ember-data-source (>= 1.0.0.beta.5)
|
||||
ember-handlebars-template (>= 0.1.1, < 1.0)
|
||||
ember-source (>= 1.1.0)
|
||||
jquery-rails (>= 1.0.17)
|
||||
railties (>= 3.1)
|
||||
discourse-ember-source (3.12.2.3)
|
||||
discourse-fonts (0.0.9)
|
||||
discourse-seed-fu (2.3.12)
|
||||
activerecord (>= 3.1)
|
||||
|
@ -138,12 +127,6 @@ GEM
|
|||
ecma-re-validator (0.4.0)
|
||||
regexp_parser (~> 2.2)
|
||||
email_reply_trimmer (0.1.13)
|
||||
ember-data-source (3.0.2)
|
||||
ember-source (>= 2, < 3.0)
|
||||
ember-handlebars-template (0.8.0)
|
||||
barber (>= 0.11.0)
|
||||
sprockets (>= 3.3, < 4.1)
|
||||
ember-source (2.18.2)
|
||||
erubi (1.11.0)
|
||||
excon (0.94.0)
|
||||
execjs (2.8.1)
|
||||
|
@ -152,10 +135,10 @@ GEM
|
|||
faker (2.23.0)
|
||||
i18n (>= 1.8.11, < 2)
|
||||
fakeweb (1.3.0)
|
||||
faraday (2.6.0)
|
||||
faraday (2.7.1)
|
||||
faraday-net_http (>= 2.0, < 3.1)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-net_http (3.0.1)
|
||||
faraday-net_http (3.0.2)
|
||||
faraday-retry (2.0.0)
|
||||
faraday (~> 2.0)
|
||||
fast_blank (1.0.1)
|
||||
|
@ -176,7 +159,7 @@ GEM
|
|||
http_accept_language (2.1.1)
|
||||
i18n (1.12.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
image_optim (0.31.1)
|
||||
image_optim (0.31.2)
|
||||
exifr (~> 1.2, >= 1.2.2)
|
||||
fspath (~> 3.0)
|
||||
image_size (>= 1.5, < 4)
|
||||
|
@ -184,11 +167,7 @@ GEM
|
|||
progress (~> 3.0, >= 3.0.1)
|
||||
image_size (3.2.0)
|
||||
in_threads (1.6.0)
|
||||
jmespath (1.6.1)
|
||||
jquery-rails (4.5.1)
|
||||
rails-dom-testing (>= 1, < 3)
|
||||
railties (>= 4.2.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
jmespath (1.6.2)
|
||||
json (2.6.2)
|
||||
json-schema (3.0.0)
|
||||
addressable (>= 2.8)
|
||||
|
@ -226,15 +205,15 @@ GEM
|
|||
matrix (0.4.2)
|
||||
maxminddb (0.1.22)
|
||||
memory_profiler (1.0.1)
|
||||
message_bus (4.2.0)
|
||||
message_bus (4.3.0)
|
||||
rack (>= 1.1.3)
|
||||
method_source (1.0.0)
|
||||
mini_mime (1.1.2)
|
||||
mini_portile2 (2.8.0)
|
||||
mini_racer (0.6.3)
|
||||
libv8-node (~> 16.10.0.0)
|
||||
mini_scheduler (0.14.0)
|
||||
sidekiq (>= 4.2.3)
|
||||
mini_scheduler (0.15.0)
|
||||
sidekiq (>= 4.2.3, < 7.0)
|
||||
mini_sql (1.4.0)
|
||||
mini_suffix (0.3.3)
|
||||
ffi (~> 1.9)
|
||||
|
@ -309,9 +288,9 @@ GEM
|
|||
parallel (1.22.1)
|
||||
parallel_tests (4.0.0)
|
||||
parallel
|
||||
parser (3.1.2.1)
|
||||
parser (3.1.3.0)
|
||||
ast (~> 2.4.1)
|
||||
pg (1.4.4)
|
||||
pg (1.4.5)
|
||||
progress (3.6.0)
|
||||
pry (0.14.1)
|
||||
coderay (~> 1.1)
|
||||
|
@ -322,14 +301,14 @@ GEM
|
|||
pry-rails (0.3.9)
|
||||
pry (>= 0.10.4)
|
||||
public_suffix (5.0.0)
|
||||
puma (5.6.5)
|
||||
puma (6.0.0)
|
||||
nio4r (~> 2.0)
|
||||
r2 (0.2.7)
|
||||
racc (1.6.0)
|
||||
rack (2.2.4)
|
||||
rack-mini-profiler (3.0.0)
|
||||
rack (>= 1.2.0)
|
||||
rack-protection (3.0.3)
|
||||
rack-protection (3.0.4)
|
||||
rack
|
||||
rack-test (2.0.2)
|
||||
rack (>= 1.3)
|
||||
|
@ -366,7 +345,7 @@ GEM
|
|||
redis (4.7.1)
|
||||
redis-namespace (1.9.0)
|
||||
redis (>= 4)
|
||||
regexp_parser (2.6.0)
|
||||
regexp_parser (2.6.1)
|
||||
request_store (1.5.1)
|
||||
rack (>= 1.4)
|
||||
rexml (3.2.5)
|
||||
|
@ -402,12 +381,12 @@ GEM
|
|||
rspec-support (3.12.0)
|
||||
rss (0.2.9)
|
||||
rexml
|
||||
rswag-specs (2.7.0)
|
||||
rswag-specs (2.8.0)
|
||||
activesupport (>= 3.1, < 7.1)
|
||||
json-schema (>= 2.2, < 4.0)
|
||||
railties (>= 3.1, < 7.1)
|
||||
rspec-core (>= 2.14)
|
||||
rubocop (1.38.0)
|
||||
rubocop (1.39.0)
|
||||
json (~> 2.3)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.1.2.1)
|
||||
|
@ -450,8 +429,8 @@ GEM
|
|||
websocket (~> 1.0)
|
||||
shoulda-matchers (5.2.0)
|
||||
activesupport (>= 5.2.0)
|
||||
sidekiq (6.5.7)
|
||||
connection_pool (>= 2.2.5)
|
||||
sidekiq (6.5.8)
|
||||
connection_pool (>= 2.2.5, < 3)
|
||||
rack (~> 2.0)
|
||||
redis (>= 4.5.0, < 5)
|
||||
simplecov (0.21.2)
|
||||
|
@ -525,7 +504,6 @@ DEPENDENCIES
|
|||
annotate
|
||||
aws-sdk-s3
|
||||
aws-sdk-sns
|
||||
barber
|
||||
better_errors
|
||||
binding_of_caller
|
||||
bootsnap
|
||||
|
@ -540,13 +518,10 @@ DEPENDENCIES
|
|||
css_parser
|
||||
diffy
|
||||
digest
|
||||
discourse-ember-rails (= 0.18.6)
|
||||
discourse-ember-source (~> 3.12.2)
|
||||
discourse-fonts
|
||||
discourse-seed-fu
|
||||
discourse_dev_assets
|
||||
email_reply_trimmer
|
||||
ember-handlebars-template (= 0.8.0)
|
||||
excon
|
||||
execjs
|
||||
fabrication
|
||||
|
@ -650,4 +625,4 @@ DEPENDENCIES
|
|||
yaml-lint
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.24
|
||||
2.3.25
|
||||
|
|
|
@ -205,17 +205,6 @@
|
|||
};
|
||||
version = "1.5.0";
|
||||
};
|
||||
barber = {
|
||||
dependencies = ["ember-source" "execjs"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "07rnlbh7kgamcbnl1sqlcdrjj8src4qc687klqq4a3vqq2slnscx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.12.2";
|
||||
};
|
||||
better_errors = {
|
||||
dependencies = ["coderay" "erubi" "rack"];
|
||||
groups = ["development"];
|
||||
|
@ -252,10 +241,10 @@
|
|||
}];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0y1ycmvyd7swp6gy85m7znwilvb61zzcx6najgq0d1glq0p2hwy6";
|
||||
sha256 = "1ln89f9ypzincd5hqgmzd5vvfgf7fgir56v1spsri40ma88vnipj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.13.0";
|
||||
version = "1.15.0";
|
||||
};
|
||||
builder = {
|
||||
groups = ["default" "development" "test"];
|
||||
|
@ -273,10 +262,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06rmq3s8q6xndxxl7qid9nf3hiaahs71jyiyyk3bx31hns1vkcci";
|
||||
sha256 = "1f2phbpsiw8zwmmb1h6s82c4s2banzd04ch7vn6pdz91map233l1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.0.3";
|
||||
version = "7.0.4";
|
||||
};
|
||||
byebug = {
|
||||
groups = ["development" "test"];
|
||||
|
@ -480,27 +469,6 @@
|
|||
};
|
||||
version = "3.1.0";
|
||||
};
|
||||
discourse-ember-rails = {
|
||||
dependencies = ["active_model_serializers" "ember-data-source" "ember-handlebars-template" "ember-source" "jquery-rails" "railties"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ax5x2d6q6hkm7r58ai9p0sahlg842aqlm7dpv6svrfpnjlaz7sf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.18.6";
|
||||
};
|
||||
discourse-ember-source = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0q4wypjiqvjlwaif5z3pnv0z02rsiysx58d7iljrw8xx9sxwxn6x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.12.2.3";
|
||||
};
|
||||
discourse-fonts = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
@ -564,38 +532,6 @@
|
|||
};
|
||||
version = "0.1.13";
|
||||
};
|
||||
ember-data-source = {
|
||||
dependencies = ["ember-source"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1803nh3knvwl12h63jd48qvbbrp42yy291wcb35960daklip0fd8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.2";
|
||||
};
|
||||
ember-handlebars-template = {
|
||||
dependencies = ["barber" "sprockets"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1wxj3vi4xs3vjxrdbzi4j4w6vv45r5dkz2rg2ldid3p8dp3irlf4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.8.0";
|
||||
};
|
||||
ember-source = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0sixy30ym9j2slhlr0lfq943g958w8arlb0lsizh59iv1w5gmxxy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.18.2";
|
||||
};
|
||||
erubi = {
|
||||
groups = ["default" "development" "test"];
|
||||
platforms = [{
|
||||
|
@ -677,20 +613,20 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0mqv17hfmph4ylmb2bqyccy64gsgpmzapq5yrmf5yjsqkvw9rxbv";
|
||||
sha256 = "1wyz9ab0mzi84gpf81fs19vrixglmmxi25k6n1mn9h141qmsp590";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.0";
|
||||
version = "2.7.1";
|
||||
};
|
||||
faraday-net_http = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "13b717ddw90iaf4vijy06srmkvrfbzsnyjap93yll0nibad4dbxq";
|
||||
sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.1";
|
||||
version = "3.0.2";
|
||||
};
|
||||
faraday-retry = {
|
||||
dependencies = ["faraday"];
|
||||
|
@ -891,10 +827,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1l3n59w1cbvfg2srfa14g3jdqwbkf7l86g4qrgfz3qps7zi0drg7";
|
||||
sha256 = "0acrqj9g8x39lz3z9li52wwc98d0csqarc7bv6jcfd0fp6h9zykb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.31.1";
|
||||
version = "0.31.2";
|
||||
};
|
||||
image_size = {
|
||||
groups = ["default"];
|
||||
|
@ -921,21 +857,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0";
|
||||
sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.6.1";
|
||||
};
|
||||
jquery-rails = {
|
||||
dependencies = ["rails-dom-testing" "railties" "thor"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0rxfy6mk1yh8yjkk7gd1908f85dkc60xnfplwz7mi09f6j3f812p";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.5.1";
|
||||
version = "1.6.2";
|
||||
};
|
||||
json = {
|
||||
groups = ["default" "development" "test"];
|
||||
|
@ -1158,10 +1083,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "15gazkvbqffh57if68j2p81pm52ww7j9wibbqpq8xp7c3gxqahgq";
|
||||
sha256 = "039ab2bbzxhfgy3w7wrxznqzjyikiqm6dnl36pk7cmkb1d30fxdk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.2.0";
|
||||
version = "4.3.0";
|
||||
};
|
||||
method_source = {
|
||||
groups = ["default" "development" "test"];
|
||||
|
@ -1210,10 +1135,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0g8mi0l90kkdvh45xz1gcmv3yzpj7d4dvgrhk8lg7lwn82d06yzw";
|
||||
sha256 = "11ng6hgb13jddharcnkcx6v2ycbfz1nx0n8i88n06pa29lfqgqrn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.14.0";
|
||||
version = "0.15.0";
|
||||
};
|
||||
mini_sql = {
|
||||
groups = ["default"];
|
||||
|
@ -1559,20 +1484,20 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1q31n7yj59wka8xl8s5wkf66hm4pgvblx95czyxffprdnlhrir2p";
|
||||
sha256 = "17qfhjvnr9q2gp1gfdl6kndy2mb6qdwsls3vnjhb1h8ddimdm4s5";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.2.1";
|
||||
version = "3.1.3.0";
|
||||
};
|
||||
pg = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "09a5z9qhxnybahx162q2q1cygdhxfp6cihdivvzh32jlwc37z1x3";
|
||||
sha256 = "1wd6nl81nbdwck04hccsm7wf23ghpi8yddd9j4rbwyvyj0sbsff1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.4";
|
||||
version = "1.4.5";
|
||||
};
|
||||
progress = {
|
||||
groups = ["default"];
|
||||
|
@ -1633,10 +1558,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0qzq0c791kacv68hgk9zqsd1p7zx1y1rr9j10rn9yphibb8jj436";
|
||||
sha256 = "1yabmxmqprb2x58awiasidsiwpplscmyar9dzwh5l8jgaw4i3wra";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.6.5";
|
||||
version = "6.0.0";
|
||||
};
|
||||
r2 = {
|
||||
groups = ["default"];
|
||||
|
@ -1689,10 +1614,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1sfk4i52yijcggkzkwj3z6k2iv9fdacmcgcid1c8xjcldh93fhpg";
|
||||
sha256 = "1kljmw1lhzqjcwnwadr5m2khii0h2lsah447zb9vgirrv5jszg9h";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.3";
|
||||
version = "3.0.4";
|
||||
};
|
||||
rack-test = {
|
||||
dependencies = ["rack"];
|
||||
|
@ -1868,10 +1793,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0mm5sykyblc61a82zz3dag6yy3mvflj2z47060kjzjj5793blqzi";
|
||||
sha256 = "0rj7xcg7bkfw6y0h4wg8y3s4nmks9qrzdxag4zaw41xjqfanlysf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.0";
|
||||
version = "2.6.1";
|
||||
};
|
||||
request_store = {
|
||||
dependencies = ["rack"];
|
||||
|
@ -2028,10 +1953,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1mh9w7l9jl44pdxigppsxzrxracfsx7fsfz25ixamc8dkcklybx8";
|
||||
sha256 = "0fsxj0dfnncfnx7v9p4pzwp95wpc57cn0bijn0wx3b0pd68i6zhj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
};
|
||||
rubocop = {
|
||||
dependencies = ["json" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
|
||||
|
@ -2039,10 +1964,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1fhyia6fw438ld83vz7vx37zynmzv042saf04ir43ga6sxk4m9k4";
|
||||
sha256 = "0ggxkq68ddxmynr2lyrvzr8qbrdvc2irxlx9ihxmvdpkg1vimr3w";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.38.0";
|
||||
version = "1.39.0";
|
||||
};
|
||||
rubocop-ast = {
|
||||
dependencies = ["parser"];
|
||||
|
@ -2193,10 +2118,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0p2mj2jj5b9wqmpvkngx87lfr2qgwhqvwx38bmhl5aa29pc6z5kx";
|
||||
sha256 = "1z2fx4fzgnw4rzj3h1h4sk6qbkp7p2rdr58b2spxgkcsdzg0i5hh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.5.7";
|
||||
version = "6.5.8";
|
||||
};
|
||||
simplecov = {
|
||||
dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ vimUtils, vim_configurable, writeText, vimPlugins
|
||||
{ vimUtils, vim-full, writeText, vimPlugins
|
||||
, lib, fetchFromGitHub
|
||||
, pkgs
|
||||
}:
|
||||
|
@ -14,12 +14,12 @@ in
|
|||
### vim tests
|
||||
##################
|
||||
|
||||
test_vim_with_vim_nix_using_plug = vim_configurable.customize {
|
||||
test_vim_with_vim_nix_using_plug = vim-full.customize {
|
||||
name = "vim-with-vim-addon-nix-using-plug";
|
||||
vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ];
|
||||
};
|
||||
|
||||
test_vim_with_vim_nix = vim_configurable.customize {
|
||||
test_vim_with_vim_nix = vim-full.customize {
|
||||
name = "vim-with-vim-addon-nix";
|
||||
vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
|
||||
};
|
||||
|
|
|
@ -30,9 +30,7 @@ rustPlatform.buildRustPackage rec {
|
|||
install -D -m 444 plugin/skim.vim -t $vim/plugin
|
||||
|
||||
install -D -m 444 shell/* -t $out/share/skim
|
||||
install -D shell/key-bindings.fish $out/share/fish/vendor_functions.d/sk_key_bindings.fish
|
||||
mkdir -p $out/share/fish/vendor_conf.d
|
||||
echo sk_key_bindings > $out/share/fish/vendor_conf.d/load-sk-key-bindings.fish
|
||||
|
||||
installManPage man/man1/*
|
||||
|
||||
cat <<SCRIPT > $out/bin/sk-share
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, cmake
|
||||
, buildGoModule
|
||||
, buildGo118Module
|
||||
, makeWrapper
|
||||
, fetchFromGitHub
|
||||
, pythonPackages
|
||||
|
@ -35,7 +35,7 @@ let
|
|||
cmakeFlags = ["-DBUILD_DEMO=OFF" "-DDISABLE_PYTHON2=ON"];
|
||||
};
|
||||
|
||||
in buildGoModule rec {
|
||||
in buildGo118Module rec {
|
||||
pname = "datadog-agent";
|
||||
inherit src version;
|
||||
|
||||
|
@ -100,8 +100,7 @@ in buildGoModule rec {
|
|||
|
||||
wrapProgram "$out/bin/agent" \
|
||||
--set PYTHONPATH "$out/${python.sitePackages}"'' + lib.optionalString withSystemd '' \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.getLib systemd}/lib
|
||||
'';
|
||||
--prefix LD_LIBRARY_PATH : '' + lib.makeLibraryPath [ (lib.getLib systemd) rtloader ];
|
||||
|
||||
meta = with lib; {
|
||||
description = ''
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "nuclei";
|
||||
version = "2.8.1";
|
||||
version = "2.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "projectdiscovery";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-4qymEc2uYLi+6YDMbW6aUbe3RgOMaj6DT+6EfK3JaKk=";
|
||||
hash = "sha256-iH2+y5J6fgHae23YBwZ5WT/V2JCXFz7PtB/t2+S7PDk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-BW3IaF8etjUklX7RpxVWQoTIXSmu+qT7xyQrPKjTbD4=";
|
||||
vendorHash = "sha256-snBbte1TNDRcFwzq4QtixmqHarvQJ7E8euYPEYFlXe0=";
|
||||
|
||||
modRoot = "./v2";
|
||||
subPackages = [
|
||||
|
|
|
@ -5,8 +5,10 @@
|
|||
, bison
|
||||
, cdrkit
|
||||
, cpio
|
||||
, curl
|
||||
, flex
|
||||
, getopt
|
||||
, gnupg
|
||||
, hivex
|
||||
, jansson
|
||||
, libguestfs-with-appliance
|
||||
|
@ -70,6 +72,14 @@ stdenv.mkDerivation rec {
|
|||
xz
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# If it uses the executable name, then there's nothing we can do
|
||||
# when wrapping to stop it looking in
|
||||
# $out/etc/.virt-builder-wrapped, which won't exist.
|
||||
substituteInPlace common/mlstdutils/std_utils.ml \
|
||||
--replace Sys.executable_name '(Array.get Sys.argv 0)'
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs ocaml-dep.sh.in ocaml-link.sh.in run.in
|
||||
'';
|
||||
|
@ -85,6 +95,10 @@ stdenv.mkDerivation rec {
|
|||
enableParallelBuilding = true;
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/virt-builder \
|
||||
--argv0 virt-builder \
|
||||
--prefix PATH : ${lib.makeBinPath [ curl gnupg ]}:$out/bin \
|
||||
--suffix VIRT_BUILDER_DIRS : /etc:$out/etc
|
||||
wrapProgram $out/bin/virt-win-reg \
|
||||
--prefix PERL5LIB : ${with perlPackages; makeFullPerlPath [ hivex libintl-perl libguestfs-with-appliance ]}
|
||||
'';
|
||||
|
|
|
@ -1559,6 +1559,8 @@ mapAliases ({
|
|||
vdirsyncerStable = vdirsyncer; # Added 2020-11-08, see https://github.com/NixOS/nixpkgs/issues/103026#issuecomment-723428168
|
||||
venus = throw "venus has been removed from nixpkgs, as it's unmaintained"; # Added 2021-02-05
|
||||
vgo2nix = throw "vgo2nix has been removed, because it was deprecated. Consider using gomod2nix instead"; # added 2022-08-24
|
||||
vimHugeX = vim-full; # Added 2022-12-04
|
||||
vim_configurable = vim-full; # Added 2022-12-04
|
||||
vimbWrapper = throw "'vimbWrapper' has been renamed to/replaced by 'vimb'"; # Converted to throw 2022-02-22
|
||||
virtinst = throw "virtinst has been removed, as it's included in virt-manager"; # Added 2021-07-21
|
||||
virtuoso = throw "virtuoso has been removed, because it was unmaintained in nixpkgs"; # added 2021-12-15
|
||||
|
|
|
@ -2433,6 +2433,8 @@ with pkgs;
|
|||
|
||||
twine = with python3Packages; toPythonApplication twine;
|
||||
|
||||
accelergy = callPackage ../applications/science/computer-architecture/accelergy { };
|
||||
|
||||
aldo = callPackage ../applications/radio/aldo { };
|
||||
|
||||
alglib = callPackage ../development/libraries/alglib { };
|
||||
|
@ -27533,7 +27535,7 @@ with pkgs;
|
|||
assign-lb-ip = callPackage ../applications/networking/cluster/assign-lb-ip { };
|
||||
|
||||
astroid = callPackage ../applications/networking/mailreaders/astroid {
|
||||
vim = vim_configurable.override { features = "normal"; };
|
||||
vim = vim-full.override { features = "normal"; };
|
||||
};
|
||||
|
||||
aucatctl = callPackage ../applications/audio/aucatctl { };
|
||||
|
@ -32739,14 +32741,12 @@ with pkgs;
|
|||
|
||||
macvim = callPackage ../applications/editors/vim/macvim-configurable.nix { stdenv = clangStdenv; };
|
||||
|
||||
vimHugeX = vim_configurable;
|
||||
|
||||
vim_configurable = vimUtils.makeCustomizable (callPackage ../applications/editors/vim/configurable.nix {
|
||||
vim-full = vimUtils.makeCustomizable (callPackage ../applications/editors/vim/configurable.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa Foundation CoreData;
|
||||
inherit (darwin) libobjc;
|
||||
});
|
||||
|
||||
vim-darwin = (vim_configurable.override {
|
||||
vim-darwin = (vim-full.override {
|
||||
config = {
|
||||
vim = {
|
||||
gui = "none";
|
||||
|
@ -34737,6 +34737,7 @@ with pkgs;
|
|||
};
|
||||
|
||||
scummvm = callPackage ../games/scummvm {
|
||||
stdenv = if (stdenv.isDarwin && stdenv.isAarch64) then llvmPackages_14.stdenv else stdenv;
|
||||
inherit (darwin) cctools;
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa AudioToolbox Carbon CoreMIDI AudioUnit;
|
||||
};
|
||||
|
@ -37232,6 +37233,8 @@ with pkgs;
|
|||
|
||||
shellz = callPackage ../tools/security/shellz { };
|
||||
|
||||
timeloop = pkgs.darwin.apple_sdk_11_0.callPackage ../applications/science/computer-architecture/timeloop { };
|
||||
|
||||
canon-cups-ufr2 = callPackage ../misc/cups/drivers/canon { };
|
||||
|
||||
hll2390dw-cups = callPackage ../misc/cups/drivers/hll2390dw-cups { };
|
||||
|
|
Loading…
Reference in a new issue