Merge master into staging-next

This commit is contained in:
github-actions[bot] 2022-01-13 12:01:29 +00:00 committed by GitHub
commit a6928c74cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 613 additions and 246 deletions

View File

@ -11,6 +11,10 @@ under the terms of [COPYING](COPYING), which is an MIT-like license.
## Submitting changes
Read the ["Submitting changes"](https://nixos.org/nixpkgs/manual/#chap-submitting-changes) section of the nixpkgs manual. It explains how to write, test, and iterate on your change, and which branch to base your pull request against.
Below is a short excerpt of some points in there:
* Format the commit messages in the following way:
```
@ -40,7 +44,7 @@ under the terms of [COPYING](COPYING), which is an MIT-like license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* `meta.maintainers` must be set.
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes).
## Writing good commit messages

View File

@ -104,4 +104,6 @@ chroot_add_resolv_conf "$mountPoint" || print "ERROR: failed to set up resolv.co
chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true
)
unset TMPDIR
exec chroot "$mountPoint" "${command[@]}"

View File

@ -544,6 +544,7 @@
./services/misc/gollum.nix
./services/misc/gpsd.nix
./services/misc/headphones.nix
./services/misc/heisenbridge.nix
./services/misc/greenclip.nix
./services/misc/home-assistant.nix
./services/misc/ihaskell.nix

View File

@ -209,62 +209,42 @@ in {
config = mkIf cfg.enable {
# install mpd units
systemd.packages = [ pkgs.mpd ];
systemd.sockets.mpd = mkIf cfg.startWhenNeeded {
description = "Music Player Daemon Socket";
wantedBy = [ "sockets.target" ];
listenStreams = [
(if pkgs.lib.hasPrefix "/" cfg.network.listenAddress
then cfg.network.listenAddress
else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}")
];
socketConfig = {
Backlog = 5;
KeepAlive = true;
PassCredentials = true;
};
};
systemd.services.mpd = {
after = [ "network.target" "sound.target" ];
description = "Music Player Daemon";
wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
serviceConfig = mkMerge [
preStart =
''
set -euo pipefail
install -m 600 ${mpdConf} /run/mpd/mpd.conf
'' + optionalString (cfg.credentials != [])
(concatStringsSep "\n"
(imap0
(i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
cfg.credentials));
serviceConfig =
{
User = "${cfg.user}";
ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /run/mpd/mpd.conf";
ExecStartPre = pkgs.writeShellScript "mpd-start-pre" (''
set -euo pipefail
install -m 600 ${mpdConf} /run/mpd/mpd.conf
'' + optionalString (cfg.credentials != [])
(concatStringsSep "\n"
(imap0
(i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
cfg.credentials))
);
# Note: the first "" overrides the ExecStart from the upstream unit
ExecStart = [ "" "${pkgs.mpd}/bin/mpd --systemd /run/mpd/mpd.conf" ];
RuntimeDirectory = "mpd";
Type = "notify";
LimitRTPRIO = 50;
LimitRTTIME = "infinity";
ProtectSystem = true;
NoNewPrivileges = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK";
RestrictNamespaces = true;
Restart = "always";
}
(mkIf (cfg.dataDir == "/var/lib/${name}") {
StateDirectory = [ name ];
})
(mkIf (cfg.playlistDirectory == "/var/lib/${name}/playlists") {
StateDirectory = [ name "${name}/playlists" ];
})
(mkIf (cfg.musicDirectory == "/var/lib/${name}/music") {
StateDirectory = [ name "${name}/music" ];
})
];
StateDirectory = []
++ optionals (cfg.dataDir == "/var/lib/${name}") [ name ]
++ optionals (cfg.playlistDirectory == "/var/lib/${name}/playlists") [ name "${name}/playlists" ]
++ optionals (cfg.musicDirectory == "/var/lib/${name}/music") [ name "${name}/music" ];
};
};
users.users = optionalAttrs (cfg.user == name) {

View File

@ -23,7 +23,7 @@ let
in
{
options.services.heisenbridge = {
enable = mkEnableOption "the Matrix<->IRC bridge";
enable = mkEnableOption "A bouncer-style Matrix IRC bridge";
package = mkOption {
type = types.package;

View File

@ -45,16 +45,6 @@ initrd {initrd}
options {kernel_params}
"""
# The boot loader entry for memtest86.
#
# TODO: This is hard-coded to use the 64-bit EFI app, but it could probably
# be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI
# app filename is BOOTIA32.efi.
MEMTEST_BOOT_ENTRY = """title MemTest86
efi /efi/memtest86/BOOTX64.efi
"""
def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
pieces = [
"nixos",
@ -283,23 +273,24 @@ def main() -> None:
except OSError as e:
print("ignoring profile '{}' in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr)
memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf"
if os.path.exists(memtest_entry_file):
os.unlink(memtest_entry_file)
shutil.rmtree("@efiSysMountPoint@/efi/memtest86", ignore_errors=True)
if "@memtest86@" != "":
mkdir_p("@efiSysMountPoint@/efi/memtest86")
for path in glob.iglob("@memtest86@/*"):
if os.path.isdir(path):
shutil.copytree(path, os.path.join("@efiSysMountPoint@/efi/memtest86", os.path.basename(path)))
else:
shutil.copy(path, "@efiSysMountPoint@/efi/memtest86/")
for root, _, files in os.walk('@efiSysMountPoint@/efi/nixos/.extra-files', topdown=False):
relative_root = root.removeprefix("@efiSysMountPoint@/efi/nixos/.extra-files").removeprefix("/")
actual_root = os.path.join("@efiSysMountPoint@", relative_root)
memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf"
memtest_entry_file_tmp_path = "%s.tmp" % memtest_entry_file
with open(memtest_entry_file_tmp_path, 'w') as f:
f.write(MEMTEST_BOOT_ENTRY)
os.rename(memtest_entry_file_tmp_path, memtest_entry_file)
for file in files:
actual_file = os.path.join(actual_root, file)
if os.path.exists(actual_file):
os.unlink(actual_file)
os.unlink(os.path.join(root, file))
if not len(os.listdir(actual_root)):
os.rmdir(actual_root)
os.rmdir(root)
mkdir_p("@efiSysMountPoint@/efi/nixos/.extra-files")
subprocess.check_call("@copyExtraFiles@")
# Since fat32 provides little recovery facilities after a crash,
# it can leave the system in an unbootable state, when a crash/outage

View File

@ -29,6 +29,22 @@ let
inherit (efi) efiSysMountPoint canTouchEfiVariables;
memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else "";
netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
empty_file=$(mktemp)
${concatStrings (mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${v}" "${efi.efiSysMountPoint}/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/"${escapeShellArg n}
'') cfg.extraFiles)}
${concatStrings (mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${pkgs.writeText n v}" "${efi.efiSysMountPoint}/loader/entries/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/loader/entries/"${escapeShellArg n}
'') cfg.extraEntries)}
'';
};
checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" {
@ -125,6 +141,74 @@ in {
<literal>true</literal>.
'';
};
entryFilename = mkOption {
default = "memtest86.conf";
type = types.str;
description = ''
<literal>systemd-boot</literal> orders the menu entries by the config file names,
so if you want something to appear after all the NixOS entries,
it should start with <filename>o</filename> or onwards.
'';
};
};
netbootxyz = {
enable = mkOption {
default = false;
type = types.bool;
description = ''
Make <literal>netboot.xyz</literal> available from the
<literal>systemd-boot</literal> menu. <literal>netboot.xyz</literal>
is a menu system that allows you to boot OS installers and
utilities over the network.
'';
};
entryFilename = mkOption {
default = "o_netbootxyz.conf";
type = types.str;
description = ''
<literal>systemd-boot</literal> orders the menu entries by the config file names,
so if you want something to appear after all the NixOS entries,
it should start with <filename>o</filename> or onwards.
'';
};
};
extraEntries = mkOption {
type = types.attrsOf types.lines;
default = {};
example = literalExpression ''
{ "memtest86.conf" = '''
title MemTest86
efi /efi/memtest86/memtest86.efi
'''; }
'';
description = ''
Any additional entries you want added to the <literal>systemd-boot</literal> menu.
These entries will be copied to <filename>/boot/loader/entries</filename>.
Each attribute name denotes the destination file name,
and the corresponding attribute value is the contents of the entry.
<literal>systemd-boot</literal> orders the menu entries by the config file names,
so if you want something to appear after all the NixOS entries,
it should start with <filename>o</filename> or onwards.
'';
};
extraFiles = mkOption {
type = types.attrsOf types.path;
default = {};
example = literalExpression ''
{ "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; }
'';
description = ''
A set of files to be copied to <filename>/boot</filename>.
Each attribute name denotes the destination file name in
<filename>/boot</filename>, while the corresponding
attribute value specifies the source file.
'';
};
graceful = mkOption {
@ -148,15 +232,64 @@ in {
assertions = [
{
assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub;
message = "This kernel does not support the EFI boot stub";
}
];
] ++ concatMap (filename: [
{
assertion = !(hasInfix "/" filename);
message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries within folders are not supported";
}
{
assertion = hasSuffix ".conf" filename;
message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries must have a .conf file extension";
}
]) (builtins.attrNames cfg.extraEntries)
++ concatMap (filename: [
{
assertion = !(hasPrefix "/" filename);
message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not begin with a slash";
}
{
assertion = !(hasInfix ".." filename);
message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not reference the parent directory";
}
{
assertion = !(hasInfix "nixos/.extra-files" (toLower filename));
message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: files cannot be placed in the nixos/.extra-files directory";
}
]) (builtins.attrNames cfg.extraFiles);
boot.loader.grub.enable = mkDefault false;
boot.loader.supportsInitrdSecrets = true;
boot.loader.systemd-boot.extraFiles = mkMerge [
# TODO: This is hard-coded to use the 64-bit EFI app, but it could probably
# be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI
# app filename is BOOTIA32.efi.
(mkIf cfg.memtest86.enable {
"efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi";
})
(mkIf cfg.netbootxyz.enable {
"efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}";
})
];
boot.loader.systemd-boot.extraEntries = mkMerge [
(mkIf cfg.memtest86.enable {
"${cfg.memtest86.entryFilename}" = ''
title MemTest86
efi /efi/memtest86/BOOTX64.efi
'';
})
(mkIf cfg.netbootxyz.enable {
"${cfg.netbootxyz.entryFilename}" = ''
title netboot.xyz
efi /efi/netbootxyz/netboot.xyz.efi
'';
})
];
system = {
build.installBootLoader = checkedSystemdBootBuilder;

View File

@ -13,19 +13,30 @@ import ./make-test-python.nix ({ pkgs, ... }: {
};
};
services.getty.autologinUser = "root";
environment.systemPackages = map
(shell: pkgs.writeScriptBin "expect-${shell}" ''
#!${pkgs.expect}/bin/expect -f
spawn env TERM=xterm ${shell} -i
expect "<starship>" {
send "exit\n"
} timeout {
send_user "\n${shell} failed to display Starship\n"
exit 1
}
expect eof
'')
[ "bash" "fish" "zsh" ];
};
testScript = ''
start_all()
machine.wait_for_unit("default.target")
for shell in ["bash", "fish", "zsh"]:
machine.send_chars(f"script -c {shell} /tmp/{shell}.txt\n")
machine.wait_until_tty_matches(1, f"Script started.*{shell}.txt")
machine.send_chars("exit\n")
machine.wait_until_tty_matches(1, "Script done")
machine.sleep(1)
machine.succeed(f"grep -q '<starship>' /tmp/{shell}.txt")
machine.succeed("expect-bash")
machine.succeed("expect-fish")
machine.succeed("expect-zsh")
'';
})

View File

@ -110,4 +110,145 @@ in
assert "updating systemd-boot from (000.0-1-notnixos) to " in output
'';
};
memtest86 = makeTest {
name = "systemd-boot-memtest86";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"memtest86-efi"
];
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi")
'';
};
netbootxyz = makeTest {
name = "systemd-boot-netbootxyz";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf")
machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
'';
};
entryFilename = makeTest {
name = "systemd-boot-entry-filename";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf";
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"memtest86-efi"
];
};
testScript = ''
machine.fail("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/loader/entries/apple.conf")
machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi")
'';
};
extraEntries = makeTest {
name = "systemd-boot-extra-entries";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraEntries = {
"banana.conf" = ''
title banana
'';
};
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/banana.conf")
machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/banana.conf")
'';
};
extraFiles = makeTest {
name = "systemd-boot-extra-files";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
};
};
testScript = ''
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
'';
};
switch-test = makeTest {
name = "systemd-boot-switch-test";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
nodes = {
inherit common;
machine = { pkgs, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
};
};
with_netbootxyz = { pkgs, ... }: {
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
};
testScript = { nodes, ... }: let
originalSystem = nodes.machine.config.system.build.toplevel;
baseSystem = nodes.common.config.system.build.toplevel;
finalSystem = nodes.with_netbootxyz.config.system.build.toplevel;
in ''
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
with subtest("remove files when no longer needed"):
machine.succeed("${baseSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/efi/fruits/tomato.efi")
machine.fail("test -d /boot/efi/fruits")
machine.succeed("test -d /boot/efi/nixos/.extra-files")
machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits")
with subtest("files are added back when needed again"):
machine.succeed("${originalSystem}/bin/switch-to-configuration boot")
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
with subtest("simultaneously removing and adding files works"):
machine.succeed("${finalSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/efi/fruits/tomato.efi")
machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf")
machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/o_netbootxyz.conf")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi")
'';
};
}

View File

@ -52,6 +52,11 @@ self: let
super = removeAttrs imported [ "dash" ];
overrides = {
# upstream issue: Wrong type argument: arrayp, nil
org-transclusion =
if super.org-transclusion.version == "1.2.0"
then markBroken super.org-transclusion
else super.org-transclusion;
rcirc-menu = markBroken super.rcirc-menu; # Missing file header
cl-lib = null; # builtin
tle = null; # builtin

View File

@ -9,13 +9,13 @@
trivialBuild {
pname = "ement";
version = "unstable-2021-09-16";
version = "unstable-2021-10-08";
src = fetchFromGitHub {
owner = "alphapapa";
repo = "ement.el";
rev = "c07e914f077199c95b0e7941a421675c95d4687e";
sha256 = "sha256-kYVb2NrHYC87mY/hFUMAjb4TLJ9A2L2RrHoiAXvRaGg=";
rev = "c951737dc855604aba389166bb0e7366afadc533";
sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy";
};
packageRequires = [

View File

@ -72,6 +72,15 @@ let
overrides = lib.optionalAttrs (variant == "stable") {
# upstream issue: missing file header
abridge-diff =
if super.abridge-diff.version == "0.1"
then markBroken super.abridge-diff
else super.abridge-diff;
# upstream issue: missing file header
bufshow = markBroken super.bufshow;
# upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger;
@ -99,11 +108,38 @@ let
# upstream issue: missing file header
dictionary = markBroken super.dictionary;
# upstream issue: missing file header
fold-dwim =
if super.fold-dwim.version == "1.2"
then markBroken super.fold-dwim
else super.fold-dwim;
# upstream issue: missing file header
gl-conf-mode =
if super.gl-conf-mode.version == "0.3"
then markBroken super.gl-conf-mode
else super.gl-conf-mode;
# upstream issue: missing file header
ligo-mode =
if super.ligo-mode.version == "0.3"
then markBroken super.ligo-mode
else super.ligo-mode;
# upstream issue: missing file header
link = markBroken super.link;
# upstream issue: missing file header
bufshow = markBroken super.bufshow;
org-dp =
if super.org-dp.version == "1"
then markBroken super.org-dp
else super.org-dp;
# upstream issue: missing file header
revbufs =
if super.revbufs.version == "1.2"
then markBroken super.revbufs
else super.revbufs;
# upstream issue: missing file header
elmine = markBroken super.elmine;

View File

@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_8 }:
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_16 }:
stdenv.mkDerivation rec {
pname = "blockbench-electron";
version = "3.7.5";
version = "4.1.1";
src = fetchurl {
url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
sha256 = "0qqklhncd4khqmgp7jg7wap2rzkrg8b6dflmz0wmm5zxxp5vcy1c";
sha256 = "0mqdkjhmylrjjfrm05jv1967qqka5263fgcn9qzax08gcq93s18f";
name = "${pname}-${version}.AppImage";
};
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
'';
postFixup = ''
makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \
makeWrapper ${electron_16}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';

View File

@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
version = "467";
version = "469";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "v${version}";
sha256 = "sha256-ijIOCabpnaK9ww1cR+HNpCOn8uSwSEuyLWwnT2ypdD4=";
sha256 = "sha256-1E85SIsLXeG+AUqQYCJxOlSwiT26OG+n/d9GbyryGCE=";
};
nativeBuildInputs = [

View File

@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "imgbrd-grabber";
version = "7.7.0";
version = "7.7.1";
src = fetchFromGitHub {
owner = "Bionus";
repo = "imgbrd-grabber";
rev = "v${version}";
sha256 = "sha256-Mym/fuV9YVyj5w8U9KlZ/wuwnnC3K5TGNo9RrAFHI5g=";
sha256 = "sha256-3qE3mdtlIlReIkUf0oH2/qmunE8nvdB0EaD7EOqaEj0=";
fetchSubmodules = true;
};

View File

@ -4,7 +4,7 @@
, requests
, mypy-extensions
, django_3
, django_extensions
, django-extensions
, dateparser
, youtube-dl
, python-crontab
@ -37,7 +37,7 @@ buildPythonApplication rec {
requests
mypy-extensions
django_3'
django_extensions
django-extensions
dateparser
youtube-dl
python-crontab

View File

@ -5,21 +5,28 @@
, gobject-introspection, gdk-pixbuf, wrapGAppsHook
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "avizo";
version = "unstable-2021-07-21";
# Note: remove the 'use-sysconfig' patch on the next update
version = "1.1";
src = fetchFromGitHub {
owner = "misterdanb";
repo = "avizo";
rev = "7b3874e5ee25c80800b3c61c8ea30612aaa6e8d1";
sha256 = "sha256-ixAdiAH22Nh19uK5GoAXtAZJeAfCGSWTcGbrvCczWYc=";
rev = version;
sha256 = "sha256-0BJodJ6WaHhuSph2D1AC+DMafctgiSCyaZ8MFn89AA8=";
};
nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ];
buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ];
patches = [
# Remove on next update
# See https://github.com/misterdanb/avizo/pull/30
./use-sysconfdir-instead-of-etc.patch
];
postInstall = ''
substituteInPlace "$out"/bin/volumectl \
--replace 'avizo-client' "$out/bin/avizo-client"

View File

@ -0,0 +1,15 @@
diff --git a/meson.build b/meson.build
index 1c789be..cd4b07a 100644
--- a/meson.build
+++ b/meson.build
@@ -12,7 +12,9 @@ app_resources_service = gnome.compile_resources(
source_dir : '.',
c_name : 'avizo_resources')
-install_data('config.ini', install_dir: '/etc/xdg/avizo')
+sysconfdir = get_option('sysconfdir')
+
+install_data('config.ini', install_dir: join_paths(sysconfdir, 'xdg/avizo'))
install_data('volumectl', install_dir: 'bin')
install_data('lightctl', install_dir: 'bin')

View File

@ -18,7 +18,7 @@
let
year = "2021";
major = "1";
minor = "1";
minor = "2";
in stdenv.mkDerivation rec {
pname = "pdfstudio";
version = "${year}.${major}.${minor}";
@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb";
sha256 = "089jfpbsxwjhx245g8svlmg213kny3z5nl6ra1flishnrsfjjcxb";
sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
};
nativeBuildInputs = [

View File

@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
done
# Fix hard coded paths.
for f in $(grep -Rl /usr/share/ src) ; do
for f in $(grep -Rl /usr/share/ src install/desktop) ; do
substituteInPlace $f --replace /usr/share/ $out/share/
done

View File

@ -1,30 +1,40 @@
{lib, mkDerivation, fetchurl, qmake, qtbase, qtsvg, pkg-config, poppler, djvulibre, libspectre, cups
, file, ghostscript
{ lib
, mkDerivation
, fetchurl
, qmake
, qtbase
, qtsvg
, pkg-config
, poppler
, djvulibre
, libspectre
, cups
, file
, ghostscript
}:
let
s = # Generated upstream information
rec {
baseName="qpdfview";
version = "0.4.18";
name="${baseName}-${version}";
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
mkDerivation rec {
pname = "qpdfview";
version = "0.4.18";
src = fetchurl {
url = "https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c";
};
nativeBuildInputs = [ qmake pkg-config ];
buildInputs = [
qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
];
# apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
patches = [ ./qpdfview-qt515-compat.patch ];
in
mkDerivation {
pname = s.baseName;
inherit (s) version;
inherit nativeBuildInputs buildInputs patches;
src = fetchurl {
inherit (s) url sha256;
};
nativeBuildInputs = [ qmake pkg-config ];
buildInputs = [
qtbase
qtsvg
poppler
djvulibre
libspectre
cups
file
ghostscript
];
preConfigure = ''
qmakeFlags+=(*.pro)
'';
@ -39,13 +49,11 @@ mkDerivation {
"APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata"
];
meta = {
inherit (s) version;
meta = with lib; {
description = "A tabbed document viewer";
license = lib.licenses.gpl2Plus;
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
homepage = "https://launchpad.net/qpdfview";
updateWalker = true;
};
}

View File

@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "snapmaker-luban";
version = "4.1.2";
version = "4.1.3";
src = fetchurl {
url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
sha256 = "sha256-gS3MyXD5B9YQ+EXmIPZ+rDUE5H1AjRL64yXQX+5TM2Q=";
sha256 = "sha256-GXpM5dJ3JPf2HgrgTONyeCG6JjK4JhbcGP5ck7v4cqk=";
};
nativeBuildInputs = [

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "whalebird";
version = "4.4.6";
version = "4.5.0";
src = fetchurl {
url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
sha256 = "sha256-Q67y6VO7U8EatMNWyJo4f9IHKylQSX7bNR0DH4bnH+A=";
sha256 = "sha256-yl4R/1flm2Lfvyh9PXlJcZ1VtnP8nBQC0i7zs4U+g7g=";
};
nativeBuildInputs = [
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
# Necessary steps to find the tray icon
asar extract opt/Whalebird/resources/app.asar "$TMP/work"
substituteInPlace $TMP/work/dist/electron/main.js \
--replace "Mo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
--replace "jo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
runHook postBuild

View File

@ -87,11 +87,11 @@ let
in
stdenv.mkDerivation rec {
pname = "appgate-sdp";
version = "5.5.1";
version = "5.5.2";
src = fetchurl {
url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
sha256 = "sha256-gN9UAdn61qUZBJLi/9QiHjNRohbQQDV1uVHgcpuXq+Y=";
sha256 = "sha256-8K7RqkxpyRsQ3QHGIfTchLaZ7/+k0hbiJdl7uc++vYs=";
};
# just patch interpreter

View File

@ -83,7 +83,7 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
daphne
dateparser
django-cors-headers
django_extensions
django-extensions
django-filter
django-picklefield
django-q

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "super-productivity";
version = "7.9.1";
version = "7.9.2";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
sha256 = "sha256:0lxnl5ai23dwfsyrkpi9l1a0gl0qn6vp7hzmca77nyx974d6j8m4";
sha256 = "sha256-qeHFFG1Y8qZwFvo3CFIs1+BKQo287HJfOnKKguUOlu8=";
name = "${pname}-${version}.AppImage";
};

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "tig";
version = "2.5.4";
version = "2.5.5";
src = fetchFromGitHub {
owner = "jonas";
repo = pname;
rev = "${pname}-${version}";
sha256 = "sha256-dZqqUydZ4q/mDEjtojpMGfzAmW3yCNDvT9oCEmhq1hg=";
sha256 = "1yx63jfbaa5h0d3lfqlczs9l7j2rnhp5jpa8qcjn4z1n415ay2x5";
};
nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];

View File

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "1.5.1";
version = "1.5.2";
in
fetchzip {
name = "victor-mono-${version}";
@ -21,7 +21,7 @@ fetchzip {
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
sha256 = "sha256-FHahUp/Ghjv6fwsjj1giVPlAIXRMSZCSLcVMiMHvV3A=";
sha256 = "sha256-cNDZh0P/enmoKL/6eHzkgl5ghtai2K9cTgWMVmm8GIA=";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";

View File

@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "22.3.4.20";
sha256 = "sha256-EUErOCW16eUb/p5dLpFV7sQ3mXlCF/OgOvGAAyYEvLo=";
version = "22.3.4.24";
sha256 = "0c9713xa8sjw7nr55hysgcnbvj7gzbrpzdl94y1nqn7vw4ni8is3";
}

View File

@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "23.3.4.5";
sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU=";
version = "23.3.4.10";
sha256 = "0sfz7n748hvhmcygnvb6h31ag35p59aaa9h8gdpqsh6p4hnjh1mf";
}

View File

@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "24.1.7";
sha256 = "sha256-R4rZVMn9AGvOy31eA1dsz2CFMKOG/cXkbLaJtT7zBrU=";
version = "24.2";
sha256 = "10s57v2i2qqyg3gddm85n3crzrkikl4zfwgzqmxjzdynsyb4xg68";
}

View File

@ -1,59 +1,54 @@
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, django
{ lib
, buildPythonPackage
, fetchFromGitHub
, django
, factory_boy
, glibcLocales
, mock
, pygments
, pytest
, pytest-cov
, pytest-django
, python-dateutil
, pytestCheckHook
, shortuuid
, six
, tox
, typing ? null
, vobject
, werkzeug
}:
buildPythonPackage rec {
pname = "django-extensions";
version = "3.1.3";
version = "3.1.5";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "03mhikhh49z8bxajbjf1j790b9c9vl4zf4f86iwz7g0zrd7jqlvm";
sha256 = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM=";
};
LC_ALL = "en_US.UTF-8";
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=django_extensions --cov-report html --cov-report term" ""
'';
propagatedBuildInputs = [
django
];
__darwinAllowLocalNetworking = true;
propagatedBuildInputs = [ six ]
++ lib.optional (pythonOlder "3.5") typing;
checkInputs = [
django
factory_boy
glibcLocales
mock
pygments # not explicitly declared in setup.py, but some tests require it
pytest
pytest-cov
pytest-django
python-dateutil
pytestCheckHook
shortuuid
tox
vobject
werkzeug
];
# remove tests that need network access
checkPhase = ''
rm tests/management/commands/test_pipchecker.py
DJANGO_SETTINGS_MODULE=tests.testapp.settings \
pytest django_extensions tests
'';
disabledTestPaths = [
# requires network access
"tests/management/commands/test_pipchecker.py"
];
meta = with lib; {
description = "A collection of custom extensions for the Django Framework";

View File

@ -48,11 +48,12 @@ buildPythonPackage rec {
"TestMoveSCPCLI"
"TestQRGetServiceClass"
"TestQRMoveServiceClass"
"TestState"
"TestStorageServiceClass"
"TestStoreSCP"
"TestStoreSCPCLI"
"TestStoreSCU"
"TestStoreSCUCLI"
"TestState"
];
pythonImportsCheck = [

View File

@ -4,6 +4,7 @@
, flask
, pytestCheckHook
, python-http-client
, pythonOlder
, pyyaml
, starkbank-ecdsa
, werkzeug
@ -11,14 +12,16 @@
buildPythonPackage rec {
pname = "sendgrid";
version = "6.9.3";
version = "6.9.4";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = pname;
repo = "sendgrid-python";
rev = version;
sha256 = "sha256-/4Wk+1zAFwK+FxRhABQBha43/zapgPDfTFGrPJjXA7s=";
sha256 = "sha256-xNd0IPhaVw4X6URsg6hrDJhxmBRWam4bqgLN0uvMUxI=";
};
propagatedBuildInputs = [

View File

@ -1,16 +1,20 @@
{ lib
, buildPythonPackage
, fetchPypi
, pytest
, pytestCheckHook
, boto3
, six
, pyyaml
, mock
, pythonOlder
}:
buildPythonPackage rec {
pname = "serverlessrepo";
version = "0.1.10";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
@ -23,12 +27,25 @@ buildPythonPackage rec {
pyyaml
];
checkInputs = [ pytest mock ];
checkInputs = [
pytestCheckHook
mock
];
checkPhase = ''
pytest tests/unit
postPatch = ''
substituteInPlace setup.py \
--replace "pyyaml~=5.1" "pyyaml" \
--replace "boto3~=1.9, >=1.9.56" "boto3"
'';
pytestFlagsArray = [
"tests/unit"
];
pythonImportsCheck = [
"serverlessrepo"
];
meta = with lib; {
homepage = "https://github.com/awslabs/aws-serverlessrepo-python";
description = "Helpers for working with the AWS Serverless Application Repository";
@ -36,7 +53,7 @@ buildPythonPackage rec {
A Python library with convenience helpers for working with the
AWS Serverless Application Repository.
'';
license = lib.licenses.asl20;
license = licenses.asl20;
maintainers = with maintainers; [ dhkl ];
};
}

View File

@ -5,16 +5,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "aws-sam-cli";
version = "1.36.0";
version = "1.37.0";
src = python3.pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-GJbBhe1l25ZHGWVu1o2oJvd/BNv8dv7aIYor/ebFl9U=";
hash = "sha256-XE3g2mKwAiaJvi0ShVScnCKrmz7ujaQgOeFXuYwtP4g=";
};
# Tests are not included in the PyPI package
doCheck = false;
propagatedBuildInputs = with python3.pkgs; [
aws-lambda-builders
aws-sam-translator
@ -42,18 +39,22 @@ python3.pkgs.buildPythonApplication rec {
# fix over-restrictive version bounds
postPatch = ''
substituteInPlace requirements/base.txt \
--replace "aws_lambda_builders==" "aws-lambda-builders #" \
--replace "click~=7.1" "click~=8.0" \
--replace "Flask~=1.1.2" "Flask~=2.0" \
--replace "dateparser~=1.0" "dateparser>=0.7" \
--replace "docker~=4.2.0" "docker>=4.2.0" \
--replace "requests==" "requests #" \
--replace "watchdog==" "watchdog #" \
--replace "aws_lambda_builders==" "aws-lambda-builders #" \
--replace "typing_extensions==" "typing-extensions #" \
--replace "Flask~=1.1.2" "Flask~=2.0" \
--replace "PyYAML~=5.3" "PyYAML" \
--replace "regex==" "regex #" \
--replace "tzlocal==3.0" "tzlocal"
--replace "requests==" "requests #" \
--replace "typing_extensions==" "typing-extensions #" \
--replace "tzlocal==3.0" "tzlocal" \
--replace "watchdog==" "watchdog #"
'';
# Tests are not included in the PyPI package
doCheck = false;
meta = with lib; {
homepage = "https://github.com/awslabs/aws-sam-cli";
description = "CLI tool for local development and testing of Serverless applications";

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
owner = "scottdraves";
repo = pname;
rev = "37ba0fd692d6581f8fe009ed11c9650cd8174123";
sha256 = "1z49l53j1lhk7ahdy96lm9r0pklwpf2i5s6y2l2rn6l4z8dxkjmk";
sha256 = "sha256-v/+2dxOY/p6wNAywcFHUAfsZEJw31Syu2MacN/KeyWg=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "bazarr";
version = "1.0.0";
version = "1.0.2";
sourceRoot = ".";
src = fetchurl {
url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip";
sha256 = "sha256-DDisK8friN3u+kNmjc9TjU0cZ/H0wf/Fu6JqZZkLdPU=";
sha256 = "sha256-aI5uxfMR+UpwxbUsJNNYYjqVX2epk60JbqWHRhB4v7I=";
};
nativeBuildInputs = [ unzip makeWrapper ];

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "headscale";
version = "0.11.0";
version = "0.12.2";
src = fetchFromGitHub {
owner = "juanfont";
repo = "headscale";
rev = "v${version}";
sha256 = "sha256-grLYyVYlvqBNO5CVRVDTJKEi45Nsc6Bgs8I3pY7pZfg=";
sha256 = "sha256-PgSjxDmPahGd2o3QBfvytMva+LHWeLPm500DsNdB77Q=";
};
vendorSha256 = "sha256-t7S1jE76AFFIePrFtvrIQcId7hLeNIAm/eA9AVoFy5E=";
vendorSha256 = "sha256-gD4jGaR4KQiYL6+yA8g2u6cTEbfySTMErNqerw76Ook=";
ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ];

View File

@ -12,7 +12,7 @@
, django-paintstore
, django-q
, django_compressor
, django_extensions
, django-extensions
, djangorestframework
, flufl_lock
, mistune_2_0
@ -52,7 +52,7 @@ buildPythonPackage rec {
django-mailman3
django-q
django_compressor
django_extensions
django-extensions
djangorestframework
flufl_lock
mistune_2_0

View File

@ -1,35 +1,26 @@
{lib, stdenv, fetchurl, perl, xorgproto, libX11}:
let
s = # Generated upstream information
rec {
baseName="ratmen";
version="2.2.3";
name="${baseName}-${version}";
hash="0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
url="http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-2.2.3.tar.gz";
sha256="0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
{ lib, stdenv, fetchurl, perl, xorgproto, libX11 }:
stdenv.mkDerivation rec {
pname = "ratmen";
version = "2.2.3";
src = fetchurl {
url = "http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-${version}.tar.gz";
sha256 = "0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
};
buildInputs = [
perl xorgproto libX11
perl
xorgproto
libX11
];
in
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
src = fetchurl {
inherit (s) url sha256;
};
makeFlags = [
"PREFIX=$(out)"
];
meta = {
inherit (s) version;
meta = with lib; {
description = "A minimalistic X11 menu creator";
license = lib.licenses.free ; # 9menu derivative with 9menu license
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.linux;
license = licenses.free; # 9menu derivative with 9menu license
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
homepage = "http://www.update.uu.se/~zrajm/programs/";
downloadPage = "http://www.update.uu.se/~zrajm/programs/ratmen/";
updateWalker = true;
};
}

View File

@ -0,0 +1,21 @@
{ lib
, fetchurl
}:
let
pname = "netboot.xyz-efi";
version = "2.0.53";
in fetchurl {
name = "${pname}-${version}";
url = "https://github.com/netbootxyz/netboot.xyz/releases/download/${version}/netboot.xyz.efi";
sha256 = "sha256-v7XqrhG94BLTpDHDazTiowQUXu/ITEcgVMmhlqgmSQE=";
meta = with lib; {
homepage = "https://netboot.xyz/";
description = "A tool to boot OS installers and utilities over the network, to be run from a bootloader";
license = licenses.asl20;
maintainers = with maintainers; [ Enzime ];
platforms = platforms.linux;
};
}

View File

@ -61,6 +61,6 @@ python3Packages.buildPythonPackage rec {
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = with maintainers; [ benley mic92 ];
maintainers = with maintainers; [ benley lassulus pinpox ];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "dnsproxy";
version = "0.40.1";
version = "0.40.3";
src = fetchFromGitHub {
owner = "AdguardTeam";
repo = pname;
rev = "v${version}";
sha256 = "sha256-tvYurE+/ZPJeV/ZKMIC0yrwzomxd/3y0KtChei/HO6c=";
sha256 = "sha256-OkicEDu2sMEpvBbb7JFRGusMKJeQoVe3ShsbuNCoIis=";
};
vendorSha256 = null;

View File

@ -1,28 +1,27 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
, libcap, ncurses, jansson
, withGtk ? false, gtk3 }:
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, autoreconfHook
, pkg-config
, libcap
, ncurses
, jansson
, withGtk ? false
, gtk3
}:
stdenv.mkDerivation rec {
pname = "mtr${lib.optionalString withGtk "-gui"}";
version = "0.94";
version = "0.95";
src = fetchFromGitHub {
owner = "traviscross";
repo = "mtr";
rev = "v${version}";
sha256 = "0wnz87cr2lcl74bj8qxq9xgai40az3pk9k0z893scyc8svd61xz6";
sha256 = "sha256-f5bL3IdXibIc1xXCuZHwcEV5vhypRE2mLsS3A8HW2QM=";
};
patches = [
# pull patch to fix build failure against ncurses-6.3:
# https://github.com/traviscross/mtr/pull/411
(fetchpatch {
name = "ncurses-6.3.patch";
url = "https://github.com/traviscross/mtr/commit/aeb493e08eabcb4e6178bda0bb84e9cd01c9f213.patch";
sha256 = "1qk8lf4sha18g36mr84vbdvll2s8khgbzyyq0as3ifx44lv0qlf2";
})
];
# we need this before autoreconfHook does its thing
postPatch = ''
echo ${version} > .tarball-version

View File

@ -38,11 +38,11 @@ in
stdenv.mkDerivation rec {
pname = "sile";
version = "0.12.0";
version = "0.12.1";
src = fetchurl {
url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
sha256 = "1rkdzf4khyvsn5qg455mdhnlacxlqgi9vchy369a66qp5nrs50y9";
sha256 = "1dw8qs5y2m90vhjsxpnvnr8blq0ld2fvny5ir8zjharja7wny24i";
};
configureFlags = [

View File

@ -6355,7 +6355,9 @@ with pkgs;
heimdall-gui = heimdall.override { enableGUI = true; };
headscale = callPackage ../servers/headscale { };
headscale = callPackage ../servers/headscale {
buildGoModule = buildGo117Module;
};
heisenbridge = callPackage ../servers/heisenbridge { };
@ -7971,6 +7973,8 @@ with pkgs;
netboot = callPackage ../tools/networking/netboot {};
netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { };
netcat = libressl.nc;
netcat-gnu = callPackage ../tools/networking/netcat { };

View File

@ -45,6 +45,7 @@ mapAliases ({
discogs_client = discogs-client; # added 2021-07-02
djangorestframework-jwt = drf-jwt; # added 2021-07-20
django_environ = django-environ; # added 2021-12-25
django_extensions = django-extensions; # added 2022-01-09
django_redis = django-redis; # added 2021-10-11
django_taggit = django-taggit; # added 2021-10-11
dns = dnspython; # added 2017-12-10

View File

@ -2212,7 +2212,7 @@ in {
django-environ = callPackage ../development/python-modules/django_environ { };
django_extensions = callPackage ../development/python-modules/django-extensions { };
django-extensions = callPackage ../development/python-modules/django-extensions { };
django-filter = callPackage ../development/python-modules/django-filter { };