Merge master into staging-next
This commit is contained in:
commit
9f3079a7c3
45 changed files with 596 additions and 369 deletions
lib/path
nixos
doc/manual/release-notes
modules
pkgs
applications
editors/vscode
emulators
graphics
misc
networking/cluster/tanka
office
video/kodi
window-managers
hyprwm
hyprland
hyprpaper
xdg-desktop-portal-hyprland
icewm
data/themes/adwaita-qt
development
interpreters/luau
libraries
python-modules
diofant
dvc-data
govee-ble
jupyter-packaging
pyrainbird
tools
os-specific/linux/kernel
servers/monitoring/grafana-agent
tools
X11/caffeine-ng
admin/credhub-cli
misc/brotab
security/terrascan
text/mdbook
top-level
|
@ -121,17 +121,18 @@ let
|
||||||
|
|
||||||
in /* No rec! Add dependencies on this file at the top. */ {
|
in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
|
|
||||||
/* Append a subpath string to a path.
|
/*
|
||||||
|
Append a subpath string to a path.
|
||||||
|
|
||||||
Like `path + ("/" + string)` but safer, because it errors instead of returning potentially surprising results.
|
Like `path + ("/" + string)` but safer, because it errors instead of returning potentially surprising results.
|
||||||
More specifically, it checks that the first argument is a [path value type](https://nixos.org/manual/nix/stable/language/values.html#type-path"),
|
More specifically, it checks that the first argument is a [path value type](https://nixos.org/manual/nix/stable/language/values.html#type-path"),
|
||||||
and that the second argument is a valid subpath string (see `lib.path.subpath.isValid`).
|
and that the second argument is a [valid subpath string](#function-library-lib.path.subpath.isValid).
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
|
|
||||||
- Not influenced by subpath normalisation
|
- Not influenced by subpath [normalisation](#function-library-lib.path.subpath.normalise):
|
||||||
|
|
||||||
append p s == append p (subpath.normalise s)
|
append p s == append p (subpath.normalise s)
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
append :: Path -> String -> Path
|
append :: Path -> String -> Path
|
||||||
|
@ -175,26 +176,26 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
path + ("/" + subpath);
|
path + ("/" + subpath);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Whether the first path is a component-wise prefix of the second path.
|
Whether the first path is a component-wise prefix of the second path.
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
|
|
||||||
- `hasPrefix p q` is only true if `q == append p s` for some subpath `s`.
|
- `hasPrefix p q` is only true if [`q == append p s`](#function-library-lib.path.append) for some [subpath](#function-library-lib.path.subpath.isValid) `s`.
|
||||||
|
|
||||||
- `hasPrefix` is a [non-strict partial order](https://en.wikipedia.org/wiki/Partially_ordered_set#Non-strict_partial_order) over the set of all path values
|
- `hasPrefix` is a [non-strict partial order](https://en.wikipedia.org/wiki/Partially_ordered_set#Non-strict_partial_order) over the set of all path values.
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
hasPrefix :: Path -> Path -> Bool
|
hasPrefix :: Path -> Path -> Bool
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
hasPrefix /foo /foo/bar
|
hasPrefix /foo /foo/bar
|
||||||
=> true
|
=> true
|
||||||
hasPrefix /foo /foo
|
hasPrefix /foo /foo
|
||||||
=> true
|
=> true
|
||||||
hasPrefix /foo/bar /foo
|
hasPrefix /foo/bar /foo
|
||||||
=> false
|
=> false
|
||||||
hasPrefix /. /foo
|
hasPrefix /. /foo
|
||||||
=> true
|
=> true
|
||||||
*/
|
*/
|
||||||
hasPrefix =
|
hasPrefix =
|
||||||
path1:
|
path1:
|
||||||
|
@ -219,27 +220,27 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
take (length path1Deconstructed.components) path2Deconstructed.components == path1Deconstructed.components;
|
take (length path1Deconstructed.components) path2Deconstructed.components == path1Deconstructed.components;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Remove the first path as a component-wise prefix from the second path.
|
Remove the first path as a component-wise prefix from the second path.
|
||||||
The result is a normalised subpath string, see `lib.path.subpath.normalise`.
|
The result is a [normalised subpath string](#function-library-lib.path.subpath.normalise).
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
|
|
||||||
- Inverts `append` for normalised subpaths:
|
- Inverts [`append`](#function-library-lib.path.append) for [normalised subpath string](#function-library-lib.path.subpath.normalise):
|
||||||
|
|
||||||
removePrefix p (append p s) == subpath.normalise s
|
removePrefix p (append p s) == subpath.normalise s
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
removePrefix :: Path -> Path -> String
|
removePrefix :: Path -> Path -> String
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
removePrefix /foo /foo/bar/baz
|
removePrefix /foo /foo/bar/baz
|
||||||
=> "./bar/baz"
|
=> "./bar/baz"
|
||||||
removePrefix /foo /foo
|
removePrefix /foo /foo
|
||||||
=> "./."
|
=> "./."
|
||||||
removePrefix /foo/bar /foo
|
removePrefix /foo/bar /foo
|
||||||
=> <error>
|
=> <error>
|
||||||
removePrefix /. /foo
|
removePrefix /. /foo
|
||||||
=> "./foo"
|
=> "./foo"
|
||||||
*/
|
*/
|
||||||
removePrefix =
|
removePrefix =
|
||||||
path1:
|
path1:
|
||||||
|
@ -272,41 +273,43 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
joinRelPath components;
|
joinRelPath components;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Split the filesystem root from a [path](https://nixos.org/manual/nix/stable/language/values.html#type-path).
|
Split the filesystem root from a [path](https://nixos.org/manual/nix/stable/language/values.html#type-path).
|
||||||
The result is an attribute set with these attributes:
|
The result is an attribute set with these attributes:
|
||||||
- `root`: The filesystem root of the path, meaning that this directory has no parent directory.
|
- `root`: The filesystem root of the path, meaning that this directory has no parent directory.
|
||||||
- `subpath`: The [normalised subpath string](#function-library-lib.path.subpath.normalise) that when [appended](#function-library-lib.path.append) to `root` returns the original path.
|
- `subpath`: The [normalised subpath string](#function-library-lib.path.subpath.normalise) that when [appended](#function-library-lib.path.append) to `root` returns the original path.
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
- [Appending](#function-library-lib.path.append) the `root` and `subpath` gives the original path:
|
- [Appending](#function-library-lib.path.append) the `root` and `subpath` gives the original path:
|
||||||
|
|
||||||
p ==
|
p ==
|
||||||
append
|
append
|
||||||
(splitRoot p).root
|
(splitRoot p).root
|
||||||
(splitRoot p).subpath
|
(splitRoot p).subpath
|
||||||
|
|
||||||
- Trying to get the parent directory of `root` using [`readDir`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-readDir) returns `root` itself:
|
- Trying to get the parent directory of `root` using [`readDir`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-readDir) returns `root` itself:
|
||||||
|
|
||||||
dirOf (splitRoot p).root == (splitRoot p).root
|
dirOf (splitRoot p).root == (splitRoot p).root
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
splitRoot :: Path -> { root :: Path, subpath :: String }
|
splitRoot :: Path -> { root :: Path, subpath :: String }
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
splitRoot /foo/bar
|
splitRoot /foo/bar
|
||||||
=> { root = /.; subpath = "./foo/bar"; }
|
=> { root = /.; subpath = "./foo/bar"; }
|
||||||
|
|
||||||
splitRoot /.
|
splitRoot /.
|
||||||
=> { root = /.; subpath = "./."; }
|
=> { root = /.; subpath = "./."; }
|
||||||
|
|
||||||
# Nix neutralises `..` path components for all path values automatically
|
# Nix neutralises `..` path components for all path values automatically
|
||||||
splitRoot /foo/../bar
|
splitRoot /foo/../bar
|
||||||
=> { root = /.; subpath = "./bar"; }
|
=> { root = /.; subpath = "./bar"; }
|
||||||
|
|
||||||
splitRoot "/foo/bar"
|
splitRoot "/foo/bar"
|
||||||
=> <error>
|
=> <error>
|
||||||
*/
|
*/
|
||||||
splitRoot = path:
|
splitRoot =
|
||||||
|
# The path to split the root off of
|
||||||
|
path:
|
||||||
assert assertMsg
|
assert assertMsg
|
||||||
(isPath path)
|
(isPath path)
|
||||||
"lib.path.splitRoot: Argument is of type ${typeOf path}, but a path was expected";
|
"lib.path.splitRoot: Argument is of type ${typeOf path}, but a path was expected";
|
||||||
|
@ -317,46 +320,47 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
subpath = joinRelPath deconstructed.components;
|
subpath = joinRelPath deconstructed.components;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Whether a value is a valid subpath string.
|
/*
|
||||||
|
Whether a value is a valid subpath string.
|
||||||
|
|
||||||
A subpath string points to a specific file or directory within an absolute base directory.
|
A subpath string points to a specific file or directory within an absolute base directory.
|
||||||
It is a stricter form of a relative path that excludes `..` components, since those could escape the base directory.
|
It is a stricter form of a relative path that excludes `..` components, since those could escape the base directory.
|
||||||
|
|
||||||
- The value is a string
|
- The value is a string.
|
||||||
|
|
||||||
- The string is not empty
|
- The string is not empty.
|
||||||
|
|
||||||
- The string doesn't start with a `/`
|
- The string doesn't start with a `/`.
|
||||||
|
|
||||||
- The string doesn't contain any `..` path components
|
- The string doesn't contain any `..` path components.
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
subpath.isValid :: String -> Bool
|
subpath.isValid :: String -> Bool
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
# Not a string
|
# Not a string
|
||||||
subpath.isValid null
|
subpath.isValid null
|
||||||
=> false
|
=> false
|
||||||
|
|
||||||
# Empty string
|
# Empty string
|
||||||
subpath.isValid ""
|
subpath.isValid ""
|
||||||
=> false
|
=> false
|
||||||
|
|
||||||
# Absolute path
|
# Absolute path
|
||||||
subpath.isValid "/foo"
|
subpath.isValid "/foo"
|
||||||
=> false
|
=> false
|
||||||
|
|
||||||
# Contains a `..` path component
|
# Contains a `..` path component
|
||||||
subpath.isValid "../foo"
|
subpath.isValid "../foo"
|
||||||
=> false
|
=> false
|
||||||
|
|
||||||
# Valid subpath
|
# Valid subpath
|
||||||
subpath.isValid "foo/bar"
|
subpath.isValid "foo/bar"
|
||||||
=> true
|
=> true
|
||||||
|
|
||||||
# Doesn't need to be normalised
|
# Doesn't need to be normalised
|
||||||
subpath.isValid "./foo//bar/"
|
subpath.isValid "./foo//bar/"
|
||||||
=> true
|
=> true
|
||||||
*/
|
*/
|
||||||
subpath.isValid =
|
subpath.isValid =
|
||||||
# The value to check
|
# The value to check
|
||||||
|
@ -364,15 +368,16 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
subpathInvalidReason value == null;
|
subpathInvalidReason value == null;
|
||||||
|
|
||||||
|
|
||||||
/* Join subpath strings together using `/`, returning a normalised subpath string.
|
/*
|
||||||
|
Join subpath strings together using `/`, returning a normalised subpath string.
|
||||||
|
|
||||||
Like `concatStringsSep "/"` but safer, specifically:
|
Like `concatStringsSep "/"` but safer, specifically:
|
||||||
|
|
||||||
- All elements must be valid subpath strings, see `lib.path.subpath.isValid`
|
- All elements must be [valid subpath strings](#function-library-lib.path.subpath.isValid).
|
||||||
|
|
||||||
- The result gets normalised, see `lib.path.subpath.normalise`
|
- The result gets [normalised](#function-library-lib.path.subpath.normalise).
|
||||||
|
|
||||||
- The edge case of an empty list gets properly handled by returning the neutral subpath `"./."`
|
- The edge case of an empty list gets properly handled by returning the neutral subpath `"./."`.
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
|
|
||||||
|
@ -386,12 +391,12 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
subpath.join [ (subpath.normalise p) "./." ] == subpath.normalise p
|
subpath.join [ (subpath.normalise p) "./." ] == subpath.normalise p
|
||||||
subpath.join [ "./." (subpath.normalise p) ] == subpath.normalise p
|
subpath.join [ "./." (subpath.normalise p) ] == subpath.normalise p
|
||||||
|
|
||||||
- Normalisation - the result is normalised according to `lib.path.subpath.normalise`:
|
- Normalisation - the result is [normalised](#function-library-lib.path.subpath.normalise):
|
||||||
|
|
||||||
subpath.join ps == subpath.normalise (subpath.join ps)
|
subpath.join ps == subpath.normalise (subpath.join ps)
|
||||||
|
|
||||||
- For non-empty lists, the implementation is equivalent to normalising the result of `concatStringsSep "/"`.
|
- For non-empty lists, the implementation is equivalent to [normalising](#function-library-lib.path.subpath.normalise) the result of `concatStringsSep "/"`.
|
||||||
Note that the above laws can be derived from this one.
|
Note that the above laws can be derived from this one:
|
||||||
|
|
||||||
ps != [] -> subpath.join ps == subpath.normalise (concatStringsSep "/" ps)
|
ps != [] -> subpath.join ps == subpath.normalise (concatStringsSep "/" ps)
|
||||||
|
|
||||||
|
@ -439,108 +444,109 @@ in /* No rec! Add dependencies on this file at the top. */ {
|
||||||
) 0 subpaths;
|
) 0 subpaths;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Split [a subpath](#function-library-lib.path.subpath.isValid) into its path component strings.
|
Split [a subpath](#function-library-lib.path.subpath.isValid) into its path component strings.
|
||||||
Throw an error if the subpath isn't valid.
|
Throw an error if the subpath isn't valid.
|
||||||
Note that the returned path components are also valid subpath strings, though they are intentionally not [normalised](#function-library-lib.path.subpath.normalise).
|
Note that the returned path components are also [valid subpath strings](#function-library-lib.path.subpath.isValid), though they are intentionally not [normalised](#function-library-lib.path.subpath.normalise).
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
|
|
||||||
- Splitting a subpath into components and [joining](#function-library-lib.path.subpath.join) the components gives the same subpath but [normalised](#function-library-lib.path.subpath.normalise):
|
- Splitting a subpath into components and [joining](#function-library-lib.path.subpath.join) the components gives the same subpath but [normalised](#function-library-lib.path.subpath.normalise):
|
||||||
|
|
||||||
subpath.join (subpath.components s) == subpath.normalise s
|
subpath.join (subpath.components s) == subpath.normalise s
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
subpath.components :: String -> [ String ]
|
subpath.components :: String -> [ String ]
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
subpath.components "."
|
subpath.components "."
|
||||||
=> [ ]
|
=> [ ]
|
||||||
|
|
||||||
subpath.components "./foo//bar/./baz/"
|
subpath.components "./foo//bar/./baz/"
|
||||||
=> [ "foo" "bar" "baz" ]
|
=> [ "foo" "bar" "baz" ]
|
||||||
|
|
||||||
subpath.components "/foo"
|
subpath.components "/foo"
|
||||||
=> <error>
|
=> <error>
|
||||||
*/
|
*/
|
||||||
subpath.components =
|
subpath.components =
|
||||||
|
# The subpath string to split into components
|
||||||
subpath:
|
subpath:
|
||||||
assert assertMsg (isValid subpath) ''
|
assert assertMsg (isValid subpath) ''
|
||||||
lib.path.subpath.components: Argument is not a valid subpath string:
|
lib.path.subpath.components: Argument is not a valid subpath string:
|
||||||
${subpathInvalidReason subpath}'';
|
${subpathInvalidReason subpath}'';
|
||||||
splitRelPath subpath;
|
splitRelPath subpath;
|
||||||
|
|
||||||
/* Normalise a subpath. Throw an error if the subpath isn't valid, see
|
/*
|
||||||
`lib.path.subpath.isValid`
|
Normalise a subpath. Throw an error if the subpath isn't [valid](#function-library-lib.path.subpath.isValid).
|
||||||
|
|
||||||
- Limit repeating `/` to a single one
|
- Limit repeating `/` to a single one.
|
||||||
|
|
||||||
- Remove redundant `.` components
|
- Remove redundant `.` components.
|
||||||
|
|
||||||
- Remove trailing `/` and `/.`
|
- Remove trailing `/` and `/.`.
|
||||||
|
|
||||||
- Add leading `./`
|
- Add leading `./`.
|
||||||
|
|
||||||
Laws:
|
Laws:
|
||||||
|
|
||||||
- Idempotency - normalising multiple times gives the same result:
|
- Idempotency - normalising multiple times gives the same result:
|
||||||
|
|
||||||
subpath.normalise (subpath.normalise p) == subpath.normalise p
|
subpath.normalise (subpath.normalise p) == subpath.normalise p
|
||||||
|
|
||||||
- Uniqueness - there's only a single normalisation for the paths that lead to the same file system node:
|
- Uniqueness - there's only a single normalisation for the paths that lead to the same file system node:
|
||||||
|
|
||||||
subpath.normalise p != subpath.normalise q -> $(realpath ${p}) != $(realpath ${q})
|
subpath.normalise p != subpath.normalise q -> $(realpath ${p}) != $(realpath ${q})
|
||||||
|
|
||||||
- Don't change the result when appended to a Nix path value:
|
- Don't change the result when [appended](#function-library-lib.path.append) to a Nix path value:
|
||||||
|
|
||||||
base + ("/" + p) == base + ("/" + subpath.normalise p)
|
append base p == append base (subpath.normalise p)
|
||||||
|
|
||||||
- Don't change the path according to `realpath`:
|
- Don't change the path according to `realpath`:
|
||||||
|
|
||||||
$(realpath ${p}) == $(realpath ${subpath.normalise p})
|
$(realpath ${p}) == $(realpath ${subpath.normalise p})
|
||||||
|
|
||||||
- Only error on invalid subpaths:
|
- Only error on [invalid subpaths](#function-library-lib.path.subpath.isValid):
|
||||||
|
|
||||||
builtins.tryEval (subpath.normalise p)).success == subpath.isValid p
|
builtins.tryEval (subpath.normalise p)).success == subpath.isValid p
|
||||||
|
|
||||||
Type:
|
Type:
|
||||||
subpath.normalise :: String -> String
|
subpath.normalise :: String -> String
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
# limit repeating `/` to a single one
|
# limit repeating `/` to a single one
|
||||||
subpath.normalise "foo//bar"
|
subpath.normalise "foo//bar"
|
||||||
=> "./foo/bar"
|
=> "./foo/bar"
|
||||||
|
|
||||||
# remove redundant `.` components
|
# remove redundant `.` components
|
||||||
subpath.normalise "foo/./bar"
|
subpath.normalise "foo/./bar"
|
||||||
=> "./foo/bar"
|
=> "./foo/bar"
|
||||||
|
|
||||||
# add leading `./`
|
# add leading `./`
|
||||||
subpath.normalise "foo/bar"
|
subpath.normalise "foo/bar"
|
||||||
=> "./foo/bar"
|
=> "./foo/bar"
|
||||||
|
|
||||||
# remove trailing `/`
|
# remove trailing `/`
|
||||||
subpath.normalise "foo/bar/"
|
subpath.normalise "foo/bar/"
|
||||||
=> "./foo/bar"
|
=> "./foo/bar"
|
||||||
|
|
||||||
# remove trailing `/.`
|
# remove trailing `/.`
|
||||||
subpath.normalise "foo/bar/."
|
subpath.normalise "foo/bar/."
|
||||||
=> "./foo/bar"
|
=> "./foo/bar"
|
||||||
|
|
||||||
# Return the current directory as `./.`
|
# Return the current directory as `./.`
|
||||||
subpath.normalise "."
|
subpath.normalise "."
|
||||||
=> "./."
|
=> "./."
|
||||||
|
|
||||||
# error on `..` path components
|
# error on `..` path components
|
||||||
subpath.normalise "foo/../bar"
|
subpath.normalise "foo/../bar"
|
||||||
=> <error>
|
=> <error>
|
||||||
|
|
||||||
# error on empty string
|
# error on empty string
|
||||||
subpath.normalise ""
|
subpath.normalise ""
|
||||||
=> <error>
|
=> <error>
|
||||||
|
|
||||||
# error on absolute path
|
# error on absolute path
|
||||||
subpath.normalise "/foo"
|
subpath.normalise "/foo"
|
||||||
=> <error>
|
=> <error>
|
||||||
*/
|
*/
|
||||||
subpath.normalise =
|
subpath.normalise =
|
||||||
# The subpath string to normalise
|
# The subpath string to normalise
|
||||||
|
|
|
@ -140,6 +140,16 @@
|
||||||
|
|
||||||
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
|
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
|
||||||
|
|
||||||
|
- GNOME module no longer forces Qt applications to use Adwaita style since it was buggy and is no longer maintained upstream. If you still want it, you can add the following options to your configuration but it will probably be eventually removed:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme = "gnome";
|
||||||
|
style = "adwaita";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
- `fontconfig` now defaults to using greyscale antialiasing instead of subpixel antialiasing because of a [recommendation from one of the downstreams](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/337). You can change this value by configuring [](#opt-fonts.fontconfig.subpixel.rgba) accordingly.
|
- `fontconfig` now defaults to using greyscale antialiasing instead of subpixel antialiasing because of a [recommendation from one of the downstreams](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/337). You can change this value by configuring [](#opt-fonts.fontconfig.subpixel.rgba) accordingly.
|
||||||
|
|
||||||
- The latest available version of Nextcloud is v27 (available as `pkgs.nextcloud27`). The installation logic is as follows:
|
- The latest available version of Nextcloud is v27 (available as `pkgs.nextcloud27`). The installation logic is as follows:
|
||||||
|
|
|
@ -32,11 +32,10 @@ in
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = cfg.package.override {
|
default = cfg.package.override {
|
||||||
enableXWayland = cfg.xwayland.enable;
|
enableXWayland = cfg.xwayland.enable;
|
||||||
hidpiXWayland = cfg.xwayland.hidpi;
|
enableNvidiaPatches = cfg.enableNvidiaPatches;
|
||||||
nvidiaPatches = cfg.nvidiaPatches;
|
|
||||||
};
|
};
|
||||||
defaultText = literalExpression
|
defaultText = literalExpression
|
||||||
"`wayland.windowManager.hyprland.package` with applied configuration";
|
"`programs.hyprland.package` with applied configuration";
|
||||||
description = mdDoc ''
|
description = mdDoc ''
|
||||||
The Hyprland package after applying configuration.
|
The Hyprland package after applying configuration.
|
||||||
'';
|
'';
|
||||||
|
@ -44,17 +43,9 @@ in
|
||||||
|
|
||||||
portalPackage = mkPackageOptionMD pkgs "xdg-desktop-portal-hyprland" { };
|
portalPackage = mkPackageOptionMD pkgs "xdg-desktop-portal-hyprland" { };
|
||||||
|
|
||||||
xwayland = {
|
xwayland.enable = mkEnableOption (mdDoc "XWayland") // { default = true; };
|
||||||
enable = mkEnableOption (mdDoc "XWayland") // { default = true; };
|
|
||||||
hidpi = mkEnableOption null // {
|
|
||||||
description = mdDoc ''
|
|
||||||
Enable HiDPI XWayland, based on [XWayland MR 733](https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733).
|
|
||||||
See <https://wiki.hyprland.org/Nix/Options-Overrides/#xwayland-hidpi> for more info.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nvidiaPatches = mkEnableOption (mdDoc "patching wlroots for better Nvidia support");
|
enableNvidiaPatches = mkEnableOption (mdDoc "patching wlroots for better Nvidia support");
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -77,4 +68,15 @@ in
|
||||||
extraPortals = [ finalPortalPackage ];
|
extraPortals = [ finalPortalPackage ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
imports = with lib; [
|
||||||
|
(mkRemovedOptionModule
|
||||||
|
[ "programs" "hyprland" "xwayland" "hidpi" ]
|
||||||
|
"XWayland patches are deprecated. Refer to https://wiki.hyprland.org/Configuring/XWayland"
|
||||||
|
)
|
||||||
|
(mkRenamedOptionModule
|
||||||
|
[ "programs" "hyprland" "nvidiaPatches" ]
|
||||||
|
[ "programs" "hyprland" "enableNvidiaPatches" ]
|
||||||
|
)
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ let
|
||||||
ExecStart = "${pkgs.liquidsoap}/bin/liquidsoap ${stream}";
|
ExecStart = "${pkgs.liquidsoap}/bin/liquidsoap ${stream}";
|
||||||
User = "liquidsoap";
|
User = "liquidsoap";
|
||||||
LogsDirectory = "liquidsoap";
|
LogsDirectory = "liquidsoap";
|
||||||
|
Restart = "always";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -987,7 +987,7 @@ in {
|
||||||
} // optionalAttrs (bssCfg.authentication.wpaPassword != null) {
|
} // optionalAttrs (bssCfg.authentication.wpaPassword != null) {
|
||||||
wpa_passphrase = bssCfg.authentication.wpaPassword;
|
wpa_passphrase = bssCfg.authentication.wpaPassword;
|
||||||
} // optionalAttrs (bssCfg.authentication.wpaPskFile != null) {
|
} // optionalAttrs (bssCfg.authentication.wpaPskFile != null) {
|
||||||
wpa_psk_file = bssCfg.authentication.wpaPskFile;
|
wpa_psk_file = toString bssCfg.authentication.wpaPskFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
dynamicConfigScripts = let
|
dynamicConfigScripts = let
|
||||||
|
|
|
@ -352,13 +352,6 @@ in
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# Harmonize Qt application style and also make them use the portal for file chooser dialog.
|
|
||||||
qt = {
|
|
||||||
enable = mkDefault true;
|
|
||||||
platformTheme = mkDefault "gnome";
|
|
||||||
style = mkDefault "adwaita";
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager.enable = mkDefault true;
|
networking.networkmanager.enable = mkDefault true;
|
||||||
|
|
||||||
services.xserver.updateDbusEnvironment = true;
|
services.xserver.updateDbusEnvironment = true;
|
||||||
|
|
|
@ -30,21 +30,21 @@ let
|
||||||
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
||||||
|
|
||||||
sha256 = {
|
sha256 = {
|
||||||
x86_64-linux = "0hc1pfrhmdydwgyz3mjp45nmzs101iffam7ciximqmnhf1s1x4qf";
|
x86_64-linux = "0j3lmyj77qalhn8hrgfg3zgw6jqv8rscfy16vhkl0ir2xnmb19jf";
|
||||||
x86_64-darwin = "1snrr4lsa5qdpdl80wx8ymxp8h1bhd5ablhcgkhzvmj5dh7jrywk";
|
x86_64-darwin = "06dx8lhw1cqignv06pcjjv8v743kr8bck1iqgl1881jmqyhggi4f";
|
||||||
aarch64-linux = "0pm5znbjm79ziwdx37cc75qnbf0jv3yrm2xg7cykavn43gz97abw";
|
aarch64-linux = "0nyd452wcp5qw2cx1zj89v4fgk3jvbk3hhiix9a0gv150q48vyfa";
|
||||||
aarch64-darwin = "0bq5hvgv228x7vby4475cc65g24kpv9kvj06p6c0y6a2a79j45by";
|
aarch64-darwin = "1yfbsfnkjbf99yl1dcflpyxppa9mhnxigyyplz0jaqgpwmhs2s0b";
|
||||||
armv7l-linux = "11gxpqflakp4cwzkpqrwsd6m5fls1vnaigppc4bq9flfknwkjfrx";
|
armv7l-linux = "1miz95rz2fdw7xplflnydzq57hnz894xg29mhpywwiib8kypfrm7";
|
||||||
}.${system} or throwSystem;
|
}.${system} or throwSystem;
|
||||||
in
|
in
|
||||||
callPackage ./generic.nix rec {
|
callPackage ./generic.nix rec {
|
||||||
# Please backport all compatible updates to the stable release.
|
# Please backport all compatible updates to the stable release.
|
||||||
# This is important for the extension ecosystem.
|
# This is important for the extension ecosystem.
|
||||||
version = "1.81.0";
|
version = "1.81.1";
|
||||||
pname = "vscode" + lib.optionalString isInsiders "-insiders";
|
pname = "vscode" + lib.optionalString isInsiders "-insiders";
|
||||||
|
|
||||||
# This is used for VS Code - Remote SSH test
|
# This is used for VS Code - Remote SSH test
|
||||||
rev = "6445d93c81ebe42c4cbd7a60712e0b17d9463e97";
|
rev = "6c3e3dba23e8fadc360aed75ce363ba185c49794";
|
||||||
|
|
||||||
executableName = "code" + lib.optionalString isInsiders "-insiders";
|
executableName = "code" + lib.optionalString isInsiders "-insiders";
|
||||||
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
|
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
|
||||||
|
@ -68,7 +68,7 @@ in
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
name = "vscode-server-${rev}.tar.gz";
|
name = "vscode-server-${rev}.tar.gz";
|
||||||
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
||||||
sha256 = "07x9lmkyhra4hplsgdhh97dixsx92i7lab5z5ihs2wqvvzl69ah2";
|
sha256 = "1xfyl81d5l2bl7k4vz4rnj84j1ijwv90sqgv9lnqzza2dfckfd6m";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ let
|
||||||
compat-list = fetchurl {
|
compat-list = fetchurl {
|
||||||
name = "citra-compat-list";
|
name = "citra-compat-list";
|
||||||
url = "https://web.archive.org/web/20230807103651/https://api.citra-emu.org/gamedb/";
|
url = "https://web.archive.org/web/20230807103651/https://api.citra-emu.org/gamedb/";
|
||||||
hash = "sha256-Ma1SXgzhyMHa/MeoYuf8b+QYPjhoQEeKklLbGbkHwEk=";
|
hash = "sha256-J+zqtWde5NgK2QROvGewtXGRAWUTNSKHNMG6iu9m1fU=";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
nightly = qt6Packages.callPackage ./generic.nix rec {
|
nightly = qt6Packages.callPackage ./generic.nix rec {
|
||||||
|
|
72
pkgs/applications/emulators/nuked-md/default.nix
Normal file
72
pkgs/applications/emulators/nuked-md/default.nix
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gitUpdater
|
||||||
|
, cmake
|
||||||
|
, SDL2
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "nuked-md";
|
||||||
|
version = "1.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "nukeykt";
|
||||||
|
repo = "Nuked-MD";
|
||||||
|
rev = "v${finalAttrs.version}";
|
||||||
|
hash = "sha256-Pe+TSu9FBUhxtACq+6jMbrUxiwKLOJgQbEcmUrcrjMs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Interesting detail about our SDL2 packaging:
|
||||||
|
# Because we build it with the configure script instead of CMake, we ship sdl2-config.cmake instead of SDL2Config.cmake
|
||||||
|
# The former doesn't set SDL2_FOUND while the latter does (like CMake config scripts should), which causes this issue:
|
||||||
|
#
|
||||||
|
# CMake Error at CMakeLists.txt:5 (find_package):
|
||||||
|
# Found package configuration file:
|
||||||
|
#
|
||||||
|
# <SDL2.dev>/lib/cmake/SDL2/sdl2-config.cmake
|
||||||
|
#
|
||||||
|
# but it set SDL2_FOUND to FALSE so package "SDL2" is considered to be NOT
|
||||||
|
# FOUND.
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace CMakeLists.txt \
|
||||||
|
--replace 'SDL2 REQUIRED' 'SDL2'
|
||||||
|
'';
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
SDL2
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -Dm755 Nuked-MD $out/bin/Nuked-MD
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
updateScript = gitUpdater {
|
||||||
|
rev-prefix = "v";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Cycle accurate Mega Drive emulator";
|
||||||
|
longDescription = ''
|
||||||
|
Cycle accurate Mega Drive core. The goal of this project is to emulate Sega Mega Drive chipset as accurately as
|
||||||
|
possible using decapped chips photos.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/nukeykt/Nuked-MD";
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
mainProgram = "Nuked-MD";
|
||||||
|
maintainers = with maintainers; [ OPNA2608 ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
})
|
71
pkgs/applications/graphics/conjure/default.nix
Normal file
71
pkgs/applications/graphics/conjure/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
{ fetchFromGitHub
|
||||||
|
, gobject-introspection
|
||||||
|
, lib
|
||||||
|
, libadwaita
|
||||||
|
, python3Packages
|
||||||
|
, wrapGAppsHook
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, desktop-file-utils
|
||||||
|
, pkg-config
|
||||||
|
, appstream-glib
|
||||||
|
, gtk4
|
||||||
|
}:
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "conjure";
|
||||||
|
version = "0.1.2";
|
||||||
|
|
||||||
|
format = "other";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "nate-xyz";
|
||||||
|
repo = "conjure";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-qWeqUQxTTnmJt40Jm1qDTGGuSQikkurzOux8sZsmDQk=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
gobject-introspection
|
||||||
|
wrapGAppsHook
|
||||||
|
desktop-file-utils
|
||||||
|
appstream-glib
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
gtk4
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libadwaita
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
pygobject3
|
||||||
|
loguru
|
||||||
|
wand
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = with python3Packages; [
|
||||||
|
pytest
|
||||||
|
];
|
||||||
|
|
||||||
|
dontWrapGApps = true;
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Magically transform your images";
|
||||||
|
longDescription = ''
|
||||||
|
Resize, crop, rotate, flip images, apply various filters and effects,
|
||||||
|
adjust levels and brightness, and much more. An intuitive tool for designers,
|
||||||
|
artists, or just someone who wants to enhance their images.
|
||||||
|
Built on top of the popular image processing library, ImageMagick with python
|
||||||
|
bindings from Wand.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/nate-xyz/conjure";
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = with maintainers; [ sund3RRR ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
];
|
];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libsForQt5.poppler
|
libsForQt5.poppler
|
||||||
|
libsForQt5.qtwayland
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
||||||
|
|
|
@ -8,10 +8,10 @@ buildGoModule rec {
|
||||||
owner = "pinpox";
|
owner = "pinpox";
|
||||||
repo = "base16-universal-manager";
|
repo = "base16-universal-manager";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "11kal7x0lajzydbc2cvbsix9ympinsiqzfib7dg4b3xprqkyb9zl";
|
hash = "sha256-9KflJ863j0VeOyu6j6O28VafetRrM8FW818qCvqhaoY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "19rba689319w3wf0b10yafydyz01kqg8b051vnijcyjyk0khwvsk";
|
vendorHash = "sha256-U28OJ5heeiaj3aGAhR6eAXzfvFMehAUcHzyFkZBRK6c=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A universal manager to set base16 themes for any supported application";
|
description = "A universal manager to set base16 themes for any supported application";
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
{ lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff
|
{ lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff
|
||||||
, libwebp, pkg-config, librsvg, glib, gtk2, libXext, libXxf86vm, poppler, vlc
|
, libwebp, pkg-config, librsvg, glib, gtk2, libXext, libXxf86vm, poppler, vlc
|
||||||
, ghostscript, makeWrapper, tzdata, makeDesktopItem, copyDesktopItems }:
|
, ghostscript, makeWrapper, tzdata, makeDesktopItem, copyDesktopItems
|
||||||
|
, directoryListingUpdater }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "eaglemode";
|
pname = "eaglemode";
|
||||||
version = "0.96.0";
|
version = "0.96.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2";
|
url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2";
|
||||||
hash = "sha256-aMVXJpfws9rh2Eaa/EzSLwtwvn0pVJlEbhxzvXME1hs=";
|
hash = "sha256-FIhCcMghzLg7Odcsou9hBw7kIaqLVUFEAKUk9uwRNNw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Fixes "Error: No time zones found." on the clock
|
# Fixes "Error: No time zones found." on the clock
|
||||||
|
@ -55,6 +56,11 @@ stdenv.mkDerivation rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
passthru.updateScript = directoryListingUpdater {
|
||||||
|
url = "https://eaglemode.sourceforge.net/download.html";
|
||||||
|
extraRegex = "(?!.*(x86_64|setup64|livecd)).*";
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://eaglemode.sourceforge.net";
|
homepage = "https://eaglemode.sourceforge.net";
|
||||||
description = "Zoomable User Interface";
|
description = "Zoomable User Interface";
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "tanka";
|
pname = "tanka";
|
||||||
version = "0.25.0";
|
version = "0.26.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-LAOcDgosSGE7sLiQYSimz//oZ3FHcx3PTjtG0WdDNmg=";
|
sha256 = "sha256-xKB/SKiw3cKqdpl869Bs/NO1Jbrla8Un0hH4kIGqAPs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-//uxNK8u7zIVeIUN401DXtkJsX/1iVfDcoFwcs8Y3cg=";
|
vendorHash = "sha256-+BCUQ+czqWkxbDoSvCaAxewTN0SuI+hCHEQpLOvNGj4=";
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
|
|
@ -19,14 +19,14 @@
|
||||||
let
|
let
|
||||||
pname = "qownnotes";
|
pname = "qownnotes";
|
||||||
appname = "QOwnNotes";
|
appname = "QOwnNotes";
|
||||||
version = "23.7.3";
|
version = "23.8.0";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
inherit pname appname version;
|
inherit pname appname version;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
|
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
|
||||||
hash = "sha256-Jk0KPYYB+CW60ggVn58JKJ1UX5VXWbSUC+osHG4wjR0=";
|
hash = "sha256-ZvZOUcKtY+V0zhqsOYNi3W8yxRPUdYsp2kSHETRCTLs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -12,13 +12,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "treesheets";
|
pname = "treesheets";
|
||||||
version = "unstable-2023-08-08";
|
version = "unstable-2023-08-10";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "aardappel";
|
owner = "aardappel";
|
||||||
repo = "treesheets";
|
repo = "treesheets";
|
||||||
rev = "e7ebdbc21e69c0cda99ab1c8bdf873495b6ab9a0";
|
rev = "18847fc16e05078ff5a8d0106a38ce2059ec497f";
|
||||||
sha256 = "P/ln7JghEP8MdTzPMmPH+0k+aRuOL/m6VkjYrtynUPE=";
|
sha256 = "bz2dX4CSPOFEg+6LnqcG46jOFCmjgnrhPyaljyVlDY4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
|
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
|
||||||
|
, fetchpatch
|
||||||
, pkg-config, cmake, yasm, python3Packages
|
, pkg-config, cmake, yasm, python3Packages
|
||||||
, libxcrypt, libgcrypt, libgpg-error, libunistring
|
, libxcrypt, libgcrypt, libgpg-error, libunistring
|
||||||
, boost, avahi, lame
|
, boost, avahi, lame
|
||||||
|
@ -110,7 +111,15 @@ in stdenv.mkDerivation {
|
||||||
version = kodiVersion;
|
version = kodiVersion;
|
||||||
|
|
||||||
src = kodi_src;
|
src = kodi_src;
|
||||||
|
patches = [
|
||||||
|
# Fix compatiblity with fmt 10.0 (from spdlog).
|
||||||
|
# Remove with the next release: https://github.com/xbmc/xbmc/pull/23453
|
||||||
|
(fetchpatch {
|
||||||
|
name = "Fix fmt10 compat";
|
||||||
|
url = "https://github.com/xbmc/xbmc/pull/23453.patch";
|
||||||
|
hash = "sha256-zMUparbQ8gfgeXj8W3MDmPi5OgLNz/zGCJINU7H6Rx0=";
|
||||||
|
})
|
||||||
|
];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gnutls libidn2 libtasn1 nasm p11-kit
|
gnutls libidn2 libtasn1 nasm p11-kit
|
||||||
libxml2 python3Packages.python
|
libxml2 python3Packages.python
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pkg-config
|
, pkg-config
|
||||||
|
, makeWrapper
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
|
, binutils
|
||||||
, cairo
|
, cairo
|
||||||
, git
|
, git
|
||||||
, hyprland-protocols
|
, hyprland-protocols
|
||||||
|
@ -24,34 +26,35 @@
|
||||||
, xcbutilwm
|
, xcbutilwm
|
||||||
, xwayland
|
, xwayland
|
||||||
, debug ? false
|
, debug ? false
|
||||||
|
, enableNvidiaPatches ? false
|
||||||
, enableXWayland ? true
|
, enableXWayland ? true
|
||||||
, hidpiXWayland ? false
|
|
||||||
, legacyRenderer ? false
|
, legacyRenderer ? false
|
||||||
, nvidiaPatches ? false
|
|
||||||
, withSystemd ? true
|
, withSystemd ? true
|
||||||
|
, wrapRuntimeDeps ? true
|
||||||
|
# deprecated flags
|
||||||
|
, nvidiaPatches ? false
|
||||||
|
, hidpiXWayland ? false
|
||||||
}:
|
}:
|
||||||
let
|
assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been renamed `enableNvidiaPatches`";
|
||||||
assertXWayland = lib.assertMsg (hidpiXWayland -> enableXWayland) ''
|
assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland";
|
||||||
Hyprland: cannot have hidpiXWayland when enableXWayland is false.
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
assert assertXWayland;
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "hyprland" + lib.optionalString debug "-debug";
|
pname = "hyprland" + lib.optionalString debug "-debug";
|
||||||
version = "0.27.0";
|
version = "unstable-2023-08-08";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "hyprwm";
|
owner = "hyprwm";
|
||||||
repo = finalAttrs.pname;
|
repo = finalAttrs.pname;
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "8e04a80e60983f5def26bdcaea701040fea9a7ae";
|
||||||
hash = "sha256-mEKF6Wcx+wSF/eos/91A7LxhFLDYhSnQnLpwZF13ntg=";
|
hash = "sha256-5/vEdU3SzAdeIyPykjks/Zxkvh9luPTIei6oa77OY2Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# make meson use the provided dependencies instead of the git submodules
|
# make meson use the provided dependencies instead of the git submodules
|
||||||
"${finalAttrs.src}/nix/meson-build.patch"
|
"${finalAttrs.src}/nix/patches/meson-build.patch"
|
||||||
# look into $XDG_DESKTOP_PORTAL_DIR instead of /usr; runtime checks for conflicting portals
|
# look into $XDG_DESKTOP_PORTAL_DIR instead of /usr; runtime checks for conflicting portals
|
||||||
"${finalAttrs.src}/nix/portals.patch"
|
# NOTE: revert back to the patch inside SRC on the next version bump
|
||||||
|
# "${finalAttrs.src}/nix/patches/portals.patch"
|
||||||
|
./portals.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -64,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
jq
|
jq
|
||||||
|
makeWrapper
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
|
@ -90,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
pango
|
pango
|
||||||
pciutils
|
pciutils
|
||||||
(wlroots.override { inherit enableXWayland hidpiXWayland nvidiaPatches; })
|
(wlroots.override { inherit enableNvidiaPatches; })
|
||||||
]
|
]
|
||||||
++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ]
|
++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ]
|
||||||
++ lib.optionals withSystemd [ systemd ];
|
++ lib.optionals withSystemd [ systemd ];
|
||||||
|
@ -106,6 +110,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
(lib.optional withSystemd "-Dsystemd=enabled")
|
(lib.optional withSystemd "-Dsystemd=enabled")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
ln -s ${wlroots}/include/wlr $dev/include/hyprland/wlroots
|
||||||
|
${lib.optionalString wrapRuntimeDeps ''
|
||||||
|
wrapProgram $out/bin/Hyprland \
|
||||||
|
--suffix PATH : ${lib.makeBinPath [binutils pciutils]}
|
||||||
|
''}
|
||||||
|
'';
|
||||||
|
|
||||||
passthru.providedSessions = [ "hyprland" ];
|
passthru.providedSessions = [ "hyprland" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
|
||||||
|
index 1d978aed..56665389 100644
|
||||||
|
--- a/src/Compositor.cpp
|
||||||
|
+++ b/src/Compositor.cpp
|
||||||
|
@@ -2365,17 +2365,16 @@ void CCompositor::performUserChecks() {
|
||||||
|
|
||||||
|
static auto* const PSUPPRESSPORTAL = &g_pConfigManager->getConfigValuePtr("misc:suppress_portal_warnings")->intValue;
|
||||||
|
|
||||||
|
- if (!*PSUPPRESSPORTAL) {
|
||||||
|
- if (std::ranges::any_of(BAD_PORTALS, [&](const std::string& portal) { return std::filesystem::exists("/usr/share/xdg-desktop-portal/portals/" + portal + ".portal"); })) {
|
||||||
|
+ static auto* const PORTALDIRENV = getenv("XDG_DESKTOP_PORTAL_DIR");
|
||||||
|
+
|
||||||
|
+ static auto const PORTALDIR = PORTALDIRENV != NULL ? std::string(PORTALDIRENV) : "";
|
||||||
|
+
|
||||||
|
+ if (!*PSUPPRESSPORTAL && PORTALDIR != "") {
|
||||||
|
+ if (std::ranges::any_of(BAD_PORTALS, [&](const std::string& portal) { return std::filesystem::exists(PORTALDIR + "/" + portal + ".portal"); })) {
|
||||||
|
// bad portal detected
|
||||||
|
g_pHyprNotificationOverlay->addNotification("You have one or more incompatible xdg-desktop-portal impls installed. Please remove incompatible ones to avoid issues.",
|
||||||
|
CColor(0), 15000, ICON_ERROR);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- if (std::filesystem::exists("/usr/share/xdg-desktop-portal/portals/hyprland.portal") && std::filesystem::exists("/usr/share/xdg-desktop-portal/portals/wlr.portal")) {
|
||||||
|
- g_pHyprNotificationOverlay->addNotification("You have xdg-desktop-portal-hyprland and -wlr installed simultaneously. Please uninstall one to avoid issues.", CColor(0),
|
||||||
|
- 15000, ICON_ERROR);
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
{ fetchFromGitLab
|
{ fetchFromGitLab
|
||||||
, hyprland
|
, hyprland
|
||||||
, wlroots
|
, wlroots
|
||||||
, xwayland
|
|
||||||
, fetchpatch
|
|
||||||
, lib
|
, lib
|
||||||
, libdisplay-info
|
, libdisplay-info
|
||||||
, libliftoff
|
, libliftoff
|
||||||
, hwdata
|
, hwdata
|
||||||
, hidpiXWayland ? true
|
, enableNvidiaPatches ? false
|
||||||
, enableXWayland ? true
|
|
||||||
, nvidiaPatches ? false
|
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
libdisplay-info-new = libdisplay-info.overrideAttrs (old: {
|
libdisplay-info-new = libdisplay-info.overrideAttrs (old: {
|
||||||
|
@ -38,10 +34,7 @@ let
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
assert (lib.assertMsg (hidpiXWayland -> enableXWayland) ''
|
wlroots.overrideAttrs
|
||||||
wlroots-hyprland: cannot have hidpiXWayland when enableXWayland is false.
|
|
||||||
'');
|
|
||||||
(wlroots.overrideAttrs
|
|
||||||
(old: {
|
(old: {
|
||||||
version = "0.17.0-dev";
|
version = "0.17.0-dev";
|
||||||
|
|
||||||
|
@ -49,65 +42,31 @@ assert (lib.assertMsg (hidpiXWayland -> enableXWayland) ''
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
owner = "wlroots";
|
owner = "wlroots";
|
||||||
repo = "wlroots";
|
repo = "wlroots";
|
||||||
rev = "7e7633abf09b362d0bad9e3fc650fd692369291d";
|
rev = "e8d545a9770a2473db32e0a0bfa757b05d2af4f3";
|
||||||
hash = "sha256-KovjVFwcuoUO0eu/UiWrnD3+m/K+SHSAVIz4xF9K1XA=";
|
hash = "sha256-gv5kjss6REeQG0BmvK2gTx7jHLRdCnP25po6It6I6N8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
pname =
|
pname =
|
||||||
old.pname
|
old.pname
|
||||||
+ "-hyprland"
|
+ "-hyprland"
|
||||||
+ (
|
+ lib.optionalString enableNvidiaPatches "-nvidia";
|
||||||
if hidpiXWayland
|
|
||||||
then "-hidpi"
|
|
||||||
else ""
|
|
||||||
)
|
|
||||||
+ (
|
|
||||||
if nvidiaPatches
|
|
||||||
then "-nvidia"
|
|
||||||
else ""
|
|
||||||
);
|
|
||||||
|
|
||||||
patches =
|
patches =
|
||||||
(old.patches or [ ])
|
(old.patches or [ ])
|
||||||
++ (lib.optionals (enableXWayland && hidpiXWayland) [
|
++ (lib.optionals enableNvidiaPatches [
|
||||||
"${hyprland.src}/nix/wlroots-hidpi.patch"
|
"${hyprland.src}/nix/patches/nvidia.patch"
|
||||||
(fetchpatch {
|
|
||||||
url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/18595000f3a21502fd60bf213122859cc348f9af.diff";
|
|
||||||
sha256 = "sha256-jvfkAMh3gzkfuoRhB4E9T5X1Hu62wgUjj4tZkJm0mrI=";
|
|
||||||
revert = true;
|
|
||||||
})
|
|
||||||
])
|
|
||||||
++ (lib.optionals nvidiaPatches [
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-nvidia-format-workaround.patch?h=hyprland-nvidia-screenshare-git&id=2830d3017d7cdd240379b4cc7e5dd6a49cf3399a";
|
|
||||||
sha256 = "A9f1p5EW++mGCaNq8w7ZJfeWmvTfUm4iO+1KDcnqYX8=";
|
|
||||||
})
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
(old.postPatch or "")
|
(old.postPatch or "")
|
||||||
+ (
|
+ (
|
||||||
if nvidiaPatches
|
lib.optionalString enableNvidiaPatches
|
||||||
then ''
|
''substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"''
|
||||||
substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"
|
|
||||||
''
|
|
||||||
else ""
|
|
||||||
);
|
);
|
||||||
|
|
||||||
buildInputs =
|
buildInputs = old.buildInputs ++ [
|
||||||
old.buildInputs
|
hwdata
|
||||||
++ [
|
libdisplay-info-new
|
||||||
hwdata
|
libliftoff-new
|
||||||
libdisplay-info-new
|
];
|
||||||
libliftoff-new
|
})
|
||||||
];
|
|
||||||
})).override {
|
|
||||||
xwayland = xwayland.overrideAttrs (old: {
|
|
||||||
patches =
|
|
||||||
(old.patches or [ ])
|
|
||||||
++ (lib.optionals hidpiXWayland [
|
|
||||||
"${hyprland.src}/nix/xwayland-vsync.patch"
|
|
||||||
"${hyprland.src}/nix/xwayland-hidpi.patch"
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, cmake
|
, cmake
|
||||||
|
, file
|
||||||
, libjpeg
|
, libjpeg
|
||||||
, mesa
|
, mesa
|
||||||
, pango
|
, pango
|
||||||
|
@ -13,13 +14,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "hyprpaper";
|
pname = "hyprpaper";
|
||||||
version = "0.3.0";
|
version = "0.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "hyprwm";
|
owner = "hyprwm";
|
||||||
repo = finalAttrs.pname;
|
repo = finalAttrs.pname;
|
||||||
rev = "v${finalAttrs.version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-/ehJbAtSJS86NlqHVOeR2ViBKlImKH4guFVPacTmCr8=";
|
hash = "sha256-V5ulB9CkGh1ghiC4BKvRdoYKZzpaiOKzAOUmJIFkgM0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -29,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
file
|
||||||
libjpeg
|
libjpeg
|
||||||
mesa
|
mesa
|
||||||
pango
|
pango
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
, wayland
|
, wayland
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
version = "0.4.0";
|
version = "0.5.0";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit version;
|
inherit version;
|
||||||
|
@ -12,7 +12,7 @@ in
|
||||||
owner = "hyprwm";
|
owner = "hyprwm";
|
||||||
repo = "xdg-desktop-portal-hyprland";
|
repo = "xdg-desktop-portal-hyprland";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-r+XMyOoRXq+hlfjayb+fyi9kq2JK48TrwuNIAXqlj7U=";
|
hash = "sha256-C5AO0KnyAFJaCkOn+5nJfWm0kyiPn/Awh0lKTjhgr7Y=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -41,13 +41,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "icewm";
|
pname = "icewm";
|
||||||
version = "3.4.0";
|
version = "3.4.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ice-wm";
|
owner = "ice-wm";
|
||||||
repo = "icewm";
|
repo = "icewm";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-5RIjvmoqxMLnSW2P122rEa8MghWfwLHFtYgXwcFPF38=";
|
hash = "sha256-KgdCgKR3KqDf9GONCBRkLpNLoOycE0y4UXxHxBqNudk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "A style to bend Qt applications to look like they belong into GNOME Shell";
|
description = "A style to bend Qt applications to look like they belong into GNOME Shell";
|
||||||
homepage = "https://github.com/FedoraQt/adwaita-qt";
|
homepage = "https://github.com/FedoraQt/adwaita-qt";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = teams.gnome.members ++ (with maintainers; [ ]);
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "luau";
|
pname = "luau";
|
||||||
version = "0.589";
|
version = "0.590";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Roblox";
|
owner = "Roblox";
|
||||||
repo = "luau";
|
repo = "luau";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-q36mWkZgzms+dYZ++S9MwnRYxUXBtRxiECOxX886eVw=";
|
hash = "sha256-ZVe4SCx6/IC039CL+ngNIQShNi9V6XQh62gpbcoK/tM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "llhttp";
|
pname = "llhttp";
|
||||||
version = "8.1.1";
|
version = "9.0.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nodejs";
|
owner = "nodejs";
|
||||||
repo = "llhttp";
|
repo = "llhttp";
|
||||||
rev = "release/v${version}";
|
rev = "release/v${version}";
|
||||||
hash = "sha256-srAHKyYvdEGtjV7BwcKQArwAChRoZqTCfa/RefI/8wQ=";
|
hash = "sha256-mk9tNZJONh1xdZ8lqquMfFDEvEdYRucNlSrR64U8eaA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Port of http_parser to llparse";
|
description = "Port of http_parser to llparse";
|
||||||
homepage = "https://llhttp.org/";
|
homepage = "https://llhttp.org/";
|
||||||
|
changelog = "https://github.com/nodejs/llhttp/releases/tag/${src.rev}";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = [ maintainers.marsam ];
|
maintainers = [ maintainers.marsam ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
|
|
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "QPlatformTheme for a better Qt application inclusion in GNOME";
|
description = "QPlatformTheme for a better Qt application inclusion in GNOME";
|
||||||
homepage = "https://github.com/FedoraQt/QGnomePlatform";
|
homepage = "https://github.com/FedoraQt/QGnomePlatform";
|
||||||
license = licenses.lgpl21Plus;
|
license = licenses.lgpl21Plus;
|
||||||
maintainers = teams.gnome.members ++ (with maintainers; [ ]);
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,39 +1,57 @@
|
||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
|
, cython
|
||||||
|
, fetchpatch
|
||||||
, fetchPypi
|
, fetchPypi
|
||||||
, gmpy2
|
, gmpy2
|
||||||
, isort
|
|
||||||
, mpmath
|
, mpmath
|
||||||
, numpy
|
, numpy
|
||||||
, pythonOlder
|
, pythonOlder
|
||||||
, scipy
|
, scipy
|
||||||
, setuptools-scm
|
, setuptools-scm
|
||||||
|
, wheel
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "diofant";
|
pname = "diofant";
|
||||||
version = "0.13.0";
|
version = "0.14.0";
|
||||||
disabled = pythonOlder "3.9";
|
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
disabled = pythonOlder "3.10";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "Diofant";
|
pname = "Diofant";
|
||||||
sha256 = "bac9e086a7156b20f18e3291d6db34e305338039a3c782c585302d377b74dd3c";
|
hash = "sha256-c886y37xR+4TxZw9+3tb7nkTGxWcS+Ag/ruUUdpf7S4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "remove-pip-from-build-dependencies.patch";
|
||||||
|
url = "https://github.com/diofant/diofant/commit/117e441808faa7c785ccb81bf211772d60ebdec3.patch";
|
||||||
|
hash = "sha256-MYk1Ku4F3hAv7+jJQLWhXd8qyKRX+QYuBzPfYWT0VbU=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
isort
|
|
||||||
setuptools-scm
|
setuptools-scm
|
||||||
|
wheel
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
gmpy2
|
|
||||||
mpmath
|
mpmath
|
||||||
numpy
|
|
||||||
scipy
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
passthru.optional-dependencies = {
|
||||||
|
exports = [
|
||||||
|
cython
|
||||||
|
numpy
|
||||||
|
scipy
|
||||||
|
];
|
||||||
|
gmpy = [
|
||||||
|
gmpy2
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# tests take ~1h
|
# tests take ~1h
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "dvc-data";
|
pname = "dvc-data";
|
||||||
version = "2.12.2";
|
version = "2.13.1";
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
disabled = pythonOlder "3.8";
|
disabled = pythonOlder "3.8";
|
||||||
|
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||||
owner = "iterative";
|
owner = "iterative";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-DNFnh+ajfKgsZEj5Vyfk+jqSs9nv/PHIIpkkarxugww=";
|
hash = "sha256-RmUwo7NcbDjRf+sVgthno+ZvxXhMDwmoTfiN7cJM/5s=";
|
||||||
};
|
};
|
||||||
|
|
||||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "govee-ble";
|
pname = "govee-ble";
|
||||||
version = "0.23.0";
|
version = "0.24.0";
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
disabled = pythonOlder "3.9";
|
disabled = pythonOlder "3.9";
|
||||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
||||||
owner = "Bluetooth-Devices";
|
owner = "Bluetooth-Devices";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-/uv4P7wB/5QQW2IA+PT6VMPWd91Aoyxsez+8ptrIa5M=";
|
hash = "sha256-uuC7CVf/KKr36mvd0TqNJd2OtK/xshCGYJXEtllE9is=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchPypi
|
, fetchPypi
|
||||||
|
, fetchpatch
|
||||||
, deprecation
|
, deprecation
|
||||||
, hatchling
|
, hatchling
|
||||||
, pythonOlder
|
, pythonOlder
|
||||||
|
@ -23,6 +24,14 @@ buildPythonPackage rec {
|
||||||
hash = "sha256-nZsrY7l//WeovFORwypCG8QVsmSjLJnk2NjdMdqunPQ=";
|
hash = "sha256-nZsrY7l//WeovFORwypCG8QVsmSjLJnk2NjdMdqunPQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "setuptools-68-test-compatibility.patch";
|
||||||
|
url = "https://github.com/jupyter/jupyter-packaging/commit/e963fb27aa3b58cd70c5ca61ebe68c222d803b7e.patch";
|
||||||
|
hash = "sha256-NlO07wBCutAJ1DgoT+rQFkuC9Y+DyF1YFlTwWpwsJzo=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
hatchling
|
hatchling
|
||||||
];
|
];
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pyrainbird";
|
pname = "pyrainbird";
|
||||||
version = "3.0.1";
|
version = "4.0.0";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
disabled = pythonOlder "3.10";
|
disabled = pythonOlder "3.10";
|
||||||
|
@ -31,7 +31,7 @@ buildPythonPackage rec {
|
||||||
owner = "allenporter";
|
owner = "allenporter";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-Qi0NfLayypi/wKJZB9IOzoeaZsb3oq2JahXWdkwSjeo=";
|
hash = "sha256-VwcYyD9JtLDU2Bgp2hlptDz3vPoX4revTRKTA8OkWEw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -13,13 +13,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "cppcheck";
|
pname = "cppcheck";
|
||||||
version = "2.11";
|
version = "2.11.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "danmar";
|
owner = "danmar";
|
||||||
repo = "cppcheck";
|
repo = "cppcheck";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-Zu1Ly5KsgmjtsVQlBzgB/h+varfkyB73t8bxzqB3a3M=";
|
hash = "sha256-ZQ1EgnC2JBc0AvSW8PtgMzJoWSPt04Xfh8dqOU+KMfw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
|
|
@ -8,16 +8,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "datree";
|
pname = "datree";
|
||||||
version = "1.9.17";
|
version = "1.9.19";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "datreeio";
|
owner = "datreeio";
|
||||||
repo = "datree";
|
repo = "datree";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-vGlvujN9/1e9X/c2WgVSuc+yuqECUF55NLPmBecwvT0=";
|
hash = "sha256-W1eX7eUMdPGbHA/f08xkG2EUeZmaunEAQn7/LRBe2nk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-ECVKofvmLuFAFvncq63hYUaYW8/2+F4gZr8wIGQyrdU=";
|
vendorHash = "sha256-+PQhuIO4KjXtW/ZcS0OamuOHzK7ZL+nwOBxeCRoXuKE=";
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
nativeBuildInputs = [ installShellFiles ];
|
||||||
|
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "nixd";
|
pname = "nixd";
|
||||||
version = "1.2.1";
|
version = "1.2.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nix-community";
|
owner = "nix-community";
|
||||||
repo = "nixd";
|
repo = "nixd";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-NqRYFaxa6Y4j7IMAxxVKo7o15Xmx0CiyeG71Uf1SLCI=";
|
hash = "sha256-W44orkPZQ9gDUTogb8YVIaw4WHzUA+ExOXhTnZlJ6yY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
mesonBuildType = "release";
|
mesonBuildType = "release";
|
||||||
|
@ -81,8 +81,9 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Nix language server";
|
description = "Nix language server";
|
||||||
homepage = "https://github.com/nix-community/nixd";
|
homepage = "https://github.com/nix-community/nixd";
|
||||||
|
changelog = "https://github.com/nix-community/nixd/releases/tag/${version}";
|
||||||
license = lib.licenses.lgpl3Plus;
|
license = lib.licenses.lgpl3Plus;
|
||||||
maintainers = with lib.maintainers; [ inclyc Ruixi-rebirth ];
|
maintainers = with lib.maintainers; [ inclyc Ruixi-rebirth marsam ];
|
||||||
platforms = lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "oh-my-posh";
|
pname = "oh-my-posh";
|
||||||
version = "18.1.0";
|
version = "18.3.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jandedobbeleer";
|
owner = "jandedobbeleer";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-qK9hjsWhVTzxFo4SSvKb5IgZteVabWlCtoetu9v9xIE=";
|
hash = "sha256-AJw+NNTbksYSW2VqUzxLwxwd3OjM9uK/ou2CVS2zNvw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-cATGMi/nL8dvlsR+cuvKH6Y9eR3UqcVjvZAj35Ydn2c=";
|
vendorHash = "sha256-xkguBWk2Nh8w7C7tKbvaP0tRgZO4z08AEsdjNlJYC6Q=";
|
||||||
|
|
||||||
sourceRoot = "${src.name}/src";
|
sourceRoot = "${src.name}/src";
|
||||||
|
|
||||||
|
|
|
@ -1038,7 +1038,7 @@ let
|
||||||
|
|
||||||
# > CONFIG_KUNIT should not be enabled in a production environment. Enabling KUnit disables Kernel Address-Space Layout Randomization (KASLR), and tests may affect the state of the kernel in ways not suitable for production.
|
# > CONFIG_KUNIT should not be enabled in a production environment. Enabling KUnit disables Kernel Address-Space Layout Randomization (KASLR), and tests may affect the state of the kernel in ways not suitable for production.
|
||||||
# https://www.kernel.org/doc/html/latest/dev-tools/kunit/start.html
|
# https://www.kernel.org/doc/html/latest/dev-tools/kunit/start.html
|
||||||
KUNIT = no;
|
KUNIT = whenAtLeast "5.5" no;
|
||||||
} // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
|
} // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
|
||||||
# Enable CPU/memory hotplug support
|
# Enable CPU/memory hotplug support
|
||||||
# Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
|
# Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
|
||||||
|
|
|
@ -10,16 +10,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "grafana-agent";
|
pname = "grafana-agent";
|
||||||
version = "0.35.2";
|
version = "0.35.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
repo = "agent";
|
repo = "agent";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-jotJe7DIPYNekAxiMdghdykEXVD7Pk/MPWSH2XjhkL8=";
|
hash = "sha256-3JfJISoziIcB2Mx2gSYjegjQwqGipUtvT927QSezuq4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-MqUkGKOzx8Qo9xbD9GdUryVwKjpVUOXFo2x0/2uz8Uk=";
|
vendorHash = "sha256-vzrp20Mg6AA0h3+5+qbKRa7nhx/hgiIHG6RNXLATpHE=";
|
||||||
proxyVendor = true; # darwin/linux hash mismatch
|
proxyVendor = true; # darwin/linux hash mismatch
|
||||||
|
|
||||||
ldflags = let
|
ldflags = let
|
||||||
|
|
|
@ -1,77 +1,63 @@
|
||||||
{ buildPythonApplication
|
{ fetchFromGitea
|
||||||
, fetchPypi
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, scdoc
|
||||||
, gobject-introspection
|
, gobject-introspection
|
||||||
, gtk3
|
|
||||||
, lib
|
, lib
|
||||||
, libappindicator-gtk3
|
, libayatana-appindicator
|
||||||
, libnotify
|
, libnotify
|
||||||
, click
|
, python3Packages
|
||||||
, dbus-python
|
|
||||||
, ewmh
|
|
||||||
, pulsectl
|
|
||||||
, pygobject3
|
|
||||||
, pyxdg
|
|
||||||
, setproctitle
|
|
||||||
, python3
|
|
||||||
, procps
|
, procps
|
||||||
, xset
|
, xset
|
||||||
, xautolock
|
, xautolock
|
||||||
, xscreensaver
|
, xscreensaver
|
||||||
, xfce
|
, xfce
|
||||||
, glib
|
|
||||||
, setuptools-scm
|
|
||||||
, wrapGAppsHook
|
, wrapGAppsHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
python3Packages.buildPythonApplication rec {
|
||||||
click_7 = click.overridePythonAttrs (old: rec {
|
|
||||||
version = "7.1.2";
|
|
||||||
src = old.src.override {
|
|
||||||
inherit version;
|
|
||||||
hash = "sha256-0rUlXHxjSbwb0eWeCM0SrLvWPOZJ8liHVXg6qU37axo=";
|
|
||||||
};
|
|
||||||
disabledTests = [ "test_bytes_args" ]; # https://github.com/pallets/click/commit/6e05e1fa1c2804
|
|
||||||
});
|
|
||||||
in buildPythonApplication rec {
|
|
||||||
pname = "caffeine-ng";
|
pname = "caffeine-ng";
|
||||||
version = "4.0.2";
|
version = "4.2.0";
|
||||||
format = "setuptools";
|
format = "other";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchFromGitea {
|
||||||
inherit pname version;
|
domain = "codeberg.org";
|
||||||
hash = "sha256-umIjXJ0et6Pi5Ejj96Q+ZhiKS+yj7bsgb4uQW6Ym6rU=";
|
owner = "WhyNotHugo";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-uYzLRZ+6ZgIwhSuJWRBpLYHgonX7sFXgUZid0V26V0Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapGAppsHook glib gobject-introspection setuptools-scm ];
|
nativeBuildInputs = [ gobject-introspection meson ninja pkg-config wrapGAppsHook ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libappindicator-gtk3
|
libayatana-appindicator
|
||||||
libnotify
|
libnotify
|
||||||
gtk3
|
|
||||||
];
|
];
|
||||||
|
|
||||||
pythonPath = [
|
pythonPath = with python3Packages; [
|
||||||
click_7
|
click
|
||||||
dbus-python
|
dbus-python
|
||||||
ewmh
|
ewmh
|
||||||
pulsectl
|
pulsectl
|
||||||
pygobject3
|
pygobject3
|
||||||
pyxdg
|
scdoc
|
||||||
setproctitle
|
setproctitle
|
||||||
];
|
];
|
||||||
|
|
||||||
doCheck = false; # There are no tests.
|
|
||||||
dontWrapGApps = true;
|
dontWrapGApps = true;
|
||||||
strictDeps = false;
|
|
||||||
|
patches = [
|
||||||
|
./fix-build.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
echo "${version}" > version
|
||||||
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
cp -r share $out/
|
glib-compile-schemas $out/share/glib-2.0/schemas
|
||||||
cp -r caffeine/assets/icons $out/share/
|
|
||||||
|
|
||||||
# autostart file
|
|
||||||
ln -s $out/${python3.sitePackages}/etc $out/etc
|
|
||||||
|
|
||||||
glib-compile-schemas --strict $out/share/glib-2.0/schemas
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
|
@ -86,6 +72,7 @@ in buildPythonApplication rec {
|
||||||
maintainers = with maintainers; [ marzipankaiser ];
|
maintainers = with maintainers; [ marzipankaiser ];
|
||||||
description = "Status bar application to temporarily inhibit screensaver and sleep mode";
|
description = "Status bar application to temporarily inhibit screensaver and sleep mode";
|
||||||
homepage = "https://codeberg.org/WhyNotHugo/caffeine-ng";
|
homepage = "https://codeberg.org/WhyNotHugo/caffeine-ng";
|
||||||
|
changelog = "https://codeberg.org/WhyNotHugo/caffeine-ng/src/tag/v${version}/CHANGELOG.rst";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
|
|
24
pkgs/tools/X11/caffeine-ng/fix-build.patch
Normal file
24
pkgs/tools/X11/caffeine-ng/fix-build.patch
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index 3e4f9ea..5b82861 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -2,10 +2,6 @@ project(
|
||||||
|
'caffeine-ng',
|
||||||
|
version: run_command('./scripts/read_version.sh', check: true).stdout().strip(),
|
||||||
|
meson_version: '>=0.63.0',
|
||||||
|
- default_options: [
|
||||||
|
- # The default can yield broken results.
|
||||||
|
- 'python.install_env=auto'
|
||||||
|
- ]
|
||||||
|
)
|
||||||
|
|
||||||
|
dependency('pygobject-3.0')
|
||||||
|
@@ -82,7 +78,7 @@ configure_file(
|
||||||
|
|
||||||
|
install_data(
|
||||||
|
'share/applications/caffeine.desktop',
|
||||||
|
- install_dir: '/etc/xdg/autostart',
|
||||||
|
+ install_dir: join_paths(get_option('sysconfdir'), 'xdg/autostart'),
|
||||||
|
)
|
||||||
|
|
||||||
|
install_data(
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "credhub-cli";
|
pname = "credhub-cli";
|
||||||
version = "2.9.18";
|
version = "2.9.19";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cloudfoundry-incubator";
|
owner = "cloudfoundry-incubator";
|
||||||
repo = "credhub-cli";
|
repo = "credhub-cli";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-Fr9hV8mPBIid/5jR5u6jiGjr7a9HbSVCaReXx9jGo/Q=";
|
sha256 = "sha256-7Bmw3rJbb+Ae6gvVROz7hADDrGr8eiZX6g+ZpWSd99k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# these tests require network access that we're not going to give them
|
# these tests require network access that we're not going to give them
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ lib, fetchFromGitHub, python }:
|
{ lib, fetchFromGitHub, fetchpatch, python }:
|
||||||
|
|
||||||
python.pkgs.buildPythonApplication rec {
|
python.pkgs.buildPythonApplication rec {
|
||||||
version = "1.4.2";
|
|
||||||
pname = "brotab";
|
pname = "brotab";
|
||||||
|
version = "1.4.2";
|
||||||
|
format = "setuptools";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "balta2ar";
|
owner = "balta2ar";
|
||||||
|
@ -11,11 +12,19 @@ python.pkgs.buildPythonApplication rec {
|
||||||
hash = "sha256-HKKjiW++FwjdorqquSCIdi1InE6KbMbFKZFYHBxzg8Q=";
|
hash = "sha256-HKKjiW++FwjdorqquSCIdi1InE6KbMbFKZFYHBxzg8Q=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# https://github.com/balta2ar/brotab/pull/102
|
||||||
|
(fetchpatch {
|
||||||
|
name = "remove-unnecessary-pip-import.patch";
|
||||||
|
url = "https://github.com/balta2ar/brotab/commit/825cd48f255c911aabbfb495f6b8fc73f27d3fe5.patch";
|
||||||
|
hash = "sha256-IN28AOLPKPUc3KkxIGFMpZNNXA1+O12NxS+Hl4KMXbg=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python.pkgs; [
|
propagatedBuildInputs = with python.pkgs; [
|
||||||
requests
|
|
||||||
flask
|
flask
|
||||||
psutil
|
psutil
|
||||||
setuptools
|
requests
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -25,6 +34,8 @@ python.pkgs.buildPythonApplication rec {
|
||||||
--replace "requests==2.24.0" "requests>=2.24.0"
|
--replace "requests==2.24.0" "requests>=2.24.0"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
__darwinAllowLocalNetworking = true;
|
||||||
|
|
||||||
nativeCheckInputs = with python.pkgs; [
|
nativeCheckInputs = with python.pkgs; [
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
];
|
];
|
||||||
|
|
|
@ -5,16 +5,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "terrascan";
|
pname = "terrascan";
|
||||||
version = "1.18.2";
|
version = "1.18.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "accurics";
|
owner = "accurics";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-ZWkuzblPIvYcOllmIjk2RQZdkcPYZLGOuxwgX3NMydg=";
|
hash = "sha256-2jIdKBNn3Ajvq+fQ1OuQ0VB8+S0QYwLZnJMlGqZ7WtE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = "sha256-e09F4dA/uT50Cted3HqE08d04+l0V6U95AdKGKBFDpI=";
|
vendorHash = "sha256-PH94le8IwVuinlRsk84HGSxhBSJTTJDrou7nfD1J1JM=";
|
||||||
|
|
||||||
# Tests want to download a vulnerable Terraform project
|
# Tests want to download a vulnerable Terraform project
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "mdbook";
|
pname = "mdbook";
|
||||||
version = "0.4.32";
|
version = "0.4.34";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "rust-lang";
|
owner = "rust-lang";
|
||||||
repo = "mdBook";
|
repo = "mdBook";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
sha256 = "sha256-+Cb4ZFkJu6z2x/HqQkVqb2J0tFuj78TAmzhp2VPiai0=";
|
sha256 = "sha256-QkgsFnX6J0ZgXCzGE/dTNLxdXLhCFwLsZCvmZ4SU4Zs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-Jj5AWapZUzd/ZZQvvlSWOv2dX4AhJyHKEncIPdLL7cA=";
|
cargoHash = "sha256-Dhblzn7NytYeY76RmvI8cNjChnCSnTPadxPKyU5QT1Q=";
|
||||||
|
|
||||||
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
|
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
|
||||||
|
|
||||||
|
|
|
@ -2613,6 +2613,8 @@ with pkgs;
|
||||||
|
|
||||||
np2kai = callPackage ../applications/emulators/np2kai { };
|
np2kai = callPackage ../applications/emulators/np2kai { };
|
||||||
|
|
||||||
|
nuked-md = callPackage ../applications/emulators/nuked-md { };
|
||||||
|
|
||||||
oberon-risc-emu = callPackage ../applications/emulators/oberon-risc-emu { };
|
oberon-risc-emu = callPackage ../applications/emulators/oberon-risc-emu { };
|
||||||
|
|
||||||
openmsx = callPackage ../applications/emulators/openmsx { };
|
openmsx = callPackage ../applications/emulators/openmsx { };
|
||||||
|
@ -3548,6 +3550,8 @@ with pkgs;
|
||||||
|
|
||||||
codux = callPackage ../applications/editors/codux { };
|
codux = callPackage ../applications/editors/codux { };
|
||||||
|
|
||||||
|
conjure = callPackage ../applications/graphics/conjure { };
|
||||||
|
|
||||||
coolreader = libsForQt5.callPackage ../applications/misc/coolreader { };
|
coolreader = libsForQt5.callPackage ../applications/misc/coolreader { };
|
||||||
|
|
||||||
corsair = with python3Packages; toPythonApplication corsair-scan;
|
corsair = with python3Packages; toPythonApplication corsair-scan;
|
||||||
|
@ -39560,7 +39564,7 @@ with pkgs;
|
||||||
|
|
||||||
caffeWithCuda = caffe.override { cudaSupport = true; };
|
caffeWithCuda = caffe.override { cudaSupport = true; };
|
||||||
|
|
||||||
caffeine-ng = python3Packages.callPackage ../tools/X11/caffeine-ng { };
|
caffeine-ng = callPackage ../tools/X11/caffeine-ng { };
|
||||||
|
|
||||||
cntk = callPackage ../applications/science/math/cntk {
|
cntk = callPackage ../applications/science/math/cntk {
|
||||||
stdenv = gcc7Stdenv;
|
stdenv = gcc7Stdenv;
|
||||||
|
|
Loading…
Reference in a new issue