Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-12-10 00:12:51 +00:00 committed by GitHub
commit 54a348728f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
214 changed files with 2131 additions and 3775 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

@ -3704,6 +3704,12 @@
fingerprint = "4749 0887 CF3B 85A1 6355 C671 78C7 DD40 DF23 FB16";
}];
};
DPDmancul = {
name = "Davide Peressoni";
email = "davide.peressoni@tuta.io";
matrix = "@dpd-:matrix.org";
githubId = 3186857;
};
dpercy = {
email = "dpercy@dpercy.dev";
github = "dpercy";

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

@ -132,6 +132,8 @@ in
options zram num_devices=${toString cfg.numDevices}
'';
boot.kernelParams = ["zram.num_devices=${toString cfg.numDevices}"];
services.udev.extraRules = ''
KERNEL=="zram[0-9]*", ENV{SYSTEMD_WANTS}="zram-init-%k.service", TAG+="systemd"
'';
@ -178,9 +180,9 @@ in
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${modprobe} -r zram";
ExecStart = "${modprobe} zram";
ExecStop = "${modprobe} -r zram";
ExecStartPre = "-${modprobe} -r zram";
ExecStart = "-${modprobe} zram";
ExecStop = "-${modprobe} -r zram";
};
restartTriggers = [
cfg.numDevices

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

@ -4,16 +4,12 @@ with lib;
let
cfg = config.services.prometheus.exporters.smartctl;
format = pkgs.formats.yaml {};
configFile = format.generate "smartctl-exporter.yml" {
smartctl_exporter = {
bind_to = "${cfg.listenAddress}:${toString cfg.port}";
url_path = "/metrics";
smartctl_location = "${pkgs.smartmontools}/bin/smartctl";
collect_not_more_than_period = cfg.maxInterval;
devices = cfg.devices;
};
};
args = concatStrings [
"--web.listen-address=\"${cfg.listenAddress}:${toString cfg.port}\" "
"--smartctl.path=\"${pkgs.smartmontools}/bin/smartctl\" "
"--smartctl.interval=\"${cfg.maxInterval}\" "
"${concatMapStringsSep " " (device: "--smartctl.device=${device}") cfg.devices}"
];
in {
port = 9633;
@ -50,17 +46,13 @@ in {
"CAP_SYS_ADMIN"
];
DevicePolicy = "closed";
DeviceAllow = lib.mkOverride 50 (
if cfg.devices != [] then
cfg.devices
else [
"block-blkext rw"
"block-sd rw"
"char-nvme rw"
]
);
DeviceAllow = lib.mkOverride 50 [
"block-blkext rw"
"block-sd rw"
"char-nvme rw"
];
ExecStart = ''
${pkgs.prometheus-smartctl-exporter}/bin/smartctl_exporter -config ${configFile}
${pkgs.prometheus-smartctl-exporter}/bin/smartctl_exporter ${args}
'';
PrivateDevices = lib.mkForce false;
ProtectProc = "invisible";

View File

@ -0,0 +1,27 @@
{ lib
, nixos
, expect
, testers
}:
let
node-forbiddenDependencies-fail = nixos ({ ... }: {
system.forbiddenDependenciesRegex = "-dev$";
environment.etc."dev-dependency" = {
text = "${expect.dev}";
};
documentation.enable = false;
fileSystems."/".device = "ignore-root-device";
boot.loader.grub.enable = false;
});
node-forbiddenDependencies-succeed = nixos ({ ... }: {
system.forbiddenDependenciesRegex = "-dev$";
system.extraDependencies = [ expect.dev ];
documentation.enable = false;
fileSystems."/".device = "ignore-root-device";
boot.loader.grub.enable = false;
});
in
lib.recurseIntoAttrs {
test-forbiddenDependencies-fail = testers.testBuildFailure node-forbiddenDependencies-fail.config.system.build.toplevel;
test-forbiddenDependencies-succeed = node-forbiddenDependencies-succeed.config.system.build.toplevel;
}

View File

@ -77,7 +77,7 @@ let
${config.system.systemBuilderCommands}
echo -n "${toString config.system.extraDependencies}" > $out/extra-dependencies
echo -n "$extraDependencies" > $out/extra-dependencies
${config.system.extraSystemBuilderCmds}
'';
@ -105,6 +105,8 @@ let
dryActivationScript = config.system.dryActivationScript;
nixosLabel = config.system.nixos.label;
inherit (config.system) extraDependencies;
# Needed by switch-to-configuration.
perl = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
} // config.system.systemBuilderArgs);
@ -223,6 +225,16 @@ in
'';
};
system.forbiddenDependenciesRegex = mkOption {
default = "";
example = "-dev$";
type = types.str;
description = lib.mdDoc ''
A POSIX Extended Regular Expression that matches store paths that
should not appear in the system closure, with the exception of {option}`system.extraDependencies`, which is not checked.
'';
};
system.extraSystemBuilderCmds = mkOption {
type = types.lines;
internal = true;
@ -298,8 +310,26 @@ in
config.system.copySystemConfiguration
''ln -s '${import ../../../lib/from-env.nix "NIXOS_CONFIG" <nixos-config>}' \
"$out/configuration.nix"
'' +
optionalString
(config.system.forbiddenDependenciesRegex != "")
''
if [[ $forbiddenDependenciesRegex != "" && -n $closureInfo ]]; then
if forbiddenPaths="$(grep -E -- "$forbiddenDependenciesRegex" $closureInfo/store-paths)"; then
echo -e "System closure $out contains the following disallowed paths:\n$forbiddenPaths"
exit 1
fi
fi
'';
system.systemBuilderArgs = lib.optionalAttrs (config.system.forbiddenDependenciesRegex != "") {
inherit (config.system) forbiddenDependenciesRegex;
closureInfo = pkgs.closureInfo { rootPaths = [
# override to avoid infinite recursion (and to allow using extraDependencies to add forbidden dependencies)
(config.system.build.toplevel.overrideAttrs (_: { extraDependencies = []; closureInfo = null; }))
]; };
};
system.build.toplevel = system;
};

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

@ -194,6 +194,7 @@ in {
ergo = handleTest ./ergo.nix {};
ergochat = handleTest ./ergochat.nix {};
etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
activation = pkgs.callPackage ../modules/system/activation/test.nix { };
etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
etebase-server = handleTest ./etebase-server.nix {};

View File

@ -1086,13 +1086,8 @@ let
];
};
exporterTest = ''
wait_for_unit("prometheus-smartctl-exporter.service")
wait_for_open_port(9633)
wait_until_succeeds(
"curl -sSf 'localhost:9633/metrics'"
)
wait_until_succeeds(
'journalctl -eu prometheus-smartctl-exporter.service -o cat | grep "/dev/vda: Unable to detect device type"'
'journalctl -eu prometheus-smartctl-exporter.service -o cat | grep "Device unavailable"'
)
'';
};

View File

@ -0,0 +1,33 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, alsa-lib
, gtk4
, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "alsa-scarlett-gui";
version = "unstable-2022-08-11";
src = fetchFromGitHub {
owner = "geoffreybennett";
repo = pname;
rev = "65c0f6aa432501355803a823be1d3f8aafe907a8";
sha256 = "sha256-wzBOPTs8PTHzu5RpKwKhx552E7QnDx2Zn4OFaes8Q2I=";
};
makeFlags = [ "DESTDIR=\${out}" "PREFIX=''" ];
sourceRoot = "source/src";
nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
buildInputs = [ gtk4 alsa-lib ];
meta = with lib; {
description = "GUI for alsa controls presented by Focusrite Scarlett Gen 2/3 Mixer Driver";
homepage = "https://github.com/geoffreybennett/alsa-scarlett-gui";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ sebtm ];
platforms = platforms.linux;
};
}

View File

@ -1,18 +1,21 @@
{ lib, buildGoModule, fetchFromGitHub }:
let
pinData = lib.importJSON ./pin.json;
in
buildGoModule rec {
pname = "erigon";
version = "2.30.0";
version = pinData.version;
src = fetchFromGitHub {
owner = "ledgerwatch";
repo = pname;
rev = "v${version}";
sha256 = "sha256-s5D+Ps5S95AyNh7tt2SnTvUxNHzOothsMZA7NW3x0yM=";
sha256 = pinData.sha256;
fetchSubmodules = true;
};
vendorSha256 = "sha256-ICoThps7c4+9NQPeaASQ88YVbczJD/MgF2ldOmKjgvc=";
vendorSha256 = pinData.vendorSha256;
proxyVendor = true;
# Build errors in mdbx when format hardening is enabled:

View File

@ -0,0 +1,5 @@
{
"version": "2.31.0",
"sha256": "sha256-+qVfujPKy/HAkMOJQdHI3G1pBoYG2Lhm5BKHrvf3lv0=",
"vendorSha256": "sha256-XTGbwMEuLBEXP/QAR8RLRPrbvz2ReCLg4tCogbqHiHg="
}

View File

@ -0,0 +1,33 @@
#!/usr/bin/env nix-shell
#! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
# TODO set to `verbose` or `extdebug` once implemented in oil
shopt --set xtrace
# we need failures inside of command subs to get the correct vendorSha256
shopt --unset inherit_errexit
const directory = $(dirname $0 | xargs realpath)
const owner = "ledgerwatch"
const repo = "erigon"
const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
jq -r '.tag_name')
const latest_version = $(echo $latest_rev | sd 'v' '')
const current_version = $(jq -r '.version' $directory/pin.json)
if ("$latest_version" === "$current_version") {
echo "$repo is already up-to-date"
return 0
} else {
const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev" --fetch-submodules)
const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
jq ".version = \"$latest_version\" | \
.\"sha256\" = \"$tarball_hash\" | \
.\"vendorSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
const new_vendor_sha256 = $(nix-build -A erigon 2>&1 | \
tail -n 2 | \
head -n 1 | \
sd '\s+got:\s+' '')
jq ".vendorSha256 = \"$new_vendor_sha256\"" $directory/pin.json | sponge $directory/pin.json
}

View File

@ -12,22 +12,10 @@ let
appimageContents = appimageTools.extractType2 {
inherit pname version src;
};
# Hotplug events from udevd are fired into the kernel, which then re-broadcasts them over a
# special socket, to every libudev client listening for hotplug when the kernel does that. It will
# try to preserve the uid of the sender but a non-root namespace (like the fhs-env) cant map root
# to a uid, for security reasons, so the uid of the sender becomes nobody and libudev actively
# rejects such messages. This patch disables that bit of security in libudev.
# See: https://github.com/NixOS/nixpkgs/issues/116361
systemdPatched = systemd.overrideAttrs ({ patches ? [ ], ... }: {
patches = patches ++ [ ./systemd.patch ];
});
in
appimageTools.wrapType2 rec {
inherit pname version src;
extraPkgs = pkgs: [ systemdPatched ];
extraInstallCommands = ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop

View File

@ -1,14 +0,0 @@
diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c
index fd5900704d..f9106fdbe5 100644
--- a/src/libsystemd/sd-device/device-monitor.c
+++ b/src/libsystemd/sd-device/device-monitor.c
@@ -445,9 +445,6 @@ int device_monitor_receive_device(sd_device_monitor *m, sd_device **ret) {
"sd-device-monitor: No sender credentials received, message ignored.");
cred = (struct ucred*) CMSG_DATA(cmsg);
- if (cred->uid != 0)
- return log_debug_errno(SYNTHETIC_ERRNO(EAGAIN),
- "sd-device-monitor: Sender uid="UID_FMT", message ignored.", cred->uid);
if (streq(buf.raw, "libudev")) {
/* udev message needs proper version magic */

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

@ -161,12 +161,12 @@ final: prev:
LeaderF = buildVimPluginFrom2Nix {
pname = "LeaderF";
version = "2022-12-06";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "Yggdroot";
repo = "LeaderF";
rev = "1326f60715adf6c434c0a6287e071af02d13dc26";
sha256 = "1zk7xy8fm5hqvbcn3jcpw7x0l4vcjx7zi09a04xvds1jf09s8l6g";
rev = "3ce1a63f85128beea8d74a52baacea11c105bf0f";
sha256 = "10mzrhhnh9jsxagpzx5pw3j4xnv573769wg9zk004y2h76pwyg2j";
};
meta.homepage = "https://github.com/Yggdroot/LeaderF/";
};
@ -799,24 +799,24 @@ final: prev:
barbar-nvim = buildVimPluginFrom2Nix {
pname = "barbar.nvim";
version = "2022-12-03";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "romgrk";
repo = "barbar.nvim";
rev = "e5f1393350cf842389be289c03885b92ab29ffb3";
sha256 = "1dkbplm6h7gmf4w7gjs823qjczvvmlqqpnljlb91mglqpcd7wc87";
rev = "bfb2ab023499251c72f922b584e28ba52b0f7791";
sha256 = "1gzlcmag12gk7xy0rvsxfix9d6g7s50fsvcqwp4rk70y83dl5ijq";
};
meta.homepage = "https://github.com/romgrk/barbar.nvim/";
};
barbecue-nvim = buildVimPluginFrom2Nix {
pname = "barbecue.nvim";
version = "2022-12-05";
version = "2022-12-07";
src = fetchFromGitHub {
owner = "utilyre";
repo = "barbecue.nvim";
rev = "2f242375df96e8a82089d4424e5db0d237c5ae46";
sha256 = "14gbx10gpng0n2bb3x7lbzx9n3vdw900yw19fa8qf9mlvi36gpxx";
rev = "50b3c69a39f70d7b99661d82f37bb9b04eca25bd";
sha256 = "0p69khfwlgcqrq8d6d2xrr4913vpc7hywz498h3ig5mqaik6bsy5";
};
meta.homepage = "https://github.com/utilyre/barbecue.nvim/";
};
@ -1339,12 +1339,12 @@ final: prev:
cmp-latex-symbols = buildVimPluginFrom2Nix {
pname = "cmp-latex-symbols";
version = "2022-06-17";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "kdheepak";
repo = "cmp-latex-symbols";
rev = "46e7627afa8c8ff57158d1c29d721d8efebbc39f";
sha256 = "10354d12in7sr5hdamj0cw8hgja6pwl70i9lcxlnha5jzkx8xm03";
rev = "1ec2e4f47cde6c7ffcebec92cfec58ddc1f6689a";
sha256 = "093wj6kfln2lsgcijnwjj924lbgld0vhfvx8w0kfhlhpv5fr5dfz";
};
meta.homepage = "https://github.com/kdheepak/cmp-latex-symbols/";
};
@ -2023,24 +2023,24 @@ final: prev:
coq-artifacts = buildVimPluginFrom2Nix {
pname = "coq.artifacts";
version = "2022-12-07";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq.artifacts";
rev = "295c64b9f9084a78db4eee7450483ce3caf541e0";
sha256 = "1ga254s56gbyyywwif4lhfgak3w5gam5ldry33d8h7nqfrvbmmdr";
rev = "3cc371dbddb400c0fc5e8edeb423b14cd5084276";
sha256 = "1wblwq215xldsl86m728866n677q064x55xm425riisd376xarka";
};
meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
};
coq-thirdparty = buildVimPluginFrom2Nix {
pname = "coq.thirdparty";
version = "2022-12-07";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq.thirdparty";
rev = "b601b48b9a12ab4cd5baedc633f88b48a74100c5";
sha256 = "0m93y7m159plhwwrsdqr7d651fzbp0z3p49g9l4v199kvsq0x50a";
rev = "ccc1f692da9fbb9a87fe7eb5ccd341a3c35283a6";
sha256 = "021cyhwza7skml7j0k26mf159myr4d8j8m9rq01id0j3xy5zqjgb";
};
meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
};
@ -2059,12 +2059,12 @@ final: prev:
coq_nvim = buildVimPluginFrom2Nix {
pname = "coq_nvim";
version = "2022-12-07";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq_nvim";
rev = "fd9c9eb2361f327969368f8eeadd063e5a7d5abe";
sha256 = "070a632szjhb342jz41gg7lhw4m11wi5n33f1z8mhc976yy53cas";
rev = "95d658235c75016dcfd4e1468d07de72a4bfad49";
sha256 = "1nsy1j221hps1z3rxvq9xd4k29wxjl3wss2dcpgcillgspl9rrrz";
};
meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
};
@ -2095,12 +2095,12 @@ final: prev:
crates-nvim = buildVimPluginFrom2Nix {
pname = "crates.nvim";
version = "2022-11-17";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "saecki";
repo = "crates.nvim";
rev = "e11e27864428a68b25e43b833e9081e350a38d96";
sha256 = "15yma6waw0914i3z3ck50ndris4s7b9297lcjzsb7vxwkfnrkn9i";
rev = "22fcb7a623bab743fcae1532b272ae52a6e24fda";
sha256 = "0cspbrbx3zz6zp59bbj6qx1f17xcbvcbx1920z8l1c1cisdh4m4a";
};
meta.homepage = "https://github.com/saecki/crates.nvim/";
};
@ -2577,24 +2577,24 @@ final: prev:
dial-nvim = buildVimPluginFrom2Nix {
pname = "dial.nvim";
version = "2022-10-22";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "monaqa";
repo = "dial.nvim";
rev = "9ba17c2ee636a8e7fdef5b69d6aac54dd26f4384";
sha256 = "0c22dg8mscgv8kgxmynj0vagp2lrccp1mjv0ski3mr5d4gq83x9q";
rev = "f6d274bd8e32be65b99f1052a8b5353ef5e702d7";
sha256 = "0lnzs4qqbnbrkxfp40hwrpvh0579qw0bnayjz0qzqhi115fss136";
};
meta.homepage = "https://github.com/monaqa/dial.nvim/";
};
diffview-nvim = buildVimPluginFrom2Nix {
pname = "diffview.nvim";
version = "2022-12-06";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "sindrets";
repo = "diffview.nvim";
rev = "e37b2d9aaba408954d0e894e27e6f4dbf939ef95";
sha256 = "0a9m0ymjj6y1nmpf0yxzvqnz1j2ppwis43a26iqr94i4n5kva393";
rev = "85903aa26257a4ea42c4bdbf3c998a2006aaaec5";
sha256 = "1032blq53y5zdlg4y3zpbi1lmk07qg3p6061dia2hjmfhbkcdzs4";
};
meta.homepage = "https://github.com/sindrets/diffview.nvim/";
};
@ -2751,8 +2751,8 @@ final: prev:
src = fetchFromGitHub {
owner = "sainnhe";
repo = "everforest";
rev = "bed286c9f787a2b6f49edaa47bc286ff93a304b5";
sha256 = "1987f2nm1rg5ig5qbi1nfsmm2iamypbimhw38m7ammv1wda840fx";
rev = "478b697fb5605956da781bfe7c1de7a89f4a1628";
sha256 = "03n2f5nvnjkz9h74wqc5bl04v9snq285dg75gj0lrxcrg0y6j63q";
};
meta.homepage = "https://github.com/sainnhe/everforest/";
};
@ -2843,12 +2843,12 @@ final: prev:
ferret = buildVimPluginFrom2Nix {
pname = "ferret";
version = "2022-06-12";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "wincent";
repo = "ferret";
rev = "3d064304876941e4197db6b4264db6b72bd9f83d";
sha256 = "1lkznmavw2f4ckh3yjjvdhja313ia0aayn5pkf6ygjny1089gcih";
rev = "22cf052269b1143cd579b81c9390880ac712b67f";
sha256 = "0pwwyf0fwwqaxa9sqm74aqy5r0wvyh24csg8mwp4cyhkdnk2w1rf";
};
meta.homepage = "https://github.com/wincent/ferret/";
};
@ -3706,12 +3706,12 @@ final: prev:
indent-blankline-nvim = buildVimPluginFrom2Nix {
pname = "indent-blankline.nvim";
version = "2022-09-02";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "lukas-reineke";
repo = "indent-blankline.nvim";
rev = "db7cbcb40cc00fc5d6074d7569fb37197705e7f6";
sha256 = "1r9y6zqar0gv8kvqqxlh07ifa16h5yqa24fj22qw63vgnysbxqbp";
rev = "c4c203c3e8a595bc333abaf168fcb10c13ed5fb7";
sha256 = "1kanfs0c1rbi23dm0vkmyzg4qkxq18hc2jc2izvyqiklbpi49x06";
};
meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
};
@ -4007,12 +4007,12 @@ final: prev:
lean-nvim = buildVimPluginFrom2Nix {
pname = "lean.nvim";
version = "2022-12-04";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "Julian";
repo = "lean.nvim";
rev = "25cfbde4c5c01133ec36fbc0fd44d9c7cf99e397";
sha256 = "02d43j8v5lnwg48x11nzdh270fhia1flbqv682ss391zcl0z2h7q";
rev = "60a0ab74cb1bded492cebf2f5f4f25868b52d1ee";
sha256 = "1rqgb90dh91l4pgkj6gl79lmnxynmr2w8iiwpx3rvyfbpsrkqyhi";
};
meta.homepage = "https://github.com/Julian/lean.nvim/";
};
@ -4055,12 +4055,12 @@ final: prev:
legendary-nvim = buildVimPluginFrom2Nix {
pname = "legendary.nvim";
version = "2022-12-07";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "mrjones2014";
repo = "legendary.nvim";
rev = "78cc8984cd5f3afb71f8f053f0a1d4708069f2c8";
sha256 = "08n243nz39sw6c6ihaz9x64ws1vlj7pp180lrhl3ifqgnaj1ymfb";
rev = "7be09ac0cf0ac12d65e41c706822a24eb0b92971";
sha256 = "08wz13l9lhqx21l1d32724mqpk3x10kakbw8r88isnwi8psbfs9r";
};
meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
};
@ -4967,12 +4967,12 @@ final: prev:
neoconf-nvim = buildVimPluginFrom2Nix {
pname = "neoconf.nvim";
version = "2022-12-07";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "folke";
repo = "neoconf.nvim";
rev = "a292a8a4927278c4c9e7653cf0a37cd40c17d0fb";
sha256 = "1j2n4k02b5648ayarqdcw312ynd9j50gm3l5ish6fav6k4ipngq6";
rev = "44da95e38c294ddc43fe6b39df6b6e99ecfda52a";
sha256 = "1hkzf105900zfclan6qckpvljs0mk48dgjxdf80fq0khy0c1whhy";
};
meta.homepage = "https://github.com/folke/neoconf.nvim/";
};
@ -5135,12 +5135,12 @@ final: prev:
neotest = buildVimPluginFrom2Nix {
pname = "neotest";
version = "2022-12-05";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "nvim-neotest";
repo = "neotest";
rev = "d9bd5b05983ccfa349ff2692a5adb17b227088b5";
sha256 = "05iqzzmxvzb0s6v68pl2wjc643bwhd1mc3r2mrywkj99n8k6mn3k";
rev = "a77f3ab85518b0cfb43d6074c27f3a2abc0aac75";
sha256 = "1fwmx1b6z8pfbb2baj198saliwf5572bvh69ma1ch6zm593vkp2z";
};
meta.homepage = "https://github.com/nvim-neotest/neotest/";
};
@ -5363,12 +5363,12 @@ final: prev:
nordic-nvim = buildVimPluginFrom2Nix {
pname = "nordic.nvim";
version = "2022-11-05";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "andersevenrud";
repo = "nordic.nvim";
rev = "cb2d7dff4e698cda93775ad61169b08c9461ca88";
sha256 = "0ryp42mcvgknxj9yq0i314vx1ig1x88qjvi2ipb92l6mvwnaqps7";
rev = "cd552784eeeae61644fec60f6cc52c267dbddc73";
sha256 = "0pv3z3kz1v399q283fymz10rq46980a5z2nvhzrfg3i0ws4gpni0";
};
meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
};
@ -5387,24 +5387,24 @@ final: prev:
nui-nvim = buildVimPluginFrom2Nix {
pname = "nui.nvim";
version = "2022-10-27";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "MunifTanjim";
repo = "nui.nvim";
rev = "d12a6977846b2fa978bff89b439e509320854e10";
sha256 = "1ghj8kjv2skh2hd9m6sghvj6pya8d9jvr5m9l9q1r0sg1i5x1kjy";
rev = "2a6533fb798efad7dd783311315bab8dc5eb381b";
sha256 = "08r8ddpxs6zf13vkdjcvhczh6g4r4hkfag5yqkc3pa57wfrda8f2";
};
meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
};
null-ls-nvim = buildVimPluginFrom2Nix {
pname = "null-ls.nvim";
version = "2022-12-05";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "jose-elias-alvarez";
repo = "null-ls.nvim";
rev = "b3d2ebdb75cf1fa4290822b43dc31f61bd0023f8";
sha256 = "01ri9sk5p67lkv1jf6zia8l87prrsccyz2862pk7brsmyaja22kw";
rev = "a0acd495f5edce6d4d5d3c6bd63d2319ccded9ed";
sha256 = "1d5ybbpl0vfszfxjx9rkvd76j8jibcjqbgb9njy36d15qq3fv0ph";
};
meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
};
@ -5627,12 +5627,12 @@ final: prev:
nvim-dap = buildVimPluginFrom2Nix {
pname = "nvim-dap";
version = "2022-12-01";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-dap";
rev = "8f396b7836b9bbda9edd9f655f12ca377ae97676";
sha256 = "0jbl9ima5q5f0rcjac8p35by96wha3ph2518d1mjbliawfdl23p1";
rev = "a8fd28aec46fe9f5dd42f8d5939217ce60787d73";
sha256 = "0sxq0nlhgk2q1yz8nyj21z2mxgfg383jm00s6j0hggq02v3a86mz";
};
meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
};
@ -5795,12 +5795,12 @@ final: prev:
nvim-jdtls = buildVimPluginFrom2Nix {
pname = "nvim-jdtls";
version = "2022-12-05";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-jdtls";
rev = "82e9feb6eb6000cea42b4cddf5b31daf624173bb";
sha256 = "1f7akw10npsvabgprg4vm23nqxiy679rp2cbyfywkis2hjb4mraw";
rev = "e0147c1b0f94708392783bbb44db8cd8bf8c84d4";
sha256 = "1m015d36yxq3q5f2pw9bpn3jrr35gi333c78x8brzng7l592zs8j";
};
meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
};
@ -5855,12 +5855,12 @@ final: prev:
nvim-lint = buildVimPluginFrom2Nix {
pname = "nvim-lint";
version = "2022-12-05";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-lint";
rev = "46e14866fd2876a18772f913c6c14f5545c6034a";
sha256 = "16gnlbghywq6ksfmbzfgl9mj4d9gywdqkj8i4jsgl6h4qkvp4hb3";
rev = "5b6d0463e956b625cd17b51ad391bae9ee5bea92";
sha256 = "0ignv8w27jzxg1a3c884j0xgy10bwkbdk1inip9jrv3hpai2x9rj";
};
meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
};
@ -5879,12 +5879,12 @@ final: prev:
nvim-lspconfig = buildVimPluginFrom2Nix {
pname = "nvim-lspconfig";
version = "2022-12-07";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
rev = "c7206327096bedf2e213788a60624a84b3b7552d";
sha256 = "1f310ng3i69mlp429fcq65fqrfigdpmnsixq91qyan964cn1b13r";
rev = "8a3e5f9add9cd408c7063619c8d612700bf25d4d";
sha256 = "1cjv3pdbmgjh956sp02vjg4i5bjfimj8awahvw9a9bjkwr56d8wl";
};
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
};
@ -5927,12 +5927,12 @@ final: prev:
nvim-metals = buildVimPluginFrom2Nix {
pname = "nvim-metals";
version = "2022-11-26";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "scalameta";
repo = "nvim-metals";
rev = "92f7451aa0dd0267027ab9a5850a4b7c1af33341";
sha256 = "16bifycciggvsq5mxp43w21jdh8r57yhsrs7bnwgzy19h0q5lm8w";
rev = "d1c01907256dae7c9d55ba1fcfb8cf6b4f583325";
sha256 = "0w7sya5pyfj9ad4295200j32ibsg5w9qx6icnlfv2fac03r4ir65";
};
meta.homepage = "https://github.com/scalameta/nvim-metals/";
};
@ -6027,8 +6027,8 @@ final: prev:
src = fetchFromGitHub {
owner = "petertriho";
repo = "nvim-scrollbar";
rev = "779cf6f5e7ebcd78acf37dff35a240e03f616357";
sha256 = "0hz9y3q84azi3grzac7i6dazv982g7di7limd1qajx8x3hbbfvyx";
rev = "f45aecbba9c402282dfc99721e0ad4c08710907c";
sha256 = "0aga91mvkgm8l2nqk2ng8rcgn2a10f5z4xdk66p7afddc8xzk32p";
};
meta.homepage = "https://github.com/petertriho/nvim-scrollbar/";
};
@ -6119,12 +6119,12 @@ final: prev:
nvim-treesitter = buildVimPluginFrom2Nix {
pname = "nvim-treesitter";
version = "2022-12-07";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter";
rev = "440401c506ec9b87cd3824ad17631115ab860cc5";
sha256 = "1xyb73vavp38mr7lvjbwd9hmqlc4bw41g1wg0fs8fflabjy3bals";
rev = "35ad87384b3e47b3b5758d1642bbea08c70200c0";
sha256 = "0jy5lq1r7dq1ib3mmx3izihcxv985rda468h33y0hvk11l36mx88";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
};
@ -6263,12 +6263,12 @@ final: prev:
nvimdev-nvim = buildVimPluginFrom2Nix {
pname = "nvimdev.nvim";
version = "2022-11-10";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvimdev.nvim";
rev = "5f4f2f294d45dbdf1936b81b9bcae97651f46fbd";
sha256 = "0xzfjfs3z4v3w3hc7kvq33a8xyfxxha0x6vpgl4p7vh8rvxc5n8d";
rev = "3220bb394ab059888b1b0498bbe43d9435ccee22";
sha256 = "01alhc1wlh7g0b1p0x2q49v4srh2vqiwcgv7sjis89wz2dnq5n48";
};
meta.homepage = "https://github.com/neovim/nvimdev.nvim/";
};
@ -6359,12 +6359,12 @@ final: prev:
onedarkpro-nvim = buildVimPluginFrom2Nix {
pname = "onedarkpro.nvim";
version = "2022-11-21";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "olimorris";
repo = "onedarkpro.nvim";
rev = "6f13896727c82c1ff56acf483d474ba7ad88f230";
sha256 = "1vbnxc9cvk2gn5vs4mhgk7mvlzdifhkh3bl71814q9mvq46nnxav";
rev = "ceb1ad90a20c39a87799e5f0facfa02d7cb19a23";
sha256 = "0wq15k4g02hi7dvkwg1j7mr2cgl6yvisk9dsyzkdsh30yfpg11cb";
};
meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
};
@ -6419,12 +6419,12 @@ final: prev:
orgmode = buildVimPluginFrom2Nix {
pname = "orgmode";
version = "2022-11-30";
version = "2022-12-07";
src = fetchFromGitHub {
owner = "nvim-orgmode";
repo = "orgmode";
rev = "fc9bb0f5823d01e4008e4b86663772d4148aa9ce";
sha256 = "1vb0x89qr2kk5ma8syw4l56c6j2b7y2advyjykdli8psn6i7gsyf";
rev = "d3980a5cda71266579ef773168d7750e04911877";
sha256 = "1wlmzsj70x891bcxkdcwgx7hiljhgcl73w2i9vadk4n51hxc57h7";
};
meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
};
@ -6901,12 +6901,12 @@ final: prev:
rnvimr = buildVimPluginFrom2Nix {
pname = "rnvimr";
version = "2022-11-27";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "kevinhwang91";
repo = "rnvimr";
rev = "d78ca640354ea7a4671ff11df8f71fbb087e0eba";
sha256 = "1y613xbqjv3g6drcqhx04j34fnx2l00yb17prcd4vn5sjllil9mz";
rev = "64579c485812867bbd7890a55ca93884beb440b6";
sha256 = "0yzy3mq7b7hnnb04z45m4r3hcpf11djv5zxhsyk60pnyvlwrdl7k";
};
meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
};
@ -7383,12 +7383,12 @@ final: prev:
ssr-nvim = buildVimPluginFrom2Nix {
pname = "ssr.nvim";
version = "2022-12-04";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "cshuaimin";
repo = "ssr.nvim";
rev = "6238c102d16779aaa505a16200ac50a01c16b5ef";
sha256 = "0w0yljwf5l19sczb8qrzkhl61w7xhyapj8v182c7h60k7nis1qqx";
rev = "ce2ba65370c3e6ca2e84e652c9adfccb8611458e";
sha256 = "080xgvq8i01v2zz86nxwr1c2pi2mb5qjx6lymkygp0xjmv3p9b2v";
};
meta.homepage = "https://github.com/cshuaimin/ssr.nvim/";
};
@ -7709,12 +7709,12 @@ final: prev:
tcomment_vim = buildVimPluginFrom2Nix {
pname = "tcomment_vim";
version = "2022-12-02";
version = "2022-12-07";
src = fetchFromGitHub {
owner = "tomtom";
repo = "tcomment_vim";
rev = "ced243a049bb6839ff057741de731418879e97e8";
sha256 = "1q2q2q8rpd8fzf4sa14mjg42m1d97cqxz82xk4vgg3ml3ffgcsly";
rev = "dd1da14193c10f7f5b91638e438977b48d191aa9";
sha256 = "1k3f821hc1kzajsb259309m57iwhjrika7i87ayx8pq1mvlxzdvc";
};
meta.homepage = "https://github.com/tomtom/tcomment_vim/";
};
@ -7745,12 +7745,12 @@ final: prev:
telescope-coc-nvim = buildVimPluginFrom2Nix {
pname = "telescope-coc.nvim";
version = "2022-10-20";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "fannheyward";
repo = "telescope-coc.nvim";
rev = "0193fe529edd2cb61ccc020b492df76528f880fc";
sha256 = "1y7kav5749bznz5m7102igba29yvfbasnbn6hzsx57g8vj36kwbb";
rev = "878c8ac14f809f7a1247a090408f7c23fa075470";
sha256 = "0q237i5cwxqzzhfmnbvljsmc4z7gmdfapz965pp135ybid4nh5xh";
};
meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
};
@ -8191,12 +8191,12 @@ final: prev:
toggleterm-nvim = buildVimPluginFrom2Nix {
pname = "toggleterm.nvim";
version = "2022-11-03";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "akinsho";
repo = "toggleterm.nvim";
rev = "3ba683827c623affb4d9aa518e97b34db2623093";
sha256 = "043rchc7qbn65b7wfgvp6fdg67xijgd3i3jfm82i1rha7dlymb41";
rev = "b02a1674bd0010d7982b056fd3df4f717ff8a57a";
sha256 = "1ibkq0mv39n8pf43nxrridn4hdn95qk7pq0mv28qrb9p8dnxczfj";
};
meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
};
@ -8239,12 +8239,12 @@ final: prev:
treesj = buildVimPluginFrom2Nix {
pname = "treesj";
version = "2022-12-02";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "Wansmer";
repo = "treesj";
rev = "43604d7e1504571c768024e90907dc7b581456a4";
sha256 = "0k9swbihxjynzkhfg5dgnkm5ajzaq75py4lpxfiql54pvbbllcb5";
rev = "1c4447d01cfed64fdb9a62fd69611dc8d6b9ade0";
sha256 = "188xd9zwy9kx3gmlagbk4rw2wsspszx8zqg57kv6xa15zb4c6366";
};
meta.homepage = "https://github.com/Wansmer/treesj/";
};
@ -8359,12 +8359,12 @@ final: prev:
undotree = buildVimPluginFrom2Nix {
pname = "undotree";
version = "2022-10-08";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "mbbill";
repo = "undotree";
rev = "bd60cb564e3c3220b35293679669bb77af5f389d";
sha256 = "0w05yhyjh6j7gcdfghvbjylc64wba42fagnj4bxk1lbcqvnnzxc8";
rev = "1a23ea84bd02c34f50d8e10a8b4bfc89597ffe4e";
sha256 = "00r0jnsrqdfns08ndj3xhwfx3yf65dgsin9pihad64gj9fmwvbv3";
};
meta.homepage = "https://github.com/mbbill/undotree/";
};
@ -9271,12 +9271,12 @@ final: prev:
vim-codefmt = buildVimPluginFrom2Nix {
pname = "vim-codefmt";
version = "2022-12-04";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "google";
repo = "vim-codefmt";
rev = "b97c8fcdaed5c3915e49f70f7fa7aa148d528428";
sha256 = "1j3g4rcjy5fr7pbm45bkzsq0kppvrp54wd6dsdzxwd2y1nkrm82l";
rev = "64ffe0761b9499f15ea8b56b153644c488b5bf74";
sha256 = "1apym7104z3pxx57srb7ih1qsyidf421f3d6rzfs8nc2vvgdd061";
};
meta.homepage = "https://github.com/google/vim-codefmt/";
};
@ -9463,24 +9463,24 @@ final: prev:
vim-dadbod = buildVimPluginFrom2Nix {
pname = "vim-dadbod";
version = "2022-12-03";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-dadbod";
rev = "c8034ea7160c0fa9351f9f07f964bb335cdd6187";
sha256 = "1kbll59gzcrawwgfiv63psciab330id3jc19kmbl3dvbs3m9if8q";
rev = "1ad079ed63d9934174fec918cc0abc7e020eb02c";
sha256 = "0zmnvwg28bw1pnbf3bx675bssjiab8brcabdkl8vfqgnyibw2pm7";
};
meta.homepage = "https://github.com/tpope/vim-dadbod/";
};
vim-dadbod-completion = buildVimPluginFrom2Nix {
pname = "vim-dadbod-completion";
version = "2022-11-22";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "kristijanhusak";
repo = "vim-dadbod-completion";
rev = "339667d9939d434f9b4496859c077faa88880183";
sha256 = "08slydxkahw4w383k4ln6hhz0lq9caxxilp4r9k4xk5dmsi7d2xd";
rev = "e71eb6140556c5ced80de6299a1fdfe22bd3c1b1";
sha256 = "1d3gg2s9krvq9nasa3iwb7kv3jx5v74h0h55syp7d7hl7idysgdd";
};
meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
};
@ -9559,12 +9559,12 @@ final: prev:
vim-dirvish = buildVimPluginFrom2Nix {
pname = "vim-dirvish";
version = "2022-07-14";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "justinmk";
repo = "vim-dirvish";
rev = "81b40878f286f370df2a2b3a52c4d860643d2142";
sha256 = "19wmp9bx3sgf4vjvq504ah12hh6zm7hvqjyq07sccy2z7ld87bd5";
rev = "6233243f0caa71d27d27ea102540a88bce8eb6ea";
sha256 = "03nvv5y4zv2kh4fkg3xx0zf247mqv201zf89aalczvslvwdf7gqf";
};
meta.homepage = "https://github.com/justinmk/vim-dirvish/";
};
@ -11038,12 +11038,12 @@ final: prev:
vim-monokai = buildVimPluginFrom2Nix {
pname = "vim-monokai";
version = "2021-05-06";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "crusoexia";
repo = "vim-monokai";
rev = "66f7dc9c63296ea6ba408faa60bebe54a34c57f2";
sha256 = "10ip0y9p2qf869h2yhp2zs6qc048rw1x5i0spziajca96251gvig";
rev = "6b6c2b698e94d0af8d8f2307be01571ab8b7b74f";
sha256 = "1pa1fylfzammcy7xvl2wlgg2qw8yzrzr7yf0vdalqfmxkakma1z8";
};
meta.homepage = "https://github.com/crusoexia/vim-monokai/";
};
@ -11350,12 +11350,12 @@ final: prev:
vim-orgmode = buildVimPluginFrom2Nix {
pname = "vim-orgmode";
version = "2022-01-23";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "jceb";
repo = "vim-orgmode";
rev = "66cd7ee69a9cddc73f65566e32da159f1e51401f";
sha256 = "1ywf5vcn3b8isfw4gxqfplchn94jvbqvaap15w1yk5ljmp46gxgk";
rev = "b27feaba9a316e8307cfd7a56797b378fb52df83";
sha256 = "0b2y49ylbrp1i5r5abznziv1n43d063mib07v4ila0873k7fzir6";
};
meta.homepage = "https://github.com/jceb/vim-orgmode/";
};
@ -11926,12 +11926,12 @@ final: prev:
vim-sandwich = buildVimPluginFrom2Nix {
pname = "vim-sandwich";
version = "2022-07-22";
version = "2022-12-07";
src = fetchFromGitHub {
owner = "machakann";
repo = "vim-sandwich";
rev = "74898e6f5c5ea37e17163f00bf4981049f785eed";
sha256 = "09zx0081bmprvf1zv3wxjnl0j4viks9w3yysbwgg1qqi38fls5rg";
rev = "c5a2cc438ce6ea2005c556dc833732aa53cae21a";
sha256 = "1b1rim7q398dnwdaqakcycvyvw04rw32k10ij7w7mqpbn9hklpm5";
};
meta.homepage = "https://github.com/machakann/vim-sandwich/";
};
@ -12190,12 +12190,12 @@ final: prev:
vim-snippets = buildVimPluginFrom2Nix {
pname = "vim-snippets";
version = "2022-12-01";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "honza";
repo = "vim-snippets";
rev = "6173350127d56dcc5664f50320b3f522951f56e9";
sha256 = "1a002y2pw76bh35q9z0rba3wnfcwgfmnii4gn3107wwfmfy50z55";
rev = "8c917944354552c1263159a4a218ad924969be0c";
sha256 = "1fsfmi6q4inbv5vdfclfjc3dga4wcvgw6dm32xqxq74raq5npgmc";
};
meta.homepage = "https://github.com/honza/vim-snippets/";
};
@ -12431,12 +12431,12 @@ final: prev:
vim-test = buildVimPluginFrom2Nix {
pname = "vim-test";
version = "2022-11-10";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "vim-test";
repo = "vim-test";
rev = "ab7feab8cb139e5b4955cb4c6ddf52e968cb24be";
sha256 = "0glnzs21xhwgir4ndnrv3jlmi5g6b4znybcpp5d4aqxd5sqa80m3";
rev = "99894e398e6b3c797bda2d0390f36d265ad0ab58";
sha256 = "070755cb9sfbcxcq122gqblsrqng2xvgjvv6rgwfkg32rn7dbsfz";
};
meta.homepage = "https://github.com/vim-test/vim-test/";
};
@ -12575,12 +12575,12 @@ final: prev:
vim-tmux-navigator = buildVimPluginFrom2Nix {
pname = "vim-tmux-navigator";
version = "2022-12-04";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "christoomey";
repo = "vim-tmux-navigator";
rev = "a40cc7a52787e06fd57650e09be490432e3d4717";
sha256 = "0l98v8lbadz32z7i1d1n0b1ggpvbsc71ni3lqm9hd2xhx9rixps1";
rev = "41ea9d23b814014c8d8daf8b44fa0cd827a0e5f4";
sha256 = "15581nighr1a82gkn0blkx75l6bz0vfq573nf626dw1qa652nipz";
};
meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
};
@ -12863,12 +12863,12 @@ final: prev:
vim-which-key = buildVimPluginFrom2Nix {
pname = "vim-which-key";
version = "2022-10-30";
version = "2022-12-07";
src = fetchFromGitHub {
owner = "liuchengxu";
repo = "vim-which-key";
rev = "398adc5bf2918ee84e78bd974a9f9d64ddfc0801";
sha256 = "18kjcw8jdidihfscir5kihz22mvlwkbab1w5m8hc2w9qjljcza50";
rev = "c0eb7a63e80ed0dc2c91eb8c879b7396a795f775";
sha256 = "14v47fjp1klnacbbn2ly9ya0xs4dv2bsf9pg391zfcpp9rzf6mrl";
};
meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
};
@ -12923,12 +12923,12 @@ final: prev:
vim-xkbswitch = buildVimPluginFrom2Nix {
pname = "vim-xkbswitch";
version = "2022-12-07";
version = "2022-12-08";
src = fetchFromGitHub {
owner = "lyokha";
repo = "vim-xkbswitch";
rev = "e64864ec2e01ba554c6ee5396e4e77f732433738";
sha256 = "0sg4ynwr5mw0qpgnvl752d9yslvd8rxl6swz61gnzgg8j3fyhk5f";
rev = "6bcc2dd50f8952e9d20760ccccd3425ecaa4b25e";
sha256 = "09lh4cd2v8k0hj6ipik1lq78syl07aaf5aybpnf9l3gbvqbj5wnw";
};
meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
};
@ -12969,6 +12969,18 @@ final: prev:
meta.homepage = "https://github.com/simonrw/vim-yapf/";
};
vim-zettel = buildVimPluginFrom2Nix {
pname = "vim-zettel";
version = "2022-09-05";
src = fetchFromGitHub {
owner = "michal-h21";
repo = "vim-zettel";
rev = "e38119f98c888b6fc700f97e363254ddafc950ba";
sha256 = "1a4rc7blj7lh318x8cgyyi9q3m5szdz2f1frn6yga5vqd9cyv877";
};
meta.homepage = "https://github.com/michal-h21/vim-zettel/";
};
vim2hs = buildVimPluginFrom2Nix {
pname = "vim2hs";
version = "2014-04-16";
@ -13501,12 +13513,12 @@ final: prev:
catppuccin-nvim = buildVimPluginFrom2Nix {
pname = "catppuccin-nvim";
version = "2022-12-06";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "catppuccin";
repo = "nvim";
rev = "08ef4cb230a16c5f6b8f33ef1bf0c5b3e192905a";
sha256 = "1xzh1ql0iix33ixkdcrvf80xa9c995b6gq2ag0k9q4ikvmid5lx2";
rev = "d55d81eabfeacbfb167e2948790ae94aaba3b149";
sha256 = "0xhcrh1zyjq7i5kdsvw1v2f83m0d3ikv8hzpvpkm13zkhzasj018";
};
meta.homepage = "https://github.com/catppuccin/nvim/";
};
@ -13525,12 +13537,12 @@ final: prev:
chad = buildVimPluginFrom2Nix {
pname = "chad";
version = "2022-12-07";
version = "2022-12-09";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "chadtree";
rev = "b0e0b05e5aa8156fe9c8f3a3a3804a434394ab65";
sha256 = "1kakayg4v5fdi1hs1zyv6f9hd9im0f36z4f4bk1yszsgycrcyl1z";
rev = "e61b0e2760e62a72a858e7e51733b52c22927dd3";
sha256 = "10i68hk8q8m6w9r7pmk4m18x6k931w6nl095452cag0ijc6rsxkd";
};
meta.homepage = "https://github.com/ms-jpq/chadtree/";
};

View File

@ -338,14 +338,14 @@
};
erlang = buildGrammar {
language = "erlang";
version = "3a9c769";
version = "a8b8b0e";
source = fetchFromGitHub {
owner = "AbstractMachinesLab";
owner = "WhatsApp";
repo = "tree-sitter-erlang";
rev = "3a9c769444f08bbccce03845270efac0c641c5e7";
hash = "sha256-ZsjHTNUfTEPo3Wb1ihW0M2YTWK6mpNhxQG/nLfMaG4I=";
rev = "a8b8b0e16c4f5552f5e85af3dec976a5d16af8b9";
hash = "sha256-6eiRiTTPdMBRsxVHIHYuw0sIfRDvP4pZIEyckoo304Q=";
};
meta.homepage = "https://github.com/AbstractMachinesLab/tree-sitter-erlang";
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
};
fennel = buildGrammar {
language = "fennel";
@ -471,12 +471,12 @@
};
glimmer = buildGrammar {
language = "glimmer";
version = "abcc997";
version = "fee3427";
source = fetchFromGitHub {
owner = "alexlafroscia";
repo = "tree-sitter-glimmer";
rev = "abcc9970da0ed0645741bf52ea70232374bc9e52";
hash = "sha256-kkNnyaAXeZJ770Jl4mmOdyXvq6bQd/9Q6eVyr+JV2jY=";
rev = "fee34278dc212869dcfc92fce3007ee79a752867";
hash = "sha256-a3goK+QSkrdsKvimT8vpsJ1bt8FhLf1bws0aqjncv3A=";
};
meta.homepage = "https://github.com/alexlafroscia/tree-sitter-glimmer";
};
@ -493,12 +493,12 @@
};
go = buildGrammar {
language = "go";
version = "e34b8a4";
version = "64457ea";
source = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-go";
rev = "e34b8a418c33bba8bdf3375e8e55903dff7c68b9";
hash = "sha256-Bfp2XsT83x+VPMPB5rHAbSpEkHD7lG0iDq2Yt63Ug8I=";
rev = "64457ea6b73ef5422ed1687178d4545c3e91334a";
hash = "sha256-38pkqR9iEIEf9r3IHJPIYgKfWBlb9aQWi1kij04Vo5k=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-go";
};
@ -1016,12 +1016,12 @@
};
php = buildGrammar {
language = "php";
version = "ab2e721";
version = "b4a8a60";
source = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "ab2e72179ceb8bb0b249c8ac9162a148e911b3dc";
hash = "sha256-Lg4gEi6bCYosakr2McmgOwGHsmsVSjD+oyG6XNTd0j0=";
rev = "b4a8a6048d66fcda4e8e4988bd0d9095980e303a";
hash = "sha256-Pm0FuY34eMhX4K7pbYpNAY1WYBOO+9cFCx/j992fsg8=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
@ -1082,12 +1082,12 @@
};
python = buildGrammar {
language = "python";
version = "b14614e";
version = "9e53981";
source = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-python";
rev = "b14614e2144b8f9ee54deed5a24f3c6f51f9ffa8";
hash = "sha256-4TDEK3v7hqinisXtAi/iJL0rUKqII07oVg/Jz3IV2yA=";
rev = "9e53981ec31b789ee26162ea335de71f02186003";
hash = "sha256-D2++Xg7dRfjGM2r4cxaXGQnBOAX5JBREcEAJeNa7Y9M=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
};
@ -1291,12 +1291,12 @@
};
sql = buildGrammar {
language = "sql";
version = "54b363b";
version = "a4dd131";
source = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "54b363b87c22787f9dcfabb5d8aa221cb65ace42";
hash = "sha256-ku4t3IyPNIIXVt3RvUoCG+TUbe62m7EFtXLUiAPb+pQ=";
rev = "a4dd131eeb9fe7f3c9c2ca0f506f6d58d9986a97";
hash = "sha256-Z1x1XPecXt3a4mL40Fyt5+1wrD+0L3Hh9aWjI0vIhIc=";
};
generate = true;
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
@ -1336,12 +1336,12 @@
};
swift = buildGrammar {
language = "swift";
version = "cff1c9a";
version = "4443b12";
source = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "cff1c9a62df89e8900d53ff48bc42862e6522dcf";
hash = "sha256-tfpqnutY8uLzhPWPsDzsvwaRWOS8vIxAOPlcyPoSwNU=";
rev = "4443b125240d7ae7e50d35d8415fae5be61bdaf2";
hash = "sha256-Hym56WVG5QIic+pd6Hvae5ETM6UNaTo4Sr9mTUVFt0Q=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";

View File

@ -1260,6 +1260,10 @@ self: super: {
dependencies = with self; [ vimproc-vim ];
});
vim-zettel = super.vim-zettel.overrideAttrs (old: {
dependencies = with self; [ vimwiki fzf-vim ];
});
YankRing-vim = super.YankRing-vim.overrideAttrs (old: {
sourceRoot = ".";
});

View File

@ -1088,6 +1088,7 @@ https://github.com/lyokha/vim-xkbswitch/,,
https://github.com/mg979/vim-xtabline/,,
https://github.com/stephpy/vim-yaml/,,
https://github.com/mindriot101/vim-yapf/,,
https://github.com/michal-h21/vim-zettel/,HEAD,
https://github.com/dag/vim2hs/,,
https://github.com/dominikduda/vim_current_word/,,
https://github.com/andrep/vimacs/,,

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

@ -6,7 +6,6 @@
, clang
, cmake
, desktop-file-utils
, gio-sharp
, glib
, gstreamer
, gtk4
@ -24,20 +23,20 @@
stdenv.mkDerivation rec {
pname = "rnote";
version = "0.5.7";
version = "0.5.9";
src = fetchFromGitHub {
owner = "flxzt";
repo = "rnote";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-w4y+t8idcaNwvC2Wp9SRjcd4m23Zt+yHG2fjOA2rBU8=";
hash = "sha256-Sy8EHl4UuDMwRAKDkl7njD9GSzKpy1Cfsgw53On+nxo=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-Hybbbokru4vz5ly3oZuNGdBa+lYbhdYjESUpRxIUqJc=";
hash = "sha256-Pe4lNcvJNELAitaGY56EUJ8iN7Dkh8DoUpA/t+aRuqk=";
};
nativeBuildInputs = [
@ -60,7 +59,6 @@ stdenv.mkDerivation rec {
buildInputs = [
alsa-lib
gio-sharp
glib
gstreamer
gtk4
@ -81,6 +79,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://github.com/flxzt/rnote";
changelog = "https://github.com/flxzt/rnote/releases/tag/${src.rev}";
description = "Simple drawing application to create handwritten notes";
license = licenses.gpl3Only;
maintainers = with maintainers; [ dotlambda yrd ];

View File

@ -18,4 +18,7 @@ stdenv.mkDerivation {
mkdir -p $out/Applications
cp -r *.app $out/Applications
'';
# 1Password is notarized.
dontFixup = true;
}

View File

@ -7,7 +7,6 @@
, glib
, gtk3
, libnotify
, scandir ? null
}:
python3Packages.buildPythonApplication rec {
@ -37,7 +36,6 @@ python3Packages.buildPythonApplication rec {
chardet
pygobject3
requests
scandir
];
# Patch the many hardcoded uses of /usr/share/ and /usr/bin

View File

@ -14,55 +14,31 @@
, gtk4
, gtksourceview5
, libadwaita
, steam
, cabextract
, p7zip
, xdpyinfo
, imagemagick
, lsb-release
, pciutils
, procps
, gamescope
, mangohud
, vkbasalt-cli
, vmtouch
, wine
, bottlesExtraLibraries ? pkgs: [ ] # extra packages to add to steam.run multiPkgs
, bottlesExtraPkgs ? pkgs: [ ] # extra packages to add to steam.run targetPkgs
}:
let
steam-run = (steam.override {
# required by wine runner `caffe`
extraLibraries = pkgs: with pkgs; [ libunwind libusb1 gnutls ]
++ bottlesExtraLibraries pkgs;
extraPkgs = pkgs: [ ]
++ bottlesExtraPkgs pkgs;
}).run;
in
python3Packages.buildPythonApplication rec {
pname = "bottles";
version = "2022.10.14.1";
pname = "bottles-unwrapped";
version = "2022.11.14";
src = fetchFromGitHub {
owner = "bottlesdevs";
repo = pname;
repo = "bottles";
rev = version;
sha256 = "sha256-FO91GSGlc2f3TSLrlmRDPi5p933/Y16tdEpX4RcKhL0=";
sha256 = "sha256-bigrJtqx9iZURYojwxlGe7xSGWS13wSaGcrTTROP9J8=";
};
patches = [ ./vulkan_icd.patch ];
postPatch = ''
chmod +x build-aux/meson/postinstall.py
patchShebangs build-aux/meson/postinstall.py
substituteInPlace bottles/backend/wine/winecommand.py \
--replace \
"command = f\"{runner} {command}\"" \
"command = f\"{''' if runner == 'wine' or runner == 'wine64' else '${steam-run}/bin/steam-run '}{runner} {command}\"" \
--replace \
"command = f\"{_picked['entry_point']} {command}\"" \
"command = f\"${steam-run}/bin/steam-run {_picked['entry_point']} {command}\""
'';
nativeBuildInputs = [
blueprint-compiler
meson
@ -101,12 +77,16 @@ python3Packages.buildPythonApplication rec {
p7zip
xdpyinfo
imagemagick
procps
vkbasalt-cli
gamescope
mangohud
vmtouch
wine
# Undocumented (subprocess.Popen())
lsb-release
pciutils
procps
];
format = "other";

View File

@ -0,0 +1,101 @@
{ lib
, buildFHSUserEnvBubblewrap
, symlinkJoin
, bottles-unwrapped
, extraPkgs ? pkgs: [ ]
, extraLibraries ? pkgs: [ ]
}:
let fhsEnv = {
targetPkgs = pkgs: with pkgs; [
bottles-unwrapped
vkbasalt
] ++ extraPkgs pkgs;
multiPkgs =
let
xorgDeps = pkgs: with pkgs.xorg; [
libpthreadstubs
libSM
libX11
libXaw
libxcb
libXcomposite
libXcursor
libXdmcp
libXext
libXi
libXinerama
libXmu
libXrandr
libXrender
libXv
libXxf86vm
];
in
pkgs: with pkgs; [
# https://wiki.winehq.org/Building_Wine
alsa-lib
cups
dbus
fontconfig
freetype
glib
gnutls
libglvnd
gsm
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
libgphoto2
libjpeg_turbo
libkrb5
libpcap
libpng
libpulseaudio
libtiff
libunwind
libusb1
libv4l
libxml2
mpg123
ocl-icd
openldap
samba4
sane-backends
SDL2
udev
vulkan-loader
# https://www.gloriouseggroll.tv/how-to-get-out-of-wine-dependency-hell/
alsa-plugins
dosbox
giflib
gtk3
libva
libxslt
ncurses
openal
# Steam runtime
libgcrypt
libgpg-error
p11-kit
zlib # Freetype
] ++ xorgDeps pkgs
++ extraLibraries pkgs;
};
in
symlinkJoin {
name = "bottles";
paths = [
(buildFHSUserEnvBubblewrap (fhsEnv // { name = "bottles"; runScript = "bottles"; }))
(buildFHSUserEnvBubblewrap (fhsEnv // { name = "bottles-cli"; runScript = "bottles-cli"; }))
];
postBuild = ''
mkdir -p $out/share
ln -s ${bottles-unwrapped}/share/applications $out/share
ln -s ${bottles-unwrapped}/share/icons $out/share
'';
inherit (bottles-unwrapped) meta;
}

View File

@ -1,13 +1,15 @@
diff --git a/bottles/backend/utils/vulkan.py b/bottles/backend/utils/vulkan.py
index 6673493..07f70d1 100644
index 6673493..9191004 100644
--- a/bottles/backend/utils/vulkan.py
+++ b/bottles/backend/utils/vulkan.py
@@ -29,6 +29,8 @@ class VulkanUtils:
@@ -28,7 +28,9 @@ class VulkanUtils:
"/usr/share/vulkan",
"/etc/vulkan",
"/usr/local/share/vulkan",
"/usr/local/etc/vulkan"
+ "/run/opengl-driver/share/vulkan/",
+ "/run/opengl-driver-32/share/vulkan/",
- "/usr/local/etc/vulkan"
+ "/usr/local/etc/vulkan",
+ "/run/opengl-driver/share/vulkan",
+ "/run/opengl-driver-32/share/vulkan",
]
if "FLATPAK_ID" in os.environ:
__vk_icd_dirs += [

View File

@ -18,7 +18,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "metadata-cleaner";
version = "2.2.7";
version = "2.2.8";
format = "other";
@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "rmnvgr";
repo = pname;
rev = "v${version}";
hash = "sha256-Kqvnw0cPPkqgJQdc6vkP4U96AQuyFSNMQTzTdIUghWw=";
hash = "sha256-646jGcgcEbhHk3PWdkKHWLVX8bNIB3BmYVMoXaGxHUw=";
};
nativeBuildInputs = [

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "luakit";
version = "2.3.1";
version = "2.3.3";
src = fetchFromGitHub {
owner = "luakit";
repo = pname;
rev = version;
hash = "sha256-6baN3e5ZJ8hw6mhQ0AapyVIYFSdmXcfo45ReQNliIPw=";
hash = "sha256-DtoixcLq+ddbacTAo+Qq6q4k1i6thirACw1zqUeOxXo=";
};
nativeBuildInputs = [

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

@ -112,13 +112,13 @@
"vendorHash": null
},
"aws": {
"hash": "sha256-g38aJ8JN/0PZ0ArSti1/5nzflIlkz/qhn5Qz4yXCie8=",
"hash": "sha256-5eqUaO8XRPh2wkltGu7D3GToNAq1zSpQ1LS/h0W/CQA=",
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
"owner": "hashicorp",
"repo": "terraform-provider-aws",
"rev": "v4.45.0",
"rev": "v4.46.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-C3wr/3huORBacbe0+Z0qqH+iSaJCxQwLq9wqLSirDiM="
"vendorHash": "sha256-xo9Z50jK8dWxQ8DeGLjB8ppnGuUmGlQLhzRHpKs8hYg="
},
"azuread": {
"hash": "sha256-itaFeOEnoTIJfACvJZCIe9RWNVgewdVFZzXUK7yGglQ=",
@ -167,13 +167,13 @@
"vendorHash": null
},
"bitbucket": {
"hash": "sha256-eU8vA2fxtdsObgh2dTExGLzzBnfSc2DSGdFHrLXR3SA=",
"hash": "sha256-tT5JSiUPeezQFn4tnKrsUxfm/llaBk8R2eOGqGIbEH4=",
"homepage": "https://registry.terraform.io/providers/DrFaust92/bitbucket",
"owner": "DrFaust92",
"repo": "terraform-provider-bitbucket",
"rev": "v2.22.0",
"rev": "v2.23.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Qkla3OEcyiMn6eqBj+4LB8JwpIwceLAASI1qvOcUBD0="
"vendorHash": "sha256-CFRZSdQnbhV7n10r2R1+cGxn7nKD+GvXWf85rYFRPVI="
},
"brightbox": {
"hash": "sha256-F/AQq45ADM0+PbFpMPtpMvbYw8F41GDBzk7LoY/L/Qg=",
@ -861,13 +861,13 @@
"vendorHash": "sha256-hHwFm+gSMjN4YQEFd/dd50G0uZsxzqi21tHDf4mPBLY="
},
"opentelekomcloud": {
"hash": "sha256-H1X+wWxdP7MwUtUaQiw0usOO6jwAAVLYMoG5Ut2OcqM=",
"hash": "sha256-vmsnpu4FThMY0OfCAj0DnI4fpOwVGvJXpQ3u+kAieFc=",
"homepage": "https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud",
"owner": "opentelekomcloud",
"repo": "terraform-provider-opentelekomcloud",
"rev": "v1.31.9",
"rev": "v1.32.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-n7Ez596JnRwsKYPuR8lCLo6ez/TFch2kMgoScg7pPUI="
"vendorHash": "sha256-TCeAqQLdeCS3NPDAppinRv4qBPBWtG/qAUKc+4acqEE="
},
"opsgenie": {
"hash": "sha256-6lbJyBppfRqqmYpPgyzUTvnvHPSWjE3SJULqliZ2iUI=",
@ -1232,11 +1232,11 @@
"vendorHash": "sha256-160GDEQfymeCJpjYOoWP5sGQ0PJHw9kKPaefmbF5Ig4="
},
"vultr": {
"hash": "sha256-6NiVW6kqUCeit6Dc9GbP4mV03UJkqo+UwHsDE4xMwzQ=",
"hash": "sha256-DfiJgN1R7qW3c13hBabsMizY3mYamIq8AGms1q9kdVU=",
"homepage": "https://registry.terraform.io/providers/vultr/vultr",
"owner": "vultr",
"repo": "terraform-provider-vultr",
"rev": "v2.11.4",
"rev": "v2.12.0",
"spdx": "MPL-2.0",
"vendorHash": 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

@ -2,7 +2,7 @@
let
versions = if stdenv.isLinux then {
stable = "0.0.21";
ptb = "0.0.35";
ptb = "0.0.38";
canary = "0.0.144";
} else {
stable = "0.0.264";
@ -18,7 +18,7 @@ let
};
ptb = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
sha256 = "bnp5wfcR21s7LMPxFgj5G3UsxPWlFj4t6CbeosiufHY=";
sha256 = "bPg7ZNQQxEpRSpp8j5/XLBDEJyId8mDGxS6tqkzzI1s=";
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";

View File

@ -26,7 +26,7 @@
mkDerivation rec {
pname = "nextcloud-client";
version = "3.6.2";
version = "3.6.4";
outputs = [ "out" "dev" ];
@ -34,7 +34,7 @@ mkDerivation rec {
owner = "nextcloud";
repo = "desktop";
rev = "v${version}";
sha256 = "sha256-eTcQrbYYY+V87i6PuIEWCFczIqL8oxtdojPY/mZpJBU=";
sha256 = "sha256-ZtDgm9xlBQflVXsxjt4bFmRby6ni0wjaGYaoiEWH9Q0=";
};
patches = [
@ -82,6 +82,7 @@ mkDerivation rec {
];
cmakeFlags = [
"-DBUILD_UPDATER=off"
"-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH
"-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
];

View File

@ -6,14 +6,14 @@
python3Packages.buildPythonApplication rec {
pname = "zeronet-conservancy";
version = "0.7.8";
version = "0.7.8.1";
format = "other";
src = fetchFromGitHub {
owner = "zeronet-conservancy";
repo = "zeronet-conservancy";
rev = "v${version}";
sha256 = "sha256-U61cQzZfEKCrnk/80yEwh8rh+VojXsvrAQV0ckFqM/4=";
sha256 = "sha256-+wZiwUy5bmW8+3h4SuvNN8I6mCIPOlOeFmiXlMu12OU=";
};
propagatedBuildInputs = with python3Packages; [

View File

@ -1,28 +1,18 @@
{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit, fetchpatch }:
{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit }:
stdenv.mkDerivation rec {
pname = "pjsip";
version = "2.12.1";
version = "2.13";
src = fetchFromGitHub {
owner = pname;
repo = "pjproject";
rev = version;
sha256 = "sha256-HIDL4xzzTu3irzrIOf8qSNCAvHGOMpi8EDeqZb8mMnc=";
sha256 = "sha256-yzszmm3uIyXtYFgZtUP3iswLx4u/8UbFt80Ln25ToFE=";
};
patches = [
./fix-aarch64.patch
(fetchpatch {
name = "CVE-2022-39269.patch";
url = "https://github.com/pjsip/pjproject/commit/d2acb9af4e27b5ba75d658690406cec9c274c5cc.patch";
sha256 = "sha256-bKE/MrRAqN1FqD2ubhxIOOf5MgvZluHHeVXPjbR12iQ=";
})
(fetchpatch {
name = "CVE-2022-39244.patch";
url = "https://github.com/pjsip/pjproject/commit/c4d34984ec92b3d5252a7d5cddd85a1d3a8001ae.patch";
sha256 = "sha256-hTUMh6bYAizn6GF+sRV1vjKVxSf9pnI+eQdPOqsdJI4=";
})
];
buildInputs = [ openssl libsamplerate ]

View File

@ -156,7 +156,7 @@ stdenv.mkDerivation rec {
WITH_X11 = true;
};
NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin [
NIX_CFLAGS_COMPILE = lib.optionals stdenv.isDarwin [
"-DTARGET_OS_IPHONE=0"
"-DTARGET_OS_WATCH=0"
"-include AudioToolbox/AudioToolbox.h"

View File

@ -71,25 +71,27 @@ stdenv.mkDerivation rec {
] ++ lib.optionals withNetworkManager [
networkmanager
glib
] ++ lib.optional withSensors [
] ++ lib.optionals withSensors [
lm_sensors
];
propagatedBuildInputs = [
] ++ lib.optional withPython (python3.withPackages (ps: [
ps.numpy
ps.protobuf
ps.pyserial
ps.setuptools
ps.websockets
]));
] ++ lib.optionals withPython [
(python3.withPackages (ps: [
ps.numpy
ps.protobuf
ps.pyserial
ps.setuptools
ps.websockets
]))
];
configureFlags = [
] ++ lib.optional (!withNetworkManager) [
] ++ lib.optionals (!withNetworkManager) [
"--disable-libnm"
] ++ lib.optional (!withPython) [
] ++ lib.optionals (!withPython) [
"--disable-python-tools"
] ++ lib.optional (!withSensors) [
] ++ lib.optionals (!withSensors) [
"--disable-lmsensors"
];

View File

@ -1,35 +1,35 @@
{ stdenv,
lib,
fetchzip,
autoPatchelfHook,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
gtk3,
openssl,
xdg-user-dirs,
keybinder3
{ stdenv
, lib
, fetchzip
, autoPatchelfHook
, makeWrapper
, copyDesktopItems
, makeDesktopItem
, gtk3
, openssl
, xdg-user-dirs
, keybinder3
}:
stdenv.mkDerivation rec {
pname = "appflowy";
version = "0.0.6.2";
version = "0.0.8";
src = fetchzip {
url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-linux-x86.tar.gz";
sha256 = "sha256-LOrXGFctAaiz2z9M8ghrXsQ+qygwNPyYragmL/EjlDQ=";
sha256 = "sha256-+nizRA42c0ZzuN8D/puh0TFLnRJVgyAujcTmJZ1UVzo=";
};
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
copyDesktopItems
autoPatchelfHook
makeWrapper
copyDesktopItems
];
buildInputs = [
gtk3
openssl
keybinder3
gtk3
openssl
keybinder3
];
dontBuild = true;
@ -47,15 +47,11 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
preFixup = let
binPath = lib.makeBinPath [
xdg-user-dirs
];
in ''
preFixup = ''
# Add missing libraries to appflowy using the ones it comes with
makeWrapper $out/opt/app_flowy $out/bin/appflowy \
--set LD_LIBRARY_PATH "$out/opt/lib/" \
--prefix PATH : "${binPath}"
--set LD_LIBRARY_PATH "$out/opt/lib/" \
--prefix PATH : "${lib.makeBinPath [ xdg-user-dirs ]}"
'';
desktopItems = [

View File

@ -119,7 +119,7 @@ let
flatten flip
concatMapStrings concatStringsSep
getDev getLib
optional optionals optionalString;
optionals optionalString;
jre' = jre17_minimal.override {
modules = [ "java.base" "java.desktop" "java.logging" "java.sql" ];
@ -195,7 +195,7 @@ in
tar -xf ${srcs.translations}
'';
patches = optional (variant == "still") [ ./skip-failed-test-with-icu70.patch ./gpgme-1.18.patch ]
patches = optionals (variant == "still") [ ./skip-failed-test-with-icu70.patch ./gpgme-1.18.patch ]
;
### QT/KDE

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

@ -2,17 +2,17 @@
buildGoModule rec {
pname = "git-bug";
version = "0.7.2"; # the `rev` below pins the version of the source to get
rev = "cc4a93c8ce931b1390c61035b888ad17110b7bd6";
version = "0.8.0"; # the `rev` below pins the version of the source to get
rev = "v0.8.0";
src = fetchFromGitHub {
inherit rev;
owner = "MichaelMure";
repo = "git-bug";
sha256 = "0r6wh0y1fj3d3fbbrzq5n9k6z94xvwqww3xfbslkgyrin5bmziiq";
sha256 = "12byf6nsamwz0ssigan1z299s01cyh8bhgj86bibl90agd4zs9n8";
};
vendorSha256 = "15hhsrwwjc4krfc2d0r15lys3vr9rb9xk62pan4jr9ycbv0dny90";
vendorSha256 = "sha256-32kNDoBE50Jx1Ef9YwhDk7nd3CaTSnHPlu7PgWPUGfE=";
doCheck = false;
@ -23,9 +23,14 @@ buildGoModule rec {
];
postInstall = ''
install -D -m 0644 misc/bash_completion/git-bug "$out/share/bash-completion/completions/git-bug"
install -D -m 0644 misc/zsh_completion/git-bug "$out/share/zsh/site-functions/git-bug"
install -D -m 0644 misc/completion/bash/git-bug "$out/share/bash-completion/completions/git-bug"
install -D -m 0644 misc/completion/zsh/git-bug "$out/share/zsh/site-functions/git-bug"
install -D -m 0644 -t "$out/share/man/man1" doc/man/*
# not sure why the following executables are in $out/bin/
rm -f $out/bin/cmd
rm -f $out/bin/completion
rm -f $out/bin/doc
'';
meta = with lib; {

View File

@ -0,0 +1,56 @@
{ fetchurl
, google-chrome
, lib
, makeDesktopItem
, runtimeShell
, symlinkJoin
, writeScriptBin
}:
let
name = "netflix-via-google-chrome";
meta = {
description = "Open Netflix in Google Chrome app mode";
longDescription = ''
Netflix is a video streaming service providing films, TV series and exclusive content. See https://www.netflix.com.
This package installs an application launcher item that opens Netflix in a dedicated Google Chrome window. If your preferred browser doesn't support Netflix's DRM, this package provides a quick and easy way to launch Netflix on a supported browser, without polluting your application list with a redundant, single-purpose browser.
'';
homepage = google-chrome.meta.homepage or null;
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.roberth ];
platforms = google-chrome.meta.platforms or lib.platforms.all;
};
desktopItem = makeDesktopItem {
inherit name;
# Executing by name as opposed to store path is conventional and prevents
# copies of the desktop file from bitrotting too much.
# (e.g. a copy in ~/.config/autostart, you lazy lazy bastard ;) )
exec = name;
icon = fetchurl {
name = "netflix-icon-2016.png";
url = "https://assets.nflxext.com/us/ffe/siteui/common/icons/nficon2016.png";
sha256 = "sha256-c0H3uLCuPA2krqVZ78MfC1PZ253SkWZP3PfWGP2V7Yo=";
meta.license = lib.licenses.unfree;
};
desktopName = "Netflix via Google Chrome";
genericName = "A video streaming service providing films and exclusive TV series";
categories = [ "TV" "AudioVideo" "Network" ];
startupNotify = true;
};
script = writeScriptBin name ''
#!${runtimeShell}
exec ${google-chrome}/bin/${google-chrome.meta.mainProgram} \
--app=https://netflix.com \
--no-first-run --no-default-browser-check --no-crash-upload
'';
in
symlinkJoin {
inherit name meta;
paths = [ script desktopItem ];
}

View File

@ -48,7 +48,7 @@ rec {
};
buildInputs = oldAttrs.buildInputs
++ lib.optional withSeccomp [ libseccomp ];
++ lib.optionals withSeccomp [ libseccomp ];
});
docker-tini = tini.overrideAttrs (oldAttrs: {

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,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "aws-c-mqtt";
version = "0.8.0";
version = "0.8.1";
src = fetchFromGitHub {
owner = "awslabs";
repo = "aws-c-mqtt";
rev = "v${version}";
sha256 = "sha256-+Ah3D+cgGfunX46Fqv6NSNAOzVwrRdZz6oJKP+tHCmU=";
sha256 = "sha256-nmSNG5o2Ck80OG4ZGYIayVdnw3Z2fn1VkUIuI9RYfL8=";
};
nativeBuildInputs = [

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

@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
};
};
NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin [
NIX_CFLAGS_COMPILE = lib.optionals stdenv.isDarwin [
"-DTARGET_OS_IPHONE=0"
"-DTARGET_OS_WATCH=0"
];

View File

@ -1,12 +1,115 @@
{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool
, python3, perl, gmpxx, mpfr, boost, eigen, gfortran, cmake
{ lib
, stdenv
, fetchFromGitHub
, autoconf
, automake
, libtool
, python3
, perl
, gmpxx
, mpfr
, boost
, eigen
, gfortran
, cmake
, enableFMA ? stdenv.hostPlatform.fmaSupport
, enableFortran ? true
, enableSSE ? (!enableFortran) && stdenv.hostPlatform.isx86_64
# Maximum angular momentum of basis functions
# 7 is required for def2/J auxiliary basis on 3d metals upwards
, maxAm ? 7
# ERI derivative order for 4-, 3- and 2-centre ERIs.
# 2nd derivatives are defaults and allow gradients Hessians with density fitting
# Setting them to zero disables derivatives.
, eriDeriv ? 2
, eri3Deriv ? 2
, eri2Deriv ? 2
# Angular momentum for derivatives of ERIs. Takes a list of length $DERIV_ORD+1.
# Starting from index 0, each index i specifies the supported angular momentum
# for the derivative order i, e.g. [6,5,4] supports ERIs for l=6, their first
# derivatives for l=5 and their second derivatives for l=4.
, eriAm ? (builtins.genList (i: maxAm - 1 - i) (eriDeriv + 1))
, eri3Am ? (builtins.genList (i: maxAm - i) (eri2Deriv + 1))
, eri2Am ? (builtins.genList (i: maxAm - i) (eri2Deriv + 1))
# Same as above for optimised code. Higher optimisations take a long time.
, eriOptAm ? (builtins.genList (i: maxAm - 3 - i) (eriDeriv + 1))
, eri3OptAm ? (builtins.genList (i: maxAm - 3 - i) (eri2Deriv + 1))
, eri2OptAm ? (builtins.genList (i: maxAm - 3 - i) (eri2Deriv + 1))
# One-Electron integrals of all kinds including multipole integrals.
# Libint does not build them and their derivatives by default.
, enableOneBody ? false
, oneBodyDerivOrd ? 2
, multipoleOrd ? 4 # Maximum order of multipole integrals, 4=octopoles
# Whether to enable generic code if angular momentum is unsupported
, enableGeneric ? true
# Support integrals over contracted Gaussian
, enableContracted ? true
# Spherical harmonics/Cartesian orbital conventions
, cartGaussOrd ? "standard" # Ordering of Cartesian basis functions, "standard" is CCA
, shGaussOrd ? "standard" # Ordering of spherical harmonic basis functions. "standard" is -l to +l, "guassian" is 0, 1, -1, 2, -2, ...
, shellSet ? "standard"
, eri3PureSh ? false # Transformation of 3-centre ERIs into spherical harmonics
, eri2PureSh ? false # Transformation of 2-centre ERIs into spherical harmonics
}:
# Check that Fortran bindings are not used together with SIMD real type
assert (if enableFortran then !enableSSE else true);
# Check that a possible angular momentum for basis functions is used
assert (maxAm >= 1 && maxAm <= 8);
# Check for valid derivative order in ERIs
assert (eriDeriv >= 0 && eriDeriv <= 4);
assert (eri2Deriv >= 0 && eri2Deriv <= 4);
assert (eri3Deriv >= 0 && eri3Deriv <= 4);
# Ensure valid arguments for generated angular momenta in ERI derivatives are used.
assert (
builtins.length eriAm == eriDeriv + 1 &&
builtins.foldl' (a: b: a && b) true (builtins.map (a: a <= maxAm && a >= 0) eriAm)
);
assert (
builtins.length eri3Am == eriDeriv + 1 &&
builtins.foldl' (a: b: a && b) true (builtins.map (a: a <= maxAm && a >= 0) eri3Am)
);
assert (
builtins.length eri2Am == eriDeriv + 1 &&
builtins.foldl' (a: b: a && b) true (builtins.map (a: a <= maxAm && a >= 0) eri2Am)
);
# Ensure valid arguments for generated angular momenta in optimised ERI derivatives are used.
assert (
builtins.length eriOptAm == eriDeriv + 1 &&
builtins.foldl' (a: b: a && b) true (builtins.map (a: a <= maxAm && a >= 0) eriOptAm)
);
assert (
builtins.length eri3OptAm == eriDeriv + 1 &&
builtins.foldl' (a: b: a && b) true (builtins.map (a: a <= maxAm && a >= 0) eri3OptAm)
);
assert (
builtins.length eri2OptAm == eriDeriv + 1 &&
builtins.foldl' (a: b: a && b) true (builtins.map (a: a <= maxAm && a >= 0) eri2OptAm)
);
# Ensure a valid derivative order for one-electron integrals
assert (oneBodyDerivOrd >= 0 && oneBodyDerivOrd <= 4);
# Check that valid basis shell orders are used, see https://github.com/evaleev/libint/wiki
assert (builtins.elem cartGaussOrd [ "standard" "intv3" "gamess" "orca" "bagel" ]);
assert (builtins.elem shGaussOrd [ "standard" "gaussian" ]);
assert (builtins.elem shellSet [ "standard" "orca" ]);
let
pname = "libint";
version = "2.7.1";
version = "2.7.2";
meta = with lib; {
description = "Library for the evaluation of molecular integrals of many-body operators over Gaussian functions";
@ -23,7 +126,7 @@ let
owner = "evaleev";
repo = pname;
rev = "v${version}";
sha256 = "5nSeyT1DhFsA76Dt3dqYfhfBYD+iTl34O3lVeH6+OVw=";
hash = "sha256-lX+DVnhdOb8d7MX9umf33y88CNiGb3TYYlMZtQXfx+8=";
};
# Replace hardcoded "/bin/rm" with normal "rm"
@ -52,23 +155,36 @@ let
buildInputs = [ boost eigen ];
preConfigure = "./autogen.sh";
configureFlags = with lib; [
"--with-max-am=${builtins.toString maxAm}"
"--with-eri-max-am=${concatStringsSep "," (builtins.map builtins.toString eriAm)}"
"--with-eri3-max-am=${concatStringsSep "," (builtins.map builtins.toString eri3Am)}"
"--with-eri2-max-am=${concatStringsSep "," (builtins.map builtins.toString eri2Am)}"
"--with-eri-opt-am=${concatStringsSep "," (builtins.map builtins.toString eriOptAm)}"
"--with-eri3-opt-am=${concatStringsSep "," (builtins.map builtins.toString eri3OptAm)}"
"--with-eri2-opt-am=${concatStringsSep "," (builtins.map builtins.toString eri2OptAm)}"
"--with-cartgauss-ordering=${cartGaussOrd}"
"--with-shgauss-ordering=${shGaussOrd}"
"--with-shell-set=${shellSet}"
]
++ optional enableFMA "--enable-fma"
++ optional (eriDeriv > 0) "--enable-eri=${builtins.toString eriDeriv}"
++ optional (eri2Deriv > 0) "--enable-eri2=${builtins.toString eri2Deriv}"
++ optional (eri3Deriv > 0) "--enable-eri3=${builtins.toString eri3Deriv}"
++ lists.optionals enableOneBody [
"--enable-1body=${builtins.toString oneBodyDerivOrd}"
"--enable-1body-property-derivs"
]
++ optional (multipoleOrd > 0) "--with-multipole-max-order=${builtins.toString multipoleOrd}"
++ optional enableGeneric "--enable-generic"
++ optional enableContracted "--enable-contracted-ints"
++ optional eri3PureSh "--enable-eri3-pure-sh"
++ optional eri2PureSh "--enable-eri2-pure-sh"
;
configureFlags = [
"--enable-eri=2"
"--enable-eri3=2"
"--enable-eri2=2"
"--with-eri-max-am=7,5,4"
"--with-eri-opt-am=3"
"--with-eri3-max-am=7"
"--with-eri2-max-am=7"
"--with-g12-max-am=5"
"--with-g12-opt-am=3"
"--with-g12dkh-max-am=5"
"--with-g12dkh-opt-am=3"
"--enable-contracted-ints"
"--enable-shared"
] ++ lib.optional enableFMA "--enable-fma";
preConfigure = ''
./autogen.sh
'';
makeFlags = [ "export" ];
@ -98,11 +214,9 @@ let
# AVX support is advertised, but does not work in 2.6 (possibly in 2.7).
# Fortran interface is incompatible with changing the LIBINT2_REALTYPE.
cmakeFlags = [
(if enableFortran
then "-DENABLE_FORTRAN=ON"
else "-DLIBINT2_REALTYPE=libint2::simd::VectorSSEDouble"
)
];
"-DLIBINT2_SHGAUSS_ORDERING=${shGaussOrd}"
] ++ lib.optional enableFortran "-DENABLE_FORTRAN=ON"
++ lib.optional enableSSE "-DLIBINT2_REALTYPE=libint2::simd::VectorSSEDouble";
# Can only build in the source-tree. A lot of preprocessing magic fails otherwise.
dontUseCmakeBuildDir = true;
@ -110,4 +224,5 @@ let
inherit meta;
};
in codeComp
in
codeComp

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "proj";
version = "9.1.0";
version = "9.1.1";
src = fetchFromGitHub {
owner = "OSGeo";
repo = "PROJ";
rev = version;
hash = "sha256-Upsp72RorV+5PFPHOK3zCJgVTRZ6fSVVFRope8Bp8/M=";
hash = "sha256-yw7eSm64qFFt9egJWKVyVo0e7xQRSmfUY7pk6Cwvwdk=";
};
patches = [

View File

@ -30,7 +30,11 @@ stdenv.mkDerivation rec {
"-DCBLAS=ON"
"-DBUILD_TESTING=ON"
] ++ lib.optional shared "-DBUILD_SHARED_LIBS=ON"
++ lib.optional blas64 "-DBUILD_INDEX64=ON";
++ lib.optional blas64 "-DBUILD_INDEX64=ON"
# Tries to run host platform binaries during the build
# Will likely be disabled by default in 3.12, see:
# https://github.com/Reference-LAPACK/lapack/issues/757
++ lib.optional (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) "-DTEST_FORTRAN_COMPILER=OFF";
passthru = { inherit blas64; };

View File

@ -1,16 +1,18 @@
{ pkgs, lib, ... }:
{ stdenv, lib, cmake, qt4, fetchzip }:
pkgs.stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "smokegen";
version = "v4.14.3";
src = pkgs.fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
version = "4.14.3";
src = fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz";
hash = "sha256-finsoruPeJZLawIjNUJ25Pq54eaCByfALVraNQJPk7c=";
};
buildInputs = [ pkgs.cmake pkgs.qt4 ];
buildPhase = ''
cmake .
'';
strictDeps = true;
nativeBuildInputs = [ cmake qt4 ];
buildInputs = [ qt4 ];
meta = with lib; {
description = "A general purpose C++ parser with a plugin infrastructure";
homepage = "https://invent.kde.org/unmaintained/smokegen";

View File

@ -1,16 +1,22 @@
{ pkgs, lib, ... }:
{ stdenv, lib, cmake, qt4, smokegen, fetchzip }:
pkgs.stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
pname = "smokeqt";
version = "v4.14.3";
src = pkgs.fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
version = "4.14.3";
src = fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz";
hash = "sha256-8FiEGF8gduVw5I/bi2wExGUWmjIjYEhWpjpXKJGBNMg=";
};
strictDeps = true;
nativeBuildInputs = [ cmake smokegen ];
buildInputs = [ qt4 ];
cmakeFlags = [
"-DCMAKE_CXX_STANDARD=98"
];
buildInputs = [ pkgs.cmake pkgs.qt4 pkgs.smokegen ];
meta = with lib; {
description = "Bindings for the Qt libraries";
homepage = "https://invent.kde.org/unmaintained/smokeqt";

View File

@ -7,13 +7,13 @@
buildDunePackage rec {
pname = "carton";
version = "0.4.4";
version = "0.6.0";
minimalOCamlVersion = "4.08";
src = fetchurl {
url = "https://github.com/mirage/ocaml-git/releases/download/${pname}-v${version}/git-${pname}-v${version}.tbz";
sha256 = "sha256-7mgCgu87Cn4XhjEhonlz9lhgTw0Cu5hnxNJ1wXr+Qhw=";
sha256 = "sha256-NAm4Xq7L0Dgynr8cKZQ356M4GR6D19LbCRxvnSlIf1U=";
};
# remove changelogs for mimic and the git* packages

View File

@ -1,6 +1,6 @@
{ buildDunePackage, carton, carton-lwt
, bigarray-compat, bigstringaf, lwt, fpath, result
, mmap, fmt, decompress, astring
, bigstringaf, lwt, fpath, result
, fmt, decompress, astring
, alcotest, alcotest-lwt, cstruct, logs
, mirage-flow, rresult, ke
}:
@ -13,12 +13,10 @@ buildDunePackage {
propagatedBuildInputs = [
carton
carton-lwt
bigarray-compat
bigstringaf
lwt
fpath
result
mmap
fmt
decompress
astring

View File

@ -1,8 +1,8 @@
{ buildDunePackage, carton
, lwt, decompress, optint, bigstringaf
, alcotest, alcotest-lwt, cstruct, fmt, logs
, mirage-flow, result, rresult, bigarray-compat
, ke, base64, bos, checkseum, digestif, fpath, mmap
, mirage-flow, result, rresult
, ke, base64, bos, checkseum, digestif, fpath
, stdlib-shims
, git-binary # pkgs.git
}:
@ -31,14 +31,12 @@ buildDunePackage {
mirage-flow
result
rresult
bigarray-compat
ke
base64
bos
checkseum
digestif
fpath
mmap
stdlib-shims
];

View File

@ -13,7 +13,6 @@
, rresult
, tls
, uri
, bigarray-compat
, bigstringaf
, domain-name
, httpaf
@ -43,7 +42,6 @@ buildDunePackage {
mirage-time
tls
uri
bigarray-compat
bigstringaf
domain-name
httpaf

View File

@ -26,7 +26,7 @@ buildDunePackage rec {
};
propagatedBuildInputs = [ zed lwt_log lwt_react mew_vi ]
++ lib.optional (lib.versionAtLeast version "3.3.1") [ uucp logs ] ;
++ lib.optionals (lib.versionAtLeast version "3.3.1") [ uucp logs ] ;
meta = {
description = "Terminal manipulation library for OCaml";

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

@ -7,14 +7,14 @@
buildPythonPackage rec {
pname = "aliyun-python-sdk-cdn";
version = "3.7.8";
version = "3.7.9";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-alZBTwrImneGNXRWCJy/EhDKWT3/sy4j6BB5fOML8ZA=";
hash = "sha256-EdHsg/e9ANj191MVpFHJ1omMDwFx77BDrK7S+WxzUTI=";
};
propagatedBuildInputs = [

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

@ -32,7 +32,7 @@ buildPythonPackage rec {
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [
cryptography jinja2 Mako passlib pyyaml requests tomlkit librouteros
] ++ lib.optional (pythonOlder "3.11") [ rtoml ];
] ++ lib.optionals (pythonOlder "3.11") [ rtoml ];
pythonImportsCheck = [ "bundlewrap" ];

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

@ -2,13 +2,16 @@
, lib
, fetchPypi
, buildPythonPackage
, isPy3k
, python
, pythonOlder
}:
buildPythonPackage rec {
pname = "docutils";
version = "0.19";
disabled = pythonOlder "3.7";
format = "setuptools";
src = fetchPypi {
@ -18,7 +21,7 @@ buildPythonPackage rec {
# Only Darwin needs LANG, but we could set it in general.
# It's done here conditionally to prevent mass-rebuilds.
checkPhase = lib.optionalString (isPy3k && stdenv.isDarwin) ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + ''
checkPhase = lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + ''
${python.interpreter} test/alltests.py
'';

View File

@ -5,7 +5,6 @@
, setuptools
, six
, appdirs
, scandir ? null
, backports_os ? null
, typing ? null
, pytz
@ -36,7 +35,6 @@ buildPythonPackage rec {
propagatedBuildInputs = [ six appdirs pytz setuptools ]
++ lib.optionals (!isPy3k) [ backports_os ]
++ lib.optionals (!pythonAtLeast "3.6") [ typing ]
++ lib.optionals (!pythonAtLeast "3.5") [ scandir ]
++ lib.optionals (!pythonAtLeast "3.5") [ enum34 ];
LC_ALL="en_US.utf-8";

View File

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "intellifire4py";
version = "2.2.1";
version = "2.2.2";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -21,8 +21,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "jeeftor";
repo = pname;
rev = version;
hash = "sha256-dn5814eRZ9456Fn7blf1UzXPii4dXu3sjoXBV7CmwSs=";
rev = "refs/tags/${version}";
hash = "sha256-iqlKfpnETLqQwy5sNcK2x/TgmuN2hCfYoHEFK2WWVXI=";
};
propagatedBuildInputs = [
@ -50,6 +50,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Module to read Intellifire fireplace status data";
homepage = "https://github.com/jeeftor/intellifire4py";
changelog = "https://github.com/jeeftor/intellifire4py/blob/${version}/CHANGELOG";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};

View File

@ -40,7 +40,7 @@ buildPythonPackage rec {
babel
jupyter_server
tomli
] ++ lib.optional (pythonOlder "3.10") [
] ++ lib.optionals (pythonOlder "3.10") [
importlib-metadata
];

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

@ -9,11 +9,11 @@
buildPythonPackage rec {
pname = "marisa-trie";
version = "0.7.7";
version = "0.7.8";
src = fetchPypi {
inherit pname version;
sha256 = "bbeafb7d92839dc221365340e79d012cb50ee48a1f3f30dd916eb35a8b93db00";
sha256 = "sha256-ruPeXyg2B0z9gD8crxb2g5DyYu8JzX3H0Oiu6baHhkM=";
};
nativeBuildInputs = [

View File

@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "md-toc";
version = "8.1.5";
version = "8.1.6";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "frnmst";
repo = pname;
rev = version;
hash = "sha256-jt2ZZV63s7LL0R9ay/tvMH3cIDElYXiNPBuHlxj/Z8E=";
hash = "sha256-Wtb2xHBj6RYVfUkPmRMxUti7UBj1PVh9ZCDienYX4Bw=";
};
propagatedBuildInputs = [
@ -41,6 +41,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Table of contents generator for Markdown";
homepage = "https://docs.franco.net.eu.org/md-toc/";
changelog = "https://blog.franco.net.eu.org/software/CHANGELOG-md-toc.html";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ fab ];
};

View File

@ -4,15 +4,19 @@
, mecab
, swig
, setuptools-scm
, pythonOlder
}:
buildPythonPackage rec {
pname = "mecab-python3";
version = "1.0.5";
version = "1.0.6";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-5wPXjIimcau4FwNRZEhQAV2bv6sxUwo7QNEkgaZ3mhE=";
hash = "sha256-FvOKzkhAIL00RqEAVIKWeMHnuX8XQLWLAKMdWVz/Al4=";
};
nativeBuildInputs = [
@ -21,13 +25,20 @@ buildPythonPackage rec {
setuptools-scm
];
buildInputs = [ mecab ];
buildInputs = [
mecab
];
doCheck = false;
pythonImportsCheck = [
"MeCab"
];
meta = with lib; {
description = "A python wrapper for mecab: Morphological Analysis engine";
homepage = "https://github.com/SamuraiT/mecab-python3";
changelog = "https://github.com/SamuraiT/mecab-python3/releases/tag/v${version}";
license = with licenses; [ gpl2 lgpl21 bsd3 ]; # any of the three
maintainers = with maintainers; [ ixxie ];
};

Some files were not shown because too many files have changed in this diff Show More