Merge staging-next into staging
This commit is contained in:
commit
974a40b58e
@ -21,6 +21,7 @@ let
|
|||||||
{ name = "filesystem"; description = "filesystem functions"; }
|
{ name = "filesystem"; description = "filesystem functions"; }
|
||||||
{ name = "sources"; description = "source filtering functions"; }
|
{ name = "sources"; description = "source filtering functions"; }
|
||||||
{ name = "cli"; description = "command-line serialization functions"; }
|
{ name = "cli"; description = "command-line serialization functions"; }
|
||||||
|
{ name = "gvariant"; description = "GVariant formatted string serialization functions"; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ let
|
|||||||
|
|
||||||
# serialization
|
# serialization
|
||||||
cli = callLibs ./cli.nix;
|
cli = callLibs ./cli.nix;
|
||||||
|
gvariant = callLibs ./gvariant.nix;
|
||||||
generators = callLibs ./generators.nix;
|
generators = callLibs ./generators.nix;
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
|
@ -230,6 +230,14 @@ rec {
|
|||||||
in
|
in
|
||||||
toINI_ (gitFlattenAttrs attrs);
|
toINI_ (gitFlattenAttrs attrs);
|
||||||
|
|
||||||
|
# mkKeyValueDefault wrapper that handles dconf INI quirks.
|
||||||
|
# The main differences of the format is that it requires strings to be quoted.
|
||||||
|
mkDconfKeyValue = mkKeyValueDefault { mkValueString = v: toString (lib.gvariant.mkValue v); } "=";
|
||||||
|
|
||||||
|
# Generates INI in dconf keyfile style. See https://help.gnome.org/admin/system-admin-guide/stable/dconf-keyfiles.html.en
|
||||||
|
# for details.
|
||||||
|
toDconfINI = toINI { mkKeyValue = mkDconfKeyValue; };
|
||||||
|
|
||||||
/* Generates JSON from an arbitrary (non-function) value.
|
/* Generates JSON from an arbitrary (non-function) value.
|
||||||
* For more information see the documentation of the builtin.
|
* For more information see the documentation of the builtin.
|
||||||
*/
|
*/
|
||||||
|
290
lib/gvariant.nix
Normal file
290
lib/gvariant.nix
Normal file
@ -0,0 +1,290 @@
|
|||||||
|
# This file is based on https://github.com/nix-community/home-manager
|
||||||
|
# Copyright (c) 2017-2022 Home Manager contributors
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
{ lib }:
|
||||||
|
|
||||||
|
/* A partial and basic implementation of GVariant formatted strings.
|
||||||
|
See https://docs.gtk.org/glib/gvariant-format-strings.html for detauls.
|
||||||
|
|
||||||
|
Note, this API is not considered fully stable and it might therefore
|
||||||
|
change in backwards incompatible ways without prior notice.
|
||||||
|
*/
|
||||||
|
let
|
||||||
|
inherit (lib)
|
||||||
|
concatMapStringsSep concatStrings escape head replaceStrings;
|
||||||
|
|
||||||
|
mkPrimitive = t: v: {
|
||||||
|
_type = "gvariant";
|
||||||
|
type = t;
|
||||||
|
value = v;
|
||||||
|
__toString = self: "@${self.type} ${toString self.value}"; # https://docs.gtk.org/glib/gvariant-text.html
|
||||||
|
};
|
||||||
|
|
||||||
|
type = {
|
||||||
|
arrayOf = t: "a${t}";
|
||||||
|
maybeOf = t: "m${t}";
|
||||||
|
tupleOf = ts: "(${concatStrings ts})";
|
||||||
|
dictionaryEntryOf = nameType: valueType: "{${nameType}${valueType}}";
|
||||||
|
string = "s";
|
||||||
|
boolean = "b";
|
||||||
|
uchar = "y";
|
||||||
|
int16 = "n";
|
||||||
|
uint16 = "q";
|
||||||
|
int32 = "i";
|
||||||
|
uint32 = "u";
|
||||||
|
int64 = "x";
|
||||||
|
uint64 = "t";
|
||||||
|
double = "d";
|
||||||
|
variant = "v";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Check if a value is a GVariant value
|
||||||
|
|
||||||
|
Type:
|
||||||
|
isGVariant :: Any -> Bool
|
||||||
|
*/
|
||||||
|
isGVariant = v: v._type or "" == "gvariant";
|
||||||
|
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
|
||||||
|
inherit type isGVariant;
|
||||||
|
|
||||||
|
/* Returns the GVariant value that most closely matches the given Nix value.
|
||||||
|
If no GVariant value can be found unambiguously then error is thrown.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkValue :: Any -> gvariant
|
||||||
|
*/
|
||||||
|
mkValue = v:
|
||||||
|
if builtins.isBool v then
|
||||||
|
mkBoolean v
|
||||||
|
else if builtins.isFloat v then
|
||||||
|
mkDouble v
|
||||||
|
else if builtins.isString v then
|
||||||
|
mkString v
|
||||||
|
else if builtins.isList v then
|
||||||
|
mkArray v
|
||||||
|
else if isGVariant v then
|
||||||
|
v
|
||||||
|
else
|
||||||
|
throw "The GVariant type of ${v} can't be inferred.";
|
||||||
|
|
||||||
|
/* Returns the GVariant array from the given type of the elements and a Nix list.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkArray :: [Any] -> gvariant
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Creating a string array
|
||||||
|
lib.gvariant.mkArray [ "a" "b" "c" ]
|
||||||
|
*/
|
||||||
|
mkArray = elems:
|
||||||
|
let
|
||||||
|
vs = map mkValue (lib.throwIf (elems == [ ]) "Please create empty array with mkEmptyArray." elems);
|
||||||
|
elemType = lib.throwIfNot (lib.all (t: (head vs).type == t) (map (v: v.type) vs))
|
||||||
|
"Elements in a list should have same type."
|
||||||
|
(head vs).type;
|
||||||
|
in
|
||||||
|
mkPrimitive (type.arrayOf elemType) vs // {
|
||||||
|
__toString = self:
|
||||||
|
"@${self.type} [${concatMapStringsSep "," toString self.value}]";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant array from the given empty Nix list.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkEmptyArray :: gvariant.type -> gvariant
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Creating an empty string array
|
||||||
|
lib.gvariant.mkEmptyArray (lib.gvariant.type.string)
|
||||||
|
*/
|
||||||
|
mkEmptyArray = elemType: mkPrimitive (type.arrayOf elemType) [ ] // {
|
||||||
|
__toString = self: "@${self.type} []";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Returns the GVariant variant from the given Nix value. Variants are containers
|
||||||
|
of different GVariant type.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkVariant :: Any -> gvariant
|
||||||
|
|
||||||
|
Example:
|
||||||
|
lib.gvariant.mkArray [
|
||||||
|
(lib.gvariant.mkVariant "a string")
|
||||||
|
(lib.gvariant.mkVariant (lib.gvariant.mkInt32 1))
|
||||||
|
]
|
||||||
|
*/
|
||||||
|
mkVariant = elem:
|
||||||
|
let gvarElem = mkValue elem;
|
||||||
|
in mkPrimitive type.variant gvarElem // {
|
||||||
|
__toString = self: "<${toString self.value}>";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant dictionary entry from the given key and value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkDictionaryEntry :: String -> Any -> gvariant
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# A dictionary describing an Epiphany’s search provider
|
||||||
|
[
|
||||||
|
(lib.gvariant.mkDictionaryEntry "url" (lib.gvariant.mkVariant "https://duckduckgo.com/?q=%s&t=epiphany"))
|
||||||
|
(lib.gvariant.mkDictionaryEntry "bang" (lib.gvariant.mkVariant "!d"))
|
||||||
|
(lib.gvariant.mkDictionaryEntry "name" (lib.gvariant.mkVariant "DuckDuckGo"))
|
||||||
|
]
|
||||||
|
*/
|
||||||
|
mkDictionaryEntry =
|
||||||
|
# The key of the entry
|
||||||
|
name:
|
||||||
|
# The value of the entry
|
||||||
|
value:
|
||||||
|
let
|
||||||
|
name' = mkValue name;
|
||||||
|
value' = mkValue value;
|
||||||
|
dictionaryType = type.dictionaryEntryOf name'.type value'.type;
|
||||||
|
in
|
||||||
|
mkPrimitive dictionaryType { inherit name value; } // {
|
||||||
|
__toString = self: "@${self.type} {${name'},${value'}}";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant maybe from the given element type.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkMaybe :: gvariant.type -> Any -> gvariant
|
||||||
|
*/
|
||||||
|
mkMaybe = elemType: elem:
|
||||||
|
mkPrimitive (type.maybeOf elemType) elem // {
|
||||||
|
__toString = self:
|
||||||
|
if self.value == null then
|
||||||
|
"@${self.type} nothing"
|
||||||
|
else
|
||||||
|
"just ${toString self.value}";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant nothing from the given element type.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkNothing :: gvariant.type -> gvariant
|
||||||
|
*/
|
||||||
|
mkNothing = elemType: mkMaybe elemType null;
|
||||||
|
|
||||||
|
/* Returns the GVariant just from the given Nix value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkJust :: Any -> gvariant
|
||||||
|
*/
|
||||||
|
mkJust = elem: let gvarElem = mkValue elem; in mkMaybe gvarElem.type gvarElem;
|
||||||
|
|
||||||
|
/* Returns the GVariant tuple from the given Nix list.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkTuple :: [Any] -> gvariant
|
||||||
|
*/
|
||||||
|
mkTuple = elems:
|
||||||
|
let
|
||||||
|
gvarElems = map mkValue elems;
|
||||||
|
tupleType = type.tupleOf (map (e: e.type) gvarElems);
|
||||||
|
in
|
||||||
|
mkPrimitive tupleType gvarElems // {
|
||||||
|
__toString = self:
|
||||||
|
"@${self.type} (${concatMapStringsSep "," toString self.value})";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant boolean from the given Nix bool value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkBoolean :: Bool -> gvariant
|
||||||
|
*/
|
||||||
|
mkBoolean = v:
|
||||||
|
mkPrimitive type.boolean v // {
|
||||||
|
__toString = self: if self.value then "true" else "false";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant string from the given Nix string value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkString :: String -> gvariant
|
||||||
|
*/
|
||||||
|
mkString = v:
|
||||||
|
let sanitize = s: replaceStrings [ "\n" ] [ "\\n" ] (escape [ "'" "\\" ] s);
|
||||||
|
in mkPrimitive type.string v // {
|
||||||
|
__toString = self: "'${sanitize self.value}'";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant object path from the given Nix string value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkObjectpath :: String -> gvariant
|
||||||
|
*/
|
||||||
|
mkObjectpath = v:
|
||||||
|
mkPrimitive type.string v // {
|
||||||
|
__toString = self: "objectpath '${escape [ "'" ] self.value}'";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant uchar from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkUchar :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkUchar = mkPrimitive type.uchar;
|
||||||
|
|
||||||
|
/* Returns the GVariant int16 from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkInt16 :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkInt16 = mkPrimitive type.int16;
|
||||||
|
|
||||||
|
/* Returns the GVariant uint16 from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkUint16 :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkUint16 = mkPrimitive type.uint16;
|
||||||
|
|
||||||
|
/* Returns the GVariant int32 from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkInt32 :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkInt32 = v:
|
||||||
|
mkPrimitive type.int32 v // {
|
||||||
|
__toString = self: toString self.value;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns the GVariant uint32 from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkUint32 :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkUint32 = mkPrimitive type.uint32;
|
||||||
|
|
||||||
|
/* Returns the GVariant int64 from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkInt64 :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkInt64 = mkPrimitive type.int64;
|
||||||
|
|
||||||
|
/* Returns the GVariant uint64 from the given Nix int value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkUint64 :: Int -> gvariant
|
||||||
|
*/
|
||||||
|
mkUint64 = mkPrimitive type.uint64;
|
||||||
|
|
||||||
|
/* Returns the GVariant double from the given Nix float value.
|
||||||
|
|
||||||
|
Type:
|
||||||
|
mkDouble :: Float -> gvariant
|
||||||
|
*/
|
||||||
|
mkDouble = v:
|
||||||
|
mkPrimitive type.double v // {
|
||||||
|
__toString = self: toString self.value;
|
||||||
|
};
|
||||||
|
}
|
93
lib/tests/modules/gvariant.nix
Normal file
93
lib/tests/modules/gvariant.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
let inherit (lib) concatStringsSep mapAttrsToList mkMerge mkOption types gvariant;
|
||||||
|
in {
|
||||||
|
options.examples = mkOption { type = types.attrsOf gvariant; };
|
||||||
|
|
||||||
|
config = {
|
||||||
|
examples = with gvariant;
|
||||||
|
mkMerge [
|
||||||
|
{ bool = true; }
|
||||||
|
{ bool = true; }
|
||||||
|
|
||||||
|
{ float = 3.14; }
|
||||||
|
|
||||||
|
{ int32 = mkInt32 (- 42); }
|
||||||
|
{ int32 = mkInt32 (- 42); }
|
||||||
|
|
||||||
|
{ uint32 = mkUint32 42; }
|
||||||
|
{ uint32 = mkUint32 42; }
|
||||||
|
|
||||||
|
{ int16 = mkInt16 (-42); }
|
||||||
|
{ int16 = mkInt16 (-42); }
|
||||||
|
|
||||||
|
{ uint16 = mkUint16 42; }
|
||||||
|
{ uint16 = mkUint16 42; }
|
||||||
|
|
||||||
|
{ int64 = mkInt64 (-42); }
|
||||||
|
{ int64 = mkInt64 (-42); }
|
||||||
|
|
||||||
|
{ uint64 = mkUint64 42; }
|
||||||
|
{ uint64 = mkUint64 42; }
|
||||||
|
|
||||||
|
{ array1 = [ "one" ]; }
|
||||||
|
{ array1 = mkArray [ "two" ]; }
|
||||||
|
{ array2 = mkArray [ (mkInt32 1) ]; }
|
||||||
|
{ array2 = mkArray [ (nkUint32 2) ]; }
|
||||||
|
|
||||||
|
{ emptyArray1 = [ ]; }
|
||||||
|
{ emptyArray2 = mkEmptyArray type.uint32; }
|
||||||
|
|
||||||
|
{ string = "foo"; }
|
||||||
|
{ string = "foo"; }
|
||||||
|
{
|
||||||
|
escapedString = ''
|
||||||
|
'\
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
|
{ tuple = mkTuple [ (mkInt32 1) [ "foo" ] ]; }
|
||||||
|
|
||||||
|
{ maybe1 = mkNothing type.string; }
|
||||||
|
{ maybe2 = mkJust (mkUint32 4); }
|
||||||
|
|
||||||
|
{ variant1 = mkVariant "foo"; }
|
||||||
|
{ variant2 = mkVariant 42; }
|
||||||
|
|
||||||
|
{ dictionaryEntry = mkDictionaryEntry (mkInt32 1) [ "foo" ]; }
|
||||||
|
];
|
||||||
|
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = (
|
||||||
|
let
|
||||||
|
mkLine = n: v: "${n} = ${toString (gvariant.mkValue v)}";
|
||||||
|
result = concatStringsSep "\n" (mapAttrsToList mkLine config.examples);
|
||||||
|
in
|
||||||
|
result + "\n"
|
||||||
|
) == ''
|
||||||
|
array1 = @as ['one','two']
|
||||||
|
array2 = @au [1,2]
|
||||||
|
bool = true
|
||||||
|
dictionaryEntry = @{ias} {1,@as ['foo']}
|
||||||
|
emptyArray1 = @as []
|
||||||
|
emptyArray2 = @au []
|
||||||
|
escapedString = '\'\\\n'
|
||||||
|
float = 3.140000
|
||||||
|
int = -42
|
||||||
|
int16 = @n -42
|
||||||
|
int64 = @x -42
|
||||||
|
maybe1 = @ms nothing
|
||||||
|
maybe2 = just @u 4
|
||||||
|
string = 'foo'
|
||||||
|
tuple = @(ias) (1,@as ['foo'])
|
||||||
|
uint16 = @q 42
|
||||||
|
uint32 = @u 42
|
||||||
|
uint64 = @t 42
|
||||||
|
variant1 = @v <'foo'>
|
||||||
|
variant2 = @v <42>
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -13888,6 +13888,16 @@
|
|||||||
githubId = 33375;
|
githubId = 33375;
|
||||||
name = "Peter Sanford";
|
name = "Peter Sanford";
|
||||||
};
|
};
|
||||||
|
pschmitt = {
|
||||||
|
email = "philipp@schmitt.co";
|
||||||
|
github = "pschmitt";
|
||||||
|
githubId = 37886;
|
||||||
|
name = "Philipp Schmitt";
|
||||||
|
matrix = "@pschmitt:one.ems.host";
|
||||||
|
keys = [{
|
||||||
|
fingerprint = "9FBF 2ABF FB37 F7F3 F502 44E5 DC43 9C47 EACB 17F9";
|
||||||
|
}];
|
||||||
|
};
|
||||||
pshirshov = {
|
pshirshov = {
|
||||||
email = "pshirshov@eml.cc";
|
email = "pshirshov@eml.cc";
|
||||||
github = "pshirshov";
|
github = "pshirshov";
|
||||||
@ -18631,6 +18641,12 @@
|
|||||||
github = "XYenon";
|
github = "XYenon";
|
||||||
githubId = 20698483;
|
githubId = 20698483;
|
||||||
};
|
};
|
||||||
|
xyven1 = {
|
||||||
|
name = "Xyven";
|
||||||
|
email = "nix@xyven.dev";
|
||||||
|
github = "xyven1";
|
||||||
|
githubId = 35360746;
|
||||||
|
};
|
||||||
xzfc = {
|
xzfc = {
|
||||||
email = "xzfcpw@gmail.com";
|
email = "xzfcpw@gmail.com";
|
||||||
github = "xzfc";
|
github = "xzfc";
|
||||||
|
@ -1,55 +1,217 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.programs.dconf;
|
cfg = config.programs.dconf;
|
||||||
cfgDir = pkgs.symlinkJoin {
|
|
||||||
name = "dconf-system-config";
|
# Compile keyfiles to dconf DB
|
||||||
paths = map (x: "${x}/etc/dconf") cfg.packages;
|
compileDconfDb = dir: pkgs.runCommand "dconf-db"
|
||||||
postBuild = ''
|
{
|
||||||
mkdir -p $out/profile
|
nativeBuildInputs = [ (lib.getBin pkgs.dconf) ];
|
||||||
mkdir -p $out/db
|
} "dconf compile $out ${dir}";
|
||||||
'' + (
|
|
||||||
concatStringsSep "\n" (
|
# Check if dconf keyfiles are valid
|
||||||
mapAttrsToList (
|
checkDconfKeyfiles = dir: pkgs.runCommand "check-dconf-keyfiles"
|
||||||
name: path: ''
|
{
|
||||||
ln -s ${path} $out/profile/${name}
|
nativeBuildInputs = [ (lib.getBin pkgs.dconf) ];
|
||||||
''
|
} ''
|
||||||
) cfg.profiles
|
if [[ -f ${dir} ]]; then
|
||||||
|
echo "dconf keyfiles should be a directory but a file is provided: ${dir}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dconf compile db ${dir} || (
|
||||||
|
echo "The dconf keyfiles are invalid: ${dir}"
|
||||||
|
exit 1
|
||||||
)
|
)
|
||||||
) + ''
|
cp -R ${dir} $out
|
||||||
${pkgs.dconf}/bin/dconf update $out/db
|
'';
|
||||||
|
|
||||||
|
mkAllLocks = settings: lib.flatten (
|
||||||
|
lib.mapAttrsToList (k: v: lib.mapAttrsToList (k': _: "/${k}/${k'}") v) settings);
|
||||||
|
|
||||||
|
# Generate dconf DB from dconfDatabase and keyfiles
|
||||||
|
mkDconfDb = val: compileDconfDb (pkgs.symlinkJoin {
|
||||||
|
name = "nixos-generated-dconf-keyfiles";
|
||||||
|
paths = [
|
||||||
|
(pkgs.writeTextDir "nixos-generated-dconf-keyfiles" (lib.generators.toDconfINI val.settings))
|
||||||
|
(pkgs.writeTextDir "locks/nixos-generated-dconf-locks" (lib.concatStringsSep "\n"
|
||||||
|
(if val.lockAll then mkAllLocks val.settings else val.locks)
|
||||||
|
))
|
||||||
|
] ++ (map checkDconfKeyfiles val.keyfiles);
|
||||||
|
});
|
||||||
|
|
||||||
|
# Check if a dconf DB file is valid. The dconf cli doesn't return 1 when it can't
|
||||||
|
# open the database file so we have to check if the output is empty.
|
||||||
|
checkDconfDb = file: pkgs.runCommand "check-dconf-db"
|
||||||
|
{
|
||||||
|
nativeBuildInputs = [ (lib.getBin pkgs.dconf) ];
|
||||||
|
} ''
|
||||||
|
if [[ -d ${file} ]]; then
|
||||||
|
echo "dconf DB should be a file but a directory is provided: ${file}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "file-db:${file}" > profile
|
||||||
|
DCONF_PROFILE=$(pwd)/profile dconf dump / > output 2> error
|
||||||
|
if [[ ! -s output ]] && [[ -s error ]]; then
|
||||||
|
cat error
|
||||||
|
echo "The dconf DB file is invalid: ${file}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp ${file} $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Generate dconf profile
|
||||||
|
mkDconfProfile = name: value:
|
||||||
|
if lib.isDerivation value || lib.isPath value then
|
||||||
|
pkgs.runCommand "dconf-profile" { } ''
|
||||||
|
if [[ -d ${value} ]]; then
|
||||||
|
echo "Dconf profile should be a file but a directory is provided."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mkdir -p $out/etc/dconf/profile/
|
||||||
|
cp ${value} $out/etc/dconf/profile/${name}
|
||||||
|
''
|
||||||
|
else
|
||||||
|
pkgs.writeTextDir "etc/dconf/profile/${name}" (
|
||||||
|
lib.concatMapStrings (x: "${x}\n") ((
|
||||||
|
lib.optional value.enableUserDb "user-db:user"
|
||||||
|
) ++ (
|
||||||
|
map
|
||||||
|
(value:
|
||||||
|
let
|
||||||
|
db = if lib.isAttrs value && !lib.isDerivation value then mkDconfDb value else checkDconfDb value;
|
||||||
|
in
|
||||||
|
"file-db:${db}")
|
||||||
|
value.databases
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
dconfDatabase = with lib.types; submodule {
|
||||||
|
options = {
|
||||||
|
keyfiles = lib.mkOption {
|
||||||
|
type = listOf (oneOf [ path package ]);
|
||||||
|
default = [ ];
|
||||||
|
description = lib.mdDoc "A list of dconf keyfile directories.";
|
||||||
|
};
|
||||||
|
settings = lib.mkOption {
|
||||||
|
type = attrs;
|
||||||
|
default = { };
|
||||||
|
description = lib.mdDoc "An attrset used to generate dconf keyfile.";
|
||||||
|
example = literalExpression ''
|
||||||
|
with lib.gvariant;
|
||||||
|
{
|
||||||
|
"com/raggesilver/BlackBox" = {
|
||||||
|
scrollback-lines = mkUint32 10000;
|
||||||
|
theme-dark = "Tommorow Night";
|
||||||
|
};
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
locks = lib.mkOption {
|
||||||
{
|
type = with lib.types; listOf str;
|
||||||
###### interface
|
default = [ ];
|
||||||
|
description = lib.mdDoc ''
|
||||||
options = {
|
A list of dconf keys to be lockdown. This doesn't take effect if `lockAll`
|
||||||
programs.dconf = {
|
is set.
|
||||||
enable = mkEnableOption (lib.mdDoc "dconf");
|
'';
|
||||||
|
example = literalExpression ''
|
||||||
profiles = mkOption {
|
[ "/org/gnome/desktop/background/picture-uri" ]
|
||||||
type = types.attrsOf types.path;
|
'';
|
||||||
default = {};
|
};
|
||||||
description = lib.mdDoc "Set of dconf profile files, installed at {file}`/etc/dconf/profiles/«name»`.";
|
lockAll = lib.mkOption {
|
||||||
internal = true;
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = lib.mdDoc "Lockdown all dconf keys in `settings`.";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = mkOption {
|
dconfProfile = with lib.types; submodule {
|
||||||
type = types.listOf types.package;
|
options = {
|
||||||
|
enableUserDb = lib.mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
|
description = lib.mdDoc "Add `user-db:user` at the beginning of the profile.";
|
||||||
|
};
|
||||||
|
|
||||||
|
databases = lib.mkOption {
|
||||||
|
type = with lib.types; listOf (oneOf [
|
||||||
|
path
|
||||||
|
package
|
||||||
|
dconfDatabase
|
||||||
|
]);
|
||||||
|
default = [ ];
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
List of data sources for the profile. An element can be an attrset,
|
||||||
|
or the path of an already compiled database. Each element is converted
|
||||||
|
to a file-db.
|
||||||
|
|
||||||
|
A key is searched from up to down and the first result takes the
|
||||||
|
priority. If a lock for a particular key is installed then the value from
|
||||||
|
the last database in the profile where the key is locked will be used.
|
||||||
|
This can be used to enforce mandatory settings.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
programs.dconf = {
|
||||||
|
enable = lib.mkEnableOption (lib.mdDoc "dconf");
|
||||||
|
|
||||||
|
profiles = lib.mkOption {
|
||||||
|
type = with lib.types; attrsOf (oneOf [
|
||||||
|
path
|
||||||
|
package
|
||||||
|
dconfProfile
|
||||||
|
]);
|
||||||
|
default = { };
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Attrset of dconf profiles. By default the `user` profile is used which
|
||||||
|
ends up in `/etc/dconf/profile/user`.
|
||||||
|
'';
|
||||||
|
example = lib.literalExpression ''
|
||||||
|
{
|
||||||
|
# A "user" profile with a database
|
||||||
|
user.databases = [
|
||||||
|
{
|
||||||
|
settings = { };
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# A "bar" profile from a package
|
||||||
|
bar = pkgs.bar-dconf-profile;
|
||||||
|
# A "foo" profile from a path
|
||||||
|
foo = ''${./foo}
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
description = lib.mdDoc "A list of packages which provide dconf profiles and databases in {file}`/etc/dconf`.";
|
description = lib.mdDoc "A list of packages which provide dconf profiles and databases in {file}`/etc/dconf`.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
###### implementation
|
config = lib.mkIf (cfg.profiles != { } || cfg.enable) {
|
||||||
|
programs.dconf.packages = lib.mapAttrsToList mkDconfProfile cfg.profiles;
|
||||||
|
|
||||||
config = mkIf (cfg.profiles != {} || cfg.enable) {
|
environment.etc.dconf = lib.mkIf (cfg.packages != [ ]) {
|
||||||
environment.etc.dconf = mkIf (cfg.profiles != {} || cfg.packages != []) {
|
source = pkgs.symlinkJoin {
|
||||||
source = cfgDir;
|
name = "dconf-system-config";
|
||||||
|
paths = map (x: "${x}/etc/dconf") cfg.packages;
|
||||||
|
nativeBuildInputs = [ (lib.getBin pkgs.dconf) ];
|
||||||
|
postBuild = ''
|
||||||
|
if test -d $out/db; then
|
||||||
|
dconf update $out/db
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.dbus.packages = [ pkgs.dconf ];
|
services.dbus.packages = [ pkgs.dconf ];
|
||||||
@ -59,8 +221,9 @@ in
|
|||||||
# For dconf executable
|
# For dconf executable
|
||||||
environment.systemPackages = [ pkgs.dconf ];
|
environment.systemPackages = [ pkgs.dconf ];
|
||||||
|
|
||||||
|
environment.sessionVariables = lib.mkIf cfg.enable {
|
||||||
# Needed for unwrapped applications
|
# Needed for unwrapped applications
|
||||||
environment.sessionVariables.GIO_EXTRA_MODULES = mkIf cfg.enable [ "${pkgs.dconf.lib}/lib/gio/modules" ];
|
GIO_EXTRA_MODULES = [ "${pkgs.dconf.lib}/lib/gio/modules" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -231,40 +231,14 @@ in
|
|||||||
|
|
||||||
systemd.user.services.dbus.wantedBy = [ "default.target" ];
|
systemd.user.services.dbus.wantedBy = [ "default.target" ];
|
||||||
|
|
||||||
programs.dconf.profiles.gdm =
|
programs.dconf.profiles.gdm.databases = lib.optionals (!cfg.gdm.autoSuspend) [{
|
||||||
let
|
settings."org/gnome/settings-daemon/plugins/power" = {
|
||||||
customDconf = pkgs.writeTextFile {
|
sleep-inactive-ac-type = "nothing";
|
||||||
name = "gdm-dconf";
|
sleep-inactive-battery-type = "nothing";
|
||||||
destination = "/dconf/gdm-custom";
|
sleep-inactive-ac-timeout = lib.gvariant.mkInt32 0;
|
||||||
text = ''
|
sleep-inactive-battery-timeout = lib.gvariant.mkInt32 0;
|
||||||
${optionalString (!cfg.gdm.autoSuspend) ''
|
|
||||||
[org/gnome/settings-daemon/plugins/power]
|
|
||||||
sleep-inactive-ac-type='nothing'
|
|
||||||
sleep-inactive-battery-type='nothing'
|
|
||||||
sleep-inactive-ac-timeout=0
|
|
||||||
sleep-inactive-battery-timeout=0
|
|
||||||
''}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
customDconfDb = pkgs.stdenv.mkDerivation {
|
|
||||||
name = "gdm-dconf-db";
|
|
||||||
buildCommand = ''
|
|
||||||
${pkgs.dconf}/bin/dconf compile $out ${customDconf}/dconf
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in pkgs.stdenv.mkDerivation {
|
|
||||||
name = "dconf-gdm-profile";
|
|
||||||
buildCommand = ''
|
|
||||||
# Check that the GDM profile starts with what we expect.
|
|
||||||
if [ $(head -n 1 ${gdm}/share/dconf/profile/gdm) != "user-db:user" ]; then
|
|
||||||
echo "GDM dconf profile changed, please update gdm.nix"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Insert our custom DB behind it.
|
|
||||||
sed '2ifile-db:${customDconfDb}' ${gdm}/share/dconf/profile/gdm > $out
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
}] ++ [ "${gdm}/share/gdm/greeter-dconf-defaults" ];
|
||||||
|
|
||||||
# Use AutomaticLogin if delay is zero, because it's immediate.
|
# Use AutomaticLogin if delay is zero, because it's immediate.
|
||||||
# Otherwise with TimedLogin with zero seconds the prompt is still
|
# Otherwise with TimedLogin with zero seconds the prompt is still
|
||||||
|
@ -210,6 +210,7 @@ in {
|
|||||||
custom-ca = handleTest ./custom-ca.nix {};
|
custom-ca = handleTest ./custom-ca.nix {};
|
||||||
croc = handleTest ./croc.nix {};
|
croc = handleTest ./croc.nix {};
|
||||||
darling = handleTest ./darling.nix {};
|
darling = handleTest ./darling.nix {};
|
||||||
|
dconf = handleTest ./dconf.nix {};
|
||||||
deepin = handleTest ./deepin.nix {};
|
deepin = handleTest ./deepin.nix {};
|
||||||
deluge = handleTest ./deluge.nix {};
|
deluge = handleTest ./deluge.nix {};
|
||||||
dendrite = handleTest ./matrix/dendrite.nix {};
|
dendrite = handleTest ./matrix/dendrite.nix {};
|
||||||
|
34
nixos/tests/dconf.nix
Normal file
34
nixos/tests/dconf.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import ./make-test-python.nix
|
||||||
|
({ lib, ... }:
|
||||||
|
{
|
||||||
|
name = "dconf";
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [
|
||||||
|
linsui
|
||||||
|
];
|
||||||
|
|
||||||
|
nodes.machine = { config, pkgs, lib, ... }: {
|
||||||
|
users.extraUsers.alice = { isNormalUser = true; };
|
||||||
|
programs.dconf = with lib.gvariant; {
|
||||||
|
enable = true;
|
||||||
|
profiles.user.databases = [
|
||||||
|
{
|
||||||
|
settings = {
|
||||||
|
"test/not/locked" = mkInt32 1;
|
||||||
|
"test/is/locked" = "locked";
|
||||||
|
};
|
||||||
|
locks = [
|
||||||
|
"/test/is/locked"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
machine.succeed("test $(dconf read -d /test/not/locked) == 1")
|
||||||
|
machine.succeed("test $(dconf read -d /test/is/locked) == \"'locked'\"")
|
||||||
|
machine.fail("sudo -u alice dbus-run-session -- dconf write /test/is/locked \"@s 'unlocked'\"")
|
||||||
|
machine.succeed("sudo -u alice dbus-run-session -- dconf write /test/not/locked \"@i 2\"")
|
||||||
|
'';
|
||||||
|
})
|
@ -4,12 +4,30 @@
|
|||||||
, pkg-config
|
, pkg-config
|
||||||
, openssl
|
, openssl
|
||||||
, cmake
|
, cmake
|
||||||
|
# deps for audio backends
|
||||||
, alsa-lib
|
, alsa-lib
|
||||||
|
, libpulseaudio
|
||||||
|
, portaudio
|
||||||
|
, libjack2
|
||||||
|
, SDL2
|
||||||
|
, gst_all_1
|
||||||
, dbus
|
, dbus
|
||||||
, fontconfig
|
, fontconfig
|
||||||
, libsixel
|
, libsixel
|
||||||
|
|
||||||
|
# build options
|
||||||
|
, withStreaming ? true
|
||||||
|
, withDaemon ? true
|
||||||
|
, withAudioBackend ? "rodio" # alsa, pulseaudio, rodio, portaudio, jackaudio, rodiojack, sdl
|
||||||
|
, withMediaControl ? true
|
||||||
|
, withLyrics ? true
|
||||||
|
, withImage ? true
|
||||||
|
, withNotify ? true
|
||||||
|
, withSixel ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaudio" "rodio" "portaudio" "jackaudio" "rodiojack" "sdl" "gstreamer" ];
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "spotify-player";
|
pname = "spotify-player";
|
||||||
version = "0.15.0";
|
version = "0.15.0";
|
||||||
@ -30,31 +48,37 @@ rustPlatform.buildRustPackage rec {
|
|||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
openssl
|
openssl
|
||||||
alsa-lib
|
|
||||||
dbus
|
dbus
|
||||||
fontconfig
|
fontconfig
|
||||||
libsixel
|
]
|
||||||
];
|
++ lib.optionals withSixel [ libsixel ]
|
||||||
|
++ lib.optionals (withAudioBackend == "alsa") [ alsa-lib ]
|
||||||
|
++ lib.optionals (withAudioBackend == "pulseaudio") [ libpulseaudio ]
|
||||||
|
++ lib.optionals (withAudioBackend == "rodio") [ alsa-lib ]
|
||||||
|
++ lib.optionals (withAudioBackend == "portaudio") [ portaudio ]
|
||||||
|
++ lib.optionals (withAudioBackend == "jackaudio") [ libjack2 ]
|
||||||
|
++ lib.optionals (withAudioBackend == "rodiojack") [ alsa-lib libjack2 ]
|
||||||
|
++ lib.optionals (withAudioBackend == "sdl") [ SDL2 ]
|
||||||
|
++ lib.optionals (withAudioBackend == "gstreamer") [ gst_all_1.gstreamer gst_all_1.gst-devtools gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
|
||||||
|
|
||||||
buildNoDefaultFeatures = true;
|
buildNoDefaultFeatures = true;
|
||||||
|
|
||||||
buildFeatures = [
|
buildFeatures = [ ]
|
||||||
"rodio-backend"
|
++ lib.optionals (withAudioBackend != "") [ "${withAudioBackend}-backend" ]
|
||||||
"media-control"
|
++ lib.optionals withMediaControl [ "media-control" ]
|
||||||
"image"
|
++ lib.optionals withImage [ "image" ]
|
||||||
"lyric-finder"
|
++ lib.optionals withLyrics [ "lyric-finder" ]
|
||||||
"daemon"
|
++ lib.optionals withDaemon [ "daemon" ]
|
||||||
"notify"
|
++ lib.optionals withNotify [ "notify" ]
|
||||||
"streaming"
|
++ lib.optionals withStreaming [ "streaming" ]
|
||||||
"sixel"
|
++ lib.optionals withSixel [ "sixel" ];
|
||||||
];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
description = "A command driven spotify player";
|
description = "A terminal spotify player that has feature parity with the official client";
|
||||||
homepage = "https://github.com/aome510/spotify-player";
|
homepage = "https://github.com/aome510/spotify-player";
|
||||||
changelog = "https://github.com/aome510/spotify-player/releases/tag/v${version}";
|
changelog = "https://github.com/aome510/spotify-player/releases/tag/v${version}";
|
||||||
mainProgram = "spotify_player";
|
mainProgram = "spotify_player";
|
||||||
license = licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = with maintainers; [ dit7ya ];
|
maintainers = with lib.maintainers; [ dit7ya xyven1 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,11 @@ least specific (the system profile)"
|
|||||||
;;; Extend `load-path' to search for elisp files in subdirectories of all folders in `NIX_PROFILES'.
|
;;; Extend `load-path' to search for elisp files in subdirectories of all folders in `NIX_PROFILES'.
|
||||||
;;; Non-Nix distros have similar logic in /usr/share/emacs/site-lisp/subdirs.el.
|
;;; Non-Nix distros have similar logic in /usr/share/emacs/site-lisp/subdirs.el.
|
||||||
;;; See https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html
|
;;; See https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html
|
||||||
(dolist (profile (nix--profile-paths))
|
(dolist (profile (reverse (nix--profile-paths)))
|
||||||
(let ((default-directory (expand-file-name "share/emacs/site-lisp/" profile)))
|
;; `directory-file-name' is important to add sub dirs to the right place of `load-path'
|
||||||
|
;; see the source code of `normal-top-level-add-to-load-path'
|
||||||
|
(let ((default-directory (directory-file-name
|
||||||
|
(expand-file-name "share/emacs/site-lisp/" profile))))
|
||||||
(when (file-exists-p default-directory)
|
(when (file-exists-p default-directory)
|
||||||
(setq load-path (cons default-directory load-path))
|
(setq load-path (cons default-directory load-path))
|
||||||
(normal-top-level-add-subdirs-to-load-path))))
|
(normal-top-level-add-subdirs-to-load-path))))
|
||||||
@ -37,13 +40,19 @@ least specific (the system profile)"
|
|||||||
(mapconcat 'identity new-env-list ":"))))))
|
(mapconcat 'identity new-env-list ":"))))))
|
||||||
|
|
||||||
;;; Set up native-comp load path.
|
;;; Set up native-comp load path.
|
||||||
(when (featurep 'comp)
|
(when (featurep 'native-compile)
|
||||||
;; Append native-comp subdirectories from `NIX_PROFILES'.
|
;; Append native-comp subdirectories from `NIX_PROFILES'.
|
||||||
|
;; Emacs writes asynchronous native-compilation files to the first writable directory[1].
|
||||||
|
;; At this time, (car native-comp-eln-load-path) is a writable one in `user-emacs-directory'[2].
|
||||||
|
;; So we keep that one unchanged.
|
||||||
|
;; [1]: info "(elisp) Native-Compilation Variables"
|
||||||
|
;; [2]: https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/startup.el?id=3685387e609753293c4518be75e77c659c3b2d8d#n601
|
||||||
(setq native-comp-eln-load-path
|
(setq native-comp-eln-load-path
|
||||||
(append (mapcar (lambda (profile-dir)
|
(append (list (car native-comp-eln-load-path))
|
||||||
|
(mapcar (lambda (profile-dir)
|
||||||
(concat profile-dir "/share/emacs/native-lisp/"))
|
(concat profile-dir "/share/emacs/native-lisp/"))
|
||||||
(nix--profile-paths))
|
(nix--profile-paths))
|
||||||
native-comp-eln-load-path)))
|
(cdr native-comp-eln-load-path))))
|
||||||
|
|
||||||
;;; Make `woman' find the man pages
|
;;; Make `woman' find the man pages
|
||||||
(defvar woman-manpath)
|
(defvar woman-manpath)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{ mkDerivation, lib
|
{ mkDerivation, lib
|
||||||
, extra-cmake-modules, ki18n
|
, extra-cmake-modules, ki18n
|
||||||
, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kiconthemes, kcmutils
|
, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kiconthemes, kirigami-addons
|
||||||
, kio, knotifications, plasma-framework, kwidgetsaddons, kwindowsystem
|
, kcmutils, kio, knotifications, plasma-framework, kwidgetsaddons
|
||||||
, kitemmodels, kitemviews, lcms2, libXrandr, qtx11extras
|
, kwindowsystem, kitemmodels, kitemviews, lcms2, libXrandr, qtx11extras
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
@ -11,7 +11,7 @@ mkDerivation {
|
|||||||
nativeBuildInputs = [ extra-cmake-modules ];
|
nativeBuildInputs = [ extra-cmake-modules ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
kconfig kconfigwidgets kcoreaddons kdbusaddons kiconthemes
|
kconfig kconfigwidgets kcoreaddons kdbusaddons kiconthemes kirigami-addons
|
||||||
kcmutils ki18n kio knotifications plasma-framework kwidgetsaddons
|
kcmutils ki18n kio knotifications plasma-framework kwidgetsaddons
|
||||||
kwindowsystem kitemmodels kitemviews lcms2 libXrandr qtx11extras
|
kwindowsystem kitemmodels kitemviews lcms2 libXrandr qtx11extras
|
||||||
];
|
];
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
activesupport (7.0.4.3)
|
activesupport (7.0.7.2)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (>= 1.6, < 2)
|
i18n (>= 1.6, < 2)
|
||||||
minitest (>= 5.1)
|
minitest (>= 5.1)
|
||||||
tzinfo (~> 2.0)
|
tzinfo (~> 2.0)
|
||||||
addressable (2.8.4)
|
addressable (2.8.5)
|
||||||
public_suffix (>= 2.0.2, < 6.0)
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
colorize (0.8.1)
|
colorize (0.8.1)
|
||||||
concurrent-ruby (1.2.2)
|
concurrent-ruby (1.2.2)
|
||||||
domain_name (0.5.20190701)
|
domain_name (0.5.20190701)
|
||||||
unf (>= 0.0.5, < 1.0.0)
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
ejson (1.3.1)
|
ejson (1.4.1)
|
||||||
faraday (2.7.4)
|
faraday (2.7.10)
|
||||||
faraday-net_http (>= 2.0, < 3.1)
|
faraday-net_http (>= 2.0, < 3.1)
|
||||||
ruby2_keywords (>= 0.0.4)
|
ruby2_keywords (>= 0.0.4)
|
||||||
faraday-net_http (3.0.2)
|
faraday-net_http (3.0.2)
|
||||||
@ -21,7 +21,7 @@ GEM
|
|||||||
ffi-compiler (1.0.1)
|
ffi-compiler (1.0.1)
|
||||||
ffi (>= 1.0.0)
|
ffi (>= 1.0.0)
|
||||||
rake
|
rake
|
||||||
googleauth (1.5.2)
|
googleauth (1.7.0)
|
||||||
faraday (>= 0.17.3, < 3.a)
|
faraday (>= 0.17.3, < 3.a)
|
||||||
jwt (>= 1.4, < 3.0)
|
jwt (>= 1.4, < 3.0)
|
||||||
memoist (~> 0.16)
|
memoist (~> 0.16)
|
||||||
@ -37,12 +37,12 @@ GEM
|
|||||||
http-cookie (1.0.5)
|
http-cookie (1.0.5)
|
||||||
domain_name (~> 0.5)
|
domain_name (~> 0.5)
|
||||||
http-form_data (2.3.0)
|
http-form_data (2.3.0)
|
||||||
i18n (1.12.0)
|
i18n (1.14.1)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
jsonpath (1.1.2)
|
jsonpath (1.1.3)
|
||||||
multi_json
|
multi_json
|
||||||
jwt (2.7.0)
|
jwt (2.7.1)
|
||||||
krane (3.1.0)
|
krane (3.3.0)
|
||||||
activesupport (>= 5.0)
|
activesupport (>= 5.0)
|
||||||
colorize (~> 0.8)
|
colorize (~> 0.8)
|
||||||
concurrent-ruby (~> 1.1)
|
concurrent-ruby (~> 1.1)
|
||||||
@ -50,7 +50,7 @@ GEM
|
|||||||
googleauth (~> 1.2)
|
googleauth (~> 1.2)
|
||||||
jsonpath (~> 1.0)
|
jsonpath (~> 1.0)
|
||||||
kubeclient (~> 4.9)
|
kubeclient (~> 4.9)
|
||||||
oj (~> 3.0)
|
multi_json
|
||||||
statsd-instrument (>= 2.8, < 4)
|
statsd-instrument (>= 2.8, < 4)
|
||||||
thor (>= 1.0, < 2.0)
|
thor (>= 1.0, < 2.0)
|
||||||
kubeclient (4.11.0)
|
kubeclient (4.11.0)
|
||||||
@ -62,15 +62,14 @@ GEM
|
|||||||
ffi-compiler (~> 1.0)
|
ffi-compiler (~> 1.0)
|
||||||
rake (~> 13.0)
|
rake (~> 13.0)
|
||||||
memoist (0.16.2)
|
memoist (0.16.2)
|
||||||
mime-types (3.4.1)
|
mime-types (3.5.1)
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2023.0218.1)
|
mime-types-data (3.2023.0808)
|
||||||
minitest (5.18.0)
|
minitest (5.19.0)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
netrc (0.11.0)
|
netrc (0.11.0)
|
||||||
oj (3.14.3)
|
|
||||||
os (1.1.4)
|
os (1.1.4)
|
||||||
public_suffix (5.0.1)
|
public_suffix (5.0.3)
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
recursive-open-struct (1.1.3)
|
recursive-open-struct (1.1.3)
|
||||||
rest-client (2.1.0)
|
rest-client (2.1.0)
|
||||||
@ -84,8 +83,8 @@ GEM
|
|||||||
faraday (>= 0.17.5, < 3.a)
|
faraday (>= 0.17.5, < 3.a)
|
||||||
jwt (>= 1.5, < 3.0)
|
jwt (>= 1.5, < 3.0)
|
||||||
multi_json (~> 1.10)
|
multi_json (~> 1.10)
|
||||||
statsd-instrument (3.5.7)
|
statsd-instrument (3.5.11)
|
||||||
thor (1.2.1)
|
thor (1.2.2)
|
||||||
tzinfo (2.0.6)
|
tzinfo (2.0.6)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
unf (0.1.4)
|
unf (0.1.4)
|
||||||
@ -99,4 +98,4 @@ DEPENDENCIES
|
|||||||
krane
|
krane
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.4.10
|
2.4.18
|
||||||
|
@ -5,10 +5,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "15m0b1im6i401ab51vzr7f8nk8kys1qa0snnl741y3sir3xd07jp";
|
sha256 = "1vlzcnyqlbchaq85phmdv73ydlc18xpvxy1cbsk191cwd29i7q32";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "7.0.4.3";
|
version = "7.0.7.2";
|
||||||
};
|
};
|
||||||
addressable = {
|
addressable = {
|
||||||
dependencies = ["public_suffix"];
|
dependencies = ["public_suffix"];
|
||||||
@ -16,10 +16,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
|
sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "2.8.4";
|
version = "2.8.5";
|
||||||
};
|
};
|
||||||
colorize = {
|
colorize = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@ -57,10 +57,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0gmfyyzzvb9k5nm1a5x83d7krajfghghfsakhxmdpvncyj2vnrpa";
|
sha256 = "1bpry4i9ajh2h8fyljp0cb17iy03ar36yc9mpfxflmdznl7dwsjf";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.3.1";
|
version = "1.4.1";
|
||||||
};
|
};
|
||||||
faraday = {
|
faraday = {
|
||||||
dependencies = ["faraday-net_http" "ruby2_keywords"];
|
dependencies = ["faraday-net_http" "ruby2_keywords"];
|
||||||
@ -68,10 +68,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1f20vjx0ywx0zdb4dfx4cpa7kd51z6vg7dw5hs35laa45dy9g9pj";
|
sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "2.7.4";
|
version = "2.7.10";
|
||||||
};
|
};
|
||||||
faraday-net_http = {
|
faraday-net_http = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@ -110,10 +110,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1lj5haarpn7rybbq9s031zcn9ji3rlz5bk64bwa2j34q5s1h5gis";
|
sha256 = "0h1k47vjaq37l0w9q49g3f50j1b0c1svhk07rmd1h49w38v2hxag";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.5.2";
|
version = "1.7.0";
|
||||||
};
|
};
|
||||||
http = {
|
http = {
|
||||||
dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"];
|
dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"];
|
||||||
@ -163,10 +163,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1vdcchz7jli1p0gnc669a7bj3q1fv09y9ppf0y3k0vb1jwdwrqwi";
|
sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.12.0";
|
version = "1.14.1";
|
||||||
};
|
};
|
||||||
jsonpath = {
|
jsonpath = {
|
||||||
dependencies = ["multi_json"];
|
dependencies = ["multi_json"];
|
||||||
@ -174,31 +174,31 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0fkdjic88hh0accp0sbx5mcrr9yaqwampf5c3214212d4i614138";
|
sha256 = "1i1idcl0rpfkzkxngadw33a33v3gqf93a3kj52y2ha2zs26bdzjp";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.1.2";
|
version = "1.1.3";
|
||||||
};
|
};
|
||||||
jwt = {
|
jwt = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "09yj3z5snhaawh2z1w45yyihzmh57m6m7dp8ra8gxavhj5kbiq5p";
|
sha256 = "16z11alz13vfc4zs5l3fk6n51n2jw9lskvc4h4prnww0y797qd87";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "2.7.0";
|
version = "2.7.1";
|
||||||
};
|
};
|
||||||
krane = {
|
krane = {
|
||||||
dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
|
dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "multi_json" "statsd-instrument" "thor"];
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1d8vdj3wd2qp8agyadn0w33qf7z2p5lk3vlslb8jlph8x5y3mm70";
|
sha256 = "1qf5la1w4zrbda5n3s01pb9gij5hyknwglsnqsrc0vcm6bslfygj";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.1.0";
|
version = "3.3.0";
|
||||||
};
|
};
|
||||||
kubeclient = {
|
kubeclient = {
|
||||||
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
|
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
|
||||||
@ -238,30 +238,30 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
|
sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.4.1";
|
version = "3.5.1";
|
||||||
};
|
};
|
||||||
mime-types-data = {
|
mime-types-data = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9";
|
sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.2023.0218.1";
|
version = "3.2023.0808";
|
||||||
};
|
};
|
||||||
minitest = {
|
minitest = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0ic7i5z88zcaqnpzprf7saimq2f6sad57g5mkkqsrqrcd6h3mx06";
|
sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "5.18.0";
|
version = "5.19.0";
|
||||||
};
|
};
|
||||||
multi_json = {
|
multi_json = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@ -283,16 +283,6 @@
|
|||||||
};
|
};
|
||||||
version = "0.11.0";
|
version = "0.11.0";
|
||||||
};
|
};
|
||||||
oj = {
|
|
||||||
groups = ["default"];
|
|
||||||
platforms = [];
|
|
||||||
source = {
|
|
||||||
remotes = ["https://rubygems.org"];
|
|
||||||
sha256 = "0l8l90iibzrxs33vn3adrhbg8cbmbn1qfh962p7gzwwybsdw73qy";
|
|
||||||
type = "gem";
|
|
||||||
};
|
|
||||||
version = "3.14.3";
|
|
||||||
};
|
|
||||||
os = {
|
os = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
@ -308,10 +298,10 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
|
sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "5.0.1";
|
version = "5.0.3";
|
||||||
};
|
};
|
||||||
rake = {
|
rake = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
@ -370,20 +360,20 @@
|
|||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "1pg308z3ck1vpazrmczklqa6f9qciay8nysnhc16pgfsh2npzzrz";
|
sha256 = "1zpr5ms18ynygpwx73v0a8nkf41kpjylc9m3fyhvchq3ms17hcb0";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "3.5.7";
|
version = "3.5.11";
|
||||||
};
|
};
|
||||||
thor = {
|
thor = {
|
||||||
groups = ["default"];
|
groups = ["default"];
|
||||||
platforms = [];
|
platforms = [];
|
||||||
source = {
|
source = {
|
||||||
remotes = ["https://rubygems.org"];
|
remotes = ["https://rubygems.org"];
|
||||||
sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi";
|
sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
|
||||||
type = "gem";
|
type = "gem";
|
||||||
};
|
};
|
||||||
version = "1.2.1";
|
version = "1.2.2";
|
||||||
};
|
};
|
||||||
tzinfo = {
|
tzinfo = {
|
||||||
dependencies = ["concurrent-ruby"];
|
dependencies = ["concurrent-ruby"];
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
let
|
let
|
||||||
thunderbird-unwrapped = thunderbirdPackages.thunderbird-102;
|
thunderbird-unwrapped = thunderbirdPackages.thunderbird-102;
|
||||||
|
|
||||||
version = "102.12.0";
|
version = "102.14.0";
|
||||||
majVer = lib.versions.major version;
|
majVer = lib.versions.major version;
|
||||||
|
|
||||||
betterbird-patches = fetchFromGitHub {
|
betterbird-patches = fetchFromGitHub {
|
||||||
owner = "Betterbird";
|
owner = "Betterbird";
|
||||||
repo = "thunderbird-patches";
|
repo = "thunderbird-patches";
|
||||||
rev = "${version}-bb37";
|
rev = "${version}-bb39";
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
echo "Retrieving external patches"
|
echo "Retrieving external patches"
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ let
|
|||||||
. ./external.sh
|
. ./external.sh
|
||||||
rm external.sh
|
rm external.sh
|
||||||
'';
|
'';
|
||||||
sha256 = "sha256-LH0dgWqariutfaOCPIUZrHzZ8oCbZF1VaaKQIQS4aL8=";
|
hash = "sha256-O9nGlJs3OziQLbdbdt3eFRHvk1A9cdEsbKDtsZrnY5Q=";
|
||||||
};
|
};
|
||||||
in ((buildMozillaMach {
|
in ((buildMozillaMach {
|
||||||
pname = "betterbird";
|
pname = "betterbird";
|
||||||
@ -49,7 +49,7 @@ in ((buildMozillaMach {
|
|||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
# https://download.cdn.mozilla.net/pub/thunderbird/releases/
|
# https://download.cdn.mozilla.net/pub/thunderbird/releases/
|
||||||
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
|
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
|
||||||
sha512 = "303787a8f22a204e48784d54320d5f4adaeeeedbe4c2294cd26ad75792272ffc9453be7f0ab1434214b61a2cc46982c23c4fd447c4d80d588df4a7800225ddee";
|
sha512 = "4ae3f216833aec55421f827d55bc1b5fc2f0ad4fefecb27724a5be3318c351df24d30a4897b924e733ed2e3995be284b6d135049d46001143fb1c961fefc1830";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPostPatch = thunderbird-unwrapped.extraPostPatch or "" + /* bash */ ''
|
extraPostPatch = thunderbird-unwrapped.extraPostPatch or "" + /* bash */ ''
|
||||||
|
@ -10,14 +10,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "vnote";
|
pname = "vnote";
|
||||||
version = "3.16.0";
|
version = "3.17.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vnotex";
|
owner = "vnotex";
|
||||||
repo = "vnote";
|
repo = "vnote";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
hash = "sha256-tcu6y2DqdhFE2nbDkiANDk/Mzidcp8PLi8bWZaI6sH0=";
|
hash = "sha256-NUVu6tKXrrwAoT4BgxX05mmGSC9yx20lwvXzd4y19Zs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
obs-command-source = callPackage ./obs-command-source.nix { };
|
obs-command-source = callPackage ./obs-command-source.nix { };
|
||||||
|
|
||||||
|
obs-freeze-filter = qt6Packages.callPackage ./obs-freeze-filter.nix { };
|
||||||
|
|
||||||
obs-gradient-source = callPackage ./obs-gradient-source.nix { };
|
obs-gradient-source = callPackage ./obs-gradient-source.nix { };
|
||||||
|
|
||||||
obs-gstreamer = callPackage ./obs-gstreamer.nix { };
|
obs-gstreamer = callPackage ./obs-gstreamer.nix { };
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake
|
||||||
|
, obs-studio
|
||||||
|
, qtbase
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "obs-freeze-filter";
|
||||||
|
version = "0.3.3";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "exeldro";
|
||||||
|
repo = "obs-freeze-filter";
|
||||||
|
rev = finalAttrs.version;
|
||||||
|
sha256 = "sha256-CaHBTfdk8VFjmiclG61elj35glQafgz5B4ENo+7J35o=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
buildInputs = [ obs-studio qtbase ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
rm -rf "$out/share"
|
||||||
|
mkdir -p "$out/share/obs"
|
||||||
|
mv "$out/data/obs-plugins" "$out/share/obs"
|
||||||
|
rm -rf "$out/obs-plugins" "$out/data"
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Plugin for OBS Studio to freeze a source using a filter";
|
||||||
|
homepage = "https://github.com/exeldro/obs-freeze-filter";
|
||||||
|
license = licenses.gpl2Only;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ pschmitt ];
|
||||||
|
};
|
||||||
|
})
|
@ -69,7 +69,7 @@ let
|
|||||||
|
|
||||||
includeFortifyHeaders' = if includeFortifyHeaders != null
|
includeFortifyHeaders' = if includeFortifyHeaders != null
|
||||||
then includeFortifyHeaders
|
then includeFortifyHeaders
|
||||||
else targetPlatform.libc == "musl";
|
else (targetPlatform.libc == "musl" && isGNU);
|
||||||
|
|
||||||
# Prefix for binaries. Customarily ends with a dash separator.
|
# Prefix for binaries. Customarily ends with a dash separator.
|
||||||
#
|
#
|
||||||
|
@ -159,12 +159,10 @@ runCommand
|
|||||||
rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled
|
rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled
|
||||||
cat >"$siteStart" <<EOF
|
cat >"$siteStart" <<EOF
|
||||||
(let ((inhibit-message t))
|
(let ((inhibit-message t))
|
||||||
(load-file "$emacs/share/emacs/site-lisp/site-start.el"))
|
(load "$emacs/share/emacs/site-lisp/site-start"))
|
||||||
(add-to-list 'load-path "$out/share/emacs/site-lisp")
|
;; "$out/share/emacs/site-lisp" is added to load-path in wrapper.sh
|
||||||
|
;; "$out/share/emacs/native-lisp" is added to native-comp-eln-load-path in wrapper.sh
|
||||||
(add-to-list 'exec-path "$out/bin")
|
(add-to-list 'exec-path "$out/bin")
|
||||||
${lib.optionalString withNativeCompilation ''
|
|
||||||
(add-to-list 'native-comp-eln-load-path "$out/share/emacs/native-lisp/")
|
|
||||||
''}
|
|
||||||
${lib.optionalString withTreeSitter ''
|
${lib.optionalString withTreeSitter ''
|
||||||
(add-to-list 'treesit-extra-load-path "$out/lib/")
|
(add-to-list 'treesit-extra-load-path "$out/lib/")
|
||||||
''}
|
''}
|
||||||
@ -226,7 +224,7 @@ runCommand
|
|||||||
|
|
||||||
mkdir -p $out/share
|
mkdir -p $out/share
|
||||||
# Link icons and desktop files into place
|
# Link icons and desktop files into place
|
||||||
for dir in applications icons info man emacs; do
|
for dir in applications icons info man; do
|
||||||
ln -s $emacs/share/$dir $out/share/$dir
|
ln -s $emacs/share/$dir $out/share/$dir
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{ lib, stdenv
|
{ lib
|
||||||
|
, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, fetchpatch
|
, fetchpatch
|
||||||
, substituteAll
|
, substituteAll
|
||||||
@ -8,7 +9,6 @@
|
|||||||
, pkg-config
|
, pkg-config
|
||||||
, glib
|
, glib
|
||||||
, itstool
|
, itstool
|
||||||
, libxml2
|
|
||||||
, xorg
|
, xorg
|
||||||
, accountsservice
|
, accountsservice
|
||||||
, libX11
|
, libX11
|
||||||
@ -24,12 +24,12 @@
|
|||||||
, audit
|
, audit
|
||||||
, gobject-introspection
|
, gobject-introspection
|
||||||
, plymouth
|
, plymouth
|
||||||
, librsvg
|
|
||||||
, coreutils
|
, coreutils
|
||||||
, xorgserver
|
, xorgserver
|
||||||
, xwayland
|
, xwayland
|
||||||
, dbus
|
, dbus
|
||||||
, nixos-icons
|
, nixos-icons
|
||||||
|
, runCommand
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -41,21 +41,21 @@ let
|
|||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "gdm";
|
pname = "gdm";
|
||||||
version = "44.1";
|
version = "44.1";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/gdm/${lib.versions.major finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
|
||||||
sha256 = "aCZrOr59KPxGnQBnqsnF2rsMp5UswffCOKBJUfPcWw0=";
|
sha256 = "aCZrOr59KPxGnQBnqsnF2rsMp5UswffCOKBJUfPcWw0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"-Dgdm-xsession=true"
|
"-Dgdm-xsession=true"
|
||||||
# TODO: Setup a default-path? https://gitlab.gnome.org/GNOME/gdm/-/blob/6fc40ac6aa37c8ad87c32f0b1a5d813d34bf7770/meson_options.txt#L6
|
# TODO: Setup a default-path? https://gitlab.gnome.org/GNOME/gdm/-/blob/6fc40ac6aa37c8ad87c32f0b1a5d813d34bf7770/meson_options.txt#L6
|
||||||
"-Dinitial-vt=${passthru.initialVT}"
|
"-Dinitial-vt=${finalAttrs.passthru.initialVT}"
|
||||||
"-Dudev-dir=${placeholder "out"}/lib/udev/rules.d"
|
"-Dudev-dir=${placeholder "out"}/lib/udev/rules.d"
|
||||||
"-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
|
"-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
|
||||||
"-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
|
"-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
|
||||||
@ -131,21 +131,21 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
preInstall = ''
|
preInstall = ''
|
||||||
install -D ${override} ${DESTDIR}/$out/share/glib-2.0/schemas/org.gnome.login-screen.gschema.override
|
install -D ${override} $DESTDIR/$out/share/glib-2.0/schemas/org.gnome.login-screen.gschema.override
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Move stuff from DESTDIR to proper location.
|
# Move stuff from DESTDIR to proper location.
|
||||||
# We use rsync to merge the directories.
|
# We use rsync to merge the directories.
|
||||||
rsync --archive "${DESTDIR}/etc" "$out"
|
rsync --archive "$DESTDIR/etc" "$out"
|
||||||
rm --recursive "${DESTDIR}/etc"
|
rm --recursive "$DESTDIR/etc"
|
||||||
for o in $(getAllOutputNames); do
|
for o in $(getAllOutputNames); do
|
||||||
if [[ "$o" = "debug" ]]; then continue; fi
|
if [[ "$o" = "debug" ]]; then continue; fi
|
||||||
rsync --archive "${DESTDIR}/''${!o}" "$(dirname "''${!o}")"
|
rsync --archive "$DESTDIR/''${!o}" "$(dirname "''${!o}")"
|
||||||
rm --recursive "${DESTDIR}/''${!o}"
|
rm --recursive "$DESTDIR/''${!o}"
|
||||||
done
|
done
|
||||||
# Ensure the DESTDIR is removed.
|
# Ensure the DESTDIR is removed.
|
||||||
rmdir "${DESTDIR}/nix/store" "${DESTDIR}/nix" "${DESTDIR}"
|
rmdir "$DESTDIR/nix/store" "$DESTDIR/nix" "$DESTDIR"
|
||||||
|
|
||||||
# We are setting DESTDIR so the post-install script does not compile the schemas.
|
# We are setting DESTDIR so the post-install script does not compile the schemas.
|
||||||
glib-compile-schemas "$out/share/glib-2.0/schemas"
|
glib-compile-schemas "$out/share/glib-2.0/schemas"
|
||||||
@ -170,6 +170,18 @@ stdenv.mkDerivation rec {
|
|||||||
# Used in GDM NixOS module
|
# Used in GDM NixOS module
|
||||||
# Don't remove.
|
# Don't remove.
|
||||||
initialVT = "7";
|
initialVT = "7";
|
||||||
|
dconfDb = "${finalAttrs.finalPackage}/share/gdm/greeter-dconf-defaults";
|
||||||
|
dconfProfile = "user-db:user\nfile-db:${finalAttrs.passthru.dconfDb}";
|
||||||
|
|
||||||
|
tests = {
|
||||||
|
profile = runCommand "gdm-profile-test" { } ''
|
||||||
|
if test "${finalAttrs.passthru.dconfProfile}" != "$(cat ${finalAttrs.finalPackage}/share/dconf/profile/gdm)"; then
|
||||||
|
echo "GDM dconf profile changed, please update gdm.nix"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
@ -179,4 +191,4 @@ stdenv.mkDerivation rec {
|
|||||||
maintainers = teams.gnome.members;
|
maintainers = teams.gnome.members;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "libubox";
|
pname = "libubox";
|
||||||
version = "unstable-2023-01-03${lib.optionalString with_ustream_ssl "-${ustream-ssl.ssl_implementation.pname}"}";
|
version = "unstable-2023-05-23";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.openwrt.org/project/libubox.git";
|
url = "https://git.openwrt.org/project/libubox.git";
|
||||||
rev = "eac92a4d5d82eb31e712157e7eb425af728b2c43";
|
rev = "75a3b870cace1171faf57bd55e5a9a2f1564f757";
|
||||||
sha256 = "0w6mmwmd3ljhkqfk0qswq28dp63k30s3brlgf8lyi7vj7mrhvn3c";
|
hash = "sha256-QhJ09i7IWP6rbxrYuhisVsCr82Ou/JAZMEdkaLhZp1o=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmakeFlags = [ "-DBUILD_EXAMPLES=OFF" (if with_lua then "-DLUAPATH=${placeholder "out"}/lib/lua" else "-DBUILD_LUA=OFF") ];
|
cmakeFlags = [ "-DBUILD_EXAMPLES=OFF" (if with_lua then "-DLUAPATH=${placeholder "out"}/lib/lua" else "-DBUILD_LUA=OFF") ];
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "ubus";
|
pname = "ubus";
|
||||||
version = "unstable-2021-02-15";
|
version = "unstable-2023-06-05";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.openwrt.org/project/ubus.git";
|
url = "https://git.openwrt.org/project/ubus.git";
|
||||||
rev = "2537be01858710e714c329153760c64fe3f8a73e";
|
rev = "f787c97b34894a38b15599886cacbca01271684f";
|
||||||
sha256 = "03ljxsn4w87bfrilccxhrkzqmd30hy6ihkvsinw0i3l7rpp5m4a7";
|
hash = "sha256-PGPFtNaRXS6ryC+MA/w2CtPQfJa+vG5OXf/NPFMoIzQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cmakeFlags = [ "-DBUILD_LUA=OFF" ];
|
cmakeFlags = [ "-DBUILD_LUA=OFF" ];
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "uci";
|
pname = "uci";
|
||||||
version = "unstable-2021-04-14";
|
version = "unstable-2023-08-10";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.openwrt.org/project/uci.git";
|
url = "https://git.openwrt.org/project/uci.git";
|
||||||
rev = "4b3db1179747b6a6779029407984bacef851325c";
|
rev = "5781664d5087ccc4b5ab58505883231212dbedbc";
|
||||||
sha256 = "1zflxazazzkrycpflzfg420kzp7kgy4dlz85cms279vk07dc1d52";
|
hash = "sha256-8MyFaZdAMh5oMPO/5QyNT+Or57eBL3mamJLblGGoF9g=";
|
||||||
};
|
};
|
||||||
|
|
||||||
hardeningDisable = [ "all" ];
|
hardeningDisable = [ "all" ];
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "uclient";
|
pname = "uclient";
|
||||||
version = "unstable-2022-02-24";
|
version = "unstable-2023-04-13";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.openwrt.org/project/uclient.git";
|
url = "https://git.openwrt.org/project/uclient.git";
|
||||||
rev = "644d3c7e13c6a64bf5cb628137ee5bd4dada4b74";
|
rev = "007d945467499f43656b141171d31f5643b83a6c";
|
||||||
sha256 = "0vy4whs64699whp92d1zl7a8kh16yrfywqq0yp2y809l9z19sw22";
|
hash = "sha256-A47dyVc2MtOL6aImZ0b3SMWH2vzjfAXzRAOF4nfH6S0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "ustream-ssl";
|
pname = "ustream-ssl";
|
||||||
version = "unstable-2022-12-08-${ssl_implementation.pname}";
|
version = "unstable-2023-02-25";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.openwrt.org/project/ustream-ssl.git";
|
url = "https://git.openwrt.org/project/ustream-ssl.git";
|
||||||
rev = "9217ab46536353c7c792951b57163063f5ec7a3b";
|
rev = "498f6e268d4d2b0ad33b430f4ba1abe397d31496";
|
||||||
sha256 = "1ldyyb3is213iljyccx98f56rb69rfpgdcb1kjxw9a176hvpipdd";
|
hash = "sha256-qwF3pzJ/nUTaJ8NZtgLyXnSozekY3dovxK3ZWHPGORM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "approvaltests";
|
pname = "approvaltests";
|
||||||
version = "8.4.1";
|
version = "9.0.0";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
@ -27,7 +27,7 @@ buildPythonPackage rec {
|
|||||||
owner = "approvals";
|
owner = "approvals";
|
||||||
repo = "ApprovalTests.Python";
|
repo = "ApprovalTests.Python";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-BuFiNZZ7228CKJ97mVK2S8Siqe040EYV5pElVtwuVf4=";
|
hash = "sha256-tyUPXeMdFuzlBY/HrGHLDEwYngzBELayaVVfEh92lbE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
|
, cryptography
|
||||||
, django
|
, django
|
||||||
, djangorestframework
|
, djangorestframework
|
||||||
, fetchPypi
|
, fetchPypi
|
||||||
@ -11,7 +12,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "djangorestframework-simplejwt";
|
pname = "djangorestframework-simplejwt";
|
||||||
version = "5.2.2";
|
version = "5.3.0";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
@ -19,7 +20,7 @@ buildPythonPackage rec {
|
|||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
pname = "djangorestframework_simplejwt";
|
pname = "djangorestframework_simplejwt";
|
||||||
inherit version;
|
inherit version;
|
||||||
hash = "sha256-0n1LysLGOU9njeqLTQ1RHG4Yp/Lriq7rin3mAa63fEI=";
|
hash = "sha256-jkxd/KjRHAuKZt/YpOP8HGqn6hiNEJB/+RyUL0tS7WY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -30,8 +31,16 @@ buildPythonPackage rec {
|
|||||||
django
|
django
|
||||||
djangorestframework
|
djangorestframework
|
||||||
pyjwt
|
pyjwt
|
||||||
|
];
|
||||||
|
|
||||||
|
passthru.optional-dependencies = {
|
||||||
|
python-jose = [
|
||||||
python-jose
|
python-jose
|
||||||
];
|
];
|
||||||
|
crypto = [
|
||||||
|
cryptography
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Test raises django.core.exceptions.ImproperlyConfigured
|
# Test raises django.core.exceptions.ImproperlyConfigured
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
@ -43,6 +52,7 @@ buildPythonPackage rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "JSON Web Token authentication plugin for Django REST Framework";
|
description = "JSON Web Token authentication plugin for Django REST Framework";
|
||||||
homepage = "https://github.com/davesque/django-rest-framework-simplejwt";
|
homepage = "https://github.com/davesque/django-rest-framework-simplejwt";
|
||||||
|
changelog = "https://github.com/jazzband/djangorestframework-simplejwt/blob/v${version}/CHANGELOG.md";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ arnoldfarkas ];
|
maintainers = with maintainers; [ arnoldfarkas ];
|
||||||
};
|
};
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "mkdocs-minify";
|
pname = "mkdocs-minify";
|
||||||
version = "0.6.3";
|
version = "0.7.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "byrnereese";
|
owner = "byrnereese";
|
||||||
repo = "${pname}-plugin";
|
repo = "${pname}-plugin";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-ajXkEKLBC86Y8YzDCZXd6x6QtLLrCDJkb6kDrRE536o=";
|
hash = "sha256-LDCAWKVbFsa6Y/tmY2Zne4nOtxe4KvNplZuWxg4e4L8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -1,21 +1,26 @@
|
|||||||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
{ lib
|
||||||
|
, buildGoModule
|
||||||
|
, fetchFromGitHub
|
||||||
|
, installShellFiles
|
||||||
|
}:
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "hcloud";
|
pname = "hcloud";
|
||||||
version = "1.36.0";
|
version = "1.37.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "hetznercloud";
|
owner = "hetznercloud";
|
||||||
repo = "cli";
|
repo = "cli";
|
||||||
rev = "v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
sha256 = "sha256-BmV+g0Geue41KNcB++TaoSsuGG1HA+uH5GHye7QRWOM=";
|
hash = "sha256-6UQaO2ArAYd6Lr1maciC83k1GlR8FLx+acAZh6SjI3g=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-eGeaH9nIjBSZLxNlsQtas122eEXrIbrGn/GYVB4KhvY=";
|
vendorHash = "sha256-mxAG3o3IY70xn8WymUzF96Q2XWwQ0efWrrw1VV4Y8HU=";
|
||||||
|
|
||||||
ldflags = [
|
ldflags = [
|
||||||
"-s" "-w"
|
"-s"
|
||||||
"-X github.com/hetznercloud/cli/internal/version.Version=${version}"
|
"-w"
|
||||||
|
"-X=github.com/hetznercloud/cli/internal/version.Version=${version}"
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
nativeBuildInputs = [ installShellFiles ];
|
||||||
|
@ -1,25 +1,30 @@
|
|||||||
{ lib, buildGoModule, fetchFromGitHub }:
|
{ lib, buildGoModule, fetchFromGitHub, libpg_query, xxHash, postgresql }:
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "sqldef";
|
pname = "sqldef";
|
||||||
version = "0.12.7";
|
version = "0.16.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "k0kubun";
|
owner = "k0kubun";
|
||||||
repo = pname;
|
repo = "sqldef";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-HyM2HTdQgH+2vFe+1q02zmaD/A1M5h6Z56Wff9qxaHM=";
|
hash = "sha256-HQ6WyeKYRd+pY/P2Bsu7W2eMjgpjUhbwEFE7bADrxDY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-T1Kdtpm90fy93mYWQz13k552wWGB96BOeN8NtTuuj0c=";
|
proxyVendor = true;
|
||||||
|
|
||||||
|
vendorHash = "sha256-YdZo2XN+425s0K/3COqQx3g1Bpus4uWiwnzrYJ8qdOM=";
|
||||||
|
|
||||||
|
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
|
||||||
|
|
||||||
# The test requires a running database
|
# The test requires a running database
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Idempotent SQL schema management tool";
|
description = "Idempotent SQL schema management tool";
|
||||||
license = with licenses; [ mit /* for everythnig except parser */ asl20 /* for parser */ ];
|
license = with licenses; [ mit /* for everything except parser */ asl20 /* for parser */ ];
|
||||||
homepage = "https://github.com/k0kubun/sqldef";
|
homepage = "https://github.com/k0kubun/sqldef";
|
||||||
|
changelog = "https://github.com/k0kubun/sqldef/blob/v${version}/CHANGELOG.md";
|
||||||
maintainers = with maintainers; [ kgtkr ];
|
maintainers = with maintainers; [ kgtkr ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
let
|
let
|
||||||
data = stdenv.mkDerivation(finalAttrs: {
|
data = stdenv.mkDerivation(finalAttrs: {
|
||||||
pname = "path-of-building-data";
|
pname = "path-of-building-data";
|
||||||
version = "2.33.3";
|
version = "2.33.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "PathOfBuildingCommunity";
|
owner = "PathOfBuildingCommunity";
|
||||||
repo = "PathOfBuilding";
|
repo = "PathOfBuilding";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-mRF8bXDBTfMGB8SAhF4rrwkBZq1XyGA9Wkb1ZpvTCv0=";
|
hash = "sha256-a7/xuVfsLQaSsmHVFKqDEypCunFQtHvcVISaQD1YCEs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [ unzip ];
|
||||||
|
@ -52,21 +52,21 @@
|
|||||||
"6.1": {
|
"6.1": {
|
||||||
"patch": {
|
"patch": {
|
||||||
"extra": "-hardened1",
|
"extra": "-hardened1",
|
||||||
"name": "linux-hardened-6.1.46-hardened1.patch",
|
"name": "linux-hardened-6.1.47-hardened1.patch",
|
||||||
"sha256": "1filmigpmn3bly4f08450izq4gabn57xi1fkczcnmkphwp83rk4l",
|
"sha256": "0wgsjb05m9f0fgv4vj0m0ll9bx22z894qlpwb45b33mq66fvbgwn",
|
||||||
"url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.46-hardened1/linux-hardened-6.1.46-hardened1.patch"
|
"url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.47-hardened1/linux-hardened-6.1.47-hardened1.patch"
|
||||||
},
|
},
|
||||||
"sha256": "15m228bllks2p8gpsmvplx08yxzp7bij9fnmnafqszylrk7ppxpm",
|
"sha256": "1azwvlzyp1s2adm17ic0jfmv3ph70wqzycb8s96z9987y1m8pmck",
|
||||||
"version": "6.1.46"
|
"version": "6.1.47"
|
||||||
},
|
},
|
||||||
"6.4": {
|
"6.4": {
|
||||||
"patch": {
|
"patch": {
|
||||||
"extra": "-hardened1",
|
"extra": "-hardened1",
|
||||||
"name": "linux-hardened-6.4.11-hardened1.patch",
|
"name": "linux-hardened-6.4.12-hardened1.patch",
|
||||||
"sha256": "15c8fs5dmkm2a9j66gq5c1hcbw95p4d03y71rvh6jhglpna7b3xc",
|
"sha256": "0xkcvyy2ii5wfdw8h21svcsz3s3q0qk4yx7dxzbrisap10d79l51",
|
||||||
"url": "https://github.com/anthraxx/linux-hardened/releases/download/6.4.11-hardened1/linux-hardened-6.4.11-hardened1.patch"
|
"url": "https://github.com/anthraxx/linux-hardened/releases/download/6.4.12-hardened1/linux-hardened-6.4.12-hardened1.patch"
|
||||||
},
|
},
|
||||||
"sha256": "0609lhgc42j9id2vvdpv8n7djabp46p2mridf9s0sg3x16snhssl",
|
"sha256": "0x56b4hslm730ghvggz41fjkbzlnxp6k8857dn7iy27yavlipafc",
|
||||||
"version": "6.4.11"
|
"version": "6.4.12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
buildLinux (args // rec {
|
buildLinux (args // rec {
|
||||||
version = "5.10.191";
|
version = "5.10.192";
|
||||||
|
|
||||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||||
modDirVersion = versions.pad 3 version;
|
modDirVersion = versions.pad 3 version;
|
||||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||||
sha256 = "1hk2x5dgvfq9v6161v25wz5qpzgyvqbx34xbm7ww8z4ish76cm6b";
|
sha256 = "1fdmn38l3hilpqwjl2sr28rjpr2k3jxd3nxs54j162p5avp123f4";
|
||||||
};
|
};
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
buildLinux (args // rec {
|
buildLinux (args // rec {
|
||||||
version = "5.15.127";
|
version = "5.15.128";
|
||||||
|
|
||||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||||
modDirVersion = versions.pad 3 version;
|
modDirVersion = versions.pad 3 version;
|
||||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||||
sha256 = "09lgj9hs1cjxg84hb7avras4rlsx18igr69mx433l9hv6issbl5d";
|
sha256 = "1pl03djrfa7bqzpcvqlfgqnwx6iby6bpr1hc7gspdzc3a62clbhg";
|
||||||
};
|
};
|
||||||
} // (args.argsOverride or { }))
|
} // (args.argsOverride or { }))
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
buildLinux (args // rec {
|
buildLinux (args // rec {
|
||||||
version = "6.1.47";
|
version = "6.1.49";
|
||||||
|
|
||||||
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||||
modDirVersion = versions.pad 3 version;
|
modDirVersion = versions.pad 3 version;
|
||||||
@ -13,6 +13,6 @@ buildLinux (args // rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
|
||||||
sha256 = "1azwvlzyp1s2adm17ic0jfmv3ph70wqzycb8s96z9987y1m8pmck";
|
sha256 = "03vs0ncpxx12d2pm0glxa68lqkj17j69lcx9h8w6xjm43hii9sn9";
|
||||||
};
|
};
|
||||||
} // (args.argsOverride or { }))
|
} // (args.argsOverride or { }))
|
||||||
|
18
pkgs/os-specific/linux/kernel/linux-6.5.nix
Normal file
18
pkgs/os-specific/linux/kernel/linux-6.5.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ lib, fetchurl, buildLinux, ... } @ args:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
buildLinux (args // rec {
|
||||||
|
version = "6.5";
|
||||||
|
|
||||||
|
# modDirVersion needs to be x.y.z, will automatically add .0 if needed
|
||||||
|
modDirVersion = versions.pad 3 version;
|
||||||
|
|
||||||
|
# branchVersion needs to be x.y
|
||||||
|
extraMeta.branch = versions.majorMinor version;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
|
||||||
|
hash = "sha256-eldLvCCALqdrUsp/rwcmf3IEXoYbGJFcUnKpjCer+IQ=";
|
||||||
|
};
|
||||||
|
} // (args.argsOverride or { }))
|
@ -1,8 +1,8 @@
|
|||||||
{ stdenv, lib, fetchsvn, linux
|
{ stdenv, lib, fetchsvn, linux
|
||||||
, scripts ? fetchsvn {
|
, scripts ? fetchsvn {
|
||||||
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
|
url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
|
||||||
rev = "19392";
|
rev = "19397";
|
||||||
sha256 = "09d61yw3jmq1cpzp1kpnmjrnl1gxhp8p0vqnc75j05ikmibqpa4l";
|
sha256 = "130q08my839kwbi1v8lqwvs6w8s6328ki7s243as4yz4kfrlymr3";
|
||||||
}
|
}
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "libnl-tiny";
|
pname = "libnl-tiny";
|
||||||
version = "unstable-2022-12-13";
|
version = "unstable-2023-07-27";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://git.openwrt.org/project/libnl-tiny.git";
|
url = "https://git.openwrt.org/project/libnl-tiny.git";
|
||||||
rev = "f5d9b7e4f534a69cbd35c3f150fa6d57b9d631e4";
|
rev = "bc92a280186f9becc53c0f17e4e43cfbdeec7e7b";
|
||||||
sha256 = "0c5ycsdas8rr5c33gd0mnmm515dq631fmdjn5mp2j1m0j1bk7hc0";
|
hash = "sha256-/d6so8hfBOyp8NbUhPZ0aRj6gXO/RLgwCQnAT7N/rF8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
@ -14,16 +14,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "eza";
|
pname = "eza";
|
||||||
version = "0.10.8";
|
version = "0.10.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "eza-community";
|
owner = "eza-community";
|
||||||
repo = "eza";
|
repo = "eza";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-3g4eauJqnbIqWtDmRvKsDiZh1eAz171FP9idF2nBXLQ=";
|
hash = "sha256-ssP4jPO7Yt98ZCKOpQi7RwKfUBOHQ1dK5rzWxAJD9Jc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-HS/nmLxr5zvyneiSJk9tPUhszF5vFwSo5HMsRql9I38=";
|
cargoHash = "sha256-XxqAAs44iZuqcAsixIqEgUHWytwS9umuM/KIPosrfRo=";
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
|
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
|
||||||
buildInputs = [ zlib ]
|
buildInputs = [ zlib ]
|
||||||
|
45
pkgs/tools/networking/ntpd-rs/default.nix
Normal file
45
pkgs/tools/networking/ntpd-rs/default.nix
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{ lib
|
||||||
|
, rustPlatform
|
||||||
|
, fetchFromGitHub
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "ntpd-rs";
|
||||||
|
version = "0.3.7";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pendulum-project";
|
||||||
|
repo = "ntpd-rs";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-AUCzsveG9U+KxYO/4LGmyCPkR+w9pGDA/vTzMAGiVuI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoHash = "sha256-6FUVkr3uock43ZBHuMEVIZ5F8Oh8wMifh2EokMWv4hU=";
|
||||||
|
|
||||||
|
checkFlags = [
|
||||||
|
# doesn't find the testca
|
||||||
|
"--skip=keyexchange::tests::key_exchange_roundtrip"
|
||||||
|
# seems flaky
|
||||||
|
"--skip=algorithm::kalman::peer::tests::test_offset_steering_and_measurements"
|
||||||
|
# needs networking
|
||||||
|
"--skip=hwtimestamp::tests::get_hwtimestamp"
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
install -vDt $out/lib/systemd/system pkg/common/ntpd-rs.service
|
||||||
|
|
||||||
|
for testprog in demobilize-server rate-limit-server nts-ke nts-ke-server peer-state simple-daemon; do
|
||||||
|
moveToOutput bin/$testprog "$tests"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
outputs = [ "out" "tests" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A full-featured implementation of the Network Time Protocol";
|
||||||
|
homepage = "https://tweedegolf.nl/en/pendulum";
|
||||||
|
changelog = "https://github.com/pendulum-project/ntpd-rs/blob/v${version}/CHANGELOG.md";
|
||||||
|
license = with licenses; [ mit /* or */ asl20 ];
|
||||||
|
maintainers = with maintainers; [ fpletz ];
|
||||||
|
};
|
||||||
|
}
|
@ -12,13 +12,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "ugrep";
|
pname = "ugrep";
|
||||||
version = "4.0.4";
|
version = "4.0.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Genivia";
|
owner = "Genivia";
|
||||||
repo = "ugrep";
|
repo = "ugrep";
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-VkONia3xhhgCcq+dh5lNYoj3C8abDYNG7JfoBXomMUw=";
|
hash = "sha256-7cE8kbj8ChvHOPb1F7Fj9talg82nXpXRPt4oBSGSWZw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
1148
pkgs/tools/wayland/shotman/Cargo.lock
generated
1148
pkgs/tools/wayland/shotman/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -9,21 +9,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "shotman";
|
pname = "shotman";
|
||||||
version = "0.4.3";
|
version = "0.4.5";
|
||||||
|
|
||||||
src = fetchFromSourcehut {
|
src = fetchFromSourcehut {
|
||||||
owner = "~whynothugo";
|
owner = "~whynothugo";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-c2fgP6XB/fqKfsjqRRQpOFzHZyF/a9tLAKIGdKFAcSQ=";
|
hash = "sha256-SctWNhYCFTAOOnDEcsFZH61+QQAcmup11GVVXA1U5Dw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoLock = {
|
cargoHash = "sha256-q5scdgfB5NgtjAgnIy/+c+y/mymF0b9ZZSz2LmM0pfw=";
|
||||||
lockFile = ./Cargo.lock;
|
|
||||||
outputHashes = {
|
|
||||||
"smithay-client-toolkit-0.16.0" = "sha256-n+s+qH39tna0yN44D6GGlQGZHjsr9FBpp+NZItyqwaE=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||||
|
|
||||||
@ -39,6 +34,6 @@ rustPlatform.buildRustPackage rec {
|
|||||||
homepage = "https://git.sr.ht/~whynothugo/shotman";
|
homepage = "https://git.sr.ht/~whynothugo/shotman";
|
||||||
license = licenses.isc;
|
license = licenses.isc;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ zendo ];
|
maintainers = with maintainers; [ zendo fpletz ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -973,6 +973,7 @@ mapAliases ({
|
|||||||
linuxPackages_6_2 = linuxKernel.packages.linux_6_2;
|
linuxPackages_6_2 = linuxKernel.packages.linux_6_2;
|
||||||
linuxPackages_6_3 = linuxKernel.packages.linux_6_3;
|
linuxPackages_6_3 = linuxKernel.packages.linux_6_3;
|
||||||
linuxPackages_6_4 = linuxKernel.packages.linux_6_4;
|
linuxPackages_6_4 = linuxKernel.packages.linux_6_4;
|
||||||
|
linuxPackages_6_5 = linuxKernel.packages.linux_6_5;
|
||||||
linuxPackages_hardkernel_4_14 = linuxKernel.packages.hardkernel_4_14;
|
linuxPackages_hardkernel_4_14 = linuxKernel.packages.hardkernel_4_14;
|
||||||
linuxPackages_rpi0 = linuxKernel.packages.linux_rpi1;
|
linuxPackages_rpi0 = linuxKernel.packages.linux_rpi1;
|
||||||
linuxPackages_rpi02w = linuxKernel.packages.linux_rpi3;
|
linuxPackages_rpi02w = linuxKernel.packages.linux_rpi3;
|
||||||
@ -997,6 +998,7 @@ mapAliases ({
|
|||||||
linux_6_2 = linuxKernel.kernels.linux_6_2;
|
linux_6_2 = linuxKernel.kernels.linux_6_2;
|
||||||
linux_6_3 = linuxKernel.kernels.linux_6_3;
|
linux_6_3 = linuxKernel.kernels.linux_6_3;
|
||||||
linux_6_4 = linuxKernel.kernels.linux_6_4;
|
linux_6_4 = linuxKernel.kernels.linux_6_4;
|
||||||
|
linux_6_5 = linuxKernel.kernels.linux_6_5;
|
||||||
linuxPackages_mptcp = throw "'linuxPackages_mptcp' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
|
linuxPackages_mptcp = throw "'linuxPackages_mptcp' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
|
||||||
linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
|
linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
|
||||||
linux_mptcp_95 = throw "'linux_mptcp_95' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
|
linux_mptcp_95 = throw "'linux_mptcp_95' has been moved to https://github.com/teto/mptcp-flake"; # Converted to throw 2022-10-04
|
||||||
|
@ -1890,6 +1890,8 @@ with pkgs;
|
|||||||
|
|
||||||
nominatim = callPackage ../servers/nominatim { };
|
nominatim = callPackage ../servers/nominatim { };
|
||||||
|
|
||||||
|
ntpd-rs = callPackage ../tools/networking/ntpd-rs { };
|
||||||
|
|
||||||
ocs-url = libsForQt5.callPackage ../tools/misc/ocs-url { };
|
ocs-url = libsForQt5.callPackage ../tools/misc/ocs-url { };
|
||||||
|
|
||||||
openbugs = pkgsi686Linux.callPackage ../applications/science/machine-learning/openbugs { };
|
openbugs = pkgsi686Linux.callPackage ../applications/science/machine-learning/openbugs { };
|
||||||
@ -9605,6 +9607,14 @@ with pkgs;
|
|||||||
|
|
||||||
jupyter = callPackage ../applications/editors/jupyter { };
|
jupyter = callPackage ../applications/editors/jupyter { };
|
||||||
|
|
||||||
|
jupyter-all = jupyter.override {
|
||||||
|
definitions = {
|
||||||
|
clojure = clojupyter.definition;
|
||||||
|
octave = octave-kernel.definition;
|
||||||
|
# wolfram = wolfram-for-jupyter-kernel.definition; # unfree
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
jupyter-kernel = callPackage ../applications/editors/jupyter/kernel.nix { };
|
jupyter-kernel = callPackage ../applications/editors/jupyter/kernel.nix { };
|
||||||
|
|
||||||
justify = callPackage ../tools/text/justify { };
|
justify = callPackage ../tools/text/justify { };
|
||||||
|
@ -182,6 +182,13 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
linux_6_5 = callPackage ../os-specific/linux/kernel/linux-6.5.nix {
|
||||||
|
kernelPatches = [
|
||||||
|
kernelPatches.bridge_stp_helper
|
||||||
|
kernelPatches.request_key_helper
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
linux_testing = let
|
linux_testing = let
|
||||||
testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
|
testing = callPackage ../os-specific/linux/kernel/linux-testing.nix {
|
||||||
kernelPatches = [
|
kernelPatches = [
|
||||||
@ -575,6 +582,7 @@ in {
|
|||||||
linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
|
linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
|
||||||
linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
|
linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
|
||||||
linux_6_4 = recurseIntoAttrs (packagesFor kernels.linux_6_4);
|
linux_6_4 = recurseIntoAttrs (packagesFor kernels.linux_6_4);
|
||||||
|
linux_6_5 = recurseIntoAttrs (packagesFor kernels.linux_6_5);
|
||||||
} // lib.optionalAttrs config.allowAliases {
|
} // lib.optionalAttrs config.allowAliases {
|
||||||
linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
|
linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
|
||||||
linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
|
linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
|
||||||
@ -636,7 +644,7 @@ in {
|
|||||||
packageAliases = {
|
packageAliases = {
|
||||||
linux_default = packages.linux_6_1;
|
linux_default = packages.linux_6_1;
|
||||||
# Update this when adding the newest kernel major version!
|
# Update this when adding the newest kernel major version!
|
||||||
linux_latest = packages.linux_6_4;
|
linux_latest = packages.linux_6_5;
|
||||||
linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake";
|
linux_mptcp = throw "'linux_mptcp' has been moved to https://github.com/teto/mptcp-flake";
|
||||||
linux_rt_default = packages.linux_rt_5_4;
|
linux_rt_default = packages.linux_rt_5_4;
|
||||||
linux_rt_latest = packages.linux_rt_6_1;
|
linux_rt_latest = packages.linux_rt_6_1;
|
||||||
|
Loading…
Reference in New Issue
Block a user