Merge remote-tracking branch 'origin/master' into haskell-updates

This commit is contained in:
sternenseemann 2022-03-26 09:59:28 +01:00
commit 372d0a707e
396 changed files with 3361 additions and 1935 deletions

View file

@ -22,7 +22,7 @@ jobs:
if: steps.ismerge.outputs.ismerge != 'true' if: steps.ismerge.outputs.ismerge != 'true'
- name: Warn if the commit was a direct push - name: Warn if the commit was a direct push
if: steps.ismerge.outputs.ismerge != 'true' if: steps.ismerge.outputs.ismerge != 'true'
uses: peter-evans/commit-comment@v1 uses: peter-evans/commit-comment@v2
with: with:
body: | body: |
@${{ github.actor }}, you pushed a commit directly to master/release branch @${{ github.actor }}, you pushed a commit directly to master/release branch

View file

@ -540,10 +540,11 @@ If you do need to do create this sort of patch file, one way to do so is with gi
If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`: If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`:
- `relative`: Similar to using `git-diff`'s `--relative` flag, only keep changes inside the specified directory, making paths relative to it.
- `stripLen`: Remove the first `stripLen` components of pathnames in the patch. - `stripLen`: Remove the first `stripLen` components of pathnames in the patch.
- `extraPrefix`: Prefix pathnames by this string. - `extraPrefix`: Prefix pathnames by this string.
- `excludes`: Exclude files matching this pattern. - `excludes`: Exclude files matching these patterns (applies after the above arguments).
- `includes`: Include only files matching this pattern. - `includes`: Include only files matching these patterns (applies after the above arguments).
- `revert`: Revert the patch. - `revert`: Revert the patch.
Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `sha256` argument is changed as well. Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `sha256` argument is changed as well.

View file

@ -122,7 +122,7 @@ Reviewing process:
- [CODEOWNERS](https://help.github.com/articles/about-codeowners/) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers. - [CODEOWNERS](https://help.github.com/articles/about-codeowners/) will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers.
- Ensure that the module tests, if any, are succeeding. - Ensure that the module tests, if any, are succeeding.
- Ensure that the introduced options are correct. - Ensure that the introduced options are correct.
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated). - Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated).
- Description, default and example should be provided. - Description, default and example should be provided.
- Ensure that option changes are backward compatible. - Ensure that option changes are backward compatible.
- `mkRenamedOptionModuleWith` provides a way to make option changes backward compatible. - `mkRenamedOptionModuleWith` provides a way to make option changes backward compatible.
@ -157,7 +157,7 @@ Reviewing process:
- Ensure that the module tests, if any, are succeeding. - Ensure that the module tests, if any, are succeeding.
- Ensure that the introduced options are correct. - Ensure that the introduced options are correct.
- Type should be appropriate (string related types differs in their merging capabilities, `optionSet` and `string` types are deprecated). - Type should be appropriate (string related types differs in their merging capabilities, `loaOf` and `string` types are deprecated).
- Description, default and example should be provided. - Description, default and example should be provided.
- Ensure that module `meta` field is present - Ensure that module `meta` field is present
- Maintainers should be declared in `meta.maintainers`. - Maintainers should be declared in `meta.maintainers`.

View file

@ -609,17 +609,9 @@ rec {
throw "The option `${showOption loc}' in `${opt._file}' is already declared in ${showFiles res.declarations}." throw "The option `${showOption loc}' in `${opt._file}' is already declared in ${showFiles res.declarations}."
else else
let let
/* Add the modules of the current option to the list of modules
already collected. The options attribute except either a list of
submodules or a submodule. For each submodule, we add the file of the
current option declaration as the file use for the submodule. If the
submodule defines any filename, then we ignore the enclosing option file. */
options' = toList opt.options.options;
getSubModules = opt.options.type.getSubModules or null; getSubModules = opt.options.type.getSubModules or null;
submodules = submodules =
if getSubModules != null then map (setDefaultModuleLocation opt._file) getSubModules ++ res.options if getSubModules != null then map (setDefaultModuleLocation opt._file) getSubModules ++ res.options
else if opt.options ? options then map (coerceOption opt._file) options' ++ res.options
else res.options; else res.options;
in opt.options // res // in opt.options // res //
{ declarations = res.declarations ++ [opt._file]; { declarations = res.declarations ++ [opt._file];
@ -802,26 +794,12 @@ rec {
compare = a: b: (a.priority or 1000) < (b.priority or 1000); compare = a: b: (a.priority or 1000) < (b.priority or 1000);
in sort compare defs'; in sort compare defs';
# This calls substSubModules, whose entire purpose is only to ensure that
# option declarations in submodules have accurate position information.
# TODO: Merge this into mergeOptionDecls
fixupOptionType = loc: opt: fixupOptionType = loc: opt:
let
options = opt.options or
(throw "Option `${showOption loc}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}.");
# Hack for backward compatibility: convert options of type
# optionSet to options of type submodule. FIXME: remove
# eventually.
f = tp:
if tp.name == "option set" || tp.name == "submodule" then
throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
else if (tp.functor.wrapped.name or null) == "optionSet" then
if tp.name == "attrsOf" then types.attrsOf (types.submodule options)
else if tp.name == "listOf" then types.listOf (types.submodule options)
else if tp.name == "nullOr" then types.nullOr (types.submodule options)
else tp
else tp;
in
if opt.type.getSubModules or null == null if opt.type.getSubModules or null == null
then opt // { type = f (opt.type or types.unspecified); } then opt // { type = opt.type or types.unspecified; }
else opt // { type = opt.type.substSubModules opt.options; options = []; }; else opt // { type = opt.type.substSubModules opt.options; options = []; };

View file

@ -79,8 +79,6 @@ rec {
visible ? null, visible ? null,
# Whether the option can be set only once # Whether the option can be set only once
readOnly ? null, readOnly ? null,
# Deprecated, used by types.optionSet.
options ? null
} @ attrs: } @ attrs:
attrs // { _type = "option"; }; attrs // { _type = "option"; };

View file

@ -749,14 +749,6 @@ rec {
nestedTypes.finalType = finalType; nestedTypes.finalType = finalType;
}; };
# Obsolete alternative to configOf. It takes its option
# declarations from the options attribute of containing option
# declaration.
optionSet = mkOptionType {
name = "optionSet";
description = "option set";
deprecationMessage = "Use `types.submodule' instead";
};
# Augment the given type with an additional type check function. # Augment the given type with an additional type check function.
addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; }; addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };

View file

@ -2824,6 +2824,12 @@
githubId = 49904992; githubId = 49904992;
name = "Dawid Sowa"; name = "Dawid Sowa";
}; };
dbeckwith = {
email = "djbsnx@gmail.com";
github = "dbeckwith";
githubId = 1279939;
name = "Daniel Beckwith";
};
dbirks = { dbirks = {
email = "david@birks.dev"; email = "david@birks.dev";
github = "dbirks"; github = "dbirks";

View file

@ -57,7 +57,7 @@ def get_date_lists(
except ValueError: except ValueError:
continue continue
if my_date is None or my_date > cutoffdate: if my_date is None or my_date > cutoffdate or "preserve, reason:" in line.lower():
continue continue
if "=" not in line: if "=" not in line:

View file

@ -158,6 +158,12 @@ The following methods are available on machine objects:
e.g., `send_chars("foobar\n")` will type the string `foobar` e.g., `send_chars("foobar\n")` will type the string `foobar`
followed by the Enter key. followed by the Enter key.
`send_console`
: Send keys to the kernel console. This allows interaction with the systemd
emergency mode, for example. Takes a string that is sent, e.g.,
`send_console("\n\nsystemctl default\n")`.
`execute` `execute`
: Execute a shell command, returning a list `(status, stdout)`. : Execute a shell command, returning a list `(status, stdout)`.
@ -272,6 +278,13 @@ The following methods are available on machine objects:
Killing the interactive session with `Ctrl-d` or `Ctrl-c` also ends Killing the interactive session with `Ctrl-d` or `Ctrl-c` also ends
the guest session. the guest session.
`console_interact`
: Allows you to directly interact with QEMU's stdin. This should
only be used during test development, not in production tests.
Output from QEMU is only read line-wise. `Ctrl-c` kills QEMU and
`Ctrl-d` closes console and returns to the test runner.
To test user units declared by `systemd.user.services` the optional To test user units declared by `systemd.user.services` the optional
`user` argument can be used: `user` argument can be used:

View file

@ -261,6 +261,19 @@ start_all()
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<literal>send_console</literal>
</term>
<listitem>
<para>
Send keys to the kernel console. This allows interaction
with the systemd emergency mode, for example. Takes a string
that is sent, e.g.,
<literal>send_console(&quot;\n\nsystemctl default\n&quot;)</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term> <term>
<literal>execute</literal> <literal>execute</literal>
@ -502,6 +515,21 @@ machine.systemctl(&quot;list-jobs --no-pager&quot;, &quot;any-user&quot;) # spaw
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>
<literal>console_interact</literal>
</term>
<listitem>
<para>
Allows you to directly interact with QEMUs stdin. This
should only be used during test development, not in
production tests. Output from QEMU is only read line-wise.
<literal>Ctrl-c</literal> kills QEMU and
<literal>Ctrl-d</literal> closes console and returns to the
test runner.
</para>
</listitem>
</varlistentry>
</variablelist> </variablelist>
<para> <para>
To test user units declared by To test user units declared by

View file

@ -25,6 +25,16 @@
<literal>services.nginx.virtualHosts.*.enableACME</literal>). <literal>services.nginx.virtualHosts.*.enableACME</literal>).
</para> </para>
</listitem> </listitem>
<listitem>
<para>
GNOME has been upgraded to 42. Please take a look at their
<link xlink:href="https://release.gnome.org/42/">Release
Notes</link> for details. Notably, it replaces gedit with
GNOME Text Editor, GNOME Terminal with GNOME Console (formerly
Kings Cross), and GNOME Screenshot with a tool built into the
Shell.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
PHP 8.1 is now available PHP 8.1 is now available
@ -678,6 +688,16 @@
6.x</link> and renamed to <literal>gnome-secrets</literal>. 6.x</link> and renamed to <literal>gnome-secrets</literal>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<literal>services.gnome.experimental-features.realtime-scheduling</literal>
option has been removed, as GNOME Shell now
<link xlink:href="https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2060">uses
rtkit</link>. Use
<literal>security.rtkit.enable = true;</literal> instead. As
before, you will need to have it enabled using GSettings.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
If you previously used If you previously used
@ -1668,6 +1688,12 @@
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</listitem> </listitem>
<listitem>
<para>
The <literal>programs.nncp</literal> options were added for
generating host-global NNCP configuration.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>

View file

@ -11,6 +11,8 @@ In addition to numerous new and upgraded packages, this release has the followin
the option to use DNS-01 validation when using `enableACME` on the option to use DNS-01 validation when using `enableACME` on
web server virtual hosts (e.g. `services.nginx.virtualHosts.*.enableACME`). web server virtual hosts (e.g. `services.nginx.virtualHosts.*.enableACME`).
- GNOME has been upgraded to 42. Please take a look at their [Release Notes](https://release.gnome.org/42/) for details. Notably, it replaces gedit with GNOME Text Editor, GNOME Terminal with GNOME Console (formerly Kings Cross), and GNOME Screenshot with a tool built into the Shell.
- PHP 8.1 is now available - PHP 8.1 is now available
- Mattermost has been updated to extended support release 6.3, as the previously packaged extended support release 5.37 is [reaching its end of life](https://docs.mattermost.com/upgrade/extended-support-release.html). - Mattermost has been updated to extended support release 6.3, as the previously packaged extended support release 5.37 is [reaching its end of life](https://docs.mattermost.com/upgrade/extended-support-release.html).
@ -277,6 +279,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `gnome-passwordsafe` package updated to [version 6.x](https://gitlab.gnome.org/World/secrets/-/tags/6.0) and renamed to `gnome-secrets`. - The `gnome-passwordsafe` package updated to [version 6.x](https://gitlab.gnome.org/World/secrets/-/tags/6.0) and renamed to `gnome-secrets`.
- `services.gnome.experimental-features.realtime-scheduling` option has been removed, as GNOME Shell now [uses rtkit](https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2060). Use `security.rtkit.enable = true;` instead. As before, you will need to have it enabled using GSettings.
- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`. - If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`.
- Ntopng (`services.ntopng`) is updated to 5.2.1 and uses a separate Redis instance if `system.stateVersion` is at least `22.05`. Existing setups shouldn't be affected. - Ntopng (`services.ntopng`) is updated to 5.2.1 and uses a separate Redis instance if `system.stateVersion` is at least `22.05`. Existing setups shouldn't be affected.
@ -589,4 +593,6 @@ In addition to numerous new and upgraded packages, this release has the followin
- Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`. - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
- The `spark3` package is now usable on `aarch64-darwin` as a result of [#158613](https://github.com/NixOS/nixpkgs/pull/158613) and [#158992](https://github.com/NixOS/nixpkgs/pull/158992). - The `spark3` package is now usable on `aarch64-darwin` as a result of [#158613](https://github.com/NixOS/nixpkgs/pull/158613) and [#158992](https://github.com/NixOS/nixpkgs/pull/158992).
- The `programs.nncp` options were added for generating host-global NNCP configuration.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View file

@ -23,8 +23,9 @@ in rec {
inherit (unit) text; inherit (unit) text;
} }
'' ''
mkdir -p $out name=${shellEscape name}
echo -n "$text" > $out/${shellEscape name} mkdir -p "$out/$(dirname "$name")"
echo -n "$text" > "$out/$name"
'' ''
else else
pkgs.runCommand "unit-${mkPathSafeName name}-disabled" pkgs.runCommand "unit-${mkPathSafeName name}-disabled"
@ -32,8 +33,9 @@ in rec {
allowSubstitutes = false; allowSubstitutes = false;
} }
'' ''
mkdir -p $out name=${shellEscape name}
ln -s /dev/null $out/${shellEscape name} mkdir -p "$out/$(dirname "$name")"
ln -s /dev/null "$out/$name"
''; '';
boolValues = [true false "yes" "no"]; boolValues = [true false "yes" "no"];

View file

@ -198,7 +198,7 @@ class StartCommand:
) -> subprocess.Popen: ) -> subprocess.Popen:
return subprocess.Popen( return subprocess.Popen(
self.cmd(monitor_socket_path, shell_socket_path), self.cmd(monitor_socket_path, shell_socket_path),
stdin=subprocess.DEVNULL, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, stderr=subprocess.STDOUT,
shell=True, shell=True,
@ -558,6 +558,28 @@ class Machine:
pass_fds=[self.shell.fileno()], pass_fds=[self.shell.fileno()],
) )
def console_interact(self) -> None:
"""Allows you to interact with QEMU's stdin
The shell can be exited with Ctrl+D. Note that Ctrl+C is not allowed to be used.
QEMU's stdout is read line-wise.
Should only be used during test development, not in the production test."""
self.log("Terminal is ready (there is no prompt):")
assert self.process
assert self.process.stdin
while True:
try:
char = sys.stdin.buffer.read(1)
except KeyboardInterrupt:
break
if char == b"": # ctrl+d
self.log("Closing connection to the console")
break
self.send_console(char.decode())
def succeed(self, *commands: str, timeout: Optional[int] = None) -> str: def succeed(self, *commands: str, timeout: Optional[int] = None) -> str:
"""Execute each command and check that it succeeds.""" """Execute each command and check that it succeeds."""
output = "" output = ""
@ -834,6 +856,12 @@ class Machine:
self.send_monitor_command("sendkey {}".format(key)) self.send_monitor_command("sendkey {}".format(key))
time.sleep(0.01) time.sleep(0.01)
def send_console(self, chars: str) -> None:
assert self.process
assert self.process.stdin
self.process.stdin.write(chars.encode())
self.process.stdin.flush()
def start(self) -> None: def start(self) -> None:
if self.booted: if self.booted:
return return

View file

@ -91,29 +91,9 @@ let
SERIAL 0 115200 SERIAL 0 115200
TIMEOUT ${builtins.toString syslinuxTimeout} TIMEOUT ${builtins.toString syslinuxTimeout}
UI vesamenu.c32 UI vesamenu.c32
MENU TITLE NixOS
MENU BACKGROUND /isolinux/background.png MENU BACKGROUND /isolinux/background.png
MENU RESOLUTION 800 600
MENU CLEAR
MENU ROWS 6
MENU CMDLINEROW -4
MENU TIMEOUTROW -3
MENU TABMSGROW -2
MENU HELPMSGROW -1
MENU HELPMSGENDROW -1
MENU MARGIN 0
# FG:AARRGGBB BG:AARRGGBB shadow ${config.isoImage.syslinuxTheme}
MENU COLOR BORDER 30;44 #00000000 #00000000 none
MENU COLOR SCREEN 37;40 #FF000000 #00E2E8FF none
MENU COLOR TABMSG 31;40 #80000000 #00000000 none
MENU COLOR TIMEOUT 1;37;40 #FF000000 #00000000 none
MENU COLOR TIMEOUT_MSG 37;40 #FF000000 #00000000 none
MENU COLOR CMDMARK 1;36;40 #FF000000 #00000000 none
MENU COLOR CMDLINE 37;40 #FF000000 #00000000 none
MENU COLOR TITLE 1;36;44 #00000000 #00000000 none
MENU COLOR UNSEL 37;44 #FF000000 #00000000 none
MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
DEFAULT boot DEFAULT boot
@ -601,6 +581,37 @@ in
''; '';
}; };
isoImage.syslinuxTheme = mkOption {
default = ''
MENU TITLE NixOS
MENU RESOLUTION 800 600
MENU CLEAR
MENU ROWS 6
MENU CMDLINEROW -4
MENU TIMEOUTROW -3
MENU TABMSGROW -2
MENU HELPMSGROW -1
MENU HELPMSGENDROW -1
MENU MARGIN 0
# FG:AARRGGBB BG:AARRGGBB shadow
MENU COLOR BORDER 30;44 #00000000 #00000000 none
MENU COLOR SCREEN 37;40 #FF000000 #00E2E8FF none
MENU COLOR TABMSG 31;40 #80000000 #00000000 none
MENU COLOR TIMEOUT 1;37;40 #FF000000 #00000000 none
MENU COLOR TIMEOUT_MSG 37;40 #FF000000 #00000000 none
MENU COLOR CMDMARK 1;36;40 #FF000000 #00000000 none
MENU COLOR CMDLINE 37;40 #FF000000 #00000000 none
MENU COLOR TITLE 1;36;44 #00000000 #00000000 none
MENU COLOR UNSEL 37;44 #FF000000 #00000000 none
MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
'';
type = types.str;
description = ''
The syslinux theme used for BIOS boot.
'';
};
isoImage.appendToMenuLabel = mkOption { isoImage.appendToMenuLabel = mkOption {
default = " Installer"; default = " Installer";
example = " Live System"; example = " Live System";

View file

@ -118,6 +118,7 @@
./misc/version.nix ./misc/version.nix
./misc/wordlist.nix ./misc/wordlist.nix
./misc/nixops-autoluks.nix ./misc/nixops-autoluks.nix
./programs/_1password-gui.nix
./programs/adb.nix ./programs/adb.nix
./programs/appgate-sdp.nix ./programs/appgate-sdp.nix
./programs/atop.nix ./programs/atop.nix
@ -184,6 +185,7 @@
./programs/nix-ld.nix ./programs/nix-ld.nix
./programs/neovim.nix ./programs/neovim.nix
./programs/nm-applet.nix ./programs/nm-applet.nix
./programs/nncp.nix
./programs/npm.nix ./programs/npm.nix
./programs/noisetorch.nix ./programs/noisetorch.nix
./programs/oblogout.nix ./programs/oblogout.nix

View file

@ -0,0 +1,69 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.programs._1password-gui;
in {
options = {
programs._1password-gui = {
enable = mkEnableOption "The 1Password Desktop application with browser integration";
groupId = mkOption {
type = types.int;
example = literalExpression "5000";
description = ''
The GroupID to assign to the onepassword group, which is needed for browser integration. The group ID must be 1000 or greater.
'';
};
polkitPolicyOwners = mkOption {
type = types.listOf types.str;
default = [];
example = literalExpression "[\"user1\" \"user2\" \"user3\"]";
description = ''
A list of users who should be able to integrate 1Password with polkit-based authentication mechanisms. By default, no users will have such access.
'';
};
package = mkOption {
type = types.package;
default = pkgs._1password-gui;
defaultText = literalExpression "pkgs._1password-gui";
example = literalExpression "pkgs._1password-gui";
description = ''
The 1Password derivation to use. This can be used to upgrade from the stable release that we keep in nixpkgs to the betas.
'';
};
};
};
config = let
package = cfg.package.override {
polkitPolicyOwners = cfg.polkitPolicyOwners;
};
in mkIf cfg.enable {
environment.systemPackages = [ package ];
users.groups.onepassword.gid = cfg.groupId;
security.wrappers = {
"1Password-BrowserSupport" =
{ source = "${cfg.package}/share/1password/1Password-BrowserSupport";
owner = "root";
group = "onepassword";
setuid = false;
setgid = true;
};
"1Password-KeyringHelper" =
{ source = "${cfg.package}/share/1password/1Password-KeyringHelper";
owner = "root";
group = "onepassword";
setuid = true;
setgid = true;
};
};
};
}

View file

@ -0,0 +1,101 @@
{ config, lib, pkgs, ... }:
with lib;
let
nncpCfgFile = "/run/nncp.hjson";
programCfg = config.programs.nncp;
settingsFormat = pkgs.formats.json { };
jsonCfgFile = settingsFormat.generate "nncp.json" programCfg.settings;
pkg = programCfg.package;
in {
options.programs.nncp = {
enable =
mkEnableOption "NNCP (Node to Node copy) utilities and configuration";
group = mkOption {
type = types.str;
default = "uucp";
description = ''
The group under which NNCP files shall be owned.
Any member of this group may access the secret keys
of this NNCP node.
'';
};
package = mkOption {
type = types.package;
default = pkgs.nncp;
defaultText = literalExpression "pkgs.nncp";
description = "The NNCP package to use system-wide.";
};
secrets = mkOption {
type = with types; listOf str;
example = [ "/run/keys/nncp.hjson" ];
description = ''
A list of paths to NNCP configuration files that should not be
in the Nix store. These files are layered on top of the values at
<xref linkend="opt-programs.nncp.settings"/>.
'';
};
settings = mkOption {
type = settingsFormat.type;
description = ''
NNCP configuration, see
<link xlink:href="http://www.nncpgo.org/Configuration.html"/>.
At runtime these settings will be overlayed by the contents of
<xref linkend="opt-programs.nncp.secrets"/> into the file
<literal>${nncpCfgFile}</literal>. Node keypairs go in
<literal>secrets</literal>, do not specify them in
<literal>settings</literal> as they will be leaked into
<literal>/nix/store</literal>!
'';
default = { };
};
};
config = mkIf programCfg.enable {
environment = {
systemPackages = [ pkg ];
etc."nncp.hjson".source = nncpCfgFile;
};
programs.nncp.settings = {
spool = mkDefault "/var/spool/nncp";
log = mkDefault "/var/spool/nncp/log";
};
systemd.tmpfiles.rules = [
"d ${programCfg.settings.spool} 0770 root ${programCfg.group}"
"f ${programCfg.settings.log} 0770 root ${programCfg.group}"
];
systemd.services.nncp-config = {
path = [ pkg ];
description = "Generate NNCP configuration";
wantedBy = [ "basic.target" ];
serviceConfig.Type = "oneshot";
script = ''
umask u=rw
nncpCfgDir=$(mktemp --directory nncp.XXX)
for f in ${jsonCfgFile} ${toString config.programs.nncp.secrets}; do
tmpdir=$(mktemp --directory nncp.XXX)
nncp-cfgdir -cfg $f -dump $tmpdir
find $tmpdir -size 1c -delete
cp -a $tmpdir/* $nncpCfgDir/
rm -rf $tmpdir
done
nncp-cfgdir -load $nncpCfgDir > ${nncpCfgFile}
rm -rf $nncpCfgDir
chgrp ${programCfg.group} ${nncpCfgFile}
chmod g+r ${nncpCfgFile}
'';
};
};
meta.maintainers = with lib.maintainers; [ ehmry ];
}

View file

@ -111,6 +111,13 @@ in
description = "Whether to run squid web proxy."; description = "Whether to run squid web proxy.";
}; };
package = mkOption {
default = pkgs.squid;
defaultText = literalExpression "pkgs.squid";
type = types.package;
description = "Squid package to use.";
};
proxyAddress = mkOption { proxyAddress = mkOption {
type = types.nullOr types.str; type = types.nullOr types.str;
default = null; default = null;
@ -157,17 +164,21 @@ in
users.groups.squid = {}; users.groups.squid = {};
systemd.services.squid = { systemd.services.squid = {
description = "Squid caching web proxy"; description = "Squid caching proxy";
documentation = [ "man:squid(8)" ];
after = [ "network.target" "nss-lookup.target" ]; after = [ "network.target" "nss-lookup.target" ];
wantedBy = [ "multi-user.target"]; wantedBy = [ "multi-user.target"];
preStart = '' preStart = ''
mkdir -p "/var/log/squid" mkdir -p "/var/log/squid"
chown squid:squid "/var/log/squid" chown squid:squid "/var/log/squid"
${cfg.package}/bin/squid --foreground -z -f ${squidConfig}
''; '';
serviceConfig = { serviceConfig = {
Type="forking";
PIDFile="/run/squid.pid"; PIDFile="/run/squid.pid";
ExecStart = "${pkgs.squid}/bin/squid -YCs -f ${squidConfig}"; ExecStart = "${cfg.package}/bin/squid --foreground -YCs -f ${squidConfig}";
ExecReload="kill -HUP $MAINPID";
KillMode="mixed";
NotifyAccess="all";
}; };
}; };

View file

@ -129,6 +129,14 @@ in
''; '';
}; };
plugins = lib.mkOption {
type = lib.types.listOf lib.types.path;
default = [];
description = ''
Keycloak plugin jar, ear files or derivations with them
'';
};
database = { database = {
type = mkOption { type = mkOption {
type = enum [ "mysql" "postgresql" ]; type = enum [ "mysql" "postgresql" ];
@ -787,6 +795,14 @@ in
umask u=rwx,g=,o= umask u=rwx,g=,o=
install_plugin() {
if [ -d "$1" ]; then
find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 -o keycloak -g keycloak "{}" "/run/keycloak/deployments/" \;
else
install -m 0500 -o keycloak -g keycloak "$1" "/run/keycloak/deployments/"
fi
}
install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration
install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml
@ -794,7 +810,9 @@ in
export JAVA_OPTS=-Djboss.server.config.user.dir=/run/keycloak/configuration export JAVA_OPTS=-Djboss.server.config.user.dir=/run/keycloak/configuration
add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}' add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}'
'' + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) '' ''
+ lib.optionalString (cfg.plugins != []) (lib.concatStringsSep "\n" (map (pl: "install_plugin ${lib.escapeShellArg pl}") cfg.plugins)) + "\n"
+ optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
pushd /run/keycloak/ssl/ pushd /run/keycloak/ssl/
cat "$CREDENTIALS_DIRECTORY/ssl_cert" <(echo) \ cat "$CREDENTIALS_DIRECTORY/ssl_cert" <(echo) \
"$CREDENTIALS_DIRECTORY/ssl_key" <(echo) \ "$CREDENTIALS_DIRECTORY/ssl_key" <(echo) \

View file

@ -132,6 +132,10 @@ in
[ "environment" "gnome3" "excludePackages" ] [ "environment" "gnome3" "excludePackages" ]
[ "environment" "gnome" "excludePackages" ] [ "environment" "gnome" "excludePackages" ]
) )
(mkRemovedOptionModule
[ "services" "gnome" "experimental-features" "realtime-scheduling" ]
"Set `security.rtkit.enable = true;` to make realtime scheduling possible. (Still needs to be enabled using GSettings.)"
)
]; ];
options = { options = {
@ -142,38 +146,6 @@ in
core-utilities.enable = mkEnableOption "GNOME core utilities"; core-utilities.enable = mkEnableOption "GNOME core utilities";
core-developer-tools.enable = mkEnableOption "GNOME core developer tools"; core-developer-tools.enable = mkEnableOption "GNOME core developer tools";
games.enable = mkEnableOption "GNOME games"; games.enable = mkEnableOption "GNOME games";
experimental-features = {
realtime-scheduling = mkOption {
type = types.bool;
default = false;
description = ''
Makes mutter (which propagates to gnome-shell) request a low priority real-time
scheduling which is only available on the wayland session.
To enable this experimental feature it requires a restart of the compositor.
Note that enabling this option only enables the <emphasis>capability</emphasis>
for realtime-scheduling to be used. It doesn't automatically set the gsetting
so that mutter actually uses realtime-scheduling. This would require adding <literal>
rt-scheduler</literal> to <literal>/org/gnome/mutter/experimental-features</literal>
with dconf-editor. You cannot use extraGSettingsOverrides because that will only
change the default value of the setting.
Please be aware of these known issues with the feature in nixos:
<itemizedlist>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/90201">NixOS/nixpkgs#90201</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/86730">NixOS/nixpkgs#86730</link>
</para>
</listitem>
</itemizedlist>
'';
};
};
}; };
services.xserver.desktopManager.gnome = { services.xserver.desktopManager.gnome = {
@ -480,29 +452,6 @@ in
]; ];
}) })
# Enable soft realtime scheduling, only supported on wayland
(mkIf serviceCfg.experimental-features.realtime-scheduling {
security.wrappers.".gnome-shell-wrapped" = {
source = "${pkgs.gnome.gnome-shell}/bin/.gnome-shell-wrapped";
owner = "root";
group = "root";
capabilities = "cap_sys_nice=ep";
};
systemd.user.services.gnome-shell-wayland = let
gnomeShellRT = with pkgs.gnome; pkgs.runCommand "gnome-shell-rt" {} ''
mkdir -p $out/bin/
cp ${gnome-shell}/bin/gnome-shell $out/bin
sed -i "s@${gnome-shell}/bin/@${config.security.wrapperDir}/@" $out/bin/gnome-shell
'';
in {
# Note we need to clear ExecStart before overriding it
serviceConfig.ExecStart = ["" "${gnomeShellRT}/bin/gnome-shell"];
# Do not use the default environment, it provides a broken PATH
environment = mkForce {};
};
})
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-utilities.bst # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-utilities.bst
(mkIf serviceCfg.core-utilities.enable { (mkIf serviceCfg.core-utilities.enable {
environment.systemPackages = environment.systemPackages =
@ -513,18 +462,18 @@ in
cheese cheese
eog eog
epiphany epiphany
gedit pkgs.gnome-text-editor
gnome-calculator gnome-calculator
gnome-calendar gnome-calendar
gnome-characters gnome-characters
gnome-clocks gnome-clocks
pkgs.gnome-console
gnome-contacts gnome-contacts
gnome-font-viewer gnome-font-viewer
gnome-logs gnome-logs
gnome-maps gnome-maps
gnome-music gnome-music
pkgs.gnome-photos pkgs.gnome-photos
gnome-screenshot
gnome-system-monitor gnome-system-monitor
gnome-weather gnome-weather
nautilus nautilus
@ -547,7 +496,6 @@ in
programs.file-roller.enable = notExcluded pkgs.gnome.file-roller; programs.file-roller.enable = notExcluded pkgs.gnome.file-roller;
programs.geary.enable = notExcluded pkgs.gnome.geary; programs.geary.enable = notExcluded pkgs.gnome.geary;
programs.gnome-disks.enable = notExcluded pkgs.gnome.gnome-disk-utility; programs.gnome-disks.enable = notExcluded pkgs.gnome.gnome-disk-utility;
programs.gnome-terminal.enable = notExcluded pkgs.gnome.gnome-terminal;
programs.seahorse.enable = notExcluded pkgs.gnome.seahorse; programs.seahorse.enable = notExcluded pkgs.gnome.seahorse;
services.gnome.sushi.enable = notExcluded pkgs.gnome.sushi; services.gnome.sushi.enable = notExcluded pkgs.gnome.sushi;

View file

@ -220,9 +220,7 @@ in
] config.environment.pantheon.excludePackages); ] config.environment.pantheon.excludePackages);
programs.evince.enable = mkDefault true; programs.evince.enable = mkDefault true;
programs.evince.package = pkgs.pantheon.evince;
programs.file-roller.enable = mkDefault true; programs.file-roller.enable = mkDefault true;
programs.file-roller.package = pkgs.pantheon.file-roller;
# Settings from elementary-default-settings # Settings from elementary-default-settings
environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini"; environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
@ -304,7 +302,6 @@ in
environment.systemPackages = with pkgs.pantheon; [ environment.systemPackages = with pkgs.pantheon; [
contractor contractor
file-roller-contract file-roller-contract
gnome-bluetooth-contract
]; ];
environment.pathsToLink = [ environment.pathsToLink = [

View file

@ -141,7 +141,7 @@ in
GDM_X_SERVER_EXTRA_ARGS = toString GDM_X_SERVER_EXTRA_ARGS = toString
(filter (arg: arg != "-terminate") cfg.xserverArgs); (filter (arg: arg != "-terminate") cfg.xserverArgs);
# GDM is needed for gnome-login.session # GDM is needed for gnome-login.session
XDG_DATA_DIRS = "${gdm}/share:${cfg.sessionData.desktops}/share"; XDG_DATA_DIRS = "${gdm}/share:${cfg.sessionData.desktops}/share:${pkgs.gnome.gnome-control-center}/share";
} // optionalAttrs (xSessionWrapper != null) { } // optionalAttrs (xSessionWrapper != null) {
# Make GDM use this wrapper before running the session, which runs the # Make GDM use this wrapper before running the session, which runs the
# configured setupCommands. This relies on a patched GDM which supports # configured setupCommands. This relies on a patched GDM which supports

View file

@ -56,8 +56,6 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = with pkgs; [ getent iptables iproute kmod nftables util-linux which ];
unitConfig = { unitConfig = {
ConditionPathExists = "/var/lib/waydroid/lxc/waydroid"; ConditionPathExists = "/var/lib/waydroid/lxc/waydroid";
}; };
@ -68,6 +66,10 @@ in
ExecStopPost = "${pkgs.waydroid}/bin/waydroid session stop"; ExecStopPost = "${pkgs.waydroid}/bin/waydroid session stop";
}; };
}; };
systemd.tmpfiles.rules = [
"d /var/lib/misc 0755 root root -" # for dnsmasq.leases
];
}; };
} }

View file

@ -519,7 +519,7 @@ in
systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {}; systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
systemd-nspawn = handleTest ./systemd-nspawn.nix {}; systemd-nspawn = handleTest ./systemd-nspawn.nix {};
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {}; systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-unit-path = handleTest ./systemd-unit-path.nix {}; systemd-misc = handleTest ./systemd-misc.nix {};
taskserver = handleTest ./taskserver.nix {}; taskserver = handleTest ./taskserver.nix {};
teeworlds = handleTest ./teeworlds.nix {}; teeworlds = handleTest ./teeworlds.nix {};
telegraf = handleTest ./telegraf.nix {}; telegraf = handleTest ./telegraf.nix {};

View file

@ -3,4 +3,10 @@
makeInstalledTest { makeInstalledTest {
tested = pkgs.gjs; tested = pkgs.gjs;
withX11 = true; withX11 = true;
testConfig = {
environment.systemPackages = [
pkgs.gjs
];
};
} }

View file

@ -16,8 +16,7 @@ let
}; };
nodes = { nodes = {
keycloak = { ... }: { keycloak = { config, ... }: {
security.pki.certificateFiles = [ security.pki.certificateFiles = [
certs.ca.cert certs.ca.cert
]; ];
@ -36,6 +35,10 @@ let
username = "bogus"; username = "bogus";
passwordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH"; passwordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH";
}; };
plugins = with config.services.keycloak.package.plugins; [
keycloak-discord
keycloak-metrics-spi
];
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -102,8 +105,21 @@ let
### Realm Setup ### ### Realm Setup ###
# Get an admin interface access token # Get an admin interface access token
keycloak.succeed("""
curl -sSf -d 'client_id=admin-cli' \
-d 'username=admin' \
-d 'password=${initialAdminPassword}' \
-d 'grant_type=password' \
'${frontendUrl}/realms/master/protocol/openid-connect/token' \
| jq -r '"Authorization: bearer " + .access_token' >admin_auth_header
""")
# Register the metrics SPI
keycloak.succeed( keycloak.succeed(
"curl -sSf -d 'client_id=admin-cli' -d 'username=admin' -d 'password=${initialAdminPassword}' -d 'grant_type=password' '${frontendUrl}/realms/master/protocol/openid-connect/token' | jq -r '\"Authorization: bearer \" + .access_token' >admin_auth_header" "${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt",
"KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
"KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
"curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
) )
# Publish the realm, including a test OIDC client and user # Publish the realm, including a test OIDC client and user

View file

@ -29,10 +29,23 @@ let
}; };
in in
{ {
name = "systemd-unit-path"; name = "systemd-misc";
machine = { pkgs, lib, ... }: { machine = { pkgs, lib, ... }: {
boot.extraSystemdUnitPaths = [ "/etc/systemd-rw/system" ]; boot.extraSystemdUnitPaths = [ "/etc/systemd-rw/system" ];
users.users.limited = {
isNormalUser = true;
uid = 1000;
};
systemd.units."user-1000.slice.d/limits.conf" = {
text = ''
[Slice]
TasksAccounting=yes
TasksMax=100
'';
};
}; };
testScript = '' testScript = ''
@ -43,5 +56,7 @@ in
) )
machine.succeed("systemctl start example.service") machine.succeed("systemctl start example.service")
machine.succeed("systemctl status example.service | grep 'Active: active'") machine.succeed("systemctl status example.service | grep 'Active: active'")
machine.succeed("systemctl show --property TasksMax --value user-1000.slice | grep 100")
''; '';
}) })

View file

@ -5,6 +5,7 @@
, ninja , ninja
, pkg-config , pkg-config
, gnome , gnome
, gnome-desktop
, glib , glib
, gtk3 , gtk3
, wayland , wayland
@ -54,7 +55,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
gtk3 gtk3
gnome.gnome-desktop gnome-desktop
wayland wayland
wayland-protocols wayland-protocols
libxml2 libxml2

View file

@ -3,7 +3,6 @@
}: }:
let let
version = "1.3.3"; version = "1.3.3";
airwave-src = fetchFromGitHub { airwave-src = fetchFromGitHub {
@ -38,7 +37,8 @@ let
in in
multiStdenv.mkDerivation { multiStdenv.mkDerivation {
name = "airwave-${version}"; pname = "airwave";
inherit version;
src = airwave-src; src = airwave-src;

View file

@ -1,12 +1,11 @@
{ lib, stdenv, fetchurl, alsa-lib, jack2, minixml, pkg-config }: { lib, stdenv, fetchurl, alsa-lib, jack2, minixml, pkg-config }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = packageName + "-" + version ; pname = "aj-snapshot" ;
packageName = "aj-snapshot" ;
version = "0.9.9"; version = "0.9.9";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/${packageName}/${name}.tar.bz2"; url = "mirror://sourceforge/aj-snapshot/aj-snapshot-${version}.tar.bz2";
sha256 = "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil"; sha256 = "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil";
}; };

View file

@ -12,7 +12,7 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ams"; pname = "ams";
version = "unstable-2019-04-27"; version = "unstable-2019-04-27";
src = fetchgit { src = fetchgit {

View file

@ -2,7 +2,7 @@
pulseaudio }: pulseaudio }:
bitwig-studio1.overrideAttrs (oldAttrs: rec { bitwig-studio1.overrideAttrs (oldAttrs: rec {
name = "bitwig-studio-${version}"; pname = "bitwig-studio";
version = "2.5"; version = "2.5";
src = fetchurl { src = fetchurl {

View file

@ -22,7 +22,7 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cardinal-${version}"; pname = "cardinal";
version = "22.02"; version = "22.02";
src = fetchurl { src = fetchurl {

View file

@ -4,11 +4,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cmt"; pname = "cmt";
version = "1.17"; version = "1.17";
src = fetchurl { src = fetchurl {
url = "http://www.ladspa.org/download/${name}_${version}.tgz"; url = "http://www.ladspa.org/download/cmt_${version}.tgz";
sha256 = "07xd0xmwpa0j12813jpf87fr9hwzihii5l35mp8ady7xxfmxfmpb"; sha256 = "07xd0xmwpa0j12813jpf87fr9hwzihii5l35mp8ady7xxfmxfmpb";
}; };

View file

@ -112,6 +112,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ]; platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [ maintainers.abbradar ]; maintainers = [ maintainers.abbradar ];
repositories.git = "https://github.com/Alexey-Yakovenko/deadbeef";
}; };
} }

View file

@ -4,7 +4,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.95.0"; version = "0.95.0";
name = "jamin-${version}"; pname = "jamin";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/jamin/jamin-${version}.tar.gz"; url = "mirror://sourceforge/jamin/jamin-${version}.tar.gz";

View file

@ -1,10 +1,13 @@
{ lib, stdenv, fetchurl, alsa-lib, libX11, libXi, libXtst, xorgproto }: { lib, stdenv, fetchFromGitHub, alsa-lib, libX11, libXi, libXtst, xorgproto }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mid2key-r1"; pname = "mid2key";
version = "1";
src = fetchurl { src = fetchFromGitHub {
url = "http://mid2key.googlecode.com/files/${name}.tar.gz"; owner = "dnschneid";
repo = "mid2key";
rev = "v${version}";
sha256 = "0j2vsjvdgx51nd1qmaa18mcy0yw9pwrhbv2mdwnf913bwsk4y904"; sha256 = "0j2vsjvdgx51nd1qmaa18mcy0yw9pwrhbv2mdwnf913bwsk4y904";
}; };

View file

@ -1,8 +1,7 @@
{ stdenv, fetchurl, lib, libX11, libXext, alsa-lib, freetype, brand, type, version, homepage, url, sha256, ... }: { stdenv, fetchurl, lib, libX11, libXext, alsa-lib, freetype, brand, type, version, homepage, url, sha256, ... }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit type; pname = "${lib.toLower type}-edit";
baseName = "${type}-Edit"; inherit version;
name = "${lib.toLower baseName}-${version}";
src = fetchurl { src = fetchurl {
inherit url; inherit url;
@ -15,7 +14,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp ${baseName} $out/bin cp ${pname} $out/bin
''; '';
preFixup = let preFixup = let
# we prepare our library path in the let clause to avoid it become part of the input of mkDerivation # we prepare our library path in the let clause to avoid it become part of the input of mkDerivation
@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
patchelf \ patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}" \ --set-rpath "${libPath}" \
$out/bin/${baseName} $out/bin/${pname}
''; '';
meta = with lib; { meta = with lib; {

View file

@ -32,6 +32,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.darwin; platforms = platforms.darwin;
maintainers = []; maintainers = [];
repositories.git = "https://github.com/musescore/MuseScore";
}; };
} }

View file

@ -51,6 +51,5 @@ mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ vandenoever turion doronbehar ]; maintainers = with maintainers; [ vandenoever turion doronbehar ];
platforms = platforms.linux; platforms = platforms.linux;
repositories.git = "https://github.com/musescore/MuseScore";
}; };
} }

View file

@ -10,13 +10,13 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qmidiarp"; pname = "qmidiarp";
version = "0.6.5"; version = "0.6.5";
src = fetchgit { src = fetchgit {
url = "https://git.code.sf.net/p/qmidiarp/code"; url = "https://git.code.sf.net/p/qmidiarp/code";
sha256 = "1g2143gzfbihqr2zi3k2v1yn1x3mwfbb2khmcd4m4cq3hcwhhlx9"; sha256 = "1g2143gzfbihqr2zi3k2v1yn1x3mwfbb2khmcd4m4cq3hcwhhlx9";
rev = "qmidiarp-0.6.5"; rev = "qmidiarp-${version}";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -58,6 +58,5 @@ mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ]; maintainers = [ maintainers.bjornfor ];
repositories.svn = "https://svn.code.sf.net/p/qmmp-dev/code";
}; };
} }

View file

@ -1,7 +1,6 @@
{ lib, stdenv, fetchFromGitHub, lv2, pkg-config, libGLU, libGL, cairo, pango, libjack2 }: { lib, stdenv, fetchFromGitHub, lv2, pkg-config, libGLU, libGL, cairo, pango, libjack2 }:
let let
name = "sisco.lv2-${version}";
version = "0.7.0"; version = "0.7.0";
robtkVersion = "80a2585253a861c81f0bfb7e4579c75f5c73af89"; robtkVersion = "80a2585253a861c81f0bfb7e4579c75f5c73af89";
@ -22,7 +21,8 @@ let
}; };
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit name; pname = "sisco.lv2";
inherit version;
srcs = [ src robtkSrc ]; srcs = [ src robtkSrc ];
sourceRoot = src.name; sourceRoot = src.name;

View file

@ -5,11 +5,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "snd"; pname = "snd";
version = "22.1"; version = "22.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/snd/snd-${version}.tar.gz"; url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
sha256 = "sha256-jrH0XRvPj9ySd8FSrOKf6qP5T1YSKrYBNHl6fz5dhkI="; sha256 = "sha256-MZ8Vm/d+0r7YsXdySKcH5rqXBh4iFLyUe44LBOD58E0=";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -45,7 +45,7 @@ let runtimeDeps = []
in in
mkDerivation rec { mkDerivation rec {
name = "soundkonverter"; pname = "soundkonverter";
version = "3.0.1"; version = "3.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dfaust"; owner = "dfaust";

View file

@ -0,0 +1,33 @@
{ stdenv
, lib
, fetchzip
, SDL
, pkg-config
, libSM
}:
stdenv.mkDerivation rec {
pname = "synaesthesia";
version = "2.4";
src = fetchzip {
url = "https://logarithmic.net/pfh-files/synaesthesia/synaesthesia-${version}.tar.gz";
sha256 = "0nzsdxbah0shm2vlziaaw3ilzlizd3d35rridkpg40nfxmq84qnx";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
SDL
libSM
];
meta = {
homepage = "https://logarithmic.net/pfh/synaesthesia";
description = "Program for representing sounds visually";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.infinisil ];
};
}

View file

@ -6,7 +6,7 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version; pname = "bitcoin" + optionalString (!withGui) "d" + "-unlimited";
version = "1.9.2.0"; version = "1.9.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {

View file

@ -6,7 +6,7 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version; pname = "dogecoin" + optionalString (!withGui) "d";
version = "1.14.5"; version = "1.14.5";
src = fetchFromGitHub { src = fetchFromGitHub {

View file

@ -11,8 +11,7 @@
with lib; with lib;
mkDerivation rec { mkDerivation rec {
pname = "litecoin" + optionalString (!withGui) "d";
name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version;
version = "0.18.1"; version = "0.18.1";
src = fetchFromGitHub { src = fetchFromGitHub {

View file

@ -3,8 +3,8 @@
with lib; with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "namecoin" + optionalString (!withGui) "d";
version = "nc22.0"; version = "nc22.0";
name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "namecoin"; owner = "namecoin";

View file

@ -38,13 +38,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cudatext"; pname = "cudatext";
version = "1.158.2"; version = "1.159.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Alexey-T"; owner = "Alexey-T";
repo = "CudaText"; repo = "CudaText";
rev = version; rev = version;
sha256 = "sha256-YrRG+LaG39q/6Ry3cXo9XUwtvokkBl96XuQfE22QxZI="; sha256 = "sha256-DRVJLzAdhw+ke+B2KFlkgLXgU4+Mq3LQ0PRYg52Aq/o=";
}; };
postPatch = '' postPatch = ''

View file

@ -16,8 +16,8 @@
}, },
"ATSynEdit": { "ATSynEdit": {
"owner": "Alexey-T", "owner": "Alexey-T",
"rev": "2022.03.17", "rev": "2022.03.23",
"sha256": "sha256-aJZGHodydkqfe2BJLKWUzIX6vbdiGKs4z5ZqtteM6NU=" "sha256": "sha256-D/pQ4TSWUaL97Nau3bGi7rc8MxnvuoDcD7HDNEDwmsk="
}, },
"ATSynEdit_Cmp": { "ATSynEdit_Cmp": {
"owner": "Alexey-T", "owner": "Alexey-T",
@ -26,13 +26,13 @@
}, },
"EControl": { "EControl": {
"owner": "Alexey-T", "owner": "Alexey-T",
"rev": "2022.03.17", "rev": "2022.03.23",
"sha256": "sha256-sWRKRhUYf07TIrVWRqtpsYPZu0dPm0EhSIqoDLmkG0Y=" "sha256": "sha256-QXq75VoAnYqAhe3Fvsz1szZyBz4dHEpYJZqTSCR80v8="
}, },
"ATSynEdit_Ex": { "ATSynEdit_Ex": {
"owner": "Alexey-T", "owner": "Alexey-T",
"rev": "2022.03.17", "rev": "2022.03.23",
"sha256": "sha256-FndLHJuCOyFr0IGUL4zFRjkEvTyNF3tHUO/Wx5IaV2Y=" "sha256": "sha256-m1rkWvRC1i1nLPIhiG6g8LGU96vTuGGqLFrSzw9A9x0="
}, },
"Python-for-Lazarus": { "Python-for-Lazarus": {
"owner": "Alexey-T", "owner": "Alexey-T",

View file

@ -18,6 +18,7 @@
, json-glib , json-glib
, jsonrpc-glib , jsonrpc-glib
, libdazzle , libdazzle
, libhandy
, libpeas , libpeas
, libportal-gtk3 , libportal-gtk3
, libxml2 , libxml2
@ -40,21 +41,20 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-builder"; pname = "gnome-builder";
version = "41.3"; version = "42.0";
outputs = [ "out" "devdoc" ]; outputs = [ "out" "devdoc" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "4iUPyOnp8gAsRS5ZUNgmhXNNPESAs1Fnq1CKyHAlCeE="; sha256 = "Uu/SltaLL/GCNBwEgdz9cGVMQIvbZ5/Ot225cDwiQo8=";
}; };
patches = [ patches = [
# Fix build with latest libportal # Fix appstream validation
# https://gitlab.gnome.org/GNOME/gnome-builder/-/merge_requests/486
(fetchpatch { (fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-builder/-/commit/b3bfa0df53a3749c3b73cb6c4bad5cab3fa549a1.patch"; url = "https://gitlab.gnome.org/GNOME/gnome-builder/-/commit/d7151679e0c925d27216256dc32fe67fb298d059.patch";
sha256 = "B/uCcYavFvOAPhLHZ4MRNENDd6VytILiGYwDZRUSxTE="; sha256 = "vdNJawkqSBaFGRZvxzvjOryQpBL4jcN7tr1t3ihD7LA=";
}) })
]; ];
@ -87,6 +87,7 @@ stdenv.mkDerivation rec {
json-glib json-glib
jsonrpc-glib jsonrpc-glib
libdazzle libdazzle
libhandy
libxml2 libxml2
ostree ostree
pcre pcre
@ -103,10 +104,6 @@ stdenv.mkDerivation rec {
xvfb-run xvfb-run
]; ];
prePatch = ''
patchShebangs build-aux/meson/post_install.py
'';
mesonFlags = [ mesonFlags = [
"-Ddocs=true" "-Ddocs=true"
@ -122,6 +119,10 @@ stdenv.mkDerivation rec {
# understand why. Somebody should look into fixing this. # understand why. Somebody should look into fixing this.
doCheck = true; doCheck = true;
postPatch = ''
patchShebangs build-aux/meson/post_install.py
'';
checkPhase = '' checkPhase = ''
export NO_AT_BRIDGE=1 export NO_AT_BRIDGE=1
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ xvfb-run -s '-screen 0 800x600x24' dbus-run-session \

View file

@ -5,7 +5,7 @@
}: }:
{ meta { meta
, name , pname
, product , product
, productShort ? product , productShort ? product
, src , src
@ -17,7 +17,7 @@ let
loname = lib.toLower productShort; loname = lib.toLower productShort;
in in
stdenvNoCC.mkDerivation { stdenvNoCC.mkDerivation {
inherit meta src version; inherit pname meta src version;
desktopName = product; desktopName = product;
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
@ -32,6 +32,5 @@ in
runHook postInstall runHook postInstall
''; '';
nativeBuildInputs = [ undmg ]; nativeBuildInputs = [ undmg ];
pname = lib.concatStringsSep "-" (lib.init (lib.splitString "-" name));
sourceRoot = "."; sourceRoot = ".";
} }

View file

@ -24,9 +24,9 @@ let
# Sorted alphabetically # Sorted alphabetically
buildClion = { name, version, src, license, description, wmClass, ... }: buildClion = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "CLion"; product = "CLion";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/clion/"; homepage = "https://www.jetbrains.com/clion/";
@ -62,9 +62,9 @@ let
''; '';
}); });
buildDataGrip = { name, version, src, license, description, wmClass, ... }: buildDataGrip = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "DataGrip"; product = "DataGrip";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/datagrip/"; homepage = "https://www.jetbrains.com/datagrip/";
@ -78,9 +78,9 @@ let
}; };
}); });
buildGoland = { name, version, src, license, description, wmClass, ... }: buildGoland = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "Goland"; product = "Goland";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/go/"; homepage = "https://www.jetbrains.com/go/";
@ -106,9 +106,9 @@ let
''; '';
}); });
buildIdea = { name, version, src, license, description, wmClass, product, ... }: buildIdea = { pname, version, src, license, description, wmClass, product, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk product; inherit pname version src wmClass jdk product;
productShort = "IDEA"; productShort = "IDEA";
extraLdPath = [ zlib ]; extraLdPath = [ zlib ];
extraWrapperArgs = [ extraWrapperArgs = [
@ -129,9 +129,9 @@ let
}; };
}); });
buildMps = { name, version, src, license, description, wmClass, product, ... }: buildMps = { pname, version, src, license, description, wmClass, product, ... }:
(mkJetBrainsProduct rec { (mkJetBrainsProduct rec {
inherit name version src wmClass jdk product; inherit pname version src wmClass jdk product;
productShort = "MPS"; productShort = "MPS";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/mps/"; homepage = "https://www.jetbrains.com/mps/";
@ -146,9 +146,9 @@ let
}; };
}); });
buildPhpStorm = { name, version, src, license, description, wmClass, ... }: buildPhpStorm = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "PhpStorm"; product = "PhpStorm";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/phpstorm/"; homepage = "https://www.jetbrains.com/phpstorm/";
@ -162,9 +162,9 @@ let
}; };
}); });
buildPycharm = { name, version, src, license, description, wmClass, product, ... }: buildPycharm = { pname, version, src, license, description, wmClass, product, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk product; inherit pname version src wmClass jdk product;
productShort = "PyCharm"; productShort = "PyCharm";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/pycharm/"; homepage = "https://www.jetbrains.com/pycharm/";
@ -186,9 +186,9 @@ let
}; };
}); });
buildRider = { name, version, src, license, description, wmClass, ... }: buildRider = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "Rider"; product = "Rider";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/rider/"; homepage = "https://www.jetbrains.com/rider/";
@ -211,9 +211,9 @@ let
''); '');
}); });
buildRubyMine = { name, version, src, license, description, wmClass, ... }: buildRubyMine = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "RubyMine"; product = "RubyMine";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/ruby/"; homepage = "https://www.jetbrains.com/ruby/";
@ -223,9 +223,9 @@ let
}; };
}); });
buildWebStorm = { name, version, src, license, description, wmClass, ... }: buildWebStorm = { pname, version, src, license, description, wmClass, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit name version src wmClass jdk; inherit pname version src wmClass jdk;
product = "WebStorm"; product = "WebStorm";
meta = with lib; { meta = with lib; {
homepage = "https://www.jetbrains.com/webstorm/"; homepage = "https://www.jetbrains.com/webstorm/";
@ -251,7 +251,7 @@ in
# Sorted alphabetically # Sorted alphabetically
clion = buildClion rec { clion = buildClion rec {
name = "clion-${version}"; pname = "clion";
version = products.clion.version; version = products.clion.version;
description = "C/C++ IDE. New. Intelligent. Cross-platform"; description = "C/C++ IDE. New. Intelligent. Cross-platform";
license = lib.licenses.unfree; license = lib.licenses.unfree;
@ -264,7 +264,7 @@ in
}; };
datagrip = buildDataGrip rec { datagrip = buildDataGrip rec {
name = "datagrip-${version}"; pname = "datagrip";
version = products.datagrip.version; version = products.datagrip.version;
description = "Your Swiss Army Knife for Databases and SQL"; description = "Your Swiss Army Knife for Databases and SQL";
license = lib.licenses.unfree; license = lib.licenses.unfree;
@ -277,7 +277,7 @@ in
}; };
goland = buildGoland rec { goland = buildGoland rec {
name = "goland-${version}"; pname = "goland";
version = products.goland.version; version = products.goland.version;
description = "Up and Coming Go IDE"; description = "Up and Coming Go IDE";
license = lib.licenses.unfree; license = lib.licenses.unfree;
@ -290,7 +290,7 @@ in
}; };
idea-community = buildIdea rec { idea-community = buildIdea rec {
name = "idea-community-${version}"; pname = "idea-community";
product = "IntelliJ IDEA CE"; product = "IntelliJ IDEA CE";
version = products.idea-community.version; version = products.idea-community.version;
description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
@ -304,7 +304,7 @@ in
}; };
idea-ultimate = buildIdea rec { idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}"; pname = "idea-ultimate";
product = "IntelliJ IDEA"; product = "IntelliJ IDEA";
version = products.idea-ultimate.version; version = products.idea-ultimate.version;
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
@ -318,7 +318,7 @@ in
}; };
mps = buildMps rec { mps = buildMps rec {
name = "mps-${version}"; pname = "mps";
product = "MPS ${products.mps.version-major-minor}"; product = "MPS ${products.mps.version-major-minor}";
version = products.mps.version; version = products.mps.version;
description = "Create your own domain-specific language"; description = "Create your own domain-specific language";
@ -332,7 +332,7 @@ in
}; };
phpstorm = buildPhpStorm rec { phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}"; pname = "phpstorm";
version = products.phpstorm.version; version = products.phpstorm.version;
description = "Professional IDE for Web and PHP developers"; description = "Professional IDE for Web and PHP developers";
license = lib.licenses.unfree; license = lib.licenses.unfree;
@ -345,7 +345,7 @@ in
}; };
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}"; pname = "pycharm-community";
product = "PyCharm CE"; product = "PyCharm CE";
version = products.pycharm-community.version; version = products.pycharm-community.version;
description = "PyCharm Community Edition"; description = "PyCharm Community Edition";
@ -359,7 +359,7 @@ in
}; };
pycharm-professional = buildPycharm rec { pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}"; pname = "pycharm-professional";
product = "PyCharm"; product = "PyCharm";
version = products.pycharm-professional.version; version = products.pycharm-professional.version;
description = "PyCharm Professional Edition"; description = "PyCharm Professional Edition";
@ -373,7 +373,7 @@ in
}; };
rider = buildRider rec { rider = buildRider rec {
name = "rider-${version}"; pname = "rider";
version = products.rider.version; version = products.rider.version;
description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
license = lib.licenses.unfree; license = lib.licenses.unfree;
@ -386,7 +386,7 @@ in
}; };
ruby-mine = buildRubyMine rec { ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}"; pname = "ruby-mine";
version = products.ruby-mine.version; version = products.ruby-mine.version;
description = "The Most Intelligent Ruby and Rails IDE"; description = "The Most Intelligent Ruby and Rails IDE";
license = lib.licenses.unfree; license = lib.licenses.unfree;
@ -399,7 +399,7 @@ in
}; };
webstorm = buildWebStorm rec { webstorm = buildWebStorm rec {
name = "webstorm-${version}"; pname = "webstorm";
version = products.webstorm.version; version = products.webstorm.version;
description = "Professional IDE for Web and JavaScript development"; description = "Professional IDE for Web and JavaScript development";
license = lib.licenses.unfree; license = lib.licenses.unfree;

View file

@ -3,30 +3,29 @@
, vmopts ? null , vmopts ? null
}: }:
{ name, product, productShort ? product, version, src, wmClass, jdk, meta, extraLdPath ? [], extraWrapperArgs ? [] }@args: { pname, product, productShort ? product, version, src, wmClass, jdk, meta, extraLdPath ? [], extraWrapperArgs ? [] }@args:
with lib; with lib;
let loName = toLower productShort; let loName = toLower productShort;
hiName = toUpper productShort; hiName = toUpper productShort;
mainProgram = concatStringsSep "-" (init (splitString "-" name));
vmoptsName = loName vmoptsName = loName
+ lib.optionalString stdenv.hostPlatform.is64bit "64" + lib.optionalString stdenv.hostPlatform.is64bit "64"
+ ".vmoptions"; + ".vmoptions";
in in
with stdenv; lib.makeOverridable mkDerivation (rec { with stdenv; lib.makeOverridable mkDerivation (rec {
inherit name src; inherit pname version src;
meta = args.meta // { inherit mainProgram; }; meta = args.meta // { mainProgram = pname; };
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = mainProgram; name = pname;
exec = mainProgram; exec = pname;
comment = lib.replaceChars ["\n"] [" "] meta.longDescription; comment = lib.replaceChars ["\n"] [" "] meta.longDescription;
desktopName = product; desktopName = product;
genericName = meta.description; genericName = meta.description;
categories = [ "Development" ]; categories = [ "Development" ];
icon = mainProgram; icon = pname;
startupWMClass = wmClass; startupWMClass = wmClass;
}; };
@ -62,16 +61,16 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/{bin,$name,share/pixmaps,libexec/${name}} mkdir -p $out/{bin,$pname,share/pixmaps,libexec/${pname}}
cp -a . $out/$name cp -a . $out/$pname
ln -s $out/$name/bin/${loName}.png $out/share/pixmaps/${mainProgram}.png ln -s $out/$pname/bin/${loName}.png $out/share/pixmaps/${pname}.png
mv bin/fsnotifier* $out/libexec/${name}/. mv bin/fsnotifier* $out/libexec/${pname}/.
jdk=${jdk.home} jdk=${jdk.home}
item=${desktopItem} item=${desktopItem}
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${mainProgram}" \ makeWrapper "$out/$pname/bin/${loName}.sh" "$out/bin/${pname}" \
--prefix PATH : "$out/libexec/${name}:${lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \ --prefix PATH : "$out/libexec/${pname}:${lib.makeBinPath [ jdk coreutils gnugrep which git ]}" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath ([ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath ([
# Some internals want libstdc++.so.6 # Some internals want libstdc++.so.6
stdenv.cc.cc.lib libsecret e2fsprogs stdenv.cc.cc.lib libsecret e2fsprogs

View file

@ -32,7 +32,8 @@ rec {
''; '';
sizedLogo = size: stdenv.mkDerivation { sizedLogo = size: stdenv.mkDerivation {
name = ''octave-logo-${octave.version}-${size}x${size}.png''; pname = "octave-logo-${size}x${size}.png";
inherit (octave) version;
src = octave.src; src = octave.src;

View file

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: { lib, buildGoModule, fetchFromGitHub, installShellFiles, callPackage }:
buildGoModule rec { buildGoModule rec {
pname = "micro"; pname = "micro";
@ -24,6 +24,8 @@ buildGoModule rec {
install -Dt $out/share/applications assets/packaging/micro.desktop install -Dt $out/share/applications assets/packaging/micro.desktop
''; '';
passthru.tests.expect = callPackage ./test-with-expect.nix {};
meta = with lib; { meta = with lib; {
homepage = "https://micro-editor.github.io"; homepage = "https://micro-editor.github.io";
description = "Modern and intuitive terminal-based text editor"; description = "Modern and intuitive terminal-based text editor";

View file

@ -0,0 +1,30 @@
{ micro, expect, runCommand, writeScript, runtimeShell }:
let expect-script = writeScript "expect-script" ''
#!${expect}/bin/expect -f
spawn micro file.txt
expect "file.txt"
send "Hello world!"
expect "Hello world!"
# Send ctrl-q (exit)
send "\021"
expect "Save changes to file.txt before closing?"
send "y"
expect eof
''; in
runCommand "micro-test-expect"
{
nativeBuildInputs = [ micro expect ];
passthru = { inherit expect-script; };
} ''
# Micro really wants a writable $HOME for its config directory.
export HOME=$(pwd)
expect -f ${expect-script}
grep "Hello world!" file.txt
touch $out
''

View file

@ -2,7 +2,7 @@
qmake, qtbase, qtxmlpatterns, qtsvg, qtscxml, qtquick1, libGLU }: qmake, qtbase, qtxmlpatterns, qtsvg, qtscxml, qtquick1, libGLU }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qxmledit-${version}" ; pname = "qxmledit" ;
version = "0.9.15" ; version = "0.9.15" ;
src = fetchFromGitHub ( lib.importJSON ./qxmledit.json ) ; src = fetchFromGitHub ( lib.importJSON ./qxmledit.json ) ;
nativeBuildInputs = [ qmake ] ; nativeBuildInputs = [ qmake ] ;

View file

@ -1,5 +1,5 @@
{ stdenv, lib, pkgArches, callPackage, makeSetupHook, { stdenv, lib, pkgArches, callPackage, makeSetupHook,
name, version, src, mingwGccs, monos, geckos, platforms, pname, version, src, mingwGccs, monos, geckos, platforms,
bison, flex, fontforge, makeWrapper, pkg-config, bison, flex, fontforge, makeWrapper, pkg-config,
autoconf, hexdump, perl, nixosTests, autoconf, hexdump, perl, nixosTests,
supportFlags, supportFlags,
@ -13,7 +13,7 @@ with import ./util.nix { inherit lib; };
let let
patches' = patches; patches' = patches;
prevName = name; prevName = pname;
prevPlatforms = platforms; prevPlatforms = platforms;
prevConfigFlags = configureFlags; prevConfigFlags = configureFlags;
setupHookDarwin = makeSetupHook { setupHookDarwin = makeSetupHook {
@ -42,9 +42,9 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
make loader/wine64-preloader NIX_LDFLAGS="" NIX_LDFLAGS_${stdenv.cc.suffixSalt}="" make loader/wine64-preloader NIX_LDFLAGS="" NIX_LDFLAGS_${stdenv.cc.suffixSalt}=""
''; '';
}) // rec { }) // rec {
inherit src; inherit version src;
name = if supportFlags.waylandSupport then "${prevName}-wayland" else prevName; pname = prevName + lib.optionalString supportFlags.waylandSupport "wayland";
# Fixes "Compiler cannot create executables" building wineWow with mingwSupport # Fixes "Compiler cannot create executables" building wineWow with mingwSupport
strictDeps = true; strictDeps = true;

View file

@ -9,7 +9,7 @@ let
vkd3d_i686 = pkgsi686Linux.callPackage ./vkd3d.nix { inherit moltenvk; }; vkd3d_i686 = pkgsi686Linux.callPackage ./vkd3d.nix { inherit moltenvk; };
in with src; { in with src; {
wine32 = pkgsi686Linux.callPackage ./base.nix { wine32 = pkgsi686Linux.callPackage ./base.nix {
name = "wine-${version}"; pname = "wine";
inherit src version supportFlags patches moltenvk; inherit src version supportFlags patches moltenvk;
pkgArches = [ pkgsi686Linux ]; pkgArches = [ pkgsi686Linux ];
vkd3dArches = lib.optionals supportFlags.vkd3dSupport [ vkd3d_i686 ]; vkd3dArches = lib.optionals supportFlags.vkd3dSupport [ vkd3d_i686 ];
@ -19,7 +19,7 @@ in with src; {
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" ];
}; };
wine64 = callPackage ./base.nix { wine64 = callPackage ./base.nix {
name = "wine64-${version}"; pname = "wine64";
inherit src version supportFlags patches moltenvk; inherit src version supportFlags patches moltenvk;
pkgArches = [ pkgs ]; pkgArches = [ pkgs ];
vkd3dArches = lib.optionals supportFlags.vkd3dSupport [ vkd3d ]; vkd3dArches = lib.optionals supportFlags.vkd3dSupport [ vkd3d ];
@ -30,7 +30,7 @@ in with src; {
platforms = [ "x86_64-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "x86_64-darwin" ];
}; };
wineWow = callPackage ./base.nix { wineWow = callPackage ./base.nix {
name = "wine-wow-${version}"; pname = "wine-wow";
inherit src version supportFlags patches moltenvk; inherit src version supportFlags patches moltenvk;
stdenv = stdenv_32bit; stdenv = stdenv_32bit;
pkgArches = [ pkgs pkgsi686Linux ]; pkgArches = [ pkgs pkgsi686Linux ];

View file

@ -5,7 +5,7 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "grass"; pname = "grass";
version = "7.8.6"; version = "7.8.6";
src = with lib; fetchFromGitHub { src = with lib; fetchFromGitHub {

View file

@ -11,11 +11,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "drawio"; pname = "drawio";
version = "16.5.1"; version = "17.2.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm"; url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
sha256 = "a8ebf2560820d2d05677b9b16fc863f555dde8235b3e34acd7916eee3544eaa9"; sha256 = "28019774a18f6e74c0d126346ae3551b5eb9c73aae13fe87f6d49120c183697a";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -36,13 +36,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-photos"; pname = "gnome-photos";
version = "40.0"; version = "42.0";
outputs = [ "out" "installedTests" ]; outputs = [ "out" "installedTests" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0"; sha256 = "JcsoFCUZnex7BF8T8y+PlgNMsMuLlNlvnf+vT1vmhVE=";
}; };
patches = [ patches = [

View file

@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "A simple and fast image viewer for X"; description = "A simple and fast image viewer for X";
homepage = "http://lxde.sourceforge.net/gpicview/"; homepage = "http://lxde.sourceforge.net/gpicview/";
repositories.git = "git://lxde.git.sourceforge.net/gitroot/lxde/gpicview";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ lovek323 ]; maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix; platforms = platforms.unix;

View file

@ -33,11 +33,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gthumb"; pname = "gthumb";
version = "3.12.0"; version = "3.12.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-Pe/8AwOE5ktXNhxDfHm0ga4Uie9EyHroVugbsQ2OOD8="; sha256 = "sha256-ZDBmOgAHBpbGgeXru4AQc/1GpG1oEsKeL5pPgRr6Gfw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -5,6 +5,7 @@
, cairo , cairo
, cmake , cmake
, fetchurl , fetchurl
, fetchpatch
, gettext , gettext
, ghostscript , ghostscript
, glib , glib
@ -71,6 +72,13 @@ stdenv.mkDerivation rec {
# e.g., those from the "Effects" menu. # e.g., those from the "Effects" menu.
python3 = "${python3Env}/bin/python"; python3 = "${python3Env}/bin/python";
}) })
# Fix build with poppler 22.03
# https://gitlab.com/inkscape/inkscape/-/merge_requests/4187
(fetchpatch {
url = "https://gitlab.com/inkscape/inkscape/-/commit/a18c57ffff313fd08bc8a44f6b6bf0b01d7e9b75.patch";
sha256 = "UZb8ZTtfA5667uo5ZlVQ5vPowiSgd4ItAJ9U1BOsRQg=";
})
]; ];
postPatch = '' postPatch = ''

View file

@ -9,8 +9,8 @@
applytransforms = callPackage ./extensions/applytransforms { }; applytransforms = callPackage ./extensions/applytransforms { };
hexmap = stdenv.mkDerivation { hexmap = stdenv.mkDerivation {
name = "hexmap"; pname = "hexmap";
version = "2020-06-06"; version = "unstable-2020-06-06";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lifelike"; owner = "lifelike";

View file

@ -4,14 +4,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
p_name = "mtPaint"; pname = "mtPaint";
ver_maj = "3.50"; version = "3.50.01";
ver_min = "01";
name = "${p_name}-${ver_maj}.${ver_min}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wjaguar"; owner = "wjaguar";
repo = p_name; repo = "mtPaint";
rev = "a4675ff5cd9fcd57d291444cb9f332b48f11243f"; rev = "a4675ff5cd9fcd57d291444cb9f332b48f11243f";
sha256 = "04wqxz8i655gz5rnz90cksy8v6m2jhcn1j8rzhqpp5xhawlmq24y"; sha256 = "04wqxz8i655gz5rnz90cksy8v6m2jhcn1j8rzhqpp5xhawlmq24y";
}; };

View file

@ -66,7 +66,6 @@ mkDerivation rec {
description = "Qt-based image viewer"; description = "Qt-based image viewer";
maintainers = with lib.maintainers; [ mindavi ]; maintainers = with lib.maintainers; [ mindavi ];
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
repositories.git = "https://github.com/nomacs/nomacs.git";
inherit (qtbase.meta) platforms; inherit (qtbase.meta) platforms;
}; };
} }

View file

@ -1,4 +1,4 @@
{ mkDerivation, lib, extra-cmake-modules { mkDerivation, fetchpatch, lib, extra-cmake-modules
, qtdeclarative, ki18n, kmime, kpkpass , qtdeclarative, ki18n, kmime, kpkpass
, poppler, kcontacts, kcalendarcore , poppler, kcontacts, kcalendarcore
, shared-mime-info , shared-mime-info
@ -10,6 +10,15 @@ mkDerivation {
license = with lib.licenses; [ lgpl21 ]; license = with lib.licenses; [ lgpl21 ];
maintainers = [ lib.maintainers.bkchr ]; maintainers = [ lib.maintainers.bkchr ];
}; };
patches = [
# Fix build with poppler 22.03
(fetchpatch {
url = "https://github.com/KDE/kitinerary/commit/e21d1ffc5fa81a636245f49c97fe7cda63abbb1d.patch";
sha256 = "1/zgq9QIOCPplqplDqgpoqzuYFf/m1Ixxawe50t2F04=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
extra-cmake-modules extra-cmake-modules
shared-mime-info # for update-mime-database shared-mime-info # for update-mime-database

View file

@ -101,6 +101,7 @@ in stdenv.mkDerivation rec {
mkdir -p $out/share/polkit-1/actions mkdir -p $out/share/polkit-1/actions
substitute com.1password.1Password.policy.tpl $out/share/polkit-1/actions/com.1password.1Password.policy --replace "\''${POLICY_OWNERS}" "${policyOwners}" substitute com.1password.1Password.policy.tpl $out/share/polkit-1/actions/com.1password.1Password.policy --replace "\''${POLICY_OWNERS}" "${policyOwners}"
'') + '' '') + ''
# Icons # Icons
cp -a resources/icons $out/share cp -a resources/icons $out/share

View file

@ -1,5 +1,7 @@
{ lib, stdenv { stdenv
, lib
, fetchurl , fetchurl
, fetchpatch
, atk , atk
, cairo , cairo
, desktop-file-utils , desktop-file-utils
@ -32,6 +34,16 @@ stdenv.mkDerivation rec {
sha256 = "lMpDQOxlGljP66APR49aPbTZnfrGakbQ2ZcFvmiPMFo="; sha256 = "lMpDQOxlGljP66APR49aPbTZnfrGakbQ2ZcFvmiPMFo=";
}; };
patches = [
# Fix build with meson 0.61
# data/meson.build:2:5: ERROR: Function does not take positional arguments.
# Patch taken from https://gitlab.gnome.org/GNOME/almanah/-/merge_requests/13
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/almanah/-/commit/8c42a67695621d1e30cec933a04e633e6030bbaf.patch";
sha256 = "qyqFgYSu4emFDG/Mjwz1bZb3v3/4gwQSKmGCoPPNYCQ=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
desktop-file-utils desktop-file-utils
gettext gettext

View file

@ -16,9 +16,10 @@
, maven , maven
, webkitgtk , webkitgtk
, glib-networking , glib-networking
, javaPackages
}: }:
stdenv.mkDerivation rec { javaPackages.mavenfod rec {
pname = "dbeaver"; pname = "dbeaver";
version = "22.0.1"; # When updating also update fetchedMavenDeps.sha256 version = "22.0.1"; # When updating also update fetchedMavenDeps.sha256
@ -29,6 +30,10 @@ stdenv.mkDerivation rec {
sha256 = "sha256-IG5YWwq3WVzQBvAslQ9Z2Ou6ADzf4n9NkQCtH4Jgkac="; sha256 = "sha256-IG5YWwq3WVzQBvAslQ9Z2Ou6ADzf4n9NkQCtH4Jgkac=";
}; };
mvnSha256 = "7Sm1hAoi5xc4MLONOD8ySLLkpao0qmlMRRva/8zR210=";
mvnParameters = "-P desktop,all-platforms";
fetchedMavenDeps = stdenv.mkDerivation { fetchedMavenDeps = stdenv.mkDerivation {
name = "dbeaver-${version}-maven-deps"; name = "dbeaver-${version}-maven-deps";
inherit src; inherit src;
@ -37,7 +42,7 @@ stdenv.mkDerivation rec {
maven maven
]; ];
buildPhase = "mvn package -Dmaven.repo.local=$out/.m2 -P desktop,all-platforms"; buildPhase = "mvn package -Dmaven.repo.local=$out/.m2 ${mvnParameters}";
# keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
installPhase = '' installPhase = ''
@ -88,14 +93,6 @@ stdenv.mkDerivation rec {
}) })
]; ];
buildPhase = ''
runHook preBuild
mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 -P desktop,all-platforms
runHook postBuild
'';
installPhase = installPhase =
let let
productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product"; productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product";

View file

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub { lib, stdenv, fetchFromGitHub
, autoconf, autoconf-archive, automake, glib, intltool, libtool, pkg-config , autoconf, autoconf-archive, automake, glib, intltool, libtool, pkg-config
, gnome, gnupg, gtk3, udisks , gnome-desktop, gnupg, gtk3, udisks
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
autoconf autoconf-archive automake glib intltool libtool pkg-config autoconf autoconf-archive automake glib intltool libtool pkg-config
]; ];
buildInputs = [ gnome.gnome-desktop gtk3 udisks ]; buildInputs = [ gnome-desktop gtk3 udisks ];
preConfigure = '' preConfigure = ''
./autogen.sh ./autogen.sh

View file

@ -7,7 +7,7 @@
let let
qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ]; qt5Deps = pkgs: with pkgs.qt5; [ qtbase qtmultimedia ];
gnomeDeps = pkgs: with pkgs; [ gnome.zenity gtksourceview gnome.gnome-desktop gnome.libgnome-keyring webkitgtk ]; gnomeDeps = pkgs: with pkgs; [ gnome.zenity gtksourceview gnome-desktop gnome.libgnome-keyring webkitgtk ];
xorgDeps = pkgs: with pkgs.xorg; [ xorgDeps = pkgs: with pkgs.xorg; [
libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp libX11 libXrender libXrandr libxcb libXmu libpthreadstubs libXext libXdmcp
libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite

View file

@ -82,7 +82,6 @@ in stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
homepage = "https://mupdf.com"; homepage = "https://mupdf.com";
repositories.git = "git://git.ghostscript.com/mupdf.git";
description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C"; description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
license = licenses.agpl3Plus; license = licenses.agpl3Plus;
maintainers = with maintainers; [ vrthra fpletz ]; maintainers = with maintainers; [ vrthra fpletz ];

View file

@ -111,7 +111,6 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
homepage = "https://mupdf.com"; homepage = "https://mupdf.com";
repositories.git = "git://git.ghostscript.com/mupdf.git";
description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C"; description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
license = licenses.agpl3Plus; license = licenses.agpl3Plus;
maintainers = with maintainers; [ vrthra fpletz ]; maintainers = with maintainers; [ vrthra fpletz ];

View file

@ -49,7 +49,6 @@ stdenv.mkDerivation rec {
It uses a layered approach to connect all of the parts. It uses a layered approach to connect all of the parts.
''; '';
homepage = "https://networkupstools.org/"; homepage = "https://networkupstools.org/";
repositories.git = "https://github.com/networkupstools/nut.git";
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.pierron ]; maintainers = [ maintainers.pierron ];
license = with licenses; [ gpl1Plus gpl2Plus gpl3Plus ]; license = with licenses; [ gpl1Plus gpl2Plus gpl3Plus ];

View file

@ -34,6 +34,47 @@ let
(mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a") (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a")
(mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b") (mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b")
# black uses hash, not sha256 identifier. Newer black version requires newer click version
(
self: super: {
black = super.black.overridePythonAttrs (oldAttrs: rec {
version = "21.12b0";
src = oldAttrs.src.override {
inherit version;
hash = "sha256-d7gPaTpWni5SeVhFljTxjfmwuiYluk4MLV2lvkLm8rM=";
};
doCheck = false;
});
}
)
# tests need network
(
self: super: {
curio = super.curio.overridePythonAttrs (oldAttrs: rec {
disabledTests = [
"test_timeout"
"test_ssl_outgoing"
];
});
}
)
# tests need network
(
self: super: {
trio = super.trio.overridePythonAttrs (oldAttrs: rec {
disabledTests = [
"test_local_address_real"
];
disabledTestPaths = [
"trio/tests/test_exports.py"
"trio/tests/test_socket.py"
];
});
}
)
# Requires flask<2, cannot mkOverride because tests need to be disabled # Requires flask<2, cannot mkOverride because tests need to be disabled
( (
self: super: { self: super: {
@ -400,7 +441,7 @@ let
homepage = "https://octoprint.org/"; homepage = "https://octoprint.org/";
description = "The snappy web interface for your 3D printer"; description = "The snappy web interface for your 3D printer";
license = licenses.agpl3Only; license = licenses.agpl3Only;
maintainers = with maintainers; [ abbradar gebner WhittlesJr ]; maintainers = with maintainers; [ abbradar gebner WhittlesJr gador ];
}; };
}; };
} }

View file

@ -34,13 +34,13 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "orca"; pname = "orca";
version = "41.2"; version = "42.0";
format = "other"; format = "other";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "1/Jy6ps3+9ZFTkAh5GU4okcibhwKxXDW4rhOlxmqKv4="; sha256 = "LCUXmrQbJgsY8f+Jm+uv5olDi0nf/SEd78l2olCT9zo=";
}; };
patches = [ patches = [

View file

@ -9,6 +9,7 @@
, wrapGAppsHook , wrapGAppsHook
, libinput , libinput
, gnome , gnome
, gnome-desktop
, glib , glib
, gtk3 , gtk3
, wayland , wayland
@ -68,7 +69,7 @@ in stdenv.mkDerivation rec {
libinput libinput
glib glib
gtk3 gtk3
gnome.gnome-desktop gnome-desktop
# For keybindings settings schemas # For keybindings settings schemas
gnome.mutter gnome.mutter
wayland wayland

View file

@ -5,19 +5,19 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "taskwarrior-tui"; pname = "taskwarrior-tui";
version = "0.21.0"; version = "0.21.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kdheepak"; owner = "kdheepak";
repo = "taskwarrior-tui"; repo = "taskwarrior-tui";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-HHYObAeJtryZWRV3T+FXRz0TgBIfw/kVL9jwaQmZcEA="; sha256 = "sha256-fgoK7Y+3h2VFfP8yiR8JM8Xf7UJbkX9PO1RoJRoYLW4=";
}; };
# Because there's a test that requires terminal access # Because there's a test that requires terminal access
doCheck = false; doCheck = false;
cargoSha256 = "sha256-oRREvqQLigpfpnTJgVZjAwAvmUs9YSZm+D5xyFYvdb4="; cargoSha256 = "sha256-3rDvla1mCcQclALbomUTvE3aLzsMeIjcIbEv4KfCKZE=";
meta = with lib; { meta = with lib; {
description = "A terminal user interface for taskwarrior "; description = "A terminal user interface for taskwarrior ";

View file

@ -114,7 +114,7 @@ let
}; };
base = rec { base = rec {
name = "${packageName}-unwrapped-${version}"; pname = "${packageName}-unwrapped";
inherit (upstream-info) version; inherit (upstream-info) version;
inherit packageName buildType buildPath; inherit packageName buildType buildPath;

View file

@ -157,8 +157,8 @@ let
else browser; else browser;
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = lib.optionalString ungoogled "ungoogled-" pname = lib.optionalString ungoogled "ungoogled-"
+ "chromium${suffix}-${version}"; + "chromium${suffix}";
inherit version; inherit version;
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -1,11 +1,11 @@
{ {
"packageVersion": "98.0-1", "packageVersion": "98.0.2-1",
"source": { "source": {
"rev": "98.0-1", "rev": "98.0.2-1",
"sha256": "1z42a42d6z0gyc5i0pamcqq5bak6pgg1ldvlrjdyjnpvda74s0fn" "sha256": "033l6mjmhfhf7b8p652s7ziw8zz725082hhzzvr3ahi498wshkx6"
}, },
"firefox": { "firefox": {
"version": "98.0", "version": "98.0.2",
"sha512": "5b9186dd2a5dee5f2d2a2ce156fc06e2073cf71a70891a294cf3358218592f19ec3413d33b68d6f38e3cc5f940213e590a188e2b6efc39f416e90a55f89bfd9b" "sha512": "b567b53fcdc08491063d535545f558ea56ec5be02ca540661de116986245b79f509e0103cea5661faf9f4b3d30b67758ebdb4b30401e260ee27cbb300203f36e"
} }
} }

View file

@ -27,7 +27,7 @@
}: }:
let let
version = "8.0.1"; version = "8.1.1";
ptFiles = stdenv.mkDerivation { ptFiles = stdenv.mkDerivation {
name = "PacketTracer8Drv"; name = "PacketTracer8Drv";
@ -36,7 +36,7 @@ let
dontUnpack = true; dontUnpack = true;
src = requireFile { src = requireFile {
name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb"; name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb";
sha256 = "77a25351b016faed7c78959819c16c7013caa89c6b1872cb888cd96edd259140"; sha256 = "08c53171aa0257a64ae7de1540f242214033cfa4f879fbc9fed5cc0d32232abf";
url = "https://www.netacad.com"; url = "https://www.netacad.com";
}; };
@ -72,6 +72,7 @@ let
libXrandr libXrandr
libXrender libXrender
libXScrnSaver libXScrnSaver
libXtst
xcbutilimage xcbutilimage
xcbutilkeysyms xcbutilkeysyms
xcbutilrenderutil xcbutilrenderutil

View file

@ -2,20 +2,20 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "2.3.1"; version = "2.3.2";
tag = "v${version}"; tag = "v${version}";
# Update commit to match the tag above # Update commit to match the tag above
# TODO make updadeScript # TODO make updadeScript
commit = "b65c1699fa2a2daa031483a3890e6911eac69068"; commit = "ecc2af9dcaa12975e654cde8cbbeaffbb315f75c";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = tag; rev = tag;
sha256 = "sha256-YijhJz7m5wy8kR9V6IHSNYjiWh7H2ph6il9nMsrePOE="; sha256 = "sha256-n+C4l4U3cDU+fgCnGWOYLdyjknw7n/xPEtC1i8AaU4o=";
}; };
vendorSha256 = "sha256-uA9sOMuVHKRRhSGoLyoKcUYU6NxtprVUITvVC+tot1g="; vendorSha256 = "sha256-Km+1o6yuuxJs+DNTQ/XVTUFurD5gM5ohwDc7MwJuu5s=";
# Set target as ./cmd per release-cli # Set target as ./cmd per release-cli
# https://github.com/argoproj/argo-cd/blob/master/Makefile#L222 # https://github.com/argoproj/argo-cd/blob/master/Makefile#L222

View file

@ -34,6 +34,5 @@ stdenv.mkDerivation rec {
license = licenses.asl20; license = licenses.asl20;
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ mbode ]; maintainers = with maintainers; [ mbode ];
repositories.git = "git://git.apache.org/flink.git";
}; };
} }

View file

@ -20,7 +20,6 @@ buildGoPackage rec {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ mbode tazjin ]; maintainers = with maintainers; [ mbode tazjin ];
platforms = platforms.unix; platforms = platforms.unix;
repositories.git = "git://github.com/tazjin/kontemplate.git";
longDescription = '' longDescription = ''
Kontemplate is a simple CLI tool that can take sets of Kontemplate is a simple CLI tool that can take sets of

View file

@ -10,16 +10,16 @@
buildGoModule rec { buildGoModule rec {
pname = "nerdctl"; pname = "nerdctl";
version = "0.17.1"; version = "0.18.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containerd"; owner = "containerd";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-fWev5KgJEuL2pDm17kxdqRKo7t3+dDt5UD5iTHneJSY="; sha256 = "sha256-gkfy/tKzh6EO+nyjuiU3InSErKvGcJp/X7oqYk0Msr0=";
}; };
vendorSha256 = "sha256-7L5xA/2uQnu10QGZn49K3oJf4HBEvt8q/sOR6BRXlo0="; vendorSha256 = "sha256-hjhZYNpqt9yFNrDVpFlguESUAAqU+AhpUQTCvyMadPk=";
nativeBuildInputs = [ makeWrapper installShellFiles ]; nativeBuildInputs = [ makeWrapper installShellFiles ];

View file

@ -32,6 +32,5 @@ buildGoModule rec {
changelog = "https://github.com/derailed/popeye/releases/tag/v${version}"; changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
license = licenses.asl20; license = licenses.asl20;
maintainers = [ maintainers.bryanasdev000 ]; maintainers = [ maintainers.bryanasdev000 ];
platforms = platforms.linux;
}; };
} }

View file

@ -63,7 +63,6 @@ let
license = lib.licenses.asl20; license = lib.licenses.asl20;
platforms = lib.platforms.all; platforms = lib.platforms.all;
maintainers = with maintainers; [ thoughtpolice offline kamilchm illustris ]; maintainers = with maintainers; [ thoughtpolice offline kamilchm illustris ];
repositories.git = "git://git.apache.org/spark.git";
}; };
}; };
in in

View file

@ -5,14 +5,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "flexget"; pname = "flexget";
version = "3.3.3"; version = "3.3.4";
# Fetch from GitHub in order to use `requirements.in` # Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "flexget"; owner = "flexget";
repo = "flexget"; repo = "flexget";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-a76x4Klad3lct2M9RxSroUYKmEX7lPqDN+dFvfjavo8="; hash = "sha256-/nuY8+/RMM7ASke+NXb95yu+FeQHawCdgqVsBrk/KZ8=";
}; };
postPatch = '' postPatch = ''

View file

@ -11,7 +11,7 @@
, evolution-data-server , evolution-data-server
, feedbackd , feedbackd
, glibmm , glibmm
, gnome , gnome-desktop
, gspell , gspell
, gtk3 , gtk3
, json-glib , json-glib
@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
evolution-data-server evolution-data-server
feedbackd feedbackd
glibmm glibmm
gnome.gnome-desktop gnome-desktop
gspell gspell
gtk3 gtk3
json-glib json-glib

View file

@ -88,7 +88,6 @@ in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
''; '';
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ ttuegel ]; maintainers = with maintainers; [ ttuegel ];
repositories.git = "https://github.com/quassel/quassel.git";
inherit (qtbase.meta) platforms; inherit (qtbase.meta) platforms;
}; };
} }

View file

@ -33,7 +33,6 @@ python3Packages.buildPythonApplication rec {
GMail account. GMail account.
''; '';
homepage = "https://lieer.gaute.vetsj.com/"; homepage = "https://lieer.gaute.vetsj.com/";
repositories.git = "https://github.com/gauteh/lieer.git";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ flokli kaiha ]; maintainers = with maintainers; [ flokli kaiha ];
}; };

View file

@ -9,13 +9,7 @@
, withManpage ? false , withManpage ? false
}: }:
with python3.pkgs; with python3.pkgs; buildPythonApplication rec {
let
notmuch2 = callPackage ./notmuch.nix {
inherit notmuch;
};
in
buildPythonApplication rec {
pname = "alot"; pname = "alot";
version = "0.10"; version = "0.10";

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