Merge master into staging-next

This commit is contained in:
github-actions[bot] 2023-08-12 12:01:01 +00:00 committed by GitHub
commit 9f3079a7c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
45 changed files with 596 additions and 369 deletions
lib/path
nixos
doc/manual/release-notes
modules
programs
services
audio
networking
x11/desktop-managers
pkgs
applications
editors/vscode
emulators
graphics
misc
base16-universal-manager
eaglemode
networking/cluster/tanka
office
qownnotes
treesheets
video/kodi
window-managers
hyprwm
hyprland
hyprpaper
xdg-desktop-portal-hyprland
icewm
data/themes/adwaita-qt
development
interpreters/luau
libraries
llhttp
qgnomeplatform
python-modules
diofant
dvc-data
govee-ble
jupyter-packaging
pyrainbird
tools
analysis/cppcheck
datree
language-servers/nixd
oh-my-posh
os-specific/linux/kernel
servers/monitoring/grafana-agent
tools
X11/caffeine-ng
admin/credhub-cli
misc/brotab
security/terrascan
text/mdbook
top-level

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View 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;
};
})

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

View file

@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
]; ];
buildInputs = [ buildInputs = [
libsForQt5.poppler libsForQt5.poppler
libsForQt5.qtwayland
]; ];
nativeBuildInputs = [ qt5.wrapQtAppsHook ]; nativeBuildInputs = [ qt5.wrapQtAppsHook ];

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View 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(

View file

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

View file

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

View file

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

View file

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

View file

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