Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-12-09 12:01:30 +00:00 committed by GitHub
commit 48b3a17dea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
93 changed files with 1007 additions and 2332 deletions

View file

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

View file

@ -8,14 +8,14 @@
Nixpkgs provides a standard library at <varname>pkgs.lib</varname>, or through <code>import &lt;nixpkgs/lib&gt;</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" />

View file

View 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

View file

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

View file

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

View file

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

View file

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

View file

@ -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 its 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>
Its a common issue that the latest stable version of ZFS doesnt
support the latest available Linux kernel. It is recommended to
use the latest available LTS thats compatible with ZFS. Usually
this is the default kernel provided by nixpkgs (i.e.
<literal>pkgs.linuxPackages</literal>).
</para>
<para>
Alternatively, its 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 isnt
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 its longterm
and the versions 5.16, 5.17 and 5.18 are already out of
maintenance because theyre non-longterm.
</para>
</section>
</chapter>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -63,7 +63,7 @@ let
in stdenv.mkDerivation rec {
pname = "vim_configurable";
pname = "vim-full";
inherit (common) version postPatch hardeningDisable enableParallelBuilding meta;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -22,4 +22,4 @@ DEPENDENCIES
rrule (= 0.4.4)
BUNDLED WITH
2.3.24
2.3.25

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -10,4 +10,4 @@ DEPENDENCIES
prometheus_exporter (= 0.5.0)
BUNDLED WITH
2.3.24
2.3.25

View file

@ -6,8 +6,8 @@
src = fetchFromGitHub {
owner = "discourse";
repo = "discourse-prometheus";
rev = "78ea9363b34e5fc56ac42f120cf1ea44ba99da9b";
sha256 = "sha256-LeveJKNocK5Fm8JxIWp5dyspNrlE+117fmzq+HcGnLA=";
rev = "72fff206ba18ad5ca3112fed2f5f0ce6a17ca6f8";
sha256 = "sha256-lSZZTcoWeFJTXnHLgry5ezYGmCBuMFJ96dtkOQKKRJc=";
};
patches = [

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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